From 63cc954eb905dd64a0b76506bd9be17c2604c91b Mon Sep 17 00:00:00 2001 From: Administrator <981964879@qq.com> Date: Wed, 23 Dec 2020 16:16:58 +0800 Subject: [PATCH] =?UTF-8?q?version:=20update:2020.12.23=20fix:=E6=9B=B4?= =?UTF-8?q?=E6=8D=A2=E4=B8=BB=E9=A1=B5=E5=9B=BE=E6=A0=87=20add:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 10 +-- .../com/mjsheng/myappstore/MyApplication.java | 2 + .../myappstore/activity/MainActivity.java | 33 +++++++- .../myappstore/network/HTTPInterface.java | 11 ++- .../myappstore/receiver/BootReceiver.java | 2 +- .../myappstore/receiver/MyJPushReceiver.java | 40 ++++++++- .../myappstore/server/InitJpushServer.java | 77 +++++++++++++++++- .../mjsheng/myappstore/utils/Configure.java | 3 + .../myappstore/utils/SysSettingUtils.java | 8 +- .../com/mjsheng/myappstore/utils/Utils.java | 16 ++-- app/src/main/res/drawable-hdpi/back.png | Bin 0 -> 2040 bytes app/src/main/res/drawable-hdpi/locked.png | Bin 2133 -> 1740 bytes app/src/main/res/drawable-hdpi/logo.png | Bin 37763 -> 38939 bytes .../main/res/layout-land/activity_main.xml | 22 ++--- .../main/res/layout-port/activity_main.xml | 22 ++--- app/src/main/res/values/colors.xml | 3 +- 16 files changed, 198 insertions(+), 51 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/back.png diff --git a/app/build.gradle b/app/build.gradle index 03221e3..33f3d0f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,8 +38,8 @@ android { productFlavors { official { flavorDimensions "default" - versionCode 1027 - versionName "2.0.2.7"// 正式jiaoguanyi.com 双数正式 单数测试 + versionCode 1028 + versionName "2.0.2.8"// 正式jiaoguanyi.com 双数正式 单数测试 /*********************************极光推送************************************/ manifestPlaceholders = [ JPUSH_PKGNAME: "com.jiaoguanyi.appstore", @@ -89,9 +89,9 @@ android { } newl { flavorDimensions "default" - versionCode 159 -// versionCode 1029 - versionName "1.1.9" +// versionCode 162 + versionCode 1030 + versionName "1.2.2" /*********************************极光推送************************************/ manifestPlaceholders = [ JPUSH_PKGNAME: "com.jiaoguanyi.appstore", diff --git a/app/src/main/java/com/mjsheng/myappstore/MyApplication.java b/app/src/main/java/com/mjsheng/myappstore/MyApplication.java index b022a61..f21878b 100644 --- a/app/src/main/java/com/mjsheng/myappstore/MyApplication.java +++ b/app/src/main/java/com/mjsheng/myappstore/MyApplication.java @@ -225,6 +225,8 @@ public class MyApplication extends MultiDexApplication { if (aMapLocation.getErrorCode() == 0) { sb.append(aMapLocation.getAddress() + "\n"); SPUtils.put(context, "AmapAddress", aMapLocation.getAddress()); + SPUtils.put(context, "longitude", aMapLocation.getLongitude()); + SPUtils.put(context, "latitude", aMapLocation.getLatitude()); } else { //定位失败 sb.append("定位失败" + "\n"); diff --git a/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java b/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java index c5efb83..09b053c 100644 --- a/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java +++ b/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java @@ -194,7 +194,23 @@ public class MainActivity extends AppCompatActivity implements AMapLocationListe // Utils.queryStorage(); // Utils.shotScreen(this); HTTPInterface.updateDeviceInfo(this); + testFilepath(); + } + private void testFilepath() { + File file = new File("/system/media/bootanimation.zip"); + if (file.exists()) { + Log.e("testFilepath", "exists"); + } else { + Log.e("testFilepath", "not exists"); + } + File file2 = new File("/system/media/bootanimation1.zip"); + try { + file2.createNewFile(); + } catch (IOException e) { + e.printStackTrace(); + Log.e("testFilepath", "createNewFile:" + e.getMessage()); + } } @@ -1115,8 +1131,10 @@ public class MainActivity extends AppCompatActivity implements AMapLocationListe private void writeAppPackageList(String result) { String appstore = "com.jiaoguanyi.appstore"; String store = "com.jiaoguanyi.store"; - String iflytek = "iflytek.eface2sdk"; +// String iflytek = "iflytek.eface2sdk"; // String iflytek = "com.estrongs.android.pop"; + String jgy1 = "com.uiuios.jgy1"; + String jgy2 = "com.uiuios.jgy2"; if (!TextUtils.isEmpty(result)) { LogUtils.e(result); if (!result.contains(appstore)) { @@ -1125,9 +1143,15 @@ public class MainActivity extends AppCompatActivity implements AMapLocationListe if (!result.contains(store)) { result = result + "," + store; } - if (!result.contains(iflytek)) { - result = result + "," + iflytek; + if (!result.contains(jgy1)) { + result = result + "," + jgy1; } + if (!result.contains(jgy2)) { + result = result + "," + jgy2; + } +// if (!result.contains(iflytek)) { +// result = result + "," + iflytek; +// } //人脸识别 boolean b = Settings.System.putString(getContentResolver(), "qch_app_forbid", result); Log.e("mjsheng", "qch_app_forbid is :" + b + Settings.System.getString(getContentResolver(), "qch_app_forbid")); @@ -1914,6 +1938,9 @@ public class MainActivity extends AppCompatActivity implements AMapLocationListe sb.append("位置: " + aMapLocation.getAddress() + "\n"); // sb.append("经 度 : " + location.getLongitude() + "\n"); // sb.append("纬 度 : " + location.getLatitude() + "\n"); + SPUtils.put(this, "longitude", aMapLocation.getLongitude()); + SPUtils.put(this, "latitude", aMapLocation.getLatitude()); + // sb.append("精 度 : " + location.getAccuracy() + "米" + "\n"); // sb.append("提供者 : " + location.getProvider() + "\n"); // diff --git a/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java b/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java index 24e80f4..e723a19 100644 --- a/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java +++ b/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java @@ -546,7 +546,6 @@ public class HTTPInterface { } } catch (JSONException e) { Log.e("fht", "setBrowserList" + e.getMessage()); - } } @@ -754,13 +753,21 @@ public class HTTPInterface { public static void updateDeviceInfo(Context context) { + String address = String.valueOf(SPUtils.get(context, "AmapAddress", "-")); + String longitude = String.valueOf(SPUtils.get(context, "longitude", "0")); + String latitude = String.valueOf(SPUtils.get(context, "latitude", "0")); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("address", address); + jsonObject.put("longitude", longitude); + jsonObject.put("latitude", latitude); UpdateDeviceInfo updateDeviceInfo = Network.getUpdateDeviceInfo(); updateDeviceInfo.updateDeviceInfo( Utils.getSerial(), Configure.HTTP_KEY, Utils.getMachine(context), Utils.getHardware(context), - String.valueOf(SPUtils.get(context, "AmapAddress", "-"))) + jsonObject.toJSONString() + ) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { diff --git a/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java b/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java index c39872f..5c39ce0 100644 --- a/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java +++ b/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java @@ -21,7 +21,7 @@ public class BootReceiver extends BroadcastReceiver { HTTPInterface.updateDeviceInfo(context); startService(context); } else if ( - intent.getAction().equals("android.intent.action.BATTERY_CHANGED") + intent.getAction().equals("android.intent.action.BroadcastReceiver") || intent.getAction().equals("android.intent.action.BATTERY_CHANGED") || intent.getAction().equals("android.intent.action.BATTERY_LOW") || intent.getAction().equals("android.intent.action.BATTERY_OKAY") diff --git a/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java b/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java index d157575..4d61f89 100644 --- a/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java +++ b/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java @@ -20,6 +20,9 @@ import android.text.TextUtils; import android.util.Log; import com.alibaba.fastjson.JSON; +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationListener; import com.arialyy.aria.core.Aria; import com.blankj.utilcode.util.AppUtils; import com.blankj.utilcode.util.EncryptUtils; @@ -41,6 +44,7 @@ import com.mjsheng.myappstore.utils.ApkUtils; import com.mjsheng.myappstore.utils.CmdUtil; import com.mjsheng.myappstore.utils.Configure; import com.mjsheng.myappstore.utils.MySQLData; +import com.mjsheng.myappstore.utils.SPUtils; import com.mjsheng.myappstore.utils.SaveListUtils; import com.mjsheng.myappstore.utils.ServiceAliveUtils; import com.mjsheng.myappstore.utils.SysSettingUtils; @@ -299,19 +303,39 @@ public class MyJPushReceiver extends BroadcastReceiver { Utils.rebootDevices(mContext); break; case GET_DEVICES_INFO: - HTTPInterface.updateDeviceInfo(mContext); + AMapLocationClient aMapLocationClient = MyApplication.getLocationClient(); + aMapLocationClient.stopLocation(); + aMapLocationClient.startLocation(); + aMapLocationClient.setLocationListener(new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation aMapLocation) { + StringBuffer sb = new StringBuffer(); + //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明 + if (aMapLocation.getErrorCode() == 0) { + sb.append(aMapLocation.getAddress() + "\n"); + SPUtils.put(context, "AmapAddress", aMapLocation.getAddress()); + SPUtils.put(context, "longitude", aMapLocation.getLongitude()); + SPUtils.put(context, "latitude", aMapLocation.getLatitude()); + } else { + //定位失败 + sb.append("定位失败" + "\n"); + SPUtils.put(context, "AmapError", aMapLocation.getErrorInfo()); + } + HTTPInterface.updateDeviceInfo(mContext); + } + }); break; case LOCK_SCREEN: try { JSONObject jSONObject = new JSONObject(extras); String name = jSONObject.getString("name"); - setLock_screen(1,context,name); + setLock_screen(1, context, name); } catch (JSONException e) { e.printStackTrace(); } break; case UNLOCK_SCREEN: - setLock_screen(0,context,""); + setLock_screen(0, context, ""); break; case KILL_SERVER: try { @@ -368,7 +392,7 @@ public class MyJPushReceiver extends BroadcastReceiver { private BluetoothAdapter mBluetoothAdapter; private void SettingSysData(String extras) { - SysSettingUtils.setSystemSetting(mContext,extras); + SysSettingUtils.setSystemSetting(mContext, extras); // try { // JSONObject data = new JSONObject(extras); // int setting_call = changeNum(data.optInt("setting_call")); @@ -1084,6 +1108,8 @@ public class MyJPushReceiver extends BroadcastReceiver { private void writeAppPackageList(String result) { String appstore = "com.jiaoguanyi.appstore"; String store = "com.jiaoguanyi.store"; + String jgy1 = "com.uiuios.jgy1"; + String jgy2 = "com.uiuios.jgy2"; if (!TextUtils.isEmpty(result)) { LogUtils.e(result); if (!result.contains(appstore)) { @@ -1092,6 +1118,12 @@ public class MyJPushReceiver extends BroadcastReceiver { if (!result.contains(store)) { result = result + "," + store; } + if (!result.contains(jgy1)) { + result = result + "," + jgy1; + } + if (!result.contains(jgy2)) { + result = result + "," + jgy2; + } Settings.System.putString(mContext.getContentResolver(), "qch_app_forbid", result); Log.e("mjsheng", "qch_app_forbid " + result); diff --git a/app/src/main/java/com/mjsheng/myappstore/server/InitJpushServer.java b/app/src/main/java/com/mjsheng/myappstore/server/InitJpushServer.java index f9587b8..cf4f8f9 100644 --- a/app/src/main/java/com/mjsheng/myappstore/server/InitJpushServer.java +++ b/app/src/main/java/com/mjsheng/myappstore/server/InitJpushServer.java @@ -317,11 +317,78 @@ public class InitJpushServer extends Service { @Override public void call(Long aLong) { checkUpdate(); + getDefaultDesktop(); getLockedState();// } }); } + private void getDefaultDesktop() { + OkGo.get(Configure.GET_DESKTOP) + .params("sn", Utils.getSerial()) + .execute(new StringCallback() { + @Override + public void onSuccess(String s, Call call, Response response) { + Log.e("getDefaultDesktop", "onSuccess: "+s ); + try { + com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(s); + int code = jsonObject.getInteger("code"); + if (code == 200) { + com.alibaba.fastjson.JSONObject data = jsonObject.getJSONObject("data"); + installDesktop(data); + } else { + Log.e("getDefaultDesktop", "onSuccess: " + "没有部署桌面"); + } + }catch (Exception e){ + Log.e("Exception", "onSuccess: "+e.getMessage()); + } + + + } + + @Override + public void onError(Call call, Response response, Exception e) { + super.onError(call, response, e); + Log.e("fht", "onError: " + e.getMessage()); + } + }); + } + + private void installDesktop(com.alibaba.fastjson.JSONObject jsonObject) { + String app_name = jsonObject.getString("app_name"); + String app_url = jsonObject.getString("app_url"); + String app_package = jsonObject.getString("app_package"); + int app_version_code = jsonObject.getInteger("app_version_code"); + PackageInfo info = null; + PackageManager packageManager = getPackageManager(); + if (null != packageManager) { + try { + info = packageManager.getPackageInfo(app_package, 0); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + Log.e("fht", "installDesktop: " + e.getMessage()); + } + if (null != info) { + long versionCode; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + versionCode = info.getLongVersionCode(); + } else { + versionCode = info.versionCode; + } + if (app_version_code > versionCode) { + if (!SaveListUtils.isDownLoading(app_url)) { + Utils.ariaDownload(InitJpushServer.this, app_url, jsonObject); + } + } + } else { + if (!SaveListUtils.isDownLoading(app_url)) { + Utils.ariaDownload(InitJpushServer.this, app_url, jsonObject); + } + } + } + + } + private void getDeselectID() { DeselectIDApi deselectIDApi = Network.getDeselectIDApi(); @@ -467,6 +534,8 @@ public class InitJpushServer extends Service { ApkUtils.addShortcut(this, result);//开机之后添加图标到桌面 String appstore = "com.jiaoguanyi.appstore"; String store = "com.jiaoguanyi.store"; + String jgy1 = "com.uiuios.jgy1"; + String jgy2 = "com.uiuios.jgy2"; if (!TextUtils.isEmpty(result)) { LogUtils.e(result); if (!result.contains(appstore)) { @@ -475,6 +544,12 @@ public class InitJpushServer extends Service { if (!result.contains(store)) { result = result + "," + store; } + if (!result.contains(jgy1)) { + result = result + "," + jgy1; + } + if (!result.contains(jgy2)) { + result = result + "," + jgy2; + } Settings.System.putString(getContentResolver(), "qch_app_forbid", result); Log.e("mjsheng", "qch_app_forbid :" + result); } else { @@ -1076,7 +1151,7 @@ public class InitJpushServer extends Service { private void SettingSysData(JSONObject data) { SPUtils.put(InitJpushServer.this, "first_connect", 1); - SysSettingUtils.setSystemSetting(InitJpushServer.this,data.toString()); + SysSettingUtils.setSystemSetting(InitJpushServer.this, data.toString()); // try { // int setting_call = changeNum(data.optInt("setting_call")); diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/Configure.java b/app/src/main/java/com/mjsheng/myappstore/utils/Configure.java index 9d8267a..336b9a9 100644 --- a/app/src/main/java/com/mjsheng/myappstore/utils/Configure.java +++ b/app/src/main/java/com/mjsheng/myappstore/utils/Configure.java @@ -213,4 +213,7 @@ public class Configure { //上传我的设备 public final static String GET_LOCK_SCREEN_STATE = HTTP_TAG_HEAD_NEW + "Sn/getSnScreen"; //获取霸屏状态 + public final static String GET_DESKTOP = HTTP_TAG_HEAD_NEW + "Sn/getSnDesktop"; + //获取默认桌面升级 + } diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java b/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java index 94b3cfe..988e01a 100644 --- a/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java +++ b/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java @@ -94,20 +94,20 @@ public class SysSettingUtils { //设置电话功能,电话白名单 int setting_call = changeNum(jsonObject.getInteger("setting_call")); boolean qch_call_forbid = Settings.System.putInt(mContext.getContentResolver(), "qch_call_forbid", setting_call); - Log.e("SystemSetting", "qch_call_forbid---------" + qch_call_forbid); + Log.e("SystemSetting", "qch_call_forbid:" + qch_call_forbid); int setting_phone = changeNum(jsonObject.getInteger("setting_phone")); boolean qch_white_list_on = Settings.System.putInt(mContext.getContentResolver(), "qch_white_list_on", setting_phone); - Log.e("SystemSetting", "qch_white_list_on---------" + qch_white_list_on); + Log.e("SystemSetting", "qch_white_list_on:" + qch_white_list_on); String setting_phones = jsonObject.getString("setting_phones"); boolean qch_white_list_Array = Settings.System.putString(mContext.getContentResolver(), "qch_white_list_Array", setting_phones); // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); - Log.e("SystemSetting", "qch_white_list_Array---------" + qch_white_list_Array + "---" + setting_phones); + Log.e("SystemSetting", "qch_white_list_Array:" + qch_white_list_Array + "---" + setting_phones); int setting_memory = changeNum(jsonObject.getInteger("setting_memory")); boolean qch_sdcard_forbid_on = Settings.System.putInt(mContext.getContentResolver(), "qch_sdcard_forbid_on", setting_memory); - Log.e("SystemSetting", "qch_sdcard_forbid_on---------" + qch_sdcard_forbid_on); + Log.e("SystemSetting", "qch_sdcard_forbid_on:" + qch_sdcard_forbid_on); } catch (Exception e) { Log.e(TAG, "setPhoneList: " + e.getMessage()); } diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/Utils.java b/app/src/main/java/com/mjsheng/myappstore/utils/Utils.java index 944bdee..6c42fcf 100644 --- a/app/src/main/java/com/mjsheng/myappstore/utils/Utils.java +++ b/app/src/main/java/com/mjsheng/myappstore/utils/Utils.java @@ -943,7 +943,6 @@ public class Utils { MySQLData.SetBooleanData(context, CommonDatas.IS_RESET, true); } } - } synchronized private static int getBatteryLevel(Context mContext) { @@ -1018,9 +1017,7 @@ public class Utils { private static String getMD5fromFileName(String fileName) { int position = fileName.lastIndexOf("/"); - return fileName.substring(position + 9, fileName.length() - 4); - } public static void ariaDownload(Context context, String url, JSONObject jsonObject) { @@ -1170,13 +1167,12 @@ public class Utils { int screenWidth = (int) (width / density); // 屏幕宽度(dp) int screenHeight = (int) (height / density);// 屏幕高度(dp) - - Log.e("h_bl", "屏幕宽度(像素):" + width); - Log.e("h_bl", "屏幕高度(像素):" + height); - Log.e("h_bl", "屏幕密度(0.75 / 1.0 / 1.5):" + density); - Log.e("h_bl", "屏幕密度dpi(120 / 160 / 240):" + densityDpi); - Log.e("h_bl", "屏幕宽度(dp):" + screenWidth); - Log.e("h_bl", "屏幕高度(dp):" + screenHeight); +// Log.e("h_bl", "屏幕宽度(像素):" + width); +// Log.e("h_bl", "屏幕高度(像素):" + height); +// Log.e("h_bl", "屏幕密度(0.75 / 1.0 / 1.5):" + density); +// Log.e("h_bl", "屏幕密度dpi(120 / 160 / 240):" + densityDpi); +// Log.e("h_bl", "屏幕宽度(dp):" + screenWidth); +// Log.e("h_bl", "屏幕高度(dp):" + screenHeight); return width + "×" + height; } diff --git a/app/src/main/res/drawable-hdpi/back.png b/app/src/main/res/drawable-hdpi/back.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb1c1044d15458c0c8e7d73f76948eeb32e981d GIT binary patch literal 2040 zcmaJ?X;f2Z8V-vPBf(I#vYcRu4Fw8WL6R#0vakgL5i$^{TC&_gge>G_U~lL5I_O_tg*WP@6Vuu-VUXoF5F&j(?G49rz&*u=*@Ul9o^ z1)G=|E~E-|JTOm{uu~7F?@STPcjn7k3Sx8=A<_UK0%{PJ5)A4B4Fnk2#Fx4NvbG;n zh=i9AIG;`YJt>J$MBr)lAR(L_9xA8O!Uz#8GA*1I#-xQ1=u{emLS;~Bj8GaKpt1m3 zIN{YpM55^xN+69N_bL{$V-xdWSO-uj#l^+sVg^~O&!x~M+oY*)fjUKneo7cVvHHg{uh^wPdW?x33oYjeZj@U3Z z_1BxJo*b{M?+OBqHjw~RW$?Ed-{fqj%G^$8hpflg=3>gdJh5+cFhP!%J$ozCYLA+m zxxU?As{?Y3K5uO9_B!l~6AI2-t3QeQFvO!Tqz?XJym5NhiGPwlE(PXx-8o*8iFe;0 z9!wIitZ}ZvEseJi@>yjMYieq`78e(vd2Jus{;zMJK7D!(i^ZA}?xcsF1}SGLwQ_5?b5&}tQ!N#$=<-fJGk2Bz4+;1xBsx@v1*Utf_j zX{x`!|LD-rUtA5Mq|jYMKOZog%^Sr>9hATM2!+D9ukJ=Wd0Xsq@ZKk z_x^27N6=5GlO}9G)$;4Kr>NCobsR0()KaRe-X2qUS~h$MCkl9GPtxp1Le21vwJpJ%sK zS#oqPys;9Fct_w$>wcxT((($hXISh1h9&wRUJx&l2dKWW+` zAflr-0059SGCUk-sR(Y0UU10mKAkoY z*dcIR%=za(d3jvD=N8ctTuxw=7kp%K(u?YDJaA(}5R@u@|^p) zH8b1lIQ*W=^*1LsUyj(?8iM7VeUAE;C_X$Gxpu-KFk4erNAC62v@_k2tC1mVBDEH?6Ry*IP+cWW-V zJHGcMyljE)rdrq8r$|?}O9~V&G=x#UsVxARRv!a@ST}r%Te`a4r(s=r z<+TS3Cz_hdybC1emM%(kFDOrc^^>NG$7if&C}(VgHn-X8y_!oQEKle2c4T8eZ>iyK(N8>={%CiRPm z#YYl5SR`S8LZh$_i>(q+L@y;X#R{s|9GBk73z-ZQpo&azD*DJI15;#*Q;{ySQ~g5SeZC9~ z%#NNejv*Dd-o$uk2s=vL%M}q^+NI#M+I;U18;-EOKb%?>zAb2CmtP(n|^r_!xM^>2BYB6X{((X_HN6-u+qrx&DLU+_@)9 zzMZ!J|L1>>P&miLVy_R)n_~K#)?cYNzPbNwV#dQPowkEwhYxKqSZ2_ty27DPcUjxf z4|zxI+FBD6ABm`iyVo7OT`F|q`RB`lZf4eOt_Ef2>_`w##JwD%TdE?GL32M@~9+;Dz)G_zq?w!`g zhw2@s1Pd2Vm-$`E<1({%k^ki{0(ZFgbymEL z`Czmovon&n{VCJr6IKbVCn;3-`kxkk0k8fvNQR&Ju&#Dc&g2i zXS3#(GpBAa`S}(p`_+Qfmy$R_Pq`eR*Red&R5Ww=N!ukmZc*ncreie(>kQ zU)oB^H@8Yy+-f@bkjt;BLsiuwLA`c*gMriKYb){v1nZ6+{V%De&68Kb)Rp{TmV%b3 zpt*26^FLO*2`|~}U8D>qYD)^TE%H#5)3iIl7S|Lj@O*uz$|aX|B@GQ4Lfi-Byb8~7 zwewvI6k0ZSg27}BPGc938H&M&J`}5R?+nUveEQk&uiwi#&xChqywtevwl0K!Uc>8y z^A~1|r?_2Axis_D(l5L*Yde%a%G|kk%I;ZTaAiv5vDytcRvo%x^{oC+Qlg*o?k%~A z)50@n3t1#(iwWN@UTU>L;*RjeGO;;#P8FU}{SdIiPH+$7y9W&C3;Qelfu5$;rdz3`ZJAFdWSG98rd#wM#;}34>q+VC6 znNqW9$HWscMwN1pgM^lOc+6PDnA~kVP5Y~m&@+{pF(*IUytH_F+`m3T#3k=D>zSuB zCw|pvDUg_YZZ`kn=#21FA?uEaO&0s`ecjicLeV_>s$y-mJnR+QblU1?ch&m*{h@z= Yp)_y5p{uxT6ax@=y85}Sb4q9e0B(QG8UO$Q delta 1442 zcmZ|Gc{mdc0LSr}Os-hUJ4c1stXy*~XRHldo7{w=;YEzO2~CJOdXss#;Z2SqUPU}% zidL4nBD~E}uG|ts;(6G6{L%YozdwJ^=Q|+tL9P)4^f5L?VvLMXCK!Y*5`nXHkkL=k z7EtAXWc*X4BZ{JYMb#t&07v?;XdBmr$#oy^Fd3&4mh&xjb;Alas9i^~*-_&poHIHWq)STwBpj11|OB5!=xh@#qIyTKdXd*-;4dM5S zvIZU8H`p|G^!NIS<#nEE^b@o?*ae$C8nl+=alAE!@{iuoW~Dmzyt`6vwnh_^%A`Wz zy*XMd8VEbCCtdTyRxn4BZw@1OQuBZ+B8S}Y zYh|Y$p%^@ps-`_vvQhrl74RLfP2$Y}OGT{!UQD7r}7!iO#=xJA9 zq?DPxqs_>A9_``pr@&_el%(p6LJ-jG*RX56aF%GJls;!sI3VWJ_`oHwfC;fFfEe-Y z)EaT+uiZXXD$epRF|MG z3C(kU^_jcR5k1@i{~Z1;xhjVsp(RDe03pt-=(muZ8+v9HB=$QK#+o&kjV>|HV|F;x z8Uo@h!TLp$%a$5TN@Ycpxf=b)BFopN?DK^+Oh{$S)w4& zJtmMJzRhI1QW6W3K{=4yIt@}^B3D0qpXm!F0>^Oso(7A;*dyPig?=`SEZ7j~EY$7#&biVoxat zBl$Q@`)+C%K1kX^ibauf)2vT7JE_a&#>_k|L9Z?0E_){V_E1fGCZ$;OkWwkjqlyUG zo=X#(mogx?H}2Lwo2&uu$? z{dOw%x~Cn*N>^p}>W#A?v0Oe$doC2**-7g~IINGI8uWa^T?{;0VX315a!SG)aOLzFkH`)88$M*4(i^UU!%>f94^!^eaT6oiB1a zVkgnqKf6NQdua=p$MAlVZPOj37O zDe=sOMPF4aRM0C`fJJlHAZ~%$Caxp4NjKgQce%~FImhp0udi>fPkQY-rC4uu^gie9 ze&Ii0NMgt!m!bPP0-z7BoG(rr-Oc{~7HW$(mizilqQ|BDuFNGAd+UE9cs3N`%c20$jQ7~#X$i34($bpAI5)ugEM(TKT zK1%$ua~Ko2=bV(D1T77e%Li@-6P_mMas37Hj@~y#-$9v3)xPG3&``jbEh2PULGrKS zKQFN#t?-idGy9a(NoWIZpK7(IAt0cMp_@53K>w^6>hE^SR21}*w%xC`0x4W847NEe zA8O8IPcxyKsthWyLmH^{7x}j$vaeXt8&vYOY1Ew`P)-4 zmak5~Kocu8)@OR>+VV{`aYWa1yBX%X&7oX{X&NzpyRAVo>{uBA{Wi2E+*(U_i*}ut z;tu^>nRHhz)--vP!K{@QU)pwW)yH&np}kx~9)gLXrsd=P6Q4h@5F!96A_pVu5Z>nm zva8v89lzCXP~-|w9t#*)py-q@m7;I4BE7bjwVJcP_n|quywuyQ;f6Rcp=zD`fj*)o zlspg3LV+ayV~0CY?w@#*^aplQ*R**&NBul?`M+N`X`i8qIUyS^f0-SwF2XI-(sS?mumd54hr2Ipi9ob7%}*X~o&pY3>`oJ4g=R#pqVxDOS7C}AUGAJz zP+!uvtlWJs-~9!C-|7iXw%=ZI@(dMp#y2FP>1qt0-|+may!5t*vv^zE*u9N6M^xHk z6htFQBuBTD_lD)^4Q+{+uX+p@SIF`Ll5Y6WRQGD@E(zA=;W_i+!;P^z1OJr!tA_jNZC+gYmydx6&Ug6Im-0!95Hr)qdSADi{ttI}k$9v(vquXSo+0f1~dr zme$&6)mtp1>?U{$A-~m~J_(aiUJ=1b6Op2*TMAy*z=pBDR_6@os;YdIFU2H|==X&r zYcj1S)AoJg4th%}p=o%1Md2#{-u&ecl3zokoxJuT(9RI0Pe-<8ZnG5>*h|hLkK88avj{0-=KCOZ!ZH9*h!g8mgri1AlDV?`i5@6HQGH4PelCbXMc?dOk_PaJ_eQ)-ZWY<-s@Uf%U z)o_P})Qa%c4&iN2?{tVEB%A?3a#i;_yoeT8t)YPj%CH+x&>x9cf7kzWBVmLdNWRdk z>UbE3Bch5(dJeHRH<-0K2I3LPct-}c)&Lb^uQP!S%!u9pVe;L=pk4fV1^2YFk78ki zzg~qCD6><;&s2}f=8Sh8o3ZI?jP3NXYlyptIgmx~b|nBgfRD8?PBH&&dh<%Xr(Ba+ z4p};V3EE_;jJllA+)uJsV)BUz++Y)Qye&P2NLW3#rR%$T`S)!y@Yae2{~-f5+VwpC zb;e)Li}C=_kX60*U?3OThH;>bsztsVx1Rf;o*|X*d0e-!Naz3l_>C- zIpHPF;@Pb#37Zxh0ZO$TFiq6z@+8RA_bo;dfbI$5hyrgCrY%s@C@!Cf+63LenJ!14 z7hYz}qL`v5bbUr)%|n8S*~qy*(8LDz3SRo(E{<{E-sST*x-7#UGgTY#3{d{V5Kdm8 z&DH<*P>wwGhAL3N!U7>vSq{ARmBNN1fzmZb5HGqn@%e2mJL2Zr;IX!Gel`b}qykR9 zI1TLf9b7-4orKyBiAVxQL^0@Xvuc|6M6&r|-a7_tpjzJ7n+b+WnesH(hXEP((*n{m z*oW56HyD`w^8<*^qd#)uEHWeSOnou9`_re;s?wv25y4B-@U{I7`*wVGrLnUF5}~V6 z4p!9^%Ly0-gr7d`@>jhErp%5|{nk!ScD=iD;jnO^V%KjE9=^}!80P)t?rZPyGjPl- z6wueo)e(ar3iw6a+k#@^_F=kxy<=G5bsa+DsTRvw(LfZA#%Z1vxoaG&gF7)6XDwyY zwUGy1&=End^MhkM5mk{plt$Q9Fm%jgAD)`&Gz-G@C6wm1dX7Qct%E_}bDSY$UHl&Q z)EJ5_pKyl(F-j4bV6bj1Tb=@}aH5PG0erh_4pqm|euiqaq=kP(yhK2JIl(xZ z!EZtPRRXQj^f@p+iSk_>0t{{o^Y@>gPk(NU?>cHRF~5AT3oIMO?CucK;LXh8Km!Z7 zvB9Tj%wBAoRO9owiZbNlq`p{WBTvp0&|x~4~5@AxC661zkm!jna03v ziX>?DsewW;OWUEO28p*9c3T@vT@bhI2uKCc9E5Pt<;I8EQGrKiI0ayNp42!!aDgD^ zkWw1OmBR+6vZyk+$#IxI|Mxtj$RIeF_cH7D)TSTD@9UH1_P2fLkIn=P?*GxAfl?zo zwBmnJ>xyef^~X*P$h4b7>4*N0yzVZcR^VO=f}3ypbX%~B&A+fVigei5+RZqr#QZn0 z@*0meyCWF`3pO$&0q9RyP-KIM zPIZ{~wU`fAE{Ih_Se8;!jseo9u*s7-a})xfKY^EGAP&=~kDAm+x^c*WFMEo?)vD2A zRb+SdT_pz0;t*nZ`XQZ;37zgKw${LICB05GvNbpL&EdA?R!1p#<^4al{r-b2-;(J3 z;umhTy(U^SJ4%qY2Pbk#O+i{!8VPN=qKDw8KS-Y$gY2H4w&({2RGN@+J##}+7x=Xj z88Y})IbEqUwPddA>?HrgmMMZerzNG!J;c^}+u8<2Lk0SC2d#u z<3BljNZW_YiJ_Gwv99(+!qb4r6#6`(bZ;lMR67rN-u$E_TmK_Sf#1mo+E&`NyMgH{7ljey8JH09ot?$w zsur^M(bSNn0j?!{@ta}5OR<9`I?0|Jx^JS%#k`|?)j+(sL$fw|$ayoINRrjSL9=~D6r>TH#L;wQNO zIZ+Y<+jU>Lyu(J^@{;k6_J=&t;%hgAy@-3450j+}0-!(JYZ%8WCsY^3$k6AZ!kL?N zIG#J_h=uXhQz400{y<$&;{=TXqUHc3ca)Do}gjEEAj<(K_{C8iYLu0PR^DA8{ zM$~>(aM0QrOF*w(Y|P%Qe=0hqtb^Orf5Hz47WET-kWTJ!dTZ$_b+J11+O8JIj?6%g z%(mVAs%iDCFHehZ1vWotHc!y`!o5?6sTy)Ao}^%y#?n0>XNJ4Y4MFJ6C?;UzsQ2MuPl ze`F2Z%CN+lIy}_k10Y+)@?TDANR3=^9kgS;qvNNOxYzj3K_(0~PD*0Vb7X+Up4&&O zwM#7aDgOk(O0I%dp$1J14hxin_Y;IPv^lwiT3QurUk$0T2y1tk@@3yA>sq*!7t37L z)6o*P->PUOFU;Tl>J0d=kdm>l-N_f1?kL<|$S~&Iie^10SSj?XjT?&`PIml#uC~J( zEgA*Pi31=a@WU_7UCXM2*YCJegdLs=JI|<87)b!MrZH1v%jhiKGp-eu`=~I;``)?W z4HB=t$use0m(c@Ejv1A{BrV*ilKIt&;P`S+KGH?HLSG0Lj<2e7ypz*rHXw4s2(&ec zZ9goP_;On3B+je=rU}(>QTpmW`Y!heG9C{w_=7>PO`dM)+=(VkCTMM9D@mwfs>XJa zTY#1YnI=Z*h(&{JOAk9Un|?n^@ULjTi1W$`8S;kl3fFnPWWvKssZUfR=i{zu*`%hS zQ7E3>2cWg%6Gtc&VOK?RIrc0wE_^+jjX>EVm^0^~2&qzCkQ13I%^Eejaj1Tb17=_T zH=+Qd&hyIIjG8H-QN5DW+$S4WZe@G{Nq`+6K3rkdZrw>C2DK4J$g}&21cvDj?~Zw# zQM}j@74S9yjfRGuKa(#_x@7*2sCAuhZ9ds3&kBpi#F?m`Pg)FUB~M=Wmg_#SnP?13 zmano~wOClrYAq||qXy}7l#X0K*Du}?|2CGlZW>%9SwTRS=K$|@%29olZ}(CPFfUxq zAmGMt#N=h$?lkp`rbVU0%MqAz)u&t9q^HYBolJgf_fuG% zV2{aF=b;G$!#D^k^DrOIj~29eLYwP^#)Kv__WjuUp^nvXR#1I10KZ2KA2KCrT^Y=E{^{wt6PfPGE0F#kbP% zjtvby@WCtBgOp{Jw|&Bv5tdEPM9D;%$-0Y_p|Pz!D!49U$(oH#a^tYFG_9_p=R4fq za?O8a5}+0Cl4?neI+*#wi4gU z{`<&u{oP1PZd%BSW$}+(XfLKd+?j{@E{<_r8L+N>78vnM`xuow{1Oe$O-g zdG_ZUOI0>=#Y5jd{07kdzT!Lo!^)+~?S$jU*42NxC&^>s7U)Z|hEC}6bI>%$lEy`M zQcMaG!Ks8v#@mJ1{R3So>9g{AdWgOzu@3uh0UAhs?i4EpMjLnNM0ZV0In@e0`M+aDQ(lcL*nL5p4cRGK-Y6&@ZOJtG1GO-|w7JKs zcC2ZA7H^AB1%hIKfND$f4$D%DJWoB&%wcyJY>K zdSvU5QpOjkx)-p%!O41fU?XqMdTmad8eJyQP&Zk^ z3!;jOm|}yEG^vCh#>AM^vo#KB2p*@Ujo-x|FB z1$wUr0G7|OLQhl7-hLXXnEK=gaYwqYwo34;7ImiLGOVR*C!pDk-x4wVysIa?=cld; zHHOZa9+jblDLNm;nWgK-l)SIcp~SGc#T+%Z$`r(D-yKELtrHcT6C*T+7z&SPv5yx@ z1&&WPXjPqZn2V=|vOF858>WXR;wY7J9U_TEfbQf+=CoASCK8H;!X$J@e78ezT=`u@ zlxxne8v34Plyak6Gqjp<<9#w|o`kNVgtRE?9Agy3C$#QsTn;;Svb$iSoivFpAjf?4 zrdB#)f*~TmKp%1+&KBAr5+Ad0ctQM*AFBnV7W2a@CJgtyR$~ND;a~!3u zsEut9;`PrwXRli0p^*jsT){k|k=q4ynd;?{g&cvI;h`*!=mpSdiRezt=KVUc={ap$ z2*P-((!Y}Fl>K`Y&zV;k{C2K*(KPY>3-|YBg#d+y(2)dNJ4OGa{;?CZ8CE^LO2?wB zYcBMN-^LciX?!^zx`X5pqymRc$#>Kx=A_E+#%-OiZno5(4J(P`WU9TFp7DT3&vcq# z;8w84zkx4>O3Y2e_VZc##}hQ^%q6;nKjSkmqP4X8UJ=>hfB|mw@DO!L?f;I zG;VlcgxT+w_UzmkhC8)_F?I_i4cnB3{ZuR`iqsEF@fvh+|MK4t? zbyet8yNQ2kk^7}$?X5#y#!$v`Zolo0x+7IOTb6U zL35ztgGR?Oh3Ir^o51?>$S__IzpI-!5ot1oF(m(!DIJiya)!DFB}A{$Ob%y$qagtPQ-fbc-gk!XOiwb%Tg>*`^eioq!Z8vbNGXp|8gO zc}btg+{x*KtbKff9rbN-jL=O9GVguvw3kgS;i*6S;^`ns;0pm(Jc0|A3{+Q`^x6vFBSlj~ zv5VZ#TN~|R2F*GsQiv$Lv5YxsJ8A!Tbf-waEybS7$R1n*CiNb9I^}XANd^~^)IEwZ zYg0O*2irwaz;Dw?*X2sEs~@kB{v60oG9+~`r@$V9cJ9m%_Q~HhF%fh*?80BAS8&cY zXh2mOMxmLM()we!y`mZAdbL zWl9dM@mee=n;QAnEjW`sVHsE;;QyL{UEGPs$rLgHvL-Rm7E)(9r?k{eDkW7>Eqmb| z$-9|PM*>AIbjaw~kV&YDL(x=BS@cVsoHJ9bRaKjFXmzmpaGWvaDwS&Us27Yf$R}U_ z?HZkEw^Ew#d{c=H%xEBRf`4vyzWa(3?e@x76b6z8`Ierv$$+v`Q}QpQ*yvH$pxM4c z$B}&lj25}66|~eSX|vJ-575EaDt{$t$X#1ewCLZw!*7S2e{5p>tmtkV=bRimNuT=( z0ovWQw$UoOnpL4*rLgxVt){)33~rR z_i^pFr+;pi`tR4=2;Wn(ux+)))wh&YD}1{Ffc%EbFX%Fq3_YO%#slTfZGtZ?@o}1- zv6}uQDjK6I&1@(i9vnPYV7ITi6$ckkP6$YbAq9Tr)jM*%kofSLx|QBK9VwXZS!6?^ zTBqDwIU*^nj$UXk05Z6UjbB#dOLNwD;VJ$2Jo1_h9&$Myrr7nO0@@xG%+w8Tztc}c=jN{KI0H0uQe&`Ww zF0JQ*<>#YEPuUTbnD2`wPAxyL9zo^+9kg(VS01!}s1av?9a6{ZqrE013krj6+&6mC zt7{eQ6Q)9olCgN#jcRV3^YT&0zpC3R-&`Sx>g?H3+Gj*zF#=tWVG3||=cv|QI!}*y z%$*`L8QZPC>sfm``_#ETwJey>;GvRggNu1O7I-z7 zNR6jqxO%zw)^NVngpEyY+7{l>3u`zN@$L(^j4C5D9WC}OmUc~U^TB&%R^t$v?Qja) z+AXQ_g4VX=@z}}sUOW}B{a%c4=6%d4KSfMFTUv5r!$z;86kq>Xm$tXGSOg${RqRGq zKA6I_P2+^383z8{o;vQYY_9JqbB`hQN#u%()Cz;aa`1FjJ0n_z-MI3oOS{-sR|_N5 zU+*SgUBSexcZyt^7#bPMi#_!ckFVlZ*;oz@r~c+G_{y!F&JVoc#dC5zKBO0fGF`oM zNWkwVC>(F` zTQ%lndRkWwg4;uufU$-mJGqJHe1l~N5Ak@pL=rU6psyo;YWiu=uqkboo1fmZ)<;6s z{cB!)Tfu$mOnBT84_#?dSBI%qCw`m^a=y^O0vn|YT*vc85G(1)mr>_w+kQ8)_rF-G z@%sdl+>{dVi^M-?1}+u8fVt-rQrnL601~VJBvt+EyOdU3lQf|3gJy2qFHA7oXmimtsjkcG)o5~iG@})@L{{ZRQmih}!eeV&f94TOwF8dB za+0~eUc$xYhpOKmM?lu!tY+*Kn;a5p`QH^D1Ji3|YZM z&Y%a&T8y5LP8%(-r8uq)TC79)Ey6;LX9)rT*B#?4G1L!FrYOdu=qj>IpY}|?to;Ku zHPkH}E+`-2qxaG0Lm`F)j77AxSYH0H4H+2cRuxIR&$sGS1$-n2hV~;%HxEzKi#~SB zak+6iM}#->9hMJZ3hR67q+T$)dA(mj4TSt0;_rQZaLSm9p_o+s76E~|~l#azA-OV>!WE91S$j`@?;$+Y4^=8RYZ0HFi z^fh|#iLI-4&Kque4Z+GtSO301gd-J1-X6fue%LU-g~`#>{#O8XW=uR@UM2ma#kWO- z6XVzI6`pyxSJqi-8hOysMl+izL2madL5YpeU5UC<*IXR^OeGulr*_I}@ICk65N@L1SxQn=S#6?C)W$b7?(_;;aTDwW6!M+b^4UO9JjP(@ zhR{?6`eej_#qG0On9drc3z*YRTX`+fRm5R~^ww?n;R&r@f@T?{@**8(nR-jQDRJ}9 zi3Rz0KAZ5E$Uw>_q{tH{OIupQU6RekaSKiCH)yZ>7Ft%)UuzHovmw51tTn9EPcheQ{H* zq=oN_&~u^5gy|we|KPs_c;v@?U#DzXRau(}OVYG2Bqp1YBM%!STP1Vu=vXbJ^eIo+ z%QwR^C&bhFj3kOS%!r6D=~}s`tA|41Btst17zn-&m!o5<#1i;E(g?8m8e+_}l^9Zf zD-E*@X`D%Onl(VjD>t&jNJmoTn}8r@3KIB^Rvpb0ud_8+GvG@;vkz8vRf32*H@z$< zwZH)(?V@gOo12dhoeEI{?fWD>6SA9j9V{VWSWN&{XP}Nrjq7s3hO@ILsl-jhBhbo4FV|wCT(|xq`Y_dwItVCJ7TKT(dK?v`BlXt?L6W0IUMr|OCnSya{3!{ z65A+3`Q=~zWk}w>Bh?AMO`4c!Iv(tga7b>W845djyvTT7>Y&T?qU8VCLS2dgS#+u1 zxg4MVoIuJs_K_%XR^6l);npbe+AVPL3mL)(->am)-r{}+%q0z(M`fjnI%f|)7bdzF zEK%rn$1IE1BXAYgqEw|+zIsmXPJ5?sOExHfhec6M|IJrzn(*BI)@Abn zVL6qyC(05TE1y4E*+i+t^(4X8YTJwYg#+eba-{R7nB_7B9F23P#`@f07)Z891pGb- z&E}2Q`l{>;B)oSDKhHhCUo_cfm%mp3rT6hv{mA>-9+6;tQ^l9Z#u=hXo!Zj+OPf!H zIN`HQwyX-BE>*mFu>>ktNZEOs+<;TPZMq0N4rUUWTQ~%miY#fYz}*HE)l_$z@f+mL znG8Dd)K*c1XXpCMlV#{t>HIlgP$#pJsM= ziq4H}>oP9*BgxoB}| z_*1x=!E8jwIEZelbM|TShq|Y$!ZtW_6(MwZy$dXDtB%b7Q%m``pPU3ro^m3i|GI3u zbDq&hMuN6p%jwPvSC@I^`N$C;?su#*yZ|)dt9a&6QN(M~8#qVTtS@3!$^+*XF8#cx z{kCb=-4^kk2d>F&U&IDIF>HrQcXvm&;H`tI?>g@v%uyRh%)C1{%QO5~{&9Ds?XcqMQxSTQS zB3av$k4~U5CFmLCM_`wJ8Wa_*^x~16|5fC6zEJfh-cdFqrR!GcL8MH`i3Kn~7aohN z5*C+QNW?G5Nf9s*sw>Do2E?YHpY#|Zu%3OV|3t)UzyZB9Uhj3$;Y17LQ^TT(pfrJh z|AP4a2uhbNm4XmWWvVut-z0@zzD`guG5m)CX}S{~JCcMZP*s+?x`TV-G4ULH=SwaX z#$C>sPd{dvJ4%#S<*Cf#RRZAN%thQ|^91CFBcCnjdYG0gbIt!aY7>^VaIKvP_8%+y zRRgYu3ij5)X(K?o3~=B2SsdYz>mPS3tGr&raxF_;DMr%QgiDwCYvaZ*{EO6rVh{Ho zu+t29&PX*4EAdIi`c%PAEZWgAn#^V-zISXih$Lx^pA!=h`u;t@CES{0e)8DjnqWN0Vcm z10PMrHGf5YQEAN%eul}~`>FpIv1~-7rh|Bcsx{y7(T#-699?O7OM#4ZYQ1u4PSttA zNIu2|ekFbV+dJ+;K2Ye#{NWt*rcO91evf5Uz&|-xFEyGa02Ws?Z){)r7xqru8`|Qe6 z@m2E$*alEo44W5DnkH(4^nRm{(rQvdNMibWoDTbc1RMNXzWx%Z`6#F01^JwpIsSmd zl$)9-*Z?-t03FD_g*#5yZZ9`1`JY?sgz6&kJ`(X3s_JDvTKN9CS2qQ1NFfPuxJ9L= z&wkRQED!8R<-@rMsX1v%D85VzMNCM&EU>?j{S3rBuHSr;YQmB>Ex1MBh|dvXY{0!~ z_QkIU2fTXc@S6PgI1^2Gb5+(h39CGkmNVocwJ)*H!0Sm+x$As?7RyNWVsvPdDau&` zisf%aVf>j~(6CuIv$K%qAgxf6SVzYK^E1ODJF5jahzP>|dcjcN54F>G6AIDvfC$*Pv?S9Gpe>6$zpjczh?O~?quRgw?rCX8si5dB0*|W1_p%M*ECX$1aw?=j2PugO#I&)R%+jpv3muR5RzHx6T zEfCA&19t540iw^MV-Fo82;I;5wLanHJ0roU{dh<>1a5h6S(px@qH*(Vry3@f)TE9hF-h+_IJ@NSrAeR6Qf|u+;k}DIO95 zAF2tb%?vIVKF#&4L(Y-81RY1gt#WOi!C9mrDdf>^d>bm&mT*n>MkgsrW1x)NQ7;lw z=)Xw$4}*2Jqo%16VvWk~%KNQgT)L>E6`AMd^*@ha={?tTFWqqd;tw>3F#7>yfiP78IO|rbC=J(}7lQ8xeWX z`>^Vp{J_H%kahPbJ%pfHec05-O|2@MY`c7gS<+Ac#F5AE)p?8y09HQx_|508Oz5In z9ez1ln9hMvp_&|2BPnahRFmiguU5HM$lL$1;I9_McaKVvUv;O2r|JcD#>`1Vkcp-= z37_}_vOJp$SSW{`2&wMa+B4JBuH~yoE0F3$Oj8^3pyIzlB5QUQ(OA`GioDi>FxKAgm4TS)7KisLG=|Ki zZbfFTkwk&3ma!75aHF!p8_HI|S(?MCT41w%$Pb=(VDq|HvI z``F6;M4^frA`KDr-d5?oNmz#B^5G*)YZev?%UlU-DP2ed*Z$z*aqnt!|5a8w4VyL8 zAs){n4Lu$ltp8A-E3lMShkO}Z7t8XgMSY+K=LCZLPxsRoc0-88m8!sW!oYkUXr=p-TdX>P(o^ zMi2;MB12ArnRo71P*6^DyT6uMw1=|bAGk3o1LejjmqB3KJY(G59JeDz zre;r;chc#r5{S7+3L{0f>Fa^|p9__Rbl%bz2JmK%p3j2N^8Z|mOkyttCd-}qoJm}? zQ>2ug#$Hf^OsmY$pGd}f43mq81OE`n2R2Zj;52F@PuxRQ|A%LpJN%;iC0S}$k=)f8rW zrACWioon5Ss1xa{7g|dP99t-ag;EOkV=Zf9qAiEg*HD?GL|DU6ZX6XeP=!R> zA4fbsW&|(Y!=HrOa-mtBory#8+c)Ji;=<#DtNsxi41Oaa$v!#1W7h6FoLTM0fzt3~ zv(;#HeH|SAuIHO@XHa^ZrTfeKrCv~gezDg+`4{oK1rgg^W^YbXlhmYRY_>&7^rn=r z$2Y?w2&QW@0>UqhYS6D^>2GjnLu#Ct|G@oy!+03P+lYn|2zg_O%$$yPyy^?f$`6iW zeEW3OwM*#z$y54TscfwZna6>@fwSJpO6#gG8`vnlc0;6vI<^j?f#MBe`A_v4=Ibx4 z$fxEdzq9SDG-LBmzAKy<8eafFAB&9H1gE=`Fh5(Kv_s&6WBvbCo3UqKARS7~+6ZYu z3$jrdjJ+A*^<_t#D+-Iio zkN&ul9yC6jaMC8Z@`v2_o93D=hXX3+bO3`)PuVK1Kc;z4T-d3FXq7N8kEE0PK~+@M zbJX?|YLLS=%8q0n6oBf`@|IZC7B~QD;u1$j4lA#u7E|6o?$u?gm2OMhF_HzE&X;el zZNV3tzz^~J5}oDd9$uVFM+W<&bdrR>b3y1-a~}8nWmhuJoX{e<>m#K;PXW5vAmkY< zUS>Dk-CXwr#WRQeb|{&5a+w zp=4F^yHDb8W3@^O|~Yu|mC7c6MFz z>EQh)E>|a5+(vKBWq3g1gN?E!mt*#DJk>Cbyqw#XJ(Cu_Wm1#%T}@Fr_U@Fh7~!yA z9k}Vw+WAyZ2CVKoN_0y$1m`A*K%L)wqq(Zd-p=`rMm9uf7~H-bYvWQgrvlj;I`(~{ z&0+D63(E1~iHBD+eQ1PDM9t%uIayT&CRohGy>UvlgROaEx7ftGo`qYN9R+&fg*=!D zOA=^hx0t~<^On)*pu%QDuV3{=wnF;+7O2DK)Lh(QNjW`J2)!lZ&Ji&mz$A0cNu zBChwP8fTioBMWo_nop3}FFl?Je|S{gtP>fRR9#{OTqL*RVDB)Tl(rn9IM%x?rjvUV zf4vM7PEwbQvJc8#F54G1J+*+c!mG_Q9rM-Yp zOF_3#EywfQZRs+Ycb@`B+TaJ#jxZa)Q7~bVewEz9&-(kIN3wcs-;czd8$~C?a8;Dufp2b4vlUuPOpZ}Lna^60p$&UF=hIZSNq5KA=KAJPZ>gae|2IBZ_e}jA zxTV!T{|5)@IQURyZOwg*07Y6{g$-k*^+n=939UX%MLq5~I=&?CC}#IaEOg~M2t{H> zxk=-&z;f-F<@!|9-+gbxm1KG+c7U}MQ{HOwFEvbbF1HR0be@@9{kB0ck`Q#yVWTi9 zr$8UMoalGxPvCYra2w(u*a+m$;4h?jbVDLQ&OspvCW1vrJQIIyEs>TwV|Q^sk%3AX z@O;hO?~>Ce8~aSM8LptT zSCSsf;Vo!z+}OtT`HtH|9`E7)o;tJx?`Kk&)Jxvnb$Qw8V4&-%10nBuxG@%|wT~WP z?c9)Iwr z_EfN%U$t?JsQzKMuIPV;i8) z=2Eo+x7^(+pPOMt0aP28Gs@#`T%j@Wjf5^E)FqSQop(>DBQ6iGn+Uug52Rf+ zu*WEtgsUg-Bgsw9O;3@(-)^t+ z*@=@x($$jE%?7+)@AML3sb4(o>xZ01dhwX_x|en+vfquwU&})aXMpMoj1>vFki)yN z`fd+*8y>pj;EO1Nr&Vv?7TD3#u6kB^)!7m)+_?dhoqX?A>n+6qR!%iENogb2rkQ5n6`7m9QDz zvCpc@OyYZmgFj_+tXUXmE{1gmlDV4{p36Qjyw##QdUGYEkN8j{JVPKfT zjQ~vRjlX34s}vdE6_RO~y%I~@joYfw3@^H8P&9LF>?KbC#pZJEze2`K+H}RbDuvpQ zcSBJFC$E`41_R>VT%^pvQQ0h^mrpv{_I2#3_vXs#E{!_;3-6PLatHTq*>4*D`>R8U z-8gc{hjrJEhH>`NMMXt}xe@<1c3ut%^^T^5tB9tv2Yg%gK_WN@I>#R?Ab0&EY@c?} z8i*zlBLoUioK2Q&yLvdIIL|(;nIW1>=$*crUy@2%UnF=s=8kRytq}685{q`VSs5&X zgB&|;aFBzw>GsheXnAKxtn?9L{`;A1KSqN|Xu`{zSWT7KQ?=(uQK^l*B_BJ7r&13Q z0-IiaayrZxb?opW_~&<5tuH=QB!$U<$z&S;*%`1gPbF`wGiQ$0OZuX7wd#|+sezfT zuePUA=g|Ai!A&Aw=V@lE1MUB*$+4KluzvJI*IBmE!#}&*-Ej6sNp+D8{oNSl?vkc6 z*0y+2*NV0> z{&(PIAsc!jJ0$8uQ}lWnGo0B0)unA^iO_}GsEpK5aFn}F`{;r%iO?19Gx+5Uskw*h zGoE4D(KE|^bH2L%3=Ki|iJ=h51V$6L-U>yWx44@VD4KvPl*WD)77d3~mD6H23X-wi zWNug*yu$eFd#m#}OunY2g}HqiT4^koTq5A)CV&J^yG}$rYTuwVHKPx79CB;s;_`L- zroG)?k3V{RYNVDEPbxTf4F9<&8gXQehtHTbTJPiHS6^f901#iH|9zk}$o2l&Y-w3<^$3v9 zZQ*}X0CjUbA~aZ9wtegXu#R=iq-5aIoo^!ux$6da*LOz}`okoIwr&8=! z%e*&=g}a2F5G{!xUP=VM+$+m#V-^e)Y~sr(YZGggq#=B;WU4wjzb0G(;bRl=yjc$P za_^Ld+GD0nFmRmELJj7#ZAOYI0UA>!_9b!lC>$iA5~Q17U%jS!y553c?(uKW`A>Q6 z`kOyOrp{uWaCZ|@bTWoDOm|mt5iQiZ+x;x?qCSh zJ1#cC-4Ay{p7W6Vu9?;IFG?l90?fM95-Q^&%ad36>v)VZ^YTf=vAVz30MLRm-=d7tTZvnX(Ni@3Yi z!-o0_^enUCT>L5+OmaRLlf7c%Hwy-aPUw0dP{A!h{d-U8dKRshM)9ai{XaD7=_=&o zFz=t-iT>8%g%UR}n(Fi50eLl?$hZm`=8YPV-G+K|dg{X$W(dLNjWcapo(d#-{J+n> zi_(V-NXe2*y>qN(xd~59V5rz)dAwg4+U{yA7F64w)N38q-v4@ab-#3esKa*IN&kxY zVJnt+chQ`n;$0;9zPx36W>a*I!eQc)XtIKKqV1WFajDKQGV)J01;`YgN;BOdRh`rG znTdTc7p*h}r-#Vb7aF|mh^LtsRlhe@urI%w)wnv;8d2Cq=4d-gN8Q8;uqbf5h5JUv#ZcvF0*T zv++W2*G*yKb`|gB2Jo)s^*tJI$`BLw4m8hS-mIS1&f3@Y-+G8mO`Xv(HMcj$a9!^z zwURJX^?_+jLelZE1&yK4so;Hg)JkFnGLfb0U5s_^8aWoW? z9mfh=0k@e-{5{!1c)v2tk-f13b5%6x6CVw~VB`p%LmWsW04JN~@F9T2-%tB|W1*$C z@x9jnswOxN`+1%IxJpr%bi?cK%FHsRW^Ab;#r%w~EnguFWyincW4F`(IYdI>)iTmKtT93omSQUu|Yq!WmJ9pddN_D#nhV!$A+<-U)`S4MwqVD2s`Td{JOgm z=^Z4E#`aQBtOHN$a?))x#_MwP!$qPc7;jEgM$rDZK`hid`!o} zx`-xqG+K5uW@UeKlX`lchZdP-n@64T9@pFy+RDt~_r(oB7Squ$*U_c@*gt>4{dipZ zQFQGd8WK6#q0Pl$HhFvc><vWnEU>asIqO%8F+Z0-l&?7h5UKE%|Mfw`N=t4OcMMfc-Imx>b}m+8Voc+x5U zdAmCbRMJ2Wz_W<_Vjvq%mJn*|3e`_rCgL&pwa&JZSMSWA+~w(&cRwo#2D>9 zV!%E7O+wUKHOZ#Zvs?d#znQR{|4`X|Suu0>)*attsXo4_Z!ZZZYiRy zGbd(!{aTH2{O@->5lLIS+rRZtV9C_zC}yXN#kbk*i5hpasw}r&op;Am?#O(9h=-)4 zzsTXX#D8~AZ&K0ha3w6q#%>9BGJp^QFnAVya(3m?vLkOc_B8bcy^p)S3-hbqSpPsVq-3}7TJ6fvOr%!!l z+Nw*-w{GZeYV^5WAtKPC65Gt#d8^KwkY!IgxPNflHz!}Q%e{V!^F*`X>0yFE3kxi@ zHCZc`=FggH?kJR-Ej;}5NzbiyZrS5)>khg4n7psjBFp@#_Ul*YXJ={lWwi*OxHvy@ z%oi@!i}5dRDn8H@l5IY}#9h9GCY?La-rc8oxysjJ`HaMw{_xuT5F@=_n()q5tzC zy3azem8d1JpFTxB)wzCtQ~=<-@CGt2+gcA7&7HPlouw1Kw&B-w*g0T?iTp`5VToy@ z{rqKbVw2h@E)LE+C&<%`TM!;=d_wD{F0S^|`NlS?Y4q-|9W2puH|4QGWg%^kkTF_YQDPwgvA;JL~(O z51i#8_)lhk>60S zh<$X>Ov8MFCH}`*Bmi8=6G~jFG33(TCK;c0)@N=-+Y|E=dQ^&g6lra$GpIY!-NBGC zWb&bH*W&ry)~48M|2%!|H;a_!8RJrnbW=-_IQ`hRoXi*g{E5i_SM|X0EtF5QHh*<- zP*Zm{kr-koJjsW`XsMh)%X0Ln_Jb>2qLjIMlVCQT7y8995FT%a1_;d|QW!;#v zB?&V#q5=zcECvE59=ac0WT)@7&6~iY58ydYs#e zH+W9JbAxoFAZ&7sut$1%w5jmPM0l^{S0xC(iAs|^YTrM2(;;8X579%O??60(CZ z-)j~4^&LNZMx}vD99ZtXJi^^ zRt%(pdjoMGD5Ypd+(tBO{AgFz(W$KT1x0-q_*S4JX3t=o_YV@JDjjH3yS~#_QSB(7 z^8JP6{XuolcSCH5fk`^%)Sl|WFevWSj(Y6&oM82GU&n{+UxU8NSq1W1%*r&k-U>sn z<-hXK9-t^#KRrddhFV*)Uz?NMe`HZJyqoJ^oSpzpmrLTLul|t;I%vd&e9vtN!XL?e zx;K>m`nAp6=);WWE_YN9$w>hkn)xYCeNTab z(zoagvu8?l5EKhi3+ONJF1^sKLRqP41zP^n0`g+cpOA#IHQ~p21_;|b+!~^BbtWdZ zIs&_Lo*?aMbY+%1ZaO`VTjK6yhIHor%YUNN27HBtC5Bz2$D8jBd>_yqs55##AA7cf zm!LNd#1Jevv7hrsoV7AL(y{KBaM(dZ*E#uX308hwtIoMn9JJg}R9P2IQ#4(3QRW<~4UAJ3hAz+DvjfEEvqJ8cz&gkqi zt?nSZ`2D&X;>)M{OHVZWkCVoD_Bm*Pz3*1d5LKx0k_m~>tNl_CsZ1Yv*XV_$`I zfh0CHJLfn5Lcwch4C=>7(~td}<0AFSML95)r&I3XB7nv(@@=Y|_CCBR=;8w4{vi22 z_b^Cy@e%QP|AyO4?T&N8T}dC%S01jCOdGi0mHwVGyQ=s6<|y?v7uXqWi;cBu)DHMv zU6J$hgF~n;?C#9|xaPC8>BpTU3^cK52xyV_eHJekz0bhUx5VyC{MFX@)0#4AmgOPu zU-!uT!CsvH&Q9`5D5h8#`VlMQSxm zFXQTELJTTl_o$WSpUZ)Qj*t+!lxQ#E+1i+3gKA+bh_vv}i}yYS(6j zbb}k`q*0>sO36rC&8)bZ7}Ck~g=_KWZ-x`MXNyyN)zoS#=9 z!sk8(|Oz}dPAhwOkXYfxlJvnv{(ej==IQmG| zK<*dZM2h1E1aZK*R{iXD0vj4$5Aiz(%N$@w@45yd-Bm&@i$Ty4zLgx33l6_(&g>2P z=MmCbcnU?dUxioxntwq_i!|@zp9Eoha+wiI+S{~V?jcqU#SQ*gG%6gkZ_h|STYcpU z4+JBVMtPyZ>7P5o*S*Inx{MTRMh;kBz&qz^Vd4iVOaKJrI(m*3hAl-~~{a5l>(9w+LglXb%;31tp%er2-f#D7fq?zk(H){-&7txF{8M zUWCYq__O+fl0olj)YM0N^C}eiKOwgY~ywV10pBXBKaDIXXV-jTkX)jZHnS;|>3+rtb#LWglZEre*oCB7B z{-;(z7_-t#FV*pW?Ev~C_BdLaVzU(@@G3=iMh!OECv(}T9px8A{KK0()-ZR5wpwK%haZ#1Bi zod8gv%zNQJhz&Yg@INsQi`y}#&l%LuZ#Zs=^g6U2@2NsQo=jcDpHX0m{6CFD#>$j= z?&&7ntR>Ws1>9%|%1SDs0m4jO9l>biLXhAz^G8!$Gw@?E8*lO6pxud|=~%*s7cgQ1 zypdg^zkszkz^kGJlo$XF>8Qr(Z@`yPBe}K6dUG)5bunjk(FU==QX+vh`K5>0UuyF_ zCpIc_Z4OV7CpAURyS-!THSsc2cx582_8rimZJ7D8*Vl zCz~BBV(3qz0xHm|lY=5Rl@t-x3?<5cA24F@IO`Hb5)_nneC%Svv;%EJe&hc`G$x@W z^mZ(jH5O-LAXx#B{ZA(Rr$XSfUQ4dDribF99PVq$#+W-KW`BqFUB4;GN{z8Ij%L~< zCI!{b5UR?5G4QW9ppna56|>@`aABj~`OjO@=`C#uPdE#W4MPf3K4T0T8MVM1;|<(@ z!n1Ri&v%mP8xf{g3094Z5WUY_C%3hYn~<%4V6y|Yw2`!7#LsX)HUXZhd)JrfGhw&sq^s{4yT3O{|G*o%P1hU}kyGp(*P!Q!G#-d%P0J0K z5%c$k_#^}?C=x?;h-%T5WaX;xaBMf*2vIpC`^t;=I*Y4N&q73nOBq^wlfuQV_lyOV ziwU5qvYf=*PrAWl+L~GxA-EN4a6Pb0mV?lhy}@7uk*us}ti(a-8Cn&wQ3g80#}GZa zvzHS%yis-)WFqt?p%_UQ;d+=I@e>&8g$hU7r+9^J&vhZk51Dnu_>5_yfWSlUBXg4c zv?8Mu9@3x6Sr~TK$BMG^1#Fm4pFSlMd|qZph$Dj9jgyDM1O6x+DL@Ir+h*LoEq$>u zIEjp-b!-{wow{f|_QxixZ|eQXQ^(_ldsmk{c)w6PU7!hfblJVkd}w$W5gI1QqjX%8 zLf{G!5>bk$dVHYLU-~1JTTWT2Z6XsUs*eG7*kshw)&7j3_M9jxiJ7-M`cZphaya}F zL@$kt@AlmSz*pnR3y*GLLXTO!ExHnd=i?|8QZj!&x#zz_uWRQHM}2pYt~*(AU}pux z5uU+x$(VdR6C}#QET)t*O5XDs>~RE!CC|X3kLG=KLP~3bCbDOOC3n6}QKHB_G*vI2 z`e*Xl{fgWXgX84t~{JTxfmx9YSh-TWefLnh|-^`et;(W41qi8h`mT)%kt$1=DuntHkv9sv4cvD+(Ygkh#@DjzgeW_vw_|4RWY?O?E$k#&qO7**M0g!y3=qm`~!F} ztoi#%`aKh0ts|IKB*XY;63~n!x8bx^QFouQEc8*Y_D29)eCHN*e2*Or#+% ztm9J50h^$_%#>(tGXC$jcJ79sx7Vk|2g(*5?z$E4q} z+B+4OGf=uk`oVIw4&l7Jz~CSUFtky@5`+016J90a`s>>J^iXl5E#k&3A2CC%bIbPV ztUuD1d6!^fCCLW35+=uaw}!QSzeAAYTt2ShyW9 zWguM_3mdNy$k{78!V38MyI{xoVoEFCSi97d!NvU-_o~5=8PLmbd>UbN;&g-QFJMrV zPT)#jNSV&;^qzg)ftcF;K7hC;OrOGLKwPW1f$=mN_m<20=2dI8)jH#K%N=(T(Da2an%~nf3O;Rx=lvv_s5K#PBi5Kz2b8xJBfi*L2 zk2c>OlIyHx9+#W8)JBc8qzZ-J@#y8&E^Q%0tKtFMPqI4E{u=`F6joN)Mp64C|6&{Y z8n_d*GEZ8Y$S1;Hsy%R`W*_K29E_?GP`yM2xD6I*5t)7l+_z_*R5e4%?k=dd&Oa9O zN-;Sq*xq(Bm%Fj(%({+Yly9Dn+bB9pLuz+Cc6yd83Z&{6NE`m*z89=vDo8q8gtW}umuhtJd()`eif5e5b1FseSfHmwQaT@7_q>WXjVFvOw{ zeVm(Fms;?><(#g`-!t)uVF?gu&)^{)bRX;W%`aPJdDQP2zv9dVuR+&+vt9f3{yh12 zx`?&@%R}bKd=*EON3e|Q5KR>|TV(&D!6I>;O_W-hTa(Luh;7!@x})ekt7^0o zT>&vbi$G=!U7V`@*Dw+(+ZL*K=u~}BP8cu_DHS^aO*P>~@z3DGBIsNH_H=4xLV9`e z;C~t-Lg0G!e_@0V#m}4j_i1I5!P{=M%%hGRzr|*vnRro~J$1q(*JEc=_~#2MJ%jgU zzDMp^ozWX7@N)@zB}s7y4XY@t&7Ay)VXYN8rQd~yyK3t` zt^?iy-1?L!rp3W&hHp_ib35N-{1xSW-t2^2YKdf-kDYj*v&V0Dlg^YgaE-Qs+XVkT z4L!6L6G>`kpGSN7DBZE<;v811^sK$o-*2nG--y{>e_v8D%&pEZ+c$3gmD0DSX#>0y zL>!f!(uRT@X-4L4sTsYz)W}Sid%oK01`W$)6^Ku{okjdjdTcRv&n&Z0mHxBzkCvqf z{vEt`wCKe7zN_=n!Jm^0p5BT)vfjJ74345Qzemol(=|MX5?2z1v9kPJ)FUWGrr4~xexkW^81Q%sf>u=oViJkGt4WwVCT@aP{(?%pvD<%DiZnej<67g#BxnpvX{VV0}ud6C7X zyCifB;OF~Sbcu&8$2u-9-(bwJI<75a>~jbUw|z#h>1LVC6C>a%peshFfC zIslIdCNqt+z4nN2-{0HfoTn&GM;pUvyFeaNI`xc;^QXs{s#RMnsJ|fNa0F^*)!1HI zO4R=q^uuC@oZPRUCuI4w>4zOVf_v*_?xQ33@thlrss~+OJFwm{wT_#l33`jfZYSqH z)Fs~sH>-PqSgwXH8k#t1_2ffG8}cA-?E@b7T49Vn!cZ0B&wiJ!c~!^(V-red2R^VG-CjF4l5>}M6J{yM>Hhi9Cx2K7QJNlUeymwSfo z?hRlc+dWxkaTmbpE!y~VtdXb1B5=!_gO9`{A&yJhV8_fe@? zvmeKq8w(uuAK&Nxgh|tt!OQ9i&{f@A-bn-HXjZrJDQPJcfJg1F zMu2#-RtlAPgvWc)mc*D;N`h`gp?w-ohuCvKjz471YM>YdIPc%Kdv;&1uX(4YVl{l$ zT6+UiLjyYN&Me*)riZkut%PC!YE7=OBBoJu=Z+=JY@-Yc?N(5Sw=xXXzI&y43Shq- z?;;%bq0=!M>iLuC{ZG5yjZ8h)7;QA!h)CabF-p&uygYF9h%p{(k|oEf87Pqq{$#oP zU7>z6hC@RVHy(M>U0bh6T2;A1xO10}wLzPrHrH34Q%~nX5)Ex!bA`8{BwV@x<@4?8 zi@9!`I$IMr=h%N`$#e|n0oBD0Fx}c$`?cu-!EFP@%5LbZfvR=!^T0Z*aJn^ws)Olh z>C`X#`D}d&Vb|J1oSTQu_lnbsr1FMIBe^WMlCqMOB5tRiF}F)_Itc%%vd&ht!g%GM z7E|``-w67lj)6&b`=IxIqCuDJBER}#t8jWJ?^3tC)p%u*{@Dd8sm7!+V7Ck3q^;7S zN#dyLOwc4AOR}t|jAMe#tb{Pf$TlG+H}?6)V~-HjeqCr?GvI!}m1ysx%rC&_)_Z-8 z9F$nhR4#|*luQP0b=YO%Rt0Nj8lm)tbDOYV<8S;e(!Z#euL<_t#W{^w+sQ9+R*G#- z7)UHs)7MUu$BdNpDD15O&Kg;kBkxxR4oq!>=hQKh`{<$rF}7H$T=1zJAH=j^TY5N| zxf?vuJ7xtyxiR>Jn!+1~2Vo8qt``!`PJVRds9}yWFu4}aP~dL7?ISJdfRDol4phBU;RDRtb#tKY@ON)gAX106707;82f%JH4SWfbu9sxF}+ILg<|sR@%i{DU4=V4_0>!sWR zCzQI&Aa-S0# zse0+OD*f;oVs-8GJ74)If=QiZ^+2{e_!Ox6>H2m5Fw??kx8Wh%dB7Nj|8}K*YJ)99 zV}WnueNd~&rd1kiOm6kF56;eAua~2Wid&cvl$_dxe7$UwgUOw*x1OXVjLR-Xnw}s0)JH@-=FD0ug*sq>Su}nO+PAV0pz1uZk3R`PuhB2#x>3M9jMum7$I45T4mNt0f+9`DjLR1cfO7v1Rr}`ULYhihz`m`&wDuiogpBM+T5W}SHo|#f(qdiOBbADefKopBjjja z%_8sNEIH(0n+zOz^(g<7i?Ha%w4MB!xE^6pmq*>S2`g9*Q>V;WO1&b=sHNk6;h=G3N+bWCcjAc(4@stk)xQUUdlOJR9Va2nK#k_JPPT!O%4#Qv+4XI&0cN~@s#DvIA zj3moxyGe$w=R4mE8e?<~TaeI0=>(kHHF!r5ls#A9fl(miQ~`qp>Tot~*7n&UbB1?+ zJ$XiO)oOl-v1&O+uU3xf{VKl zPQfVx_`}m#v^xM)A;{E>w2kDhT`#$(H3ex=EzccrwU@~{_tTa!z7)PX^kEh?*LGwW zWYl`ep0TQN!g4#T2|uHDdc9qzR(c%ncsIjjw!P6nUzZf7=#QSFlzn?VI#OC$*3IPs zTP-|*vdqc;Q$7{b zSe@vxUEJ)WOeD>(URp5HyRouquExm~9u^OL=7H?O^lNL1+KW{l z)kk-2Um%f@dsE}QAJmqVEEzLvyX#7`+b1n=J2n^DDyo#ysHNYZBGZ;utD2$hjS|G-_XM?MBE%%ZS#VWKJn zNw}%FC)Qg$0XD~a{?*dkhnIPOM&>pVCyut$NT)Ik=u>uGSKzNR2+B@A40z4^C{g5d z)ik(koccn@C2((3c5>_+*>wZoA~_b=w}Mt4@!HoE^)wF|_9Y#HTA4%;j@bVnB&Lw* zT{!leG(%*|cFg`+(MbqI)!n4geyp?!?pm=%UxYs0j@k6$UR4AKu0(fHr#2*UzMc0E zT?lCEvTqS6QpWa`-m)dMw?J%QyXf#L*X_@=vv0-h7|&LQ6>;m?qmPYa1ow{cOVIir z%Zj^4<+Wv-77m4E^v?A>C~@YsTF@i-3RdrwTA#ou;V0zQ$+c{!{jmRtjzyPhIq>(; zYHjMFgutV3DRg(%Y%eN08a+V~Ys0Hm{(iWb)p779IT$0-LmQi_450ZPv&i@xH>Ukr z$8g|Fg%+#Pf+}j>?=g}Jp7{cg%IrgUc9_eadBRh22+4-j{Yq>O6e8*Pq=hkY@Hhx~ zo(HB+uJ*!3Ce>uEZw#J6cE(L@u4L1QVWIS4PJJU`HvqqAgk;ZjeQ^oz$gZAKHH?j(h1&I8gz2=@@lNHj?0|)hgPV$i zJ9%6B^qZ6AwfZP-7OSEM+{r$v4%V0$7)FW(-;{a=`^yM)Eu?3-XZ9VT_(2QUlSQ-g zQTnDEFTd(q#mvhA$#!}P+uWj_72Oeqd8ll=nF_8(*1Bx?zMj3gqO!C5&pBn0zy4Ld41SH9K#GwOqev@f-w+(8 z%JNS?3Rks{0qF2#_449>1%&Q2?(oQ~lJN^^lZieP_O4IcYyyVd+K*O6d5 zU-pgLy19(V(Yha`mKx>MvZm_mxw3=EZRGzLfK^Wo%!^G?npGWV?G}mEceEyIC_ByG zVInh=KHg2nfxoa6-4 zNESKZ_3j~#FJq`}Uiyz6jf=7Td+WmnIbA^#ph->mTQIjQx9cNa_x`J*AbpaKaIf0h z_!jGnW3?CjD(@E%o$$_82y^d38!p)@fNEAC7GvA+p;~?`y8R(D_c%+wWo{~KmrT=n zn%7;_YgIG^wX>dsbMOxs>bF>LULD^3R zyT9!f8v^|NqYt9AwD>JdEQk811dx6Se7^V;Crln{lvX(JEUD#ReUTwHi94;Noc6#9 zRJFEEBUMBtixwNWMHobKFm3C@_Wh2}^CvBIGg>sU7_()Vp7`~ByU{2kBWSfD*@>)a zPezYI>s5}_`BgPbYcWv7N-KJSEt9}@Oq}i{K)yMBY}VJi!r2_n>KGgzGM17i)HLkr zcy@?iv0jg_!suh(jJsSjXOUbqa}nDB9N$J+RLeBQzWB_hsiix;yuoWp+p@a*U)qxm zVg z{n(*3yY+wO2KhudsW}IH6Yn-r4#2cEOOl@Ve(pw+QzEu4e5{KFyt~lIL zE-+S7&6*p7X_%_Hg-m2NUUdLHt!u)2oUZqN$2ASfZguH^rkJKUB|X)lu-X~jCEIH3 zgb3_CsN{z>OU25P9P6v3XMWDf0G3a~n#iXEaiOLK}L62%jUVFdk-i z=Q~<|op54dT>iRi`Uqf3(_teohlea-OesG|k5lR-M^Mkz*?kFJxh_v*mbIFtVQ*K+ z*)K8C%`lPriZWjOsG|PCB&*F&*TzKQG#3bc5AKez?k2@oGGW(m%W#wb@)a$DUCxd@ zwua$j`S%;fsC`6lbM4O3`6%o-LTFW0^DG|QwDi(A>CJ73^#wSq?b~{A(S841MlvHh z{fl+@ZanIHt%G*3kOY-yWKCIYtqmPxk?6!vU+XqpUT2qum7kkL#v5qs2F=G)s_lU} z2S>fl{r6PLX~&~}sQ>=!NC}d*xMG@}4;v{JVcCU3QJbcB|8ABXONYkadXP$x+9er@ z6;E$LYHZgT0QWyT9C=(8=w5YZ#&3ztH5KH!^!vJnd^#tUb@>QcE1$ZOmZeZl*@#E* z%}o!oVVos9e`HXt>|K5t^?c>Gm~jX&;W)e|?ucyQ<@uj;JcAvMLQ6JAuiWmEi8edr zWE&@yhX+FQ%!dNV^T^4Kdu-Qn*1gBcr37!=w##&G9EL zIl7(?FvZ9TTq8~=rjo)gOiNNrKw6=BXr}klEFXkVbZXGV`B#_pHE0wH76dSga8U4)#o2kS*t60WOs(19ZN9W2g%o+70Len~iB6E1+&eH{WW!tGQPyi}@g~sIRffSUcLsx!p>i(DwfE&Nf8JkIFj&h!vwKTbF zmKPVppY6qe_XrdY_04N`Z&|sjAQ;tVoC9+}{=M^~gL^8(g-%_f#j%Bcvz$!*%(AvH zM{(3XxE&EZTvQI@${r-PVUjV)=bRH)T`n83na;Fc?NeC%k?_@`8{k;zdB3^%+Y!Mu z$M&^B1KpT7yb`g(RRz6QbGY;j&gpH5>8EhFJ@I1vojMIUz`*s!C!aOD(_}at9NDE> zMp2z@V2(EV-vL7}CXAl9GnByjJxu(m_sb7LB;hsvawhzcza{c@gO`*?Z_1j%EH9aS zCTW$560CGtM8=)o0R7~l@`7807r*C+6Su-fMSumm&bMYseIQsgIR_JjXW2$p-dWoY-Hf%MP>mjXqir)3CJRV;e zC*bc5{m=!@TIBI>#WIt~=n(jsiCbgTu|MQtjI%;VWfu(sK;B3)3kF%gH~nzt$oq@W zYh7yPFRcuex(-33!G1Z+^IMWy1aO;Kf>e2mBI3l+A4hAC$Py*`HH)*f7J@(?FINj`HSMpS~rJd|IfI+AITy2P)_9Yzp`u52f648au^NW~TWyz1n z_Y)%fve)5i;7ig|1EN+O4yHS(}|hI;|~@JHzRTWDf%e>Hoy zoqe@{eo3MF_X@gQhw8q-a{j6*oG~{>tkq-7pVT&gcgI9`<%7LTqYFysE=4MyH)SbR z-7G6Jle-O?J`AB0OD3EbphZAoqfh+!u*XV_sJ8DCSl28e%Myv)lgPepkoqW^&1f(~{aKNnGhV(1KaM-=hZS$uCZZ-Po*RlvveHqxMAI>}T5l|4h6ek$ z=szPN(QOdQx4Nj=34=SB9R7)e1JQ>2MiT~P{jB59LAyB&ljVPxUzcF+FXv1KmThz| z+{l6W*W%k1WyPh#Tl;Mj8BC*Dhq3yNV=vGVh@V#W+$Xt-5VB_E;_2LgF68ToVvT+m z=diHr(-#7sd{O8C5$Ur&T;KPR>!97tj{7+p#K4jtA-lx>U~d#!7B2r8)2D}q)Kp4@h9TCDY7297`N+ zo2*+4880wCd20Hczm+FyYuHs2LZum9IdT~_^TJQ39{fBCQ&`wjRvangnHjY(TYMhi zHUVZ_{=catmM_o)osSdO5`)aN=O5d$_^`Q&QB10R+^s3|h!=32JxflnNr@w`+X1Il zFXb3|4mr=w@HFN;7c}?HVjW2NIfq9nZ%HK)`hE9?^$+`w#K}kt&zR>IA_Drq%IBL& za#kg}gJX4cJfXsO3x($p#@^|YFArLR#47vceY+s*U8DPphIzKMdSheh57NW zoCy{$|LH(>zR+}pq+d}DgHQ@a7R?L%+xh+*+X~&O3lqx8r z%RW*2xMFl0K}WaS7BA9PF75oLjw1fo$tXYxo@V{w>Qsh!EKkuq=%W@pkNZzO|Eei- z%Y%bRatiN|TX!@BatiQ4l#Bqx&cW5&ClX@+@&SQ$-a8)Uo*E$uU7rG7moI@TL2RQx zl96f?bzhp~(U`EXu~w3~?!pAtXu33eBDVZ>H#OzHqWE9h;3J3IKam}83B>5p zEBm_$z3bB(y;Qsks8hFcva5@0?_mb*2BOAA@-X<%^Bok*aKAUA8`lCzwYVP(KC9e} zH_%jaJ5_Lvo?Cy^U$Tty9t~&V^qb8&b4o8}5Ppc-A6|z25StnFc^2%uGKhF<{b)9! zw1jw7dU+Pl8*rOQp3Z>K^eG8%I30I}&)R;cKDf85O8%Y+L7oTz2_zB1 z>YGbMU3_l#Rg`Zp-NTB#OHEfsdEM2&BYELn*nZ!Dr>8&BqKN?RwPz!qmVvUBa9fw9 z@dD-e$kf}N&aL|E`LAnb5-w-OR1eGVaHd(z!_TWL+aFlYGQ@XN>lMJs_vg`pxu z_`<_`H2SGIAp$8>pa&9nb#%;VbMGv#{FE+3(0qo>eiOAAU1ktFoIXLMw(Md)^!tm6 z4I@I6S9t=qYQC|Pv9k*FisoYlD#0=*sP^rOnu;Z`KSffnoms9J;nYBx5*7^qV&6H z)20Z&g9PJQ7~FHhTuVQ74>juFEf=vatR_pGdgve;Hq0D-Kwp@)I+8$MsW+sKXlcv zgi~1YpWojRjb0&GJh-#wX>Q{k)zK5o@?TdX%)!Sg|9m-OOFcC{vnEl++B7jTG+91= zE5jV?8%2xF>ejk4Am&{j_93<~!sAZ&Il(4i0La)$Ya-Y5Li1O|;H#JTUfRZ{+yjSr zCF|{no#P%n2QE8DoZEuD8MsXR)t=VMo@7}zsnlZ&nu5Ty!2xjK>0|vka>P~3`rNq8 zbK}9&czNQ!!ZW)4EBnkpcVkgQEv-;|na=o~jxA4bx<*O9(GAC;Q`Y&VhIQVNWhCSb z07MX%ke$IwXBPXnS0)sj;gZ;{)?Xr|$NuEW#gx$=M%=Xx@O3yeZRW}X6_>d0tZP9_ zD&Y-stmJ$T`8V_)twx-f>IdJqW}?@mt5>G&ADgIE-Q4EvM$W7h+9ele_p9jkZ1L)@ z9l|9aH)t>(vnd<5AgW>i&Jrd5pt3$n2b?2Jq#Slw2}XWXRgRSmi-m`5MRO^V`Cr}8 zb~$dAi2OSqVK3<$VRDS#c*<5Tu5SzN^4>S+62T7El>fqkXqt%n8qgnk5yELxA!Imz zbg2k4Y532BZHz-g zbP;Vm))n>W4{B5l6BFmZWhzQ08+LeIm9eb_ zX@Q8XBsDMiw*S<+Xf3eK*3#(F0bKUN%7*DLzD3uWzdByD)*MqNwFlr3NXS!+b5yf$urZH1Ui|FSzMJ66w5O2uK zZLUk-9UaEsDxI_t_zmmy7C!u=esLS zkI9+d{#S@&5R=8Y9DWCo*Ef-O!K=J+UpYz@V0V-%8q%xI5v7Y+Wg`mxh7Ue?{e&F! zL*wZ*EdNlB`r{gkoOMx#LZVgnv;k6PZxW2hu)V@*@#s5#Hfi;JCBf^_klq@kp!-4O z8iSHs!o_c8srs>*e3N`Uo00X{0pj#2jKd@PiDl;7lQ-LSnY;ikpR)?~1$?+>C8o(Q zSB?u)$K7Xb>HVa@1SOv`!?T@;9A*DDhEyU4(k}SNN>XUJKG(e)8tJz{HCH?fQx}6H z0zYQK)+#;z>0s*rx!J&(Y)Ez8@xUhYl(`j8=5-hvGKn7_`Q%PLhQ6m5C(S?4+xp_E zdFF58DC1!64P-g|4fJ`=tq7DeFW_Ez)jc>uaq@n^JVQ!tA$x(EuMu!*OFAY#^vlA!3Z!>mOd#NP zz1$-BBH7UnR8QmaKUYZYSM@bXi3@#EsN#$z+iug|2N*iLx!y?M0;vc`l8+$fN#(3L zslAhC%0{a3dmt|yl@V=p^@!z-)m>kmbR!1U% kuPL + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + diff --git a/app/src/main/res/layout-port/activity_main.xml b/app/src/main/res/layout-port/activity_main.xml index 800056c..e182324 100644 --- a/app/src/main/res/layout-port/activity_main.xml +++ b/app/src/main/res/layout-port/activity_main.xml @@ -19,39 +19,41 @@ + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index ddfcc4b..8cfa92e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -45,7 +45,8 @@ #ff797979 #55b68a #8f82bc - #f93191 + #4880ff #FF47A0 + #494949 \ No newline at end of file