From 537fb8849d3a34deb332250a292a79027b834d72 Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Thu, 27 Sep 2018 07:59:42 +0200 Subject: [PATCH 1/3] Servo buttons --- .../org/mozilla/vrbrowser/SettingsStore.java | 12 +++++ .../vrbrowser/ui/DeveloperOptionsWidget.java | 33 ++++++++++++ .../vrbrowser/ui/NavigationBarWidget.java | 42 +++++++++++++++- app/src/main/res/drawable/ic_icon_servo.png | Bin 0 -> 279991 bytes app/src/main/res/layout/developer_options.xml | 47 +++++++++++++++++- app/src/main/res/layout/navigation_bar.xml | 7 +++ app/src/main/res/values/non_L10n.xml | 1 + app/src/main/res/values/strings.xml | 1 + 8 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable/ic_icon_servo.png diff --git a/app/src/common/shared/org/mozilla/vrbrowser/SettingsStore.java b/app/src/common/shared/org/mozilla/vrbrowser/SettingsStore.java index 3f389d371..784befc73 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/SettingsStore.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/SettingsStore.java @@ -35,6 +35,7 @@ SettingsStore getInstance(final @NonNull Context aContext) { public final static boolean CONSOLE_LOGS_DEFAULT = false; public final static boolean ENV_OVERRIDE_DEFAULT = false; public final static boolean MULTIPROCESS_DEFAULT = false; + public final static boolean SERVO_DEFAULT = false; public final static DeveloperOptionsWidget.UaMode UA_MODE_DEFAULT = DeveloperOptionsWidget.UaMode.MOBILE; public final static DeveloperOptionsWidget.InputMode INPUT_MODE_DEFAULT = DeveloperOptionsWidget.InputMode.TOUCH; public final static float DISPLAY_DENSITY_DEFAULT = 1.0f; @@ -147,6 +148,17 @@ public void setMultiprocessEnabled(boolean isEnabled) { editor.commit(); } + public boolean isServoEnabled() { + return mPrefs.getBoolean( + mContext.getString(R.string.settings_key_servo), SERVO_DEFAULT); + } + + public void setServoEnabled(boolean isEnabled) { + SharedPreferences.Editor editor = mPrefs.edit(); + editor.putBoolean(mContext.getString(R.string.settings_key_servo), isEnabled); + editor.commit(); + } + public int getUaMode() { return mPrefs.getInt( mContext.getString(R.string.settings_key_desktop_version), UA_MODE_DEFAULT.ordinal()); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/DeveloperOptionsWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/DeveloperOptionsWidget.java index 391b48d19..b50a95aa8 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/DeveloperOptionsWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/DeveloperOptionsWidget.java @@ -40,6 +40,7 @@ public enum UaMode { private Switch mConsoleLogsSwitch; private Switch mEnvOverrideSwitch; private Switch mMultiprocessSwitch; + private Switch mServoSwitch; private RadioGroup mUaModeRadio; private RadioButton mDesktopRadio; private RadioButton mRadioMobile; @@ -76,6 +77,7 @@ public enum UaMode { private TextView mConsoleLogsSwitchText; private TextView mEnvOverrideSwitchText; private TextView mMultiprocessSwitchText; + private TextView mServoSwitchText; private int mRestartDialogHandle = -1; public DeveloperOptionsWidget(Context aContext) { @@ -157,6 +159,12 @@ public void onClick(View view) { mMultiprocessSwitch.setSoundEffectsEnabled(false); setMultiprocess(SettingsStore.getInstance(getContext()).isMultiprocessEnabled(), false); + mServoSwitchText = findViewById(R.id.developer_options_servo_switch_text); + mServoSwitch = findViewById(R.id.developer_options_servo_switch); + mServoSwitch.setOnCheckedChangeListener(mServoListener); + mServoSwitch.setSoundEffectsEnabled(false); + setServo(SettingsStore.getInstance(getContext()).isServoEnabled(), false); + UaMode uaMode = UaMode.values()[SettingsStore.getInstance(getContext()).getUaMode()]; mUaModeRadio = findViewById(R.id.radioUaMode); mUaModeRadio.setSoundEffectsEnabled(false); @@ -373,6 +381,17 @@ public void onCheckedChanged(CompoundButton compoundButton, boolean b) { } }; + private CompoundButton.OnCheckedChangeListener mServoListener = new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean b) { + if (mAudio != null) { + mAudio.playSound(AudioEngine.Sound.CLICK); + } + + setServo(b, true); + } + }; + private RadioGroup.OnCheckedChangeListener mUaModeListener = new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { @@ -548,6 +567,7 @@ public void onClick(View view) { } setMultiprocess(SettingsStore.MULTIPROCESS_DEFAULT, true); + setServo(SettingsStore.SERVO_DEFAULT, true); setUaMode(SettingsStore.UA_MODE_DEFAULT, true); setInputMode(SettingsStore.INPUT_MODE_DEFAULT); restart = restart | setDisplayDensity(SettingsStore.DISPLAY_DENSITY_DEFAULT); @@ -607,6 +627,19 @@ private void setMultiprocess(boolean value, boolean doApply) { } } + private void setServo(boolean value, boolean doApply) { + mServoSwitch.setOnCheckedChangeListener(null); + mServoSwitch.setChecked(value); + mServoSwitch.setOnCheckedChangeListener(mServoListener); + mServoSwitchText.setText(value ? getContext().getString(R.string.on) : getContext().getString(R.string.off)); + + SettingsStore.getInstance(getContext()).setServoEnabled(value); + + if (doApply) { + SessionStore.get().setServo(value); + } + } + private UaMode getUaModeFromRadio(int checkedId) { UaMode uaMode; switch (checkedId) { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java index 3fd5126aa..fbd1c4ec9 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java @@ -6,6 +6,8 @@ package org.mozilla.vrbrowser.ui; import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.util.AttributeSet; import android.util.Log; @@ -25,7 +27,8 @@ public class NavigationBarWidget extends UIWidget implements GeckoSession.NavigationDelegate, GeckoSession.ProgressDelegate, GeckoSession.ContentDelegate, WidgetManagerDelegate.Listener, SessionStore.SessionChangeListener, - NavigationURLBar.NavigationURLBarDelegate, VoiceSearchWidget.VoiceSearchDelegate { + NavigationURLBar.NavigationURLBarDelegate, VoiceSearchWidget.VoiceSearchDelegate, + SharedPreferences.OnSharedPreferenceChangeListener { private static final String LOGTAG = "VRB"; @@ -34,6 +37,7 @@ public class NavigationBarWidget extends UIWidget implements GeckoSession.Naviga private UIButton mForwardButton; private UIButton mReloadButton; private UIButton mHomeButton; + private UIButton mServoButton; private NavigationURLBar mURLBar; private ViewGroup mNavigationContainer; private ViewGroup mFocusModeContainer; @@ -52,6 +56,8 @@ public class NavigationBarWidget extends UIWidget implements GeckoSession.Naviga private ArrayList mButtons; private int mURLBarLayoutIndex; private VoiceSearchWidget mVoiceSearchWidget; + private Context mAppContext; + private SharedPreferences mPrefs; public NavigationBarWidget(Context aContext) { super(aContext); @@ -69,12 +75,14 @@ public NavigationBarWidget(Context aContext, AttributeSet aAttrs, int aDefStyle) } private void initialize(Context aContext) { + mAppContext = aContext.getApplicationContext(); inflate(aContext, R.layout.navigation_bar, this); mAudio = AudioEngine.fromContext(aContext); mBackButton = findViewById(R.id.backButton); mForwardButton = findViewById(R.id.forwardButton); mReloadButton = findViewById(R.id.reloadButton); mHomeButton = findViewById(R.id.homeButton); + mServoButton = findViewById(R.id.servoButton); mURLBar = findViewById(R.id.urlBar); mNavigationContainer = findViewById(R.id.navigationBarContainer); mFocusModeContainer = findViewById(R.id.focusModeContainer); @@ -135,6 +143,16 @@ public void onClick(View v) { } }); + mServoButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + SessionStore.get().reloadWithServo(); + if (mAudio != null) { + mAudio.playSound(AudioEngine.Sound.CLICK); + } + } + }); + mResizeEnterButton = findViewById(R.id.resizeEnterButton); mResizeExitButton = findViewById(R.id.resizeExitButton); mPreset0 = findViewById(R.id.resizePreset0); @@ -205,7 +223,7 @@ public void onClick(View view) { mButtons = new ArrayList<>(); mButtons.addAll(Arrays.asList( mBackButton, mForwardButton, mReloadButton, mHomeButton, mResizeEnterButton, mResizeExitButton, - mPreset0, mPreset1, mPreset2, mPreset3)); + mServoButton, mPreset0, mPreset1, mPreset2, mPreset3)); mURLBar.setDelegate(this); @@ -218,11 +236,16 @@ public void onClick(View view) { mVoiceSearchWidget.setDelegate(this); SessionStore.get().addSessionChangeListener(this); + + mPrefs = PreferenceManager.getDefaultSharedPreferences(mAppContext); + mPrefs.registerOnSharedPreferenceChangeListener(this); + updateServoButton(); } @Override public void releaseWidget() { mWidgetManager.removeListener(this); + mPrefs.unregisterOnSharedPreferenceChangeListener(this); SessionStore.get().removeNavigationListener(this); SessionStore.get().removeProgressListener(this); SessionStore.get().removeContentListener(this); @@ -347,6 +370,14 @@ public void showVoiceSearch() { mURLBar.showVoiceSearch(true); } + public void updateServoButton() { + if (SettingsStore.getInstance(mAppContext).isServoEnabled()) { + mServoButton.setVisibility(View.VISIBLE); + } else { + mServoButton.setVisibility(View.GONE); + } + } + @Override public GeckoResult onNewSession(@NonNull GeckoSession aSession, @NonNull String aUri) { return null; @@ -552,4 +583,11 @@ public void OnVoiceSearchCanceled() { public void OnVoiceSearchError() { // Nothing to do yet } + + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (key == mAppContext.getString(R.string.settings_key_servo)) { + updateServoButton(); + } + } } diff --git a/app/src/main/res/drawable/ic_icon_servo.png b/app/src/main/res/drawable/ic_icon_servo.png new file mode 100644 index 0000000000000000000000000000000000000000..5eebeea369c231cf837a07887a02aacd9b5c689e GIT binary patch literal 279991 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

QL~b)F#0>A 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 z

O_XveDW4dWvR*IE7MiW)rQxMc_NIH({-cim0oahwG-Dt% zR;&Mw50`)p|J=|0+#PRy>s#+v*>Yuo_n+=ZjwyNAUo|X*f={pab~BpR=i%Vwbd#V5 zZo28F+tC!ShaGW)Qi9KJHK-SnnD-mTY*XZUsy)& zIOhv*(f|1CH z@FbHF{?vxmH zwO$G~+@=1cH80NG@h{B#)Y*2qlb~g32CujT4UN^Xt@a`CaCX&*R-0r3{6^Cw$m{cz40kaD-LKL z*9FeAQ4gVqv{nl?FUykdT#S75rEvM6hjg`l=ADnR7$1hPqkQvm476#3u^X!Vjy(`~ z&U8)#)Ckv0;6AJr2vzilLXXo=hI}@tkTV;}LZmooZ$fMY#9o*g$e({5#}>kxQ&}@} zi`gS5PZRE!h=T}!?yT6u(q)VV+pM)l;mUSdKMEz+0xJNtNHKc&X&Z~wpZzeh4O3&; z*u)5RWjrv>9K&k-HNidPF-8Dwb9%}t0s{!e7Qpd7&R(pVG2{ zMaf8D#Qv|JsSJ;us*FsYX0-&uz*u9?>Al@-&$Tpm+86HZ0gZYp68IGzgU|jcqD(muC z*PWJ!T;#?2D4mjR+qP{9jrRe2A`jKLE_>zsR2l}^hY`z3I)C&>fArZ4FT8LT@ZSs_ z{u%K9+V$68Z)C)^0DsDu4)9-?SsZN^OB>;b7j)a*z3}Ac!c(6Mzu((w_qL;mOdt@H z)pp}J=OZ`s3WhQ)`5-Jg0VSEp1!Z(GJutY>M}UG1Qeg2351pn22aYH+V;A%Lle_81_cfd~SG06;-#u?kSkom*GS z3ea#ao%{q1>%>_`v#kQKb%M?~onm^mZ1Z&9c?E5}0f?8-9yKY~nZHNMLUZ71)o@=IM|+7Ye1|lfEEg8`a5W;!3mV!RiCOVW4wO>!^={?&j z@EI1_d2nfAM7?2z8rS$cwNOU0FJZyJK{d{>B%oQRX%{{L$Z)1(tSJ+pTuvG-SJCt*p06#}hoz70ooDL9oTEhTGZcC!5Vt?6B0=wfV%=i#A0Ga#JL6A4v zp&t9=Q{&ml#8{Nsz-ptgC4+XFrRJ&u1s~hWHCG1=5%RcRS5T!ioH^V&SYgaF-WL)& zrJ#U;)rO(eYhn#s!U{4oHZpMvC1RFA8|MG)MGxYmnM7qC{+2^4BD5}HX}p^>e**2R zXv7@?;oO83a#8SqsybhPOGD1{M~)?LdCOZK$ix1^5B|~Yatu1ptbgQ>Ilk8I!C=%x zRX{4ckI#GQlu=CI_tBt^@c=m1ZQH(A#T}3W*YE%S?|+f?r$r17V;X=W>?6U^dC~mvS^xnTWb&e5^rif1U={GXrx2<6801aNI?vC( z_gU^I%Ys0PW=b*6X-K~Sbw3ArrSg4-wAP6{Jk7?mq51QvK%&{zz%nJntigOEmH}ni z3WcB^l2KZg$g?`*0hFE!BQzg!4(8LLfnM`%1Qp#5-So!tq*srG#u^CC9uq&J0d&$i zk0}EHN$0nEeKe~PYF4;z!ua*p7fc1>2%3ZN;eA0~FMJ0^ZfO94g6=Mt6eQ*s7h*TN zh>K4;)9O*b+-MWpcA5GMXgUV6kG=g&=W9*SIV#N4)F;9LQ(l>=4V^BVu`0rVLJC_> z7Z9Hx!NGg6>H;9665LC|jeVgoZ~sVp`@!Sf@AL>Xhc~T2I>_nxsN!A% zJVC6q!U79Oo$s{~d<$4(uW22MKxf)Qzl24=DTugAN03L!_CilO0-Ce(farengc?44 z>~!|%@iW=n0@E-$m@-vFv~Aj^kV0=k57+z0Zib3oRJ6*w0bWBpR&=y6MKH}(r@S$z zDA??W8nYsSNQOjQEHN#Gi5}Ww$)I^vgq#{}t0OoLy8=K#kbepiRE~jHg1(*DXsCl# z#6wz14_e4<1QCvkrG?t?*o-HuP3G|(Sqbw$-v9BycliVT!=DI$fCJ?DN&0BhrI%hh z3lF-9M|ucr7~LS^)9i5E4Pwij8}|1;aOPh454S@*S+}iDZ_T=`epEc(RsiEONX(Tz zd-lv49#{=QPtEn+wC}9FVSb%^`;}k$mAhDrdN)gQrWk~G0{-tcwS&@+?|kx!Ux5b~ zvcG*(@!;mmD+|Nbk%i^<=0dl(vsWxV2T0sU=AO@iEpJD`od8%Wd?ql45$O@#rW$&n zvv?`a9%f*_8;`vSAiAW?N@@uZaAf-VnS*laSGYD10=Tb<+A_k4O<`c*AP5I1wPJ|R zrF^WH9^FQWvu%Q_8^*-eue3WkbZH_N(3#JrOilTQ?G^Of(60sU!h0XO8O=UpZaae8 zsDYySyRt!3v+K^wXxe?|zx$*`GN2l+deEWHpghbYS4YSz0-l<4h6$ z(xyNzhs!#M=M87~E4+TRtVFeER!!Z&)#vg+VIfY@^;|9V? zgEFx62OTkchZErt!oV<*`fB<(fLCB>R*lVr0A@_;)?dp{8egdo9IyJvJEl8;JRAQJ z;cp4>pUqCs5*?A>UT;FLrsGUW;;c_X^22auzDS$2=IDP=qTWT9`jM2m_-q(~u#css zwX#TNZGfI>0%Aba+1$v;jqVs|z@RGEiL;GBzF(y-*qnl&>1l(8H^6X!~Cwl zDurm2k??cf_tDw@(&5H1zt>!I&7*ky-wNX#=4P8Ve%M57u@;s0IK2G@|BYj#qfD7@ zX4ZEXrr(R?b!x!{~ zPPI~(m_-_xVt@fJoJ*}h+0dp1(-qdGJExj}24D`;tj26LD!`e1QkiN)e5Z^8=2gx9 zZn&cM?y0uzN#+SWs7HVZp8`q5&X3wqhFX<>`EXaY5CRx&eV5I_Guvo!DKBczbxp7- ze@*cU9D+LOD9iQr#-Z2YP>*eaOhU1Ok-OHHk^ow*6*|Xh0Z3GF{PHd63XQ2#55})~ zTw%mA1XisJQD2_ZJAA1LFkxD50`yI^OdIDiM0c+{F>^AT;WTc9ZH~;HzEG>gFTv%7 z*0(|E-`qSsG@88XjSb*7%Hc?d6{1gC1vjTQwBkUC0l+5k zP9TQ#0zD8|xR*lu(yK9eVpPQU9Qbo^4u1>irKYP@!TLJi9u9bp6KJFZoOM$8a}1Gr z2o4Gl*1zit59qDqquMpFpJ>ilHGg`Au|u9{_fG3{(6HwbUXC&6?>RraXk?ra^3<{; z^4=gYPjX~sOfj}G3XrdLLr`=HA`Yk((rZD|0x>jVSYJd099uht^Q{xK$ej&Gpt+8m zRfIk*8sXPMoeV1Fega{mVGKxvWMR<~T{Lq z&;q@)TrU;cH!NHl!@!~NeGXVGgy6vY{r~3U2z@`!I{3SB3jBt9u{@oe0;QiAVtZc& zrtsS}=7*u-x(xekJHGu`_X2&PMfFH zZ|4E33mZz5?rRH z2^J>BOoQMqg2=Fyx@ns~gK-LYo?ef6Q1U7+hJ>OQnXTO2HvGjNjN%Y`Vwe@Z!e8vX&S;#I0VvO@7piVZ427c9FnB517NwWvEU4Y zjc098jB!45nwf7{SIEacQLu=^?~KJ?O$A+>EI0B9nyvS&VZf~qL zAcg)%Xk+TYJZz$GEK&w*{?lo{YyEMm&2gbar>_vpP2140!F#!g@Uuwh)?_3Ha_(;|^0mX z_CHE{KWixZoCfQtIgeXaSkC%C@*oU!*!3`(6EL2$;ei?S@k*}eRx;>hh|!LBz3W{! z?b)-(9jLa_rcW>@7fyd`u-uRArV9s|^M?>Xf4a!-} zb-H_>nj(&dJZrJ$n@s4I3$}!LUrpF~=LRNdP0Hc99~K4}JWN?9#Mlr>euwrKe9wFV z)YJ~@!=WsM91`WJ-CG8aBSgs91rzu^&-d6CxXT$<2EgAb1|LisF9J$9hVd+#o~NM1 z`V5;)-hd4N9@;+XA|fKRqUk9Q1SCN?ZEyrrS0F&>(fsd5IXcZ*PlNRo0Z!xo>oZVu zP9BhRZeH(xog*c4U=^D0_{aonxF^vxM|m2DLC%=l*Rvfk(MQ0@b^4lU)-~9VjiyJa z1Hue-uoKh;X=w;?0(A&KR^Gm$zf+&n)`5^^pQ)9HQyM}*Ovgl15%{2m@oCRa!I0MU z(y~vVy5zF2v!>R!l+Wi?f#L%ZN5EAGsS{&EXvQ6$u z15jF@6XW%#u)Wg9-rzT6976LSru3|{HH3Z$=_{U9us*c@wPV0o8 zHN11u+CduckAb2Pun3ft1VF?Mqa@PljB8c_h6JoxW|GvU~CYx+M{sl5=8!nhWc~W^k;lh822_3&4uYUEb^RT}s5D2dK zT8=q>U(d(WLI7Y8hE$4Vw#@fWAgPTJy7Cd`$R9-_RijwfgORN`-F`Cr?ce_G+poIn zs)M{>&imiM3;5R#zBO_B>rWS5>bI#nG7kH{0CspWtm87wjhDk?_F-b&i{`c+rajKm zGGk!F7-gJ-hcAkZKAEI*hHn~AkC^)e{L-5I#2mfmAv4!JswshTgYmNeQBzEF`rfpDmL@|5)CTqS zQ;pS6K`(>@vJ3wKo}uZ~S1W~97@2a?Qo{lPQ00fT5a>un0t*KOxhZ%CO~_jsDimqa zu&!neL8uxQ3#-UQ!Bq=LgD7zxny@u*druHF+^is70*r=7#-JIFffOQHbz-Zq0-%bo zz}VOn>*2>~TUvIfKCk0kY)YhAn&$;f!wE-R0)&p(?T)gooLaN152CN_AA}GEiO}-7 zZ~yw;!?44i0={EKVPa%-Bm@h0v$O8T3TWUTv4}r{(>zX5I5pvtK!t%AFZ7PfE(L$P z%eVwJ>KTG&lmxk`O9&RwDOQ63@^+GW*v4oRdFUq~?c7~&bR6r(C{BT-tpUIab_#Sw ziN>i*o0}dr@%EoNHH+qdJe$Sie`%4m{`7H`2V8C7yu4zNeO1w7LkBu`hv?U;TXwm)!2GkT>AZbcKD9 z#vbF70(BnMa;5_+#l--ND20qGrj&ZD*l+`&R-sg0p|2ZE-L<++#MaJ2Kf7)~#3%7F zSQ$`cD&WgJb|aRZ4KIA*3y)1tPltJ2OU`;e#0;l20RLmO>xh`bc>Bb94*UCf{Smz8 z@oucQYe-}cd$oZXm}L*`rHz;BX|HKM_j5fSgL(e~1Mes=-2p&&oPjt?8~+Oo6nqj& zM3?hF`UCJ^Ty9QuOPyVCtmnd1E{DZ%7WTnWE`kqjgPR)v5_ShugXzeC1u>blT9~KT zJpw#oM)~pBH?H_YE;V3Su2t83?)lgZR9FU-R-Tjr_N^lY>MB4}C%=V`Ts zs|8uMhhQxLd&FEYWm>EZGeDg(f{{{E`WGopO`d{2C6mOuK#Q}}3%PJ0xP-ZwI)=te zIt3ZQIv0Zcj8p9u05Z=AS4;!Kn9lEfzSh$1PTOw-%_mk4kcVvwL4xm^(UU(!qKjo) zLp9MlTB9a>r&V0rj(;ZfLd#{jV1*59JhdL^AgHJzJrq8M5D>H|=$zTcd5$-U76Tq= zlr22z?AKhQ4}S_C455uylmVm=Le#t&12hQ}e=}QHn8##}sT|E&;YHKGvqzVCb~!)1zkFrA+ZnHuuEK&B->>Jq@d3^&*QdZkIcA6O;SJ78lGq2FsYdLHvq*u z-tmr`X(P%>x5ZfebF_Z^=#b@o`&V&DJHz`PKQS|bcDWmtvLD9re00a>!#wt3hTlW9 zu`Q_lqZLq7t)~j7@)U+y9RQ8YrqTL7s?e-FF zPeL<+{203o0-kq#+iq#C;I)JRqeCXvFkU6xVj0A3KKj@L`lI#!{*_sW#CaX`#aVv< z`uBg(7ft;E@R+|9t$D`y0Q^4h{LiaWYxGc#8SJcju~-5xZqdG<6=P^OvOgWda9pF} zeq`A=OxME^#FpsJJ>}=1;%6OL&@!&3bN0X>mWWXGeA3qlRH3uny6hycjDoWEpT;dz{La!K;bI8DN**d7cRdt)?vF3XKJ~H(a!NP>*H71?`3D zLY=W>l4@`%kO_b(0xBH9p!H0bd6Og0!VLLN`xCeT1YXt>;I(tlj89Meb$|+I zJD2m>J`VE~%slh-wndFxjb7`Ahn5H(1|q<8F~bO1klqrfJhP+07htPT|z_W zGp9{}q3O7$WdV&Xz}+$(cWU2GXZY+e^|t=DN8pZfc}A0a)S2r7k95)--JmvTe;NB! z#A%&#!Nu||+k6EykJM(gV>EKpnZ_~0msBQn3HmB<4Nj+xg8l>g`dkQByy@m=T~j&M zi{H|SG}1h`U`R8kswJ<^b|a&;Yz)Uc=i`g|bszv#OGMn`?6nsVEmpG0@p86tqRKgx zO^uIaQ)4*m;l)?S3Q}b(>uphFxqX##6qcO{2Qioqz_Er9%sToRcDTy=e#;CC08W14 zplV&PBv|*{ViJ}f$2&9&x**iLgtCnTB2oPj4p=gZmBx*dbnbLZhE#l}p z+%$->RS-L9L+#@q|M&}N+Y;aRFgHa5XKOOl)~7!`76bmdpW+1H6KR!$Bd0I&iHGQ*<=}RG|(E3EbzaAnM#` zhz*0f1fw-SvZY;dnmF1=1zmnqS z|5_IiZ0R$FF=O-(>)}75faBO|MJ#|JR(A{`^cclYKMMhxCy5ONkmJCrp}(XcrZo(q z!k|-jr>R07Cx62+6O}&3`N{&TF_wtqfDc8hvBWjsH3X{yf@gJvEfi`I`k=GYDRqY1 z#dfJt*iUZPU3ZVD|N2+|?9cw}N`N#Y zZ29?R{v&)!><~jf^q~)3ihy$;D*ox8w74o-KVCVjx%Q(H0D>qotM3Bz4#u+pM`&B#IyJKnQ8BA81z<*C1O>E~my-vk zYee5H8wXgJ+A6Gk>|-BeXF6U@Oz7N;vV4BM91J?Q_bn3TZ;qGiHUyg*ZC;_RAE15t zE?wvS!b0{!cHsTxokQcJ-Qwa7Y{t(ApkD$2KM$73@BRira0J4sz`$%|H1Q1vlr%JH zDKqw-fG?4ALdS1F+`v5v++ke&lkp0yI!HNfph?|4dTMiC8??yh1uD(SM(?A|aHmuU ztC8x$vuHm+FAPu!Ax&^cm@v#&v#(PK-VAF2_3#>thXk) z8m1opYPFv6EcSK<7eQImwC3KRjA;e@s6)y-*f|Vb)4W2D-r0JHJLTaz@Mt6X82_I; zRL)jHbb!S=m@X^~+zY<}gq~b$mL}#|2ot^zkkUsm}VBgMgSq4%z55w*!T7m zzv7xgkX8tNI0Qg_J{&cg&8?f3g)R{SJ*=OCf@3EC?(-hD(fU~Z5FPmK^I?$z%zaL9 zO!d$*ldjqQE{RiMBr$CcYVapnIU)uD082NriUJ9Rz)O7q-FOd;W)Vxq2--iZCJ_1v z#{=!K!Z1zJVvx-(B4jj)n22?&jCIStDkDr3pn-vtCdY=eDVOx=2*4b^w6{E`4WzO3 zP>58RbG)~h^EYr*pSCDq>Wv{$eSe&~h-jMDgEl}mG<@Pd5RYJq6$;H2_Z0y6$rsHC z2TdFvYeT$BP@2I)1kY->+hF^nc6qYdFCJXDr}&=tWZCp|koUa*5E56u8DL>n|s&&_us$$Q=j_Ob{s(agNSB^O;Fb-t&^XF)eZ5O>k;3B?ICV z9DINCH-B@Hk{cb7xc(sj_3%LxWb9Gz-~7$rycsiUgSos(>i&mV0%kQeDRG}~TcB6r zz=2;bZ(f-h9qX4bV42_Lu-cce#cj5Iv$-LzdJd8Rd1}r1zIcT3s4aOcnU`8-& znY8R!Mr;z>V0weHcul4)^AgOslT7^P$#u>B-WNtG4TdQAdulC6!DR%YWbzkSs2G_F z;0g_zsl{ChVh&p71Xmu2Iw(}cTV;LyPPx_t2nY~~dRkZVG1Ea4X%~4=hJY7=R?s8` zo)lC_aAPeuX(HS#<5U1sGc`Yj9t8%;B4C6TP5tzE?*a;8qd=nzEtNFZDV!P6umx^` zGBnbtW1@>RmJU`>`uk}*!vV+g!6=goTfUUwzF-&tL;a*Ne?!nIvRcBJ`6X5b6!4Gj z>O4n!g$`*GeKMd$2eXhjn+gR0Kapc;7bbqD1tu}`SE03FW&5q8XH54*nF?ZBKv;!f zU8$7!q=Wl8Xo7d?qBILrH}^?Cpds}k?-)y5RcP~`<4r#beJ@Hphk1(DCcrmsK9+Jz zku>w{Ge_RSkE6@U@QQhM1y3V7O0yzDmwO4g_P>Wk0PM^fY-zlRWnyfMIs4ia?d(Q$ zL+Rx5N-YY@2rZp5XMX7g-DbnMtkRwtaHe_FJQX$*Z5 zs2_WFJIzpFD`X6E5}Fvs#bO;N!g{~IQf>9onQG%$TX$NkRUOocZVaEK9)S2kGJ7Y! zOKmjYFChT@TljN@@wo1$W5p1$1ipI_n*PN^K0HD@+g!sfW?1B3wa)+mKmbWZK~#lv z1MmG?z$%7gV9^^AKg>Fx|NQ5_$atLdJ><9ztL`ZTSsp2*r99t8ac~h~>^<=cNKbAD z>-x52Yx;B59sj**13|)+|LuTv%PqGIVHWD1K7BgCopeOT>m(g%3q+~VefZ=5G zti32w#{;Cma;&iL#QT~DC243~)kUzlytU|E5n z<{WVW@X|IMY!RNT+1}m$JOnP+yi40~P^0ZULYyBw-I+_qHgJ|En*XH~kQX$Hwd(M3 zch|FnqCWs3r6uWYj09;&4QRX1Xi1_mRJdm!&GqJBcT`XvZMZ@S+N}3%g=OhKWMBK32nO# zsJ7@k_4jbtqwjk-)6swcQ#VW^1B6Qn;B*Gy&vL(|d6wQm52Fl57-Kc;3RaKW7}5B8 z*%EVTXV?qi#LPlAa|UNT=p1HzD&p3@nbwsG^Nl3 z{Qf;1@w4>d$-n!%zkA_(-}~N|x}4cC=7SzuHy`$aW6$G~OD*A&^y50s&WZp z^_g2yAXqqc>Qqgj2k>|Cef;jb?;byX{P;MLt41Gr4z&2DP8~`>}7~= zgxx53G1wDmFgVW^n;5L9jFyG6>^+$;EDUBO@Oy`UGEqu0A6Q<1HMiohUp#d>lT+L8 zv4jm~AJ6iPFHq7T6H||kYsfvk_^nRV507;UH8#7UX%pk7fiPSx2=LT61P%}D89Ve* zijI2d+gAHAKq1fAJrIU2tXMyV6xUx1{%U0IqY@^5(~xbKb@Y-4rHv<&AY&W&!FBVY z2=Yx94eCX^q*-k8GpL`^leBdHw>l)?Rnf*%nBSl`prqj7cWFgSY)<@+RS?p`tF%es z%57{D-4$TiEJ*Z6>-135P5uI}Dr>aj9R8l@aYW72(kNQ-LA3 zs3=gH-orYY7lm@BYhF)dQTjOkyqEenoCRrXM*)TTdpF+E%-%(aD;WF<;mklvk)Pnt zvt80Qu|Byy@c6_qQxgg`L=`3PA%vbzzXJHP-LTU^X#8E~?3*>}G)kL#`a`6Z2*wB) zAH||W46ib01wllAgG!BZT+i=7g=FCfOB*#@F$Wa_Qmr?5H|TrY(4q`!V!s&c;^gd1 z_VA%&8N4v)p?`sK7N#~$W|I@d7Z_r>p}QYe@qZ{gfY|F0cLe%&oc9E$-;%tgK0Mhf zzp}esYVnhgRUXhj1_4t6|1UzoUi#%S;<4NV@80o=PkdshvGv!RWj5Z2!8}azU{o>ZGTj!a&)ki>q;EaL+%5GDvGcXtLafLDbdd`w#nY>>Q7Agqz z@t-h;!Wqt4Fz<^@p@gMi8Z70^xyHH0uKN2AL;#>I0sflwAAR)EpW*jUL4Zv#1NdOM z#kuTDtVR!Wa68HBK%?IQz)#+J=baM({sdmE!~A~SIy%?~Yc=}-WMRN?3g%0Bt0v43 zI|G>(bcr|cmw)+}zkrn4#`N#T6YoD~$=~@7g0!>W-g|1J_4-t^SKb55yqvr*2RtqU zw5MRQWdR|ybU;J%x(p|HDV#$fi@9n@+w*<^p{8qi7R)Q=R7n#J;Guzjc9y5)U=z#? zhAM!l<=Jk{`yLVPPtfu@U?)((`uV0cfu@tr9S1eBcF@QozCQY{;3z=obY*`0kM!0t zVG`E?TI(hN0hjPQg%i`kRJk5?q5ct(Ec= zKd~Z0fVQ2sOVap*bTV>Ta1t6~_BcROIy&F3;DCBUI~0-;#%QZkF?NCPj^=+YERhfQ zohs0rEFJX&(7K^Oq~^ZDUI78}(7p|UU28)Ll%2G78C;AT#}PSNM|~}%g%Q^EIWRxl z=xLqJFTKCi58=b_Iv>*AL09`fu!{WhFSbd+GXg2mPDx>)9?SQ;f6CwF#cM2 z%L}H`*}h;<#Njw#jhs}BF~Lvh$r3)09vy`=teS8qZY)|&tVAOKZNJNgnJwceIGzyT zsH}7I`bW6=kTC`n0*nWcmX?yco%OCj&qbR3BqQ!asrOOikr!W7K@Bdkc=3n}yU%KTppZUzs%IkSw z*WFY=J}w92w6CH$z@LKnqe9B5f;+{O$63-L5Oi1-v5Y`4M{v41exJc&aAx=J-C7Qs zGEU8j{Pcw zZX25IJODi}pg;KFgHxF8FXVe@^hmI3^`oSH+`7b)B;wxF0pZZ+OU?H}TI0GDulH)| z`&4<>B`2E4e)U&>_0B7a8oGWwEzo;i zhdH=#Fm$H^qTeXPyqwR}nNUx7wN~fS%|m;24~{D{ck5J?Z}OpbFu#}s=6(mx7191+ zge%U!!o_5~npWYLuxHvpWqn~iWuhpuApn#FK>me>P8xwuAon>z&^o3wX=mg}{S-c6 zypbQ;E^TpsIo*?9=IHaLQR`LHRs*M9oWWIjCY<`XuI48*H^i)tU@_eyqlS(;A@agU zewuw<)>gsMu4L3@OOnn(t0W|GDYWGhv=Xqw8e%%?8htRRx5BZI=JZEYh|HupO(Rd} zETOp}2#K%Kz%Pmq3Rcp3+_KJoGD)BHurI8W zwC@7W=Ig46(1`6o(m6KLSWDwjnph_t6t&zqO<+E8oqIeK>4PSY8)^&@B8~Z&&i17^ z6XXRwTovG0rv^OEHLL*csAv15sub;WPRYco254g(1p^kr=);;}I-~hPEp~$D0haXj z#)qwT0kFH9rv#EK)|48Ng$IvoE63VSg5?{~SN*Eh z%cXJFHEdunfeqMZCVHjXsb=NG@|!lVXr6{_ijS*1$fI}t_1BjP3Uog>@c+Zh-o9tg zo}=%6_q%T+l=;hD6@b>exA6#5KGqnkPFXtzphKW(3M#Oi<2*AC zO?KtgRxsdPLO7VyV!-D-pg*^F@7`Ia1eOsBh8b_a2p@U%%{Slt=ag|5<*x<@@}j@x z)8V&f$2362*~64UFqz_iB4akOsw{l%YhT-i7v=N5@P#jIL$l|V_|D^8pl86q!-9dw zr-XkxA2^2e9V~kN|M4IH@jvo{Xvvso5d4-)Ojh$^+9z+?pOq&zG{-8n^3GzZwx2oV z7XwT$g4bM%HouV&q1BiN=Yj)5Nb^&==ajcU9OyFS_(VWZTMDiTV+GSl%RhjC2W2|s z;CFxO1CWFPfdf9nWf`_i5Qin_zcIyzuFbQ0{~M~-cTI58+^PVeChYdVGVxZ^O=w(p z)&^_R8dL;x88uq0bKfnPf7>1Zpo%{0ByEtP1N{h2r0BJ@)yF5(>s@dN*h4ltH+P@)iFvc8jS{ytc69AlU za30-2N~EFgjz{PIxj~(|#v|d77-ie{A+i0OZGa=%)!H`iC~#pFG4kL9pX{8^CY69v}Lr$3IIC6+MY1|BcLh}Ld2+( zZBl5B-5;TQ>``G|6uha2HL|aB$4nXkJqq|GtYn8DIi4LpdYUoWiP!~`8zv9}Hf5Xm z9L6G1VF_crO%Nki81TMf4PyvYnj<5l$1uZxV`zBd_R{d=SJ+SbK2~-fEv{@>xcFyg zX!NwNTIzU-zsdu8>X`i=`fVTQ!XNy>AN*UU0=C2N`+2aPRTlA-ecZ8{#%HV$U>a@c ztYARfAGh9E3R*9F*~^Z-_O-9Qi(pEJ8FOQfN%HzXSpt5y{G5|Pyf#O?%4?HVRBEAui85W>Lz4vijZDv#Lb*ndVHf`tr`Xn(gdkJNw` z`bB(T0RHDK^*L_P{EH8)oUT`gH%`HAccA_3g*jgYbZljOvbz<$LPkG$2=i|TX6bxLd?@9APc~Y=^=8Hjsl_qh73jQ$_4AC z4}e-KzETJTY5dqP3MB%rf`CGd6_S~nr>7Sn4RvvRNoUHYUiOvG1d4GloEf>M6R29Z zmJe4SXrZtj3JA`-Qy~8ZZl^_9bI*9LBCIHE^l78lovU~IUISOzr!7tL2nq^Cbs`Ct z7>h-%8VUdiiEc_Id3Ad9U+go$JEfK=UF?k5@4;TB&yZ1~9aNvxNifoJ(B?}I9*TMW zO>7lxyLIfu!#^8^r;bmIv9AF_BOMiSH+WZ!5#W$@4Dp|ts(z)>>Wo&~?Wsz?vlZ=X zD@{64>6Pb3he{22MK^mT9TlZpm(?B6H+UBUz+dtGJ($c3zxa#4_$35@*TL_^hv=)- zmGabm+VLfC;Iun^kK)sJE{%b2wHPqo3o6Jc%ey^)>$iUED{pzrTMjUu_1E|%u=PI< zVh)%OJ-hm2%>)1%OS=l1>0izFoxC`w0RI;Y{>%aSGWRgs7nOWWOVxuIt8c>k&OxUb zP5*TCH(6qG5E@PJV%+kISG?k@1Df*YpYJhUI8vLd)G9-xi1u4pq;esA=0YgH4Hh`b z5UPV?@C%H+GC&~@X34OH*}<~xCYZKkjWED4DOo7j28>vKFM|m#$A`j$W>y)nbFD=f zyG*qQqjRpAY2cso(3)X+v;jHPE0G8sWu znz`3N05WceKeW%e@i4J>vAR%y1(4`m{z}Ubn&@2f@EO~YfIs!48%Grx zH!(I8IG__f6ywA`u$_XxJ_fc^+6(-)!S;IJ@gV&p9tCB_r(>7r4S*5!BwwvCcC_QE zY>*?KRRDE73by`oii|leBno)07%;uBl#*i&O#%_doug0P4%Rj-foI|**&Mja4;DX&34wFuT^8}*x^T;>L{ zVd_NqzuuNYp}oCW>K-pu>a+MgEFWZ8;|l<3m@}|at31e~rzbm_>(?=3|1*l=zj^L+ zpL>i=&F%mfeoWs0^rY}g06~{XYVGsN){^_6o>6P$+{#)Pr zR)Y@hB;8Mu?BhHSX;$Yv)#*J4qE-i_j>M$+>=MC{r8ymL;aa*ww87<@4g%7qaEF1doy~? z7~fq+9SlqcEkjI9kgHf~V3y1)QH#Et+u}lL7 zq(I?CovB<49U=xA7MP906zNH;i5i84R6sC!ht@5V#Plum51^*}3fdHS5r9uZG_DF| zbQoheqyZ+Qtb^`^_T!p-8LTQR;6mQMc%cmiu&27)ex(nWiuDmn+^3)*xYMrKP8e;F z$^?;OzCIvVj!#P!HWX&aTOlJ%x@H(mUJ!N~!zloOi1)RHMs1vWP3*qtdgVivSOri< zgLE6;B4*)Own#k$v=UMFV(!>i)v}) z#@KL=2f@)px=362QGAbaDX#>?-MB}3r#{K!7AVv*!mzw3VkUnUzVeJvDw)0GnAM^K z{vt$hoBTbyTnpzs$0Y5F@*Su23ElC;#H}~J3$=2! zJi+_91qZ|JOo^Q66xuVrYGbiDyuJ0NvDq%60cj--UW3DBY-WRl++S|rzWv4Uw{gtd zU%TOk8}{6O`|XoD(&d`*8Wgv#vvBNqq9hX&s@w-V3u34{+dl7k&znU#{Hf{b=}(Ha zYt_&-5df$(bt?34z4g{Td~Sppv_AXU&+em=US}HZS@3_n4%6>}SOysZf9~ABfB$h_ z1Y`aG1p$8=O3u(u-gBPEbm7s(tlF9CkHLtxU~=8TvaX#l@a@cPPNA>X1w7}&U78ka z%VBylXc=s9K6ro(-|w!O*BMSQR2XmsDkiira|Xi&Ky{D{a6oH;uLrQP?HJr2P!E%@ zj2g2xzkxu^%e`!Vxy3%~Y`6mBa+QJ81EIsf{9{);7^vXk+;No{?G@_Qmcbdk1{MoD zCO8X@S1d`Z==ekxQvjj_cFEaIjSm)XTRd!YlECAqj4|yypvj%K4j3^(kz!hajgSV9 z`GP7SP%^-#Bcm1){T>9C(ALR|6y%d=V;EWiFSJPN8o&rc4~?5o0m4Jzc22zDTyf;h zMe-scbn!JM9W)66AlgVj93?{_G}A&`VIW&MbV7Ji{a{xKe;^SM$}^ z!M@fc?Qb@VNx~34Rd7C>HfWaVp;c-jaL(GgS1^A&2j3%&0eT9ocL%eAzS6)j&6ZSl zzF!biU_lT`z95t%F!6k{eDJ(&cAQx^DwosCewL0&IKk?mz!q&t$z2g*c^+C$v=%rn z?Q1O_As|4DLC&PHzXk$R&>_vkW3!HNtl+67Kw8jwk#G1M(AP2QqK^;&9J7YHN# z9~BBII88vg@@h-99em+G)(-Ne_I#&rc|UlyxaQc>;zS$lOYiggGZd94>30MT#$Jp4 z3CwpGS`V{_fa4}jdnj<2zi}=cll^kfJiA3yN^qou7E zUQn<0h9>)^;#T;?u3oXX6QtM-0~m!zlyr!SWpy%A8I{Zr-s9Y%-#tPzkhus0apM4S*ys5ncfQ!h(|w-SkpTU^mE*rt!jHzE~m4`g<>e96?Q&u>}xNA1w;@ zkpPms*vXsxqYPnyDyi>!!9Ejkn0-j}u(tL&{h&jhns^_LF@zh^g{4CcmNIO(VMkM|7G>h+_;fkOJIkmHpxg?}_UQA?aS~E9 z=#$>ooeO*p1PFy6&SC)z2bLs#5ipt4V_c6mKtkwZG)QA3I365B72XA-1}cb3TZl*g zlmY!^>1yLzM4L{aSb|ZLZkl#cWG(hDV;@i z?Nk6| zGh7Q_#UJ1{G})JOeDjTOeB;Fg3A%7S#s)||^@IJJV<#~Ow)5RRZ$`veN_}t;Lf;o@ zRmYkL0C^2~5xcyw&S}?hW{8Mk6vP_*a_A# zA3ZUfJ$i!u;^&x4ZY>emM}So0(z_gn?jH1%BLH9~%r3L4Yk|jYIFi za_JnVh5#AO$;((I%Fc&ZX(R%KLXK@wbJiFk!;}%qf%U)+tA&~u)Q)9%nEajFPtI9V z!t4P_@_`a)V=`I2>t*iIS6od@+xmvHowQvn8m5AKw}%MRX92-0EJc#AdxQ8QnPjdJi-I{#2y2r z7qq2EA274;`e@|I3C$r#o%m3YGjH3`M=+tKk*Ak?K(I}`jB;ugL1tih)YwJ_(WeSbX#w)`RdaG z#tP{WOrjk;Z~h8XR;fwY-zLImi#-Tp8im?Q*NAn1!0EC=tsIDGOj9wI?00|pzI1R0 z>~@E+@@(YY*ir0P=iv>D_;ai*cbZLnYCG8j$9f;R{UaI(V|b;?pa0){!y(H58|vvQ zu?hmf0R(_ufEz#0q0#vl^R#-BcOVA5SSqIC8{hz0HRzv9q%{=)%$OIAdNU|7VVqmg zv)>=1fE`Kb$HJ>#^{OK{`#l6O7!vuPu4c!n)tmk)=O?q`Xmh@XQGB9Xscr+zcB4J) zggb47vk-C_eMe>nGvYr$n3$*lm@}%lM;cgf08IdoputZawsh8$ISQ0MlNh!dWnwZ; z7sM8&F!vRhRG~CNL74n;0{!~^hqHShIGCN9VUKl(3I98oSzUSumy3;646UoSOAUkJ z&$7S9GGMg>rKPZy<#j4nybC^42Mpk-Jc@Qk8=_9QvWNB`WKY0pJq47+WMQrVz01I~ zN`$%JWoH0pNi(&nY@7K>Bo5nV9>4^@V6K94+>zO;<=K{0E_^dx12_oqik6r=c&Yir zjs;dKEkhT~XeDKCDGEAsdAZ2$2a-8sNq zGqO|9ML;U`6TM0~0==^)3OJ4d?~wuj0Uy5FI{$@5fC~bU{Kpj!3N=ziLB*ZA8ja*L zVT^yZ-AaHopb3B}Jc0FQ2mk|M)Jy?Jp@aSD0_37zq7B#c@sziPOD?=l?WBz{b{QLL z%^reB%#rgw7k=_7o;(j}6G8&dXvvAGFX|;R%Q&Md)VUj={aqqLUjPy<)Iuh7vR!tx zSHZz}U9RRp+hI#&d_)jfw6_O+AY|Va2lT1oi(8c>U^(v6=~#nqF|9z}Ix|8e1u32S zJkq;qqwS+q-xzz)-+C5!_u4D0&@k=-%06m7Q!QE?cpso=9ihC2KR}li3r=TAaoZWu zE)&fNN6^LVq&IfhD&Jw%th|N0ckf8>$brl#&OkD;e@$x$_%Jan4?u~)JIn1 zL@AxmL9AWVx-Q=Q-19sj1NBEu(79jdWm_GY8%zxC?=-Q}A9&~}=Luq%&&T|~^OdnH z9$xM&42nAG(cVS?Fke>!w5th-b(#wtq0Dijtkuy>$0tUxLJR|7$&6mt0gWBm1a>tb z@G|NZCTkd^%wJP5HgEC=5Un?52vW{_yTObg1m_Hkfa~0G#0{n^6K&HrEhd%FwgC>1 z4c(qHD4&2m`YV`c1GI+OSvATf-(W2YK-NW|hIRm+?bh1jX9Qa!vG+=v!^umHSw94` zR|t_Ne)o^>0y~pLUl~JK@}Q27YjS6-^_*CfaE0 zwztthWMw>sUKNWR3m%r^#hH4T@Cj^ZNVBSH3bN9Qyf2=Ni7|e!DQ2%pX7}84PYezQ@LdenB_bMi2x4&j8{hcGUbWrz7W?@JIi8&F za-V5JW8U|I7rfw6B;l>R2p@1Gh_%rE-?M*z;Z)@zR_&F>3+3Wg)+z7i<=P1g*a!ow zpudGyqd8D52VNDRDid;^I(dh44M6Z8F~bwXz3Pmuo?9^`nh;!y=mxv`FkFdBXO$c=6OJ=MUk2=|-juF!g(Pu-91Iu?h zft*YkeQAG6>kd;XYOR95k@y63>*V3Mli|l$;u5KO8rmmZ6}SenLBn`<7=pwpRg9I_e~-3})SJWB4Ta zn>zVkc`7)C@WPmKnQ0dL4){s?xJE;$g#R5k3<|~$@qeLDdafdkupD&jOxaag1Au33 zv0p}dZg0e**P;q7Mq~?1V4GkfpGjw9P&J=GxyWmS(;4@Ajp-{_s1ps;~kG)@Znb ziN77x0-R=B0Zi~`+Bkx<^b9vEL#A{=S9Ma1P+LkXhICzWFDH<6?WXV*)gRMV!J&e9rfj# z!^Dpum3|>X8!nj#nFUzK>H_=Ux{;o)h{L6ZVQFBTC<-W?1&s_MB;C0rNQW~YG_+iU zU+F-p>Air#y+SO8TsX7tIzvYN(8w{&rS_1WKrfxOU>V)gde*dTQ72c+gqF`sra&IS ze)w*b#$>tT87)ygtWzxd5BW8wHlP#lY3yyG;K3MacN@52u-fEtaGsoFZ=DBBl4I^U$Ti!;o3dYP3=E_LB9RDC;a=m>k6Hh zjWFxj80&S)MEWc2gqvKzdprey1-k@mm=T{kz-dj2nEWv09?XWj{DyJCO!Qz60RZNc z>P_8o#?q$PMSFMt9DWC*vP}XQOiacJCsdDf8C4ag)*{a65}U?6dTJIS;B8P*_hp549wjcw+v@HJV^yys%Vm@;wky z;YcQoP&3fptcvuJ;Y$}aet{t@2Rv^eou(#O+8*<~?)OgGWEu`^qaHj1eFS$2;PZj1 zeiv8+qU|RH0nGIRiFIuO^3Gk8DzwFz9w050;(5v-y;`L`3n!0qA!KNou2nZWVG$|C z@W=`R6`Tw`Y)9@8X`mb*3~d?!ciCS!<%L6<0t-071x!^285v4t%)fmRp{W zz_youn7^DHz!{n9mNnWitTdHlXps2lxad6Cj;)9WWO@)ij;|7XxG+pHtmu9^!t*dd%{)ozoWAOl8mJ%!`Z5h6`N^AZ6o~YpkoM*&BUhu9@mdaj z9e^Z#rE@TPx$|HIXl>Bst~H@|&MFB35;jhGv{7q@5BN#G=H2FOQ5UsO1v_mqW@@YT zU$BpL(nCK?0t4-_E-@CUtNs@TkzqvegrG_N7!+DFQZCSneo1Xgf}&~M+0M8J4q>B9 zS{EMVd~8Td3#SO2=XWz8>E)gYbT$G6&r)aWlAaYTX$OLxp8pCFmg7AwDdrvZ4%#K) z*S|qwOhL%QI_9UA8fhJLwG7ha=`2_41jLH;mf_e5L6m%~Tl5d$uaFTAbqH~N97e6Z zZB#H4@D&hBWdu#9WULD(qyd15b3nbNqjYjCD3B-|#{51)fMqD0*gBtcyhZMeS%orx zdpbpw?lFcGNJ#7Z8u2n1yS6!|y?A%D64Vfoj2@{V{Q?`r96i369XxnAJ8|L^ zWtOr__dYj!`OAMIo7}P~JNU@q?C7J%vt2v(aP8&Urj462EJ)dnH{Os;pK3B_(y{$2 z^>-e2{?sX~0Lw64B1~cpaLu#eTy=dm3a#mlL4YRXvgkM>BreQVt*gh}X%Y;mH+7fc zYIaU@$TDC7L%>ep5_CWq(et~F$G5z%q;Q}qo_`8U_L|$~3O>@$jb7ljfCTg5VHHT` zVi~?nTM+bcS*4&vVL=0NQJQ<`#ED+qX|T zSWk4Y3vi&v1h_i%l=)l75IO)6fez>h@WV5lY|yR|lmvJ!1U+MT353?o$aK_SE!aca zDdbQ?t}&i)o>RC`uqu^@qC71yZp|y;EwZnGNj=5giCi3X0C!lM__xaH93<6{az`*@fP%4p+d0W1g z3frdkE*v;t?oNoN)p8+i1q-!$?oxd5e>EI#@qZz{7g!n0VIXAKD2jNsuCc?nm*K#&Z#d*fw%8g#o7i0W{W# zC4vZK&T9+oE>o+jrBere5@-l1*gz-pgm&bSpLt!RWsFNMguo(g_#SkPida9b0+s_g z_!D&@PidzWNgAkuOEb&$wEq+|qMt~s6ROvI9qI%n%CB2Pfi~y60&75~b*C;-9%-B^ zG1yU97|4$ofvX<2iNB03eP*1l5JOuEk@Ow4=AJJpJxn^9o7(1BAs>YiTE{)!Rjq8& zjuim9$|Q@1V*(o4Uh;EUr-Ha`G2dbZVTKg|zRv}xBJ>GhjA>O$`WXEcb3SZV#> z5CukxnPMjxx*3xF%PU^-irb(&BwRc2x5zaW0M6~jAOGDS+^Jg}VNPO^P`|Bg|b8XPMtWGedV?o3;P|GIe3Z|3C}*41@$o96$?$Hgv9*h`<>-(6(3~ z)9alt2!-H4{xJr)lGclxty2ep1|U;|7HWo;*+RSLu>kF~jy_7~H*Il{paBP%Fdjrx z>%t%U+PwTKaL{1J(qNM_n-}xxmKTn25X^dGA7BcC=je|L!e(7iS4eJ>ccxI1tQjpQmX}>ev(P{7z{IZwe)}QDKO(6@bcsyJOM$@`%z0=v!BT zk&gg>1pp6eqY&ZYR8|U{#5+K{V~kK&``7UvQz0Z(Sc4?d2hkVS(Yn(2R?*xn$3J07 zqK}IRpju7rAAZswl)(7)U9)aItSs@Kk}ml)@IG{B8$*7NCW5_!Qr-gx(7W4ji}yFZS_gwf}FW8qrRBGcz;A z*S+p_hr~=Qn?{Fy2+e=hd&7KdNss+<{I2OiZ`04=@WHUn{yQ&Q6R<13?QL(n1q;B6 z;LjlN-ZSku+h&+pVL*eikAM8*`w$3LknOQLg3ZyGbtlORs8!-Ls{9p60tWmp zuvTA2rX!Ke&mI5D0;Fa{G@DXc@FnyE>4-f?x-qsY-4J`*UvcGC*%dE*ApuMp*;l@D zYj)4QcV?p_BiSTdnSSX@U&=o8;SXj1^iThUKR`3vzI|KlZ!R-JFp9D+dd}YLiXZ#2 zZ2x7KWgD?1$zk1DQVW1P?djZSP@o|+-K1g3p|_y1U>hKn0Y@T*)&40Xmsp z<{p9q*PDP!nj)YEJP@IU0mcAQ!P`0kIx_I68_x)=0eU`Q8jA3~%wC*!OX3!LC5WGb zRfYc4NspXpLpNJmY@l`F&kzn|ltmqyJhKAbZKJUp+_}*JI4ywM{q0v)4DG8m#`Zul z`dUH2jb=P;m-E=MDUQ<$2%G|9fSy2%HqE?dR!1N*u+0inH}@!WaD;!VqK0)iEKKIIiMEH0To}pxxNr zYc}=}F>+_8)!Z;QvoZvD^Xiz>_dfb7L^7gmC{T4Bk_n^h+fB!a2T~lH_8K8N>1q)(ycx(g7_y5TYwvoB+Gw*))yKgZQ zrTS;!k>314!+jB?1K$6a-~_nE4u@uM^!9t+^PVU6cBQ=fzGS_zR*e8A6KuV@3Encr ztugpZotF;G02G;%Emd)jtHB7EYc0Sa3WI2KeVCUUz4uGQFs>o=1T<6_oGhWlvz~A% zBAfwcXmi+WIRSpo9t?=}LsoXAU8oJ3W&fK71Gku>!aOG=RaGGjrL2 z17C693AF#e$__nzD41qwwJ>mrTO~a3(2z_W=7|@25e8ZV>4#vV01Iw&A%{-%#%+zJU=7I^hwqB2soZ$AYyKP_J{a^75rJT=o)r&Jei$B{H{F*)Vu zvswV0rVtbaJQqDIE;Il*z5rlpp4@sRN3;NT@>lZ?V1-uJ)B0&Y(U~zE2`SU%oKBa7 zxm_(XPUk-aoMhP$RQ>K@-zX?1?ObaM?cr4Gb|b7R0OmCUhT$V}JUeyzbZm|#AS(n| zH$g(52BomnPmejeSx(SYx(@1`(@9#Gw`O^-NpsVjtsnU*1TABN)(q`;HEPqTU0c3F zl#a3je8K4hro9~R&Jh$zV}0yb$A-^&dibpMRUojA=BGs>?nB4uYZCZdtCK>GG$DHg z2(PEpaqQGZmF1`2S5WX-^N)5?7ljHBr+Dh{lcD+u@4y%W*BIl{klCYL8=@S9FX#|f z1M3)LCH0~C`8(oBuo6SR1uZb`POAb9r)bRu2$L63{wC!0;i;AFT8;;!(9*x_QP680 z&ws*3^j}RiTQUCt06+jqL_t(L7w)?2t_!Ze{`#%NLs9U0B6)n*%%4s-6p%gM^{#i_ z!ZPtWF_WKvh4z0Rw8LF!ZB74C7=P@@AIL$4^%&)&@F_NccmXfji}j%B?2aMm*ZO$$xQ1CFz@RflfWN4wu0{`Yi-==@qXB0$2LeG{7YumA1t|{d zlhPs@82=oGpt8aZ^JTsi5Og&_1J`cj!0Um|9^;f(&n7mMvz9?d@asZYi#fv(j%W{Q>NFYr4jJ3 z1gK?dl7}3c(Zh63eVs#B*ig7bI*O)+wSaWSj{vO#tfg~=DHibJxztX7NfXPpe-zTp zFF6B}pTZ4oRFLop--iI_lwNbY(*n|*3Lwi4G0t$XW1ignEZ5Tjs6bc0diq-$Nj@&n z16DbWAT4O2opX&^PG3H-F@}dSMPky zYhH7Vm*wY>kZG2JwD`V#kj^8p3H9Xmo z%a8>B71!@G`!GJaHQPXdp2>-+tU5B39eWt?$BTanABfN}U}QK10YuKpIycI61Eyt7 z(hYVIQWMe~Z{G7b5}uh|#LT&ZxAW$#(_AL40tgl0zj5wEgMxXwxr}iGVyP5)RjnV) zP=Ug~X)c%Mp(*>lq5uSQ^vE?zg&%>_^t^ z`BmL{{_cJ6zMNm>DydXeDkUqBOtK6jbq^TE#93n-2b>M|A71v*v&_t(v6ok`>G6zb zjaQr1s}T!h2B&TZOa|Ek3xR|MNQfYiR0>s6y~;1A``(?;=X>rgmq4LZLBehSUj6Fc z`wQpnv(G*|oqhJfN(85FvLsj?1;Y2mn~Xj#SDsS%XuT<56a>!CYPG9SMCgF*xYWT7 zjf~QzTRwdQ%%zXOxn&~kJS2z1htFA$hq&Yg>IB2! z*XPP=jp7aPeynfWX&*@2zFYdGC@WU$dnXUSgU?_K_^mjKpy0K=JzTIQ5%z=?;!$(O z0sTfjPG6{)5iyuL4Zt&>P?xEFq2JU+9nzbE+*K)VR+Qy}^wk2>UM?mwoW-tRCAd|1 zg8{~@f6|-dXN~c+M#jK;w}F848@Lz!ZeyGj*S1AsJ$Xje3GOWuF9vBN>ch~_Bw2&l zLU?UtpnLsD^^L;|)n8msi?2TgF()yUFP*$5yz^4Lor@&?*@y>kr}+Mt%=b^lk}}XG ze=mID3y&xpm66<^V+_65=Q=X<)OXJ1_tM+vvcyx$y8im>li&t7#xXAczYMHy(**y@ zul&j_{9aQ4!XzJ;fKDmuzsau-bUNJjccU#|dGO%D7K39K1Mf99SPlBg8gA;}X8(cS z?pkXECd=e_ohg9YD8j!VzDGI_nE~TlH$MV4^Zg2c84B)d*fmUtYG44)85e6<7cTcz z5M(A=C2&E5>P`k2$!=g)3Ql)4TfrKI#lXeL>CaNT)pfG$ErOlfts!i5 zvu>Q+SdER00zXU}CK;v*Uo+r}*%iuEaRC1&w#6k294H?$ z?O3b8mmT`hGW^V(Ep3P}Ly$GVt?+bVF7@_fIkO}yf`#%Gh?W&R(%a%vi+I&QNra6e zRe1DN=zetvKZUsSyIO7~unyFMa|1E6X%l_ndn#=TEI+x;d$z$jdYQjM(3AdQZg`1= zOsgmX?#wvH=1ND%&v5Y2;p#A-Q%6s<&*Rk*6s;p{)qL>q4BIs?qOfVPBcO@t=y4AQ zP8CQkaCf`Q&UC~OED?LKLisBwNfDyKwVo%ZK8nCq;nn>sZtQ?-}c8lV@2 zw1?OP`&yh)T<{m+%U7>izQ5h@N2^=KCmtJJ@nAoLQ-SSY8-}DChTaTBG=GC}1S)Qh zB|UM*(->!yDTF9jXi$zj+$Y9L82AZVDX-A3(+J{DMJ~2Eip)wopmf#G_GxBJz@$H@ zlheJ}WG&`VSSCKe@#MxpNsPrfNIRogUU=&b0-Dn|vkdS~3(vjO39uOALD2C+}9 zuQZ2Q9@zKD;_+_gDlJFMeb2%5pa()gG7p9n%YZJu>usV(Cc*%-L4n$y|gx;|>Jdjkx6|h3;FLC#e@^=MH@`Lfz!`YX8Frt9=hWL@t0i7%mJC0G9~wNLrK^@8ECkCEN`h96?(Z;1n3mR~LU(*@G{Rp25bIFE2iC}RPDVhL8sO!c zOWkB}Q2z>2?|Rlk?p^<8|r5cl02bX4oZ# zC;OH3j^@%s6^r+ z;j@zz%M{Qko9G2=ebD6)G&j25TpV6nYxd1Im%DGe>3@G*`O!)I1Dvm=FKR4%9{STi z{nI_x{I7|B#6nfEA};-?EL0{c86IK}+8VE8E0A=Irs^J%l&F4S^WvT3|8{ESi+!?6Qw^>O^$DhbstXwOiRsQ z#wG*T`jW{uaRNnnQeF}Z!E`;esx)koL$U1RE5dS)MclwGkFqi`JWy@jFoCduxe_#G z4tnReTTXsZSL`M}#YK+{lzCq3^iY84dC;14ZoCKslo=SThm6}cm-%G`S{p8vf)Zqh z0zzA&NQoodzgq1I62*nW$vJQ%+Dkd26Woexo^us~_*kV)S)M2y^t4`qRZ<9>Z(o#q z%@csAR~Ifw;ZPBY!V^L3b>bWHpyeP~Xsb`Uzry?+fo{ODNMPk5VlbR~aSLA+n!W^2 z5s1lomgVF(z19JSCPP;= zrA!4Bx|MLH9l*(_(@L3!fMV=U;|C~4U7G)z;FfFD(bWgdpztcZr6F= zzb^eN2vg>{^kEcZepkdHumIk6E*WSkf{9hT| z-9Pg)KXc1%x81gZi0>h^e1+a)64ZIe!ZTa}_%Ig0RLNr>{_uydc*i^5@sFVAhjE$x zJ@~q>GoZd3%$r_X)wc}v_mNPIT>rJr%%zk0Z*82-Kn7rH@BF_3bII947#T3JW$ap)^Un&7dMv9I7_&@0L1Zw( zUYMXvQ=VqT^CVjI#Kd?ttngx$0`rvkJ%C(=1UR(_UGLx7^L-s=pPk)!wnr<==fe18 z>R3{G4-^XRENcpLnYPMJlN|y*vRqOR2^A@566A%z)lF-AT{=dMxT9$ws}U4H&TYq9 z1#pF-M_>(z$li94ip< zSMntBM~>slKXMdHeF4EgT^&aFuhP$YWn!t*Mq?oqxGFRQEFT*l9;}9kda6yE z#;b|34G4DHYyY&c@Z*tyP9Qw{qE0)r#-Dz2`UMvSbizIR$^=SYr_EV*n$F{Qlp@~E z+%`?qdqg|PKM(F`Gv(-V7bfS;ZL11J=EXsb^q|BQrzErI9@a2r1oL=;RO~EA@6j@J zU<`s@0mf6>DzzIdxX!yJ)biau!4u}@{3lmubJnt;C6 zKtb+r)p`bNUF!qzjlM?TYWF<@tM&g6Bc%NTALV#AQv>iU`|G9PyuloI4@-P?|Nm>^ zA8??ob2&WG{&PS5(?9(M`m!7OxC|}7kMAdCWx?k8{r_oE0Biycg9l_e!@bN4eUQ12 zU){EC+rf9f^PRW++OPfEzd=i^aqXlAetw(%{a1QtSs+0&d+?O(BQxGCg5&i-`hPQ^ zOtbtbpq0J%+%wVDeWYucAkobX%dYLSh7P9S&1- zx4l@oX#R3L4+?gNJ6KYfWmkfi2vSmnVPUQllw@#SSOg5FJSWq_`ftLJZ~?Ee|GD|Z zwG_1&GtW)Au3H|T7>=OL(j){2W@v>RK|la7CVnrojWVMqJEtwyS(1cs%>1hsPFrBY zrdWB^=h=QUXAd{f=W<<5TZ`u^iY6k{bkuYaF-Oh-PI~gRg0WQ z1E&Hxs~=Q6_^$A0ITY};1urG)0gx>!)U@OgQ9N7fP=FYiW-ff0GBh6{whnCvS6cCu z;XR}MW#mqw_~+qo1IC*wTDeMG0qs<%Di0Eaf#9-M6_ypY^p%+_DC6oy_-8KwUHUY3 zc4oeM@ZqWIAv`jN*^FtHrIuN7!SXQuBMbA3;1>&C>z4{l9Ai-4K>q+ifc@2`%@YK1 zPEJ?elnDFHpDCljW}XG7V1z{lEx8b=TV+5xpdfGq&Y@G|YE;Hl_VfrKM}buuDs9p| zuPyC{N51E83T7-Ign2eg_b5}CDV1KZFIlo_U4UgD^x$FPLE;Zo?D$HF#z44+zXuxk ze$TQ?WGNp7K^R@-BAruM;PNdlfFHpvipMevZo_`?d10qLwp%!z0&*O816Q}PC)_uY zl#f8yy$mbdhpho1>+M=2LZG{^_U?BdL)Zg!`v3=^u(nPh^AMMwkC$%-ukW5a?zjWv z|6kMoN?*!4jRLa$-LifA_89^qx6p6@k$L}nz@JP0)aIU+<7ra>Y>f?T6Ub*EiYu{r zUqtldJ`{jE{@@S(;2IJI#Vzu*wEX+567j+*H|p05aMe{;eU8ENTn5tfz?*3x8H0+3 z&T)OMIy%8Bx%mmi$abXTc1HU~1iM=dcN>J%LMRxlRmc7B{J)8OkQ6*-a33s+aj%sn z1Cv=Opu!Hrh-3gT9|U1{`;@84XyDyppjs%Fq45(z2~m@{8YjVWHO@A@Mn10)t-nGr zm-DkSFoVF13vkXlOdL{o{bCDian)S&Fr5ai>>a|Q$KqV1Of4rZ`M`%u-R*t{Q7*=C zg^mn$k^Ej+3;D$B!Qa$0&Y?WVZEGL``vJ>BHf_A9KYnD%PiNSYlf0;yR3#YQ3l6 z(37BN!Z~_jbw!4g2;#@+eWe1>0|U^w5+?B>+dCfY*%%n+J9&o#qFVL zgrK=yJ9kyPF5FU$kC500Wo{maozoBl2qfRtlcW&JvNi;bs|%tK5vLIxSUxy*)rHv| z>ni-THv(MPX_z<^NwN5~^63{nEA&S2CO(YW5F^~mwPofW3Bn^%L+0K2 z{O3P^AIZ$dvHU-a(f4WS5b}8Xgui|9v?>6nc0Ow#{}4o6iq${NJjj>7@|CY_MJd>1 zo_vt9uX@$14#ISPlxWbe zd^cg-e*4z0P0iy&Y~Zy83-Lm@%MOIw_Jp{Ful6C#MCxyC0qWG~MVb-#AC4-jx!s0xZJ4u{y`_D`-6X>@@ zfZy@zzI_i=_dmEFOW%Y#-Q?xh>%gop!lS^eLW5A_ViYp2y3hO?_}2@uvNX$7M!j0- zW3@)2%h%YvX|fujt~v_a#Asi&c>~#D`czbaAB(kV-$wd@Q{WTf5i$rk6{7}y<#x^8 zC=MO3pD0rY5qAn&#~cWVFcn~htr&KxsC^-R6xU!l3K)n%X!1PoH;8$0DnntY7lOud zvmEwY7r)cj+~@VwAufPExRmfz0JV&@^5gB{IhUv=b^yFMTa<}S1?$wl8E87(Q2>V0GyxXDuA?V^btE2w#>4W0YH9hSL07MBtjy1bNV90ww!aHGH>&$y2 z|8IURM8dLdRdBwAz{p?3jlrG)8dGkxT_IEA|>8uR6^HaaqvobL>(bZhJ5T$V^qkVI|Me-j; zyUf-lWej&NJD&)%a8>}6|Ao5{Ic_`BPsLQ$mwTN8II{UtQOjH(qYSix5MNX15F zfQQ}j5EvEs@@e5$&ME{H+Qw2$pP0wmpROKZ+2n(`{ioQ4ab}TrBmDJT41l+hk#Q74 zrdS9xBMWuaoO4McH3OUT?bfvf+)C5*3pjD(pfz$a%zW$KYTy0`5%>fPG8J&a_6^nL zm+Y*zZyB!!@e0(shC(-MPE7!#fr%?CD1oa4ewvOJ+_-d2tG|O+UG+`s6n`EHf6wHH z@H*cUoz8c#SrjMeTD&OKx}hVnVax}*XW*xrq8NxpQOkvt58_$?7UiAxS)y=crAT_y zXDQCE&!1B-eB-yY*HqBjZ~o4G>Y+~i)g`DdF%0ZHYaN}O47ST+eYv>nDZolHzU*s$ zpM~}+qcrkM{m06rda>blt)nDvuAs>X@o#0$2Sg7+AEJ%DVFc}o%+tU znsfF(aCUOutSam9gc4Ir&}*&sp4YtQHOs*IT^`FrL`Xg%;OFZm#M{zMO^`;-(|QQnSiAV*ix;^U9~Ok& zL;BLb{rmS9)tYBe2Hfcn7wghl5grOr&81IxMAV%3FrdBzalZ+z`p%cV>}5yFAo`2? z#>tU>cHG;#w$|Fs_N^Bn?UdLvC$lE+p4VN`1uHse zlNOe)-4>R0$ry+_0BkD=C`5Ab0O-8$ntyWn>mfj3%cQj)c{PI6-S(D29vf}2{qj+= zEgm3q;<0M#$PCIBbrbA3F*;dIY}{ClZ=67&5M1%8~-L zC>h0u5Y8f)1W ztEs5Cn6eh&X``N;%!fu`YJp0dA|_%2-1eflbs58=pvTSa_>#u7=oOaf8)(N|5a}P0 zN-xk-Hv3$%k@ z{No<5>v2%=P8%pvJe%5==y@(tj(yFaWqL^WE(ctzmvto4xnMR`o}mGYa!SPUP$#Xl z?@0K)r;N*JwMGwr=Ng>WKN<$3W6%CChzn@m*T;#j$QTB)kLA9i)|OBLc_p- zg2zHw2B7Ul0SL}fc<3{yr>Ku%)a}}kEGNRxLFx-!LpQPbh@v=KZ+XjGsF}Lg*MFGl z%ccA7yKj=Ee>>ru=PdCL<%T~aA8HDD>*MHrmS6lY4@a@oo9r0*p8F>se44&=WEwK= zR%G22R{u8e@|Vo}XUQLZ5!^jZ;GC@H8BqYNod#zVkRRX!SpM6vqMwb+o8|D|*!m}b z@+W%~s37TS?KnEg=u8EFwR7jrId)`vVArl)2Z`1^!Zx(-UIH(PFj)uQ?tT0AP27L~ z{aba}fAydr$*Qo795&%s%j=`wRPd59z;gVzjz&=ca1!?rqg(1Ws>{ zf*!#RYqD(EXDk4jc`wh$t;*FE+_A{XSZG>SuHBZoDhMFP(r>m(MvtJ-LN%gWOOFlG zBc#ewuVUpXuoA46*JY!+e_@s&p5nqp;kL*Ig};`T6%_%X!c+(w0l+(EdovF^JQwio z69Bc(VAfiDKm_i!nvJ4HxkBLffJ+6^!oqTttVQP2r>59b0pb6^g9oY;GcbQL!1bD7 zXJo9pc=z7w;!7^6w(QuNIdl`p96K>XjKD*j`>TWGZ7@rt%LKLhwG3N&jcEHSF%XMb zmI5t^efq2EGvgKZPt8De_b0Amb!{6jMhg5VIedarc+6a~PRm$Kv0vF9?F6l~m)R#;w{C7QYC^Ipd@)E-xQnP?Ix z8`L2$K>A|R*^Ia-;r0*~FB-(2UuR;^WLT|RxEI*BP*ConckRC!;#sZ_0N@$+m0 zS)7;SrQ#M%UvJ_8WK0_TDm_Knq;m6YbTKyC)^pwq9YXKa4*vjd`dBIr9Z1(O8R)nN zwmm>Tf_{P~d+I%d_1lNP-7$D#!QOJqEtesfP5v{3ad))^B8JcaTEbw-EEe}5Y@WbPG-+lKW@dqIc`MQe0DGI}xfN;j| zD9cn>$n3GQ!0_ln^ckO|_UP$oHBm=eAnSbXa-Hk38%cxyuYNkF} zfQSs^fqAs#Q0>EKWTF}JG8dR-n1zw&2q#^S3P!nFtm!q#Mg}GG)G||Y!Ljr-_G8@- z4)tXNnkH^w6O0TFjwLv1ap4#OW(CdMBrd(#1m-v>T_+b*A4|^6JcjKERIncBOHnvh zmgcEv5n;YoZD6nL%lB+!N5I|H?j0MeQRRJ$?SNsteY#5#m}G zU{S3?_o?MM=Py205S*WN4mr4n$pTdvx&mK@u4SqL>dvozrJ6o=JPNGJhiK9JuuS&GqNKSg5DFmo zT#_jb?8n>6le-1%i{;-E3isT zLl@T)J zx5`8nOoeQwKfrr3?%Bumr;3GzJC7e4l7JNG5V`B?GY(Xac^?X(-6%}dry%u^B$6Zx zT5vxD%aAUGmr|f_Mk3dQi7&KCrCKin@AHsucx8Oq@|f$yHAuQD+0s&y^zgn)r?D=5 zOi6i)$hIVAp(r;L$#!4} ze-xmBm3phU8@;=~f81hBS?h;F_D4{#Yh*PYbVZZb6uxJ3I2EgB)v4H*zVxM22+{8# z{0|`b7w9LpTWGMt6qALdMS6)azUuehd#^I&f{%RUBfIcK3|s#*5nrYZ(~t$;>7V?` zpZp?t?S%%Hxc&iQ;(HV)zdsWPB=O805Do2bb+J?6^e_F=FCC%dUQDOX5-_sz=}&)p z7n)OC>gN+e-9(gMV;NrU7k=RvzVREs@f$Zi_qosA4-pRnPY*8nLlBmmGTg!EhhS8n zL0BB+^G@&cxrNT`-@SYHAvC&sue(1;A5F%s!G~Mp#h4tXcHQlx>gu zx9b8|888l@$@kz8VWdJ8K}Px6P)1?EwH0vJiO5#~E`U$B=v`zBU$@a^@qIN%YUHV@ zBh^8I{HA9Xt0TuwRF51!TpgS`M7BN^BBI0xC#vl`w^w`jURqsp$z|0=J9k!F*k-u_ zjm#sg?eB@PiE78T9o0n_?X0f8`l{+G6of&t?;SdHNM#sg;k_Za(DM42^H{2OZQzU+5Hs42z}b1Qre3JYY&+=*p(Gp%bD9p@|gWEdlFE-%8mv4 zSJuHxZPdYK@tm9h3TXR}(>~5N#t3u9Cw-%`X5WHpes>P>9WMYEoU7Meui|J701b+w zU|tI8Mq#Kzm{kdsA4N|w2hE$4U-y4D=s`)f|I3)NYk5|y+_A#=(KJ_xD&~br+VuI( z5yKBa!BlYMG*H>V$F`Sx;|&rXeD>mj%2JO3fhrIxBAJeGg%9wV?pLL(z^uYfop=Wf zU~Qlf8@uAhN9Ok}bj!F0Mm=S9uImLUo(!O}j~MF7)nG=Tde_^zR~g%8xT8G549zeC7&_mt97^%Ue5beyX3oPv$^CY_0z0Z~o?2 zf9~gg?(@%j*0Ua=j(+OuZQSX{-uDPFS(|hseE)#FI0VSf_ z@>C|CDja9}d`E_{-2Dr{a}ev_z`y?lPru8Ut}Cy+63Tw&j%U&XkXF-S8Kn^H?I7j^ zec6r1#6+Te=KS^(gT0fBxngeSAJ~lN8^F;A!HrS(?VNwZ6vcP=gq=L<_?z~xzk%p? zKzRQa0(>!q*Mp`v|Led0>$l*Vn!n+O8=i&MSvwOA7&vOsxE_$9PkiDNm*biEBI#mZ z_=SJ?yDtu`ee>vg)qgRO?-$@E9%F7WS^u=2y0Cm}#Of&Qaik~MOX!2iHe&_eX!h`> z90kp?Tp7HKi!Z7>&@T6=SpQtu5 z-@kL~j%w%Tv1)7>Cg$cQ2uox&0I0xVg`wm`0fMbf$b={TKq=N2x&AyX~%d3f#ZJweimPv-b<>d{L}OuC&@@{XP>?hmOq< z-A|fdqQFnEz4G)lZg!UTji7jL-n_lKc+X`B|GoJ>fHf}cdZiBR-(O9!EO3CNOqZe{ zY}>KDn%ua7wf_AmYlHD{=)u~!;X?YOuR4x`ap1s1n$r;;T3HLMwa0X313YL<+|sUx znS$t5h$%HLn5;|`*JzUxdMQW~t#~igD>eSHTw6~0v=4=qs7rr=BfE!x2v7Qtj&>Gr&3_wdgu}ACv9vYw?mo|OlXmrb zSVj@jZJel?q$#vd*l1^lEAR_fHy!|D^+Wd*>q~*(y7)@P1#XH@x#l{c6qG8)DYwb- z&kgW`vg}Tt%>EPwg18qLi3UhFTaFJfl?XA_`%$Tgw;irwv{||e&P#x|59M(c;eUzO z&eRL)y97WdYW}+GuABPhU;gErFS+EBLnspy$Ojl)_4m|uFa7gH=y4T84c6DQ3{T&~ zwJYH%SJD@kA@Hj=zxmBye$I2AbN>xD-0(xdwY^iWb)4@*`teYvL0b~qG@gvxy=K6q zpU>p+j4J@AM7F<(4xOOmOdN56NHICi`8pg}oavq4`@P@$`(z1c#4j$hOpO#G+wtmH-Xgi_H;fMxwN4&-tjz2WfN&UQ zet5&CG4f;+P}UDq!TKH_B?%1)gf@`zZ*p|78ldvpD!Tz11O@X;TVejfUxcwtPzwoe z29tDaShpH>Uv`jzP6Nhtwe!3TRD8g0X`=yFGIo%}yNMs5uCjBQ47Ml$TK`&R?$w@% zX`caSDo`$0)D0a5&ocl4emVJSy*`C10KVu6@a7!5LN9@7z@){vwuo}ToOj)1Fk~cD z$?5`jr$nY6ImF!fC`w)rLbzEyLRP^dtS-dWzw3ev36$J|!bJ8( zgq1L@@y?NhhpJm|`9k#oO9XfCzPP&l$}6g|$;sqszw7IFRmaF0*pJ|cu~)>t;F5p1 zdg#IX6Ij(tT*m@IgHQ&7*e#$@8WB9!3kcQJ;iH6yahHsa7ow~UL6^n~ETQZ*Xj4D^ z+07J?n)UE4Yp{aG<5x@#G z=|Lgt!I(~+TG=hVEFI4k__ts6W;r*m0>E2E@Z!ZPV*>c7Q|sSxV_iT)8;gP%yy~Cl zkgs@1BTgkr9}-lS$)?=4VuNRjp5_)-I*+KhI8}#5lJYYKrDwf(d}do@o|C?NpgZYP zWqb)G%oqtXHA*KA|8D3kiHx8}15;HLtVeiOnLeVx(0;Gu2zvEUfl|paTVo3)!bCuI za}$e5qG9ohrI+a%_)Tl5du?UFWTM?it2#We$rR`yfzdBUahxI1+eNqEe*1VQrYaRY z#s4}&ntAj4@D6{La@R1-wt$PTqGP;t@FhTfg;N zpWL)*)3tx}M}Krlr~Jn$urVx^})* z3o3{%V3+@41WKPUEv=b6z;g%+g-xAP;ppD$x~Wat62a!PFe0;q=(3d&8DYN)W9^3F z3?t}O4ouK8S2tZL%#93xGMhSr!W`tISn-pi{p6@0r=M9@03%z6;r5doV2FEzeFTej zQ62(gY@kt14)#=ItUw-w`56Fay{=N|CHf!!8b+^W3hwQ*oa%Q9Tp6Hk^tbQnI*rxG zdp@gxv514WUw8a+uQ;wBTh9Kyr^KEpW}H1i}SP#tntRkLHJhHkw+e3Y5?5g5tzjz zV4CH1B_wn(Fg#Z6*ugZ(?%kyE-4ysifVXJpYW8P1IOQ}9o?Kv^Cr`t^efL-M-~47` z0p{@32)8glLOssAP7^HH$6US%XcX4{Ob38`tUEVqV%kE%MLS(VutYl!9zM=|D;wBQ zMvJ`~OdRA=wbf;&2~chZp&ge{N?VX@LAug!YTJvy2uj&erQeb zS^8DW-ab;0+9xWw^au2&m&x)x?So9sVEOVg_3{qoqdNkG|CK(}15kv#JtdJ)D9?Gn z3=+zbt|E{vqw|~snv2xsvPKWf*OTCW5RM&V2=v5Ai_#gbNco8Y(E}wxQJ(baGq%6u zSx~Wd!z*UGX^X2D7~zOz)Ve~mDC>F}d`J3~Ky9})?o>g%7im!`*ZUos6edsOVf3`< zDN!Mal7eDPZUtr*d&o`H7+~s!IrZAW`bxcLezZR_1R?th-roR^JN~IpeJV@;9E)di zs5ltx2jAVt)Pk0N1LLZn^8bc4^nYZT9ixnA?3B)7#?(3+>-g?Eaa`Zw#=l4Sz7aZj zBk!-X6YXcgN$mq4_`qJL0~iM&>iiuY8Aklp2FBAcipUzUTuhBOD*J4Qh9!Me2bH78sp_4>W9$iXTJ5VZ(R;ic9Rt_k(1{GjE?XJ@%w)C zM}PEAEq~xS3ZeabHe)zsr||ovkbfc=+U=lOt=dgD-PDCPe1zl|{{id$f5Unj{qZ0F z@!L^o#v$Ml2=FQAH{iY6$jER-*%!Rz+8^5Wh97<9(N?qm!whRC`3dvJ+zcag@WSO= zT-Nok0wC8{h{=<5i$+y}%%phO4}8tBqll!mG}4ma7vG@}M=CNk9JIbv7}PfoYVxdz^E@x`W~8s5jI}eL^$9^TSw~ z!)|)QeB}_?{>I1q$@oV^J58!(eLm$=c&{5AQD7&?s>94=!r+>Ac*6Wd01y|~unZgc zxh9hg!{)Z_H;7P=NBpoNi~E*gQX!F7%6GmNCXND-{PQXlz@BB6l(Ckyy0oROEQ#mr ztB~UO4}2-0;Od~5=Y$g`t;b>&0p&8Xbt2^#5w6q3P$1ijg0$AdhB?jZD5-rPo;rcx zW_}$Z5k*f=4=w2H?XM;`Z>qLkxE);#BjLLi^~X)v-{uF!w0g(t=cFJ{G1-hB5`zcbVNcqct>{ahh5mt?XD|^}P7WQN zAz6?a1L;dv1-MpTdeP&gvb1D&Na)0=3FqEp<%35`L6}JiDjVR&zTrJP$bL&eCU6%| zjY7RB0zM#&s<|4xo^)EuwvRnK@hU12X2>k__3oMo9q_J7kL{paD9g7yy_4|M`5x=+ZwMB*g%g;`~ww37re*m=%Rwqr%U&&!|FoE zd@qWG);`K~Jap`L;1m;Z2XzeG)XQ`hRcA`4$Eh{OVK>tzS+2@6a$;f2vs55m^Iz%- zO@fFT4~1`_k?<_KcMTQ2HoRWz9)wnV23DrmZ@J~q``LHm0Vo~7FZz-e0)DObmv{s2 zLB_n3@4Y|!vp;+DgAYD90#Ds+fFb<tq1A7sg_6z9XOA!7|I$2lJHk+^J zem)NBNKgr7uRuf+l;#9!xNCo)@TVhATlk*}AMeWtniA*pp7*>XXr2FwHvG>&@B=?^ z;%#qx+qd8Q-uFJw`BaGQ)YneyJ4%3M*FW*ePh5KKi!cA?1)I9ZF=93(JC}?jrD(x8 zUrd)`iMjio3{fF0YjVYG7*CiBkHRoyc7@ky^;?KyL?-WL{&Vod{Obq~xnc`Nz?}Ao z2%cfymHK2jF1IpqP8VHk_gbvMb%-+fiA>(*WWY(0OSoF=WHxK9Ex`C>;3l%6uMuv; zgShxd`Up-NK=Ah`!O!S$e>F(L|Ay{%3eX!-*MfsF8eeIfQ~+S%CmET8&VxST)RK}J z&=xK$ zoKOoH%MEy)`oOz_0^z;@W%(mkWq1-e3m&D1ws25bP#?^ivZ-NxK6o^5!W#WeBvy5N zW|k#_>xt>;W%^~5xDUiOWiVYNEzt)pR!(RoDtKM*AFCDRQ!ClM6bcO^FzH)~=cH9k z-BC<}W2lgRw4GT&0YPb5dswdhtMHZ9J9Gg_C-5*zE&V5*6oFj?y7h<;Amp<>7D^4d zmaqKRu0{zXlG=C@5^1kZTilaI%VGJx2MwcGNBGjGl8{fpctR6yIJCyaJnKyk$1p%c z^G;J313}xOghF3x5qJXPDR5LeEdssD3+i|Y+(FP~f_l^Ra=D17w3+_ow>a_;M+*LU z`uHtNQ$a7mmiTL$WOG_y9w6dq*o}cmJJP>>@g2+GX?^xZl((H%j$!G>`j^jg0QBh} z!o=Z!t+&7Z?YAHwR!}1Ja{fNN*>vdg=Ew5LK4v98>kT}x-FO4cIrD!aZ~iBQ{wm7F zEhqr5gSSG;jQ=*zc+7&%@?uApDceZ;a~HA>R@3|~lz?vo<8A!Dh0htP385%M^bVY= z%$y|%kNY~LaDEOuUl+fcTBjjc#tl03DjNI4+&4&L3?{O~?*#)pZn@=_OAOKwqNnOE zKiyUsm8tvlSAX?a@7}X#&ruj4^XTYfrR^5 z(|<8_Nz6~#3&1j^+UUq&b=#M2-|+2keSOyj8!m@C)dpcy4hTk!3{asY<6`_cgxX_C z-lK3Um$}H0kWqAkqek;t6>#2Z!b<)!gvxa~3maP%~{a7pR zq&LuO%Gkohkaj6w>kal8L6x+pGEbS70gt5_fvv!YFsFgCAp^;5T$b7apW?`YZopD_-=zFBV1^=Horz>yA0@F3GIyqqya87e;UD)3qQ6c~U?5DtYp&u0wssepd`dS$gK=lx3gI{C)}?<9y%f}CjEdvJBV)%#w~yk%5ZAVo(zs{pZ>LV!ZIUfH z8pHt9hq@bU1JGXA;eqRW*A`kY?d|Pb*+*WK4}S227l~`8RNFOlN`CTB*UM}D|NPJY z{I}Q(|m~1$jGs_zn!Sk5lfO2q>H)AOF|ggXU~v6;213 zjx1BQp@{4yAaOr!T>$rcQGl=Fd=tvaUEu8>9(w4ZyO1F#=T2<*`J5s+=L!IgQk{I1 ziyy&$F+}|wtluA^6E{0J8H}@Z#EEZy^P3x3>UI^&MlQPRuDe`A-zL8HU^yKOpXM_X zHHwCWxsHJTHlBxJuH6A)e1>Z^3FS14dcwy#!Gg5;qny`XbkRj41c2;EAsUkj$zY$# z;b4^k?cKGlc692%=B4=^%R_AVi>Q(X;9BGXzGa>?jFLf)U^5|5=?-gikZUCr2GYVk zNW5c&qfEBL^n5Z30ME(j6)^q*0Sp@pgww2cVG#B-N_H$93YM7&i}&De2ytAFFdNq< z%j`Ax-6GcIf(v{%5Nx2GI&~C5vSH&mf()yKao%Up9)Hotn7hs%18D+nwH%nZLI6m@ zlv`v|(|d0_0GvQ$zv{#o&?GD%1VD^{A_%;fIZgtfjI3OWaGhfp zJ{=A%g86`$`wAKRL{~pcDp}vZJih|1*!SF1xFSr~Nc>`afdP)pq+4?=;6c*Djijfoo-fLN>yTLmNp5QXOOp&6paTGbF1=;-i9Rvv%@=nlD5 z+KrHMYR0|o#d#wB!M}l`nWEye4+WA=0i7sKXmhDcB?7ETb9xax(hmwb+M@#JAuRDw z(QhRPREp7+j|HCjZu&{TJLP~fXo+@<54|-iZuEaq-W0O7wa|y(({I!x{0Tax3{V27 z&Yu^WQ(=iA3|%EQfwC3K?pW!OX*K%L-c*g%ivf9ah0>W0i$$)&z!Y0NRDSYq&CYR) zX5erO!+HY-!gqX#>fcDK3T4HmKCvrYr;Gd7+{iz{P*I!=dk0 zy$tA`k_fyy6w#e9wE{a~VoUZ}?du+%qZu3Exqn zvwY-V4@((e&eFf>m%sew_v0zvw|n>QBL;~>!+OJCga>a5!|@jSpMYPX=B*%EixI`-=hm`5^mJm|rgqo#Fco!4N|v`?&(GXBUEh ziwzTI5h1e@VdvujsVyuX1^v|a?b}a)bm#tWu`V>Ncq`6Dy_89_li*>FHr|Fc_8J0H z4pR0N5CS|#2Fids&7)YPUDeJVo0tplBlo}xBelo3ie zqE<#JLz4*E4GF-)~&U=)=(5m_g{&T+tmrWXQXMZgt zRL#qPo0BN~6>zV8r&dCp|7x8rXB^Qse`i_5K4#M0dc3GU@S+`nx8c& z5u5?D!JOILNE}d>0<5f$$Lj1J;)GBTSPNv@GrxhG9QCoZqt@z+09Noukb-CU0%eF( zX-|6Pq#nH|dY^=&(+?4H;zV^_d#m*f!7v@iq+-49NDt>y4#W;}!7L+9Qul z4gTd{{^cGj$+VK6Pvw9|W-gvha`uxK<`}%$pzM!-ghaoXC32Eq@S0gLkBLe)zIaVi%jNu?UUx)Rm0I;O)V4L7(pyyky4^7Jva?TI% za4&6IH`x(|FJS$`>!m>3O%VK^&F^Ic{e;lp!s9N7vtylZs7<3IW4VO&}R#pNxdwG8g_MywNF zGlJbiCLz;yKlVjp9o!Drpsj&{Fbjj5#paZ+K{! z6w4z7*0D}LeFO|F8F2ZXL4M094YOGPM-LyNPU0_|V+Rf`S664aa$!NQ1m&p^1YTS> zdaG0*6tcmi?O-}bE7su1H8nxz;_XkZQJ58dO`l`Uvz`H(XtH+$`!oPw9q$*!OFyG5 zs$}9xQTa=M(DTLy;C`@M3ti9;;(t{a63PahE_G0^C@sQNVO*42(F#ToVv5kx4*OE& zL6H>%mw^xx5Umm{h19&q7g1xEmam{-)1V;PKSe_12*^ zK+dekY2wA(u#0l9=xOw@>)&lx95}Fl@Ju7?^)MM9g?s!VzOz&G%5moEzhFDh6>siX z(^%GDWBz@L_KgsuwVx_3r$f51jnF}>ZS2-CfVX-gkDmL6H@sm#so(Dd zrUT%SRiUkm!NZlvtT$swehsj0#(4f3?Ko#s1XAQvI=*X8B9w@xvKI#UY_!t2_$BmH zUHl0CtN!lq{_doU-wIuaDRWUEpYNp@r!>&<>DuPwbhwdTBD|BQ@?7_P%0rX88-ku= zo~e7+u3d}!_U#)IKc_N@Q{elauktqs?d14KwSDVEH95w{D`@o;z@S!8%P?UYaxDin zA8PzLlvM~TWCe^-o(4nYQ~Bs~9UY`(8!L=c0S|kFO<6wA_^gbOdOEDc8*zEIpV3Wf zw6N}W1*8JAk2z?v_d*9m^Ao`@^Kt&yfIWo?5F-n;R!?u={3a43vulTq|evshM{z7SWuj)#E`&-LsPz*vxuXxfTF8LWyD!8R$<=ngRC>W_cN}DGj+1#X+Ivj!|qAxU?x-#56`of%c}R7zsOJJzTt%Oq116zjX<3*}gn?RKEk zwG>#|$X8KRXxYyUW?*Ith@aNqIZ_TQHpFjHq`hNL@Jw*a&*&>6o0P!(SX%AB#tnjI zXJ?i^_OVY~>Kl4+pXwnTF8kv>4W%h)QTP9+agi@vk9V09%$=J<`9)jT5U8JrH~$Z~ z;13}WR-tj6chGcOxjHwseQzl$7_?8Bm%bw~yoK<${kE=r0CgFW@24(bk^S#cz;@ z2+-1RcX+4#^Zp5ZS~3!udH+oxIl#4lv`rF4M>{-MfLNag9XCgt*YG|xS(j~~%%cY0 zlhx;3rVMg3$#J%98X?jf1psZ?>q$+ka8m(*3l;aNT5QHD|7G}xu~?78*?%4#CMAc^ zP0p1l2MSKvf^Ygv=9^0~VIXN2Z7Tv+$q(a!8NxQp^Kc@kBC_inPsO_CQ)@+LjE5ih zzH{u(JtDwib~FW?SfL6EaO6U1N0xa-@WZT~xAi$I1tw_;HVeas5uz>V5~idKtiTOi zTB%t+WgWf@?1i~&xofc&#UK&Xz@9Q;pr_)=8pTCX019)LY3cFsC<0f2_^y)&=gc_7uFjWDV{!8h!;Pgrl_@8D>9#IfCm5_|t+H#uQ95eMfj= z9THce1*l?Skfo-MnQB37j^tlB1W{g=u0K7RU$DAG&pepvesr1Sb+p zfJdOg*@^8?2^0tE8|seoB_ip7z^R%C3{t3`DCtj{C{tQR$mV_E(ftla^PYX{>Vt+_ zB#NF}F_-O}+jV65Ty7PikCG5&+K!VBXuI{KQ^ApRma?hC=ltzRQLzBi+!Nw|I_!53 z@s}7Ke)}GT8X7N(wr@%+*doA~m>l|4yz3#6Zd5el6u2YwDbsR0QzVIYsOyVwuy-~uQ5%!h+BS+@5W{w_w{$b``xwc zufP5@OFI3>D1Vyq)4~v4-mzoHJPN>=aB%I^Zan=0&)`Y>LYbt8jk-~i2NklF``~c8 zkB0@$8Z0RZ{Yz%0-xet^9OqPrH${Yokx zMT7Ys7e8}BJ9sWGeub6pcGKY!1+OCU1mK*%TOw8qjKl3DR~ipGMN`|0_e`DY@ z8f)Mx9V9HLbNHOhZUUn6W+jpyR4b-90h>U7@@(SH35*@#7e&G446^vMjpDO zWl@$T?hE$$?H3*s4+=0Dr0()q58gxwDj0Bb#!6Dy=qA-IDU+eFFea0~bi=@OI%KO+ z>xZfo@-n+*22d!a--QL3VMsk#8ZvGZnjl*LC=5}8z?B0D{tXP0w(r;CNpljb-F?tb%41riDYjM5ecE>YDam1{Y5>0`07k3!SH zM6&;xih03&{XE#q^oiDEnOfmRu9?h7rAd0QTrJ)RL7JRR`veBw5goZJVm?+s3Mmtoqo1XJDAEn;QhLnOnj{Qzj-dHS;QM zqnaoIuJW+oLaD$KT+!Z!N+CxCBRF(@e7p}%LrBBGUyI;V5ugo}t1wf+i}fCol>$;S z|I-K5*+rWo^r$!EgSP2uqV-^1>|*fRkv{ApZM12IDx-KxUS(`)*(-U(A`5`FQVif(elYw_#YliMso6$GbLL1>o^s zJMY(}S>>a+pnoz&fQS6#6alz-?i=6u#>bl?coS0^cLD#+Ja-3Wq$93x%kC!vUb=bQ zgHBMBSXb}^%)iBQe-)K%0dXzPS$jY0*X!URCZhxFbdI>f5tgH*zuho7R!xvPS1ZhPzY4q-mY)Jd zB_Q+lG6e|9R$7A=lZ2&Uv+bSsTenQj`NvqkJneVqJIhhv6J5dp?}V}QEaeHiZeWjm zP^H(3Me0?R7Um6Mu&I+zg|NcH#3ixTDOVU(DzHs*kB2F!yrbpe+IY*&3IiV&M!?f! zU>joF?~ADIpdb6(1`js8(w zst6qd_0}zbf|-)<2jebxt!0< zgmjY+FdflPi~wu7sy;IGVH)xtn=j1~uc23h_e&6)L3~)H;LcN*cyj#n(>_6zaTx^! zWyNGb11K_+D5yhh+B7@8K%Xw7uuh;9Ojcv#gRDwmiYLnqaWT_0lM*>?q|y?l4`J=0 zQp9{R_(92RUF=Am*U}Xe9#O=kn`}TuVRQ>)0U82c=|^0+g>Hh}>xzn z+tAHt3k{?UPw~c>Yx9b7yV0*mg5N&d;COrav8cFp{X;p;nt=$~dWh5n|_*M|bLiFE3Ib zdAPcC!G{1l_kxgT=s#%;nmO$$f?d0I9c7BZJ#AhHFL)6$`5>$AK8<|-BvS~+5s1&n z#o^;B0G$_azWL@$!PPH)PrDM9-Wi4Kj47AgzPD_xEBo{t;@L{CG!+kJj z2PX)JIp_k^>NoI*5gKNl=oR*7!-^|F5*C=t>xf%FqKf!d3 zS8!Y3rB&KMKblpq2}75&yX#&TbLdTQVf@6#jg#m_Ggxj}OBv;Wl~~*}H$g9Rhes22 zeeBqDH8VMjFgBqMIL4Y(%DPF7bG~|a2FbcN#!4Hfjs{sZ(1S9tgmR)%xnRH`o`@Bm zi;jf=&7KLg*R;LvIH$l+pcSD4O^^Z_Z(4Q11>0lcFR|al+}v?js#M#yOtS2cBu-?C z?ML`05e+y8@!+E1OC_lbn$cUS=OqGE-0~;wqNY(Vf(^w{VJ01fZWLBdsOKH-6MPv# zY)7L2sGzB6ssJTIUz{7L$yl)*`$_MH%Uah_KKP&qDURz-9jFYHeuh4z1}*dseA1l< zeW*7@VeGtrEM)FkMp+^X96T098^u;noP?O?C|?rRGvWAjOlq~$X_BTN07RRmL$xGm z!wi+d4_Eb1=n*gjCvRq)`d$vI$#}6kaBY2#71f8t5>RgrDzR?=cocj94?v|Dn+uN9 z6E=|N3|?&l7zLeKeNsbsrc>oN-%p3|JlPZhu>w=9BDjxL1P?NmVW9aaitpQy*)Ky8_|M?( zTa@#-O2A_(0BBu#fdX8=|G!XZH^ToA*@?E2%-~9+_^IIg%EkX=9VaqT0J78s1z?oU zKg{_;5=8tLkfi2$P7ebzC=kzN>oV#YCg!2*zWeSQR0udgpX>mp4ETPQ%Z-ft%?g}1a}ayBL< zb6=1)TeR{WfOYkAiGv5JgjPn$IJHl;%v1uj@NIvAiT29%#TjK7IH(mW zF0|+u=dj>W3Vg@1hY;kXU9W~Sr{gxdj&0`l5$s(EepX^phmrZM>KIG=+#ZOga4MDr&>Cp-mAJP;Z4;%9-;Nbsm$^bm?3%j)Dl0?UVLQf?{3!bKfZ#&c} z2k3&f>zY>)?BZ;p7o16D{_-Omlv;Lrbim$b> znqR>8an42L0f{C=d7*`~uH-xvAZ(8{MSuam#S{7b+}FSU_4{A_>Q~=IEX5?^{n6h-QP9f4-$HG6h9r8YhM3; zK48j@gW5w6Jv700vX*w42f&So9_bLqxq{zRj+RCFm+;ZN|Ni?o@JTfRSNR}4s`?p_wgNr|1K zBh-CDK~vgW@S*@q#UNuHMFP=CAsUVh1uNC63hw<4eyAsMkWVcrnQ4N1%j0Fx8Ron-F$=)5N`2`(emh@WjzTk~Jt{$@_{HVBd-tAd&z_5Tq**<5|AW=s z^ieGTv1-q*3kX&n!V^H81ML`uZdDN65JzRAkzMr+WR*hNI8eB9L{xz*#h_NG-U?Mw zX*(V0inU3@9ji6}Us;>Ei^S`jbb6iBf1UeaySAfbdU&ifAo$ zN&_jG|55JNfQ?>`vf}hp)NvIrt_fyNN{w~THUEhZy%f@U8ijSQA+X*V_W&4A8+1m2 z%eUAb_1&o{8IuVA~(J_}I zu#Wug-~R2@2>%xnrRV@&M-!<(-BJ7kd$tElRMNpDg4oI)(Oq~1hC$GaDfhpgOHH$* zZ83eajk13bZES@+&^v^mP65TThbKN{N(RXd!pKL4hgeR98y3ddFaQuH%D7|1!rV9& z@aDKzfdA7W^HwM`$QkHz3fV*XuY3txNx-1Yk-G>o-J%Anxwb#9O&KXlMmK_81%wc? z!aG@;-9;q77K4_G0#8X921oI+wqz<^mkHtqk5Hr<;gJ{V0@cz$67lJqus%7FGTOHB zW*FL@zfGmA&G~bGBo(oWEmQ;8L!}TS-z*x z;n}!=DMlfXX!#_R;et3xd-x9A<+}=i^@ulcl(yo&Rd{jTd(LZ<-5BA@968F)k_r~W zK|$>jK<9lMJ#2HVpoE#v6SSu#&Gu_?^ADm3^bgFkInaCr$Jz>+1*grlILKUoFZ1sc zRoCnc>33(UN2Uz?!iuer68MJ@plu4>-o_xiFEX`2t^soiERbbzmE9Jl9T2OTAKYn0 z0};4)^+}-%@uR|$=@iWP$xR!poqKjy8`yJTc7CBcar|&~MdW-Vu`)+WmC#uQwHQ;gSsZ^omUji?sH#{4xcNb>q zLxJn}oOa8})BdNkEf2*j3Ig{4AT+>>w4Hjm)S)kLD@+x@*}I|;6W>+pq+_1V3BB;H z`yn{RAPIX$$Wov6MiJ+p0zBRT-t)Vlva=rVi(?f-@L~ z6zBumFF7jwbjm|T!YM530|oRJxHAsHl{G3lC=z%*qHuvT%NO4i*H!|Ai<-fM3L^h# z4^L5-h(~hw;w-^~=stc2?{0=&bev&(FrNo!_@_-=+s1c%X;r>rADUr~Y~TFRh$9MSxd> z5Tj;YSq<-MsRSTWR}`l?dM@&ne#)T=!MyYiOT3;4(>y590D(- zWJ|Fc--IXSvUSObbeSqdZMWWxxY&J0!Kj-T=A*#T+VGt<%cp1w%s@k#za9h2FiDI; zLfFkYP#6{O`J93SW+mYU3lSu|O+7Lf%a+*-WO3D6vP@paUJjYI%uoT~={p{J07CHo zZeLSz@UHI$9u<;~FyMKWoxmKSSt6r--hQ(mYpo#!@p82UlU`pU^QB4vmRAo6bb3&R ztb5*R1Y;=BSh{OO+!I(=Cxvbw_*enHg@svi1(2^F8d0#A<3T~QG)pYNbZ<4l4~-%|H3G=_XUkM*tgyPk;5nB8DxxeOH46di*31OyF=a4G z%4UQ7^gA6te2D3Z*=iT70Cr!zyV{BH-?)J+fan$LBtxPDXt_8=XwokK;`O0^`_{IK zL#HUxCnyN<(geT80H72FhV+71MA-5S_)cHh@6bbb#iI}H+FaL}~!1KTWPB++`V`Jy`nNo>y_Qk5z6|Fr#b$n?hJT21eRv>E_3v z8k86V7gahHvMOHCjqL|k{RqjW!GpHTjgm?%hx9;Qz9VarCc>gDMUZ_%n`Ag4G}?9fv!DI!haj}gQ&UrK<@OEd!V5qh z@VO+KxQ5S{K-lxl(KvN7*oi?9mM1zQEMRQCB!+BK3$>&m%4;T&G^k&!#v?jqW;e zlRXL~ENi>~;xxj~=M_SVOJFR^{0RO+VL<%yKCpNf5S&DmkqDPeNk#~+xC>L{X{zHa zg1d&$p#s_=Q?zXA;d$0^QXeJ5*i*mn0E>0#ruUG?dRVp|l~{VbpkJL1g(0HFmgU!{sa|hy5c(Exc(6Y+*k24^1Veg`7)lKeq8rMY?d>zI)V~Lw6*DakGrAIVzr3nuObE4 z51rt|#}z+ao#-2=>LUc;QCGH&ji4l>A8zI*D;JjVGR(6yFhU)L1r?(7N4q~2{N2#f zfL_1IDz_W%Wm;k|!F|n@MfyYPYY_lAQC)rY-fH^=SpK*=oDl-Bi_I>Zkd~IJN5aq{Qf4CxBAhe zNBcke(T`qaS*J5CdzN)REw3Z&Yj{%#-B{^D#$Cq7N?)LZHY0;J0l*aB>AuLoz*Bm= z4O&M4VzoYxhXz5)JPCicd)okn_GAC7KM44!nTC8?xgb_qBq;7_}&^$3L!nwosge zItmMwE7J84$e;r&Wzv_iri_(X0TEhzTCiMhLr7UXA9Tx56%fqv+E2LUsuk~99*1Qu zfH(W!z`Q|dA?w(=F4I-QX4zV6F~UxZ)&w~&`BQ<~x@9AI0Y<9nxfQnAU5drkK+wA6 zjv?yej7%r=Fqv!6pF1`lIdqu&i`C@B#){}*wh7);otT@cn5(6=Sp38y%*@Q;br>YT zlf z&%_8w!yHj?r2(2@>zWAe6%cMW zWWUo$DuE`3ips)$`L$(8N50%8&QREmPsk-vs`AZ`Ji|}NOHrz%^0rU3P`yH zkLHm1`XerJZ{;dN97ZB@(`9d7`Bn1K!wJLGT=Q){em5_%Y28n7aSo_YVhrz^Xk z2y|WDN%8|DQ;1q!T#_(KD&c(@n+zX-f7X@fRFXLSEpxPXuge%kr}YF#iwx|* zX8!=YZHa*4LBA`YJZxJZmaK2;vRy$KDUd9u#CqUr#zLb6ezSi9{hqeR-Mh{@dIISN zMyoOA?uU-gkr$#>ZAIBwBt7t~E`Kub%_8)d=CJVL(Rxj4b%Y5S1l@v}RISzM*a!+G z86{bj+Rw&I+qP|E3St38j=n<34>JdTLRJr>fG4(wSHc&R82kkwDv*Ab>e!-LgE zvi`ZuZ-_D{*oBZ;DwHzP93v>)&9NJ4m(lckjDZ}SCEXa49z`q9-A?82ULpfX`Vp~0L@ zrd3=O;K($vuml|fRrZIi}P`ifOf8=1b)4?#^-CvBKjXIzXBi*V!tZz=tdZ|}g;b<6wt#)DMRJPu6`YFA>fxzl(HaO$ zrNQUsz&J}mzyJHc{{t9f_oBESLz(^`nZw?1{{Ayn0y^)(-!BJ`zkooTefZ&rhvENb z+lvx?Zd&ktQ%d@T&5eeX;mEf-hDj8*?}o5V;g7xylA!fy*z7xT?mGCBD7vT>Rfw`&6YbnL`P5BXGsYgNMYg%WP;UTk75W&z8;tecB=i67XbYQbAGb0xP zmLW?hu#9DZ&=kycO;~82} zXfPHGcn*UFD+m&WF0Ns`AvG8jd>o-AER-*^EvTRzg)mH;`n700l^qEP3!W4rMHofc z!!(`GT`_9EZ8ZfC_-Hd9jI!mnxn?{B^SoT#r=95;`z?(B|7Y(_pl!XXI^W&zecIdK zG&g-hT1bFELK{c|1ffcJVhSES4J0KhmN>MiQYjs|$QWuBJRRsO1%{|#L7{nAQXp*t zkuF3?Ljp-iOWND_&1v`9_51zT{%&qCgfu6bT=U)goxS(>t!A#d=9=A_Yc0JOx_14f ze4o2^zsp|#27m!+go&OFJtcML!u2}fx@D~Z>6t13mM-2C6^Bs{`{}Zt-szyF%a3`~*uQ8?9bwG2Q_q{@o54 zfhAol;9CT)cDPk2gu(cSCV4%xp+Py)teyyIUbt0y^-AP7X&oimVG|f!H*cO6W1>ZD zMUyhf5M^AkoqheGIXwv>ePaqpzwc}Sz?$XQ=Xo|^5?4*8{8(QXSfmNdyB{Xt;hE0? zlCkC#gWf^MHTYsYy8ESjHmK;Se2)P42xW}IJ4T_q9`E%AdRKHQpI5OEUrteZ8+_s?S}LH z)9XP!03b;1u0g=u9Jl^FPVxxtA25i*vr+fts*il+BPSrBXD__)!Ye>h4?+DKxQQ-B zfd7wIz3Nr$zVg6p?b@~b)>HC*fxAZf2@w5nq1W@!F6+!K^|AcV{LE)Qb3Bomk2ty% zUJwgN!2*wBz`E&+fn^9D87Kp^!}6vG5E&&5CUfLUP<|_La`9Fp z%$o)w9HFOBrwrZSKm|a+%A4|^Px8Q;{23)@*b2UvG|sWw2tOipWAO+l8Ppi~^tqSq z*6NY5`CK{SrE=riY&{%_39vj86r54U@G}4WzL*FF6DkxH(Ia7u+1Q1g3KB2>%2cCB zAjq9}cP?AkzMJhhHQ;i!C|4*!sc%@m(-rPH;NAcX+E}42PEzU;?cQM7p1nFt^nR0- z7~|{(F+h+wjiK??A>zNb93_pqma#OCz1T^|lmnidjobFJw1lVjz~uQ9eRHh+-m?d54B@{5rC{Z8abp$B=r z4!Z~~+N>~k``*&G_OCRYf}vhK3G}Oqvb#g}*+o%dCVSUHHt5g+6)T+Q;;Hf~Q9{ab zI>J6G+c_7y5N4H0;V`}R*#={9;+@NT6cy?*o!&Nbra;rGjK}LhA5jtyN@cd&JU-2o z8Hx$5%lOl>&k{rwr&1nuJ02;EwfKb&-2qb`p(4UNX-}UZ1w?^0c1J~w+JS|~2@Vc`pU*E-sKdne3_u>Bk%y6@s_u| zx|>7F!))=idQ`5h+Z6hNm>GWD>Km%v^i;P)C1SSP@OORf983s%iZEql34d2X6*hrx;Usdzy5 zwA(T#YKK#nOQ&ApD7>x6$?uspBm&7nZKeP0fq1jXV@@U-M7V>HPK#3XA=yEE1oR zOX!35#-!v0eU~kk=`Y`A+Dv+oh6R~&Jta}R3X7M5TN*EEMU?%I=ZT7hKcq)l{#?DF2*n4P*lcRyn4=HT zt%8!;8tmTt@VuM**Y{B0<;!|#|Kv~pk&pr41L}nh#cl-W;yWG!U=m|I;MQ8a%7hQBE z+bZ4*!Azie{@)PZzj^x8pS}wsnkHy)3VhrNo>p)l26J%7st##pz*(PN5>NZ!2S0cc zNJ8-%LkN^Ptw)A5X_(=f0f|UPsAlsVU6C*!nWs!prq_b8xHPD2|0^vc931fE)qSed zUgnp<9OeUa;FlarA?l@@PZlHhauXGq0KvX;3Bd5^S*#0$b+&?KSy!U(u`HUvk!4(@ z%Z4nFhr&_b87~E87Z)zV1uN4X=H|&~l(cM4yHWT0fCn1s08L)uP3yygoP3JwH7J2~ z4w-f%+BL9jxDlIst?%5mU8OK~Nz8j4=CF4|>51Fh9>`KUnI^mkQ&U z(@%kMg3|@t7;fTZ5+Uy)FF`r&vCiq~5sn<*O{9OXb}&azJI60BIw&4v>{Qgl6Qr`2 zHTjfi?W#g`1ik`kKm_{?o(>JK2qaPjLdq5|(sGnqEqnzOcbO)kFAXr$t<7|cf(rEM zoZzB9a0GGsmH)o*`S22_jsbVik6wv-o z{UXHwe5PF8Xp9;?Ot!=nd|L-`1;HnSxtS8*vD{CUg~2kRMj<%xwY`h^EpC7|}c_r32~27x4dmkIP^^+03m)~)j3XCwH|;Q0zXygM+& zT7UVMfB7Q#^C=2{3_iM6Dm$<)`>~SM=bUrS&3td7IPE;+j5F@CrMypXR;_-30^mcC z0-wr!_GKXHXHGlqw7XeKa3k~CC#_nwYJr`apo|0Ssx;0kue@?4_p6DVyd785O~)U9 z{04}n578}wiLSuPCq}4o0s_GiJkRpMHuFeh*IaYWNoN9LJ%O9!#tPX$rvc^8F% zaUcUVZE@-O9Y)8zp@*yFjB^fUQQ*2xynz6Ui`)53Q9%`bm_yuzFmdN}RZ?{IyGlS$ zf=Y(W#QFO<7{AO=YpsNsP;Z!!u1wkpJU%xdE7K6XtClm`b_4&644=X3)J-jJTnXS+ zrbwtwrc5Ihtg&o>K)hH_@JIc+g~c;T`Ltey8UGS{F~qUI6ajb=h%C{P?y ze4~(}j3kPi19CiwW>)teAZKyt~aWoIfQu+d(+Ru2!W zl>h)h07*naR6$8jzJntbD%|kmY7YE5OXD26ed992QIxY0H}OG4&EQdRqfYDZ;r5@H z#De7?v>dzvx(p+DkfuC0z<%rz$hl- z)_9XoaTfX=vh*0$ZO{fTtObmlSGj1E50WrVx z&BNCmtOb71jvc#kFqHO|jEnPEyd(IDFIh4`aGwB=U47w&7hZ)Y_D;OCu0%KodOe$T z+Zmq=mtTJQ^}v4^)32-e9Hrm8@ZlZs?j0Oed>AXSo`XkVrRAwykZ(vSiv#ZyrIeK` zS4Kv^^{sEcLD`KAUkPlVq`%#k9uilJyZo$WcR;(C+s44PZyR zFd{Q@xl5Us3?YL)09b9h7#Z5RPhkcWp0x)fWvCEsAaqj%LG0x z^fHGjgC=;7x%3$V5w+afz~V`3Dh0*kVOkg_%s9uKQc~JRyMjm?k+y&fn4S!|1U-sN z>jj4J191j!`RDv`%E&MCXtmo$m4pnDp`t)~aGpE}M3o5Jp1IiwdtLOrMI+N{_Yy|E z1brjWMTvdIZ9h=~c}Y2pI$uDT3cH)aWKBAjq9Q8YBeUmr$)ZI=x7^jw~01$L7Z!Z{m1ojwl1}*YTlYV59^8`@rricNU*|Rs zwrE)oj6`QiU`nLz&Z`?&A^@R4UcWvPLD%tfomUk8*(=3N|JPADP7_F%A`b#a$el4 zOg~8v^fCRn|0RuBu1Sr%fi%H0aG|_q8*N^s&EUv>4zS?DZt`**WW1t~L4Z7`uhQSr zZBdZzr)-WzgQPWA(^zYrMz@-yqJ}&?vz?4nVJMJ8yVT)I2bb}Nw$U8?RPhYX?JIA} zT0qGPpWuCzYub~k8sK;Uy@PZ0gKQ@Zdvn^!8u3ajOik}?9=c}r)T_^X@y@^h{8yK- zgp_H3$7efu`LaTr&D)m!%CG#&%UQne*dkGy-O*Lv+($W> zfoBicROna~gX5U4J&bppsj_sSvFG;#@lrNxpku(^_A@{8Gv8EpLw8%?i=Q91w~)+! zjUNt^`=5|uuy*a*#?eO~J|=Wsp7h7k}{=C*X=1=sI^`97va| z101Mon6$fo)m2w5_kO50>P`X=1J{0|BxNiINI`(Cu-wa|3 zbAZRfWPG|tT1H^MC_u~MIl2d(%ZK@CX~=M3GR||#d}1*S>l8MhHJDc|B!L+^nn=gm`@!CS(I-H8wpT5v=f^QO&Oa==k_vKdnP%X$}R2uvnUX!4tm#FP1Ghw#e zGa8SKfr=_A*1LehGe18?*$6hubV?z(01n$+(Wr3Ky5Pp|UIx%flldKCDF&q>KluyX zdOPw-dfPW(3c@i^+9_^GDT!+7Dzs^!G-5w_S&qt=F);BUNpqGDeUQliNvq;2Jx5s} zpW92TOcoj{_zfJ?UGgwS5dP8#EwJg-B{gz^|FX)Yzz|OkkL`1nIAKp2^bN(492U$2 zTOEao{^_6~0fmK0;e1M3;E;YTbO~&fmpUoWf9YEUwe2@Z6NHf47y@uvfKGk3BlrQ% ztZsldW@&q#2@qG{Pn|LWD16vH>O=SI&oU+lY)wA+w?A>#Iu(Giv5^`IK=M8we^dhW zzUsC5!WX`9h&RhwXHPuw#LdL0ZN)Ra8~6=&Ym#>K+H0>}!7=qKF<^7Zk31UuAF#sT zJ~ft2!~898dCT`Ny6B>>L1%5+>?*bY&JxP0wQJY@6YJl;`X>s24@qovd*iIL&bp4d zmiJJ|e`G+^fBxrx{wpW}GX%MviZ*3{8ww#ls{`nAAQmua?9MCeDzY2rD1wFgdAt1$}IIv!KZ!3oxsh}iP@EIJK54hr@CZCOz9s9o$ z@+wV5aZsQrz{>kDf9sSal2u%w006x6?lSuxa1?iY5q7T2_L7b|1Xr3-+Hx-iuT1qA z2cVG31n3WifVg_doA z?clb2X*dG8)J3AC^SKIPmikpW6r}ufG?2&kWFaoaPz zP=W%7<5cgKZRDA52EC2qpUuL1mWbxR^ZpN7eN&^&GnNWWzdf5A|RC#b3M*Z~c|<!%k;R#e?W!qtaKpzUb}NVo(T-6U?=G)w01Mhb*rjdg#j9A&0ISEWtg?d$<8?!hk6!e;KY}U|Kmc zALnR^#E+#Bb|xdzn&B0~%`^%S2RF21Za4$w!3z@Hr8TAHMZlR1OY56N5iag!Uagl# zWHX10u*L$PAqaQ|3qUJi2Rqg6;%M6)J9qIpUE9rJF}v7ub~h*BO*3x~UBc|K=73XW zVb=Z3i7Ai?Dg=~|Gdy>yVFqENY?qnI@KhM|1WZqJZau|r69Y3X}FQRe-1S99CiC}F@Myat65b2L-u^5qVX@e2;2yqdl?E!s> zr|gk$`}~c-Q%KoowprRGQToOyq@tkUg#Z_>N{f;!-mIonWp%u>uZm)qz(t0QwR*B$ z2@(}gU@^F`%c!GzH!R5XUiNEsrH}dPn6uBM4|6;8;(g({3a0_J>C4ng>9iq&b_f&T zPz%qbFL59lCapC=k93~uNMNRZr)|8YKl|7{4Fa>{m&+3dNs;kDqXLz5opSY7q)kIZ zKqbIBR9dLO0LJWpK>Ea(Fh0v}hAz1TkMvz3NBg8R15IrhG$#n}n4CWH=wmnh^(CJ= zYe6on5&PD_7>KxIb?d- zvPpSuR|YiX3Y3|ELq;%%#~>7E*p^d=j6peVEcJ|e(&$ZaGn~xzMU$7Q8HgqGD6}DC zDQ;Q15oWS59LHfLFfBJ=QK_(;S*8GXBiwiH*qP;St}<n^`sVS@xKByWe>>g(-k) z`8cl)@W8}rwJ>+i5`f7FpRl>FUx8C1?#&H$zNOB!fSx{CJ(97waC&k_6qi(@v3pe(&U zp-9pPp^bPw$$Y znwmWR*rV?H|K9hWfBX->@}FM7E|T?$iE);T@3xr7^|CLxW1#&|MUQ*kKUCkp$WLVi zSKXCn?|kPwzxmqNzV7_^75xQp7&K|O`r(QlJ1{iQ?v}5({TX!&Y_tt*mm9N8PU)Q6XTNIW{{z>N;R8*Uat9s1SBCwlG{78w?p15Vv<+*ZVl50!$`@g$Pqp=*hdv z{{6Zg6@ruv3(Jo?(!+g#hk zsc>7iZsV9)taH-3k<1?UzTeAoGzE^0Eu-Sn^=yT1gmYoyGD`Q} zSHV#6kte%{L1HApg#W-4UIVQ~1vkI>^prU_3W}>;Yfr%f^*eP^N3a4!`Uq7dWt#`_ z5T+~R_0|H503(l?ZHFr_cu1#smNAby*}q=m#pRg}Hbg<(#Jc+J%=9Y?kV;?_ zKWG67ubs+2teb`?rx%86(qomD6dL!)nC}n-(8&r;>NYMiS`Cm_wD{q?I zIhhc+0XY2`uT8vk9Px}-DMxeb-Jo21Lv%HUw*qAAQX6_Z)xXN!vd6 z`7a)h5NZ&Nwh*P|aqy4|_P_Q^S*sUBCFtGne)m^7_V>Hs-Oc*w-^TB2utR&zqmMq? zk@t{Sp~iH-SLmWDy#VvUiEY^|HE*pU1C=_Li%<09F2@{4fDsvb?%U4|y}k*AkA%raj;$C>BjEQ`~kP#DP^WNKk>FyJokUfLfx zWL<70>=cMwD7y!}k=9cjf7^HC9F`sTh!@aWRLHsQY!m@FmCBA*s!TG$cWJlv6d`9i z*RqR`2xP!lG0+(Ecx7P+F>&w8kR2Q{LK(Rp0Qb31OaoSR5jwWHj4`KUbgAp6cT3#N zjcbvK49h_f<&*abIHO)r9at1(E}tV6g2(m$)NC*$Pjt&G{LB9S3K*}Yr@d!|Ma7SMI!L%OmqJZ_0_q4J_5Aa;3!#Wzkmfr!quY*4L&V0t>(FBjG4+ep?`%qys6TJ>gUF zvJ8|YFUXxVEUBDhwGBUCp0wt4-#n@S5=(x^ha-agp5%p1|Dg#c!WrS z=Zp#%V}bm_Y9eD|hR?|a`LJ)b3e37j@Cjrn)!uN0b+pZfDyFtDGD9sI!`{K1zo z%x{LLE}_gR==i#jjC|#B z#~pVMI}UC2SVev}5jqB5Jk{Y31E(@b=d2iLnb(5F?Rop#|HJif`-Ojh?McTUJ>1XFt5h^uj;3|(ynPX3FiJR(W$Yz>z(BQWn6qAk9lLhp zQP>(~MhnzUceKg{Ss`dW8W^6M27)4tWYR6ZXC9jG@j8%C3N)jS%EZ2LTxCAD9d}o5eF@Y(T6(l4rggMZmIba6AzdqynI@ z5JpjzedPIW`@J%ig7EiPU+E;mMkj^Snf@lTyDz%eK~{Ru|Gw9i-%>HO{d~_-R2l<1DOzNB@N@$@6^O|)7lm%Jm)L|KZiIj ziXU`~5}oD2(i}qDvY=4P8s?>}jC49A=t!AGS+;`I18tV$vPIyJj+(3(RJ-}vIQUUCad$mj05>#n5+>Vfwxu{ynJc0O^GRJ=#!hbn^wHaRV`w0JAJ^KLfJfq~{T@PCUusHT!u9Sdn zZ+`QezYQ^*fUrN}m}8E)mz{<-v48WC{BCi;!opKA0T0~)N_FOO5~#u;nfd9T{^^^4 z>z(hs;;ge?w0?A?J-*PNYV=w&_l

yPCb$ax9Xi3`4jlUB+N?RAVRddiP#O z!H2nPH5Kbom#?l~HxbeTa3sfbKz{gYaRFv-u-b6Q!)lsr!m+1z-+k+9cinkkZOi7Z zCb=CL}q<{`4+KQz_8&m?2)k zLxzkSnBkqufrlL#95{o;vX|h&?b~-|J7uj@nU$*?6t0$OP?Z+Ha-y(OzJ!4ygsFUv zGG=k}iUXOnOiYV<3c)s=O@y?#Su@Ykw?&YX!u(Pmm>yRLfm~qrmVi26POe z02f;3!?*x66Pg`dBnBaj9~_xK?p|J|T*VvzoEx`J{s|-h3-je!X^S7GETW?1HBnWJ zIT1uiNUcF64|stZv=R;0gC>A1+xQBngzr3|$TeLzLntM~|; zmbjbtD6FHT428e+CyZMC?nx_xLO&}asKc$K zqa@e|ytAzA?iZj+-&Dc2dKq||f9}md^#JZO@x?!hk>4)+^PR6%Y82k$F~VPEp+H>H zkjVNX_#<^KgR%g|1DV8&3Z9<3c)uvel`YwNnY?-=IGB^PP62>O-e;8p>D`f2JXp8T zgx+kIclZbRq%M~Q+K+zs^3yg*8wNJ2VAEPci6E*$eb1oL*~=b0_l|dGFP|MO>rc%s z9Le#~?Nd*E#vLzx>Djljks8j(y<@lEe)}lKp&sIRI{jW?Ni|RXc^DW_rm{MX4y(<4 z=tCd+;&Yz!oI6nl-1O*H==;CE=tVEOPvP%Db`PVteM#izkLaqD01nF8{kFHg?JIQV z5e%vmk390o`-~H~?6S)aCn~Ya<_%9N0S|&%G-0Dws|eM3b{xFx9q)L@H(v9a*W9vl z)r!vC91*Vd+3!q_Zoi_}o`n}Sj$|J45EOuMSOJ@!$?S@iSux%+UbQ%}w0Wy#By;mh zke2i24q^v816)Rz0mye5hQV`fHu>o?r>W4~vSnxO&b#iZ-G2KIYTLK%M03}cFqjAi z)no%3eC7&&qy48z@1Zn%bv+}@V}-(iTwCn6uvCb^aQj*U6|wTQ+!X{KAIurdNhkA- zAixdjocV%t--MG`?;c_bcJ105MZsMJVz&q}H znWAM=|D5kATLwD9X@@;dky9`wun$Jr=bc;dqRhr(6j$C_%Uas*w*VWbZ1|u8SHTL- z<9?RP^Fz3+00br>RZ#G6K>bDVBm7m6QV4W7Tu~zKm7Vsr6%+wOy8@v~(y%Pb6Ca*k zp^|Djqz;ZVMZj-^5)EqQE#>IWuuKwDUE&Yy4}M1R8q#|NJl~bovAD@14C#wuzxiDi z&iXSgR4Ldz_nr0WD!1)U6IiW5e8wmUk8XTg4$QW7n8z|{n+kw9D3@iG`W>&*fI^(C zfk_Hb33EIPu&_(}!l1HAcS4U;0<>Pikh~#{wmt(ejniQ4bD6JdtFZe$`yTLVrT&%| zNPi{0ijB`Lo4kOLDIlujHz6CX8QRY_fbA(#?Ko&`%Vo2J<=4!xTNq>SNUYW7$tRzD z_lsZr;#=5}ZYyt9%AL+~&(&-y-yY03WYuB!Q8J)e9IiLkL z3@Q}$5Dom-@Ct_Fl8vlMwY_xW`q#bgb>GE}bNA%rxa&3<;`*xAwDf zJD$myJgwd997AV2uh!Ip_DEeBMiI&|dNvM`p_R*l&NqZ8MPl)=6pu6Ev3FSW%`R^+ z@o6k#lX(6+^LYqxwuZ$;YgGICb(?E9egF2_o%h_GfIeda=5XOp!+eY<7$2X&O+TNY zKP~qJ%prVam@*x$W83K<*HTYCM3gHyJ(y;OdCf2*n2L;yWP#UUBdz=##Y=r!w5DUF zA_{~I4Q2*I92srrbUJndVO!gAghCO@;~YpoGJ+L^U{cD=xj_wrd;~${5xBbREpMJ_ zjX7?W2H_kV9b>QiGViXkl>G~U+ap@_76^wM6tTo9C*4WRZei=*^$RS$bG3s4%78QVOVuBn1{}X+SJe#jpyG!H=%x=Zl?2ieUsgQ$s3tPWNc-$K6jJR5Q}yQDC}A zv8$Ac0z^9%uI7*luC6y@8qc(jE!95q2munadugnZ+w&wEqA_RSRCF&Z#XG zCSg{%c~wGKOS|DTkODpydBnL*O+5uZ+HZA^IjnQz4T^9^HHIYy9@0l4tc1R3Crg19 z_-VZtAf)aH`XMahV!&8PENRAw3N3U?%z{e*%L#wLPnzP5K=Dw}TNiZYYK{fyat=kX z=8?|2d;}Pr2(mCZZ6f~dk4A&(nSFR9i(?O5CJqBw>Xhs13wa1zP7`L{<)o|ejg3z4 zj#jUCQ@u5LeXBk3z0Qj5H>^4Fo!h?t^{<^oADzejOz=3uH0MrYQ~I2>a`0Eb`qksv zOztQOBigm>&S%^Tw-|lu`XLNdG8AQMJ972XV~;&{3z7e;!Rt4$`rm7E@VrkJ|4{ZH z`|~j&egBFpC4j)KO&p9f@q54bdoR1f5&NtX=n=8*A5JcLP!W_r)SMz%SN^)(wn*Vtf*z=RV!rVSK{j`ysQStqOYg ziSWYxM_MdX6b*%~JX!|jnd44NxaK@o5)8(Ja1@ri2=<#|HGp+Gf8HZ_O#VJQyBA^Q zQM3!SB?J_%SiY>bWckwC_|h@<3tx&G8|##<>~zf&FOhTxc8z+*x~^E@DHfSlhxh>> z27Wo;uRxW*sn3F8>z;N+0(%!2McyTVPWVSD+xc*Vu)r$v1}2L)L2pJI+;r$fy)5># z)?Sn{`-MD~=@mCBU&CZ!)G8u~IV^Gdg!YCpqmY?SF(Ket(#U2&&ZUcAnSNGEP^Lj% z?g3!Dhuy7Zt_MR;OdSip3tV0L)^+=Hq#GE($TLrT)Y8xPvkDUGiD1CX1Go`@l>)$< zOtmNw$jp||T7}aT8cCe&8 zpX-XYZdXZ^%jZdAq1r_VRMSZ@i3#OfX_NOao*oUv=pX^0pNLr ztqrEGY?9;HpfdZh1sp|SqkMpaJWo4R;DpV5)JeH|u>esuhi9}IfvEy&n$R9~S!Qsc za)#oNBEW&lhHaq5g;s#szCqOT97TwJcI#`mr$#eK`y2;uVpJ3W`*DU{F?nsbX!$cH z6J%&WAT$^n5)vvEcF#tTjp$`jup7i$?KL5-rhUAN8fKG#-{rFQAGA6%XpU^JHM{q+ zNz-l3&g6By_QW*{Ba^r8?)EmGdg`0DQD}`l_z%b8e-UM!1@2bC2X`~>X70J?o=Hyi zJD$^3pLX-jH-}l^;*LjvIqj#W2SgrMB|Dkh-}IZm`J0y>a>yaO;Hj$?OZZ!dz5kdl zw2}t5lwPA#f0fRD5ljl1zqR*=fB1*zx^1J&LfEFz@$s+f0uKW$;<}NrT+{5)d<#o9 zzIV(q$4r5zNrdAMxIcaN*=JvFg6qEe(PiC{?m-+Bb0P!sbgZD$8Mr6H%??59@5v}c zv<%RJuiHAF0GS<3#X&0r%m5~#3P6|(d7N)Ia=NKN9A(>A1Vw}q?*@bxXe`|D{o86^ z`qDqtZolORwVlkpXRr8aEhh#)OvHP%R|5O2OZE_$cyFEF22u5}sJ#?~rqgpEb5%I` zJwgv=GDeiY%7Hvn@54Mh(Cyys20{cHvbl}vyDBX(egzer4I$tbyR;2PJh5cFwqo@% zj=)`2n;08Mn6vX6vsfh3?Z0(%24>wPA>&Z3GA|J6#%_7rdGhhR$;&jAr&NH zD|71zYV5L1xhM#S!pJxW_V$qXgOgIeFp4*)V~zBWC9ju+EA@~+LJh&@DT3~`AiOFx z)@>UWpohwpu17-g1&1dc{fak1uSv1KElaCc#Y&N29pXxl0r&t%Lk%J{XMkRxTcPeI zM%nnuPoAlzEZ`x~3m}}X$5(2(O5lD0YrPgp1G&Ji)u(=ypwM1P03f^ve@T~5l>~k% zU{P!m2nmc9WnW5@D#YSTI<#DKm+6F}q}fh!f4>4?0>?}7LI`K@Vm(Cg+xHgYPxloF zyx>rgUIaVTkh;w0v*<%+w(Gg+Sm;U^ZA$Ul11s0;eAWYlOI#D9f99z7I1 zpR35R#*wi?`&CL%5UoU|NO)8x3=F0c1UgA6(VuA(e+-xPxwPx0 zw0{je(Vc2`A`^Pw{`R+z`TXZUe*&I?Ri;Hr$UZ3U#u_~M@L%Co$xP2a_|;$i)yq%@ zrcqq=0)L%pl|K+AYxk4Aj}}EC;YXXf%C|otC;>lD$Gsfkw*yy2^N;@MkIo@D@NgP* zKprAg;b8wyh}$iM>kzSz`{$i^-Vc8ACx7z0>|4Esfi@1)-_Ah)EE?TspZ2t;&4|C3 zyyVEvajVBhckY=xqSdOM%F>_bGEkn)j%dfh^jA?-dfRmR~b~Z|qY4Z z(*tl=ENm1rtUWy&6@!xtf@{Tso+hFcOt9k|idcV4YKY#Ps@8104Q>94SD^o?{y?P&fgA=Ef6qRmFr7*OO z_JfL@ZfDbp_fn?)hf+kL{DDaG3Mr!aCyK~XUK3*k$7##aOu+MPLl-g#M$ zWv5QYq{VtUw(JA`@}rcIV)Kp$aFz1FEA$(YO+8uOhcaV~i;D4ZBvXzs$P1)hr_dDf z)L(QPbPC!Btx`k|S8_wAwAnTZ6f~z2fC^Sa1xz#DW?V0sM=N{vjS5_7&eU7o?Sp1- zeZ4jI{br|g71LB#*PCOvPR-W0Y^-gXe(6guULaM@JY6PYdZX9qi?pH_X7CB2R`tDmwfDFA3L^c*kgeA z37wS=Qt)HNmYuLpJ@wS}5dZab+TFO2dk9E7>}%lZf4%U9FWhKj4Bj~Zh8qUAp0T{W zZKSyj&Up+6v7Amc?eiEcr?Gq95k#nuBb*|OoTr}40JrN3qf*#Z8>JWk7e*uVL$E8P zi@Q|@sRw}@=9#5|FlGUoWjWt>uKj-PbC+ILyXKnfYty@DVtLCfWw0{bOdT^WUB~b9 zib=}Qy!=#JpqJ9-Sn%1>MCVJ?*r@k@up<^W9kv~2p3?m zJt})~!-HSFJI0DQH6+}^+wHRN1D>EzN344l78L+W;WOST+K>*g9{?bA@TYt#@QM&N zO{D+?Z{jX+6j~>HXvKHpQaaS~SN(9u#40|<_rhM3E`_Ny=6icW;adcw@c`1Z&!s`% zrS&{Be@R#9UQa{Gt%3l|8F%F4q0>e2GVnctqc+Uac z`plODrU3fTp){jMz$pLL>z@N)fP?#sYxb^C+8Gr^W>QU?=@DPYl^=_Le!}&;IPsjwac@ zI05;N0fgo~kgrNcGEICNd;9+bW4r-9kAfp*#>Z{D_!O^;frmv!=>C9x;~U?2C7pW# z4Zyivo1;Tt_@NJd=p-#ZPHb8X*q<nUe>KGtF0W&4^AM?=6ML87j)XKQ&0d_<6gtaRDd}k z$;^kmL`yFW0$PwB@@&Xt!ZBfiap@)<%-jLaK%a+M%Y<4mW*PUkZM$k;{?b=!|NHMh zSKGL8D}q7hTUHC$HW`4Q3LFMu7^sXuM(SnYpNx_=hT#cg_1pJ;590tgep-%ss!K({ zXVxQgbv42`ONNpL1!SJ!CoLagvMl}wewl1MA3R^aY=WtPl~DwiFP$VnaJ05$+z5XI z_LJEb!BWM-cMqs$CPUh(xuXD0 zZpw+!$E9umYmMuUw~x##JX(SZYn6h6L)vM40#hjpD3>;7Qz!(8Vh8cSZC_)J>jj`L zlu{ulkGOY=06|ZA!iltxb!a>I&$I@(A&ayo>>+U6=dJ{CeZ6?l6JS}{H8EvsEf?>H zG*sP{qGWkAkUxHu_KQDZsyqh13;of4y%6bVP?&Q7SnZG<0&Q>LEQ*|hju-8`PY`|i6Zks-(9J>C~5fb2+| z0Q2AnWSl@H8!x)(q8mAX=j-614R7f}mmelr{Bz<9{DG!|JAXgciymLROTYw>O@rzJ zj3;0{%;z06pz(7*_j6x^q0hhn{qKK<2RJy#vv@WC%asJd4rpIpq6CV)7hZVbO$h#* zo#%(B$8j~@#rsb(Z}U~5+;0FdWXpAa?flx;m+fjUZ#BA{;WSZi%r0Y~F2njB!~4}X z^4~M!We8b!JhXacZm<{zrFws1GI8F?7!WiD1ZIm*87@rNdCancK*1q1#3IA`-?Di} z?e4qR6WPBFhE;aXQ|P*Zk8^+qPWh=dN*{-@EA(iW?FnO(x%s`?VNj+K#sOSf(!Q&1 z-LL!SS72GL?`2Tkj;99}p^50AKHF26vhG}&p1TFAILOp&`|e#+FtJ@&#Qoal4O?o< zS4`9nJA4hFOKROw1hbLp!Bb)WoN1AA$uvR-`q3+)LcobF6s@IB!PM8Hfz>8L zh?yu7dJqP99TcXD0@x1e1q|GXxM80#9~_vS3Q@=+^V22+%;p4CMN;8|tC~_M+rA*J zbL0vlGEi#Zl4jl2Pr(}@MV;a*v?@A8PCm#VWiUTOJEoU@q{*z0r$f+jxNNt51$~mn zPy4jGq(k$0`L5h5JeD^Uq{DtNU+SeF>~5h>x#=`@A(SE7=hbKIn7#w->F5q;0 zsleGkyhxembSFmp0|O+1fejLvMEY^sz!fCb)Sm5{bF(=JgP_t8b}^h}v@CDd+sl}1 z8XxJ5c1On5a!*zukUXP-(kO4Za%?RwY=1xRdC%Lx$0vvb_#ATKZ20I)z{?SACbaPS z*T4STFMs*VzkB7CS02mMz=?dWFpqplzI!0W2`Cdi_V^cm;TNud^PAuNP3WZuO+(Jj z|As8RMtog-@x}WTC-JZtSE1I$C}~*6u(Pva5H5>rIj-@)(wJX|5Ju2!zCj0%e&iz` zIrhn}1Yq5GETxArI8OSktfXs=$5tKDMbOS zwJyVu$;nz^5O9sMo|$ESyq5(f2@J%ead++7Q@i(`b+yf#wz9P^%o4_|6_<^CTw;cs zTjnLB)Z(w^@M%XZbQ!Og?`3SU0QWH>>Ia6h7GLJfn1}gP5!ejkFf{Xe#o~rF zOJsR%tl#494!;Nk?&79wk%iN)VM;1F3#8wb<#0h8CdVhkpGuGv*bzhoo%nNmRT*F1d2|Id3{=b2_=)Tlz#|2Yn<9yK<0VWM zm4vk6$@YPQldA|ej|s-MVtPjGh##jt#DN0Ao!_$GKJAOLfYmHpS4e58&C*t3&`m3@ zWvvEET7v?M#JJww78u5@py$(ewg?f=34U0Puyf#K2Sx>r%pIZS6om9)4;sWzT;cvt8ha|K!3K_o@+FoVTA5;b`O6gdy2uP(4+AeNMQ+if9Qc2{Q zxDO2W13!R4IIA)(Hwq8A#eey2Udtf=5T2|e@DaB#iw7^;WZER7cw-Stuj#3x&Ge;m zD&7v>q}*YdQBe5aK-qIjBj9B~rRLy5g*2WC>xBr+Z<#qjiTYF&?89LW-t*93z^AN? zVqkxZL-SIG^|<;cfxp0;eIRTbX#yYZqgUux#-a48q6{ve6bhy;#$L8_cG+U4E$DBn zrQpD7RRtqZ2Y3ZOZ_6NMlmkCWMn6zfJYc+H82}r5jWP}=I^EV15>B8+^!Ch6wQ83i zUa!5B3=eX_3xyuo%k%(oQbtOD8qerwSsis6yyj*6eim|~Azx*WneP)!c*K{!^rhoJ z`N>ZnUM(9u5aI+XS@^R*`?I%Qgp9->8UrtoWjWNRTH_DSK*{1>i>?4v;5px8&EfvbIGCc`Cg&TLjk^MP|>C7|FyoX)*oAOi z*7p?z#{WF~?6bGqB-^dvuZVvCW;)KVy6TYnSbwfHJvBd4Z_iH-7CK81NX&~di;I;@ zewaWBUYcPIv%+GUC2B7Ja(~ooE^;xwmN(W4;z|A<9*(v~N zL(GN<7lWU4OB;g#vx3>MF=DKG^I329>*u>$_O|-Nd3<=8Tfw^9w2V*dQYNMyG8sn9nsxS>p0T?3}?!7N%lrqkjTE?uqr zEHPflFlE}5P^?V*2L|jiID@4;e8yOe;DMD0wg%li$KrUKQ(DyUm{z%kOcFvJ;$I5%u!Fl!X9Si4$P)WShLimu~$cG@wBmAZZ;cP_qJ3X3ix(DG z?xcCZBVAK7pD4fLoa~+~7yMm-Hb)P*S(CFc_n) z6C7g7u3G(Gx8G~suzFMD$Z zrMin9XYcr_pZclQyi1(G_U+sE#R=$HM0h^wrU$@(x{eLvX23&(eq$Il--G3!6aA1Q zcJ||PJ#Gqs&{lxcan~`QV~~g2LXP>4?-i~3^9g^+Y;-%p?6Rzn2>vY>TyVj6aqZv9 zJilxFb@zXdj{7Lu>TNctn&&5P;R+Ah$^r2Mm(=HX?a=t^;ocs{5}0J@jl!f@&P+r% zN`SkaIZzec3QpbT&cnu9bk0u!j{tDqRwkh}hD(k-C9q4*CA)So%DBit6~(gOv)jmf zg2~_rTI&i7qldkU)g(ie0m%f)_fk$_cnSc2d&yKQMs0cf-qG7(awHR%GDi3J2dI3e zp5eQc0lcnPPg(?~!Ecr&E)+4$Tm)X3kj&pb4pfY0m;#u`TjJp+d-hCc_d%5$gVS=p zJVI2QAhyT}PV{($_n{yFBQ|yzU4)1V3V4)D2cO_yE7YZQ#nU4H1uwuQLyu+0i0Z3= zQIZOP?$>bn;HQwhdn<@9Z>>m|ob@Y#2ySHX3*6#5!X2f~DF{6cr9VpBwNRbgcS)NJ z-5@T7S^6k_ExT59f-&j3447Yl(e+Y3SF%jtJebq)u%?A^;FN6XKTCXKUzIGp zbGrw!#yQt!HCo=1-PO!B3}T z`(9w)ebGf1eg9lG@;Ua{V`m_?9>Vxup8qw1{~v7=mVPx~^J5!nyu_Q{v>b!4-CF2% zSO73OfsmU(Ds%_T=g!I$Wbk1p#We~nvBK-TXM3Rx@IEVLrVx0Z=%yvA8&_dqlrM4~ zK?Fl!Txn^^Z1f~}RJ4)o6rPLH$VW}&3t!<=0YX7xU@~HtzV)*K5o2`76op5|Kwsy! zF#FfrL0AbbtZ zf~rgilk@0WLJ_#~N4_@@u)b1kC=huH!$oBBkg8}d3W)6zcKIBPJoQHE_`WDmBqI^{ zLzysE!*q~W~2j2w-#1->oEZjMqGYabyWw{}5pyb@7_P`q?y$Ae+pin5@TuuZ`S^eUa$ zZZCqw0*l{GZ5^(dupgx{MUajGMWzd#o+z+b4(zOgLZ%lDMcPo4>5MPDvq)KYf8 zhP0>1lF*IQJ9@+1Gr^0WOtk<5bp`^3qvMRSRUn*JQo!jUDeVw)VIU2CVthzhZKE)i z=8FPgntZ2i)v6f+gakcGbyn15oRB^;jvV$WMN4-!TRL}o$?=qNh1be4SlUDaF1SL`B?$L(z(?W)-uT8hev1R@uD|-~tB?BZXFq!)D+pGTwk{8Wj}F*E*Ty`d zuSyoOYpy%O5*E{HU4HrH#yf0&q_}&e4Sn1c00E~F(#$*p^ci&O5-itgv^chegADf# zJpXOZN1b@$iMt^#1^-S4&BxZSUw>J(#6_az*4_WG0KJ%0 zS8SSZEE}0{!QKeg>_m?cnih-K8PDJePNZudB|ruu+QMM@(j!t^fsMT9`A{$*oDD|P zQ{aGBP(&EJ+)E~|(BPi06KF>nZV9_=8SC+vj@O#&D4b_A2$Leb3sbbOc#~&(AGEl8 z3K#y#&}9_+U;Zxn&BbU0k5w6&W^f}G7)M;w!}m$ZA2i^6)zY^f8K2V{;iy1ix!5Hz zr0|AXljx<=*3y2{%h246sLPayM!W*l(+NHAKp}46qbL1U%v-@_yDeMIz%s&MVUpr6 z7LT}h&RzGpFkxZ26|Zd-I|}a19g|bM%Wa+RjzZ#;0L$>S^jRtug`=;_R;2)D8euI% z9tw5w>Jq-T-Wypgb%+-g3HD$CZwL?thPbB;>oX5(329Z(fPr$|bV(fQhR?RaY9^)x zcH2pXQAD&((`URRw3{~Sl|V31ko6)PkrniHEK>yn^&=4qohlKNPYFOy-{z&kvb?t@-R7W)G-WJg$^<<7Uc5_dCNYipsNfA<(5~`~_rt4t z?@!aH#HysJlA2anEYr*K6Ek62@DnbY zAFV*L0M%CYhmwz{_%D#ZsrtNY{H@`6MKH(l_T_QV6LH+v|yHV`E*G z5ssq(c)-yp!j!lL=g~=1+^e)7+~`&>#)irg0@P^+@Z8ZdMo7}Kq|X+;r1zWx_X*HK zG}2tLn**5a4?7DUs$vj{z^6+C^$N_;?lO-IQ-^VKxKmu)?qMLV90}qx3WB(m8Pn!? zABI9+Jah6IFu}la-IFZ1SMWv2XBCB6$DEmP%%JbaaY%W4?ut)wG? z=nh^SBXOOhG=P=VU&9;s}lUM)(m-`DNSO}f= z#8Q^6++44{>mTBXB9Wjz;tRZ)4-o!ooB%=QCxM@HP*k6dd|5(F)_td+e)?S)WUIdT z#V?*r!1?jYo&61xM-0H@oWXWk1u~@vJ%OtM%O~rvWfk2<0_nf&yDAXS?~8dYssaGu zP_lfa-e-NMTiw19hVv4bcb@=gF&na&WjRp2Y0vy`{nl@N1K0i? zXqiojsD)Pfb%^Z}mioDT#WV_j+w2&8#MdR4oLoP&dj~RRcY9$lI)aOqv$bbBL~u7; zE+rdsk8gM@jKHmFu_kpv^T411iCd;^WV$N@Iz6`Cl|}K+076->fN9n7H$niIDa+e{ zsR29aP1X)QbWQEBBQ|0w-oxB^*)LsTEvq$+f;B;2wlIu>Qso6Q58n?z{q9|GSQvdQ z53Nwk8>TgH-(Acg{m4u{GY`uHnOmx{EV&Lp`D&I36LA8B%++d%ur+b|3+4x7G=^bp zYy{7Zg5SA*gWpsf@La&$JTIULu2g_zp<%2rSq@x+2~q}d79r`B3H7OTS$QtVn|2n4 z&sPx(UZV&IvI0SjXQL*+!+2%zxN`8}1U^eLU{8E0&aKOUG{2X2q@pN7HoBxK@5(&5 z{Q>R}GM1rbuA-3OF<#jB6hytX+8#Df>CBh?A6QvJ4bd7>XA~*&w}_nxEg>YV-~P62 z&o_|oy7bXl67ibT`KY7Xzd%SG@&#`5`dj6o@*owwDM+MKxAC=Wi!xE(Wyv1z6IMufMTo};WBIWE zGn9+sVm;L*-zqRTz6vaT#!=u12=paZc4$_aUW!Zh;5JP*pJkTzS8Xy+vEEC5g|O3Y zQK-y8TVutiT5tp{7j)2HROD8`kalP=Q#Lfj8uZj;<%@kw8BM3pa)BxGx%@S-SuPnE zLewP=9D62o>|2(Ki1-rkC=ZlJk4lJW(ryh@Z`bGM;a`Ihm|2ghukxz-Jbtgc^D zTUT2fxKr_?{sWvgNtR|?8cd(o2r|EspEu(AUj=_Y3;ui#=?*&Sq?5LALhaW%kKo{& zZn|j_V{HH*SOh4neQ~dhKgI{LvBQB$E7|+sqkfmup8tXY?Pfq9W4Yu`YE?O)d5=!k zJQ&oAq5ue#J3RqdI)}iFmx1h`rot5n{%xEK(Ea$wKmLM0{^LJB#YPCo{sYV3Po&Ga zBebzP+SeumO>UuGErk9$+WA+mY7kZl(2vFFjNT}bpG0_Z=nPW;oe_4tOT2oY!O3vL z;xp(*cdP+`tf5z+Y0dE*IJ2L++Pur^Mmemf2WSSmwcLCK%U4Kcv@#K+>&+Xhg8b8L z3A<+xhkKF#;DZk4ARe4|tf_YkP89&!7slZfgchny(_PIJt_#`Nu=JcvGy+M6AYx?B zT=ui_pMK{s|lSQ-q>>6tx&SHbN{0>!c` z7w8BQu;C84Yof&fTG}D!%=zm>;AEiLl`l9UHyl=_jmP8x4nB3U+AlNH;EQJ-RHSD| zYqdCERRT~RcYdOdgX=W{Bd&S++_T`l-GNY-ztbe;yB4#-geVQb<2%2L zS7|^-uTZ1`yr)81B%aYH@qXBs#p?BFX#3Dxny~Q-(exATciO>Tw@l0MomR8I?f)tY zUpkToR4Ph!z{?i}jA{L}j_NY4u&Pi9zqpi^Lr0|Z9Z80t!tV_of(!l++gyn3et~KV z%Sr+hm3G+zz85@|dWFfls=70;PdaHBU@az9Dy#O%^+XPEOqe~`nDRCGU-OIl^g;S92^wS89hRJ$|1jLQkJk#aU43(cxk;J4{3*v z1!s=4(tcISK$*XSOoV@6$OFm`uIR%)`7#{^FC@3bIzm-r(BLR=^?H-_c5BBy&5JLt z&97a%ui8?~WBdy)Llod9iU3C1CW`z7uK&-nq0YdXtnFCE9sncV!T)6CmmLc$Q`SXnJ zhq0a~IL&VyVd>Gu>@#mYT(Nq!cIZRrl?}2HhKl)CeH*w)?{k@$^-{<_2I704?SISo zV=vS2ytip^>xS#_c^26D)V;2CYD9AK=bg||zG9LfFN5No){yZz)nMRTS?doYCER~% z56c_rTZLj6?cvQ(5wH)^@6d$xs1t+DMyNh%1(VmCyI)@h$zQB@cNf zPZUMkAa9ByB__$|5y5482?YSlT#t#$1P#blyfMJ$n5Q2FM7pW)Bs_E~-W_4G-f}yA zBkfy|<=R+rp}t_>8))cwbeu6pi8riwz{v>oGEpD&CkQTOP4s-HF|m?D4y!Cz3SZod zcGwf*$QCP$j1%}Imh&s&Q@z!zSNl77lczsXFKKVcLz@`Nr{d8#oZSGw&GPa)KyMd? z=54g;Ikf4ondZ2|cF^WZ_CD%nJ!%DDe?dreW*bfA^)Qq30Jg(C`Gz0-;0Mb;@rh5o z=%XL~=y5{lxyGyjfKV2l1|D_ee^f>WnLyS#Wp0M=ObN=-@#1nV=59=mRrdg3-AA+A z8^`$XaApfEg~>IBI@|}w%AjljjvKeAli`Wk4mLoiCFFV!rUs_3u$meF}3`_)K~_9}wt%+`4r;>*(1Z01j0SRjJoju2_keU@V6MSzdJ&rUG-JKH*WQ z#4-WO1b899bZ5jmArq}A%ui-!+icGew^_nS8ij*`LN9<8kPJ5riFYZJXXcw?QzYAD zpkJ56f~?!y;40{`HqEMoKD+ekX7`xe4ol@^u1bYzn5c81?yM#=Rmtj*5A=u0+8%|F zGEhdUCG71yKegdSpndS3oCnW)U9WXq>@BKQ8 zQ1oPw$8DbXPNj`bP1G~tB+Y~KFmZ{ahWivyPK)|o z86q6^jkF^zB3H5!!az!*#mS*iDey+HQI3j=JlgT+P4ChUGKRNVQ3uz_C z_6mD)moind%6zqOm=DE?axzxvTw%`AOv);kJpgifE)3FI!3SwcqPsm8Fk62VJwA2I zdupQ_4v9MrQekxYtvE_QQk#M^!G65+nati>!?mdbN1ed~Z7O(ymS98WyPp6dzLL*4 z6$4hm7xn4U$tn{er`;+&3n+Q6{D2zL9?MCy_-&s6O~xV+z%%F`d4}UGZQudVy)%wj zK~r#pu|Rus<+YTe(DDZes4a{TFEZI~j4VO%T?!QAwV9pWB|Ey)3Mmqq@NvK3+kF%O zX=s4_3Bc0Rli_mQC@YaSZa7!dfaX5@w}1P$ujXjr8+?X5eJ%UYJQt6^U(v7Mrd?z! zGWn6V@ewHiR1%j1mG%v;V8FfsjpX^vh{K4omK;H^WoF<~Q3kMP5sX@S9uI4o44B$6M<2`QvTUt; z%dNMhj;jLtlF1ghEU&=FZ~6GpDx8No$%KSWF)8CQ zUDASL1)>3GPH*ULb?)6$4aJH5p~B+o2!*azau_ZL7`4ZGwGsBk_tJu!WK$4V1Q_Hv zJ~|SYYy>}b#wDym0mG-*FlZivTW~F#;!YhrqZPmc9)TNFM?q3S@LBQ%b{IM7WQeoo z#o}(Ez^Pow@ycP8Pb|WMa=V^_B5kac5p!3wmJ z*RP}BJro?&;KT35qoD{lFEnI62v|?mJnrs!aOR;;l`;&J;7^YW z$)rtSS2@kz6vH;_Z2@A^6l>J92J2c51C#v7({w0w2>lh9by;R`kDx3sA#is2puUIm zOgc;8YMbVpGkY$+_~dzF0Yo(=KEBtwb?ewF!6|ZMX*y8=?(gHrx9-I%9l2U}%0d~+ z83EmQzx&f=sUfV@q%9vahC{a$6N3lpLDJ#~w?2Q4(|G*}bmEl^Cc?~w2Z<4=`@K=cOygqcv zn_m)Bd8yi5%Hbd)w)Y(j*vJR|;xjMZpZ=I3{p>=CQ_u>Gt9Hm=tlNWFbZ2J;1B_oK zB6uTT6&K(JGIgw}S-b=WG{x$p4wtHFdArofWqk7l0?LHj^pwGt#t$q+`S4IA(i&j} zQ&!+jgQGs1@w9=_bOkS1h_o5N3+6&a;7bM!(=|=z*@0hc)1Xaxst0_%8`+KWho-eoAsngXMfES<6*nqMbP+#S+1hy6p+%F(v^a! z&|h%ocVGvg;9fdXk;(dSg#s32aR|{y%FhNsB;^=O;4;>rM2_1pbVB->>=FJxV<)+M z4_#7_bpmM05+91sc!N}m#Nj^Jr0wu{o&~9;el#@8Eta!1sNy9)%`FJRpb#wzU{-|) zw`oWqjk$wfgq=B{nd%Dt@m_pbR&WSyD0r()dfK+rY_>y%RaZPYGX0ZWh*^a#Y2xAH z%RZRw3*tk_Md>LdN<$rZ^iUbJS<2xpz}jcRq2e6xRPx(*+8oIAh*MW) zsC-zDw3abMQyq_@Q<^nTJX_#Yx)9DNgwma9_)ULMV!cQAOyF@`-k)o(oNo@6H)b0X zjnVe5+Ev?TYp07u>w4U-Gz}g#M_aa0%WB4mZY5!STq}OOTBHnxjt3es8rIzZ=B;mi z>kaHlb2VOot;pf$)83~uE%3Jlt^Ymk#kSDgf&~=U%tM0qV-9^c+%cQPhDj(p&cv2#}!W2!&R}k;s%w5`fV})2ht8|a` z^I{6PXWdwRYDudYhei@rCK-CnH&e+FN zMPTqxwx}g$d))j+0iksxzt);EIBW`GwPWvYguE*Ox;$UN1+_iyW0bqvnnMq+ZNaj0 z8iyDTrUZ7?_D&fUuT_wNpNfG!=qQYVN3mcEQ<1U6vbAY^Z?leFn2Iu?`yR$gyCMi^ zk7eur=PV>XO}Cf#mQ}1N=eK2gvzXetb`=clp_qBhX{<0ApO?cx7CJTU*$Fc&4b(M{ zU}LU&!RZw*m}wXz^|1j{lmM6P>6F!_t?xEC5(lXoo=pkZbK-``ttVL5d*| zwYp&56srdT+TpQEnO$0hh7MQ-3;R4%c2VY3V8qERo&!g(=Mvav$)R`*WZo(PzQdBW z!-w>tXJ{4y>wfU!(BqWNH$9lj6o`lZ6s1M0pKJtm8Q2%a3;0Bo!cMfg*$}|-Srj^c z41e3kkY#BTB@10hq;0W&aDCv~C}!e|eDB zrLJLn#0hku5@0&7vK6n2paL8mqD5q0wKj>7Dw~8gSBYx;$>(`Se z!*I*sY)l1CouZ)Q=nHAocJZA)uswQp=nbBV7nNvfhOhjwykJg55TV3W!UPytPUo+# zciOA!t=>9z3EpF1dt^A>n;kwUouY)~;RKIGermv6gRSJRMFymulo9+Om=Te~fVckl zzW2QjOZomE2HDFY?mB{D9qSbjV(H)MfBUz8d!*TM9qX#lat(PsNRdy9M-EC6F0d#$ z)3n*0n6lXq?OoiqT?`|+YFmA_-)Xkydu=w>X<|(<7S#o0BrstaJ(q*trB@#0q3c#A z({?!*|6JGJfEk+y-Vp)sI_?Mz8L3P|<$*CUH?6zBFk`j*SXB&s`i@P2cG&jperQ>2 zcZ8sriJ(>iP+-f%Wws8e>dq3b!d3PO4jD<6&d<2CDbxBCM&?ye$V}Y7f5=hxF-6;4 ztTWRUfh6xJ5$SGYY*#Q}Puo>I$8hmmww?log!u7daLAbg``*0>N7Bg(=H{F`SCIe* zz!6UX%r=qSFlq&~mZgG7bK1GL(J_wQbw0hX(t;vDKKlohpkU$hr^*g((~6qIyP?I# zfS@)Rdcm16^No7_rj_-7*n9V&+pn_Db6?;6-p?)f#5O=eBs4T31h5qdL@3LVDtoL@ zwvO6j+iF?WMNvxG^M^^SDW|lo()mLf+7a4zMr~47mqUYHBPk;R1R=m6LIVjGjpTAp za?W|rd)xcnm-&3Y&;Fep8Kjb&_l1+tzjOAxfBW}a>silw)>_YPJ!>u7)z)=71OT+L z%9?7X-jK{SqhLTeQ_(2|6*Uj#q=Pzaw0gNLtANwam~B zq3gIYP4h9I_&0St`@F%9JP;``d{>u36l8g4S!s@xTQoDq#d7rmIljF2GJh!mB3Hj3 zhgrW(oAe55K~v<}@dh0n+>Wcn27v=DLm7^9oRhq_Z|b_ouM?@9w$W+_ZsTRJYI>HM zrJ;_M2!C*LS|PYGmMvRcGA#tn^(Z#@l_#r|ppyRcegFwj7?$z49Z>a$jH=6tXb{$Bp;+iLcu;pQfUF{b@yZahY!GWfF97U~yt=tZOa+{1ZEkI{t{sH}xC#`{ zm-jM|PAgGTWDXU^t?+`A@E^v6G;n~Gb%VH4Xn~IwODthI51sz}Vz(Clq%)EMxE$E@zxXcqj0UrGy4*^;8Tfdy25@ z@=WC=N3Q~1RX{vxAruj}G1h`YAgVACgsHBGnF#nJiml>-v_4~q*(>G)xk*$aup-z^mn%Pf>>9kL##ir+|xm( zs5Pzf&@f2bQqcAnKVBIIJf{}C0FSw{kn(vhTsNn3{Fo=OXg?2QqSn-nk6r@>oz^P# zu?;LsDtL&Kf+j*qrH=ui!mA=+y``IU@v@)W*J^60`k{(}a8#1wx+b6F0EAOUQ#bP~ z5WT9N(y;Drh9;dfF*|P%qD`9o%x{&pb7^Ghc9G=gMFXem$2;+>L2V*FV(YUKObTH0 z=+TKH!EgJI^;w|a#!y6In{)K0aTyp4fzs3WIi|&6rn)Qvxj)84|s?-8` z{A!dc(bV#nr-)>xJb=X$V44@$yw8*wiLF-~1A}Kc6*`Ob$wMG|G4U#wqwQVZp7b83 z?9<0CUPe>7Ly7|JU@v*LeQVCcFW60ho-7sYAIe$`o0%S34RAhJyyY!#`6SyR|24|N z9*V+i@fh5I?EWLB1>T1opEWZ5tIPWb3IGW^CRX_4LeYKlFB!-$rLZlu54 zi2S3|8u-KjW+chTVU%#7Df7u%gMRoS*KjoEw}X#<&b_0Ghq)M}40_lA$sPE(-4O&X zg~LoBKkpFWT7hO(a4aD}<;`OP$VNo|57;u1P<@@KP{nGQVfrQ1 z-2JfcQOM%Xj&=*2Yp}S)H$s0|uK+=STKvmv9Ft7D>cJ2;Xd*bUeB^Wr73$JQ;7?qa z&wI1r$Z92-yC@@zcRx+|fnVil{C3VPOo<%^g2*++EM zI~N~8ZQGL0cV20eC?8Fm+Pr1$Tc7&S_M}%?alRRXk<$-#u`HD^;5vq+wfWtTVC=Ti zl-)%^^PS3reJ{e9{K=cCg0eDeN=W*saH?|^{^b#{Nb5%*puTmL)$M)Y^DVyBA1QB+ ze`sv^^GnQa!-fXt^`Cju2T|CdM%sf>Now*^w$0{qt#Q*eo(jRL_dvAC*MuVU7K7eLBEPy}-@soy33e z(tNZ@9|dM@GTJ-F=4O|1s{Ix0?eLY(tn=9PVKyAO`c--Xp3wZXbUdF6y3fv>Ipf(g zZ9ReVmuJcazicCW4RD^aiCG_m{KmWPy6ag#`IA5SSDcyfx3t*`Y5pyn@_i@wf4~NI ze`noqFBxxx<~pkYocrQ~AN=6=)3N_YQmi86Pq5~2oi+V0C&K@^=F;j%3uzPR*Nngb zd#3z}#X+}r6##WY5w4-N-}So{fF~}x$P@jbBN_mM4~QmOqS$L0Ak5 zgm@QMAo*qR3ez!`6XUbeF)({r#rl6H%#-6yfJyjIW^i zWm;Mm*}@nXv2J1mU1T;+H=H@M5k<@s5yevl!k{Um#;t=^cH{nEKeRpZ*LN~AU18!5-;8bno+bA;9 z1>7<%fB>G-H*JHA1L#u0lLcG2!J6;n=i5vCOedpL(E3!^_7C%vAoICGQ+g+N+P@CY zF{L=F7&^vmbMWNel;SR&B&t7i{CGRZ;cT5v#>YJTWlYfG)Tu+;lyc8=-lOh-FA9Ll z6u66{%Bh1$da8ss0jR3^v<^B0quoAC{_-B!hfOa)(@;lVI;Cab)3YaB3k*Kgr(!VZ zBfztMD!}&dRImPoo+=6DQ2?fW&pHW;DkJkW9wn4xZnt?X5Rq@8~%VWnz&67ymG!` z9N@yBbPcdUKT!Y>wq^0trZDje_9K5_IDlmaT7P;I5Ngy&M!HA9pFu#nlGYEc#u`_! z>biC=QK6#iSy!J2583EpF2E3G7$Qs}c*($dFCU1@TE0Wa%u%--QC!}PVwSqqbszg) zhNeJNC>tB#e7^I=YV1xe>5UP7mLE}q0>+>u1-VLt8xtL6$)XHxNQAqQ?^~>m-`-(& zLj=%}gA{g$Fj|xx*Z&JAmH@~q-aTMvtb1K6N@hxZ_@DaeX0}$&vwFF#%H>l~298$@ zR2s{WM=;Vm5kd9qqAg;T(w?EQeTVnuDKb7_PIHAgSG*{5;hD0fZ+d45t0$?vAVc@DyYNW~b#KC?H)`sX{!Bubxc z?6gz@_ap*U%F)Cc1JqAC$LoV7u0rl~ipzlFp|Wq#PcsJTBT~aWIkbwl3LbO(Gd{&1 zMI+NLC{@x*?}2!lHvPb=A>oTI+>*wt)Cb#?AK+_{p?wH^<*! z&sA1(z8-O|=UoWZK3E(SE-=XI=?7a>Ys9>Jcfn9`9HtJssNEFGz*8{#On0xBjLlnx zvI%6AGIlo(N>G;Xx#F_M&5BZyL1|!_o8|c2{r~MW3IJi#=DA;Ht-nhEM(Nf4j zFA_vhSfb1hMxj?ByU>x}bg^pr7FGoNIrm}Mb6mCh6#%C5G9NP>Vd~zCk9Af7P!UjA zHwuDq#aYXCfI!poM^TH=behC`T1_iVDVTN_Pe6ZwumT2-&E##$3yoX>|z=O7h?oB~SxR4if@h5o>@UcgeB^4x$Sfm)L;yYXS^ zd+9OooObIH8Jm1qsxo5)k2Lkrr!iAFJ?L%SRDN7`C*07DZxy)o8E|xd+;{xvGe0K+ zuYduJ=9hNOG>ACZE(%`X3FF*$6dj*?S$F9rO>GwizFWg+Nk>fpM}t^0|4cdsQqOes z(b%5$nZ$Hdn>TGL-BqZX%f4k9;^lR2Ke3-XJqFgn)v*!0z`?og3>F?*|GE@j_1k*+ zJoO}vztgZJEa6D~cxHJ;%Nj$?ebKZ8{~UPWHR+{66c%1KWtpy^*cLUGnjl2sGSufV zP~_7A3h%6l;8xl=9Tf>K-1JTQRN$8KphDA}^l7lEO16DQv2PiA?Yz#dhe%21e56lO z_(vS+TS-8Dcu^}53U?DWbSSyaIF4ehVy6PZd&Y${fqh}WbO&&=!wiJWh;6>IHy;0O zw?BSxZ?dp))y`340c`lki$9CU{@l=yKo_&fJ&n22=KBNsf`!7kYCE=&)iYxC77612 zE;j1B`p16k$3A@Rwby=y*npRS{4r$xzjK;j`t+I|nqUt98X{c{vp9~XaP6Dk^rlym zI6;0-=QaILwzV8AUNAbgz0WRyPZq=zPJic}t=0>#7|ur1!EAxn-~>&g09g#cXkrLv z;2JcQwbpaI1a4=pkJ0V8{@RQu1R@-g!3Wbtu(;{V9_cWM5$Hx=BlKa+V*;{#zl1gH z+}&vo%5epNg2DNC1LP9%j}@TJRNE409hKmY5P*R=dfkt}-?{;Zelz$L3NjB~<(^c* z2~e4CjGzUUC)jD}cwsyQPJZymHfWRq$P&h*@baSoQV_WF+WNZZ77&?Fo+)AQ&@a!3 zfaN*!{|G9N_BB9B{ORw>FV3kO&)`|22%plTlxY^-wCGB4F<)8DJ9rg_d)s(jC?CPy z9V0-|+hS?Mc(vXYN>B>8EKjt}_-$QA(0@1~wu1J|rba#ot`@X>dIa;P#F`Qr(7se^ zM4H5OlTK1;^~an+u*!sG*n7OQ0>PEGFUDU2fEOuS{JgBULa+pDy|W)R0>U)XX^J(e zyO^4RtB3V~2XwJ77^JDUN#P#4qd2L6Ixk#xDFLe>GTgzK2jOQbK`WiBaG?GuN77uS zR@^uyH1!a!?QXk7(c&fnY2=T9v@OBUU{p}yY6MyJN6X6|1?fA|hju1iDS5(%p4OAP z^EBVyTc*mFy+ar_LdZ*g(_7&@7cc%Dj72?*`dJ|u&4vu7H>!@fpe<=chp**TRPglxOf)c5(^mN>LnV05GS&82; zz)_`xvIOYr0HusB>Uh9VCd|-#udRh8I zok$eMC?goLZdj(`?thbh2?LJLq`Y!pyT?Am9p+U`(%>$c>f=_J10TjknYtkTcD@|e z5njcTEqQTO@lXJ7ZEv(ro;uEM zd85`c!Gppw#=vO&cGr1Pg(B8G8rBkk*}WkG&}NhQEA;w(k4=UyVVHBv+znT#Uyq6+ zJE5OK%hd;9Lxp7h)+aRLSGUXb6G{vYI?AF2DA#3{#&!r-oWq<$H)Vly!?s@uPw$Pg zcN)tBfE4_eS1}#(^b!uXrR?8&QNiTTp84paF11v+2rGh=JSv}hUkItj^8nV4559#* z%D`73s7%aJNgCTwAuSy9IL&eH_)4D&VWiDDRy^${-R2#HZ+iw8k0N*t;^d+E-62n0 zN>E87l@IVxC??IkZ_@E2KzSxEwVm&|ps5e|))NX6hB(vKp<Za>$-E)QT}_-KwvK zmcB7f^DTY(Ek0JK=t(~Cb}Xe1C7COY(*vTNH|CKBsdkaVH{wp&>=?o?*f@Ai^mOsm z%z50@o3f+J`OpDm-nkMd9NXCbp$8zPP?mkkdfN|F6jXMslT(W3iL!@Ms{$6q3K+%> zsZ2&eps#}q4bfR__XdYh8jmsub`&#XZL2$6{L-<*J6E$LFn#9$g>+~~t(x}W_FL-0 z8_-dfvl^oF*0;X(<-h*xzy2o}`hD75Isf?{^8t%=-k0%k15d!SJ%tDt>WsDj>4M)< z)H+G1b?6)|}9;=hVC4ZE; z$!Hv8y29BzIP%+Ho3Y#X47NU4G7HPTt%X)VC-2g%9XKC5B_%N>#2ixpywkGQ< z2)uQ0APV12i}=j;R$D!U;7p4J+!U%drqdyoG4qfeV0d_raSvMZD8YHh35~58=On27 zXjMt4mB|v`7X&xv{S4Q?JMS5gxQa(*;t6^v9ht+YvGR{HYbQJ`Mm!BH?|>7PU~(P4 z(bU!*5yPqt6t+yufFS$r_X%3;;<;FYspBgR-co4M;MZe+hbT*wofr?4vy5}w z&3*ulS>&EF#LIUXcPO217zBwZOW|CCyN^+BohY>G#=Z2(cmNxf{H(TtzP67laxVIT z0^S-q4r>ailpgb!;s{KY)YPRESq`8AP>+DX-Vq=lVOPgByf=&6U)t`quD+h0)D%#~ z?Dt>lnhIFIZ`DiTuT1~MCq8lH;~)R{)vtNYYra5$^~=Bb#V_8;nIHoUw`teT^QljL z>I#Wuq(5Kwl5g3|LE^wW=<6$A`AX}m)gum3rR;>IQ{$aoPNV0f7_4hN!E+6q*02*h z*ovV$a=?-Iej8OUBUD@0s@NtHURH;$o;0zT)iE6WzzMSemcPyCR<3#$bQcTXLxHTn zLZmzn^CetBl&MvecnNEMkQR$UD@j2>x#C&YSK%q{O#mnzb8Cjnet-a9 z13v7Dd|rOL>z^C1xRlLv1D01R=x}Kf`eLC8i)f8jchUBdsp{4)=86M{b@I%eqD1K; z=QVgRWq_sV^o`cJ`K_OAm1SMv?XtlzW?C-7bG|KaXh~ZbArDcb*hMd;E<8vc>1Z2- zuF{_0(z%&du};MV>nwxN2cbN|U7vo1V!@%V^Y&0ti*0+h&BSNo@=+91JyKPk3diFD zI(5xTKGTwn1xb6CE8Xs?5VkMS)A;tiDu7pD=T3QUfF<+l zT!Cf(qweWHd?zp8ws-12eeXm0JgAnk6)&PV~E)QZavk22Kh|{ff2@Im@qZRAV4xnR3O)I@tErCQkEInxbvB zV`wXmjS@uv&*~NwGJ;f%zI85c4KK<%I^r5?4ZgY&#{{43{Fnc7hsd3SV4=BRf1!Ke zgJa0MUvQspa2T`Fq5YZ9eCG03zVek{fG)iUIW(#FzylAouDIfg8H~P%M!@876o7AO zVo8JQ;4;_)yzYS3uiKh!Z?8^=vrXhM;aAhnm^I-O1)MD=!)0V=(95u#PgYJjNV{y- zqpMuj;pQL?RH6vsGen&`|BS`iBl=n^)GcO>iuWKNt))et>2lxT9DqlUKNLYBOkp@* z?4{t9aY+lUoG}8$;640y5dt%q4*UW1Tm}cjBYy&b5ST`%N1T#2fpMfU9~B8a;WtdM zVYpgI#Y{*yw^E(QXC90F?Ts6N+4C9nR#0p3Y#=-gTr_UM?|2VlQf06J06+jqL_t(| zuI1y=xKJye4Bg<;QvrSI)XCPv4?pCxnbz9+DtWKUyuI#w(~QT5z^l_*T|d-XUS*Ra zy$3>~qD$^7$o#%jF0QfmMGtrXV6aR(DD;ZyyEUtHTR>5n;d$Bf_+6$MT#zJFE=2)> z!tcau04tsb1b+5ufR0ciZGlFWI0xynho_>gWd=`8K%ngn-6gA6(`QvE^a`tFDEL(b zyri?%ptzXUT@-zFCigB4~ImUwRAa;qr09WJUW?6**EWLF8bJ~DsiRGb>jEu1WpZG{51RpJb z`?YOWN`bZVL;G7Nspikz3l$vv!e-%?jqGP@w9_j4Z?GD6&^z?VknQGMliO}{@l$e= zY=5ux0YKVb-^v$bJ_NY`{`*&y_3)rD1=z%YzrGd)>^OW5tYbE1UOqfB+w2YTppC}3 zHOGU&k`kU6J{|ZlLZilIG7P+M1>DX?WtWy-LJ!`-GvLV>J zbZ(fs%vk{h#Qff33E~(l*B#u5M2N+&0$}|e=w+pmpL-rem}eI_u!%*4HKav5#4?g8 zm|kHr;y@huNnj|Lz|1HmFq4V6$EY4IbbTDYImipO-W!;Vlu5=2d-m zORRoI9eCbV6XDWJ;53l&IH?n~90NmxqFS19I#(W&fj>=MQZH~WdeC=MZ}A2va8#b# zW~wuk)N8W|0DG#g()U*>WVy3Q80`y=bnd+Kvi7aF25j=~_aA8MV1aCpkD2{0;iJ$4JS1GrPLrA6 z4AG_8(&52`Q`}&0-6>1LCcDECQ|r!oFR^3~VdgLnhmy&ZM*urF0xT9dj8*39vK=_MO}w@K zVB}gv)T_(A7G)T|0)bX-7_;lSv$dpr8ClI-Ds*?PJya&`1V-+q^28(3 z%fz+NN~usFD(H(D8_cC*CUe)4Gk6Y^rM-#_@B||Lj6HDTF#~d66zfV}YrNMUX=;NhglE_|`KOt2%}74%qf_m1jkv zCaf^LRMxDENsW_`-d;ARc#xZ$$AzwK;xlT%Uj=f}Splg+@PrjnfR4{WfteXJw!O{aL^=ncFp7lz*Gv?))_MMt~fKGa=TnIqNrL;wGSYcePv?t>w z<~kQv?mOPS_~PS5KnZX#SKyy*?}I7hf`SYndND(_vbN8CxjE zfQ3OSc;IKsj|@6p``gUld-dHI20@9=ox$(%tV5W>9%*)%EBDw~g{1ojXay@&Wfacy zw_yxN4--hopm#9q2^eKdTLv{2u>!F11emAYRv2hqz%XP`;3U)FK!aiqqzQA-;^LC| zv|%6)Mt6q`44+e8wzs7ZE+V8?*VvXAfowXN$;#47@NvHaJFOPJjB9hVHZ;;ry}*V) z3J|T10bYSVL3lVbqxuRd^wQY2LV7saupEzMCbJ*t3Dz zH_iZBnqC_9P;O+%$kLRhRqJ6zysYxnKzr#WsdkdCDrL4oDIL#qI+K@z`$mrG@3LpU3mm_?W5bLzQPJ_ zD2*y_Emyy84~1g@I@P)@vkMjw$g&5TyL_AlMdMl%=P`{%*bXa@h7N zK7LdxRrsZgFd|e?9{ar|p5ZwP4niJ#Oy&w3Ag$7_C;`Jkcd664dFNGyf!*3y5K=FK53zrGX6pNA#y)0=XPUgu&}y{NfjX@t<+A z65ucv)RaiU^nnY$cKe867zgm^Jb1cU)lR2&@Eq9nc`VR%lz{%;Y_Kqxc8w;--AyAg z@)QIzK7~OEm$Ggc+X$RJ=9*sF*x3j&Id|IK6 z^;GWO63z+_@prD?U_RabvcfPF1h(&0K7?=kTz1)ItxGPsIPXof#y$vHOAZWaLDVZp z8$W9CC=#o!!$%IMeA8y>ANaz);^ud&hYFx9YuP-evrO6K?k>|Iz?3Fg4v4}agUm)Q zb751=9$NEUnz(5WXGn)(<{iwLUeucELGa&P=;r(Y%5rVLbW`Xl0O}8T_>A|7p>R$% z)@NDM_KUCXm(s?MWd;oQ3I&;VBI*I0dMK#LuZ!3qI@{DhFa?-ptC(mtDqJ#kLpouq zICy@7=}l-K&{N`1+s7?s)5hQ&C4}<5BA~T8sk`kA0idtDJyslwbg(YjmtZbP%wJw4 za7E*B5BsLR)rYG7;zf<~PG*(mrF^F@Hi^%~gHQeA!T;}q781Xam@3%Ou;+PsW1px# zQ0Y=NEN?HL2p@vYy$OY@`1&zl@B~+dXq0H$)=RGJdoST+dPwEKe|i{rn54kZc!gH1 z6rw2RP8i6+gZ6UcDaUN4H&mKv%UJuuw5|C_2m7Z}cvTGMzPZJ8_=rQ4ql?rw_C{1D>pa#~SIES(-d}Xt~=vy7oDM z-fTKvr4gDU&imUsc{Tm!ya7H<0k{m%Redjd(Th$hXPBwg$M5b1S9 zevg0lXMgrXKl3v`^SuiH`6dEI#iwcIpDNl~#B}^`NZs+sFk}{IMxNuQ##qun|nbj~m(O{_L`k`T~mJ4g=ab)FIaF zF8gt)00>Kqrm-R%;4%ZFo14$#3SI!+?phfLPM6i;ULYzS7c>9Fi;h*y#DUKx129Iw z@0{w!w+uskW0^8YWf~4vpBuC*9wW{vP^mBwQ3XT%ytj`2Ht^3)cZ92Avc#Hy6$h=j z)V)33h2?UUq`2Z%Y zWgejqotacY`@zD}^0Ifph(UqIfzc|AV9tmpn5FNy18K8HFY*fK4Ce(RY>u z9$wNfuq}CRX=jNY{lv2(W^Q4O>tTxb!@gnQ;NlXlU2s;Is~kFy?82cw?Pi~F6$Ztp z%@qFb*RML1Xm@yg=IzNV25i76vaxg%#cux*H-(r4_FlnC+38>Nz7xDdcMyB>lWUMfb7Lx|D^L4OyIPM_6*gd)#+%XmE2@Jy|?JD54MrQUsqhMj9#caZ$H zBCPrL@sfwj%fD5xb7i=)o!=8YySo@T_ehi8?YH0FdBrPU@rCzu@#1@Kyz#~_v01>M z|NPJY{3~#|_B>@siwZ)fO`qw6YzDZe9m3q;Mf^T>0n5k}@l{u5>{WEw7; zGoNr|)_%*_7TIXX&f|QsJC<2Fg}L+YWueMg%d6o20}3RCi|M_}JAh{d;UYZWvxFru zgyr4^S1wymdKa?qPFRr>vDU~S`R~QuIPp}!d$lDAaG_CWf zVQB~&=WOGBficQtEz30i)9s&CN9Ktl03Z^mOeruF&^RDFcNhaJ<)T>jfH-PjL$aOM#QM=L$70X|KSQcEWShrzY4dLWeZAx$R(^Mu7mR z`SirNcYoG<1H-xg^f~GvGj%t_S{(qhS9tKxd z_4h+*sdv%EdZ~=ZgJ9qHzhyhMM_T(K6;2;k!4w65+sCu_fEs|~jA|rlrrGuu+64c> zC)Q@&!5RsdmbDv>qXJ$N`18iHru%b&v-92^c!3zE-S!9ag%1TjIMYa)@8mm1rr(40 z|7H03#qfmxhi!qsr0nl;V8DzU8Nq+#<#l|ny7}gtKl_J&_=hL|;1B-brgy#TUEgMP z@eX8Xz_Wwu!l%Jg#!w*w!}DMTm2dcE4Zx=i@E^-~8;tJmwYFQ%*2eL%6_ED~3byL< zI9T_K_edg#o`cD8uNB5{kG79;9f2(a^O^rLKMT`$n%E_P6Xqn{g>HzucZwj;jjIK2 z5S8<=G6R|X#_2P71%?s&%~rE6J(4kLwYu!kK`uSEP&i~(DhBL|+nTX`aJj!>;=I?& z8S5Sfkz4@KQfLmJkkt^u9vB9ZEf=o0mB-9Ez6A!y%LKNmX>8;ph|>rh+1=qs&-^O~xss zRp8pkWaiGjM|g`Hu)0QJ^W1&h4dRP@fc9Ey8GEELy$oN$>NDY1|ERX{xmVy?CUlX` zy3TD61Ml*ia`duHc&^7l`a4x5ef3CqDTEAc^khG2xJ!_zdl{J49VDG5vVT~XZeI}M zya}xJx!|;KiK|M8O6eYHy%d5a&@DtOwFIAvPlOS8YYD47Ssks_rXB5P42$aRD7IcH zhjilN7|02G;AlM?p5?oSX10g5^OU^w4FIalsK}WoSKyWKQ)q_PWOEECIK{wcjLg8& zMP7;uFhJURc-i;!0k$Jq@X|GcbPhNDgRy2ifMh8Fdc*kHrXH3Ow?66h?Wl+vJxvKA7|l43#f>A(&7mjcIdJ9^@k`sXJRnL0;v1jo-_Yz0HNi!lNH{rlps?1!hd zRRB6KdC5z**%k0tVNCx9Pr!?x{p@Ey`isB#i~sezzx%tN`#Zn$J1@TPzWdg6xze#_ z06MS+`(_i>jy+cZI?#b&_wE=P9bA2{){8#ww1XEOW4aJh@D!PG1bt=TBPt+hvPle`gN-=F5w2|xxqnN#a-rb zGta1yM=EM{%KYPLfN`jZXl;7709nFZw4@CJ+t}D4*sq(t0Ce%2&%x||^9=4-qK7#S zm=zTHEzZXX^1Jxri(408a!~}kmX_SksRPAYtT33Yg56jM;du10&FsDdDr9=+-TVL4 z$x{%LsS|<>S14nNx(x`@(<)T~$x*D-ySFI)p%dlrp+pVYSx}xRzAn)WvsVBp6BIsv zphY}Ba$+vMC{q*w#gLpeo&y;*P2JYj3w%UO(&i7p#e@FBE15L{f$|kTy5dz{Tn6bo z=i7Y`alupY&=&>E;81bQT5c3JK*YbDwg~z0Pb3s zm<0s@^$SdqCz(RX8^@Q^FJq<*v~(ksdFSbPz86wv(_!W}7K2ey z_kfQppK?;IKp`#lGc6rA-=Pn%{PwX|aDiUZPrEflMGO~6U`PM=BZMo0^oh)=?i;hn>B_-p;A+rFZ9e zd7E$EGGcvx7j$zIHTGE9c8;c_qRajH0lmO;h-=Cvx zyVU)1-hGU5^|tT%p6}UF<}()9rG$$gQy;wg)vtbt@BihNTWn5~WWjJs3-ykPJP5NVsvR9x`@YTA2{xR^`2 z1jP?CB~x?I%amQV<>mak46}m& zINS#f-o4zl?hLjfYX@{``^Y1YgrT54MgdX*@Z)ki2Ydnux3S=XV|iMBeml^^ zs7Vv6774q&(nrWI!LJru+jte+70>x@m6tK;%;%+maMglVhD=i?q-#0z%tY~fxqpQg znoP*)4+Xpmgk|}ypf@N`*Q1u9G%}sS+tUI&2yTTUdn|g6UwlCy7n zP?n6}&MGYLrK$Cm*3!<8%7H!HEt|J@Hqw?&pLdP8uzL~6H4gLw>Gs!3R1xZ;2rZ19 z8mRI|Y%*pWw)-W}3Sr9w6IP1&PUWivqyl>(f-7DFlvB%d0~+h$w3Ej-JDrvK)6Ul2 zHnq*Hhy5|`c@-<(na@8FZU{vXjVP&fv@>)_8RRQElD@e($&!cA%W)&Us2}a_rAJ2D zo;)fwfK_Ssz3}p0*tAj7^G83EjVVeBSo1blVqM55zEn5$@tv?poHp|}t;ITjx*5V; zZxO@-B+4}L7{;DRhtxYT%vod5HWz>4h1P&Io!%P9K>7yH6x2P(9VM~XXq0kFNAVCh z>8m19G^3GO6#`$u8zoHpNdhcs+ISn_2L>y8Wtzw)hyFG}Y6VO%QitYPlF4Aw@2v9Z z5Q@xdzqdT-F88|k_AbY9Q2j1|_Tdk0?>wr;Y8Z**;F)^SA9L~_d|Z;Ze)^|>`fq;V z2Y%q=oa?eh{f{zsHlfAuzW2TFeK+zwvfgjgo~6pUFSvi#2S511kI|w2B@FT=-2WrA ziF;o9(wBbm?Qehk%Rcad4_s{Ka{~h;{}ogVmk&XeomO73?0e<6u_%?{=6y#iVmSdvCie zCjq&LKw4w+qqtMt^ z_{-4v7ma^jz6yX$$&8C{eAY+A1#6v+ zoYw1N9Sj;2$8mxL5rzl`+kyt;8zqf@9j!YpEv~c+&;6%@@%K^KLYaUQHUhADfxl{04XHW?o0eYV$l1yJ%Mfro?KIRv0@V5T6VLVoxZ(+aC1CoA3J%wfe>cC^#BD;@3gTG?j{2>wle{a=q$I$0f zO~>!E3c&njUN9BVn`iiSmI&TRNBCECq{{&O(69W;ue|H7yY9OFmw)+}Zy>m0pf^A( z3PL|)i0dHsqTU1UIqJUiJUUNYCV8=sf35%)-hbw(5d3Vr1;e&<9G>)EMtZi0Wq36j zY!0$vQ2I`0B(A#l6>c&tg`=0uSLFD>lo531+md=Xu`EP)n|Pr;algzOe1sC^%9{)* z49>tb;7==2MiT+3aHjGKI4_?&Z><6#OmViJek<6t>y}dN8~3-VWOWKiqnd^BCNSW_9H%lmo4JY3K4b7%Ma`r3BYMf>R-) zpaWQh^x8tvNP*&}OIpR&GlCEttcyZMp-L;j%u9GHsC4m43;Cmzv#czXCuP&NPEj~# ztFnT4N}a8*@BKEP?HXl}I>r6WZ;`M}-&K4A${p=oa4m=T^b7lya2nnSI_X>4BY@Ub zKzK!Ip*XGfz?k8QYIc^vR{*X_11CEzb7%o))K*J1Euv^Y@tASfJo@*A0x?or?A3hn8V=9xm# zL8*}RTzl^ol2*e3iL4B)C=qN6+?>}gLvzksYfC}1IX)9u2J$%7;BmLx27GDVQl3KB z4}j@W?2C_Zhb6Th-8j`kOA6C+y}5YE1YCs>N`kx0#peSAZG)fF3XQPW;@7lM0g<6- zr7LLN^>1@imvPOxt9ba)^)J6Tby7uUqqVs$?mMl^IL`RmYo60urJU33`+wrZ@z(K2 zjt7q3gjKfxU0Yp>ha;OOQI>lTSTDURZtJ^9(Bc#ZnGJ1V#w+u^3E03KI&q!?OD8iW z1I_xxHAr*Q+75P(2r2Jm;s~7lbC^QIFwJ@lV=ZQ0%wEe68YgoJJ@eV!khye11aIgr z!{xahg7@jFloJ;=&ys_7wLY?aHzg{|9E;4h;~HUEwz3aMl@pHw^)zp~H#fSU!4CM~ ztU`t$(?WD|+V)XN3f`o37eo7~eZ)(lp)kt4J_5`6=Hx-!%sf7ADMNM&L;+&Gn6OQm zs=q=py#Z$;W%*j-dbzax6*MJK#gTtbFIX_|B$0UOIcxB26atshSw~Q2Kw*}C=|?1VD-nKEn#oXj+0O$S>h?zu zWlU9@W?3S6ge|RV%!(_D1+*4M!-J%)ZRq8gP2U088b2t!q_skhR~1)jP?vS>vC?(6 zG->zNQA7@LI_Bz_LA7=a*WqoXx_zGXsef76>~*hu-2kQcQtoliO&bM3q#IRObdMZZEt(qOFsMA z&#s5@<9kN(d?b99%Mn z%-zEZx>(dc8_#$1Q-H4?seST|0kC73zN}D{2kHPLcHEv}QyyMM!1q`??9B}Bq{POS@eFYB4#F^CQal^MU=`L84m|{r z%K=Gez+Dq`Cj-_JR5>wSmLVc2WGvQE>s4h&hGHJ;rYqTNo%n$vQ#qdWS+h?qCsICGL`qX_oqyCzMy`@2 zvvie5tZLv(NY{Bs2#|Lm17@z)6#-LdGGz>_q}O!zp>>oUXrbT%9f2Xl#7+A0Q{gIbg(C12 zq%zcU8-ZrVZNWI6_1y;DhHj99h8%eF@N(FdJc@tJ|NDlC=~#mEstjDsV^ z{t>!?k7c>zq-k{RH>_8$lYKh4TX*|Dip|J2*E>Sp?K`QA_%SVmrA#^%>3P`@K^-yE zfa#g06K7*RRAB9E)*AtAFdh|30BY!u!bbZ ztM0r0`s@Fm<$^Ezt>5~s=i@2pxOaeVWRd+kpfA{04THnI(&yf3d3TmOkh(k!6%OGF z?{Q+L(K!q}jtggz4rUe1k<+vlPPqAZwNMDc!iBD-GQxsWh$uKCvjiO=a_$MEwjb0!t3OzQ>`_!j-8UT3&_OOClHo-|j!a{?f7f8)2g>eh=KFugaqE3g;3e4bIltdWnl=sQ{qy zCaqH(1{j)Ow>>PoBI$v-e&{gM1#F*8^u!4FK4|fK(7Na%PWa>BMHgL^Jp*(xdnMrT z=rI%m>4d`K9tb%*q2d)RdudKXan^mRKIeq~2UOIbESbruV6ja_A*YFXyY@VR;q>ir_!n+>hlqSNaEKSdOr~&b>Dtg+$HG6m48saXdj&BG(tHC)0E?5 zgIs%Um(N;$30E-6VLnKIykztb##(Tv%>=9PR$12 zA9(r8Uw;4Z{oe1r?7i=O@8yEy`K;N5;p>3E;9k*L(iw@2A5cf12R*YL87N+BwB{VFuK;iae2z< z+a2fe-OjhyT4#=YNXUksgFP(xO@iJGIx_M-`;SvonWE)3YmH@wD{QN)ps_O;hm5zgKX2>xpV_7wEG$XlE(utH$nIv<~5tG9M3Yf4#gumtrf9AqlK z_gm(uz!4|w+M|Ab{h$U&@%z$?FTwIZj1XSoEQ6yFTpksx)qE*a1;-8_ZVmB#s8B4T zAdsoN1mM0vu-)>?kucoTY-*%iRCnq!mcMn;GF!m1a_J)!0SA~e%8(!hdh=Tp*ft^VMW&8AjzQ?9=v@IL89(p`^bb-9~CR?C^v1HC8A$}1C51?2WXHp z4q*7?)iSOvhKoTfEE=vUo%jz-7&ITM25Oc;!CWdznI}#n%F@z97*JH|BWyE^i*>S& zF5#r7ks0d^!H_lJ94cj>^C)KVw_?J!TGGpyYD`-M{{WTpOKARQSqP&hP9T8f2wJhyZOoOoES zI4haBA)#ewtN=`0v_-R``Q%4z~I3ND?BjW z>fPD8@?J$iUPAjR$fcV#P~lN=Q)%>};|g%$0n*t1s_Wn96hwLjz1Ya3>_mR^@q7^Y zjQvLCQ&=j0J*L(y0|rN9bys)zV)py zdg!5tmZ^Y@|7mr)pdH>z{JHNSko*{3hpd_pf~0ure*|;qovqfzdpoM{)4g_&sWFb> zW(YH2_Ie9Fyq@ju5Fwx|)*b&uE79EyR0Gr0x*LX(HRCW_2dWH6=HME0nN8u`;0lw2 zSvc>#v%S|k?Q%|q9PqW!hq%vcIUT|hA!vj)Y=Evs5E*G?lE}xvblIUneOluRphe1- z;p?t-u)8n3!o0bpE9@Zq^UFC+YZSj}RSvZL71F}mWFxm(PPJ$!(VD`u^dsD^x@1m51E>fVY<1|!oqTx>hj)l zYj@jV%3_Gtbg7hKo=C*mGF zO5n&-wZ0-M5Hz}f=^x;j*b87JD3N+_J8v^LSSqCpSwS0Byoug{9M{Zm2tXa2*GB>H zJ>OBb@^AXB_4kstZi(z01(oGH4ydeelU5c_N>Ep_B(em`q8n5BpE-cg4A*#4xK zOHV@JLxYN+0Iq3550y-ni&6&YyJVd$vF!5@ir$ggpu4)%nJjddzrE99t~$k}lqdhE zX>Z2l5@mP5yN%#%6o4lW@SB(e@9hkJ*4BV#ne#T=_BdD*adj3N!`Xwo{re9jj@dVKxqT!O4#m7- zCJaC~?U`i5o*JN*UlG&h)zZ|Jt>AX={vo^Foem>Ww^NAOe>|#J#-TeHHe5W9!9QX3 zfa{0hnFvDMyI3$RF%2v`rgSqZUtzA|r_i<>6$>xZ=)PYj@NkRZKGUx;kH3sEk~wA= zz1H_88x!qjM?mm^01{kIDD%svM3lRW0Jp2FWW-aVs}-D$L&ye12y3mrGXw%E28)JT z^$0jD${tFAE>g?g!GiBY8>bKYFkQDucD`I%>oH;CjWios+plG&GN#=n0y04NN*L`r zJyL7s^}e{7Qr5Bq&wB5%3{!=Gt2{3-OtcbGOe z4njQj9B@lr=N=;JF=ok{@51Q)qW_RAZ53|@cu-mxzk3rX$r!3Ma9JP8Cyn-|jzKMdtb1#)&d7OPq45X*!6}40XY`;=!m5DRF7+Th2 zckfFc-m5V1vIqP<(mD;`9DnG*yX*o;s?aJx%&(yUHlZED-9bY>>t{9Un;X-M88{kv z8Jd8*<(W5vKW)Sq%d+8`@{96qTTw;?I%(~*S=IDM9_l zX0i>n`d!m6AN|oE{n5|i&cFA{E3e$(_fcf*E@}P~I?jJ)^S-^?Z$BHXZ|8r~7xaH> z7ahtm0A0@p3BL0${^Bn_!m~H92K%NgV1yXh4p@Xg zjGxhqAX9T!(`U^!<1FfwOb~c>^09*!_hQbeM?;tA+W31UnofEM9Iu>}m>Wpkh(MO3)NWEaO%1^(oJQ zu3dsFx3*CNJSumQ4U$k69IQ^E7;I==Tz0v|9t3&;wDO&fu`9`F71pqHXi@DW&8(Kf zz-bpGBmy6SWqY73I6p13)s?DcO%Y+A6Tl)+!s&?sLDt&POJoR3|KSP!i0B1<+2^IV!XE?r-1smFg}uK$ZxgnODV%O3st zl&+_&05qkE0QYTN5FG*nMeJAK|Ni&Cf==`!+#e-g;LFTeJoxT+zx##1@f*MK0y-q# zAm*#mF&iis)^{_Qa38saVh=Ypin`lp?CUkV_15Rl?z`{O*~0b-$kE`-;d1* zzo~HLTg}zuc!j4YK-jjou0ky&m4U)b1wyZaObq2^&eYwCcK}?kY|9Jo!ju+z6`cN1 zdD(P{A_97yGISHm^xfEKOC@BJ&3q_lIUa|VC{S_$ExZlt?sC6%HUnB&bJssy=L&tw zFz``JeF^2jexO&xMF%onm)e~=eFD0%&j5^1I!>X@odd89G??(nuSXJe2{3z5+pp=_&v(+tt+uT2Yyg=i7N!JwLf< zTba9UO164Ln&vWp#DTCapE{V{kCy`4H0CY+-qeV!Gr z&wi=oTUPCzU~@oA`!e6s8@q-DfgCQ;ZXYG#F+6u`tTbA<`RMh=0qDjC=2O3*&6NH$ zJ#pg1;^#mA`N%lwbs=B2pZ$bu{N^{m`LDn4`@Zj!?6EU4$d6}_@&5ln@ZV#Cxx4=f z1^Jo&>s{xq0L+2U=FEp@976<@)u~M zh?j0#I*?JMOIKWR1!tJZefIB?R|{=4+MIQEXOqElhut?8u@x>*M za%C->=LoocsKIclAXvGR-ec^6uQjV9^9<|WPj8-xV1?g=0S{rwBa{ILwXS!WL(UpN zfU<~z^qauvdxOJ$5L)il-}n3h%JT4?GpyTJ@Or}7q820b&n4s+GA-azG8uuvclH$z ztjWPcmMFxr{6RtQSe4XVN;)x&hbUEv;=J8&%Q4wiit-Rl)JOQ1D=n)(G{RJduF#M{D=ckG z%0{VFKspBWLgXFzMhNiUzGEO{wt-c|XaN$$=JG|$a3iBG9W}zjDu9<=JwgzRQhZWp zo@>q4paKrUIEqVBi<4@RUKs8ba^jC7>aoNM&)|!PBSCiLu?z*WsUxhYvvr7ow}0|a zM_zEGU6Hs+o4ABxyh%%ObDT|L8ptnwLieJfa8n;GblOK6bWxg}6AygyI6bCYUl3s( zq#+x0V+u%Glh;PgQa`*;)?K^_1?GLVN22rr&?P-B!E^fwaOkt*KZWMmXFz!Lvv@ve zpY#nB3;RH(e5kL28!WR9&tO8^z>#2|v%Juk{*YB8;H=mHl(%p;sGv;5%B$upO??hq|9JoStE zFf_U|_&1K#R@W&yJ%1PKWn0Xz8L@MJ#z}o&M)0qL^CIu=;`1Ldq<5%Sb`-rn2 zP1p*+y)0l33|0rU`02J!$N+;|0i)~Pj?_nSSzca=uy>vwhjI-%-yw)SR0e}Qr{*p6 zm#}!<@^^?e%$%R@X$0A+$8h~KU=*OcFtOpTmVNCum@S79&Nw`=f?!6Df4e1@c$MI& zZ<)t73X3jbEq9sUE`f5MM(6xuk7EvVfXp&N10a*hPTc7Nlmi??z-nb%x5fkDi(PP= z5acHdbANr;`nyNKF7XI@Ha53V42Y^evVMr^0pJqr;8wvPnB4)b!xG#68bnDYs2g>Z zF=I6uKcGcu64xkNy8A8j(E2L0#?ohMK*qaBdaY;kD%5S0Mxbgb zOCzrc5YniWxJ9eqKGQ2>dm1OuVMRfY!OC;IH3N zNVrR#Dc98#DgplXpLq&TsYtudgTu{dP@p)IIB>)}b>q2h+g##leSD|#D-F!!@1!T8 z-|^IdU)JPPM!<)t002M$NkldQN)FyhIvUiJyz zOQFZTCq=!)8}Zz^e^+h@UnRH{f`+!ViB&Wm9|m{m>93*-w48Q(3*GiQ-TGpt6px`) zuI;ogdhG7IAGCv1M=rB}KMvk& zwADjAe>+zH--rqLqaQ}TO4fb5_EiCBuxf$?@4ox)E>Vh~W&@!=0r{V!QoAs8=D5-R z%EvhGnoZ6N=erpgFk?3A?+j^x=MwC=?5T-hDc7ZF1DF=p6#-2 z?l#P58_RCUyg$RF({-*In-K;GgF=gD^oA+Rz}yG?4DRrajnna3IG3KlH5jFgN9iF` zV4UWA+=qb-u?n%$*4Es3$E|@8f?LDZqbDD0og_9uA*e^eD0%-mt#FzHai9Uy0tnh2 zI6Tao4LxGzlr^ZZDNWXNC4><4bZppfYX|FZ8{sCi(3(=%D%=eK%x+`Anoe2kPns}8 z@~oi97)QWj*KCsFx^iBkq%a-8SUAFAKZn*>9RNcd5wvH06TnDb_c*xd=#kbs?+4&& z@SeLUo;mec>S0VnAK}`EJ|5pYLP^M)Y%I6F0!TTKh6Yz!N$X6D)eVrWL}_U>Ul!6*}`?t$Wz|Dx7zR+Zp6!ji7hH8&46YK1T7ug0w*62DBV^siPLy;$W32 z2!ssoVPU&bl8Qo@H_DzHxiFTn01+PGEw0Y}M<`KNgq6aJ7qW2E+BR@_>T91W3(yz{ zKc*XFnc9Xbo2d%-Dkj46$~#~*u797$(x!ZIQ-QIJDETOQjgnwrGOhW=!#ofcfcDj* zOYq~F^W~^A={pH@g)VwwWE;V&5TiRNJcBmx04Gc?;mmLRk-Gcspw$Ae0J*sWl7!-d zG9wM?pWLMG3UP7HN4yJa`h!yG352f3LAdmlmIfC2=VM%DM7mg}t3UKO;4GmYkJF-|yWgQbiOZ0za%{I! zP)c!7A+la7uas1tmb42$EgTYBkD@baDPLt_nm7$TH$^GmtC)z8F&uR2&>jyDho6mC z+3e(E6t7EAWDm7lrx!1|dJbGGHb`R1FQ7OBCv&lnzv0w9i7iYvW~`%iIy3PH4pC8%e> z^^5ylmHh=rC$a;&41?8eu?*M|7fHF_7fS($*Y&5X$Xxk5yLn;awYM4gn(xeI$*dhX zFa`%aZe4Dmugs{Qw2aVQUs>a@ z9%6i`yWPoodE*IO`+xZGD)ale@ll>sieLjM7i_o$eZtt_YlSu1DEY=PI=8f~Q~RJJ zWbfc=m4T~Rgoi;_g}T9p{oZOk6C#Hmn$ZS#@Q0s^>& zhl0-on7>Bx;y|}P?91TY)CG8543{r+<8J>j-mxO1)Kdj zfpBJ#z3|-#8-IweX_^l|fud5zy8@pQQi_M~m>zu6_R_>Qa(SNpgO8G~`t;)-6=~Bb zJayDI0&iYF=jrRxq7Qh!5sc8TmS#5Ij%xn_<1Ye|OqSzE8oQ5$o)`C!n4t`k9o(R+ zBMrnXCh4i2bg&E+o19Z2)^sv4NxkQA#Vfc6$BG}aeS{MnkTD8;15xD>QQU-|jB_Qx zUlKA83kQ|RjDPUz^=j(Qw(t{oKX);}6uAyfA{SJH4a*+2m5j#xZt4TRFls zKJ{wA+pc<{joqX5u%#a4ta$jdhJQZ|;c);`Vmr+jvE3I92@eX_sTfhho@ zNyUOVa~da!31E42cgC3kdH~Y7{Ju~x1ZZ023t#xcGJ$QJr_r7q#BPAd|JF?$i_w0R zk+Z-GfOeZWfVPLpvmZd4({nlQ&w(UEW#B}E57BhP>V{?$ADE@<=^I9);Pf(m)47^= zGGpEGG8B~r=W}J%Qa5k5&SnU0K=awtzc zEYmBDMu8LyQ{|QCzQc{Jpz}bXVUI(F@IX9zf&+a(Xcxh!^*V)77=^!u0Aw<~wZ+~9 zL(Du+;$sa&Yn3wyl+ZI20Rkn+gVs#h3+!^Ja9C!G;{h=a3j<;Zc;>W+c%oOgR@c}; z5JA1*cE>0sTEea(aJkk9m+KguVih~rZT%RWVT91hc4&kyY6x)2L!5+6)Zj^X&hwcJ z-0IpsvE+c^mb?z`8OQ4G!Q8d}{iwu2=FqO@?D-8Yu6~HXf-b_d43!UQXPc_H`CK}C zDUcE%2px7&piFODn>Kv_+S@XI{9{vCw)qw0!tz-`lcstHs0WtteL)X^b;>3}r18CbBPiq$6yOB@ z1(tLQMN6yxIm4BM;Bgx*6kU$XK#XgfWL11po-PgShCa zfXbw)HhWy@H>SY8Uwnf^j185IYHwjSbrY6l>0z8#Ex&zc{^lc*3SO0U_PJ>+fb>y- z!B#^-Si;~x_zB0V8kfRNn~s7`gkpMV(j8yQnCDRR;rg(9m}!94Q=SH(p9U3pTlc>E z?u!D@@N!YS5HH7t7eRl!%1Ey9pZ(dNo$?tpwrd{Pb)X7>?u%D*un@Zj8vVacVBOBM zp7ktU=rHC5&uUI%9a!zo190QE`|_8+eAs&!7rM*gmjd!`8i;n;hlXK9+&a6Rl>kR) ztA{QdGd6}Wzioz$9buOtBR5H5vZxwNh$ZsLjAimh-Rll^uC)=syd|51A0as(v<^Bg z*<#?)!(pxfhxwRBfug{};EXFP5y*%FMlnnMoHBrs zXo1Suy~MZqmf^`^W#UE-V;>O(-f3;KGvLlw9>$v9vQLzdB-1Xg_ywFrZ3MvM;4I`XI@V0R}Ogl(Brv|K_!IP%Z zC7xwh0Mu&NhS!6jfE)`Sn#VGYcYrL=3Y55H_|%0q(4D@Bj_L8x9{Qwr#aSlKqJUdd zEUE1aGATd0+o?Rbpqzob{mLmPuLvp%Q1Ng-2m7P_%6dy*p9^DVy|_FwnwNPW?0}2N zq0M-YhUv1*4$~6O;|CGi$v$A8pxYJ<@@u_XwF1ezpSZ{ub5N#q2h^zpd5k3-|wYhcevPZ+e{5j=fczJDkv~NGr*urn?SG7TxqpJ^UL~4YjM^4;L>4# zn?8LRoXtOFEE}7n;y||n7VQQ+BlxpZAas-Xv;u#n5q*t1g)F?W{XMfmS_6^)q_=%2 z)3T+3<%n9I35RDins9pU$==G|WOfM(_+``n?CA9P<|9`<>!{NJPij*e(uXI*gI-1* z57YN{j~_q222$ZmeqX3pBMYy-`s!`&N5ng=-*U?>FSz~o+yCE2h8`5|2c`fR2&nL9 z{{NpMsNOC`{phxGz4)zqkJM+%_^SJ~v zYu!e)-<=G*)`YDwN2~_i!TrAtQyVhJm?25|#stBTw6GcMik|^c~1{f6hxz~Vh^i!N??UFxND#&vBEcH`Z z_F#_NcqO##-5G9z5+c70Oc+mSqRSFX9}HT3_Vo_~gU! zPOqrM>>&J>mMDulN;m0a&|BQ;q;-x$I(je@ltUIP&=GEY7P@ZogNFhb1}d(yU9xFi z=H?vni2Mdz^$_ebLbgIr9X%$)__H2Lg!A~)McOHJD4vfLESkG6T$+ft3YqU&I1q)2 zCd+e$t%5dtFQ~Mj5K#-tmO;aC6)qycW!kLUu2xFEV%ACpX^V0}S>#N5g@a`;%y*CT zw;%hU3WOgs3O#*}e$qi$o5rUK0sE!>&-Y~>(?9GR_C+hil{(W$A~dXLJhxRZ-#0D`_M>v+_bZNK4=<#7rM03?XK^valH!;GXyh zpvARLUzSGB&kKN^LZCE&$Rmyl$_iwJF7zF0kl(_r`Fd!80i1TQUAW9w)aDiRQ~--x zmZ+i(35Ai2;=mns5jW$1GzPLK1Kl)z6kG$#j=^P}9DC9s&v{>pQKgq=xZ9G>w2FFi z5o1GJA*5SuAs!wn}kXT37^Rj6zuy>V4n;x~xHoi2gu z(RP1wd1uzWWMO&o_p75THej+4SMCEcPvB~JGG!hkc^|`Q%=B$M0N`n*F4&8H5d4&l z^bvF+ju4wpe}R2%6(JINmtXJ>-e!sh%d+xbsyXW5fe|!h?G-CwoW4%*?Y}b);Ccw0N0dVP>I+vHk z-M#A2zR@iUhlkViT{Z*4zdr7qX6O;^m8d61U8mPZYs*9wQVJUn=5e{Af-=GZCLKly zQ<2$fQ9B5=HvN`C_-z>uMwy3$ahv@E*0FjGl8dE+@NmN#cm9LZ$iujI@XFdI*zeu} zjIf1K={8iep9Utq5v$ILV|7z>n1t}aJz*v?VHhF-adHc-F`4a2HVra{L5KSq-+qK~ z2BvY(p}Wx~5YQ?Bv_~tK8xBq4g>a?7Itqx^ea;imt)Jyua44*1l_v$dedXM{^Zw$Jg0ZK-ahN#Yl&K(a zz^F`Uv2DV%4H(P*1oWkXMWsk#<~|8pzLp)OiN3KP?C)%PLpg~_pha5h3NmFx#hcjo zDs_~_GjVF(QUau*=1Nt(!mBhkR{f&Z2x=fqd z2A*4A_I1c}-cfG^Fs-3h^3!Hw0URfu&!9Sx6D)y1FPF-u?QdbW&%{={u@67BL~MKRtZ`@lO}x@z}M!wtb{?<{M#@Ot%}HTT;uNM?r1 z-&5%NcieHuZkA}=fgt@Zp8wyp=bUL{l+_vk`Ja#HcH{Kk?6VSZ8_T~>96--tNzZeJ zyEypxVnDfE&H)=2GK@xdw*#*3VKNM8VYghL``gRkeu}BpU{rA!V?}H*_s($5ptSe4 zU@Ds|Hyatmhx^~b?I2HdI1EtMtng8Yp<<+t0dCuV(85;228dCog2WXBDla(}mBM8* zE~lG{E8Mwlm<#PP;8562D;pocB-~hNljwN^1D(frN58EN0?TG(d?*GhO@JRu^ET!Y zhA1qy(It!9Skx*f&dY0|y1lKCi$~)UR6cZ9Dtz6fM?C3Dj-Y`_d6cn=IhZ0ZOcHop z-#^*7b`@&rJ8+?LGBLzei}G`ly$BR8gULE{NG7X*^>jT2N6!tFV5l-@6)Vpz5EO+I zysC4Y)fOsJ^BmYTKWBg=hXUcz5zod2pi7a@)eyQ+OOXq0&@KgmbfA!q5Jb6iwM2xh zZeHM;U<$?l6n2G%@eY8+KkgF`vV(5q^1@92C=?_`>A<|LaP(P%9Z4q+-J8Jm_B=+I z<1yic#FWB22aSqn0?w?IHU+~b2G@W?8vDhMxZ&QI5S2`x$0AQYo|#3-Xelaky7faj zr2z1dH_FJmbEl&L0#w-z~dP+%?Vqo%C5P%#kaP93Onl!BpW z!gkm`uY%V-N@~hOFQFb2pR43^&>yMoXVL;wpXsJdhegSA)3IrG@*d0s_VVla&1;a2~czF7L#RW|ZvH!zfImbD_$W$%eZ^zB^trk0&2w_?1PtN-uekp&(7sk+ zNMjoHia-6+KYhxcJ$uIgDFW%vNdxXzh=T$qAkXMwMegGFE&RUh!yo>zn@hN>ghX{N zI%3>;!@=>^XRjLd7B;tFX6wi!6o8HaftxT~abX5S z6;SBL%}+feT<&h7vH?ufY|D!g!Kd4q-)5?!sb!WtGXstdMgR?%vX}Fa`QIYY|{XEp-&3vjVfcUFv5PoIJp6m2`U0mbrGXU~9 zb6}3-#8YtQ)5aFaMxde3Amo{_Kd1NCsEk8hX#~zP?>dRrwU@8jJl zOM07jHp76DO7V*D2S36VJOfWwsH9iuS;{LKM*vzm>FhD#q=m7t^>!)PTy@gIW4jgF zx%kpUlJ)cme!VBU-BSkecM*2NMFPsPOe-znXt~lmPf~WuqrF=GF7@=JK5;HmqQK>+ zQ%$zVeo!$(?NLkQp8rygQ&W1_j5Ba4?M__k85ADz>bQ0PjVQRGWg(#~F3X^3?#M50 zgOk+2f7T;drq69dBMA6-HW;_`pGvMYW}i8B-B~lS7~rV&z_5!tCGf#BBmT`V&A9AW zPg(UFs>;N~Y;SU~%vibr@5u$6zVglE_f8()_41c*i5}o7zyr~P{+GtxaKjDm`+phj zcL%*CQ}Wxq)fgWG=jQdppejL}v#Bcr9Z@uEL{_3wT<1BV}W;!oAqNNcBlo#%#S>`(# z-`&kCue`FPL7V8De7}8s>C$_LhuHiFX19TYzs_LcF!=GNMxM;c-M1Xr3Pl-^gKv&G z*`cm^{#@7Zb9di!Kq~|s$x^@hy!=jCyk}U!1Y|x6KHTV7n~S?RxluQxOp&>4m!oNo zx<($!g!qF=6J5WFAmVt(Fap_#`3+Qy3t1Pp@WCAC*=T5va$Pp(7Q4bHUnvVv_ak+q zL`3KUqVtEw8+azW%xk-GAG0%J;BMjPhV6@i4VVUTvFov5Pm%q*WH({xBP@-{Y3@-p z2JAYj_dqnb5jf)k4A{LDwwW$r6$c)JHP*^6vp7bNlUDjV z%FUr8$M7bc?p(BgcVZV3>5d>bAd{Wc@kEs1jRgmP6Gvbk`p{L3KxcV`)?RxmV3ai8 z+y7@Sgi)1?!b7_OE`r+tNS97VArWrr1h{N-pZ)(r^;D|B==}HG?)4PSg~-ungPgQP}(>KeP$mKq@Iq-d;VTc;}Duz0Yz^rm`r6 zPbn-lukKqOQI~?=*o%VSDG=~VdjKM3E9l&SCjy!>Q~-ph+KM6o&QxaOwE!N2P=&_B zkXl%xOh#E^!!CC*q)cJ946XFCrd3K6oc03>g#7|sjyX%8V2nDarLycE7*1`u-LFBO zQN%2Vx>ZcYvt!3PY*%|(pU+$>D-Kmp9H%M_2@ZzF#hogVq>vy~;$rNtQobDHDsx66 z*arFlI?OS@)=l~82g~8l;8gxg^_0k;${b20dAr1im_B{P`YLe5K??zu6|W^;=sGfw4vx-^iLl^V?O-pQZ; z`Jew7)6XYq(~n?SFS0kl@6ngz1IS!H;O5a?Qp%&cb^-!`{~Dru8G%Um(vX>VzVn^0 z`shbLdJ$TU`!Y-I=hekLyQ8M_m9KndnGS$9`%7#M{CpmLih)5tFjCLeMI6B9{=-}S z?a?}O-7J+HbM!Dqaj%O^h&LjG(Lo)?3sZGiX>H|@4+i!&^T=8RWu3`%1AYdg48Vcx zJM(+qyqkBJUWTn;aVen|>>BX^>_il1p`xK8;9!;k<|t7Hw^oF%Ya1TPx+Azc! z;-oia0i_c)i-;RfM(7*NY# zQi=>ym|#O#6-> zf1917hmV7Erj>T@fw@k0j-6QV+;jMFwkX}E-6{j8PP1zw!fu1@nL$6w!RgMOyi+jE z&P{gq@7aq7fRzVYT|5&n?g;4xo2K2g0W=t@G6W8VSGQZ|4cI2zC+yM_KS)ReNhdA9 zpFSvNc@Tl9AT(X;VJX}N zsK6s#+Mb$b5IogT%Tas)Tk25(L0}GcM9Z@^rpO7vpUMlbWT z$7bEo9`O;p@T6jGAOb3t#uV7?dvRs^z1NCY@g@i9#IxxcdpshND{&j;CT|3&&qO;y z-RT6c!l}X={6VzFT=am;l@7*=Z1?F~>US}aJM)3a^l8Q$uyL?1D_~Sw5X5{2z|~Ig z*hk{ZzR=4gaw*R!9>O>fO^lz6 zMd%?Th<;)oNHmeVZ728S6CS@w5Z>g97I6eEOfvmMAkB~fzAaV*4E9e>Oy9Y*xpMOD zS6#JzfE?fIqCY@ocg#Hc^Z4GS20-jqJOC&FHvPQ1G?bN@8qQ1&y!Op+e)DzQA44H{ zEi!fnCE#5O|DCe;kv8yADF7gTr{({P5Zz0$ln&o<#~q8m_G`cPYL@@)W$V-t$^cYx z{#_7kh==7QDgb?gOQvY^ep}K;ot}$U$q0z_9A7heYHMb8YMr_D(>!B?T6P+T*JKF7 zJ$3z602C3`v5FhZ27w?`@>6cPviuxyK9eci5V!cuAPmqb4~$3W1s(jZV_#U{SX-=% z4H(Uk06R?C&TJpAnu4N3^gWDW0t;OMKEtv=VWEc1X}T;duthkjAh^b#nG(jktUT+b zX(ytKIw_BV?{Y7#Ac@0(!oe2qZn$(YcIxVJJTD4}*0bqNrd> zYu#mp;!qd7yj!J&rUVb3YoL{((q#SFLi1tGoFx#RY`60r58%eFgv z_wDZ-Bkf)H+*^khAr$6U*E=WKD9P9egRWHU0FyWf`iH53-Qz{JYi6$oJRV(?nK|Mp zR8ZI`f<6Xb;EV7RPW}|m`~)7A6yMW(n$5Nb;AO-0+rCxKAar;)m_*${?km7$`d$hO zy)$|SqHrdEc}=pE5j<%P=Fln22d3cA{wA+wyM)o_3gL1E>xmI;`j5IozxJgF=JGpp z(ey>|9|c0i)il5h<=OXMoSIF0X_K^p^=sd_)XcZGNxHQBc!L9b)oHp?rb{VSFxf_@ zOH@`IAPT6AAGK8CC<<1dQ#RxPP7%U1MA|XP&q@`>dR$a;sxNiflY_EM%lfv!Bwp+h zyG222J0l;(vv}c84_(d=P&uXu4Cd^A(M5sw=*wDr-<{SY!x9dd4sr2Us*qOSdROQ z=<&0UEXQ=gJKri-+f0{PB+Z@S?Gj#<3-I_{$Wq$f!;Pt<2cK1OP}E7G4|xS3((DI@ zDaPkEGA9Z^+WL^$9=k7;naWNLXq15Oed}A_dfg?LTymJHftTTB@4e(DFL~zylmPno zj0}Dxt$D->z|M*RD8e5N?9e~{<3H|s+uPpu8Z|Innj`koZz%JTfcKv_kHq7^xcTOr zCz%GAXP@RRw6L5n%^A(#iXa~@;G7J2aD4k`uiC}~X#n79M#&nZVuQiUa(Vt|bVT67 zl;X~H!1FNc$RU5nTr~5BA%w~E(2VWJQIdjWKr$GO3kGJ~ln6TKn{`7g3S|AKx||1) zHSr1w_Pd99=%O9=T;+OA);I$|g+Q3svBp}5S2=yE03e^j$$ErQOOm1?RIT?C81|pAQW5(O*t6@J_W`oKcw-Qb$hk2317hhB?G5)%aXM8fy2zV${#KK z)|$3H%L)z+dQ{kIup=n7%-i{S@z^R&Q7R}4u7ae%fc^+UYY-M)WHAY*}&--%5v#QUIN*ln2d$k2LUr;1ll#``%LD z$Y7#H6q-Fy%Y~55p3cnhuEqKO3dWY~sI*Zld*Ee-!a4(OZryt8txLDuatqE%P7Q4~ zbbDZy$Nm##r!tiDboRaFEpK_jC+y8mEkMFtZrkgI{w7=K7{*q&0M?_!NNPFz#`avO-_|d|~cEs(s-@gCq ztFQhV?S3f%8Gp&QQTkGUi0?rQcvufB4&dHCBfmFTh4~RS*4dyQRcr!>i~b$t#juJ= z`dfw~5Um109vDYs`2nHNZ3~Z+SD+Paas4*XYr$yox{iEmg-v;!vx9N0ZLH$vcfOB6 zLF!srS;vA=@tA@6peQu;IM`$+p0a0=y1mD^vUNLZ_4rO#xBHsId102Q{ldh@rA;zN zR|3d13@}naM%e&Z^J*!2;EAS!@O#+L2xdtHQ3CviC^GJ!k8H;(az31ZI$ZPP-V9R< z{mzl&>~e@lU<(WS)XK?tFfO`ae`k5mBA$<#&g_^de3mylN7~|dg|M(vK1~Ed1Qv~^ zPwFH;tw}QTPKj-WK6*Th8 z^f|PO^4&;?7!G163=FfO9lBZ|Q~yXW-C-kgav?V}O??46KuOTl$xt3RY-^ z^tKUM%5Q$CxKXEheNk=myM&qEgVx&hUBRxhXsnMgDR5O-Ne69%($HHfK@E`B@(!Hp z%}`Kg(tqb;1rjgfF);Bw3IJ1L@__cFb8|Y* zr5D{21+&V(F*7LH!7-AUdYxiuTE=^xfw$n1vW?@>%VQbgN#b9e+E+$307j-wRGi}9 z4859~gFU*thyCsaozcYp;pvsd?)t>>H@soa`5HU;Ow+8hxd5{}f+x>V|H}+KNA6t0 zyQ}~}IXB;VdnrSer5e;f_j5n@eZTpezxm;3JmVSn5MTFVrUM4F`CYVs{gLh!@URtt zwj$j7dvJaJYl!L@xW*5C@rz%4(og^NPrnLGPZNkSLJ2spg?~#i3>=BBOGg+~5^akP zX|>S@Bgi)E!~BL$ulm?%>W*U@oKEK|gH=c#C1dO)7E_sws4)4m*d0uaDwv-PxU4Oi z3LGe!ei)&ew*z19z}S(Y$~2stb=No7y;HOW!8~A;Fc{sP?qcRX`y@q>Dtu2dmaUhi zZZMct;smgb5o8Ju>mz8aId0eGbB=T^b{Tas5y}BZw^)UHgi#1zxk`0A%FN0_VNDS5 z=uWLR>EY0_bvc+;if&C!tuRwfEyplsC!Ulk0eR6XZg_V*1mm4!M~`)Gzx|HR?RVYHEC~DYGwtCH zgHFF3W#giI@4cJldV9dX8zJGcNASr61xvW6XNgHbFs`v_(iV!r7Cq_vBjjDg8!;Hn zcJ}Sxm%h-&J~PW)KXs@~Ef91#M-Y~08O*7a=^Y`>h)=9t`d|DNe(59dJH#7}IG z7-0jx*~Y}`liRXVKk3-^g}$LgC3g6^v}ZBA18Me+%0$Vj62QJ!>51agq*bW+Ddk2% z+>8Orbh)SH*`~CBc2aoS8;Qko@zX@QR&US`?nQq5Qmy6#_?F+5B+Y`LGlKIw6+-CqMbg zD-r&0=6;WJ{wM=izUfVGQuurJ@|fiep`V8X$YV7vF8>hFm%j9+})gRisBBB@%C-&$;RF|g>z>e>xH;}>x0rgXkKTjVm>-IXpvLLp1g+r%ao6m_^`UUp04In`nLV{yWCCWx%p z3or@eTEV(cUO-!ynXJS z8|XOCX;3kHhKFHq>0(Vfg&Zsc#^#^ar%l!c?-as#3tlKSu|jTJ79*_g$T%Cpo210HS=15#CGGi*?+Y z>)d<%B<*oiB<5t<;x+T;xL&6zkMkYDv0jx0;8+QKM!LHW{N#y~on=ld+_z^>XO;42 z5cKnSBBoh6VSK{!@)FZAb1+eHguo)ePgJQ0Ak))sJvL4a$XMO%NFlB}H%rNaQxz+j zeJNtd$poOqO{;cCKIDH~#YCJ%X^P8Oe1m)y0tK!0q<<7YtSfgdx2|#(H_OPzG9VrY z5B2ec-}bwC%Gx)bFl!wGi~0$D5o;C2LSb8;31E%D0Z^VtuqGdZj(qLa(spavd+&Rw z-pc)-@~pcATT5pwFqspF@p13; zlpFYXsQ{}8hy!uN58z8tg%=fZg*!@!-W;cpwzg1GsghEXNBmoF%0NJ7ED4Xw0oQ~E zfbasV3bFO6_?}S!m>P?hfcF_s!eGCXUnOX#(i5DDg+`gukZ??qh?*>0{^NTU7w`>l zNdF25Ws39A3d;fA-EtB-CTT9=(zr;Src^tE|0I5Z;`=B8Dz}5KTWs~_d9{q;vXA!f z*_xV|<$xg0_kIThn8x1k0*3Hl=EuL2SM%`eO^nef0Oz~)zq6^zRAnndfBKDYeBuR0(+4;=>kMBKBM1NVm?tJH*>)JZ& z(9ytK3o1+nF5sw@@%Sy1aEVz|0-1?YjqkXfW#N=#bg)PG<{fQ|ixVL@ZLlJ6j|qU1 zVaOnz*W6^T-37xkD;aN?C>FZ`jzhg1nD%Zqq>HuYWM%9u*E`K}yStBe?%H#hlLP0l z!cKR-@r^q>-~8q`@e(k%&)omI?p>x4I!I0^6Gh)57J(b3|{wGW0ao(uuQ?_=9tEqRG^}$*ncWlvz#X|GY{(>U>Ra{I*s6g zMzu82Xm8%ZKvlZRx<(M7yxG70r}6|=$;Sh5Dc})WQU!SCAN|-Qw?nKMp%Gy#z?K^U zQHqC2q_en&mD=GLC>iv}7!Obch6;wYHsu$eCN0mj4DERDATxd{Nci|brIb9SB$QBU z=bE)t5j!c@I>b-vkY3D6fBUg4#B8-qMJZ#1_q4$_S&eig==Du0b|!7o>q1LXMvX0D zv&Bu>jWR9GwzRA>&1ndd!$3~P0 zo||79AYFd*9c5C@jLZJF{z>S{L$aiM5t%-)Y@V6VZxW-tNC%Jx%BlgwdW#%urJ#Y3 z(4phOxE(M1ldKe~Ps40pQYTY`L>I3wZ+E+U>CD|ETv(gwA9?S4ufi?&pjUDO<0W{B zW(krTaSCAT0eH|1=j%gdt1_0L<~|1ZtAG91fBj>u2>1t-9^3mrAe;Yp`t<*$Z@z6M z;M-CFnCtg6yzJ{w;lIT1E==v@2S511XLF|gOGPMdO95-T@_a?{1L2mz$N-pwnZnJq zNFX4Gt!-r`0IA_5=k9vPJ35`8e(j0TaQDQ8$5<|zYo3PLgy9bepqcKh zzy#b{cAjNuHDyq9?ap<|xca=?X3p~z?sNe(nqDF6G=rAAR==qhkvcai<)EMu?G*-K@3Nj%EMdyTpcC<~)MCD?@>H!sm zO-|l(XFccNWlrTGP+-*3I+rM(Jh9rj`5(T{hDGdHh}Yog;d`@cKn0<2NgMETh|?a5 zk!{%^pisu=Modc!i=AWJ1R4Uzh`>8H>CrMXU94FOaRtN-+Xe4h#Ir(QxbvVV5h|>v zz{4dM?4>P~PacmI9xxT4VlalQ8$;l3YLk7ZIZyy7TfBLkuL8~p@yw^vUWKxZTIs3) zlJTl6#{0wL?DWRBYyLTm)o!K^MKV9YiNs|#8NIkweDEY?wMwUDWHyTW6wwOoJ|2&T zFe{(Jf#+Gz4&Ea`Y#^5wYHCnW`-}P_^pVh>n8+<~^2U)xU4ap0NrguIv`SdvfcGS` zAmLT8Yl)K$Y2=^)MwMd9Zj}?>ni$;i1uU&wKd_|UW?WewWhodP|6ZY201`&is|d&+ zB5VbedKG%YsS&T@rO?hczKn;|jnGyJ@W7@Bb^=hX$0+_09y$BcahtjsryPkxP4-Je zQ`}|BjC$Rp!m`_Cqba8uS8jflcnQk1PlZd2PZ(=}VoL?7gW__TR}YElvOJJXw%64Z zPGdyb4!&qRQ)+29FqzNa$&2Ek)7>`MAI9R8w@TcUH^%q@mjJtefcq6_R8R!@;2B7L zI?v<$heK%s9&XeYUBslPYrBA-9%=RpvHs3>i|Nklg zZ9x?LY&zhr6f{Qoue|Sl@B2=o5??5T_u1nS*)~k#c6TP1WndXz$lS|8kbSKR0f<&B zb%frZD9!q?FO;eA%{PB&G(B2zRhx4Ur(tH)VIUwJ2A-5csm%&yYL1>7yo?sn1vhSx*j$Gd}y4Rla>j%=3HhogByBo z!9#GIyTj!UL(^k0X`mYOelEK+X2ALUS)Mr;xQ-Ada3zA)Q{H@UW1Kp0vzoZnhj<%c z*#0(8gaz=)P`#JiYgx!xWy(I+x}IUmg5?Tf{8I>9B2y{ZHZ-ndn2vSG6fo4;*ay+2 zRYE!$&*4KSS+aKudC6)3nAYsvasuu&e5SFkHl6>aUh7imZ~0-mL+^lFF)uIou<#eL z{(UYJl)*CZ3e2uD=o8pCoxKq7U{LKW?tX)!jQ*bh=Zo>MC=jRv!QlZ&ej9YgE4|0l0Dr2Ty|=@aZ&+-lM?Nq&1!IGqoXDfi5X~gDFQ=v9 zMKpQb)d0u1oA}`${^2hpm*$|4e}k<4HC70GTS~yUQ~;}eP8Pn{nOAI};00s!-l9^_WH!YeZ&m30oJX_~_U{B^%DML$s z6-CAQdIjEqO@kDW=G&sa)4*@bZR;$-a$3aBqq>tClkdRqH|y)?IXnm^@?_@H4<+WEV?bPa72Szi-`ACt+-DF4 zR-p4e^(%zhq~bp!Akp@e-6$N&38#U|d%$n#-}U-YRLGOP@6I< zXt~Y!uwn%-ZLf>U07+Q&BBaf>k95Hk?c)v)w~6$=kS=(#9cfvLsX#i~MY+NOW)N&B zZj4n|hzwceGr_pfyA`hr1=X|^u%JkzlE*U662K9ATA+9vRd3zaBP{lbm$a6t2CV7! zd6b9XLd2Q{I`{H7Z3$e`2FT4A;Z@tm!s`{d`E8&25f>^SlfYq%@LlCun=bF=FZLe- zJ@mua8#{$)KY`-ligH{9VBK^RW6(W2P_pov^}$b%DKV60_S_oGpy)0VaI$OM?JagU zCTC9W?)TsR_D<)(fq5-lgTA`H)V%GoTBn_sk#)zcGhe$@Sy zU-^|6Vq8uC#83Rh_3*VB`s|Dn0FJ)pbihL@0AxhD&WV2C2~&9s1dtQ`{^*bX=tUk_ zundzVIuRODg@1fsYFxJP^Pm6x1w>)8mG$HzQywqm(fe7W>S%1ah{+!D1-?Q1$Hs$+ z>23O!sfKMTMgeeC#dK%~XAMf3kOP~isndZxc0c|MK3$4FE}`jmwK7tMZe0Cc-HRm1 zhArgNU2hzKQw3`NDil-9?N4J7%Vf3)np3D)(**A6E>i<8mC};-JafizXBF>&uK#J* z?!znuSq7q~K-i2H*TZm{`E|FDbvs@K+F*+L^h_lf8Q_!)0YL~;qn~Tf{BnY*#7yzA zoZ+}mK?691C2n&ZhYGf|9RZ=2Lzp>eB<|JP`V|WwxLIM(y8G3*fHya^uCeCVwsZK7 z17e7qz~y3kFx3K|MCEUHfW^;9ck#Rpi<$= zZ|f-9g82h$eq#+%LIh#veHEtuSy^-WOA<7Xil2a_Uhd1Hw%)2E0#2b!`zR(kGuJL$ z)=4_yu#Adxpj^x3pHl|0c-u5)4?UOlFMchvKr0xm*YaAgiCF?H|JgoXw+{ky^81J@ z-VxzM(KOK9Hnr{c+p@)Rki)%7tJ6>hy$Q44BYsdM0*^k>{V#3j6hx=)RCb^NMQvNQ z@jWUxDz29A_%xnJ#|hJ;|=EtpaeLv}bcYetv0q6Z0@; zuYj%wIrsga{K=pE94(xN=Kl@*2RI$@cl4REygKE6&3{k@;J|?c$-sHUSCjs~N7KMt zH`@B$-~HW}|M4IH@zZpPvo>C7^|(i}_@eD;=dEloLAz%zzW8DujdIrXIo=S6+77eq zcXHSrFoE3}pJuGNAed$1wdID4ITr&_rjU^>x2akD4FCW@07*naR8jj5pF^?OGH|KbDXE3K%3#)hDHdnvdd0E!!)gY3P}Y6JW*(q)xNJH5nbJp+MG`!GCZy3&Bep}-cm{LBSY01jyf z4$V84arrGy@Ho+3jj&Ijm*90LI{VUW5kjQTH-%bX>L-m#fmi6y3Y$uOsam@^knIdO>t!j_7&Z703;Mk%Kq`9|OyFlY-Z)`qrGhKg-2K+s#Kcc45Z;*)V6 zuaNCP=?I>T0V)rIa2X4t;;%PIrAV)vQ%qz{|CYy2?+MBScoavI7zZWvsg$W6qIW=FZ;pLPI3J+9h+#52F{IHS-&Y7u>77o? zduhi!V`KRBuYY~v@BZ%Zas~j;?vu93^0@ngM!Oi|*{|kze&=_t_7EXX68sdrU=n5V zmp=2E&-^d+%U6`?d)@y7oX{5Y~DwuX&7qAJd0dhdHXoolY?aTqi! z$4BGS3;?3vy4(11(s|UEffmLW5{K!M8xUc53{b$3apmJ+V=zMt%qhb(0aNQkH>7I3 z0;A^rGDKrxDDaK8mkDTbl!Z}NIpzTQ6|M|m2DE$94^axHiDDlT7_^CS+(r=2dJ-OW zYoX{eRd8xaC@eQ|qYpS}D0BQSqtb$cS!wkwAOvmAIxctDw0k7(o@oNwgZY?j`&8;?eK~K$s?iU!h~n<}%wV&*R2- z>r|Ijq5`n*z$suQ&Vd=FnfW=UM(}dbaUKb5_s%iBuxojqXY``X5`pJC*MfV%kIGE8 zOa_+QRvXrTZ3s6-4#)v+Y*s&@P0p3JTGep-Bte2?0`bzN;lOsOGfn+2o>$ode2W4pGa=*3vU)a0&Z#l%=W;%f?}&*$(Ml3*iz-u zDWyyWhl9e<;=2X}0xRef#!}2(lSh`rX`}F^jks6rW;`vx-h-kHpCiZ(5kVkrOSwHn)B3RK*lEHLT1LG zn&jCumh70F^o#`YxLlX&t+^*Z%-WR#@TXX?JuUh!+wpR3A*7rm+_xL6oAkyTxbxlQ z++ybh7Tp%^{{^Dv7ZyByxx-evGuby^I9&^`z}&NE7u);JcMcss#4dWwt-@T4o}Xdq zoo+?~fzmDor5^>TiiZrGmeBy`W?84NQo^_Gbh8@+uP6p9n6`p1;oQa{GuG{nJART6 zZz*fgnOmIh?A|p4F2O&royJ>12o}nV!H+!0N>p%CJWQAK0gkNDmNjroe8M8@{+Uwf z>Z<47HRT3fDlD^m8%$SW;wk`pNw>M}NH8K6S}TyP*FLtdwJ7bPWXOLd2vry&{CSmz z=1YO80OmuUF&i4W8Y35FitAEPTH#i7ZoR@|UeoZe$x?Z|*S%{=@@l73no^U_djBvH=ri^?y)~y0tc!eot3ZG^3Z4FTz=ugK$Uhp5q zH+ZxT1SyoEFa+DFv($x%JJLcF)vDmya;yE-ZiTP)TYjquNn>vHYr4oS5M40_j7`Q? zcGq(ZLeJ(mpw{UU74=Pyy$<};sse4yM_l|oR4Ir;N(!H4H3)d~O7JB(Y2+l|g|BKf zMgU4t;1Vw?agE~OZP99tk+g$%qOFF_M>Gb-CIR$5#;-ZB-Iy1;MBE+xu3oaT@| zN!H-5%CK(VYrJ@Lv~(Kp5Nw0O7w8`5_lI+=g_@dOUhNSGXlGJw(c+Vz{Nx43#58Rh z-*U?>`)ohBY0>8G6Xx;|A!RhO`YCKyxAs#%^;4fl8Q7~V2MO=z6Wr}Y$O9ArI##Vp z&EeHB&{Kc=w}1Pj-~avJe->I5JD;6@C;IJd?4$XOl_&B#pZ)A-FL?dyU(XTN6H5%1 z@8;15+qtMmQ~ue!Zy&ENeQ3BmT3O#5jZfm5J4T-{k?evX=o*INXoTfJ=n4&xcY2yaF9FE*XXdW@{3I&-Rg3+k_Exa5q9dtRNE`;&uGzfG$ zfCu zXnjuEv;xh3m7#0hyAhHag@W5LEra%51zmzmyfEz?yYIbn6t4MzP2vax=T#I$nX@q) z;It`>_oOkMnfaFC+P-4q&RZ*BT4wEU=m6SL_?Yg@rG=>SD9tqw&F7`Xs}M;!PFXc6 ztk?ci$XV}D+%!U`g+m+)n0YBCa0$Cx2}@6@L&W&ZFKJg5nX1LLmuZCCtAw3nfyBUS zJ6jUlZ@q@tpQ9Y1Zm@&>me1}osjeDVOsH85D8`0<28zj+w?E&Lh8t5PH^l*^do zU*I8}C3uu(CaBlr&bt%R18uMm`&$#;{%8&xc8Te*`O!3oik}>w2?T6;E_CwU)U}H^ zt&_%R+1xf}%imA5OBt=KCQk3!&wcK5zrp7avg_6K%?IhXh9J&jkW9vUbqbU}xYp7LqkPIAsd*U2bYna#I4vLB>)_K8$8oOHi{Pu1O_mM5eyYnFoFTg?yOU|q_t^W z=n8n5fdaC;3J5_~k0^)}{j4G)Lxa&+?!wY+XQ?;GfjDlB$`pc%32pY|zDd>(4~K4y z!&HL;f+%UZzruTx=>UW06hNLSV7k+5Om|TJB(S(TAO;*1@2Uj%L)gTkHwbc;z{I6F zh0LI{KBJJMOad9_Soc2-OwM}`Svjz=h2_t7cZsFY!qVjdqn@CA#TWl!)z2bgQJC~N z@M|i{hWG(41oPy?EI2RxDKNGP2JE3IOag<^;@S2UWufp@0>s?}O98MyDLd|N`v;g& z7UG7ba`7&+wqHQY*~>nG3EP)mt%a>eL0jl;!lP*Y}=)om45zWn7cXVaS}vQ{M#IS`t;r9OKAT>R9hKJ{z3o~~tn<=r5( zqFzk+C@%-rc>L$1sov)13ft8~$@dVge;2IcI1FbOf`+BzHEsD+;N*-2T!jOB&Su(G=)}3 z4^u%{+@D|DBy;r*X9sfG1;?5p!Tk@Bn}aDSC)@ z%+g*JjV%-w6#=_LLE&zRGr*Otf_WzH03l2~xW)pUV8_9DOu&^)U4~22^ov|mAvTG( zp_nplfzRn(C_!L;gJ6;04*r@No^wV035*yibn}~+7#gc8H4;jN=Rs!XXcHv zAbz0Pv=6!wOHl@-Q-yTuL>!6>>b1WrzMyEStbOqWOyEzr%`-p&RFS1y>gKNI66BjS=s3=>PkQQD;IpWlQZs?Fij5X>?ohlXb0%0kb z^*YcaeCo0c@uDNbboNVjfFzx`1yzN@;7=~2(kR`^4(%)3%ZK8#LnB3NN(7HP_!BK< z*Gu2vdthAk95Is~mqzlA^r(rF|mZ zqJcX?x_NBG|ap5_n)PvhCa0|y>F%JLE5hdK_9cTZonMGW1_c6aMAlhJoFobF~s z7zVq@PGQv-G8+G21R6b=A7s!mi^#zD84vwr;Pb_I&2M5YASh+5j(M#p3v`mf)5j7A zKslu-I@n7yAFy^k)&|aqZ6^P<^2Z2zgW~2`6G!nJri0*sp}3CTjfQ3r)+9__T2Qsg zNHKw&G0)m)Jr**WbzY`C zaG<4MF$zt7>j`cY=8m1popHsx1Obx3KGAAVd#uKEs9`V z?T!`tBIA-ebeXH*D)ilnbA-a_4uH~vv~It}@}}(cC51VjE!%)Ue|VNa#TwAx;K^x) zQRpHNR6gLhe#d6h9r+foHNM45c@k|KI{t|fdAmp=R9=9fi)#ykoytmOBf5}6p4L1!ZU_8Fko5pB4}9}_9o}o z#=XJ8gNJ)J-uPY{IHcb10KQp-+!g`Z7Yeru(LY^5t^8;P+)QFjVdFt`4{|-I0>Iz| zx9R*bE@F}WPZtq2dH!IGHZj7q=`}>c!x#Y9($`W*i_KC><0!g$i_Fbo%L1rzGp6f!1)1sYPD3d zgB|5K^@LrVJ)r z_6T#d-A>1?EWoQ zTeJ^hp#Tx*{@D-W2VjDG@3rm}mSNK{~8x(?X9(&s5hK}z1HY~P7<-$y8U z?;p?XW4`JGC=nPk^K^oWM7ymTdt}tw`lbXeD$h%)r1i1yg&q?ee=m1+Qhd!c-bpdGnIq&R*4i+nA5S zyiF&rD5H-uTko{C8B5^al`BQ_wug^@vRM)7J#Ela7F<(ZydAV3>k7BO3eP$oEavVJ z;gn#|}%o6Oa?sr5_x(UgBN&+pF3a zhy$+A&*HA35uRCpggH&JuY&^`srR6~FbaH@^STy_XDSVzMrnXzDRS~5$`GIFE_<)~ zhz6uD1wi_t_rWU#v9)*((!w8x-mt*PTprBy=X&j9!BPLBCvD74EF5RQ{=0DDev?6R8J)1i zutglokzkr(FjOlKaDc*ChB6+vYGr^qV8^=t!`u*Dx*Z*y>CT3cg$dW7*QM+_Uy3S) zfqXJ`U2`%p$-p2cPXuf&1hwwXRje21;9*EpM9g&&nCrOc4d!#n8#XHp6Gn%iHjplE zbt>r(@F2i6j6k2~2x8r;3d13XpbW6gX=kP`jMR^i09Hk+o`r1c159k`!&9EkO?7rn zGF?dCO%CjFqao#&frm5#_zXgFr2xW8Ax~X{!92_Krn4sBKrAnX&L+x(bI$_=SRbYu zMoL+m?lLHHxMZSwO+3C)ugNS5iRT?Cyo4>AyI|EgpYMFX`x#JpXNnkv5|k_*T{Hb57m&j6bnl$AOy$PUDfzCs|pOYQ&LkHi5X6nDv;EySvV+O=!I5>gWC(<7gMk|Kea`JUwx; z-@o?S52$Vk)3b1IuP`OM?`vQC+Po`hS|iQ(Pv9%POMvkThK76is02KyYveu(KpR+r z+u#e#wf=Juy8XfzzVHqidVei zIPbx8hSsCPk!6g>2S%NnFWNl3v9hw&>mJ5Ue>=nb4o1j6Mhhl0Au@0(E(Q<-kO7vO z`RS=&QUF6N16Rf*bI>~R`Od4IV{{(Y_w+^ZmvYF0*tFy^-#$*iw~4+=)!iZ1?RDIV+f zmsn~j8r{Rd_A1PT!2^tdv@@argY*=p20|*Z75G}9GB;hdrTD0n5Cj;Z#yf=-Fe|WJ zx;Vh2uuT~XP6fSvr()sz^doiI2Qqo@OTnrkdS>9|hyTf>%Tr)q?CiTN*@U|myhQ_f zpLF&WePDyVs83|T%2S4n-go{fEWHomwCVYlE{X!EAK2|=%kLumS~^O7JWF|06Dzu< zF=(bdQ9^E;fst-iXz41Zq`;-XNwhu5?34B?1w?qod*O@}d7ZMTx8}F42LXj(Rp_Z% z_@4jxSFrgl%uyCpM7gJDQ(W6*+hFOn2@-9l&+HXpHa%2|(urpPIvC@{2=*LOjX@86Qx4Cq&ySaIi@)UKnZiB$b}-&` z#g7P*Rn_;DK?6+#4YZYA_h@UTvcQc)%06cpSz7umZMJP_meyyV^DpTV2-(zMimddD zfVY8s92df-$F6V-Mto-h&E-$~qNPJX#w)_T&*)e8KO+E$Ayt!*~Vsd73 zW`S-vF#5t5zOaOxx}5wQ7-JV(EHZ0^H$bF3p|4g}b6oJ9%5V&{6%ca0NNHt!i=g`; z3uLB;Uj6DNf#9<}*p~1F`-Z?ABQ6KLSYl(KE}#^+9I(>_ zSorfCTnEOTr_KyHUuLb>9UL3=#&*qGHO}d6av;`Z)JvhAt(}y z`7}X+r(mR5>j+YXc#ndVIa*Ra*ZnM`G{DY4H-o7>Utn=zszU z%Azb|1DxHWIq?Lf9kvxtq_woXu&cAYxXg3`fsHU}V-197ozEtFn0s=ebFfYg82>O& z{D2$z_?cy?pPRGjVes3N2#twY05^+nf&|kw=u*L8AILZ(4G; z(G6f!a%?kPy84GcVE6R=j!@>gbID=$lr4kxqaaP+YfV_>fLd z3x%l};WSc|(1*PD`~#(%0!R4Uyw+Ls;>Flo`i!NoMkoEyPkuZ*!DW^PXV$Vx>INS3 zWUf2#St86w+LZ1ZYglCfk;EH?l2S{h3fRD-7ICHxaFBHg($r&OGwMHnSgyBREpGhw zz4%Ljo(+{Yo3v>n)kHCYcC2TT=_I{F++x+1;4-$r4XoU_NkvzjyYx1D|3|q2$G|NF zkO1%bCchtUBY4}ONCmKX^Drns3SgnM?gYYuKX;>)wj4(a^}r?F=}iG&S^6oxFvbi< z%vhtc#4_kIqFl#Oos=n^7C#9-KvJd|q^H0_+i=fE4bg*$lHCgUOsfE#@TvTG3gCd9 zK0Rk6TY>|-u^1|S={50fV$(Oc*Hfeiu3|R$hUQpF(`DJK!9|PE#x6W<^T!Wwvqfg6 zV_yiZF3N+QlJ!~3oBjPny_C`7g!XS^l-{Ha=l7wPz3gT8iWBhNlE1gj$j{IEj|^ru z(f@eRVWEHR=ryGtlmW*B?SHKEY>`esGg#n4e4@CIEv~SZi6!7_(!a z4BYOFORgBUJk!BlmyAV*?U;mF@I1jtq1LU&NjSLz#uA5Ir6pJ6}mfh!gt{~mq<}e<-2r@llb&15dhXCrQ&cu7GkB{oVuSMUQ zOc!ZN9;B;wykb=kfbDatL7cRn1mUyZC>*v?AjMVFR@S!eSc=kw`@cM1Lc+)Ts3Z!5JlGHL7!d08kaatj(>K6S0fT;nH-w?}NfYi3 z5ZXZMN9hM9a_#6hg@2Q-5x~VCfK_@>k!4zLlLNuFQDR4U&{U-DV`(wMp8B$WKlK7C zaCwO(>BDcIRZK&2#Fb+NhCc=YPFvSvbGEA*4g^QQ{Sc(H#8Bi({ zo4CS#uC*hR_oIb8U}+p16=jal`R;9)ApUTekIaEUgx=w(Hv0s+O>|c(mGO!U2`?WxkSK7zr;Fw4y?WZor_pn3_fi z8BE2}J=x?mZulVvgvT29fopzpE@e1ZJHonA_^2#|3F?wXIjOx6sF#XcfuVrU94?*` zV;x+=q=hVp*NT-vw?qJxlq1WmOCgr6TWOz`ZCPrqC#U(Q40?jU48{DfK(eIzzbS0T zmoR%(AKHEuzq6O55aLiSdhO`z+>6LOF5I1p|Qn1@jkN?$0?Z!-At?>1?^yXzbSq(uR+mdnvD?LaWH;mC61!+MKDiSt@`oMpL zyx5{zVa=b)2!FOt<*8~xVDh6?oKtby;d=x%sS6&;YUnI3aPqtKws5SHLq#gq3N+fP zejtIiePI0rSES6UqyDEk5$sWlq#N68y$E-&TKyuu12yj*r}64>FFv+o(Su9At;=d6 zj7`rV6D}V+73jN^DSnMZu)gMfBJq8e#Z7|2SOtDP1m?4k-Ehboy($z89Oc2W-p~mB zVLEw5x=>o-Spmhk6F-5Y@Wwm|O%gs76#`i-C%C0PR}V=t(i}cA_RwI8tUI3IoUeJt z=+bDbyD&LCIdQ`c*Y2jzuZFHx;lWo>S-y`jztrF0!*!P5cj=>0Gp zSX(|kmnAvC`7ZYz>0~TeZ(4B*zF7Y}8A!YL_i}$-J{(7q|U1R@oGD6*E}i zvsl+2!MkVAVrTE(-MG9tUY7~^Ii4-DfB($DV{l7ANjq5|4*|O)o_pp;*t65$^b{`p zrQKN}AX8O{$S7ohGDF?yuJ@mvn#mTz&aKKobv@R`InCO8%8X^mlD!Gtwp!_IW@P(j z@d8XUzfY{Jyb+7nGPKmoqc9^pz+&0P*;Q>7F=2TDr-;$^w5sQ zRv1Ym{w@|!*0FerAdeKa9w`EQ6*!C|Xjcwp86w~*Ul0?}itc2EJf-q&p(<3?X&nk^ zEk2dS2szRzETkh9N0k7WQ|L*WHJ#sntTUE6H8JPNAx-R@sOHGWz2@zUN&1YfID;}d znr-u2@tqb>mzHwQhrkM+BDN$eGH5^qj&&gP0Fk;BK%%&CrUbE>PPGK}K8V019l~?W ziI-!Pw^AAl-`n70TT41)0~i#D{t?v1P^u-jDAJqk)_0oYv)7o`+E`gDMJQ8Vq@l93 zJ8%FeKzVQL^rqPd%2oRy!G^q#5+tcH7Qk$0z(!df5AESmeV)0hAbabZmy(<+(#s{? zIqhQ8RJ3y%=DI8>6M`wT0Nme#g6ca2AcLv7Aoi^4JQ zG34@KVQqP`zaP(+V+=kwR^gF{D1(*7%4B7;GFn;9SaO?sz0-dzJ`OZ8{rl1iQeuwshBE{>ux#I4+`2~|--#W5;u-ShK!sWRP zE+yq0`sH zFb6Fd-TCV<;V5lz(rFl>NE&e%iPn}I0m*R1f$OOiHfjdz#L!6B?kzyy+V2tI!Y3X? zWLY)f0_CC=oW5@btkL1t5r>VN+aNgUl@b;_x1TIqyiZYY>Z49Cf4A4p-&IeEzPQ&( z=X*bKC%2g_gYr{~?TuA;_GOBXzyqGNhi_ju^rCgyx^#=4v_gGdo&fi45N?zE3~|*c zVF)4Vq-mS@@H!1Gc|3B9OK~L3mf>aXDoiQ>3K!FPnZ~jrD4}O*FYPU@#zvA>A*uMS zJjvMP)f1Myl+%t-dQQTryg`HlR__I{Q;tXzZ#A_+ebAG^ty=!JQ$-*Fd^BFYPeC4B z@h&(A-nh2K7inDbXB>ctwc;mTE&ykGTvuiVF$`htZHXe1^)WkFcZ1 z7y6S^e>0dGedLbLi(bd#fal+N=UwA}@h|@6>zP7fwyNkXg+C7e6UXo`g$t*kx<6d5 z@oQf5n!B;^Z@cE2YrcNzrI((h|E4h1kO`gJ$nys;e({Tq1Bfhd^4#aEd`|ayR5w&a zzbE5OL|ncVP2+WF?XThag&c>wefi~=-$=0FjhsKck2RPo0#E+xSHHT{7Nv$FqkTM1 z5jfbIX@JRt2M=C)#T8fF1k#_wu8DKt$7Pdtki+8~TyG!WaN_qz`v&vt(7;KC^-)Sb zLIo#qm95cBP(^~0n;J7JYtUtI!&n*2t|`_s%cDRCGm{JQ&s*E%$4g>!&}vN@Q0L}0 zn+S2|erK7#Rz}EJWIkFaG8!2@tS9r8&fPgbsdb;S$=7GSzsz&9FXNF}An0K53UZm6 z?pVvj$iPDJs9;DF*bE93Xv-fUL~E&237%Ny@`|BTmeM{&Qj)a8yR^f8;Dzao%}|hR zu-TIeo^U%A;53MhN_$CXT7eT!fzLbM+unF&5JaXYLlinI_SkBbJ8@91c!UaRvZNFk zf)V=OR!ZjT2-JY9-hNa`(bWx22B##TEK>-R+wpq5vjKcQ^K#=LCd^4zmTm5Jk7=#) zu7(orCco2L;?%ye9ozJ!a89y$mdjk(=AMJIP?j5ED6aLc`7Mse>`ftjo?Ph|R7gs* zDo~*imduK4SHdv3$yYS5z&6%^s#9;y8=!smjfxH+h`Qj-AUo^JWi#~tkj{^=`f+P* zJ%_sY&nTE!?r;&wlmET!Yi>y6)J^WG-)Ct*u6|d@*a4u1)TJo+&S^!#U5~Co^Z_XQ^U>jhPBo7R?;IUxz#PHKKEbG5WsYqLb~eE{&)~JT8pIBG1wL$# z!Ck{u1}F1lkju~*ex{Xi`f;tU_w}5C*)ZnQY^S@mvBkVTQSrFzHD5M4A~!n-$^>;W zx-i|6ix*^|%d8Xtx(!>GpFw@>W0ZOnm@)=80+NVZD=5N)JTf7p>Rmo3gY0*)(BXMn zMy_yBsY!sKjGCx#8KJIg8KY%u1u42@o>|t2qM|HunjnTBxJhgQ3`haBK~NMjD?xbK zkq~Q2*Y+&20=6x961@sZ)`?)SYGa1<19+zNjg zUaVRRYlewmtwNKov3vzf-iw2_&rD}u7;ae#fPISeurwaq_xwP3fEXoOs<5|>oX-@3 z2^t}h_uNPof%= zaw!x%tC)~qdX`Lm(`q zb(cS3g`Ea>!l@!KVz)^Z3UMobyacDtw4hvQZ#*h5k~F8HEX*p8y4}h0YL}>+9;q^p7aV32y zxSKobQZWG^E_LLo=&Nc>t8!TiA0P*>H62)G`YuyOC=G#trNb&xjA=BU5l4Hj4K})q z&!M&j_S86b{q>)}j8Yy~?tk%#TphbzxvLtGGk)-ZF0LbEZ-2oHUU2KPp7pFdFtCY* z9nQkHcA*%sJ3{|I(x0E_*$vSC`%1%ewO?mXdLto2do2u zYwIum;xFEZ`(=cXx*p`ei;kd~+63q3avI>a+nzjF*qqz5wXywF2Jv$kjW1wSUW4^} z89{*yFyj04r9z`s03?AP!p}(GX!3xifCI)b9@~LJ7Xch5qBT!iMku2fx5KHEFoH3$ z9-PR>Ho98;ZfY}>(NT_8kQRM07A*^z8jPlaXvjVR5$-(GYICZ>I!zDzz_M{p62{M^ zAeQ;Klt}@gr1oH))2BH!2PPad?s$J*GrfraqE{Z{6u(Jw+zzv zVcxoUE3eZeTi~Nypw$nSrEAp7qP4#0H128)TUIW=C_C-uSyD9kEJdz_SFBL_#Vgz2 z0-wQGXU>pl^8l}c&GPgXS!F2%3bCrwcW2uR4(x9PnK33>Yj#zZqM^76yTO72W)HJ| zyUL+#3N8i3L|m5N;!H)PPv00=S$Ro7GSdVO(}I8dO#Y!FsN!MWrb{$ErKjE0pM#Zv zFfYpE`q=!c7&yD@z&02Y8o%Dg=#<>EZ5|kvZKKT-gU*6jSggT@<}m z8O~#?PFSCDIjzAUY;BvDb2G~odCxQBA>7uw6bj2fEBI04LcgB3A?}6G@z-;? zD%!Gr=cTuS<;p16#32wDB$_lV)_Y3T>2{5SgE@BLm~ z{I@>mInVj}{{8z`;gb`1;}_|J4QRq+=|9JK_%!?VoNP0BnlA>ZOrwageeodQ4f#LF zn}>L0;cg~C#eu$af$%%!R75~O&0AG0S!qI zL(5nmqRPkYmk_Q{EBn9DUgkqC_0@RCQg0ruBDC9$tN>ruV$If z3t(Ud9zF#zyoWJM-3;U!kHMLERnUgHDV$(t3~kFh^Kk&T3V?%KL9B%m0Zu7e6I$PD z_H*oXr>o8~WCAkWR>`O`ffeN-LKkN5K-bmS3T&B}Em6n^E`HlInW9WxSWIhKx_-U) zx9JU3lBGCMd?rl7;>SEPjMklN5TDm3NBg?^!5}=Dwp$k)6eY8C&Qpt{t=II4m1yv1 zyJVI!Cok(1eqj<`aqZ>3^PV=$T>1=a0 z_HkJx^_a%@_JNo6dsW-3u2M*N2v}q|1B>a*PilYC;A)cs2&vbUTiIIpO?DO@VJn5I z;u#7al|<`7YDJ<}GiBmdL0x>JyvgWkr{x(mw{86}ec@Gz36(J>-ly*oI2IyK>?`r_ zr-3jY7j9Cf-_oOV+Y~|QhV$GU+(cgqiEYd@7~kUFtNOC=2LeT6V9i!Qp+}-aG2L&QT=6)dC&jUEnM;`J&sw@2o3nI zJZI8JjRmLP>Wqv22Kc&_Sb!T&PCotOiG?R0djALh{T2Vy+u!kmJ-c_0kDRB`|Ket+ zi(lM(A?%MMLvGW>f5jD79ML<9fu_)>n?{Gg^Jn0RH<0G$%3+s}yY55ta6QkOBM<9p zE7(~f!EaxqkgqWX@IH>p{Z4+r2!g*FKzBX;=}$j>)m2wr|NYVLyt5hneP=3{X6jD$!;1#DshWJ`r_HhU1A`Ex8TH-3+v2=!hvk?c z%$oY*NkB}3&GZXSmALm~m1D(82d1qySKnEdbw!{nV7aVE9J)&*dyvyN#n$Uid)rQzq>U;yz~1zu@Z=Br6>pa5cp_W+ zw>)+Y-oSk+nkA4;8>->k`dX!16V0*=Dh)oHwpxEYad^3e8fjjAAOzf6cC2+OAM0Uo zoU6DKsLk8m9~3Jm*d6kZ>+6OeEKt=y^Jgz`CUBN-{-?+KZCEh_>muHT>N|X>{I|x{Pc*M!rvj*H7Xl_-ZpHpXT1rAb;3yb-Me}Uk45x z=pp30t#V+A!~$@P+ZYnp8LvIzH%9Y^NJ6B=tCFtK5#fi z!1O@FFf8SWZ3)Eh=yRLF-r;9; zW{4=>55s#J?BTf#tLO3dYLa+J5JzXifEg|hre;Wmk;ouqKA8h#$a*j#GECv6eg{k2d@VTh7OXX;Ama(VPAR}x+x`Hm_;o%XEagXxW zC4pth!<1k~&dsZI*f#4|xV7yI6KZf|{pPEW-hdLkus@R7?z2KhoLZKbU*4PFcKJP~ zzMA(e*sZY?IDUy=KIXFwcOo>8?X^w?LJ9j45D}6xTJppqg?XAUAL_SHd{?lDN7~3u zE6lYJLj$I<(&kFt_OAkfG~&hjtDhAd2wv8Po6R1I(m{IrEwIYOxn%aHHKBF-UZn>x zQm<19;)Lr$p-uFcdoC-dJK2v#55 zSWaHkwpiF{X9@f+MALJfJcB1rIB3&pH0e}8x0wc`#SMKGeY#1N%Slb=G+CeJ{sJc?xJJk1Q8) zZF39HyidMN-<499f_ZPf;yd+|w<7u}lX~)@5XYrEQu2c>4vOAHrnD?n;w2ujraXag zO2arnkXcqf^;n1W;Wul@)AuSKu9k5sp{4VbJ?=R#_|4JOp7qY+Q%?NDH%_m;{>Ojr zpAB&SG2706c#l!rdu?3-;~X*Q4P#z5L}b zzv;(*?8o*JFL3#FtRi5FU|DEHl!N!NehH&XACDhD-uvPgzj!$TkzWAjYfx-1qy68Y z&3rvNC7^~>r~6(Ce#2sCc*jvCn$iE=6)c2R%3tH#^?&uxK^eqF)H3{FSnWMb$v;yl z0D$idQ=pvxkG*pbw!EtD{5kiW`|NJId9;F$I8i}BKn-F>qXtbhkC}>7F-~PFH8rLx zagwpdn#$y#NmWWxc}=RODlrcY8Y?rE_(&OJ9yOX6M~I@vAPT6UB8@1}2n{s!H7-Tk}2-}&vm*IsMwz1LcM?Z>Y=qa7GYqifa?Sp;zEqtaU~ zB@pru*kmE77)milKtlF_g;3dPfNR{cC?ePWmMieS;(!-GrD*sYA)pWwUj>5c{B4|y zvy>OGc_upeLw?eTm~)mc)>0{mn?hIG$|%7-jKGN?<^ZFj-?A)6C0z!C3Z@Cgmd1Jy zDjn{ociSL7j|e~8uW2{8;l^w4#;0~tA1Y&ovWA82K9!aH{+1Y(tvIMCidV>A2_^%b z>$m^_KmbWZK~z|e!AA=RLEqlHlHDL4=1(*j7R(alt~YRNXzD2GN&$uV%Wo zNL5ODA6!2%!du}ejn&yv3;@d704)ofgk{U87*kdZzpaf%u;U{~A6>uA@>JguE^pF~e2?BK#!v+%?&Kl0Z@ZAuz#Q8CsUzE{?cF%6sBERPJdK;Q1Ni|= zY0Ze2r}_=wNSE!s^h1kuM9trht}@tSWZDMcK^ZU|J*MTq^sJI!YrP<0}RUyEw(c;$E#LtqRQhHG^2uO zHwBqH`8M+*Imz7b&o55;Gpr%*-*fe~Uwo>?ur+wP@2-0-`B5L_t2|ZtxD}i+{NHEinK#7cPSS7U4E0 z(GjwTbpU?>Bc6*;eL2KlfbiXg(maUw;7XTKLr5FlxjbWQ%KN_F)SQuR6 zfD7kp-5gZ3(*R%J@@ar0+b63t`$vnz`DOO?AHt1i;ckw1MPH;yb+r;A3T%6x5lRE) zOcO5cZK59VhdNA0RHeA6rzu~BCQ(4*PbW;Gh!O5N-j(#$o66R7wXg_bf`X`#t(X)x z;$b-n3Skul@3P04$CN>&Da;{UgLw)E6=MmkN+He_FP$w2H`~|{;-QN?N7$AoYy4db zQw6DF@tv7V06N0XRwyvYT7VQR9}!^PNXpa^mb&g0WC}^#&?e2Oj0c~ShC=06i0TlO zrx|(kJGfx5h`)H~R+cvDY`9ye9Lkx+U#8CjHRp1{rwL9AF#UQEHGY73@TfSReMxAZ z1QAsL8=rOp2nDqB=rK1^wp-y;Hu8XaMXCA`7&fZGKk$S+*Naqnz=Hq6Qi-b>LPzIC za5Smn%(lQ7UR^GLL}AHi>Y#aOz$UP=@}D>lwh7L_k-x|k@U=Xqbi_IQsS&Sy7AD1o z{UJRvwc26mE-EVld@)Tv)WagyJlAkD?OShA>I+`j-ZduUU9t^Wfn2FK+Jo&v{Q9&J zo0rAH8Cf3~t**R#rLEW}5T%^Ep5Ko2U1LIvC0C^rerr3@C5|y@Z1aKRf?N15@4=_a zsf5;x`K7^pGy=d=ssM3iL@M*S{a{QIHf3TXZqeesJJ2gP7sKETDFs@h7Lx7+||$U%(A z(j;m-f>Q(?Vb}2L8b--GXuL1MW&W>W#IsopF(&?oPk;K;-;Lt@ZdP|^w}AN{&4CK* z`}HL}04L*?d5T|P!YFt->mmM%?HcU$I{F|l4ZZ8$H$8RNaCGF*+L4**kk&t5hRH`1 zlXhE5vO6Wvj}SO26RUv~bige3p+@LacF|H$MB6~yRk>-fbXtwhI+&+~xW5aWLm%NN z(J9s&KotZE|0p>V@ZR*43|KFI=qLtGClYwpWKmEc1Q60Lic+roK5oP0;W_0AiPXeJ z`172V%?b(TDt#Y8D}f30Bg*oCp%%o^^Z4D;wk~La>PQPYqbv$7(xyvarRGt;;xCP0 zAB@C<5>-hN=vfCxD#Ru!q@(&Q!%TyTZp~wP8j1E8bY^VT&Kz+Y9 zR{f;$#;F(AqPVD!>Z!KQov}9kFWkgMUv0D7YfM@e`@sv_2U&}MU`FS)VF&+|*GVJ$ zv3287&^CYb=S!K97Z@?*NxP+8q|L}JK#8MZaiD<8%-qt#!hvgUymi;duK1^uPCjYA zckcoAQJw&y=`senx4iO|ulx!+Z;|=`MdH-PI)$lcuUnp1DX9j(@Ci;p$dp6Sgs-Hv9R4SG*YGhkSoy&p z%V-9Ge9wZia}=LA+Ewxxe9^!4o^q+ImwTE3)U}$hE^3v!=!iwKZ&bA8Q>;8 z)^8Hhj_gAIY`E!$7kZ=J^f``Ke8NL5UE*mznO=a8#eL8qt!0#=>`E0Ua8wb=zbJn^ z3T{F5JbM?Ns`P{r1VcQJ#E_}Irj_6a)0tIj&>tlQ|!Ykb&&gXcDc`eqo9wr58CX^8KB_q(6| z<3Il6J2)wEiaYX$!SiZK-3ok}8kzPkzkE90ejlFo(JG^5Rv=B6=`XGU7|}s7l&e43 zkL--C1KFVlSPgX`NGXsS;W8=&J!>SLuDUCE73|fq>phSVG80!pKTtrJKf<-ju2sm6 zNUF>da9Z@n>n4>OJfl<{6+}c3=g3!O=P21hmO{fkUgEHBq=YP+5Esv-ba@b@&=hm=5^iHW79K6;e#G_~vz}0l{Xlx&aH?Ha~C{;$Q zcT*dpK=LFW9beY(i3lCWX$;9CKT|8?Y$w6ZoGKA$QTcm`l2ae@jsKaK)^%;&hF7Gh zx>Rx5wxBe)H=b?qR9@N+*HHTM7oLgv@s~taIZlhuZR_t5VmsCB#eNDrNXqIPf-FvEv_tUj-lzO~{A0A|V9m46TV*F(K^W zi{zWfk)T33zj$w6dEtDs!Mw(Az;x6jYIjcZzt`Y&(t!39?*h9TBx{WWeX#D}jmlC(mG%LWuJzXt zXrpblYWk-N8iNfK5=<}sjrJI%$^c^JmY+{Hw02f$@ULSU zV3utWU)KQels623mh@45Z;Jsx`q7U*>(#G*^%qbqoSEBu3D^6#Vlki{mJT-Qef2|= z+3g2M90I(`;<^>O;R^0nCM1>6ia7q!o9#|DM%w6{iMNw_MF=3^5KPHnWQ1)A+=4?V zRiM&wYn8DhQ%V#U{waWxP06I-*P`cN2^aF2P9cDj@*Ch0&~|PFgaQsoW~BI_9s$bh zyi@QPr;-dVDXJ8giW@NC<)I;^DE!WNwwg(~io;w8NntCP{jEZA?pk_lky9OVaOa+{NX?EH69$rks^!aG)8jD zpn1Vnd;^%a z0g&Y83tix68z8&J*{saJUjSF&h-2|qqsjwm_(U~_0XYwDom4jH>&lhJEO3OM#SeK} z2NCrLi{y1`gzr+g#SukkbKvMkCZoB)%Z~t=rs|-)StgNBk}9uV1l#ttCqE@vu5_C& zb=Bc*+3j40v{Ta1Iw;q)v@h$;ch)JFMA-(2O8=4vmWf%Fc+cR#1k68a7A8??8|lO1 z7hLQkVjea{E|}iB5I;kdaThNR8s#~+BilbQNW}%7q%FZuxIx((CzPv9QOS3>=2S-O zmUKC9fM<<{l)*dKniwapqLq4}yhDeM^gjHtFDg?xn?#R-Pmli4beK8~-R89RJ@lzh zih0w0k0ce3xB)=p#!J~p4z78Q{!SX+eXNj-d1u2vQ39@=ECys9z^R;Z@HD={bStYn zUx`P+k21Ji)!uY81Wj27F!Sa&pF16YwKwKig_Y^r+7ad_SNQk{=chy}&_Aow+IPFz zmIx5e&j>5+)Dc1v6?RJzL!g-65wjiE8}Afe>6p|5VixQX76>&*hz3VQrYu3BAhBaA z42w)xEt88-Zt55trQrkD!A7}v6&B<{;l!w*Jn^r%04SW@-X+3{M#v33%2!CRMMwgO zQ(*ENAtn}WQC$gs@mH`aK-C!?9c-eAfJ8j1J{6EE2Wj`TI^m{R^1uS%DzF^6bbRqW zI9tYgLLS6V-uS+FROu|cot3cWXb#2VDo3~F@l}UTkx{NRB(KU4&|QD1?O+Og)wUK0 zk-3U*niNH$ybv!rQN~1+YKNrxMYsgKWl)#ktUyjave~MJIa#qQM?Iu>NIr^FE?_vC z3-9>uLN_%bPn%+jp#Tn+5jQhD)oau~FKr&@N?WjQsD-YMG$=@`L1ZZ^3d+@0tN~$t z+8)q+Py=5Wo#RX4+46YiGr1519~{XSZPg5^8`gqI11dc<*TPKNh3<3m4)Q$+%OKFM z`dM3HQM7Z6q|~`(rmmAH^+*pzNpgI>e3B1b`N&YmTlw2U_|6Yu`983LX+1zJv|2AN z($lK~PH7s@Oxtmdf_#~uje zZy2d;m#5p&0UKV*5<8+Doj*LAg8s&%bAP7uXj5OS7)LIp+w`5Cn;Hz&nOdGCbZY$Q{Bv_@Le6}jMoAs19M3O9^n}f zqJ*d~j4ffw*BG3%RdUMS`_Uz@d?{{egV0-RDysf$kEL`0ma^pu?H#;|zg4H=ERDj* zflA`b)q>CBQywd~oN_9qUsj?%!wVCVH^v~39_<^W*E}688X!APuKwkT3 zt6x1c!g5!MQv#`5(I8#g3R%kNhp)5`4Llw|xj+8IXKxbAfu923e`s0gCq!sEjDzA{ zz(@0L^Ta>+`m^Y~o9V~jfOd7@Mu$DlRNY@n9pA#Cy9nq0AGsD_#>%_i^{(&bv%9Gy{y2U3))FSzKc zc2X}BMal4_kW;uOKJ%oet1L5E76X3hAOs*11tk`kgaw=(>ek(_oj8X8wkDeiNtBunwDYCC&73ex2{S_pJlpS+sCf zp7RK``32|2%bVfnh%?#^zsu-Rh+1l^2k#j@fq#T5?M^=WJkQ+pg7fddcLls>%hwWeZ^R`Fs z85wtJ#Kq&ea{=4_9;1o+E@QlStTCARb`30dys&m)OuKT*$pxae3%D3sLa%h#5cFz5 zrv`?+%(?~;mChIo7)5C|jLhQ!!6VYQe__mtvmxoY`vIj@K51O^b0o3!&}KG=)EDXW zgn5a*o&@^>O&jmTOz+M+4~&2RU7vERPH*4-6Jtua(Wnknm*ExOrEa6H{fN&3{pUZL zhG*F+*^fxD-#j7#Mug~3eBu+Y2Z4+D9>CpvIq+PV^lTT@-FM%8j~G)PE<^0Z9QI(( z9&q}hA4oa`o#$cgox?MaI=zoJyly%=yl*^Mn67eEDGLBG0LC1Yt&bEb@9f)z<4ci5 z6y%5(R~kOU2vjV7!~t=%IRtG+J*0{N=Ptu_S=Rid9odmMZ;eQ#ime0}^bm*Tj?3Dz zBIqOd1fq&l`6*(E7N$ZE{>UTY*PY0uP-c?0DN%%1Tm+P#72A#mHeD(og``5&_fbYD zo6Iljx>c|PSp_&mY3XjCMJamLe-p0ei68?1_&Lq1Xgu zXa&C1sz9Vm9yy0DFAI|np2|x+lityK6a4C54_xU^CWJ1_GgwPL%O4fFN~kHT2x!V{ z!88U9B9(&Qv-cba6>X**sF#dFp+`Io(r32tf^tF|ia`9~F8l*ua5lO4ic8~p`$oM2 zTRvFZ(&ox-4FG?;fYR1rUD%#1*Durg$z0ongGwFzA32zJr6U$-glY_+8TrytI#TgDY7tlHCdvE}Vw1=P#tq z1`er-&(49g2m4oxt&c-pWAuC&>XY~Ljp;4f{()dCtkZu4}= z?{^HY{o*&rci(l_@F}M*0K4jns1qir%hYM=Hg%l34*DUBIxVspb88Hw?eg>{){py1*L~UBSZIT33ov%QOs{ymJtQUlfpD` z==`Qp>?jDdT?{IcGC)j+kP(Q1dkg_G36Cg*CQ29F9N9{VLPk7I8)Zb<-YqCoApyg0 zgrXy(sV6E6%ksr1@xGT<;E|@vm#+F)kne<_`RL9lP_S8sFjN%MEEW+B^$SqfVE1@!Pc(-NM17G_6Xw>RH9&sLcA7Po=b= zH3*W1M@>d?DV_kI-zw}{`+zYKr2^f-r$)-E49my`-qPR}JLxdJ3TzELhVp_&qsK|3 z3Y8Eg8ztii5;t&2q}U1h6SM|U9H|o`jaQlG0hlWE7&E4`-oZsa#hs6fpH~UeT)Zfy z*vH_|qa$3vba|X-?r5Yvt&N%yXPbsT(gk6gfnzN;C6RTnvWvIFwnSpe zmp?I5!P$@ngct#>omBfuln5ogc&iZWa2!VL@M&~}Pjz?hcuLEOdx6*Bix*{EUV~|y z%bF2wGhnwiZu>IGKDcbfr|xMDy}na2!oV1fHz)~{oc6$U0hzL>GxcCU>WpT7SNpf# z%2Oo|)Wpxb6E-Fj5SbDonUZ7Y7BI=CXURQwtMwhzd`fSvXZ9b6s#`A4p^llAUB zScfkaMkm(arqk4MXP$ZHH=oH7z!;maVyD<=sk3XTqv*urO;xqb<5(($LT`V9@?WH5 z{}&p=6xaFS_kaKQUj`bpj-Y8M)k=>eURza^xbNDvYs%LSmsk+^Y%F}f*f+fZdY=v5 ze!$_Vc+Po1y|u3%n$9luM~tpkaNDgQkVY&p;<0J#2r@W`h4Q#4urn5b(+NX);j;o>qrrcbw?;mW(hN;0`P}mQE~7noq_7v3%0Pi! z_Y#VxGp>ZRibO?Wpft*LQK28zanv=38@ODmlk`EebE6{!fqesW)wKwb?fArH|nmyy> zx!xg;@IFz4dZF_U&#LRxdGMI^)H6S?E~Gx_HdgNO4M(Mnjs{g4#D9k9Q)nOu*(P@( zM*~0Ulv7TbuyX#mGvR3Hc(A-}OCX;;ehy~?umyN9fZiW4EerV`EXzZF=R&~4Puhm8 z9IbI6$|`eYM^J++eJ1*5)>bFn5l*-Ubw|>H_+%NncohNS{2GF*?>r~pmPep^(esoV zDPOlMA5ynF(qUEpCDe1^2m*O9<0|b^stS;F`sCbPWo2A6f)q?mDJTRSiK*CK$dr*F z_a?l&t4uTE1B(Q1ZPd|VS*`*~gw8G%8@!;3qmKK*-;HYP&+GrVumRN0~+E~$Q z`SvdjhE`XWn*i>9K~Oii(>Sd@OeaqElU0nIBYbr*uJ;%todMLP34H}Ebhdg^@e4C; z3|gxFZt&TB)voMY)=$yfrY?#%vKMKQHdgJ&_r*&MH~0!pt~oG`^{PQ2{lX62#KqWw zo+?uV8iR}Gd3Zcs`^%4i*@oOd%ty~p^q_82$EoXBCw8H_51LPbH$V4C(RN&?03bHo z9zOM{PhCvIcsX++cQ8u+?mzg0Ke)h80i!HSYCTfi*rIajjPU|od+oJ5Js5~{0lq@z ze=l=BAE1NW0Ux;Og!|5e`KFg$Ho4_V_l*bidokwHXiyU4>SaM}h=-0=;<;^__svR0D__w^>NHXYb;y zS3rhk#4k^+tNboLo5m5Hp(CGr#|LgccE39M$P7=cZ($lMzT&6Q&e+NfwgE@v+-(Dn zM%Dj#-~%vI3s?bBbQpo2w5NfPd3>I&bNS^WFh)t~a_Z0WG~Sdq(iH<1&yNyBBi&KH+#QH_a3PTiDa)ybB^HK$VbA`x_x;`H=bpT4 z*!$-G=AjhZ6E~>i)OEl2d%t(V*=L`9JD>Tzi2>uwF$%7RXO~f5(UHfC!sBKDKp5@6 zKW1^JHAjjWPKaFFEqyFiW=quT*ScmdAg13_P<^Z1Qty#Vhy z>VttUzH_>EHNzPs8>c3_5{Q!l`)nk0;|wEsP-%Rk(<_k>5QgMb*>y0?6G4cusB;7mUI=Ri z+F{(Ew1JEgOz*RI|0$?^F2x?u{PA5qN6Du!%JzSkK8w;A^7AwA6fg=^g>bSGk$GL@ zOEVgz-O+r6tU}JrgpINten^x0FK3z<@(2{mmZKJgl(+3BYJp31TgYkxHFV%kiO;MCX+e&?d8?-mC33@f@ zlTLcYle0FW^ra2vNvANAhCjAR(^Ve;H^hwZG#p3@UmeXCZ&E*DqV$t_y&V?5F4$}a zn>_T=zo_Bh)=2-k*l(7psTd2^D(%HV3mh8%?I-pKb!HT!TntbAAivdhP}2X+-~7#& zyzOmo+qZl7?t5sjuSYlD4Da`lh9+u-9{X@y3;+m%o+60*e}XKx{N2lb|BG+E_15h> zckZ0rd+)tUw8u>F2xHd*VA<`y>Z+@r@%`Wb{Ws$UxcGw~{NVrn(I5R$*9FKE8^Xg1 zYbysP%vSmpKz#a>k@AOwWRNc?rIMHtSd>90w$me!(z&hjh+gg%Z)fHnOcaU=xaz>b zM7mUG_n;jGUy||KK*|n;{j`Gb{3mG&iU@0Quna;3KffPnIMl+bNtC}zCqi9ehA>cx zD`8xb9-%BC1##}62+azba=E7T2r+3F!Q8}Fp+mQ_EESINUW`%U6>(}40+4c7sJBsC zbK{%76qR$yr8E`TuHx_G&Yxj)Xs}GnOL`f}|ImaI_8sT|+w$a-?%d*)2867tsfNN& z+A^XC_XypTV1D^gw<#3M=*R!R<;`2#%KlcUVgP1|sxoN*c%V43!=@~~~mYd#$to#d!im$&%E5Qvur zThJvg322b0sMpAy4$H0>GnqjucD9Uikf%>Oyf(H0$=!t7Bb_?y~5gxZF zb=!+H$j5foS_F@!b{zq07f7Qr&l(SDByHn&wMh!I4-n^KN|=_kqENxQ=~!nPVRSK} z6?l3{4Awb_cg*$~PMF#9ksI=}*6_%q3gYATTGvSUPrB_d@hXH7{_fxii|0C5!v044 z(})CAwvswsLftrK7$I-w@D$u|>%F5tdjFMkr=2wD-F2X*j#}9#`kngitMhKT<(BQ} zz!(3*FZ{wsplKUC{ZHKA%pLY0oql+zJgV0JP*Xqrbk=o`6^}nlM>wCkvb#})=P?rg zZstU$k2U4r*wnlLfBn~geIAQGrYN>kSqSnf<2x@vOZpw&UpL*kV=x&m&W@);qz?xv zPMKUs%%oG%7nPHYkPuV2AamNBbBx(7h;WJ@*R*s}I%kb!1%m)o$O3D*@@sm6a@bW{NzJuL?EQvks}HqyM0pzlwsMxQ!zO5RN44j zydAX+neS(_1J4Rkl{E^6GBWx>SSxf5!p=4=glaP=@=+U|zu z))BzuS1`FcAC!cMfRhhC*S$vWjxZVhA+$YE$OUT|sY@|t;?{xBLop9l;<_X&WrRR=`_s(I$P?v%&q|&J|mi)?shQ zKu_+rD^#{y(-yRB*Z!5B>32 z3hF#{pE^)o$XOV7!`t(jCjQxu&Z>-KOtg~cmPyf|l z{nd+Xz%b&Nmj6fs*9(B9H@*Dw%b(0zfM;O%+)KxJHM}^8LacZNokCY!gx`c>``v_+se`Yu2vzb1P8s!e_y{Ly_+5F5ExymF zs>3nDjA!YQQh$ppuX2B2UWsk6h3~xPd{&LKs-B>5ck~vx65KJT!BHV*RWt%SJSLCu z6!6~7r;FA4GMK)d?q{57HkWT21#wdl-t{1;99l3wX92MID#jHN!V)LF6)x=52nxEu z_rdxztqa=hqyDyz#H-csdYwUJ!`=D!95O?lwl-j#brZz^?833uR~+f~v==U&QAuO= zcN8(abTxP@+xOxw9xCUg(Rd7Qg$QC=04IWTSSRc^sk z2^S5W(uEH5He;q4ZVL;Gy`^nSv;*AODn8u*1O>@Ll=VNUPuQvNN)L_A<2l`g8Z5h>E9uufyotgTDhqd`Z`EN`_EjAEw6EbzWu%bID6_2zNB}b(@BrbpzgDusSDMK>PFh&E0_v+9(6O>^r5_C#(-mL09_!hUNvJ;h#z+{~O;uY%jpC(9uSG z30S8;eP?FMH_8}tx0BvHuUz4V{Naw0q;vIE{w@~Nb?FQnM+bP6r=4E`sbKR1J(+H6 z9b6rzz_E98*U)zXnRg_5MpsBrgr_v}8)WJPK&*E9y!hx=cZ-|*)s+~IIkZ*cS|qRe z)`cS@C_ka+UJUSmWWT%A6k3O%q%-5`Imkh7!NQIjAnTcg8mYL@GVjeO@m zYlXDmKId;i4x) za#vADfl80 zeX=h5UiCkEFlAOB%M7EPmCODV?}VNT+O2W+otz(lpwOVPJ!rxZ5xlK?cQ)wJ$!Hy1 zRNSVuEx8UR(;f2KOvn#M^f3-ZjgB^CyXgRaPOWQXz$~Xr&U3n?Jfithei@v8t3-@O zEHwJy$M;Agg>-9N0{^l12f5dW$8f3_ov3bvzY4nl+6Ia0&|^vYF$JD)*n>TU>ekpn zXFJRRIT!uYKmF5boQyPqU@Q7D9XPQoYXL61?6T9Zyzpp`8Np6H@oq>DZ+o3(s-q9(1Rlu~ZKl+h!G$eSa^d%&G&gpl;02W#gVOjH=KC866)Kro7cs{Qnv z(iFBN63=?CP<7{nzZ4|?14!Y?lR*LMTMYn^MA##A%tQIo!+*-d2tbKs@fGi-$5Etr zM~NCMfdj1I4M3H#qijzaRBq4;1JzHL91kEz?na_96YYtnw z6wqZH6;B(l6ut`L@KeGz1=Fi+YyY|RD!()79Lggi$VwT&@LB5juK= z($q^1kD+Wswuu2}6hnf#p?;zatuQY_>Q$aeE3`FUHBVO3kcg<%i@29ED}&0Bsl2HL zd$uFnK`C`tspq=|;G?2<{fMX8xnDo~_NBRN7jnkMtr}-*e4#@Fc!hGds%nlH19t8MGP+#uf5Ip(xai8y08vIP#FR-WO(OJ3{QWIaR5ishPw7u z?Wq*DgA!p1qp{G|X5Y_w4Jh%=bsb)kUM}0_Jh8HP1@CAVrS$FZB2{hLcC9R0Tv+NY zZQtITXKQ5bDxnPOL2p3vNelU`d)IH=c+39LrSJX6xySnGzc|(NbVpAKoTwB3?9cw} zh3ZJ+cAz8PV49{wTl%fOZ}?zci955^NzlPZoVd45;NHcywBOr-?PTY|%=C=da9`J(-e zk}e}7YONIt;5AmCD`1*3QvgP|3y=3+{+13oRTwrrEz0-}MPEV>+{xeY7mu2D;H9v* zxoE4cP>!PZJ@~{`?I<3W>0hwGTHq%!&>CiI)Cjdg)(PYc0)#%E365jHfZ)>G0USqL z8bT_MEL9$GeQM z9n$HQF}+3;b!k16`@e8Zoup0b&8QJ&+{79R@E1b3r&Wb#Dh)^mH@#Qz9sCTzfxGR- zHk0;_$0jhOrE7Dhwdu%72!Q|8O6tRyj%Rr!-pbDZQg)JS8*nX6DOEw#$R2-D+Jbc) z=;BOK$$x_DPUHr2xgCC7hUU=p6x_WWqktl^|J><)TRAUSP6mZdufdQ|q zck#>qed;ksPfMdP{TD{n@2(N9^UO5jVEq_`n_U#V%VI|Ew##^BWC-!acMW1IfWBk> zlCBdOspkkIaF8YqxEZc|Uju_OTuOT(yEp7bXPJHG%g|CahWW?KV~i2(q@^q2ma6OPWNq5dSJ-hDUU zeDle__G`cPV(ZfdaolKGkB{J50MCM^LZ5`C_sk#s!5{nz75sAea~XX4Qpd0FsI@=s zjFYD~-?5Kww1BW-6F`RM^sM!O*r9jEmCTH&i|4Y9i6jaidu-h5bV{?@$?fGT!^8!Y z;F^$7xS9?DU|NMjZV{2G%q$i}@>z}@TS1VtKvBq~vj>C%2<3%Pcd?P_6ee{CXC)h< zgsFIXDR4opOUqLyAWUnX${*o}(6!tMs6bLt_<+zcPCEIm=R(+sbZAlJ7&_Weuo9*B zp`X=Da)NR~lOPIb^Mh2pEU_A#hCr|>pm9p$POg!rTi=w}3f7cDHb=gCAXX88Dliq9 z-VzmKDf`05GILC@0#iPS7{Rg|j})l#G~O3r>%mA>lGN03sau|+7z05*>B_aN@QFOa zs&-QMxP`+wrx-L;*t?yPU{{|2PMN^>qf6%Z3J=r1G&XAeK+7kM(xOq}w3B6PU}0(` zp9YXT5@%<2{0y!dJafyVS#WTXW%1Cqu+bjOp4!hl)kgwMNE*s?dLZ>}8L9KC|G)ze z=j@}HfNNX9p5`}TrAq@v!vQ#Y+nnkG(UjssQ|nJSrcG{Og%702^hZX-z_ZO+F$9ey zjq$;p(-O2zx5H6jydg{@WraNk*xC$r$$Pg2W~zgG_zAt#RCsLHtTt41Sa-J9^ef5? zqIMvjH5x)|Z~^beD=`NDc-+iF-OY9FQ6AdVV~8tDoYsRz(@2j{u>3l@D48v>PQ|&c zZ`CQW4i`I0YES+FTf{V$=1BkLo9`R_@%yiu+r4wxyYt@1*2@1d=G**fI+67NFL}p1 z-f`Dcp7Ior3jRrS#Mj{c!_pDornvPeTj`bt8U*;(HU^%5h7LcEFr57HAOG=-_wC!a zquRsNdV5UHxclX_Q&mnj@8hrBaeEBP$@B1BwTlU`5cYY2|Gxg3_0a!Zg zYTFj1ZW%*H_=a}Eo6q7B+Pn8{ag^^Z-vxl)0f~U^ z3>toZCl{0>|2V z3~Mc}Grr2!SZD@Aqou*JE$W`uy`Az>PvzZ+F{DAnB~0Ds%glMV1(U+^427)iKsC>@ zeqqQ3cD(a!2*;0|GJ`MHt)b|X$7N^~9f??vx6X9yYXFIR<4=u#i#O)e81AEJy&8Pe zOP~0K;Xw7Bbb3!!r0=A-;8V1)IFvLCEDUV(=)$p0sPxV2`^BZj-j3}%dK`$B^zlGJ zi&G4GMOL$(qUynSo_gqe@s$qYltQkvGlXe5y5)Utzdat?^m=@lBgp5!*DyR*!5wOA zbw0|x)un4p7Qtx;uKR6V^|i+OVq@{6_}1EhQxgX3LmHgk3cZw9ZK30-@x;|T`*O8+ z4Z`tsu=bZ9y}`~rGwKZP0DYYNQ75V!)sgB-btZK-Puu<(_yucAr*1Vnj)@0AB(Yq6 z4&2OC(XrJ`ITr8`c3BI+nE)sAb-=S<^P1OO!?^%2U@gG8 zoCb9rm8{pKB-=wopg-cP+JiOgaL87+WOi_m6r-aR5bOiJ#c|aoia*Z7s!+|L0MR-( z#O2p1AAkGS5vuuWTcFB71xk?$&8S0!5&lg-{-Q*5VV&RlHkeO=pnfs6zgeviLE+cn z{Al4UupEg;$eM>l3KByT777f*6nx#jX1rVD1SpwF&vT|Ah;RFxYi~d0nuiNcgb#vm zqcF>;(VLs0s{9acBGJ&B5g|`3g0;K>z~o)c-xm#zbR31r>(D}ec@}&b?F_(IJliGm ze8>@{>quOsStGbCoCMRRbh9`Uh3CkZYEFLn(ToAn^tp^8g{pPxA~kR&U08?mU-3w2 zXjM5-De%fUcLg(WsS|NfQHEYh8W%NXrVW9gqgaEmP3PU3tWz5u8LQ+mR(Y*5&WUsUHZ<3BespC@bIR+`2=6Rc zu;R&IzQ_elwc8{wY)gFA-h45DoxWhqoHoZJSW=f7OYlWFfknMwe6C?E#G3$4W762J z%A-;3A~actWV4=I`!fNE1+ti~)#e-zxR9w9pI)w38p&`J7o$Po1y4-fT}eg#gl zUOHWa(%PxUO-ARIZas87*1O}DJB>ie8EIG{E1EIEL+Zk>2s%F>1EUB}dG?_VgHhUS z&z4aJx4d%=!IaCXE^G`uO2kv%l(v%-|MatU?IsY&v&4FbtFGI(_TK+{&HU-7%=K=+ z+qVAr3vFwly7IZteeMOXeeG*M%fRs&S6p$$&%=$k9t)0asR2MkixOim<3)7bi&6gf z@Ezo*{?>2()(agW?BBotSkQ0>y;T(e06+jqL_t)-z(nB(*LS}2o#(&kMK8MXw9`(b zUyuGhFE2p|DuEty7|dT(lTj$?;HUOGE`{L=i1xv+hFqMiWKi2<5Df7$MagSP%=@i;rwIHg5rAo|8 zH*As#g$HvOBAgLgHA2$};Hs#gqQFtu85+)(@5o$16#BYYlbN;@ib?>QNf$*#?g&!^ zl}bs7DH9;dF6pTFsJ!Q(9GFqxW#G%R*M=zC>iUa_Hi2<&D905H?yB zVqgXiJdEP3!*f(tsS}8opH+utNC?z2r3G`N@V0FGgym#63Gm~7mPQl}MXS_O9^VJb zNSQJWo)0k@s|YF6y0<*wlt)5COJxdARHR%QIEJbtc@G?rp_%4gB4sJe%mGcp3hfvs z?)X4Ki-+ZSmu>-=K6F|ZSNIz$DI*Hq_ws=JGQoNQ22_R5utdGvpLIm4qB(V71nrPM-1sN&Y{$;BX|z~g7L;O)IxPl*(86op>+z8e zjlDz5lhL32&F6#Rp(Dk^D*W;HR~@OY{QJ?VSHiC=X$R4< zTg92`^IHH7#K5mVVYT}Ljra95qE$xw3%~O_zw=VS8%N)<=RJM{9VK1>PCwlCcYpVH z=fNWnK{(%ql5*uC@B4f+LS^b5N1^pf7eTwoG8^M%t|5UHSkrq z8^Wn@vFJ|l0Wd=^hyUGAaBG`<64g|Zxyb`2VZ zUgWnRh>3xsv2O~(fw@n?vh0emow9+Qyv#=0_=V%ZaCn~wiM{x{(U76|zw~Ps@ z83!5=er?gb0+he2jNDBm%oLKcts@jfE`DlHbUUz@3 zI9FNnAsEsu;hNU%y^XWpCDZMLen7}G0Wwz(Obr>^m80G|SgGh+=b?NBXD{h+M4K}i zbb;%hrw%d_1%5bTz1x-s zjM)tk-q~;L1@fbKq08UUM$Yoa;N3cnyPj>Nb8MAM`QYKAVGj-xVYnWAO>g_qi&M3$ zQDs@yv~|Z+0rlgW8c%Y}vxbev6h&rhEa{A2Cfzb04b#)EN1!jixWw7^kb1PFrWeXPLOpT?`cbq-f6bU*C=8} z{3;^zS7q>CKA75az*px`97J``s&NE%t(*z>k0R2z zz=-09nwe^VJ{R?|-oP^|jB}s=DoVC}Oh<*`^heeWpcqw-Zo$hGPTVmv&00`-TU-35 zjb_B_!a5Ywto!$IE@WXG3Qyk3YmFrpw0zMxaxUJ(k2tL}@8n}fx9~+8yu`=(_~qr* zT!|MCV7cmD_qoQ01!Qp?w5sTw#)vCFcisUf>j0TRX1^gYfP}Sjq<+h%Pz29y0h#ua zH)+@YwkQbjB8{!xZ*=7NX3BD5EnLoh;wP{%`r~b|pHQ}g0Q(6I9)7SEf%f1w!mR$c zJ$A18VlD8=r`Lw<#=T_>p(C#0;MtG)tYGx4GIcT%Hca*MjDOGL7_y*oh(YG(x|Jlp zmohjBKm1+o=B8~?o@};?p#3jB;?$yyCgP_EeRzt zwg41J(pILN!7=^;I@1A=fBHM$`Ob45Z(IKUC044m5Hd9X-YnY!U%+oCyiSF8uQl&O zIUMM9uX`Qe?OvN<@xNcuSwLubngmi^9a_pjSepY~Gy-h%yZb+HQm7H5odB9LPulmG zULlmCP~mP4{?0pIx0Wd$?P^NhQGp>}Y$K0z&ZaSM(ss(iXM^{qO#I!-ZDsh*koPFa zEM5~|1SX}R5D>gb8{^yMJFf^*;MZD+Iv3r&;8M`aDPp8mVQxV_8jt=`AoC!8UL|Df z9jVrFH?C+?A!A6W`PR9F5H!ByOY;P%oRf#L;+e3(gu=Jsx7m0qj|%&{`5dkzc=w^V zQ|44ODl>(-aN8(dI4UJ^FoZAM%Rs0thUV3fK#rpvq^m~V!Z8#K6&gwh#n5O-r19{& z@v+4<{I!_aRZqF>fu|d+jt-+#mNWYGGq=sCkbG&)8Uc?TF4CE;i^MzH^`(4iWjI0(UsT8_ zT;ZtLW6UH^wL!}e|I`o0QTPuHF(P61Iz7PGIJRtg+1f^an18H0g3$7o+8 zeep^>tG($F(%|vRNtXPU=FROun#D`+hHGkU-@ele6u$7@-{RtQ;*>Qa6Rs&E{u$0a z;KU;en?up-IZ!m|5y8tbyF?sb0Yulr+)0zm{_&Q{mv6Xr_ViO1@U#?;LG*F{r)>>X zhpJ1}sqp&;X%otLg~*nKEinKtx#W_-;WNKyf!r=S$N0k^{_xpiNTc2|WVeLkM*$GM z02)T`dCz;E#iGFPVwLTF*z_YT_IOU`1^Bl0a{1-g^=IbBGYd=1qzwmrSgAkHTqS-s zKeS3m<}W=nu0OZ@x$n6;s;{-dy?E|;p`b}Mq156s=T3LeC}NdS?}$-FT;~WrUEqB? zelF6xm=EE==Lo257f$(%z-l@xW!MCGPdORjxF@0&o3z@-4^ zWmQfgx64>*N)ZnMuD^mqtWeMTom#ude2ZdRJmn@#HATrfCH^#MyW`5 zkx$wvGlZ^()hHMZjyT=o=7@gHRrSRAodCx|;vJ6!*vzsGEL-6;vI0&%m`|bUDs&eK zmSIu~g^{V>b#UazeT~J0qYtGUpgTN0hqu6oTAQze>!llqw_@T~k636}mOALzUAwSqea<=r0OTWCY0b1N z@~hBe^uUm`AF8soQwg=-z^K5McN!cjWR-pk_D?%XpPdlWkP-Skv@Jp#ZKd@I;Y(*u z>Eon9-7{_%#H6FGQy~M4H@}1_4iG(L-hE*^1`dnv<}r3XcGts$GId3~i}b{7M1Kw+ zZ08zV)HeW9e^h+sb{B+)WqER@o|e6L z9a(+zTRt?q9ed!8dz|WeB5dYB)14pr$VZ-o(Zw?F{!VnnvrThJr*k)_e>l%{fuj%S zo_lU2H^Rbs?QN`F)P3<}A@iKLqc7#L1p$|)qP~w2aNz|PTyQHLeF*>b0{jLQZQMT_ zF24BO>E5gEK?<(TA(R)%ixDuHMYxC8QC128{~@gu2r6ZIBQTX-3iB$$zne!<5iaIK z2n-Nr9*AQ;SB)DK{KBm4-Dof|fDK3lME6f@S~)zmRKDc7DScn7e1M7gY3cnP0ctE| zZVu9AXzxuMmwzh*L@G-+A}716*cJSep^($nZ>W)5DKfujA0q(pq9`tw(QtBEl{gB= z>`{g&0TqnpReISapB-(%2_odF!S@;m?YF|+G`??T$Y=Q%H!V1LIE*_URQ%>G+RYrH>>Q`BA>dWsD#>>4zr4!HcPI?$3|#5WXw*@B9Udes^ZDE3d?nf~ zdQg&lno?eR7lfgro<&iuq0F6XDHk|j%yZs+>hwd6YW-kQcmrK31L2xhy;$oS>bcG` z&<$Vw?)woa_>of%F~4o@)BvXg^!#Ut`kmEtZ&_8XUR*wd`D#`^+VMiQrUhAv0V_7AdTI-|kUhBY4` zfJZwPzYf0rXNH5C!fb$M8=n=10bOm(QZ)v7r!$cJQS{Wg?bO{krqJLM-!gzSa=}=d z8JTN*rCsw|<3Ywr%>>s06p#kK0#|%Bl6C33h*AS!p6?)NNXmPvJa;1C4|O9baP#*7 z+{&wA8?-$ue`dyi_My+qs=)%r%Rvq5C&K+W&~)e3S6_X)#{@G)wGAENH+84()2Wp=Sc0nL6p1bKt7qZ&(l_Z^h zn+1XJb9aAccEWyHd~B26q8BgOXOn5`>bP|JTIp~1uPRXZ)JU=kS{1IEq%M_Jl&bOs zp`yS-hGdlQsMpb@g2mBm-RoHqvYt1Y5X#AT`8UCES#xX_|8MISLhe z1i!gqDZ7de-IC%{m-PAUymqz@iYr(CA-IbED#LOV#u3P-Nc;w-DiIZ}G^M;wU@K-7 zmJyiXugI0HDxZubtsF)_x}bH(jvVE}%LXr_qz)#eqjW9Pxmu?&P+H-+hKI%jhM8%A zX+HUpQJ{<85YPr;OLJ%=jhN}e&9nf5yeUlaRJaR6noBUFT%b|q=sk<{SfCdr&TnbT zc@vc3!q89+E^GV|%u!n2Dhlb1XiO6GB%evLVBN9CCc;a!v~bk5?6o*gbiH_8j; zgjPc_IUlYo9FGWTG@=_{+O&Xf@{C{^^}5*5_wp?D4gK<)zu;6nw5`O50Vmnh3?lO+ zAAGmx$vMlDhOFz*kYa?cV)S_EIj*d`Fg?7^L0($0EEwfOAk~(r534q2))Hxq|!OO$Pq;&fW%gUsDSz$Z<-1WDw{?U6sK7Yn(i@kmOpHTiV=fMIT z?e#btU>>jWJZ;A2Qm&~7OZ_n3ZHWh9bGdYO1`T|uRWtvI@NGHZ*S`$E{_DT~{O|dm z@45M@PkrhEJOe+;PKr;y;uWtrA}uAdDGFGHU>WADd2WHK(0HR+ueeLI1QrU(QCN*I z%wh0e@Y{7t8^Q*q{# zHZlNLStMIsd}k*I=Nl_-MPLI#bh-Tdva(cs{`s?*if^N({JBtkC5mKJz#-2EEj& zxXS|yOT9YHkgaktgH?nz)ni+>UOcxVA7cU`kKRq)q6i%wJ4FzlfNpCe;=3N8DYV4M zvW~#je#c8rJA>AaP@$R+yuxP;2SdC%wh`*XQL_>=>EOLMXNrV2YKa<|S_)*0(p zoFa%9fV;B6wE@i_*2&$RX=pn$j1cV;(QieTPP?zx}^IW~b`kcd$H* zJUzBaD!W_9S_X);Cv3Ad?65=v%X#zT_MuX{1+r0|3bYNZysuWG7K|avG9SJIolI21F zlu#qBN{mbR{@VyX3%!+%Fh#&@P9cnjm+Aa1?k&;g@|!X&0o>u*83w}0NLkz|!?Y@! z7Fyo6JuEmpNZFx5Im)6#PGbrl#b0vpKD79gbX9j z`IO;FfNeK`Fspo(8Xp?s-&jMSt9R%2Rie)47f#Sa8MZ{d8QH9=G1eJmmL-0ocAL6lF648gA`i8fnxRQhBOyGr!MNMj120ghx@dcpy5%N+qU&IKodYe3hJTY?YOx z_&!FFYgcOSzS?+3_l{g`mQ-oOx7Cg9BJ<#VPvg|MLHWztOnsE0BkpPEBrY(vJxBSo zftPsdRK;%l6}D~COWIV8UGc$Jys7r^-Ml2PATnLTdS_ojAgII%@+^n{@J;~P9*Xhf zS`1u?)V*6ltuNb?WfWki5NK_@10IT79y(p3JqI8hC$t3j^Yd$#HZaQqz!(wYuJ;A+ zRbhb9g}24FfoEd!|1SId_^NAfTztyzZN1y>JS4Cu!h>*tI!Uc^Ud-}IC!MrHpYR0P zV(EjVe>ktU!~kGbdL$?aevU@`8WwnrF1qNVy^_ErwuJ~Om8qD$zqNU99% z=)bZWWy1~oJ#zvs0(6{C4=klg3WZGtm9hc|QDrga69&=oAdq)GEqUS3KsA3xT9l;%NxAUEpny+M!a~d>3@kh=0$9XFtp&XNGDiMT zI*P|FVE*Qjca}v0FUofg*fL@OI7*{j>qNRGGK!t}QjX##UxeS`#ZxI^6@>2I8ev-x z(jn~j?C+*P#lyMbdGe@y9D~LPfIezHN=v?Tk~G3uK~0IeuDL9}(O6Rmco(c^NkZXC zvkG`PE)PV_?W4Tp59PX!#JWc-z)|QiPe+m7k>GM;y&G<+}+P`F1BBN<(OpPZ&<7 zOIl#Kf<0>hpi3=nHCBC!HJt6zt}yQ(yd0I{BkOapkN8#j)X8dj9u%w2y<0CaJ|R5% zGJL9XExQ>?6axLWWffi3?}+V+BX%_C0RUT5;_Ww}16-lXV=KSP$utT5O#`5|&;mfu0O>u0K>A=#d1tzQIlnmD`|2%s zul~~i`oP?-Z8N>w@2ca`E&GY^tsH2&^Mx;b;a=wdnL!&J}Njnng0ea*=BqHsep4yeG6;;*a#Ter)EMaz+Z&A5}crrV?Y+SCOw(|_FM&0 zsw!#Pp9mLzn5Lc)s)pDd3fTHt;zh-Q;6X4BCd@M;+=XbzSCU0|@rd~3@8(ctD^y5L zIk+54yOc8Ixk?pRl5jO#Te{HjfcL)36{rX)i#1J0OThqV1g(NyA!xDU7nzDs3tX}l zp&NL+vfQ#;yvi=mB1kevz`TGO>8^B@UY&oLU3 z!WBKhAN_vB1&tq|3Duu8*)?`Co-ZBrr67;FT>4oHXDDv^#$~jUhbO z3vf$)sWhwp_}%3W0!|JUF3}|BisXsa9vj; zZ#~mMgV6GI^IJcnZ##++Oy6P#A`A7Tm#hiGNSmvlp-&o%N96Gzza>AedP)yH^ic?g zXMQWdEsnlN`O6DndN`0URQCSXb7DTd&0!6dr$-{?@ILL3dpuDtJ=+cRpqzb)R_c%HC2~VAG5Ue{TE++@z+hvZ>#30 zg9U6!5ZOyExnu(3f6ro_?W|I~{TF}n7q4RRLJ#*vpTjj6uT}@!k^&z?K-e~!1%Y4q z!WVXO4)pWkp%%ez4utq=$>d`}od_tRuj^gcn=Y)e&O#|hL!c?p9n&EEQ(}iV{IlbG zIFK$@yQV1(&dCv(&TD6HSKCf%@|(w6EQXLqIJgaPKzp^!LWIBd zzbn%6h(ka)o~U0H<#XN>SD`Bp!Lk{z2R?U+b90nsV-5z59!iOeB!77VKLsTJfy+gP z;)&(@Qu^c(&*Gx87GGh*M|r98M7)vAw8BzoSDGw1gBKDfu9*`?DyoEq5jugMJ>)1Z zgVP2I+>NGMD!Rw6Owfx@RP&7s&m-A{J8z|XVm^Tj$o z^y2|PQ@1E`a^Qr#{0P5fV`Nuc<&*=z0b|9<)wE)Ht($zoZ^(_emU)l?KEY7tP-W!iyXy^%sDs@N13*cor!Ha~MA|Z#yr*-Zw1lvN4GSLT~ebc-e z6+@Qu3EqM9vh9s_N0 zaXamA5yJu)B)#Iwn?@h_&{cD1>|W~KbKeunA7B8~?o@}WOVz3BR?;A5 zA|URU_u>B75)XidgP1Kvf%9Q3+*i@ypTx%uKF59dyTALp&nJp5*6Z!qvBS;{4b!PB z;q43vFyv_oThlxqgVQ9QK=#(RzV-a)KmYk(XHno@wt>8YV}d`;_o1(`(ye^?{F%>O zI^8{4oA6O(x|>slQ?@WG0u@dQRYV3IGkdHRX9}YsLM)2PPHWP7Ut+|Z8^QDd;cD-I zmFi`TLOt<^I7VLx?@6ESO~gfD>b8%&Pxt{6T=J}oAzE!&C8Ch+cm^yLv)U@|Y+~}8Y%wZSf&>LbYt}*W`9*n{qE$75L&nK{6tX_91WQxSm zq^@Fl30@kJmaFn6A1yL8>hiWt<>W;0(XE{fQ3#aHx&iYgP_CmxSBc9DgLq4`(=r~< z4}^FUhR#i^p!g?mla9N}R6d76#6dc7wrA4w+jIpQNa7m)R2|OINc2Uj^yDKHprAZ6 zL03NIT2J7bH6R%hQw-_dzUI0OmASMQpDh>V2i_CQkQVTDkG+crb?0jwfJEAh2BCb^ zxM{&|mK`^FVOtlYq8V-wY#7$Hw^Fz&RO``ywnH!RsCJ}>r)bSWK0Q8M@^avoJ!nuq zh-}rTmFv0`JaANg76DRU!ptrT>ZQTcXv*l{>691|&MX6^bAZ`-?`5$K&C z_V(^Oyz<|F?a${p#-MlS-H-28|E;gW*Qsp~LzF7P)yo$FT^PW#xCqm_iYcI`Q!=Q7K#W0A{Sx@=cd{96l$fdu3>7|#xm=7rZ4F?1< zeLHyrac`p1Rr2<{Uhlx(>5Zp6c`~~^UPWGelAyyiK!!hLh$=25wbAI}v^0oF6|yf&s~Q*gDmWBJM|c@kPllsjaYsbETra8RBo zloIlcP!W*E3tN~DfpYJD2afUGWtqMky8IrbRM5^3N5PO+Au5ult2|Y{d71*JN>VQo zxRfajg)BwD8hI>;qCqq-#;gkIl^r-~svHU_%OJ*NJb?O+o>3jbwn zQD(MLC*}Dc-bziEsM?XVm62hsL>?AH$WuIQI}TLLXy=qy$_r%&Zc&23l}CXE{3ucC z%LR}z0KmghKba|?^9jl*%MVjeTAvjR81=(w|vq3;pyS zz#rR%c=8;6TZOwbm^GRY1U%zR;hri0wQGd?U|K!os;10kFo| z0NeKL*>f^;-a8rbZomHe>$l%>%PqV1?%liN_SqEE2rC5xZ_@FBM|uKKvr;<(lQ_Ow zm!LOFK@dIQ0waaHMFO8ui2;!kSPEMgDMqjW)>ws<85D4qRi!B`OJJI(;ov=R8&2eJ zahB5rR{Q8tN(W%dwJZ^H#3oGsc|Lm!>8wO6c#Y4f4#5l8Sm>kxWp11Jtl%e`3e6y% z1&?Q7TSlATon`;FE^a!w2Vx~|X@OJIa1)ESrMrbqo+;!dz7&j#+qu>z&{fQiP_3gH z7s@nX?q?r3c_wp(Wy=pnGaR3gL+Pr4jouQE?9j}-cg?EBUT zuzcxjcvz0{;z?Hjho03H3{6L<;3Y3qf>Dsfo7Z`0^QG>zbmWDZF(@3V+ULti&@eSx zPF2fDL*tk9ZqRJIFa`MW*O@AF4CyY8a&3R&ElfwK8m=~T6`iJvcvuFtkSh!Gd0J1T+uwCOdc|b6-J$ry)DTl4POmt%vA8fd z{ePdlVfl@}{C}37@+4OM-|^U6^&i;*A7~Fz^o-PPIx6|-t1#^We@;LB^wAk-oN?f3 zPkY+_bIv*EAd3GWQ(X5x>simb=hRbAJZpEN z?^_-kqAUtrpn?7fzh4C*yLs-@xmO{`<)2f8qNm^WnCqCk`R1EX;=T)}?fCMSzr3B_ zJMk85zwyQ!nN&;rydR!6P^S}sHKpOjIIwfjQIO&C|HKRm73Vv(5a0gxw}0@$3opDC zgUPLdzeywboCgH)DS+PBuh@6ebZ&AsqTq+9#8=~*JO?hF1P@}iXPy>5XyGeR`iyFj z9vA>B3KYG9S8<5~GevmE`#}^D0?GH?$c5-AGU3EfAWazn_8(wdzJ^Gp*2MDRWq(hv<+2^>(WgqFSH#fAvJr)2u4_?MbZI7c4jq2(J zyCMclDa}&sW))5vm7W1d>HM5AvH4K!2J5gXM!SJAE}E_OcaeD1u)LG@{$SPFb@I6&(8G#AYXIbyYfhxq`q;KK?>4_9ulx`HGv8yfB1hRW zlq@IQA9)UK*gP}Rsj}BY9k+cMXx~E86otORw)lh3c*ZmCWr6oW2D1m4-`~&g`?#;# zCtTq#^MJL4E}NsB!RqOql=t_P_qWLXWqxnD@)z4~822rRAJq#GpIm~gf*k=)_I!XZ z-Tf_uy^L##QT)j;@I?|tSjE!W#hC#Etf4~?dk5+La^R4(3eCYczVVIioP@LsV_+BC z3U_KKFi*1Mh8u2}vo9 z_9oT?`~seUdsqW7d-5V{jh$qhOqWq;P6N;do%N@)HewYNJgb^=LYEy`z%<~@1*TK` zqTab~K-Z`WJz5!IqoOvHYUPL8nh{iqR0T)H1B$#gGErQ4sER_u&LWT!Tm{c8b|&jc zBLfM;8*p_JKeDcb%>(PO$|{;vp(PgiowE5YJqk;aNqi@0BjgpzmVyyMaT)oMR+!@G zNM7D6kRzbwQ5SETcq9bMhbAPux{f^468-^EpB{NvdsvgdUpE zFI<9(TZCLYARI4+slp|^Fui5)Ps5=p1c1~i&+#j*K*j5#zsU^e=x3ha(O)U|st3>o zzbHd-ZSV^XQNVbRXnBSbqM7*}gEAVWi8yeH>zrC}gHH@OcLqoYbW3`^WM~iNrSs4O zrbOhaC(!xTIt>d)mIiaWGTpuT;#g<$V_={(RBZB5dfmRK(2R2Aw{f0yS9J&!rn@+0 z7Mf~BzB?>NbPwabJi1mTEVh`|PvtMd|Nn|Nj1`KmF+k(Me<5DeYZF?+5cd(sv#{4td`1 zygzM`E;;#o%DIR4he`i&6~ASuOO4-D-j+Qc69b?_nm#n``*pjHkSt&@4ujym-Z2I| zIOzKzPQzdU;$O^b??+(3P8c`O`hhi`zs~y`n_)mD3~s&k)}=e{xML^pcHVT;O()?s zIEim3@8r(srsyAZZeaU(!Ufkr_&LZge({St8S%gH4R3hE$N4t;P89dgK-2%?n}L&k zUp_E7aPJCR1jl?U+TF~q5r9;hr3z7@+o+FnlOJ?!-GY&Okszc|3K__xV)0}&#uZ8o zBI)!9zyy;C*k*`e@oa$#3R27J6arh#!gr8Ss3=rLM1`Y56kZe@f~@kWgh|t&nVj_N zc;&ri6kK6vu^)m>c~o_*@&I@LDe!o2$ZsF`ZTY4(ot@bQk;MmvY{6OghIHu^p27eb z(#pGnDht3Ozk_@C9&t-q;#!xfHG;w_Xb)bLl~KP@lp|iI4}W-$>p%760=^BtBrWNS zFDhJ>fkuGFt{#V?QCf7#dti@KI%`>&XR@iUeEv{2q8=%kT3@_l0c?PWvWzaKBvxbpXa~ceNrR@5=cmWN$sldeDC+Zdsutz z{jUF7YfmF62#a-b*a3xtnm~ihV>dkdeJKF)f@}0U=Q|8DGe1i~$u%#Vea!-K{qI3Z zP(fLAnNz2X&qJGe8`5@G5m_G367?CSzRpvyJUu-21uIIgA$=);wuSBBGy8;!nEhnI zcBYQfZJS%Cyj$D}kImb5u^{T;!eI*_VpkLPVzvnO!39|MThMq-_u6EaH$9H zGWUj2b~HIWV`7|PE&G)HRE3rO1{OZ@sf%Xc{r+>OHmqCLU3cU5q#eXRd%vGp@jF+q zUad91^{Atc+6t)Owr<_J+cs?2AZYIm^kW*lf;~JzMlalkS691b2l;)BZ+Cjtusau} ziB8mY4e-4-l(+ZiocLWGsBYh@f2&3B)hxejWAIP_Jodex~gbqJ-xA_q3K z`2c60dFIET_Oz#6$`Hw+@a1i67WBR=zVN>eU>(I_Y{GI16616%*T-UAtwm&wDrho^ zD8L0<9J51+Bq&S~Ua> z0DDBOAzldbu)QqTj{z4aSvLy$Vf1@V=fWR~bli zQ$81$jL9D+*17M!mLs(yEmo%+_6SoBRoNJ5A%U@tL3>;P3l_e1>#B@Pjlesx7E+>H)Bh zu9`rN=Q#%gF=xZw$bH)k_CpnoORl_W*U$di8zxpSA06JZL%C7)X!#A&w|x^VSx^o$ z5$`(MWdY!y*Rtnw5}r)Z*ED8l_-x_hGPjM?@r&@11KSohB2&JIhhUho{yDq_-xZj^ z#o>0y52wP~8SZnY(cJe-NVzbk(?cKy>}=#r$9eXIv2hC1V9qAOc}j@wk<=7GuLUA#EP! zX%Ga@D4wzToA?%l5BC_D{P7%Qy*wMc{YA%o0O zAOiv4XY$4RTWEGB2()DY5+vq#fg6co^2pa_9cTGDrKu(qPnb7MaRmxxm1)5^0NPE(aVPnRggaI!Fwp5 z(~i6{KKH0&fk+-$hQ^Jf67|lI2W|?V`G$F5l6AH~%NXL=U)#X;(_5ng=3D`la1Z*a ziG$XSK1@3MM-%`%Bjtu}=t&=!-}=M%b)Wyz zW#cQBjdxqOSDVY1K?@B-e*Wiw{>oRp;uRmG&*@=i?&jPMcr3VI%I}M5D^6rxxREwE z9}F5|?$&Pl)m`ElxMwHIj(*ku{6z!(h{Jt01n_<8k&5;euQ#R=gehLaOotEhn|Q`) z`$m4UqUP@hICgj`FWw9j3XkK?%V?PKXFvPdUqt~plKYOG^e@9+sRrZ{`iGb(GS8U` zQ|uD>&ZA*|{hP6ZImXRB{wNIV=U&96t|aW^wfq%$w+CuKxhg9OeR4s@WOe`cJgtLO z^c(T+Me;ZA;$4BTw3*hFx|$W5{_wYPbCHMgoH$5)0kPFdAWznbUrGS6a?ixZizSNe zRoDw?WK;Bzu#Ls$+j9HzjbiY(0@+lK{qD_^JX6qH0`^kx7>EGrB}&Q+0)%W z$C5(t2i&b+@~eEzH;Na$6fCq_wLoW>AZHr$72E_L$K(wHe$8ue&Ve9>^PW8>jOTq_ z>j+lj$@k)s@k)V_JJd(8#_}&(6dCYY{G!Y{sK$1{V(qQpYKKzf5?9bq4fTXTBV{@P zRK=jIYG>Y)VR{Gm;k`5God8IsY@h_w9-&!93hlNxI~RF*9#qgadt| zM5rtf-_D5ZUnOCT$&thG%b|y9l)V`}bSN_8&S?P1;UFK$poLPjAdUj1wviG5e9K~` zwOa?vBcG`RG|!AmK`i}{OuXa>5BatV&6ASJwd7?eZw88|`4JIX=HB;_3+4g;$%ED| z?Ka&!xU>G{kusQS&WkDZYbWUKNWQ>5qlNCH-3&2N75akyLt z`YZz6{=Se_8+ z4W(4Ck8659rZKUyGPEMhy;eAD2}yVHu-wZ@WyV&n2WLUej~1D?wTAMZ_xZ$HwlMP2 zg{m-?SK0gq+G`(r>rR%?snC}$PsG!GKvPL#=y55cN|FCmnv7Sp_DY7&BoChNQ4uiH z#4VCT1w>j`0n}jpfRPsj(+IHM6ND=d9_V(4ZaPnaKXhfHp?le<9Ls=Tq#FfjGc8qR zlRniv1A3dxlPNyk7-<^)Zb>_Wb)U(T5&p0$V<_W+ziqivOTHjK7nzsnm-qtZg4e2K}sjw*>g1);C zIt({Fwgg_OG=VX+0j)$HUg*7Ha-|#pFgBn53=cBCPu!X)1buX9%e9?S>HN^M7tErJ z@@6>qMsHo_$0U0dm>ND(xl>88{mgCY(k0y&zkbc0zkJh2CJtINHPGO1i(q^OJH!$( zg<<9cY1=n35&LUCC#WfAtlsZC0R4ja}v|Z_u>`Z&zC2nc<*>%6Wx#dSO_0y zQsC1OT_0nV#2eyTe${K@)A3-PxdN^ zD;AkFuJwXCiTm_HB_?_Wj1&@z0pgo)OD8DkDh0|S*qveBELh16z=UiCDu4mGR=H9YL-n}bPdzD9-WXLi#EZqe%!E)`ma?H`D9D*MKwXla zdXNXaF*t+Y+)_XCGjGcTMi>DQ49PXX4TtU|lCeDiB*bpJOxyk{OL(xI>M(X{cz zP)FNYDs(}E`|2mqERfYF-lYtKIH?S)mBOu4S^P*%EZ8WI=4sujlW|nfZ2t@qL5JRj z39VAg;(2Hyt^AT+>2!X96CnlWOo)@;HU=R>5Uxyc>p!?L3~)M};wgEaXK&rAf3&={ zw&69g#{f_VFlP7cBp>->zjmmDenFnLb2i#hV@US!oBUK51#F6_$$j#Q#HJ|qlW#i$ znYkn`eTH<_#oPWKqt5D=5W_X)_#7sehpfB?%7ZZvMB-WICAch=GRASos~E{^-5>HG z2V3#f=UVUb&U(k%w_kDJ&Sg8+@>afS+_u}GifqosfR-$QL`e(X&?yXN}a zrhoC*-=Irp=+-L9!`&cs^r^OQ5$H{!(#_~Vg=Ul@A`PK~t&`aod3#IOTwBr7!iwq#tKy<`!O(rRSf2{yH@|#>~=M15~X=QhiyeOAb`xynusG zdCDo@UcO?V%ZVlqIy0_q?!N^RlPU^4mQ5lkdF#{wAXL zow()rxMF_qIFS|P-FJMS7GP_w`lJ0O!xqQySQ$Jsio!4VEW0*L^1vf6CI* zjY;02`}XF${VK`(KRp5FsiY=YPAh|7$%~td&-Q-qwS^l$A0*9s^x8QSK<<_^-C}0J*+HSep2k;b1bUhQ_^v&{Ybt|AD zSM%!uM7Hcrn`K&t!TXj|^i`d`*OUNOtF~(BusH zo(A)frfQSkvV^cGLbknS2>MvI?WkTYcNLE)2-LM!Jd|>le5jXY$75oBh@-NR37oxm zLuFW=KrLk(#WrU09g2^2v#&{mo&?W4aLhh!LBF=Gre}6%u7W_@z?`vx@Kze^2^3Ml z>--kzP-!t=3-r0|6>yR?a z17y3Xn6>^Sy($ROu3Xu}rgmq(@xu$3Ua@g(?W!f+wjG1505r^a*~?yb3Cr0p!}@oQ z+25ah^2y((4e63i;>n4@4TIzX_?}#D^92xGYv`mSEV&qCRlyn)4Knz*O5@q^z@Ygn zue@^koB!_3r~LLS|I69Dq{F)wmYzD*?VM&hnz9X#epw`ODceW6i>*{{aD)Ih4p}Pn z_7bA}R;XmBFol3Zif@Gw_EiLf0xSZT)CvcMg#ug2=O}@ei1*yPcp`~Q002M$Nkl@xUS&Xr-G&OD*EP_n3OmOygAmcyUl0>6ZGdjBWr_c{MYuJ=SDA(c?J>I zG=LiSe6;wYwZ)^j)E@GUD9(5O>+|&6-+m04OzF5S zR$#VU&0TVUFY-;kTVCc3^z|wL=<^sAe6ZfkU*Ju7rKg)N^dWQ?Sb{|f`7Kaem2oV> z7K*=uUA3)BMCxjD3bcT7wvkAl^bhD4^mTVzW1HAKa*vdwSx!ia0&?mh092pQi$b2s+U=a!ulb*(dwF7R5f1iqxry31c(_QL{ypT8CInY{^87L^fha)d9y4V~p_ z!D5d>W#5xOfRf)RG=`cn4xMu%==T_TLAD0zjvv-ww@v-~%66!u2!RhH~3^=bg9VBOm$5!D@1hqucifKDhDG znl-EE-}kzFsZD(eef;FUGR2pff&psvL5 zMfb&4Ur^xXHqRpfOsAkmNVIX*SS9^)WkM1drBYUWZkNC`H}eQN2rSCshj$~W5LOCm zf2SOTSil7F6mcb8{Rg)I^?=AkHh+NFy#3eWkdOHx?#Kr~LGTIa9mf@?K2l?S{pO?K ziX0|iuT!@uPCo5pGDCeTB}U0S0{dPE5cZQfNG&5K-{;Xf;xaL*QB$0NiV>i zgD^vRC>#Xi3Rr?aF#((!W@t0bldmA3yptqy7XT z;pz|4qjF(ik%k7|d0(i9(4OaPeq@~{aBs8kTjHa?5pD-S)8<3H(guD1(IbIXOd1-9 zwyGKOf-s8)X(#Jtfb7t2c`9;gEBiJ5cg(UK&qpz`exZ}}&H+fj=-Z=X2z znw;l*B2OJoQMIt&>3Kjo@*ROb!M=tE?Zd_Y_P$w)2Vcqe)>eLJNJkp^OifKLeB!*z zXa0h5|3eR2-d($CTk19Fe_U2Bc8DQN06dg6`tHbjI!Cmh%~HUf)SV_7d@sNQLIFS{ z^PQbzvfQaO%sO7M%^&^fM_m;V;WOx+ac}xJZ@zVS)yn1Fpa0L-Kk|{s9X9>sCmge9 ze%HbjuD<0S%HynWUve$Z7PQXehWDjKXy(O6xEsY~YmT@3V#`E@XA{^Z&`LnXZCTO^ z`3IOZ;X@kJmL#h$OkXpOrA?QtW$&}!VrE~j(I4sw73*tq1OXv5X9ck2VgK*O>(Mw^22`t z8tyBEO+N={m*P+sc7(IS6asy|hn?175#e?#GuyjTR)DcDh+GQnrA-4I`V_j>O&%${ zb>9jOuAaz5I^>RJ3mSSQ1QUO|luSAVjPGbi^6pz9@oe9|cz#<=dxc}tEFWVcoy*s> zCbLXZH?T}+$s*i_|5i%sqz~E!7b>b%>@0Hm>yCJOF>E10T<9^LG-a*^W8aMi>6IV$ zS&x&Jo*B|-_<=glIk}E++f@LExWrY_6x7C{b7ZUsD9VxPj+;AW%LBiv;5Twf?3v?yx<#j+lg&QgJr5+s#wi>765fIk8zX; z`4(Qg7Xix$qukK8e%G*&6D0v*SZuqF3edFWh$rt!hY!dD2TSF{F9Cj-NtV8!#)+%n zBcF}LJ;^J;CNgQ=#nL#cA{He7RWw4kc}F3T$I?o#h-~P+2`CMzCC~h~jIDkz`__%K zFMstvOdPOuWN6b(cR3;6!Urz2KKikbeeB_Y{#CT2N3=hcihQtP&cIdb4g{B3a)+CP z_LIioh}15E#w20(KUY6@GpK0N_5s}X#fD}a7Hb4vC(qkR? ztFoggf)buPHw~P@!PWJHV20 zVAF>#=zz{xnbHoBSR=teeijW?ru@jnJ81BJ>d4I~S>)$1j0#1ao+poON2ujP)1p+M zSYRRM90RVUE#>jdEq*5^7$W7l;Gd;`xS<^`NdJJAQcSQn$WOjRX`>WF@wv4}Decp{ z8F$~YE9>1=Y}C~zIGm>KPoRguxdI+K z`Y*kK9A`&70(sYT4ZEb$4}d?^eFzNcn0K|}Nl$vxb<8o_N`E@|na_OYIn3~XKvZ_% zJpgoSn*gehWK&zH7+;Z!-(KBEFt|R{9 zHUDwP5(I~uz5*A~z(-fE-&OtmMF6y*Fz}}!sHLaCP;&Uf8-PEZ8Y6P{y z6)+ai!MvnxpsJ_AvEBkWCvWOr@4=lbg{{w|NnQ(3Lt2!nB^mFMu@W1R)61wd(nlMA&- zsVZ@-7kLJN01Xg%9xGSXjD0z4d|jT{2Z^gHlKw*e)jmC4@F4XkUh8Yp;5d1XDCU|y zs#q-#t^nxLt5PyX>szbe{`R*Y&y8wQ_{sZ_A9kPDq!bi^j+>*B*w_)Vh{=+lqjR1pg!}ii6 z7!`IAP<$!ikpN+syZ#9%GA|IIbVyu*qyfG6(*GkEy$rL7rw~#2``J5W2^IjNv@x}L zDnQ(~JiFu}SYpAD&VTb+=g#xQMUYbmEvccrchHQ$RFH-|N^@g&g;i3cDfp5`s5=Re zYwOAdAB7q_#(`Q^C-ll6Q|3AKM1aS;ZMNKVV%{*qa9sDba-G;In+*1FqMue!glVX) zd^{wk30MWDAZ7l31eeU5hxm9V6teE2EV%L9klFXJ%eC}Qm}9TY2;L^}1rDv=3Ba%c zh_ouKojWOCREh)(TSsre9ByjcVFD`+?sYqM$bMSZ_bMq#GtrH~o!w1kQkb1(&H!$7Cl0#JHLX$r4qsI8RA@#rqnWQ#_lw%hcTt7cJO>xgD-FU;6p~DYZ z-Tmoby?5fUL)Ps2nbV&zGQE2S>0q@5O@snhdFd4f-tN1smVaF%6x0NKqzv$;kNSAt z_r>R=YXpPB(FcB4TtU-+ivi)I6`wJGXz+<;Ns0PL#pF3)97O}cW_kr1i6X@OZBU^3 zQ4sm9N5ktOEf&*wP2LJAt7jbkq-;bjF#xjwG`HDRE{~x-c`5|u0l_@XOTj3uvFaG} z4rr6H0J)oOfvxcb>&NfNpQZp9&uam~Jj|=ysRe#TuO$}k1%lK|#iXx`!p3Vs(s8(vQIu2~Tsv+(#{g966hy?E8k#8nTBh|yc;-9p4R7rO z4N#@UeemgOx#u1O#m`bo8*j5iA7$-fp2!ew=EgYzP}`CGjMoDdISQ85Z>7Od<>5JC zH33xRo^5J6K}R0W63Dk^01?iKKgUi_4rSI@{?{ue=*N_O%P%O8U|VcaQ(jl!SWo}$zOl{ z^~>0P@uA*BbMxx~AFkbWYj^O0%et5U*T0=O^3e4&kAL)06FYY7Dhxv~Nqvo;fx+f~IF(;wU>17+UhY5XO%1@KRx^Am=iGNBlb59l?umROpzm zla)+bN%*BwVY$xo(-j|~tB?as05zeFgV@Q{6at|j>Nmg5*SlOtm;+W?rn=tAm3vr; zn5epy{jF6MWuQ-Qj>!|D?b1gTAoD80FL-kwOMFf%RoZzr$C0wU>j>qtCcWn;IrZ1l zQooz>CFu3}^1%3|_@vJUfGjiabiPgBta25O@E9g(n7FA$N3 z!$1b>J&o6bLWy61=-9GWp}-n&mcLx&onpnFxVEh zw-eQ5T_JTp2BM>^OFf}=>zbJJA!R~3L8F?_dk@m2h06iK~-WMMbQ~>nK!~+nI zg`(Mh%vYM-cY{07n)~$ayeqVWe4>d$C!~`vZ9^lg7#gI%>QL{g<=cmB8{48tC_0=7 z>RtPxacqnBnVcM7_~O^D+Wp&q@Q#Ut)-LI;*|gQ{AMl}JiP-XtXFTKU>@njREzhCi z7dH$VR3;3p0&vC|XAJY1Klj{okHIQBfeyPBPrzety6L7V*2_QOt^d~H6vVe}i?A7f z&I?~VanAqu+Sy}|IcRLhPR?(SfE5Z9j-=p)M-+Gwh|R4Cf&!L2<1z9hGDo4IkcjXw zoj^%>h@1#l1-(H55}|Eeteb2k#62HWvAESI5N1w1T2}(hwfp@@qk;mRIehC^XEIx0c@ml_9E$enwSer(A zyl3SF%7CNP$_{v9+Hx@bgBOl$;valuwk`Vx<1u6sMr64cU%K`7s3f{P#3p@Z; z+uYL$nTamQ?3vjGEe>@65P}5sMG@%vxqG)W-`(|(`40e^6ZNd4^f?jFaz_{*NIfV} z1U~u=TlH$#%Ny(H>XGa*0gbk+bq`kZ+&o}d0J~OV z)I1MM6X=XGIk;Gsq)oA&&I@C#lOPq%*h678L~yEtSLap%gglnVm6FR9w-}Hd&JQtuI)4+uL*%s105k>99QK?nsyYK)Sdj zA84YVnkqE5l;&eP%5^x)U>;N@_o|I5PV(}pN*p;&O^!0-f8*>gzU=jGHZin?o&Mz8 zgCX#4y9djH*aF5plr4Y1j1u_hbIv*EA*Y^t>Nn5mv1kx^F|Z0iV>X@e=?KXY4$PVO zmw)+}hk2j%n(gs};(O=rJ>BX9rn=3y?HW4uXJ0*h?pc4d=g7m>jP2sS0#f0ourtIu z_L_UXzXFw%0)0EkOjYh6!{CZi-M}BFTe{0 zr8rPm((o&mb2g+Qo_Dm`9J4ong=!PB)RrLa!HHOOmLm-@B1!FUw43@SW>Wx+BQQ6* zlBQPx3bewRfUeJ)l3*I?b!=Ba)p|5|zkoinI`xhPOzY$rYDJ%d7#a;b~+8>Uev zVMM^yErgxZ;O0Rx2^Gt+ihkIHwffwXLAIj`29LVYrCQn2&HMuR6h#A`%Fl5kSUdBi zQ}V8q!saRm)8xcH+RwVCE?i5S)vvnogdf?C+M5)gzTvw`#fo?KQQsTelKXsG;5PS5 zk(C*OJiQ`ue?cvW}#w>EWO`o_jqz;}GF zJ7By!<>ZHTr<`<5cl<-vv9@@U@pgdC<#iC1^~lg*x!I`=g0mA~>Y?>g;HhcU_)Yu(yb!E{LiDV)C$HqojnvzI)0gdLO0&EJX;bN^Jcl!~ ztPwATdPegql!8*jMbaH_fxLD?9d!7vSk4%e_EH{vkz(mGq`w%Cf3}}PHrCB~5~guk z>dsv=-NjdK>TcS6TX)UITf2?7Y>NW4eCcF&%n|Fl70ai(gVwF=)~;TPa^y;fiQ*wk z?Br42%bpiiYW=l*=}^J&z04|_))8$ZJ{c+?t^Lnoo76#`@-eN-KR;3r>tb>zBi?Y! zwrSS-ThNHx{N8+PJDAl{9~=Q?J6-@WhNJ0^VkqD;h6Wzbyny#U|+%7pVpOyF;+3zj5&uIPoIBiOW3rV%9Dckb%0 zy6)y~GuHh#F1@z<%0=JqKKJEsM|kdCwIvJz9I(7BoZKhhX*Mjm@wS=nA3yx{d`>>$ z(C$Ax?{VFujy)*F&u|i_f+<2DL0m!cs&Fd7SBi?(G-PUVA<-3H3h?IL0KG`sz_>tF zFg8c?Zt?v#Sf;_>?PEN7sG?)q7GjO^+p@IlOlunX=yw1>g@NE&e)%Rt6}}2(ASeK! zq`TnmA0WS-gO z{1cc2cdx6RvADU8)ld1Q0O%qYB|T9NceWGMbeltcwzie8e4KB9-bmSiBY9e0l@EBT z!SK7$mhIgIU;TD>*2lioefokct;$^nCkLMVxTCrg9&vd0@P`~6581(M4`3+4 z6%wPk<2k5^G6izju*g?=V!L=#c7>kMWqoOf3_GdxwfCytmvpR9W9n8nmQ|wM@7gsx z^FQD8uifQWTs__!7>W5{{L`>StYK%s%f%l0+f(4hdmAPV8ei(I8X&6al!V+2$m8@douY$}3suyo02cm2(!y#2-tpV&S3>5oKcBcc)D(x$N2 z+LPv%NdZ8Cnn$iGz@=BKF95GrAjqmLP_P0KGpsBm@@y860zp6LV`fvM#eUP7ne-V=Njtj(${pwVS6eE{ot@fb$}`Dnd6hU^x!Q!L+Nxf_^<|$ado+S8f9P3fbT2&rUcE~b-M_%&Hw%@~q!}KYbpyFq~H7Sw~Pad|}ZWL6P zHfF;hJRkDj^u}|uo-F-@7xoRy)n)H6hxLus56%7?L$PUTt%tRS8SB&FUAJ5Q*CjuH&tS2c$(4%@eybAK&A##P|83!az5T;uhpbxxT@Q{)f40Y6g@!S&d)@2)je~)%1A}(+c@-Xk z9q2c>>vJ+?%_0+0TX)WOewK2o@yg|6-Cw@_a|oMl z-AkVTgl?&G18`r*^$mCzXcjmlpAg`Jjsm=dnH4Zj2{FfE1ylqgI3nPb~<@0kfuD~%W1NoSK@8E9%I@T;Kmmc#j8Vl&9&n;&4vp6p9 zb4pEK0W_3?y61hK^Z;re`Z4@C!{4#x3~N{hpKR&^2uRwvpbkhRE+mEy!974B#e$!c zHQjsO32@YfWuM*?z=gaaXmjs`yk+#2F?lOrnAkb)%yodqy437?3MDY5ARy#2HF=?8 zvp74S=YnTw;MzlJvhJNa`YzjA5^w)>l|!}|w$qT0d>Fwqp`EWH!_RJ>NeWOwe~@mK z8`4f$S7@Mp=Y~<%Sj}PH=@aDTWV!HGCJ|JmI`)q+KNUBh*`h;uJ`#^P6Dlp%#dk=a zSfAGCq|IZwh}P{uX+G;CU+(_=O=lf$kQ5+;iA zlwON5Kz#-!`<8q@^2v)9V?XxC4#Pum2ui^*-P$!PyVWa~b_cFrL3)=j7Qf|f4rj8i zX?HAp+t=#KO1|gm-}1^j8Gn?CnZ%xZ>pTCg6Z{W7XeE36Z&@t&!FTA?f5WCh;*Z^6-~wCyj^BLq&3}SRZYA3^u72^0U;NWcmo8=ebZ0v8z*Xoz zBKWAo)^^{z=H~9d|K`ul{^|>#fvj5?cAQ+{pRI5atXf~wjFE2LwiBypR=5YVxUe!8vsT;!M-U^4Vo9eE;aaZ>X&;GIQB`-KJ zLcRoUfpfbq@X*yStgFyaHzg=Ex!g?wt|h4TD;R3cI+Hz8mUvo3z5w9|@eJnWM?tQ@ zkCY^D@2S{medoDP`Z@<};AsiaiklS!0t9(f{>|dI_!71Plh?Y^^)6&RJA&JKsW2#| z&C@mGDh5s%lwbi-m${w?eq@|qOHc4OKhA~1A_tfOV^o^}qWN))`m>h-08liii2e@% z=T$bmsmYGs{+F9R_#t6I=vkfv0FM z9wrX;Q>bPLfMtdgTIsa7<+;ATDW_R$4`19RFy)fB>B1k+A+UbXVf@rB{0j$p=FkcJ zV&4FHYcQQaKE(azk@0@|gq{!iNd3ZBzCCKoG=}trRyI7>TOcjcK(5Kxa{l)}f4=+M z|9xJ!VcpX1*4uV-W@nY1Ozy!S`?LyyUanQm$NeO5T0_!Yi^GUweN!eQX{Sn)9*!Y#^>v%? zP|Ab%r~Sh1ft?iimbbj+1MCjCnf|_oVd&pJ{q)mo?dJfoXP`U)ynwt5L-V)Zdh1Di zZ-CF6&p!L?9QuP$;IaDb{?Ire_#b`v+U^hj;vbQ5V>2&&!Ba=k_J?=i7QOb`n-EId zyQ}y}1OXg!nYj)!W@4EyZ)|4L2_pVZ09fbU zP=&mdh~9PlTR|Vdh*z)T0$oJW)eQJBhMXPv%r{CyWhY$$BJ!{d%aRto6#|5y=|7j) z85Y=CkBFG5+|`Qj@0WEBpfN99cyyt|` z1T1I4-F+2wcbjIKp&XSJrl(+)Ry%3Mk3tuI1wfbLl zc(-+*`uwH&Bocp)I&@9ExbCEi@80uQzknjLG;;t%=vdbX zWvxPB0Kr@B?%(PI1@1K(Cn%NR7l?EEVd?|`^!=rr=m>8NG-pp61a_ahvY58b<3CMR0Q3#Om zq$Hi{hu#M2$Uo82!+4A%8_Zufhh7g+!TR`aIN5V-lu2x{@Nok(B;Xdbv6_jehr#mQ zLUtBft&g<$F}<#F6@pRH%}^iHdEa1_1w(5tRgRszSrE6FPoP(#T?fY>paNi9 z+WxkQ-?Gl<#`8B-T5S7jV|n6y3Fib*Px^uP{g|flBzdXuq}>GN@$SNlujyX=%C~fG zmUF``dL>iE`}7YarO!Eh;LyPoLkG_LxpDKIXY4=W#D{dpAA3aixDy_VcVJm}@IkAX zpu2>29GQRL2R^&!56*noIN(3DAN;?2liB{h7xdBDcfb4H|9sR@N71#XFaL?3_=(rh z&v;yt=ewugx9$#%2LQ&#`e(x5alG_y!+6^#KJkf1!_HB(uZ7!gyG_xtKYSMsIDW?r z-XX{H+GE%9uHdEDmA`Gr?f}${x9kYOv^e+Yw;Pc-{<)oHQ|Fxb&F%%y`mtDlf}SrR ze}IvatXe}}E9Ct|m@BA-O3+CGETB|6YL%W+z*qtu@E7FWx>ZY$ybCl798>@tDyclm z`l?NB0CKSbAQ1&k7fUqc@yC4wh>&3xfX^X`xWN$~j#uly(3;iyb!l4BUaoZ&35ARR zW4VHr7^9xyMoUiQa~->$59{gQ043EMc6=TnkVh&4g06XcYMkk!oHz_Xxl|mGF4w$y zYuq@W!?f~IR#`7;mmU(t9i7REv{9{EfIcVrL9=R208?$sx{<;lpXF)et8*q?-*5dw zo1jead6r#DFSlf^N=$$jS`F4g1xCK80GLMF7)8l7tr(i6TL4!%;1=aLnb30RFIFz! zr8xQ1;W6Wsm&eTPS1LE8B|-y#>9tJxnlgyv%zal1O!Gdyzk3IV6qtD~saV!Zup8jwV*TJgqk;OjqXkZk8w&fx(-m{tU znr(mI`ObGfL{7G?8uuBl?t_H5M9|HGl*l`onZIqv%s#)F$E{nLkVSawKYp?Msh@aQ z)<$OzLj=46TwqaXE8Lr;6~L*cf84Vk&~VNC9PVU;8x)OSpitrP%3 zRd96XR6v3J{g?PyngX=*3R<}WaMBndWfnL(0Z>cK6&B9a7N{IsF5vT9i?qsYAZZq{ z=&764;8#yWuhg*a-kl7!I_CkLc|b6e2LqCQg) zl6b7Hzv<4i`BT7;=#TZBVdC$M!*;y$29;&k_WN0iQlMgaJ+u2ieD;@pJi2=26vzDD zzjRB;z8W>vs;&f#2@O@a!J1RWKCvXE5_ z3=#f;D}Dej0*6X~7|<*@0a7bZFv`d6Xt9_bqt~Jj5XTz;fRb&wf{7czC~z!L*77Xy z7CZ{9DT@nf*E1ln3MK-TTf7QV0ZgtJ6$YMb%_^`By2?v2DB$v*^>Wk%xetZz`>oA8>RMB+r`*+~0#7D9Qf7Hp%37~_nwK5}m$Wev z(0|enXxYxSpMpvcKt_J8E=fzB<+q-QfOwP&>&A!nur9`{Q2h4VJSx3?pgam0)_||h zs2}g!)KwW#2pF!=v!Jr$F~+mx?`BJ%IPce((44rt*?L6JayL z3V_M?zyJLYGilqR@or?ZKgxh{z(%hf;=1li_8M@w!Vp(37MJeb5v<`+PJ?rYI(IPC z{T-_oz!7wv)1Wmx!Sc2Vh7>#kR$%j})kO=AJhcd8F$XpT+_J(Q7k6A;kQ-;rdV*8h zOzRwhF+eyjW`IcR6bwnI4R!cZYYR7yvI5Q+gnuf;x# z<(3a_e8G8+76&@$cDePU-9v%T?0XQlqfC;)R zrHys&>KWINTgNCW%_Bm6z7t#vI0a`vJ`*H8#+V!AMSgoYD}Zr#UGr|h(-a%ytJt*P z$rt(?&-~3VxG!(oWIH?pQN(BuK+0VW4d!EeSr0!dMVT1LGZmS346bnl_T(LUC7<|) z(B3OYxnYa&h^9_3zWr!w3WbI5Im*yqB$@I^#l!xC??00Xou$8({qaBk=~||@on@_q z5affCGoACZgH=8I!`tOC<-1hf^3ody0#TQ?^V!!o&|8$xkWvNY&e&NDvx@SM_I6$gg!ooxgg1{JHn={Y> z2En@oe+g^>+)Z%|PR0}H1v_MXfTT{a6YbcOpL`1Nc{Rw$arMj(AdPtn3bFptMRXBc zwqPM36^QkUgWxZ4aNn?iOImlhaf34CW!jcTnkkTblnKyjObdny%q8%UBg>UG>4-&( z@UA>+k{u*QQ6SRdiGO0I)^iOh6ljMx%VGM0vIy6FZsv)bCNTRqj?bnAn6M^btCU z0;jHd!GL@OrRHtOW+{7t2#K;0%^b(j8qYFJ8wLjguh{cx6!6GQBjr62YMiS2d`( zxOCG&9rvSYS^_e zvtXZB02=cUKKF47UYd-Ut&#cu2hbz$cbbojNbHL4a)~+1yuDxMLxABIp-9ZPg z$kw3|1Ct`#C2j(!LS4YhQahi=QWI0%wM~Er^bzBNUE=mihJxR8ezL=$FyIOU z){9%7mUX^`TGQf^4>0?PXQU=AbXh+Cf+GGA{8TIe4*^;5t$eDyA+}vMvYrWD|4|$= zx4?MRN%uG4qq|?PfC___E;*B@WBk;OXJ{7G4|=g~<(r_CZF=QF?w8`A1#enG*c1I! z0#s70i#(Aw>m!%EmLCSMDJ}KO_&j`dj2>7eFY7-Mus6Qv5zGP1v69JO1w)0z_g3H~ zGqVhz1o^n`9q*^!;|`k;&#~#E1-g4hOJznLu(4$+M0i#*1R!1T#io>Yo5Slgt#nhS zc`;0%cChaL_8=#D8O5OQH+pF5x#?A?_}zOGa&(3~pqDlJfJO_Z@xInGe?o)L zN@>tiwd?}0Qeeznpcm>?C7_cc>IA&Xw*jM&tYYBIcu(l_=^pB=)v7XJXf$hy%Ljw? z3{V5gDjZ%5cAi-0X?)VLNArKLV3~=>eH8{RVCnR}ATDq7ocjtzpSRsPb;tW@?GVrp zkd_O+lphocc`lF0(~rTS1Jf1lazqfWogPyz@hr`*%!ARqnRy8ZhUP~5{_h`-13PyWXnpOHjosrP zbvV{v0YpF~?sLFAV!c3Zh;eLu;0SX7fPV!_j=^K)3UUDh!L>kHzz{fq0y>yrPd?;3 zhh^?@z`E}RYoH+DVpQ;vBxUI*eyV8sjw=gZ#PJ^A0{=KO*bRG_)TZlOtF?_$ClVRz zjWFRJ&Zc*+!X9=fG{50F0NQ$>2n3(Z80#~ZH22-n0PDd=U^j`^ zTCM(yE5GNX6D1v~OqB$+0BWW2UghahMk1Mqz>Pb80gK&wrmjh^wOpTA#{IAcS%l|; ztS73CVBxDE)Z7FWICxEct>Xx8fA&iiTN0q0QL8x2f6^G_`;bd)>!gL)c1!R-2$Dfch;kIy~UIZ$T#@*nd|% z1ULO>(R$>%EI{%gKdn(M+#JwD-g}G-5X>?;&3o>krN4kKKp+R@z~=>+JclOdGYF1)3Dg@L zJ69>OPCn1!M3mj?jy@!#$cGCeIus#rr4HonZFyNk0Kv8%);P;ciU zSf2es@QmlB=cVP!L*4#LUx6NAp0VAz7k5$JE;-HKczq})ste3$4+*VVdAi)gN(JR6T z`<3YoDhSrO?%Y@=mZ$sX zpM72dU?N525-;6uwEVFnk38}g8O-KCY$T@8FXr!??0sNRrGR&t)2aj9F0_k)`)*Fo zLl0Vku%7L1Wqolbc->3YZxaE}|Jp{@DevTP6~~$p(7a{=BrNe<@I!F*4b;M&M^Fni z_K_$A2yq2@>od1sE9~iJ{LdIZ3P9!t*z*wn{O|TqhMV4KIZnb0R~_gvsIhC}BnSB9 zZ~zvhprVCp{AsMyxmkhT_0|GNxr{Rez!Y`{Ay8J(Zy{XeWo&FJUJiEN575+vKf#P5 zsiSpszC%EcS%4}msiOd$I7Ta_!5Q)idS0Jrm%8S^<`EQqDr==EsB+1iI+?IMFt!6(7TtZDmr|hDr#wHl+32Vr>*F#? z>QUSZ->pV|^T(r#eO~$YiW7XuunbJT;idxp=51-&+*{vKvKVS`I80^By2xjbdUhF~ zOJv)7a&MKnKcDZ<0owsA@-3S?^2j4^M%hI79*WDdVb}N1<^GGY&np0Xv1S)SXb2|X z`kd!H=Q{QQIGkmG^K8VRyx$-0BMz)s%5l61m)#r^bA2!5Eb4KOIuamL=qvE&I6d%c zjtss1yl@W@x|NNGO!vbE0pp-GYzTDA?(T-0w{=Hw9{L`DRp1fsahO8`?;tOu2et$R zDb$xUZgGJh0M-ih6VMSbxE9!~gJbjpP^>=k1trWb3I&C*4xGH9LqHJh@(eIrSnw69 znf59QnS>W}S|BPxZ2=2RBIMUdiKPzG)Tda*PqTl(hl24wkN ztDL2V#sXu0l2b*teu9*bO;3gSw~25IEQQP=MZ~9?2`XCQ z6=@8$uY%qR02Us)0gi1UJ-WwjFF{%_gZJlgiR-0t-vl!)&@D?kfC&MUtWvP2%(w&* zFNOPO5pB@}=Sfd9zy<;&;Mza^8t3D<+bX730#}I5S3kb(qoPp`st@Xt~=(4_1(GySF$bd@^}NB z4ek=On{VCLZQQiEyW-n7bbt5GkE1NqR+$I7CVKM^wtN9t_O<4%48lym@c%zBrmU4ZOvmbZ?KcoZ&W0&vcJ zpJx`l7Or)0*FPKyi*=Ar@3$b(3BZ0k(a~q76~yG*@M7J2Pla8ZXBq!SiAb5$N6$le z1ijMe@BE)@$Rdd}Zt&+GhFe zX33o=0Ai3QpR^b8qI<=xh= zDtOZ49@=dacGPr*|a}PFdx}`h+E0lun@UWt2yo_#$J+l&5U zb0yS!nuhJ)S(?qZBed^3UgzOG_#^i82I!oaMEPU%=}p}Gq}ep=x(8YQ$fMF#_Wkgl z_q=BWX3nwH;yJvWFP@s3y52(=Uir#bo+|aLSFc9C&$}0M>eB=aonpa`;m1J3FV@#i z;BUWu;k9sL<>>0<`g?_zpXnZmVaX)UXHIdub?fx}X{SDR;bkvAZTPT*R}Xnl;jiGA zZ)HX~p$b9FKa~bu-dj0v%TZ7Qw&z)+`8-iEDs_<&2I@0uVLB-u&k&KWo_m5_bm_Y{Av^H7(}}ChwWuQc0cT|TOV)z-m!Iq8w%;wu&(A~-Q-1^8zFC^6o6zd zzf(Ez+yvM3JKn#y0?-sLEnY2iUC)*$$WAji!fRI|lyczmIw=rHi+9o}U;K=tz(|V| z0^2*}JLguzduBa~c($8BA#$z-shO4l-PXtSEV+|z_vj~+lxsQWr_$yY$({L4d05_-Sv!y(3hI6xO2B1T zT-SZ%oGzmM1^?$?tENl?40n zpOSq0Fo8X3(zzg04>{zJ-=#qwff8`jSHALm#Sb3+Zh(ttXZ?L zV#SIDCU(rzsB_$7H_(weI?&vgzx?Hu#6yN44&r;hmrCCUveA|39^r(!Kl$Ak4xRqg z#|=*+h-b4Ai?h<3(B;L!^5y-B6$>8%8cyQUI&x!{&9`pv&icp~xqytMc@B@D08lQ}#1da1UbFsaqm;#~o)=yysn@t( zaM3|U!jOIL6`lOlf}WeJt#W6XXlE#^TF@W|!J>pmctDZi4d_YzffdG-*}5WttwroC z{qRWlEb|w@+8pR3*bq^nlF4M!vcM!qi2(Xp5l}-EmgPOYAAY;duys?A`PnXY5ie*j&G}?}Syl?s}zmr$&c@O~Qz6yY0*m?jo873j;8Mfk`27vW$OyHt+ zpM-3{)8}a!9wlwCUgodjBIru<7)n9tLCNsBbU0DZZ+8=%o^i%Mt0dTlSNnV}i}zJ9 z*b@Q1JK@p!7`G3Bq$qytaUnnYqV!U!0J=Oa-ZO*&V=@$C{={*ZCVXX5BMlKc9cD;; z`IS0_qtx0^l^zEFFfk zI|Amj2&RBLf+fK2H?G*Z_H8<@kpb}>kZfpy=QC%YefF`he)X%L{6O1^_y8;z1;sH( z9z6H|{_YEhPk7{!qEKA?T3IehgS`PP`P^et1drWap{biYC&UrYV@L(%^Delo`_N zh#WJv9tQ6@!7Y*aZCz)vMg=P4^s$mI>(rsAr8R$7LAVEjfQ2DUJa(niQ$k)^#uJlE z11^%HbsAtH58dFV7YLmZ@1Fj4H~Ho>%O7SlAceeExpE~+0)MSdw$jDbFa3=ktsFnr z(enK^2(lUXCvECPy#mCvnRRmW9>>o;rq>>yIul1eMV|G%k}i4AyOA``d)9kGvIOI2 zXF}=~~qPP+c}q=51%&wCnd zruA53Ck)CH6%MUqnjn3{z95f!65%QO0ZM?g|INt!Go(O1dI3U9JYB^<6_O}2#H|%D zeNM#x`}dsP{qbMDzdLaC5{9ULu;E|d6_4)q)V}}c<7(%_O+jW+S8tP z89+Qv+Z8M57%BklMKQvCm4U@?6$O9OCpqJ5Hs7T4dz5cKBc|ijzY+T1FrN`{Clk*P zKm72WM<0Fkrbj>e(O0_%0MAy^H@?mLa3)H@rZal18U#MesDTMKEMeiCbI#$tAAKQ& zpTY~V6j0tu!_6}U5L1YIvEpfz1wX#{eMrM{?RQBzPs-G5b9griC zIk`>?wyfrw<)3o#2vi&BdQKM)NLK$OuT1q1Tn8Y`t9bzyx5lL%0`|~qUWr3I0mbcZ zc_Xs@?l?3GlYQT>`cV&gEX^tkQLIo(1RnXe2mZ3t|yOVe66THW7KlRj8#R;;i z{LN!u5BvNiz`YqLW6wallF{6M3v&WK#`hD@(w*+&vcJE?(puf|KOLpU;pp_&>gaFS&sMZ6Wr~u=2pIX<84ezWZWE~A23OK z7jRpi_YCMJ2?|RA!H{uoL7sSmptN>Fo?fS`y(;Iom#Hl2e5Nv>jiuEacQ$Etfmaeh zo-(q`O@5(Ux*1HZ-*d6ccl?8;#E_oKoxW#50X3BY#yN70Gm5gXfMqOMYMokc z(H6l}*Hpz>_vRKrhM>OxQ&y$5Fw^hSd=AAINU&OQ4VejirPqqnMmi-)l*) zwf`N;1NRdEe&*56ZztWqQpWil|9h1W&H$T8Gf>POC_OPgRY=- zs8-&fe6L@-Oz>ZL&8vQ4;mIc*KjN~ktPQ6ETKEbU>Wff8h$2}OE?#?I>m$E=K_vqO zys}rkR_L+=9C#+5c{%1(dq*!&FMZ*3tDy^aUP_&k?(?-$rt zI-ip%Pqo^u5B$Pq4|mB=tqsI_4ow=ssR-8fcoye0vE@}V3kPde$BF4G!{ zK9vvR#7krG_Fwyc&x@YtCXsK~ZoD~XRIFdKw7c;KaR0Acvy7Sk+q>WXzn|Cr#L17K z-53htUlf;quZLE)ZvMbN49l>L9hm>pqVmz|k;?E#g>cvIJ>9WKA3pNB|M7p#zWl%a z&CsC-tsJ^`)0P%xAiweW#^AyQzgZbf`>@0F`~rRFFP`|sCw{H3)WttY<>2A)dFP#% zt$gn){VliLg2)(|JN@+2GqFP8_xNAv_@S`nuFAVF?+=^;ATwaJZ!B%KFyx6#ts(9X zqfBEK_jHqni!QooftjAeXnPl)d+xb!L$LkIfd?MA^;NHW)u+)wpMzG2k<>u(?ohIC z#BuD=Nk>N?wPF7BpL#q-rq-)0YM}&R6ZYO!Ao}4dLQsojfhBG5Hi=LZDqxvviOKRz z%)%0T?$b}~{^3361^nIA#7#`@ZfKUvZ0xGZdS$LsHRR^p()|nZFYU zp`V%F6e?g?4ezT&sPxPOvH`7B#rk0(Gd4dzF2H)?oMZ7S8wDPV3ITbjfY>v~#+DEl zrH2#Y1gb8R=*&xHsT3+*(!+qNd@cTD@k3V>b?>zY*%sb49H z={EqUwD>VJMa8!Ad9_3JsV%H{F&MY_k)L<#&$1;h^V{A%>4^{Tp7YF;LQC>d1;99! zFZKh2D2-G-+Xgm`pC2UTT|)`@1QC! z4p!(87I<+TEBZn5ykFBO3^v}lb>Tn1qRm+EV_XW}7$$*=7bk{Q5 zTH2i*t>9Hi`vK+={{EHPQdE52X0+=%)gsj5&k{ccD?-*44Gwt-NSUBV8ZAf}kwby_ zr2-J%aJ%MT^-2XLftP$tp%pLa>h8w1PW>}}uA4r4=aUa$;r72S2h?bAXv1ZUDi@B4 zyMjQWE$^~{4qgTzCZHZb!(BhZV)^i&CtAh@K9o;B6B9Kyt%K9Dt-H_hRTLjkN{nZj zLivyipY;V)#+ZYk65{?w@d8nQd1+ZHJt2bM0+k;gWWIrXX~Flv_rh=Q8_)D!ONYQ~ z5U8@PFW1uO^2EH%(rR3J(5JIqY#%qdncK z_PqTA`UF$>ZN4N4-O`c1!f%xZ6+T)wwB{MK=uNQh(w;m?Ze6BPUcY+rRYvP}-qj90 zd3xtR<}<|#3Mc)&_!pkePKT4M_+U;0^~{7ssFGIamH1A%{E;MKfA%4`#!n!v;DtMtbP0OKq~-yvGzyWlfU@IFLI{L!ZO^PGpsyV4;{lU8Pqkj7ft*8 zRe*`40G3?y>o`1~y_LBj3QkKHJ_dGy@7Nh>1c;Z@tQVop?J8ua( z*01VC9Vov6QVCedDi&1S>onxUe>SjC?GD!lCE~$=vcnwJ359Z5dp5E zp`B)Y1^ftBDi=@&(D+Y_PK^Qz9hOv}$1(+E%GxBlfJo(Z&GU=+ig|KCkdIpqq0!^@ zZp!4Lqu??m`8jzJD!OSlu8|vh2CVKpz>^E}gTAuZ3%Je8`o_{Evgs^Ga5t{?X+Z$i z%8v(yn?5(VWKe6?IvB@~&jfGlX9j#(K1k1|X|{8-{- zZX3;z@7FK6I(2lHzIzguu*uI&Z1VH0pE|KS{@BCuD%nF&%G@|f;w_6$K%6#S@Wbz{ zl7MF09+i+bEX4rEBtEzNPh31H$*TChn?AXI{i>1w^x|jDz40yoGCHWM0_;1hR;^Oj z4l8>f``E|c%+Twyn{K+P={@(P8SW~sEPPOe2Z{plBWWyz0`KII8xE~Qm`&k&TDa`8 z%hp;rZYev>Kq&w#mQ8fGu($qiy!5o81J|q=ay(t3qX24FuyxBl1d0}kCYm4{utZ=f zZW{2ICc?|R=E2Kq@Y;_-OKSDXrQM63e{%O$h60vNjdizezxy+j+Y-XBU3^{lnB&%$ z1uM;w?vSXUgg|fE9LPr~M4$A(lOT4>N6>^41;;;5m4E} z&zt*vQD24=XxD46+1#D?h099OxCcX7=Dmt{V8^a4-7|mkaar!SV`qQVHD%wC$11G$ zi55_$(w_9{s%PHA)-Lj|_^ASrAEDj(Btt_dKKh|%voJB?1o?X0@*R|K+uU%;C6}y4 z1`p9sr`8j=bq#Gty;`qIwEcg+2M6{m0N;Z-cYNf01McBfoj(!5aR420>xCCy*c1S< zWuU^+B~btt9{=cvEMz>s9}{1!L@yx}h$Z+Gtq2`0?+A|)ls+t3QvhrF5~8I52uy9# zpl;_WwlRIoBabKrfTcPX;xR4n)SK!StlV1z6#!a;frCCc!aMpcZ zV5xBJsqSe+&=XhCF}BYIbiqQvG3d&7Ous2O?O7x!&#h}LdjW^KdLYs)lM+V-nBJW{ zj+O5-!B^UVG+fIi)a9*UJ2JwAHE5mJT}?W9JmXnn z%+KKS=F+!M7z$LWId#&q7ck@Er#{l6r$$Shg;f%mG%7{0a)|?H(vEhr&`1oE_!%Bz zVq^A85Ws7Kp@-uvU%rg2P(q-`VGk{L)9Nwc0^VB;?c*dy`hvqQ(&7F;YX!j(o)`^ zQnXs%`i}OqpFx=Fi+xGOONF)dQ|r+B3516qrq^?zN6U72#KRB8<8au*MVDTaojs@T zg|j;3?2j@u1>oyn|N4Pk52LiMpq`I~hHILP{!!91$Yt$U0PaES^%F&W;g%sRXRo{N zx@9N;c0TX*lI$L2ct1v!X1AR+xSJWWBf>*)@R>nj65yzZi^9?S2IDn>)4ubdf1c~T z{+Mg!Jk+gNUbEW;%a+exQSb7yZL@m8*EdFSID|uocI(m>kb1?x(IU(W0&Ox`%TyuS zw#YTEwNZ%r?F2c23sfs$Bd(w+jqQkC<2F7Cs{VGbeXZ7j3h}wM2#hIL;0N^JYSlNF zIOq}NTIebOnHcDh2xIcG`UNh^wGI3>Z$ELJQ%1nbBd`=mwobfuH@GD{3A~d zhaS4NTe)&s>fQQN`<8|T>G48(tRQ^UqfvD&9(sT8HVFOpMU<2%3iJW<^~0`!BkR_! zotlgoCF91fHTPI@$-uwR%WQhBNQ2%2KN#f&F4hCuYd1KpTdhH#D`W*1#=xCS zhL9Av1=O}QPGRgy0wU$3b*m*Nkho2)Vj#X=lL9>zhGLodPqJ~%7+T?~P#byMfRU0$&|t8gQECNL?*#m4XHkwwsEE z-wqE*uaod5T;50h^+>n|eHRl!w{PE(9ry$~6{)r}qG=j<-?7g_QFJi2;R+A+$Qa*` z!%I%s%$Bx&{Tf|9^Bje_xmwL2zqRsgSL-2N`A9SO_Jqe+_9#{5?HD7yXA8IwzqH!k z0-!q;PIgmEm%u|-KX9#8uY#df>_^&gBU9h)84iipz_zmScy6DNU&5rD3hBYp;j$ZA z&i~3~#$vsFt#-(dyYXk~k~*v5Vl6R!=Z77)Ov&()u#)oyL3SWOnrttPr+Z zP6UVNOzSYfA?sIg;LuIn%cHyXCwccVZ{D&UAzrh&EmiDJ;gq2)&8d4R7wwJ^qAsvm$W;>QOw5up&A|rGZAEAN__EyH6mH+>@cOGzdRdwQj?@gacZzKdTfdC#B(Sb#-0E{j3ES6$|dFYsIdp0j2j8Af$(o5Yl^@lUVu%2r8q27Eb6Ve|*?b(b%UX&a40qUOjf6!WC`&mzqAUNe2muZbp z5PTRY%W|Xs5#hixWmtX_=MncY>+8lnzPB$b1dtLuM0gIk5iZh+bDwKzuW^$9qMgo4PL z!m1JaiB<`PRU0g7OZ!nILV-myIgTfO=l-n|r|ze^ru<;8PLMErXNooyscp?3cK`9_UWQ)2iHu0vwx;o5o> z8WfwmzljV!;sU# z|J2q;%x~`Ejj2n{JBbXa0GY*Qqx(>pFsT8n!Aamz7lhL*L^EjZ%zw&=d@k|yUM3Yk zlVP?qIP`f8)0ED)9DZkhxL}31!0c#3UGm`g?dIf4gwD8B8?Uy2bh}>0Q9*C0MPEi(GNcc z%P~S@QCL=~qi$Wq(2Iqqk@`kjw{2`W3Ly#?3KAg?1r2e_X+ELJX=B@W{i=od^Kk z$Mz5iMw&3dWh+;%bXUMZIiSKEE3j|gUYBJFQ*%XGaakZDQt$i`Gok1TK@O(i=w%@C z5FiP^r)fMRdK3{Fsgrr~ms4#}hU>g6`wp<}ePwl;;us3o!!RFoDbC=reso!|MrOUt~W3axH8Yk15u(FGi~HG63vT;NNyx?OIq`m5rn*i6Dvlu z+ADbmSQH|(Z14_WwlMu5BabwC^N-T%aH!K@WO;~u5?pKEF5plnvIH#Z?=2c(VWuRQ zkS!<1gR2j0MYV0j4DjrDJ023@9d}DkBaYEflLI~g*(xg&DFr#;Or#pB*oa01(NKV36OTzlX1QZzeK&e)Adkqz5Ol)y`z}7^V|a zxklG7a>O*i`@wcF<^sl~!7K?Z!!m0emJs@Pu+`;A!kY*HUBtdYALh=TTf}_fg%G0J zHEY(KxM$Cv!gx2TE@m@elF39TVuIhaWm|gP`mKc%$DIxXjI?2ij;BW;pn*a~#5jHy zUgrM5vU&zO(!f8bx%#Dd?c6<*QmaJZ$5!2 zLwy55l_2xp=Ru$$50B_KjD>fRnK}v;9BX{-dBH()MIuUV5~7Y)7kP72CQOfo>*S^O z88HHxC;*Ws-vC_r3j_0z`KblxpPHqpkNg+R+xh`#TnAyWOof)OJW@?eIk56cf*HUn=Op93}iBBp`JEP4lAVlfC3 zfrI(AHI3k~9=?mq6L$Mu$M=!IB=-|taob02q-8+?BD5p#v_grCz!ZfEIJ9gCdr{c4 z0Wk_;3?@xltqBn>wWi2u*R0zX%F&6nyN9a{JT`8w1tsYMw$27T`xb%@^$alP@e=1P zeBv-_e1sO5yU_rH#Otp-&cv8?@+Y5!Z~WH7zfHiqX5H3+Sf?=t>tWmL2e5nh?!wip zSC5-CY0`SEQWrv_r=NfR`GdD&{oEjl0MIprJ9ct4H8qUQf)Nm*wk=z>1oOYoIinHQ zwY&yIDv60qiX*eTsxDZMp%bAVz6->Lm+>`Eiv#R2F^bd0R|loQ zl2DmNCc9-@wRf2!m_aVToXa;|In-Q+4k3zKV?%0B4Ur4cZ&` zhHrnk)%Iix&h=){`UEI2DTRSNbFp!=!K?t2AambvF=p;c=cF6Q&cgK}$7qVF?EUODbheDHW zY_(-tbeaH|Z7g1x-a$gs*TY~tZZT|lUWK3x3|IUGp$B+FiKMrDY8Z9CP=B%_I~kl? z--h&*C3Du?Z(jNu$cRJP)ZfE<8N19hngPp@1OQv&Z`>eIOHN9x* z%HTz-)8t@2s9Wf=n>TMBLmyfL-bOI(B~McT5EH&nj!rO;2mqZRCw@ggqi^9?Tu|Wp z{~?%$8=ijp>EHku&qc*)2h+8xI@-JZ(I=kGzVhYMpmVtbHPQUIf)GWuksvwL{2hke zL53B$$$!gt@yCoqiE%U@BZA!2lFQDVyDH>T1q1KNVMthyHJd7lDR4q4H-ejo!fCnO z%3K1>+{f_w%tI#xEe2T#u)=^0OQW>!;gNyphPhz0KQoazx55MiS|HRC;_$hnCO|05Vnlwc!U<~rc@~72+V`u zfqBcIn1m*qP%m-n(n)uji+nB+MqswKx$k7&&Y4HQBlEVa4y>DkP$&}^gkK>eG@1=3 zbLU4e$y0az6U1ASdnD~SjL3bYDw(F39*(od8l!C>Zu&Ol}V$+*QTx2t#>~-zj)+Oys3K_h$P+_ zaPhLuKoV)d5fg}-LmDrPG6kIvC92jVTzMlw^|y>rM(rFsHTO-ZSI|0PUe-~AYuHGJ zOik}nFqvb-U?R`|uoN*6ZkZU23j%C*;!`Hr5WuL3&x&3smjV7 zDNLCxN2^0KZw#kQT3F3PrX5=cTmt4h;kR-!Z($U2=Y;titN;otrVGrT@|!4EtAl3l zz+6b_cQO?n^MWOW`WCw+5oTz(VvOHd10sjOQg+qzR7fgxMS{W-Z7m$0u~u&%C@*K( z9V;m8KjJIY0~`iNNXnG)``qt+7ELc`ey5G7vTy}q1{lS&`17>AXc7G2C=crZ$%58i zia=3H9U?&^>Z`14A#d}_Gf(>>zwNuNZA~out4?j*wk1Uf*{}q#x~7J@E5&Y}vLO-NvKd|0Tuh@?wJTlg(l=ya90!)b6ASl@m;?x}zL%Wc#*KhzP=*ulyy4nW? zqel$~cE|DHJ-|(<94i4vNt5X}CG?S?m{F^I#RqTw`UCPr0O$gi8AN)?+o7gGEbDMQ z8M9%-hLWK}hXz8{g)9bS5}Aa7U^p`OJiGv6QP9SGWH7r*ETa=93Ncla2wE&uB-{s< zBZHN&NAt50v5|1f{6LokiFZ1Wc}lb}qP9IS<5_Wu#oD>(?h{Y}jtTFob=y;Q^-VAw z*2}Y|UTr!EE=H4MF1I)zIWJ~#!eHTnm?|Z3hTjm`;F%5+FtCu85Y4S#o7AM`Or#8T zMWFErVP?TcxQ8eQvpeNGRqs-~uoj#0WLzyUeCNf@vp|n`;0>D#;jE_SFP)AUfXntG zUkvAUEk9b(kV!Q*G{OiX!60Jn5yKE}wc{2Ti)XYkP9(@FJVZ=HLB#gb+5oPIqi?w- zEJ=%xAPCT220U^Jqtgm{+iS)zFLQ@OG;uU=nUPE<&d28+4+WeCOzV+A!}iAf4!DCc z8MV+@1GNY{4b}%QM*X>>WulP)YF!ixV&)YITL?DbSZjlaO;?H#Qih)W%a0Gz5`NuxXk$!CEGr9WuW}2R|Vu6h&SIAUQl1Y2Ip^vc;5J{{i zLR=*1XsL+zx`?bM_U32|+BL;P*c*X7c2(82{`RifCP?kt)AdcbOg|70$FMY5S}aYL zHuG$nw3Tnwps#t?=Q!aYyKdiElX5Tf zTmI*c;#a@otmd<)om5bRrb;~_%2ozK!%fhK0u$U@!FG)V24EV0`;GT9g_tq;TMf1p z&1(MA_02!H{lSuPqsrJny-T}p?k%vxokVfW@Z!|k&DDfe-IW?MYGNo?CZVh*=)q*l zjRJ`dR@TY)F7g|L`byVVj4{M8@jTv7T}MzA?Xyp6DU^9C{jz zC*VcR8B2>yG2=Y8dB7M0tlZ1^WW>(j2kSv|BgM4@;X)>%$=<8^YaYiA!#yD7VGS8_ z@9zLBa4KYFagfv^O6|!zY8x#W3K=mzLV7YV??_N!8)P#F0tQ~T)*s<9D%Yrj`Wqnn6-1hU1HX;UuK-k9QXb&3yuI++k0ShrXV#7U4Fc4$eH7|K z`SeTu145jJ07--oZ{s?dpUWMEr4Hev2J^p`5Mj1%K}c!=7vMAmjRGE!9ko5>iv!a( zARI1Ux+auTA2IQ8-`zh|H4Uk;qbk@M`+=f2U2{qEnP;3>;5N>7N9!8(%WxOr0uV$= zXdAAM#|SLPsRFvNnttyQ*FAj0_jBg0Xq`2CQQ7!$!--j$~R2gY9 z_1(z*Zo28FfFsPeQy7#*m{Bte7cLz1^Zy-DT;CWN zQRd%o{#9oC&Z?$j%%9F_2NNh-kOU?&FGpI31f}BtFNgV~nTOL5y=dH^I+)DCdE`{bbLyuMU{!VOD`pRY z3<8FZhFQ$$EikDTv|A&`X{Ase~Dji6_kT@TyPdek@6 z2NS)q^VPRKY@SPVAEvK8w?{TsWv17P?l|3|zuyM~ii{NXR|Npss$ z&X&OXUucE1FUD=+H9mu25G+>;3NU@<`E!IRHhzS^LwhKw(?`NI3Td_SY};Ag^trFx z?)t{m?xR5aw;mp`AHaeI3&u#B>2rnj*D1ccDNnn-PmTj)AQ1o#jFV}s$j6joaLxXeUXsdvdWg)!V^2&fqIAyj$00;y*S_3Y_ zlkqDCS@&4rvF=e_i7w|HKlAjK9p>FbS%xZxJj2|e``{Jk2=g%na2cj`r(xWx*K0At zfqAPvi%&xV2UvLKb2+M48AJ)+l(1`Hfx&~YaA>lZQ8_0b9Q(*ai-KByv4R41(c2we zm~1?SMgb$jTM#M&Q*nu0#5l#Br}+qvf>R-Q3R5j&LgA1K$#|TrmPuDt*QBbds@uZ} z`@LyoNY0}_ zYO$d0W&ZT4b};Ot_Bn9|m@Pm1?L(=`9hHS+Mhyu|0oxM}@|&0jKmYvm3IKHb%rM$` zs?~~V_aLugpMoEW`F&c%pwB#r=@6Xb8B7hUSFavPXRDBqp>+h|V9?i)3T&;c388s^ zc>Dcq2v^kf&(~eiR9;q4LeP*v*nGYcA{m`;-P=G@a*IxR z*``2*BU3xy!DxgW7#$&d0S7X3=}RRCLalI zVYwZ3)wC~cGFF8aL+q;Io3{tALS5CegUWg3fS;^SZBO0##o0pZgG-q8r z68cbppL^TfqvJLBPEfz7Z&>F%{9LV%ZN&F&xBvRVwjcleucZ?xXG=GBEer(?@ITZu zEiINNuUfTg)Vb%LTf?ai! z6*)ADXjC2|kHPYK^R{ZdlZU6i`{TcsY}mT9>0|G|vhhVHj4EM3rCTwH>IAs&0Yl?~ zL@6L55Tl6b2WP^f!rZzIl})#N|F7x$9-db+VeHV0m{mRj`Ow$!ig zT-^4mi%)5tIIg0w6qkMHYD1*7JmCx)6@*{rUtH*tuP7K!AgE~2G9#x5bS{jT0h%H_ zQg=6n0_T`zP!d~M11I&y$xz0rb}XSbkFcH`!mDeDmRJ*pGE5inq>$wMU`^&b@g)tSna?}|ljPg@&@Al{gc`0{U{*k|eoStVAB+HorZ}TXoty%U)=Nfe{%Wt`d+OB0 z>I4~}PKlNhw0(+pOJH~*+CK1x@_ESjp-TLgL6c3uOEaeMfHQu}AoKO}_Gl~UJ z3Mi4KBnNvFW*NLwFbXon!$Ht$Fn}F-M`S5r-14;qfZtYdVmRcuEv=pPD8dS2SxzOm zv{U^0TwEv&2)?0nv6hFO0~Pzi22`XAf-4F153qen$v<#OKH|lEwQ3dNOxnPF#B-~+ zn5fWYsNVF(v2{mvYTTHL^uPYUZG5{aEMUBJ=;+cYarT!i16d%0#;tcFb$A-;1A^789M-je)jdg*wMg+rWpO zmLjXSnrg74>jm&90>BGUviAX;_nK-M4UUfW0nn|Q-#dwe|g{cGFlB;VPTV~E%(ssk= zf1;atfl~~<$^7Fo8}R5ZFD*#_`1em0b7uek+Vfg3zi?9PqzOX`%8T0|qAi99%`=K< zZZ+2OBF08eYKxM6u09Lqaes3!QI&kCld0XRk*e4`pPpgE8BO8_jWM!a3CzqxZBavl z%scoH1PwK^I;izqj;jI8+cF|XMKR>*eGC^r+nJeZE!%gVrj4}j$OIo-3H)9!czqpw z?{k@9a2O2CH7_JsFAmdNP9*fme53p=PX_3>;UJOPvr`GaOM?WbSN2*NA|a)qIGVQb zJM#+DC|sq(WEbGhz_8W&eP%pC=Xx}?*o6D=<;Pu05Nz4?XuB86Bt`+*0${k1N8c5U0e zk1R<4{?3_2L)p!*a(5I%BP2M?KaQoHyBpXcb4dCVpS`VYtO>aYSJGWYJ2{HXb{ z8Pn$I5ym)gD7^mPe_D9%*{8O=`|mDle#z-4<;IN}!ZamYj+RJfIQc7sWQmk9#&esu z?`c`QY(x5|zn@jGe8t)_EzLuRl!hsWzCw^O0Y(jzA!IYZ{mcAf&fFz0J-PL&izhXm zamtv?n9*g0I3c3!DT@G*+Icu-`!Eif2Z!2d(70hnS)vn4Jk+LKPFN783)Iy490o5l zF=&p2SEiv&z)e@Yhn=Nbd9JO%d0Lm!krfP$e8@{juV4kBOik!*tTETh;Lmn9CKa>B8`k!KM4hcCbWJ-$y#PGtLxtYBlDlz9ET|m za1n$n%848UkpMVgRn!msSY0bgH*(s-%oIdi8YuHu2ncOpLU^%x>d+SFZ|g;f63++% z2x;Qh`uLqp)7@d^omtvj!OJ7G7yburFnL{Fc>){}!h?{*^2k(EL3Zo5U9Afiugcx= zmzkNFPd;PkNe?YAO4SfQqqh(H!S>3!)bZm-q`&^%-(|UzI63|5t18*S^6KzHw*`2$qS|6W{;QiU}1;Kj)J_ehPLe0M;{$pB{mF3<3^3TBE9vaxk3aq{=9#X2?z!g*-~H})|1Hma zo|noG^6^pdSTFlABg;F^*=H}mXj=Ayb5CnJ@%WLfaKms7J;Iy0ZRNV{*?EheFMeX) z3aMGt@2+RU#y@q=$!~x5Sn34O`hb43l67~EiRFYi{z^O?G9HBkg(n%a zUia49dGR9mo#<B1=M));xj$1FS)tM?etvH2uo@!JZLnBHRl&zG@N9gC9U-*@*HG zudXD)fshp%5l)@*0nwPU8ei0Kx;)8EvcA zZ*841dvWTPAKhKpT3r=PAjgdv0=`=jiu>O3cih-vsclRPcuYNga?5pZyCQqql!>{M zP8gfUr>2;8W_RKs1lokb$7b!it(j+*ugiV?wm%ov)mFLsG&O8k1(t=uzurF}qLV-N zrF=VQZ@>NaKb?O1>8RkcsGQnM+1i`sELO8{B~xc6+p(N0MHy5 zrSB!UG8na8@0}|SOiu;|zxBQt^Ri}cUIk_qm<^28(7ak6TxHQ zi?|ZNa?D$}6hxxc3DI&i*|V?WIx6Ty&U`X?@40FeB2mBx_d(-U(+5}PFL=RR&%CwY zDge05&u_FSXsTBr5l6xyQ&xEK8_SFQ1tQ_ZdRnGOZx zY4Vr9{N)+fTyxC|wry{rZ{Kk7#TOfF#DUQ{;W{?Z^nzO2(UYSS3}8-j4mpEFnO?JI zO)&pMFzifrs$=4CP4p%l1SQBi-BmCL8l1$!u!4|7oHYm66Ud|i?X9*KyrT~Xu{Mq& zhCO98qlOj1+*&h#dHC64&RkJxdG;UQbbiZ)XTKdL_6B9p&@gzM8a*JmRSck(U>W^Ar}BSV#uMR38))S6*x9_A_IZUf&;GLXMzso_R+ zF23gzU{)w#nub{T?r4-whv<*wA6XiLmQ9|p+mOG4Kw~{?r;VEoW%%YmAh*2^p7-gp7-maK%~chF{=FNQA6oYtpzJrZ%A

-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

@QSa= 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/developer_options.xml b/app/src/main/res/layout/developer_options.xml index d20ea813f..5e9d47299 100644 --- a/app/src/main/res/layout/developer_options.xml +++ b/app/src/main/res/layout/developer_options.xml @@ -300,6 +300,51 @@ android:textStyle="bold"/> + + + + + + + + - \ No newline at end of file + diff --git a/app/src/main/res/layout/navigation_bar.xml b/app/src/main/res/layout/navigation_bar.xml index f201c779f..96e717a70 100644 --- a/app/src/main/res/layout/navigation_bar.xml +++ b/app/src/main/res/layout/navigation_bar.xml @@ -40,6 +40,13 @@ android:layout_marginStart="10dp" android:src="@drawable/ic_icon_home" /> + + settings_console_logs settings_environment_override settings_environment_multiprocess + settings_environment_servo settings_desktop_version settings_touch_mode settings_display_density diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4cf08a55f..bbc89e735 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -31,6 +31,7 @@ Redirect Console to Logcat Enable Environment Override Enable Multiprocess + Enable Servo User Agent Mode Input Events Display Density: From 776594123e2adba8edeb555ed1135ba99c7029a5 Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Thu, 27 Sep 2018 08:00:07 +0200 Subject: [PATCH 2/3] Servo build system --- app/build.gradle | 12 +++++++++++- servoview-local/build.gradle | 12 ++++++++++++ settings.gradle | 7 ++++++- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 servoview-local/build.gradle diff --git a/app/build.gradle b/app/build.gradle index 8b5d95fbd..974d2c930 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,6 +33,10 @@ android { } } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } buildTypes { release { minifyEnabled true @@ -210,6 +214,12 @@ if (findProject(':geckoview-local')) { } +if (findProject(':servoview-local')) { + dependencies { + implementation project(':servoview-local') + } +} + // ------------------------------------------------------------------------------------------------- // Dynamically set versionCode (See tools/build/versionCode.gradle // ------------------------------------------------------------------------------------------------- @@ -245,4 +255,4 @@ android.applicationVariants.all { variant -> println("Build type: " + buildType) println("Flavor: " + variant.flavorName) println("Version code: " + variant.mergedFlavor.versionCode) -} \ No newline at end of file +} diff --git a/servoview-local/build.gradle b/servoview-local/build.gradle new file mode 100644 index 000000000..ce6b1de3d --- /dev/null +++ b/servoview-local/build.gradle @@ -0,0 +1,12 @@ +configurations.maybeCreate("default") + +if (gradle.hasProperty('servoViewLocal')) { + def aar = new File(gradle.servoViewLocal) + if (aar.exists()) { + artifacts.add('default', aar) + } else { + throw new GradleException('Failed to find ServoView AAR at: ' + gradle.geckoViewLocal) + } +} else { + throw new GradleException('Local ServoView AAR path not defined') +} diff --git a/settings.gradle b/settings.gradle index 0dfc095cb..ebe65d64f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ -include ':app' +include ':app', ':toto' def wavebuild = new File('third_party/wavesdk/build.gradle') @@ -23,6 +23,11 @@ if (userPropertiesFile.exists()) { include ':geckoview-local' project(':geckoview-local').projectDir = new File('geckoview-local') } + if (gradle.hasProperty('servoViewLocal')) { + println("Using local build of servoview") + include ':servoview-local' + project(':servoview-local').projectDir = new File('servoview-local') + } } else { println("FILE DOESN'T EXIST") } From 0b3d03438953ae876b5dff556aa82059d744fc24 Mon Sep 17 00:00:00 2001 From: Paul Rouget Date: Thu, 27 Sep 2018 13:13:59 +0200 Subject: [PATCH 3/3] Browser wrapper --- .../org/mozilla/browser/BrowserDisplay.java | 13 + .../mozilla/browser/BrowserGeckoDisplay.java | 29 ++ .../BrowserGeckoPanZoomController.java | 22 + .../mozilla/browser/BrowserGeckoSession.java | 160 +++++++ .../browser/BrowserPanZoomController.java | 9 + .../org/mozilla/browser/BrowserSession.java | 240 +++++++++++ .../org/mozilla/vrbrowser/SessionStore.java | 403 ++++++++++-------- .../mozilla/vrbrowser/ui/BrowserWidget.java | 107 +++-- .../vrbrowser/ui/NavigationBarWidget.java | 45 +- .../mozilla/vrbrowser/ui/SettingsWidget.java | 6 +- .../mozilla/vrbrowser/ui/TopBarWidget.java | 7 +- .../org/mozilla/vrbrowser/ui/TrayWidget.java | 10 +- .../ui/prompts/ChoicePromptWidget.java | 16 +- 13 files changed, 815 insertions(+), 252 deletions(-) create mode 100644 app/src/common/shared/org/mozilla/browser/BrowserDisplay.java create mode 100644 app/src/common/shared/org/mozilla/browser/BrowserGeckoDisplay.java create mode 100644 app/src/common/shared/org/mozilla/browser/BrowserGeckoPanZoomController.java create mode 100644 app/src/common/shared/org/mozilla/browser/BrowserGeckoSession.java create mode 100644 app/src/common/shared/org/mozilla/browser/BrowserPanZoomController.java create mode 100644 app/src/common/shared/org/mozilla/browser/BrowserSession.java diff --git a/app/src/common/shared/org/mozilla/browser/BrowserDisplay.java b/app/src/common/shared/org/mozilla/browser/BrowserDisplay.java new file mode 100644 index 000000000..607c4e033 --- /dev/null +++ b/app/src/common/shared/org/mozilla/browser/BrowserDisplay.java @@ -0,0 +1,13 @@ +package org.mozilla.browser; + +import android.view.Surface; + +import org.mozilla.geckoview.GeckoDisplay; + +public interface BrowserDisplay { + void surfaceChanged(Surface mSurface, int aWidth, int aHeight); + + void surfaceDestroyed(); + + GeckoDisplay gecko(); +} diff --git a/app/src/common/shared/org/mozilla/browser/BrowserGeckoDisplay.java b/app/src/common/shared/org/mozilla/browser/BrowserGeckoDisplay.java new file mode 100644 index 000000000..70b62c7c1 --- /dev/null +++ b/app/src/common/shared/org/mozilla/browser/BrowserGeckoDisplay.java @@ -0,0 +1,29 @@ +package org.mozilla.browser; + +import android.view.Surface; + +import org.mozilla.geckoview.GeckoDisplay; + +class BrowserGeckoDisplay implements BrowserDisplay { + + private final GeckoDisplay mDisplay; + + public BrowserGeckoDisplay(GeckoDisplay geckoDisplay) { + mDisplay = geckoDisplay; + } + + @Override + public void surfaceChanged(Surface surface, int aWidth, int aHeight) { + mDisplay.surfaceChanged(surface, aWidth, aHeight); + } + + @Override + public void surfaceDestroyed() { + mDisplay.surfaceDestroyed(); + } + + @Override + public GeckoDisplay gecko() { + return mDisplay; + } +} diff --git a/app/src/common/shared/org/mozilla/browser/BrowserGeckoPanZoomController.java b/app/src/common/shared/org/mozilla/browser/BrowserGeckoPanZoomController.java new file mode 100644 index 000000000..545d899fc --- /dev/null +++ b/app/src/common/shared/org/mozilla/browser/BrowserGeckoPanZoomController.java @@ -0,0 +1,22 @@ +package org.mozilla.browser; + +import android.view.MotionEvent; + +import org.mozilla.gecko.gfx.PanZoomController; + +class BrowserGeckoPanZoomController implements BrowserPanZoomController { + PanZoomController mPanZoomController; + public BrowserGeckoPanZoomController(PanZoomController panZoomController) { + mPanZoomController = panZoomController; + } + + @Override + public boolean onTouchEvent(MotionEvent aEvent) { + return mPanZoomController.onTouchEvent(aEvent); + } + + @Override + public boolean onMotionEvent(MotionEvent aEvent) { + return mPanZoomController.onMotionEvent(aEvent); + } +} diff --git a/app/src/common/shared/org/mozilla/browser/BrowserGeckoSession.java b/app/src/common/shared/org/mozilla/browser/BrowserGeckoSession.java new file mode 100644 index 000000000..ceb0d91af --- /dev/null +++ b/app/src/common/shared/org/mozilla/browser/BrowserGeckoSession.java @@ -0,0 +1,160 @@ +package org.mozilla.browser; + +import android.graphics.Rect; +import android.net.Uri; + +import org.mozilla.geckoview.GeckoRuntime; +import org.mozilla.geckoview.GeckoSession; +import org.mozilla.geckoview.GeckoSessionSettings; +import org.mozilla.vrbrowser.SessionStore; + +public class BrowserGeckoSession implements BrowserSession { + + private final GeckoSession mSession; + private ProgressDelegate mProgressDelegate; + private NavigationDelegate mNavigationDelegate; + private ContentDelegate mContentDelegate; + private SessionStore mStore; + private BrowserGeckoPanZoomController mPanZoomController; + + public BrowserGeckoSession(SessionStore store) { + mStore = store; + mSession = new GeckoSession(); + } + + @Override + public GeckoSession gecko() { + return mSession; + } + + @Override + public boolean isGecko() { + return true; + } + + @Override + public boolean isServo() { + return false; + } + + @Override + public ProgressDelegate getProgressDelegate() { + return mProgressDelegate; + } + + @Override + public void setProgressDelegate(ProgressDelegate delegate) { + mProgressDelegate = delegate; + mSession.setProgressDelegate(delegate.toGeckoProgress(mStore)); + } + + @Override + public NavigationDelegate getNavigationDelegate() { + return mNavigationDelegate; + } + + @Override + public void setNavigationDelegate(NavigationDelegate delegate) { + mNavigationDelegate = delegate; + mSession.setNavigationDelegate(delegate.toGeckoNavigation(mStore)); + } + + @Override + public ContentDelegate getContentDelegate() { + return mContentDelegate; + } + + @Override + public void setContentDelegate(ContentDelegate delegate) { + mContentDelegate = delegate; + mSession.setContentDelegate(delegate.toGeckoContent(mStore)); + } + + @Override + public void loadUri(Uri uri) { + mSession.loadUri(uri); + } + + @Override + public void loadUri(String uri) { + mSession.loadUri(uri); + } + + @Override + public boolean isOpen() { + return mSession.isOpen(); + } + + @Override + public void reload() { + mSession.reload(); + } + + @Override + public void stop() { + mSession.stop(); + } + + @Override + public void goBack() { + mSession.goBack(); + } + + @Override + public void goForward() { + mSession.goForward(); + } + + @Override + public void getSurfaceBounds(Rect rect) { + mSession.getSurfaceBounds(rect); + } + + @Override + public GeckoSessionSettings getSettings() { + return mSession.getSettings(); + } + + @Override + public void setActive(boolean active) { + mSession.setActive(active); + } + + @Override + public void open(GeckoRuntime runtime) { + mSession.open(runtime); + } + + @Override + public void exitFullScreen() { + mSession.exitFullScreen(); + } + + @Override + public void loadData(byte[] data, String s) { + mSession.loadData(data, s); + } + + @Override + public void close() { + mSession.close(); + } + + @Override + public BrowserDisplay acquireDisplay() { + return new BrowserGeckoDisplay(mSession.acquireDisplay()); + } + + @Override + public void releaseDisplay(BrowserDisplay mDisplay) { + mSession.releaseDisplay(mDisplay.gecko()); + } + + @Override + public BrowserPanZoomController getPanZoomController() { + if (mPanZoomController == null) { + mPanZoomController = new BrowserGeckoPanZoomController(mSession.getPanZoomController()); + } + return mPanZoomController; + } +} diff --git a/app/src/common/shared/org/mozilla/browser/BrowserPanZoomController.java b/app/src/common/shared/org/mozilla/browser/BrowserPanZoomController.java new file mode 100644 index 000000000..3b88a27a2 --- /dev/null +++ b/app/src/common/shared/org/mozilla/browser/BrowserPanZoomController.java @@ -0,0 +1,9 @@ +package org.mozilla.browser; + +import android.view.MotionEvent; + +public interface BrowserPanZoomController { + boolean onTouchEvent(MotionEvent aEvent); + + boolean onMotionEvent(MotionEvent aEvent); +} diff --git a/app/src/common/shared/org/mozilla/browser/BrowserSession.java b/app/src/common/shared/org/mozilla/browser/BrowserSession.java new file mode 100644 index 000000000..45ae8a172 --- /dev/null +++ b/app/src/common/shared/org/mozilla/browser/BrowserSession.java @@ -0,0 +1,240 @@ +package org.mozilla.browser; + +import android.graphics.Rect; +import android.net.Uri; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; + +import org.mozilla.geckoview.GeckoResult; +import org.mozilla.geckoview.GeckoRuntime; +import org.mozilla.geckoview.GeckoSession; +import org.mozilla.geckoview.GeckoSessionSettings; +import org.mozilla.vrbrowser.SessionStore; + +public interface BrowserSession { + + boolean isGecko(); + + boolean isServo(); + + GeckoSession gecko(); + + ProgressDelegate getProgressDelegate(); + + void setProgressDelegate(ProgressDelegate delegate); + + NavigationDelegate getNavigationDelegate(); + + void setNavigationDelegate(NavigationDelegate delegate); + + ContentDelegate getContentDelegate(); + + void setContentDelegate(ContentDelegate delegate); + + void loadUri(Uri uri); + + void loadUri(String uri); + + boolean isOpen(); + + void reload(); + + void stop(); + + void goBack(); + + void goForward(); + + void getSurfaceBounds(final Rect rect); + + GeckoSessionSettings getSettings(); + + void setActive(boolean active); + + void open(GeckoRuntime mRuntime); + + void exitFullScreen(); + + void loadData(byte[] aboutPage, String s); + + void close(); + + BrowserDisplay acquireDisplay(); + + void releaseDisplay(BrowserDisplay mDisplay); + + BrowserPanZoomController getPanZoomController(); + + interface NavigationDelegate { + void onLocationChange(BrowserSession session, String s); + void onCanGoBack(BrowserSession session, boolean b); + void onCanGoForward(BrowserSession session, boolean b); + GeckoResult onLoadRequest(@NonNull BrowserSession session, @NonNull String s, int i, int i1); + GeckoResult onNewSession(@NonNull BrowserSession session, @NonNull String s); + GeckoResult onLoadError(BrowserSession session, String s, int i, int i1); + + default GeckoSession.NavigationDelegate toGeckoNavigation(SessionStore store) { + return new GeckoNavigationDelegate(store, this); + } + } + + interface ProgressDelegate { + void onPageStart(BrowserSession session, String s); + void onPageStop(BrowserSession session, boolean b); + void onProgressChange(BrowserSession session, int i); + void onSecurityChange(BrowserSession session, GeckoSession.ProgressDelegate.SecurityInformation securityInformation); + + default GeckoSession.ProgressDelegate toGeckoProgress(SessionStore store) { + return new GeckoProgressDelegate(store, this); + } + } + + interface ContentDelegate { + void onTitleChange(BrowserSession session, String s); + void onFocusRequest(BrowserSession session); + void onCloseRequest(BrowserSession session); + void onFullScreen(BrowserSession session, boolean b); + void onContextMenu(BrowserSession session, int i, int i1, String s, int i2, String s1); + void onExternalResponse(BrowserSession session, GeckoSession.WebResponseInfo webResponseInfo); + void onCrash(BrowserSession session); + + default GeckoSession.ContentDelegate toGeckoContent(SessionStore store) { + return new GeckoContentDelegate(store, this); + } + } + + class GeckoNavigationDelegate implements GeckoSession.NavigationDelegate { + + private final NavigationDelegate mNavigationDelegate; + private final SessionStore mStore; + + GeckoNavigationDelegate(SessionStore store, NavigationDelegate navigationDelegate) { + mStore = store; + mNavigationDelegate = navigationDelegate; + } + + private BrowserSession toBrowserSession(GeckoSession geckoSession) { + return mStore.getSession(geckoSession.hashCode()); + } + + + @Override + public void onLocationChange(GeckoSession geckoSession, String s) { + mNavigationDelegate.onLocationChange(toBrowserSession(geckoSession), s); + } + + @Override + public void onCanGoBack(GeckoSession geckoSession, boolean b) { + mNavigationDelegate.onCanGoBack(toBrowserSession(geckoSession), b); + } + + @Override + public void onCanGoForward(GeckoSession geckoSession, boolean b) { + mNavigationDelegate.onCanGoForward(toBrowserSession(geckoSession), b); + } + + @Nullable + @Override + public GeckoResult onLoadRequest(@NonNull GeckoSession geckoSession, @NonNull String s, int i, int i1) { + return mNavigationDelegate.onLoadRequest(toBrowserSession(geckoSession), s, i, i1); + } + + @Nullable + @Override + public GeckoResult onNewSession(@NonNull GeckoSession geckoSession, @NonNull String s) { + return mNavigationDelegate.onNewSession(toBrowserSession(geckoSession), s); + } + + @Override + public GeckoResult onLoadError(GeckoSession geckoSession, String s, int i, int i1) { + return mNavigationDelegate.onLoadError(toBrowserSession(geckoSession), s, i, i1); + } + } + + + class GeckoProgressDelegate implements GeckoSession.ProgressDelegate { + + private final ProgressDelegate mProgressDelegate; + private final SessionStore mStore; + + GeckoProgressDelegate(SessionStore store, ProgressDelegate progressDelegate) { + mStore = store; + mProgressDelegate = progressDelegate; + } + + private BrowserSession toBrowserSession(GeckoSession geckoSession) { + return mStore.getSession(geckoSession.hashCode()); + } + + @Override + public void onPageStart(GeckoSession geckoSession, String s) { + mProgressDelegate.onPageStart(toBrowserSession(geckoSession), s); + } + + @Override + public void onPageStop(GeckoSession geckoSession, boolean b) { + mProgressDelegate.onPageStop(toBrowserSession(geckoSession), b); + } + + @Override + public void onProgressChange(GeckoSession geckoSession, int i) { + mProgressDelegate.onProgressChange(toBrowserSession(geckoSession), i); + } + + @Override + public void onSecurityChange(GeckoSession geckoSession, SecurityInformation securityInformation) { + mProgressDelegate.onSecurityChange(toBrowserSession(geckoSession), securityInformation); + } + } + + class GeckoContentDelegate implements GeckoSession.ContentDelegate { + + private final ContentDelegate mContentDelegate; + private final SessionStore mStore; + + GeckoContentDelegate(SessionStore store, ContentDelegate contentDelegate) { + mStore = store; + mContentDelegate = contentDelegate; + } + + private BrowserSession toBrowserSession(GeckoSession geckoSession) { + return mStore.getSession(geckoSession.hashCode()); + } + + @Override + public void onTitleChange(GeckoSession geckoSession, String s) { + mContentDelegate.onTitleChange(toBrowserSession(geckoSession), s); + } + + @Override + public void onFocusRequest(GeckoSession geckoSession) { + mContentDelegate.onFocusRequest(toBrowserSession(geckoSession)); + } + + @Override + public void onCloseRequest(GeckoSession geckoSession) { + mContentDelegate.onCloseRequest(toBrowserSession(geckoSession)); + } + + @Override + public void onFullScreen(GeckoSession geckoSession, boolean b) { + mContentDelegate.onFullScreen(toBrowserSession(geckoSession), b); + } + + @Override + public void onContextMenu(GeckoSession geckoSession, int i, int i1, String s, int i2, String s1) { + mContentDelegate.onContextMenu(toBrowserSession(geckoSession), i, i1, s, i2, s1); + } + + @Override + public void onExternalResponse(GeckoSession geckoSession, GeckoSession.WebResponseInfo webResponseInfo) { + mContentDelegate.onExternalResponse(toBrowserSession(geckoSession), webResponseInfo); + } + + @Override + public void onCrash(GeckoSession geckoSession) { + mContentDelegate.onCrash(toBrowserSession(geckoSession)); + } + } + +} diff --git a/app/src/common/shared/org/mozilla/vrbrowser/SessionStore.java b/app/src/common/shared/org/mozilla/vrbrowser/SessionStore.java index 85e1689af..0b65dbd7a 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/SessionStore.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/SessionStore.java @@ -14,11 +14,16 @@ import android.view.inputmethod.CursorAnchorInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; + +import org.mozilla.browser.BrowserGeckoSession; +import org.mozilla.browser.BrowserSession; import org.mozilla.gecko.GeckoAppShell; import org.mozilla.gecko.GeckoProfile; import org.mozilla.geckoview.*; +import org.mozilla.geckoview.GeckoSession; import org.mozilla.vrbrowser.telemetry.TelemetryWrapper; -import org.mozilla.vrbrowser.utils.UrlUtils; +import org.mozilla.geckoview.GeckoSession.ProgressDelegate.*; +import org.mozilla.geckoview.GeckoSession.NavigationDelegate.*; import java.io.File; import java.io.FileNotFoundException; @@ -26,8 +31,8 @@ import java.io.IOException; import java.util.*; -public class SessionStore implements GeckoSession.NavigationDelegate, GeckoSession.ProgressDelegate, - GeckoSession.ContentDelegate, GeckoSession.TextInputDelegate, GeckoSession.TrackingProtectionDelegate, +public class SessionStore implements BrowserSession.NavigationDelegate, BrowserSession.ProgressDelegate, + BrowserSession.ContentDelegate, GeckoSession.TrackingProtectionDelegate, GeckoSession.TextInputDelegate, GeckoSession.PromptDelegate { private static SessionStore mInstance; @@ -42,9 +47,9 @@ public static SessionStore get() { public static final String PRIVATE_BROWSING_URI = "about:privatebrowsing"; public static final int NO_SESSION_ID = -1; - private LinkedList mNavigationListeners; - private LinkedList mProgressListeners; - private LinkedList mContentListeners; + private LinkedList mNavigationListeners; + private LinkedList mProgressListeners; + private LinkedList mContentListeners; private LinkedList mSessionChangeListeners; private LinkedList mTextInputListeners; private LinkedList mPromptListeners; @@ -52,9 +57,9 @@ public static SessionStore get() { private long startLoadTime = 0; public interface SessionChangeListener { - void onNewSession(GeckoSession aSession, int aId); - void onRemoveSession(GeckoSession aSession, int aId); - void onCurrentSessionChange(GeckoSession aSession, int aId); + void onNewSession(BrowserSession aBrowserSession, int aId); + void onRemoveSession(BrowserSession aBrowserSession, int aId); + void onCurrentSessionChange(BrowserSession aBrowserSession, int aId); } class State { @@ -66,11 +71,11 @@ class State { String mUri; String mTitle; boolean mFullScreen; - GeckoSession mSession; + BrowserSession mBrowserSession; } private GeckoRuntime mRuntime; - private GeckoSession mCurrentSession; + private BrowserSession mCurrentBrowserSession; private HashMap mSessions; private Deque mSessionsStack; private Deque mPrivateSessionsStack; @@ -165,41 +170,41 @@ private boolean isLocalizedContent(@Nullable String url) { return url != null && (url.startsWith("about:") || url.startsWith("data:")); } - private void dumpAllState(GeckoSession aSession) { - for (GeckoSession.NavigationDelegate listener: mNavigationListeners) { - dumpState(aSession, listener); + private void dumpAllState(BrowserSession aBrowserSession) { + for (BrowserSession.NavigationDelegate listener: mNavigationListeners) { + dumpState(aBrowserSession, listener); } - for (GeckoSession.ProgressDelegate listener: mProgressListeners) { - dumpState(aSession, listener); + for (BrowserSession.ProgressDelegate listener: mProgressListeners) { + dumpState(aBrowserSession, listener); } - for (GeckoSession.ContentDelegate listener: mContentListeners) { - dumpState(aSession, listener); + for (BrowserSession.ContentDelegate listener: mContentListeners) { + dumpState(aBrowserSession, listener); } } - private void dumpState(GeckoSession aSession, GeckoSession.NavigationDelegate aListener) { + private void dumpState(BrowserSession aBrowserSession, BrowserSession.NavigationDelegate aListener) { boolean canGoForward = false; boolean canGoBack = false; String uri = ""; - if (aSession != null) { - State state = mSessions.get(aSession.hashCode()); + if (aBrowserSession != null) { + State state = mSessions.get(aBrowserSession.hashCode()); if (state != null) { canGoBack = state.mCanGoBack; canGoForward = state.mCanGoForward; uri = state.mUri; } } - aListener.onCanGoBack(aSession, canGoBack); - aListener.onCanGoForward(aSession, canGoForward); - aListener.onLocationChange(aSession, uri); + aListener.onCanGoBack(aBrowserSession, canGoBack); + aListener.onCanGoForward(aBrowserSession, canGoForward); + aListener.onLocationChange(aBrowserSession, uri); } - private void dumpState(GeckoSession aSession, GeckoSession.ProgressDelegate aListener) { + private void dumpState(BrowserSession aBrowserSession, BrowserSession.ProgressDelegate aListener) { boolean isLoading = false; GeckoSession.ProgressDelegate.SecurityInformation securityInfo = null; String uri = ""; - if (aSession != null) { - State state = mSessions.get(aSession.hashCode()); + if (aBrowserSession != null) { + State state = mSessions.get(aBrowserSession.hashCode()); if (state != null) { isLoading = state.mIsLoading; securityInfo = state.mSecurityInformation; @@ -207,50 +212,50 @@ private void dumpState(GeckoSession aSession, GeckoSession.ProgressDelegate aLis } } if (isLoading) { - aListener.onPageStart(aSession, uri); + aListener.onPageStart(aBrowserSession, uri); } if (securityInfo != null) { - aListener.onSecurityChange(aSession, securityInfo); + aListener.onSecurityChange(aBrowserSession, securityInfo); } } - public void dumpState(GeckoSession aSession, GeckoSession.ContentDelegate aListener) { + public void dumpState(BrowserSession aBrowserSession, BrowserSession.ContentDelegate aListener) { String title = ""; - if (aSession != null) { - State state = mSessions.get(aSession.hashCode()); + if (aBrowserSession != null) { + State state = mSessions.get(aBrowserSession.hashCode()); if (state != null) { title = state.mTitle; } } - aListener.onTitleChange(aSession, title); + aListener.onTitleChange(aBrowserSession, title); } - public void addNavigationListener(GeckoSession.NavigationDelegate aListener) { + public void addNavigationListener(BrowserSession.NavigationDelegate aListener) { mNavigationListeners.add(aListener); - dumpState(mCurrentSession, aListener); + dumpState(mCurrentBrowserSession, aListener); } - public void removeNavigationListener(GeckoSession.NavigationDelegate aListener) { + public void removeNavigationListener(BrowserSession.NavigationDelegate aListener) { mNavigationListeners.remove(aListener); } - public void addProgressListener(GeckoSession.ProgressDelegate aListener) { + public void addProgressListener(BrowserSession.ProgressDelegate aListener) { mProgressListeners.add(aListener); - dumpState(mCurrentSession, aListener); + dumpState(mCurrentBrowserSession, aListener); } - public void removeProgressListener(GeckoSession.ProgressDelegate aListener) { + public void removeProgressListener(BrowserSession.ProgressDelegate aListener) { mProgressListeners.remove(aListener); } - public void addContentListener(GeckoSession.ContentDelegate aListener) { + public void addContentListener(BrowserSession.ContentDelegate aListener) { mContentListeners.add(aListener); - dumpState(mCurrentSession, aListener); + dumpState(mCurrentBrowserSession, aListener); } - public void removeContentListener(GeckoSession.ContentDelegate aListener) { + public void removeContentListener(BrowserSession.ContentDelegate aListener) { mContentListeners.remove(aListener); } @@ -284,6 +289,7 @@ public class SessionSettings { public boolean trackingProtection = true; public boolean suspendMediaWhenInactive = true; public int userAgentMode = SettingsStore.getInstance(mContext).getUaMode(); + public boolean servo = false; } public int createSession() { @@ -291,36 +297,50 @@ public int createSession() { } public int createSession(SessionSettings aSettings) { State state = new State(); - state.mSession = new GeckoSession(); - int result = state.mSession.hashCode(); +// if (!aSettings.servo) { +// state.mBrowserSession = new BrowserGeckoSession(); +// } else { +// state.mBrowserSession = new BrowserServoSession(mContext); +// } + + state.mBrowserSession = new BrowserGeckoSession(this); + + int result = state.mBrowserSession.hashCode(); mSessions.put(result, state); - state.mSession.getSettings().setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, aSettings.multiprocess); - state.mSession.getSettings().setBoolean(GeckoSessionSettings.USE_PRIVATE_MODE, aSettings.privateMode); - state.mSession.getSettings().setBoolean(GeckoSessionSettings.USE_TRACKING_PROTECTION, aSettings.trackingProtection); - state.mSession.getSettings().setBoolean(GeckoSessionSettings.SUSPEND_MEDIA_WHEN_INACTIVE, aSettings.suspendMediaWhenInactive); - state.mSession.getSettings().setInt(GeckoSessionSettings.USER_AGENT_MODE, aSettings.userAgentMode); - state.mSession.setNavigationDelegate(this); - state.mSession.setProgressDelegate(this); - state.mSession.setPromptDelegate(this); - state.mSession.setContentDelegate(this); - state.mSession.getTextInput().setDelegate(this); - state.mSession.setPermissionDelegate(mPermissionDelegate); - state.mSession.setTrackingProtectionDelegate(this); + state.mBrowserSession.getSettings().setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, aSettings.multiprocess); + state.mBrowserSession.getSettings().setBoolean(GeckoSessionSettings.USE_PRIVATE_MODE, aSettings.privateMode); + state.mBrowserSession.getSettings().setBoolean(GeckoSessionSettings.USE_TRACKING_PROTECTION, aSettings.trackingProtection); + state.mBrowserSession.getSettings().setBoolean(GeckoSessionSettings.SUSPEND_MEDIA_WHEN_INACTIVE, aSettings.suspendMediaWhenInactive); + state.mBrowserSession.getSettings().setInt(GeckoSessionSettings.USER_AGENT_MODE, aSettings.userAgentMode); + state.mBrowserSession.setNavigationDelegate(this); + state.mBrowserSession.setProgressDelegate(this); + state.mBrowserSession.setContentDelegate(this); + + if (state.mBrowserSession.isGecko()) { + state.mBrowserSession.gecko().setPromptDelegate(this); + state.mBrowserSession.gecko().getTextInput().setDelegate(this); + state.mBrowserSession.gecko().setPermissionDelegate(mPermissionDelegate); + state.mBrowserSession.gecko().setTrackingProtectionDelegate(this); + } + for (SessionChangeListener listener: mSessionChangeListeners) { - listener.onNewSession(state.mSession, result); + listener.onNewSession(state.mBrowserSession, result); } return result; } public void removeSession(int aSessionId) { - GeckoSession session = getSession(aSessionId); + BrowserSession session = getSession(aSessionId); if (session != null) { session.setContentDelegate(null); session.setNavigationDelegate(null); session.setProgressDelegate(null); - session.getTextInput().setDelegate(null); + + if (session.isGecko()) { + session.gecko().getTextInput().setDelegate(null); + } mSessions.remove(aSessionId); for (SessionChangeListener listener: mSessionChangeListeners) { listener.onRemoveSession(session, aSessionId); @@ -331,7 +351,7 @@ public void removeSession(int aSessionId) { } private void pushSession(int aSessionId) { - boolean isPrivateMode = mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + boolean isPrivateMode = mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPrivateMode) mPrivateSessionsStack.push(aSessionId); else @@ -339,7 +359,7 @@ private void pushSession(int aSessionId) { } private Integer popSession() { - boolean isPrivateMode = mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + boolean isPrivateMode = mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPrivateMode) return mPrivateSessionsStack.pop(); else @@ -347,32 +367,36 @@ private Integer popSession() { } private Integer peekSession() { - boolean isPrivateMode = mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + boolean isPrivateMode = mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPrivateMode) return mPrivateSessionsStack.peek(); else return mSessionsStack.peek(); } - public GeckoSession getSession(int aId) { + public BrowserSession getSession(int aId) { State result = mSessions.get(aId); if (result == null) { return null; } - return result.mSession; + return result.mBrowserSession; } - public Integer getSessionId(GeckoSession aSession) { + public Integer getSessionId(BrowserSession aBrowserSession) { for (Map.Entry entry : mSessions.entrySet()) { - if (entry.getValue().mSession == aSession) { + if (entry.getValue().mBrowserSession == aBrowserSession) { return entry.getKey(); } } return null; } - public String getUriFromSession(GeckoSession aSession) { - Integer sessionId = getSessionId(aSession); + public Integer getSessionId(GeckoSession aGeckoSession) { + return getSessionId(getSession(aGeckoSession.hashCode())); + } + + public String getUriFromSession(BrowserSession aBrowserSession) { + Integer sessionId = getSessionId(aBrowserSession); if (sessionId == null) { return ""; } @@ -391,8 +415,8 @@ public List getSessions() { public List getSessionsByPrivateMode(boolean aUsingPrivateMode) { ArrayList result = new ArrayList<>(); for (Integer sessionId : mSessions.keySet()) { - GeckoSession session = getSession(sessionId); - if (session != null && session.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE) == aUsingPrivateMode) { + BrowserSession browserSession = getSession(sessionId); + if (browserSession != null && browserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE) == aUsingPrivateMode) { result.add(sessionId); } } @@ -407,25 +431,25 @@ public void setCurrentSession(int aId) { Log.d(LOGTAG, "Creating session: " + aId); - if (mCurrentSession != null) { - mCurrentSession.setActive(false); + if (mCurrentBrowserSession != null) { + mCurrentBrowserSession.setActive(false); } - mCurrentSession = null; + mCurrentBrowserSession = null; State state = mSessions.get(aId); if (state != null) { - mCurrentSession = state.mSession; - if (!mCurrentSession.isOpen()) { - mCurrentSession.open(mRuntime); + mCurrentBrowserSession = state.mBrowserSession; + if (!mCurrentBrowserSession.isOpen()) { + mCurrentBrowserSession.open(mRuntime); } for (SessionChangeListener listener: mSessionChangeListeners) { - listener.onCurrentSessionChange(mCurrentSession, aId); + listener.onCurrentSessionChange(mCurrentBrowserSession, aId); } } - dumpAllState(mCurrentSession); + dumpAllState(mCurrentBrowserSession); - if (mCurrentSession != null) - mCurrentSession.setActive(true); + if (mCurrentBrowserSession != null) + mCurrentBrowserSession.setActive(true); } public void setRegion(String aRegion) { @@ -433,8 +457,8 @@ public void setRegion(String aRegion) { mRegion = aRegion != null ? aRegion.toLowerCase() : "worldwide"; // There is a region update and the home is already loaded - if (mCurrentSession != null && isHomeUri(getCurrentUri())) { - mCurrentSession.loadUri("javascript:window.location.replace('" + getHomeUri() + "');"); + if (mCurrentBrowserSession != null && isHomeUri(getCurrentUri())) { + mCurrentBrowserSession.loadUri("javascript:window.location.replace('" + getHomeUri() + "');"); } } @@ -452,8 +476,8 @@ public Boolean isHomeUri(String aUri) { public String getCurrentUri() { String result = ""; - if (mCurrentSession != null) { - State state = mSessions.get(mCurrentSession.hashCode()); + if (mCurrentBrowserSession != null) { + State state = mSessions.get(mCurrentBrowserSession.hashCode()); if (state == null) { return result; } @@ -471,11 +495,11 @@ public boolean isInputActive(int aSessionId) { } public boolean canGoBack() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return false; } - State state = mSessions.get(mCurrentSession.hashCode()); + State state = mSessions.get(mCurrentBrowserSession.hashCode()); if (state != null) { return state.mCanGoBack; } @@ -484,47 +508,47 @@ public boolean canGoBack() { } public void goBack() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } if (isInFullScreen()) { exitFullScreen(); } else { - mCurrentSession.goBack(); + mCurrentBrowserSession.goBack(); } } public void goForward() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } - mCurrentSession.goForward(); + mCurrentBrowserSession.goForward(); } public void setActive(boolean aActive) { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } - mCurrentSession.setActive(aActive); + mCurrentBrowserSession.setActive(aActive); } public void reload() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } - mCurrentSession.reload(); + mCurrentBrowserSession.reload(); } public void stop() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } - mCurrentSession.stop(); + mCurrentBrowserSession.stop(); } public void loadUri(String aUri) { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } @@ -532,15 +556,24 @@ public void loadUri(String aUri) { aUri = getHomeUri(); } Log.d(LOGTAG, "Loading URI: " + aUri); - mCurrentSession.loadUri(aUri); + mCurrentBrowserSession.loadUri(aUri); + } + + public void reloadWithServo() { + String uri = getCurrentUri(); + SessionStore.SessionSettings settings = new SessionStore.SessionSettings(); + settings.servo = true; + int id = createSession(settings); + setCurrentSession(id); + loadUri(uri); } public boolean isInFullScreen() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return false; } - State state = mSessions.get(mCurrentSession.hashCode()); + State state = mSessions.get(mCurrentBrowserSession.hashCode()); if (state != null) { return state.mFullScreen; } @@ -549,27 +582,30 @@ public boolean isInFullScreen() { } public void exitFullScreen() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return; } - mCurrentSession.exitFullScreen(); + mCurrentBrowserSession.exitFullScreen(); } - public GeckoSession getCurrentSession() { - return mCurrentSession; + public BrowserSession getCurrentSession() { + return mCurrentBrowserSession; } public int getCurrentSessionId() { - if (mCurrentSession == null) { + if (mCurrentBrowserSession == null) { return NO_SESSION_ID; } - return mCurrentSession.hashCode(); + return mCurrentBrowserSession.hashCode(); } public void setPermissionDelegate(GeckoSession.PermissionDelegate aDelegate) { mPermissionDelegate = aDelegate; for (HashMap.Entry entry : mSessions.entrySet()) { - entry.getValue().mSession.setPermissionDelegate(aDelegate); + BrowserSession session = entry.getValue().mBrowserSession; + if (session.isGecko()) { + session.gecko().setPermissionDelegate(aDelegate); + } } } @@ -591,10 +627,10 @@ private void vrPrefsWorkAround(Context aContext) { } public void switchPrivateMode() { - if (mCurrentSession == null) + if (mCurrentBrowserSession == null) return; - boolean isPrivateMode = mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + boolean isPrivateMode = mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (!isPrivateMode) { if (mPreviousSessionId == SessionStore.NO_SESSION_ID) { mPreviousSessionId = getCurrentSessionId(); @@ -621,17 +657,17 @@ public void switchPrivateMode() { } public void setUaMode(int mode) { - if (mCurrentSession != null) { - mCurrentSession.getSettings().setInt(GeckoSessionSettings.USER_AGENT_MODE, mode); - mCurrentSession.reload(); + if (mCurrentBrowserSession != null) { + mCurrentBrowserSession.getSettings().setInt(GeckoSessionSettings.USER_AGENT_MODE, mode); + mCurrentBrowserSession.reload(); } } public void exitPrivateMode() { - if (mCurrentSession == null) + if (mCurrentBrowserSession == null) return; - boolean isPrivateMode = mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + boolean isPrivateMode = mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPrivateMode) { int privateSessionId = getCurrentSessionId(); setCurrentSession(mPreviousSessionId); @@ -650,8 +686,8 @@ public void exitPrivateMode() { } public boolean isCurrentSessionPrivate() { - if (mCurrentSession != null) - return mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + if (mCurrentBrowserSession != null) + return mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); return false; } @@ -681,20 +717,27 @@ public void setMaxWindowSize(int width, int height) { GeckoAppShell.setScreenSizeOverride(new Rect(0, 0, width, height)); } + public void setServo(final boolean enabled) { + if (!enabled) { + // FIXME: reset session to gecko + } + } + public void setMultiprocess(final boolean enabled) { - if (mCurrentSession != null) { - final GeckoResult state = mCurrentSession.saveState(); + if (mCurrentBrowserSession != null && mCurrentBrowserSession.isGecko()) { + GeckoSession session = mCurrentBrowserSession.gecko(); + final GeckoResult state = session.saveState(); state.then(new GeckoResult.OnValueListener() { @Nullable @Override public GeckoResult onValue(@Nullable GeckoSession.SessionState value) throws Throwable { if (value != null) { - mCurrentSession.stop(); - mCurrentSession.close(); + mCurrentBrowserSession.stop(); + mCurrentBrowserSession.close(); int oldSessionId = getCurrentSessionId(); int sessionId = createSession(); - GeckoSession session = getSession(sessionId); + GeckoSession session = getSession(sessionId).gecko(); session.getSettings().setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, enabled); session.restoreState(value); setCurrentSession(sessionId); @@ -721,9 +764,9 @@ public void setRemoteDebugging(final boolean enabled) { } @Override - public void onLocationChange(GeckoSession aSession, String aUri) { + public void onLocationChange(BrowserSession aBrowserSession, String aUri) { Log.d(LOGTAG, "SessionStore onLocationChange: " + aUri); - State state = mSessions.get(aSession.hashCode()); + State state = mSessions.get(aBrowserSession.hashCode()); if (state == null) { Log.e(LOGTAG, "Unknown session!"); return; @@ -731,53 +774,51 @@ public void onLocationChange(GeckoSession aSession, String aUri) { state.mUri = aUri; - for (GeckoSession.NavigationDelegate listener: mNavigationListeners) { - listener.onLocationChange(aSession, aUri); + for (BrowserSession.NavigationDelegate listener: mNavigationListeners) { + listener.onLocationChange(aBrowserSession, aUri); } // The homepage finishes loading after the region has been updated if (mRegion != null && aUri.equalsIgnoreCase(SessionStore.HOME_WITHOUT_REGION_ORIGIN)) { - aSession.loadUri("javascript:window.location.replace('" + getHomeUri() + "');"); + aBrowserSession.loadUri("javascript:window.location.replace('" + getHomeUri() + "');"); } } @Override - public void onCanGoBack(GeckoSession aSession, boolean aCanGoBack) { + public void onCanGoBack(BrowserSession aBrowserSession, boolean aCanGoBack) { Log.d(LOGTAG, "SessionStore onCanGoBack: " + (aCanGoBack ? "true" : "false")); - State state = mSessions.get(aSession.hashCode()); + State state = mSessions.get(aBrowserSession.hashCode()); if (state == null) { return; } state.mCanGoBack = aCanGoBack; - for (GeckoSession.NavigationDelegate listener: mNavigationListeners) { - listener.onCanGoBack(aSession, aCanGoBack); + for (BrowserSession.NavigationDelegate listener: mNavigationListeners) { + listener.onCanGoBack(aBrowserSession, aCanGoBack); } } @Override - public void onCanGoForward(GeckoSession aSession, boolean aCanGoForward) { + public void onCanGoForward(BrowserSession aBrowserSession, boolean aCanGoForward) { Log.d(LOGTAG, "SessionStore onCanGoForward: " + (aCanGoForward ? "true" : "false")); - State state = mSessions.get(aSession.hashCode()); + State state = mSessions.get(aBrowserSession.hashCode()); if (state == null) { return; } state.mCanGoForward = aCanGoForward; - for (GeckoSession.NavigationDelegate listener: mNavigationListeners) { - listener.onCanGoForward(aSession, aCanGoForward); + for (BrowserSession.NavigationDelegate listener: mNavigationListeners) { + listener.onCanGoForward(aBrowserSession, aCanGoForward); } } @Nullable - public GeckoResult onLoadRequest(@NonNull GeckoSession aSession, - @NonNull String aUri, - @TargetWindow int target, - @LoadRequestFlags int flags) { + public GeckoResult onLoadRequest(@NonNull BrowserSession aSession, + @NonNull String aUri, + @TargetWindow int target, + @LoadRequestFlags int flags) { GeckoResult result = new GeckoResult<>(); - if (aUri.equalsIgnoreCase(PRIVATE_BROWSING_URI)) { switchPrivateMode(); result.complete(true); - } else { result.complete(false); } @@ -786,13 +827,13 @@ public GeckoResult onLoadRequest(@NonNull GeckoSession aSession, } @Override - public GeckoResult onNewSession(@NonNull GeckoSession aSession, @NonNull String aUri) { + public GeckoResult onNewSession(@NonNull BrowserSession aSession, @NonNull String aUri) { Log.d(LOGTAG, "SessionStore onNewSession: " + aUri); pushSession(getCurrentSessionId()); int sessionId; - boolean isPreviousPrivateMode = mCurrentSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); + boolean isPreviousPrivateMode = mCurrentBrowserSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPreviousPrivateMode) { SessionStore.SessionSettings settings = new SessionStore.SessionSettings(); settings.privateMode = true; @@ -802,21 +843,23 @@ public GeckoResult onNewSession(@NonNull GeckoSession aSession, @N sessionId = createSession(); } - mCurrentSession = null; + mCurrentBrowserSession = null; State state = mSessions.get(sessionId); if (state != null) { - mCurrentSession = state.mSession; + mCurrentBrowserSession = state.mBrowserSession; for (SessionChangeListener listener : mSessionChangeListeners) { - listener.onCurrentSessionChange(mCurrentSession, sessionId); + listener.onCurrentSessionChange(mCurrentBrowserSession, sessionId); } } - dumpAllState(mCurrentSession); + dumpAllState(mCurrentBrowserSession); - return GeckoResult.fromValue(getSession(sessionId)); + BrowserSession session = getSession(sessionId); + assert(session.isGecko()); + return GeckoResult.fromValue(session.gecko()); } @Override - public GeckoResult onLoadError(GeckoSession session, String uri, int category, int error) { + public GeckoResult onLoadError(BrowserSession session, String uri, int category, int error) { Log.d(LOGTAG, "SessionStore onLoadError: " + uri); InternalPages.PageResources pageResources = errorPageResourcesForCategory(category); @@ -825,7 +868,7 @@ public GeckoResult onLoadError(GeckoSession session, String uri, int cat // Progress Listener @Override - public void onPageStart(GeckoSession aSession, String aUri) { + public void onPageStart(BrowserSession aSession, String aUri) { Log.d(LOGTAG, "SessionStore onPageStart"); State state = mSessions.get(aSession.hashCode()); if (state == null) { @@ -833,13 +876,13 @@ public void onPageStart(GeckoSession aSession, String aUri) { } state.mIsLoading = true; startLoadTime = SystemClock.elapsedRealtime(); - for (GeckoSession.ProgressDelegate listener: mProgressListeners) { + for (BrowserSession.ProgressDelegate listener: mProgressListeners) { listener.onPageStart(aSession, aUri); } } @Override - public void onPageStop(GeckoSession aSession, boolean b) { + public void onPageStop(BrowserSession aSession, boolean b) { Log.d(LOGTAG, "SessionStore onPageStop"); State state = mSessions.get(aSession.hashCode()); if (state == null) { @@ -852,18 +895,18 @@ public void onPageStop(GeckoSession aSession, boolean b) { Log.i(LOGTAG, "Sent load to histogram"); TelemetryWrapper.addLoadToHistogram(state.mUri, elapsedLoad); } - for (GeckoSession.ProgressDelegate listener: mProgressListeners) { + for (BrowserSession.ProgressDelegate listener: mProgressListeners) { listener.onPageStop(aSession, b); } } @Override - public void onProgressChange(GeckoSession session, int progress) { + public void onProgressChange(BrowserSession session, int progress) { } @Override - public void onSecurityChange(GeckoSession aSession, SecurityInformation aInformation) { + public void onSecurityChange(BrowserSession aSession, SecurityInformation aInformation) { Log.d(LOGTAG, "SessionStore onPageStop"); State state = mSessions.get(aSession.hashCode()); if (state == null) { @@ -871,14 +914,14 @@ public void onSecurityChange(GeckoSession aSession, SecurityInformation aInforma } state.mSecurityInformation = aInformation; - for (GeckoSession.ProgressDelegate listener: mProgressListeners) { + for (BrowserSession.ProgressDelegate listener: mProgressListeners) { listener.onSecurityChange(aSession, aInformation); } } // Content Delegate @Override - public void onTitleChange(GeckoSession aSession, String aTitle) { + public void onTitleChange(BrowserSession aSession, String aTitle) { Log.d(LOGTAG, "SessionStore onTitleChange"); State state = mSessions.get(aSession.hashCode()); if (state == null) { @@ -886,18 +929,18 @@ public void onTitleChange(GeckoSession aSession, String aTitle) { } state.mTitle = aTitle; - for (GeckoSession.ContentDelegate listener: mContentListeners) { + for (BrowserSession.ContentDelegate listener: mContentListeners) { listener.onTitleChange(aSession, aTitle); } } @Override - public void onFocusRequest(GeckoSession aSession) { + public void onFocusRequest(BrowserSession aSession) { Log.d(LOGTAG, "SessionStore onFocusRequest"); } @Override - public void onCloseRequest(GeckoSession aSession) { + public void onCloseRequest(BrowserSession aSession) { int sessionId = getSessionId(aSession); if (getCurrentSessionId() == sessionId) { unstackSession(); @@ -905,38 +948,38 @@ public void onCloseRequest(GeckoSession aSession) { } @Override - public void onFullScreen(GeckoSession aSession, boolean aFullScreen) { + public void onFullScreen(BrowserSession aSession, boolean aFullScreen) { Log.d(LOGTAG, "SessionStore onFullScreen"); State state = mSessions.get(aSession.hashCode()); if (state == null) { return; } state.mFullScreen = aFullScreen; - for (GeckoSession.ContentDelegate listener: mContentListeners) { + for (BrowserSession.ContentDelegate listener: mContentListeners) { listener.onFullScreen(aSession, aFullScreen); } } @Override - public void onContextMenu(GeckoSession aSession, int i, int i1, String s, int i2, String s1) { + public void onContextMenu(BrowserSession aSession, int i, int i1, String s, int i2, String s1) { } @Override - public void onExternalResponse(GeckoSession session, GeckoSession.WebResponseInfo response) { + public void onExternalResponse(BrowserSession session, GeckoSession.WebResponseInfo response) { } @Override - public void onCrash(GeckoSession session) { + public void onCrash(BrowserSession session) { } - // TextInput Delegate + // TextInput Delegate - Gecko Only @Override public void restartInput(@NonNull GeckoSession aSession, int reason) { - if (aSession == mCurrentSession) { + if (aSession == mCurrentBrowserSession) { for (GeckoSession.TextInputDelegate listener : mTextInputListeners) { listener.restartInput(aSession, reason); } @@ -949,7 +992,7 @@ public void showSoftInput(@NonNull GeckoSession aSession) { if (state != null) { state.mIsInputActive = true; } - if (aSession == mCurrentSession) { + if (aSession == mCurrentBrowserSession) { for (GeckoSession.TextInputDelegate listener : mTextInputListeners) { listener.showSoftInput(aSession); } @@ -962,7 +1005,7 @@ public void hideSoftInput(@NonNull GeckoSession aSession) { if (state != null) { state.mIsInputActive = false; } - if (aSession == mCurrentSession) { + if (aSession == mCurrentBrowserSession) { for (GeckoSession.TextInputDelegate listener : mTextInputListeners) { listener.hideSoftInput(aSession); } @@ -971,7 +1014,7 @@ public void hideSoftInput(@NonNull GeckoSession aSession) { @Override public void updateSelection(@NonNull GeckoSession aSession, int selStart, int selEnd, int compositionStart, int compositionEnd) { - if (aSession == mCurrentSession) { + if (aSession == mCurrentBrowserSession) { for (GeckoSession.TextInputDelegate listener : mTextInputListeners) { listener.updateSelection(aSession, selStart, selEnd, compositionStart, compositionEnd); } @@ -980,7 +1023,7 @@ public void updateSelection(@NonNull GeckoSession aSession, int selStart, int se @Override public void updateExtractedText(@NonNull GeckoSession aSession, @NonNull ExtractedTextRequest request, @NonNull ExtractedText text) { - if (aSession == mCurrentSession) { + if (aSession == mCurrentBrowserSession) { for (GeckoSession.TextInputDelegate listener : mTextInputListeners) { listener.updateExtractedText(aSession, request, text); } @@ -989,7 +1032,7 @@ public void updateExtractedText(@NonNull GeckoSession aSession, @NonNull Extract @Override public void updateCursorAnchorInfo(@NonNull GeckoSession aSession, @NonNull CursorAnchorInfo info) { - if (aSession == mCurrentSession) { + if (aSession == mCurrentBrowserSession) { for (GeckoSession.TextInputDelegate listener : mTextInputListeners) { listener.updateCursorAnchorInfo(aSession, info); } @@ -1020,10 +1063,10 @@ public void onTrackerBlocked(GeckoSession session, String uri, int categories) { } } - // PromptDelegate + // PromptDelegate - Gecko Only @Override public void onAlert(GeckoSession session, String title, String msg, AlertCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onAlert(session, title, msg, callback); } @@ -1032,7 +1075,7 @@ public void onAlert(GeckoSession session, String title, String msg, AlertCallbac @Override public void onButtonPrompt(GeckoSession session, String title, String msg, String[] btnMsg, ButtonCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onButtonPrompt(session, title, msg, btnMsg, callback); } @@ -1041,7 +1084,7 @@ public void onButtonPrompt(GeckoSession session, String title, String msg, Strin @Override public void onTextPrompt(GeckoSession session, String title, String msg, String value, TextCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onTextPrompt(session, title, msg, value, callback); } @@ -1050,7 +1093,7 @@ public void onTextPrompt(GeckoSession session, String title, String msg, String @Override public void onAuthPrompt(GeckoSession session, String title, String msg, AuthOptions options, AuthCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onAuthPrompt(session, title, msg, options, callback); } @@ -1059,7 +1102,7 @@ public void onAuthPrompt(GeckoSession session, String title, String msg, AuthOpt @Override public void onChoicePrompt(GeckoSession session, String title, String msg, int type, Choice[] choices, ChoiceCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onChoicePrompt(session, title, msg, type, choices, callback); } @@ -1068,7 +1111,7 @@ public void onChoicePrompt(GeckoSession session, String title, String msg, int t @Override public void onColorPrompt(GeckoSession session, String title, String value, TextCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onColorPrompt(session, title, value, callback); } @@ -1077,7 +1120,7 @@ public void onColorPrompt(GeckoSession session, String title, String value, Text @Override public void onDateTimePrompt(GeckoSession session, String title, int type, String value, String min, String max, TextCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onDateTimePrompt(session, title, type, value, min, max, callback); } @@ -1086,7 +1129,7 @@ public void onDateTimePrompt(GeckoSession session, String title, int type, Strin @Override public void onFilePrompt(GeckoSession session, String title, int type, String[] mimeTypes, FileCallback callback) { - if (session == mCurrentSession) { + if (session == mCurrentBrowserSession) { for (GeckoSession.PromptDelegate listener : mPromptListeners) { listener.onFilePrompt(session, title, type, mimeTypes, callback); } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/BrowserWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/BrowserWidget.java index 4610bf1fc..058b4ae1f 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/BrowserWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/BrowserWidget.java @@ -15,7 +15,9 @@ import android.view.View; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; -import org.mozilla.geckoview.GeckoDisplay; + +import org.mozilla.browser.BrowserDisplay; +import org.mozilla.browser.BrowserSession; import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSessionSettings; import org.mozilla.vrbrowser.*; @@ -27,7 +29,7 @@ public class BrowserWidget extends View implements Widget, SessionStore.SessionC private static final String LOGTAG = "VRB"; private int mSessionId; - private GeckoDisplay mDisplay; + private BrowserDisplay mDisplay; private Surface mSurface; private SurfaceTexture mSurfaceTexture; private int mWidth; @@ -44,9 +46,9 @@ public BrowserWidget(Context aContext, int aSessionId) { SessionStore.get().addSessionChangeListener(this); SessionStore.get().addPromptListener(this); setFocusableInTouchMode(true); - GeckoSession session = SessionStore.get().getSession(mSessionId); - if (session != null) { - session.getTextInput().setView(this); + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session != null && session.isGecko()) { + session.gecko().getTextInput().setView(this); } mHandle = ((WidgetManagerDelegate)aContext).newWidgetHandle(); mWidgetPlacement = new WidgetPlacement(aContext); @@ -102,7 +104,7 @@ public void setBrowserSize(float windowWidth, float windowHeight, float multipli @Override public void setSurfaceTexture(SurfaceTexture aTexture, final int aWidth, final int aHeight) { - GeckoSession session = SessionStore.get().getSession(mSessionId); + BrowserSession session = SessionStore.get().getSession(mSessionId); if (session == null) { return; } @@ -114,7 +116,7 @@ public void setSurfaceTexture(SurfaceTexture aTexture, final int aWidth, final i if (mDisplay == null) { mDisplay = session.acquireDisplay(); } else { - Log.e(LOGTAG, "GeckoDisplay was not null in BrowserWidget.setSurfaceTexture()"); + Log.e(LOGTAG, "BrowserDisplay was not null in BrowserWidget.setSurfaceTexture()"); } mDisplay.surfaceChanged(mSurface, aWidth, aHeight); } @@ -142,20 +144,30 @@ public void handleTouchEvent(MotionEvent aEvent) { if (aEvent.getActionMasked() == MotionEvent.ACTION_DOWN) { requestFocus(); } - GeckoSession session = SessionStore.get().getSession(mSessionId); + BrowserSession session = SessionStore.get().getSession(mSessionId); if (session == null) { return; } - session.getPanZoomController().onTouchEvent(aEvent); + + if (session.isGecko()) { + session.gecko().getPanZoomController().onTouchEvent(aEvent); + } else { + // FIXME + } } @Override public void handleHoverEvent(MotionEvent aEvent) { - GeckoSession session = SessionStore.get().getSession(mSessionId); + BrowserSession session = SessionStore.get().getSession(mSessionId); if (session == null) { return; } - session.getPanZoomController().onMotionEvent(aEvent); + + if (session.isGecko()) { + session.gecko().getPanZoomController().onMotionEvent(aEvent); + } else { + // FIXME + } } @Override @@ -178,7 +190,7 @@ public void handleResizeEvent(float aWorldWidth, float aWorldHeight) { @Override public void releaseWidget() { SessionStore.get().removeSessionChangeListener(this); - GeckoSession session = SessionStore.get().getSession(mSessionId); + BrowserSession session = SessionStore.get().getSession(mSessionId); if (session == null) { return; } @@ -187,7 +199,10 @@ public void releaseWidget() { session.releaseDisplay(mDisplay); mDisplay = null; } - session.getTextInput().setView(null); + + if (session.isGecko()) { + session.gecko().getTextInput().setView(null); + } } @@ -203,27 +218,29 @@ public boolean getFirstDraw() { // SessionStore.GeckoSessionChange @Override - public void onNewSession(GeckoSession aSession, int aId) { + public void onNewSession(BrowserSession aSession, int aId) { } @Override - public void onRemoveSession(GeckoSession aSession, int aId) { + public void onRemoveSession(BrowserSession aSession, int aId) { } @Override - public void onCurrentSessionChange(GeckoSession aSession, int aId) { + public void onCurrentSessionChange(BrowserSession aSession, int aId) { Log.d(LOGTAG, "onCurrentSessionChange: " + this.toString()); if (mSessionId == aId) { Log.d(LOGTAG, "BrowserWidget.onCurrentSessionChange session id same, bail: " + aId); return; } - GeckoSession oldSession = SessionStore.get().getSession(mSessionId); + BrowserSession oldSession = SessionStore.get().getSession(mSessionId); if (oldSession != null && mDisplay != null) { Log.d(LOGTAG, "Detach from previous session: " + mSessionId); - oldSession.getTextInput().setView(null); + if (oldSession.isGecko()) { + oldSession.gecko().getTextInput().setView(null); + } mDisplay.surfaceDestroyed(); oldSession.releaseDisplay(mDisplay); mDisplay = null; @@ -233,7 +250,9 @@ public void onCurrentSessionChange(GeckoSession aSession, int aId) { mDisplay = aSession.acquireDisplay(); Log.d(LOGTAG, "surfaceChanged: " + aId); mDisplay.surfaceChanged(mSurface, mWidth, mHeight); - aSession.getTextInput().setView(this); + if (aSession.isGecko()) { + aSession.gecko().getTextInput().setView(this); + } boolean isPrivateMode = aSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPrivateMode) @@ -246,11 +265,11 @@ public void onCurrentSessionChange(GeckoSession aSession, int aId) { @Override public InputConnection onCreateInputConnection(final EditorInfo outAttrs) { Log.d(LOGTAG, "BrowserWidget onCreateInputConnection"); - GeckoSession session = SessionStore.get().getSession(mSessionId); - if (session == null) { + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session == null || !session.isGecko()) { return null; } - return session.getTextInput().onCreateInputConnection(outAttrs); + return session.gecko().getTextInput().onCreateInputConnection(outAttrs); } @Override @@ -264,8 +283,12 @@ public boolean onKeyPreIme(int aKeyCode, KeyEvent aEvent) { if (super.onKeyPreIme(aKeyCode, aEvent)) { return true; } - GeckoSession session = SessionStore.get().getSession(mSessionId); - return (session != null) && session.getTextInput().onKeyPreIme(aKeyCode, aEvent); + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session != null && session.isGecko()) { + return session.gecko().getTextInput().onKeyPreIme(aKeyCode, aEvent); + } else { + return false; + } } @Override @@ -273,8 +296,12 @@ public boolean onKeyUp(int aKeyCode, KeyEvent aEvent) { if (super.onKeyUp(aKeyCode, aEvent)) { return true; } - GeckoSession session = SessionStore.get().getSession(mSessionId); - return (session != null) && session.getTextInput().onKeyUp(aKeyCode, aEvent); + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session != null && session.isGecko()) { + return session.gecko().getTextInput().onKeyUp(aKeyCode, aEvent); + } else { + return false; + } } @Override @@ -282,8 +309,12 @@ public boolean onKeyDown(int aKeyCode, KeyEvent aEvent) { if (super.onKeyDown(aKeyCode, aEvent)) { return true; } - GeckoSession session = SessionStore.get().getSession(mSessionId); - return (session != null) && session.getTextInput().onKeyDown(aKeyCode, aEvent); + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session != null && session.isGecko()) { + return session.gecko().getTextInput().onKeyDown(aKeyCode, aEvent); + } else { + return false; + } } @Override @@ -291,8 +322,12 @@ public boolean onKeyLongPress(int aKeyCode, KeyEvent aEvent) { if (super.onKeyLongPress(aKeyCode, aEvent)) { return true; } - GeckoSession session = SessionStore.get().getSession(mSessionId); - return (session != null) && session.getTextInput().onKeyLongPress(aKeyCode, aEvent); + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session != null && session.isGecko()) { + return session.gecko().getTextInput().onKeyLongPress(aKeyCode, aEvent); + } else { + return false; + } } @Override @@ -300,8 +335,12 @@ public boolean onKeyMultiple(int aKeyCode, int repeatCount, KeyEvent aEvent) { if (super.onKeyMultiple(aKeyCode, repeatCount, aEvent)) { return true; } - GeckoSession session = SessionStore.get().getSession(mSessionId); - return (session != null) && session.getTextInput().onKeyMultiple(aKeyCode, repeatCount, aEvent); + BrowserSession session = SessionStore.get().getSession(mSessionId); + if (session != null && session.isGecko()) { + return session.gecko().getTextInput().onKeyMultiple(aKeyCode, repeatCount, aEvent); + } else { + return false; + } } @Override @@ -312,13 +351,13 @@ protected void onFocusChanged(boolean aGainFocus, int aDirection, Rect aPrevious @Override public boolean onTouchEvent(MotionEvent aEvent) { - GeckoSession session = SessionStore.get().getSession(mSessionId); + BrowserSession session = SessionStore.get().getSession(mSessionId); return (session != null) && session.getPanZoomController().onTouchEvent(aEvent); } @Override public boolean onGenericMotionEvent(MotionEvent aEvent) { - GeckoSession session = SessionStore.get().getSession(mSessionId); + BrowserSession session = SessionStore.get().getSession(mSessionId); return (session != null) && session.getPanZoomController().onMotionEvent(aEvent); } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java index fbd1c4ec9..c02440ed6 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/NavigationBarWidget.java @@ -15,6 +15,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; +import org.mozilla.browser.BrowserSession; import org.mozilla.geckoview.GeckoResult; import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSessionSettings; @@ -24,8 +25,8 @@ import java.util.ArrayList; import java.util.Arrays; -public class NavigationBarWidget extends UIWidget implements GeckoSession.NavigationDelegate, - GeckoSession.ProgressDelegate, GeckoSession.ContentDelegate, +public class NavigationBarWidget extends UIWidget implements BrowserSession.NavigationDelegate, + BrowserSession.ProgressDelegate, BrowserSession.ContentDelegate, WidgetManagerDelegate.Listener, SessionStore.SessionChangeListener, NavigationURLBar.NavigationURLBarDelegate, VoiceSearchWidget.VoiceSearchDelegate, SharedPreferences.OnSharedPreferenceChangeListener { @@ -379,12 +380,12 @@ public void updateServoButton() { } @Override - public GeckoResult onNewSession(@NonNull GeckoSession aSession, @NonNull String aUri) { + public GeckoResult onNewSession(@NonNull BrowserSession aSession, @NonNull String aUri) { return null; } @Override - public GeckoResult onLoadError(GeckoSession session, String uri, int category, int error) { + public GeckoResult onLoadError(BrowserSession session, String uri, int category, int error) { return null; } @@ -394,7 +395,7 @@ public void release() { } @Override - public void onLocationChange(GeckoSession session, String url) { + public void onLocationChange(BrowserSession session, String url) { if (mURLBar != null) { Log.d(LOGTAG, "Got location change"); mURLBar.setURL(url); @@ -403,7 +404,7 @@ public void onLocationChange(GeckoSession session, String url) { } @Override - public void onCanGoBack(GeckoSession aSession, boolean canGoBack) { + public void onCanGoBack(BrowserSession aSession, boolean canGoBack) { if (mBackButton != null) { boolean enableBackButton = SessionStore.get().canUnstackSession() | canGoBack; @@ -415,7 +416,7 @@ public void onCanGoBack(GeckoSession aSession, boolean canGoBack) { } @Override - public void onCanGoForward(GeckoSession aSession, boolean canGoForward) { + public void onCanGoForward(BrowserSession aSession, boolean canGoForward) { if (mForwardButton != null) { Log.d(LOGTAG, "Got onCanGoForward: " + (canGoForward ? "true" : "false")); mForwardButton.setEnabled(canGoForward); @@ -425,7 +426,7 @@ public void onCanGoForward(GeckoSession aSession, boolean canGoForward) { } @Override - public GeckoResult onLoadRequest(GeckoSession aSession, String aUri, int target, int flags) { + public GeckoResult onLoadRequest(BrowserSession aSession, String aUri, int target, int flags) { if (mURLBar != null) { Log.d(LOGTAG, "Got onLoadUri"); mURLBar.setURL(aUri); @@ -435,7 +436,7 @@ public GeckoResult onLoadRequest(GeckoSession aSession, String aUri, in // Progress Listener @Override - public void onPageStart(GeckoSession aSession, String aUri) { + public void onPageStart(BrowserSession aSession, String aUri) { if (mURLBar != null) { Log.d(LOGTAG, "Got onPageStart"); mURLBar.setURL(aUri); @@ -451,7 +452,7 @@ public void onPageStart(GeckoSession aSession, String aUri) { } @Override - public void onPageStop(GeckoSession aSession, boolean b) { + public void onPageStop(BrowserSession aSession, boolean b) { mIsLoading = false; mURLBar.setIsLoading(false); if (mReloadButton != null) { @@ -463,12 +464,12 @@ public void onPageStop(GeckoSession aSession, boolean b) { } @Override - public void onProgressChange(GeckoSession session, int progress) { + public void onProgressChange(BrowserSession session, int progress) { } @Override - public void onSecurityChange(GeckoSession geckoSession, SecurityInformation securityInformation) { + public void onSecurityChange(BrowserSession geckoSession, GeckoSession.ProgressDelegate.SecurityInformation securityInformation) { if (mURLBar != null) { boolean isSecure = securityInformation.isSecure; mURLBar.setIsInsecure(!isSecure); @@ -478,22 +479,22 @@ public void onSecurityChange(GeckoSession geckoSession, SecurityInformation secu // Content delegate @Override - public void onTitleChange(GeckoSession session, String title) { + public void onTitleChange(BrowserSession session, String title) { } @Override - public void onFocusRequest(GeckoSession session) { + public void onFocusRequest(BrowserSession session) { } @Override - public void onCloseRequest(GeckoSession session) { + public void onCloseRequest(BrowserSession session) { } @Override - public void onFullScreen(GeckoSession session, boolean aFullScreen) { + public void onFullScreen(BrowserSession session, boolean aFullScreen) { if (aFullScreen) { if (!mIsInFocusMode) { enterFocusMode(); @@ -508,17 +509,17 @@ public void onFullScreen(GeckoSession session, boolean aFullScreen) { } @Override - public void onContextMenu(GeckoSession session, int screenX, int screenY, String uri, int elementType, String elementSrc) { + public void onContextMenu(BrowserSession session, int screenX, int screenY, String uri, int elementType, String elementSrc) { } @Override - public void onExternalResponse(GeckoSession session, GeckoSession.WebResponseInfo response) { + public void onExternalResponse(BrowserSession session, GeckoSession.WebResponseInfo response) { } @Override - public void onCrash(GeckoSession session) { + public void onCrash(BrowserSession session) { } @@ -543,17 +544,17 @@ public void onWidgetUpdate(Widget aWidget) { // SessionStore.SessionChangeListener @Override - public void onNewSession(GeckoSession aSession, int aId) { + public void onNewSession(BrowserSession aSession, int aId) { } @Override - public void onRemoveSession(GeckoSession aSession, int aId) { + public void onRemoveSession(BrowserSession aSession, int aId) { } @Override - public void onCurrentSessionChange(GeckoSession aSession, int aId) { + public void onCurrentSessionChange(BrowserSession aSession, int aId) { boolean isPrivateMode = aSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); mURLBar.setPrivateMode(isPrivateMode); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/SettingsWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/SettingsWidget.java index 87cbccb05..46cc05256 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/SettingsWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/SettingsWidget.java @@ -18,6 +18,8 @@ import android.widget.ImageButton; import android.widget.Switch; import android.widget.TextView; + +import org.mozilla.browser.BrowserSession; import org.mozilla.geckoview.GeckoSession; import org.mozilla.vrbrowser.*; import org.mozilla.vrbrowser.audio.AudioEngine; @@ -213,7 +215,7 @@ private void onSettingsTelemetryChange(boolean isEnabled) { } private void onSettingsPrivacyClick() { - GeckoSession session = SessionStore.get().getCurrentSession(); + BrowserSession session = SessionStore.get().getCurrentSession(); if (session == null) { int sessionId = SessionStore.get().createSession(); SessionStore.get().setCurrentSession(sessionId); @@ -227,7 +229,7 @@ private void onSettingsPrivacyClick() { private void onSettingsReportClick() { String url = SessionStore.get().getCurrentUri(); - GeckoSession session = SessionStore.get().getCurrentSession(); + BrowserSession session = SessionStore.get().getCurrentSession(); if (session == null) { int sessionId = SessionStore.get().createSession(); SessionStore.get().setCurrentSession(sessionId); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/TopBarWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/TopBarWidget.java index 83eaa7e14..177be82a6 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/TopBarWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/TopBarWidget.java @@ -9,6 +9,7 @@ import android.util.AttributeSet; import android.view.View; +import org.mozilla.browser.BrowserSession; import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSessionSettings; import org.mozilla.vrbrowser.R; @@ -94,17 +95,17 @@ public void setBrowserWidget(BrowserWidget aWidget) { // SessionStore.SessionChangeListener @Override - public void onNewSession(GeckoSession aSession, int aId) { + public void onNewSession(BrowserSession aSession, int aId) { } @Override - public void onRemoveSession(GeckoSession aSession, int aId) { + public void onRemoveSession(BrowserSession aSession, int aId) { } @Override - public void onCurrentSessionChange(GeckoSession aSession, int aId) { + public void onCurrentSessionChange(BrowserSession aSession, int aId) { boolean isPrivateMode = aSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); setVisible(isPrivateMode); mCloseButton.setPrivateMode(isPrivateMode); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/TrayWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/TrayWidget.java index 9bdc516d2..785180009 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/TrayWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/TrayWidget.java @@ -8,6 +8,8 @@ import android.content.Context; import android.util.AttributeSet; import android.view.View; + +import org.mozilla.browser.BrowserSession; import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSessionSettings; import org.mozilla.vrbrowser.R; @@ -113,17 +115,17 @@ public void releaseWidget() { // SessionStore.SessionChangeListener @Override - public void onNewSession(GeckoSession aSession, int aId) { + public void onNewSession(BrowserSession aSession, int aId) { } @Override - public void onRemoveSession(GeckoSession aSession, int aId) { + public void onRemoveSession(BrowserSession aSession, int aId) { } @Override - public void onCurrentSessionChange(GeckoSession aSession, int aId) { + public void onCurrentSessionChange(BrowserSession aSession, int aId) { boolean isPrivateMode = aSession.getSettings().getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE); if (isPrivateMode != mIsLastSessionPrivate) { @@ -177,7 +179,7 @@ public void hide() { } private void onHelpButtonClicked() { - GeckoSession session = SessionStore.get().getCurrentSession(); + BrowserSession session = SessionStore.get().getCurrentSession(); if (session == null) { int sessionId = SessionStore.get().createSession(); SessionStore.get().setCurrentSession(sessionId); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/prompts/ChoicePromptWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/prompts/ChoicePromptWidget.java index 2f5cc9064..165031315 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/prompts/ChoicePromptWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/prompts/ChoicePromptWidget.java @@ -12,6 +12,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.*; + +import org.mozilla.browser.BrowserSession; import org.mozilla.geckoview.GeckoResult; import org.mozilla.geckoview.GeckoSession; import org.mozilla.geckoview.GeckoSession.PromptDelegate.Choice; @@ -24,7 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; -public class ChoicePromptWidget extends UIWidget implements GeckoSession.NavigationDelegate { +public class ChoicePromptWidget extends UIWidget implements BrowserSession.NavigationDelegate { private static final int DIALOG_CLOSE_DELAY = 250; @@ -397,25 +399,25 @@ public boolean onHover(View view, MotionEvent motionEvent) { // NavigationDelegate @Override - public void onLocationChange(GeckoSession session, String url) { + public void onLocationChange(BrowserSession session, String url) { if (mPromptDelegate != null) { mPromptDelegate.onDismissed(getDefaultChoices(mListItems)); } } @Override - public void onCanGoBack(GeckoSession session, boolean canGoBack) { + public void onCanGoBack(BrowserSession session, boolean canGoBack) { } @Override - public void onCanGoForward(GeckoSession session, boolean canGoForward) { + public void onCanGoForward(BrowserSession session, boolean canGoForward) { } @Nullable @Override - public GeckoResult onLoadRequest(@NonNull GeckoSession session, @NonNull String uri, int target, int flags) { + public GeckoResult onLoadRequest(@NonNull BrowserSession session, @NonNull String uri, int target, int flags) { if (mPromptDelegate != null) { mPromptDelegate.onDismissed(getDefaultChoices(mListItems)); } @@ -424,7 +426,7 @@ public GeckoResult onLoadRequest(@NonNull GeckoSession session, @NonNul @Nullable @Override - public GeckoResult onNewSession(@NonNull GeckoSession session, @NonNull String uri) { + public GeckoResult onNewSession(@NonNull BrowserSession session, @NonNull String uri) { if (mPromptDelegate != null) { mPromptDelegate.onDismissed(getDefaultChoices(mListItems)); } @@ -433,7 +435,7 @@ public GeckoResult onNewSession(@NonNull GeckoSession session, @No } @Override - public GeckoResult onLoadError(GeckoSession session, String uri, int category, int error) { + public GeckoResult onLoadError(BrowserSession session, String uri, int category, int error) { return null; }