From 405a3c6ccb073ef651be94f1e947bde46b82ab3c Mon Sep 17 00:00:00 2001 From: Dmitry Isaenko Date: Fri, 2 Oct 2020 02:54:11 +0300 Subject: [PATCH] Refactoring --- README.md | 10 +- app/build.gradle | 10 +- app/src/main/AndroidManifest.xml | 15 +- app/src/main/ic_launcher-web.png | Bin 0 -> 5035 bytes .../developersu/nowol/MainActivity.java | 218 ++++++++++++++++++ .../developersu/nowol/SendRequestService.java | 98 ++++++++ .../developersu/nowol/ServerReplies.java | 25 ++ .../developersu/nowol/nowol/MainActivity.java | 205 ---------------- .../nowol/nowol/SendRequestService.java | 92 -------- .../nowol/nowol/widget/NoWolWidget.java | 93 -------- .../nowol/widget/WidgetConfigurator.java | 131 ----------- .../developersu/nowol/nowol/popUp.java | 58 ----- .../developersu/nowol/widget/NoWolWidget.java | 101 ++++++++ .../nowol/widget/WidgetConfigurator.java | 140 +++++++++++ app/src/main/pwr5_widget-web.png | Bin 18924 -> 0 bytes app/src/main/pwrWidget-web.png | Bin 19583 -> 0 bytes app/src/main/refresh_widget-web.png | Bin 20401 -> 0 bytes .../res/drawable-anydpi-v21/ic_launcher.png | Bin 0 -> 5035 bytes .../main/res/drawable-anydpi-v21/w_power.xml | 5 + .../main/res/drawable-anydpi-v21/w_power5.xml | 4 + .../drawable-anydpi-v21/w_power5_press.xml | 4 + .../res/drawable-anydpi-v21/w_power_press.xml | 5 + .../res/drawable-anydpi-v21/w_refresh.xml | 5 + .../drawable-anydpi-v21/w_refresh_press.xml | 5 + .../main/res/drawable-anydpi-v21/w_reset.xml | 5 + .../res/drawable-anydpi-v21/w_reset_press.xml | 5 + app/src/main/res/drawable-hdpi/.directory | 4 - .../{pwr_widget_normal.png => w_power.png} | Bin .../{pwr5_widget_normal.png => w_power5.png} | Bin ..._widget_pressed.png => w_power5_press.png} | Bin ...r_widget_pressed.png => w_power_press.png} | Bin .../{refresh_widget.png => w_refresh.png} | Bin ...widget_pressed.png => w_refresh_press.png} | Bin .../{rst_widget_normal.png => w_reset.png} | Bin ...t_widget_pressed.png => w_reset_press.png} | Bin app/src/main/res/drawable-mdpi/.directory | 4 - .../{pwr_widget_normal.png => w_power.png} | Bin .../{pwr5_widget_normal.png => w_power5.png} | Bin ..._widget_pressed.png => w_power5_press.png} | Bin ...r_widget_pressed.png => w_power_press.png} | Bin .../{refresh_widget.png => w_refresh.png} | Bin ...widget_pressed.png => w_refresh_press.png} | Bin .../{rst_widget_normal.png => w_reset.png} | Bin ...t_widget_pressed.png => w_reset_press.png} | Bin .../res/drawable-nodpi/widget_preview.png | Bin 20433 -> 34865 bytes app/src/main/res/drawable-xhdpi/.directory | 4 - .../{pwr_widget_normal.png => w_power.png} | Bin .../{pwr5_widget_normal.png => w_power5.png} | Bin ..._widget_pressed.png => w_power5_press.png} | Bin ...r_widget_pressed.png => w_power_press.png} | Bin .../{refresh_widget.png => w_refresh.png} | Bin ...widget_pressed.png => w_refresh_press.png} | Bin .../{rst_widget_normal.png => w_reset.png} | Bin ...t_widget_pressed.png => w_reset_press.png} | Bin app/src/main/res/drawable-xxhdpi/.directory | 4 - .../{pwr_widget_normal.png => w_power.png} | Bin .../{pwr5_widget_normal.png => w_power5.png} | Bin ..._widget_pressed.png => w_power5_press.png} | Bin ...r_widget_pressed.png => w_power_press.png} | Bin .../{refresh_widget.png => w_refresh.png} | Bin ...widget_pressed.png => w_refresh_press.png} | Bin .../{rst_widget_normal.png => w_reset.png} | Bin ...t_widget_pressed.png => w_reset_press.png} | Bin app/src/main/res/drawable-xxxhdpi/.directory | 4 - .../{pwr_widget_normal.png => w_power.png} | Bin .../{pwr5_widget_normal.png => w_power5.png} | Bin ..._widget_pressed.png => w_power5_press.png} | Bin ...r_widget_pressed.png => w_power_press.png} | Bin .../{refresh_widget.png => w_refresh.png} | Bin ...widget_pressed.png => w_refresh_press.png} | Bin .../{rst_widget_normal.png => w_reset.png} | Bin ...t_widget_pressed.png => w_reset_press.png} | Bin .../main/res/drawable/pwr5_widget_button.xml | 4 +- .../main/res/drawable/pwr_widget_button.xml | 4 +- .../res/drawable/refresh_widget_button.xml | 8 +- .../main/res/drawable/reset_widget_button.xml | 4 +- app/src/main/res/layout/activity_main.xml | 48 ++-- .../layout/activity_widget_configurator.xml | 4 +- app/src/main/res/layout/no_wol_widget.xml | 69 +++--- app/src/main/res/layout/popup.xml | 30 --- app/src/main/res/layout/settings_popup.xml | 23 ++ app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-v14/dimens.xml | 4 +- app/src/main/res/values/dimens.xml | 4 +- app/src/main/res/values/strings.xml | 4 +- app/src/main/res/xml/widget_settings.xml | 9 +- app/src/main/res_widget-web.png | Bin 18729 -> 0 bytes app/src/main/res_widget_focused-web.png | Bin 15371 -> 0 bytes 88 files changed, 753 insertions(+), 720 deletions(-) create mode 100644 app/src/main/ic_launcher-web.png create mode 100644 app/src/main/java/com/blogspot/developersu/nowol/MainActivity.java create mode 100644 app/src/main/java/com/blogspot/developersu/nowol/SendRequestService.java create mode 100644 app/src/main/java/com/blogspot/developersu/nowol/ServerReplies.java delete mode 100644 app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java delete mode 100644 app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java delete mode 100644 app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java delete mode 100644 app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java delete mode 100644 app/src/main/java/com/blogspot/developersu/nowol/nowol/popUp.java create mode 100644 app/src/main/java/com/blogspot/developersu/nowol/widget/NoWolWidget.java create mode 100644 app/src/main/java/com/blogspot/developersu/nowol/widget/WidgetConfigurator.java delete mode 100644 app/src/main/pwr5_widget-web.png delete mode 100644 app/src/main/pwrWidget-web.png delete mode 100644 app/src/main/refresh_widget-web.png create mode 100644 app/src/main/res/drawable-anydpi-v21/ic_launcher.png create mode 100644 app/src/main/res/drawable-anydpi-v21/w_power.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_power5.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_power5_press.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_power_press.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_refresh.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_refresh_press.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_reset.xml create mode 100644 app/src/main/res/drawable-anydpi-v21/w_reset_press.xml delete mode 100644 app/src/main/res/drawable-hdpi/.directory rename app/src/main/res/drawable-hdpi/{pwr_widget_normal.png => w_power.png} (100%) rename app/src/main/res/drawable-hdpi/{pwr5_widget_normal.png => w_power5.png} (100%) rename app/src/main/res/drawable-hdpi/{pwr5_widget_pressed.png => w_power5_press.png} (100%) rename app/src/main/res/drawable-hdpi/{pwr_widget_pressed.png => w_power_press.png} (100%) rename app/src/main/res/drawable-hdpi/{refresh_widget.png => w_refresh.png} (100%) rename app/src/main/res/drawable-hdpi/{refresh_widget_pressed.png => w_refresh_press.png} (100%) rename app/src/main/res/drawable-hdpi/{rst_widget_normal.png => w_reset.png} (100%) rename app/src/main/res/drawable-hdpi/{rst_widget_pressed.png => w_reset_press.png} (100%) delete mode 100644 app/src/main/res/drawable-mdpi/.directory rename app/src/main/res/drawable-mdpi/{pwr_widget_normal.png => w_power.png} (100%) rename app/src/main/res/drawable-mdpi/{pwr5_widget_normal.png => w_power5.png} (100%) rename app/src/main/res/drawable-mdpi/{pwr5_widget_pressed.png => w_power5_press.png} (100%) rename app/src/main/res/drawable-mdpi/{pwr_widget_pressed.png => w_power_press.png} (100%) rename app/src/main/res/drawable-mdpi/{refresh_widget.png => w_refresh.png} (100%) rename app/src/main/res/drawable-mdpi/{refresh_widget_pressed.png => w_refresh_press.png} (100%) rename app/src/main/res/drawable-mdpi/{rst_widget_normal.png => w_reset.png} (100%) rename app/src/main/res/drawable-mdpi/{rst_widget_pressed.png => w_reset_press.png} (100%) delete mode 100644 app/src/main/res/drawable-xhdpi/.directory rename app/src/main/res/drawable-xhdpi/{pwr_widget_normal.png => w_power.png} (100%) rename app/src/main/res/drawable-xhdpi/{pwr5_widget_normal.png => w_power5.png} (100%) rename app/src/main/res/drawable-xhdpi/{pwr5_widget_pressed.png => w_power5_press.png} (100%) rename app/src/main/res/drawable-xhdpi/{pwr_widget_pressed.png => w_power_press.png} (100%) rename app/src/main/res/drawable-xhdpi/{refresh_widget.png => w_refresh.png} (100%) rename app/src/main/res/drawable-xhdpi/{refresh_widget_pressed.png => w_refresh_press.png} (100%) rename app/src/main/res/drawable-xhdpi/{rst_widget_normal.png => w_reset.png} (100%) rename app/src/main/res/drawable-xhdpi/{rst_widget_pressed.png => w_reset_press.png} (100%) delete mode 100644 app/src/main/res/drawable-xxhdpi/.directory rename app/src/main/res/drawable-xxhdpi/{pwr_widget_normal.png => w_power.png} (100%) rename app/src/main/res/drawable-xxhdpi/{pwr5_widget_normal.png => w_power5.png} (100%) rename app/src/main/res/drawable-xxhdpi/{pwr5_widget_pressed.png => w_power5_press.png} (100%) rename app/src/main/res/drawable-xxhdpi/{pwr_widget_pressed.png => w_power_press.png} (100%) rename app/src/main/res/drawable-xxhdpi/{refresh_widget.png => w_refresh.png} (100%) rename app/src/main/res/drawable-xxhdpi/{refresh_widget_pressed.png => w_refresh_press.png} (100%) rename app/src/main/res/drawable-xxhdpi/{rst_widget_normal.png => w_reset.png} (100%) rename app/src/main/res/drawable-xxhdpi/{rst_widget_pressed.png => w_reset_press.png} (100%) delete mode 100644 app/src/main/res/drawable-xxxhdpi/.directory rename app/src/main/res/drawable-xxxhdpi/{pwr_widget_normal.png => w_power.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{pwr5_widget_normal.png => w_power5.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{pwr5_widget_pressed.png => w_power5_press.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{pwr_widget_pressed.png => w_power_press.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{refresh_widget.png => w_refresh.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{refresh_widget_pressed.png => w_refresh_press.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{rst_widget_normal.png => w_reset.png} (100%) rename app/src/main/res/drawable-xxxhdpi/{rst_widget_pressed.png => w_reset_press.png} (100%) delete mode 100644 app/src/main/res/layout/popup.xml create mode 100644 app/src/main/res/layout/settings_popup.xml delete mode 100644 app/src/main/res_widget-web.png delete mode 100644 app/src/main/res_widget_focused-web.png diff --git a/README.md b/README.md index 02a6419..bdc006d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -NoWOL +### NoWOL + +![License](https://img.shields.io/badge/License-GPLv3-blue.svg) + Android application to rule PC power management. A part of NoWOL project. [https://developersu.blogspot.com/2018/04/nowol-2.html](https://developersu.blogspot.com/2018/04/nowol-2.html) -License: GNU GPL v.3. - -Dmitry Isaenko -2017, Russia +2017-2020, Russia diff --git a/app/build.gradle b/app/build.gradle index 4342751..ecbe4d7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,11 +4,11 @@ android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { - applicationId "com.blogspot.developersu.nowol.nowol" + applicationId "com.blogspot.developersu.nowol" minSdkVersion 14 targetSdkVersion 29 - versionCode 4 - versionName "4.0" + versionCode 5 + versionName "5.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } @@ -18,6 +18,10 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } dependencies { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cecac7e..87f3aae 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="com.blogspot.developersu.nowol"> - + + @@ -41,7 +40,7 @@ android:name=".SendRequestService" android:exported="false" /> - + diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..a19aa44cbf6c4e5c211603086bae045d9e35f281 GIT binary patch literal 5035 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 BusQ$$ literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/blogspot/developersu/nowol/MainActivity.java b/app/src/main/java/com/blogspot/developersu/nowol/MainActivity.java new file mode 100644 index 0000000..e763f21 --- /dev/null +++ b/app/src/main/java/com/blogspot/developersu/nowol/MainActivity.java @@ -0,0 +1,218 @@ +/* + Copyright 2017-2020 Dmitry Isaenko + + This file is part of NoWOL. + + NoWOL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + NoWOL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with NoWOL. If not, see . +*/ +package com.blogspot.developersu.nowol; + +import android.app.Dialog; +import android.appwidget.AppWidgetManager; +import android.content.ComponentName; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Handler; +import android.os.ResultReceiver; +import android.os.Bundle; +import android.text.Editable; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; +import com.blogspot.developersu.nowol.widget.NoWolWidget; +import com.google.android.material.snackbar.Snackbar; + +import static com.blogspot.developersu.nowol.ServerReplies.*; + +public class MainActivity extends AppCompatActivity { + private TextView hostAddress, + statusLbl; + + private Intent SendRequestIntent; + + private int status = -2; + + private SharedPreferences settings; + + private class MyResultReciever extends ResultReceiver{ + + MyResultReciever(Handler handler) { + super(handler); + } + + @Override + protected void onReceiveResult(int resultCode, Bundle resultData) { + super.onReceiveResult(resultCode, resultData); + status = resultCode; + updateServerStatusText(resultCode); + showSnackBarNotice(resultCode); + } + } + + private void doRequest(String url) { + SendRequestIntent.putExtra("url", url); + startService(SendRequestIntent); + } + + private void inform(String textToShow){ + Snackbar.make(findViewById(android.R.id.content), textToShow, Snackbar.LENGTH_SHORT).show(); + } + + // provide toolbar options + @Override + public boolean onCreateOptionsMenu(Menu menu){ + MenuInflater infMenu = getMenuInflater(); + infMenu.inflate(R.menu.toolbar_main, menu); + return true; + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt("STATE", status); + } + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + MyResultReciever myReciever = new MyResultReciever(null); + SendRequestIntent = new Intent(this, SendRequestService.class); + SendRequestIntent.putExtra("receiver", myReciever); + + // toolbar setup start + Toolbar toolBar = findViewById(R.id.toolbar); + setSupportActionBar(toolBar); + getSupportActionBar(); + // toolbar setup end + + hostAddress = findViewById(R.id.hostNameStaticMain); + statusLbl = findViewById(R.id.statusTxtMainAct); + + if (savedInstanceState != null){ + status = savedInstanceState.getInt("STATE"); + updateServerStatusText(status); + } + + Button powerBtn = findViewById(R.id.pwrBntMainAct); + Button power5Btn = findViewById(R.id.pwr5BntMainAct); + Button resetBtn = findViewById(R.id.resBntMainAct); + // Set request queue for Volley + + settings = getSharedPreferences("NoWolPreferences", MODE_PRIVATE); + hostAddress.setText(settings.getString("Host", getResources().getString(R.string.hostNameDefault))); + + final Button.OnClickListener ActionButtonsListener = event -> { + switch (event.getId()) { + case R.id.pwrBntMainAct: + doRequest(hostAddress.getText().toString() + "/?POWER0=on"); + break; + case R.id.pwr5BntMainAct: + doRequest(hostAddress.getText().toString() + "/?POWER1=on"); + break; + case R.id.resBntMainAct: + doRequest(hostAddress.getText().toString() + "/?RESET=on"); + } + }; + // RequestQueue + powerBtn.setOnClickListener(ActionButtonsListener); + power5Btn.setOnClickListener(ActionButtonsListener); + resetBtn.setOnClickListener(ActionButtonsListener); + } + + private void updateServerStatusText(int status){ + switch (status) { + case STATE_ON: + statusLbl.setText(getResources().getString(R.string.statusOnline)); + statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimaryDark)); + break; + case STATE_OFF: + statusLbl.setText(getResources().getString(R.string.statusOffline)); + statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorRed)); + break; + case STATE_UNKNOWN: + statusLbl.setText(getResources().getString(R.string.noResponse)); + statusLbl.setTextColor(hostAddress.getTextColors()); + break; + } + } + private void showSnackBarNotice(int status) { + switch (status) { + case STATE_ON: + inform(getResources().getString(R.string.statusOnline)); + break; + case STATE_OFF: + inform(getResources().getString(R.string.statusOffline)); + break; + case STATE_UNKNOWN: + inform(getResources().getString(R.string.noResponse) + hostAddress.getText().toString()); + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item){ + switch (item.getItemId()){ + case R.id.refreshMenu: /* Button requests status */ + doRequest(hostAddress.getText().toString()); + break; + case R.id.changeHostMenu: /* Button requests pop-up window */ + showSettingsDialog(); + } + return true; + } + + private void showSettingsDialog(){ + final Dialog dialog = new Dialog(this); + dialog.setContentView(R.layout.settings_popup); + dialog.setTitle(getString(R.string.popupTitle)); + EditText input = (EditText) dialog.findViewById(R.id.input); + input.setText(hostAddress.getText()); + Button confirmButton = (Button) dialog.findViewById(R.id.confirm); + confirmButton.setOnClickListener(event -> { + updateAllUsingNewIp(input.getText()); + dialog.dismiss(); + }); + dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); + dialog.show(); + } + private void updateAllUsingNewIp(Editable newIpAddress){ + hostAddress.setText(newIpAddress); + // TODO:fix + inform(getResources().getString(R.string.hostLblMain) + newIpAddress); + settings.edit().putString("Host", newIpAddress.toString()).apply(); + + /* Update widgets by sending broadcast intent */ + Intent updateWidgetIntent = new Intent(this, NoWolWidget.class); + updateWidgetIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); + int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(this, NoWolWidget.class)); + updateWidgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds); + sendBroadcast(updateWidgetIntent); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + stopService(SendRequestIntent); // just in case + } +} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/SendRequestService.java b/app/src/main/java/com/blogspot/developersu/nowol/SendRequestService.java new file mode 100644 index 0000000..5b01036 --- /dev/null +++ b/app/src/main/java/com/blogspot/developersu/nowol/SendRequestService.java @@ -0,0 +1,98 @@ +/* + Copyright 2017-2020 Dmitry Isaenko + + This file is part of NoWOL. + + NoWOL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + NoWOL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with NoWOL. If not, see . +*/ +package com.blogspot.developersu.nowol; + +import android.app.IntentService; +import android.appwidget.AppWidgetManager; +import android.content.Intent; +import android.os.Bundle; +import android.os.ResultReceiver; +import android.widget.RemoteViews; +import androidx.core.content.ContextCompat; +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.toolbox.StringRequest; +import com.android.volley.toolbox.Volley; + +import static com.blogspot.developersu.nowol.ServerReplies.*; + +public class SendRequestService extends IntentService { + + private ResultReceiver resReceiver; + + public SendRequestService() { + super("MyIntentService"); + } + + @Override + protected void onHandleIntent(Intent intent) { + Bundle bundle = intent.getExtras(); + + if (bundle == null) + return; + + String url = bundle.getString("url"); + resReceiver = bundle.getParcelable("receiver"); + final int appWidgetId = bundle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID); + + RequestQueue queueStd = Volley.newRequestQueue(this); + + StringRequest strRequest = new StringRequest(Request.Method.GET, url, //will be 4 requests + response -> { + if (response.contains("00c600")) + sendData(STATE_ON, appWidgetId); + else + sendData(STATE_OFF, appWidgetId); + }, error -> sendData(STATE_UNKNOWN, appWidgetId)); + + queueStd.add(strRequest); + } + + private void sendData(int state, int widgetId){ + final int greenColor = ContextCompat.getColor(this, R.color.colorPrimary); + final int redColor = ContextCompat.getColor(this, R.color.colorRed); + final int orangeColor = ContextCompat.getColor(this, R.color.colorOrange); + + // MainActivity requested + if (widgetId == 0){ + resReceiver.send(state, null); + } + + switch (state){ + case STATE_ON: + setWidgetTextColorIndication(widgetId, getResources().getString(R.string.statusOnline), greenColor); + break; + case STATE_OFF: + setWidgetTextColorIndication(widgetId, getResources().getString(R.string.statusOffline), redColor); + break; + case STATE_UNKNOWN: + setWidgetTextColorIndication(widgetId, getResources().getString(R.string.noResponse), orangeColor); + break; + } + } + private void setWidgetTextColorIndication(int widgetId, String text, int color){ + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); + RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.no_wol_widget); + + remoteViews.setTextViewText(R.id.widgetStatusText, text); + remoteViews.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", color); + + appWidgetManager.updateAppWidget(widgetId, remoteViews); + } +} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/ServerReplies.java b/app/src/main/java/com/blogspot/developersu/nowol/ServerReplies.java new file mode 100644 index 0000000..25c5256 --- /dev/null +++ b/app/src/main/java/com/blogspot/developersu/nowol/ServerReplies.java @@ -0,0 +1,25 @@ +/* + Copyright 2017-2020 Dmitry Isaenko + + This file is part of NoWOL. + + NoWOL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + NoWOL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with NoWOL. If not, see . +*/ +package com.blogspot.developersu.nowol; + +public class ServerReplies { + public static final int STATE_ON = 1; + public static final int STATE_OFF = 0; + public static final int STATE_UNKNOWN = -1; +} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java deleted file mode 100644 index 5d73c63..0000000 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/MainActivity.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.blogspot.developersu.nowol.nowol; - -import android.appwidget.AppWidgetManager; -import android.content.ComponentName; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Handler; -import android.os.ResultReceiver; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; -import android.widget.TextView; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; -import androidx.core.content.ContextCompat; -import com.blogspot.developersu.nowol.nowol.com.blogspot.developersu.nowol.nowol.widget.NoWolWidget; -import com.google.android.material.snackbar.Snackbar; - -public class MainActivity extends AppCompatActivity implements popUp.pupUpRetuningValueListener { - private TextView hostAddress; - private TextView statusLbl; - - Intent SendRequestIntent; - - private int status = -2; - - SharedPreferences.Editor settingsEditor; - // define reciever for the data we got from service - private class MyResultReciever extends ResultReceiver{ - - MyResultReciever(Handler handler) { - super(handler); - } - - @Override - protected void onReceiveResult(int resultCode, Bundle resultData) { - super.onReceiveResult(resultCode, resultData); - switch (resultCode) { - case 1: - inform(getResources().getString(R.string.statusOnline)); - statusLbl.setText(getResources().getString(R.string.statusOnline)); - statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimaryDark)); - break; - case 0: - inform(getResources().getString(R.string.statusOffline)); - statusLbl.setText(getResources().getString(R.string.statusOffline)); - statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorRed)); - break; - case -1: - inform(getResources().getString(R.string.noResponse) + hostAddress.getText().toString()); - statusLbl.setText(getResources().getString(R.string.noResponse)); - statusLbl.setTextColor(hostAddress.getTextColors()); - break; - default: break; - } - status = resultCode; - } - } - //reciever end - private void doRequest(String url) { - SendRequestIntent.putExtra("url", url); - startService(SendRequestIntent); - } - - private void inform(String textToShow){ - //Toast.makeText(this, textToShow, Toast.LENGTH_SHORT).show(); - // .setGravity(Gravity.TOP|Gravity.BOTTOM,0,0) - Snackbar.make(findViewById(android.R.id.content), textToShow, Snackbar.LENGTH_SHORT).show(); - // SOME GOODS APPEARS SUDDENLY android.R.id.content gives you the root element of a view, without having to know its actual name/type/ID. - } - - // provide toolbar options - @Override - public boolean onCreateOptionsMenu(Menu menu){ - MenuInflater infMenu = getMenuInflater(); - infMenu.inflate(R.menu.toolbar_main, menu); - return true; - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt("STATE", status); - } - - @Override - protected void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - MyResultReciever myReciever = new MyResultReciever(null); - SendRequestIntent = new Intent(this, SendRequestService.class); - SendRequestIntent.putExtra("reciever", myReciever); - - // toolbar setup start - Toolbar toolBar = findViewById(R.id.toolbar); - setSupportActionBar(toolBar); - getSupportActionBar(); - // toolbar setup end - - hostAddress = findViewById(R.id.hostNameStaticMain); - statusLbl = findViewById(R.id.statusTxtMainAct); - - if (savedInstanceState != null){ - status = savedInstanceState.getInt("STATE"); - switch (status) { - case 1: - inform(getResources().getString(R.string.statusOnline)); - statusLbl.setText(getResources().getString(R.string.statusOnline)); - statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimaryDark)); - break; - case 0: - inform(getResources().getString(R.string.statusOffline)); - statusLbl.setText(getResources().getString(R.string.statusOffline)); - statusLbl.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorRed)); - break; - case -1: - inform(getResources().getString(R.string.noResponse) + hostAddress.getText().toString()); - statusLbl.setText(getResources().getString(R.string.noResponse)); - statusLbl.setTextColor(hostAddress.getTextColors()); - break; - } - } - - Button powerBtn = findViewById(R.id.pwrBntMainAct); - Button power5Btn = findViewById(R.id.pwr5BntMainAct); - Button resetBtn = findViewById(R.id.resBntMainAct); - // Set request queue for Volley - - - SharedPreferences settings = getSharedPreferences("NoWolPreferences", MODE_PRIVATE); - hostAddress.setText(settings.getString("Host", getResources().getString(R.string.hostNameDefault))); - settingsEditor = settings.edit(); - - final Button.OnClickListener ActionButtonsListener = new Button.OnClickListener() { - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.pwrBntMainAct: - doRequest(hostAddress.getText().toString() + "/?POWER0=on"); - break; - case R.id.pwr5BntMainAct: - doRequest(hostAddress.getText().toString() + "/?POWER1=on"); - break; - case R.id.resBntMainAct: - doRequest(hostAddress.getText().toString() + "/?RESET=on"); - break; - default: - break; - } - } - }; - // RequestQueue - powerBtn.setOnClickListener(ActionButtonsListener); - power5Btn.setOnClickListener(ActionButtonsListener); - resetBtn.setOnClickListener(ActionButtonsListener); - } - - @Override - public void onFinishEdit (String hostNameReSet){ - hostAddress.setText(hostNameReSet); - inform(getResources().getString(R.string.hostLblMain) + hostNameReSet); - settingsEditor.putString("Host", hostNameReSet); - settingsEditor.commit(); - /* - Update widgets by sending broadcast intent - */ - Intent updateWidgetIntent = new Intent(this, NoWolWidget.class); - updateWidgetIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); - - AppWidgetManager awm = AppWidgetManager.getInstance(this); - int[] IDs = awm.getAppWidgetIds(new ComponentName(this, NoWolWidget.class)); - updateWidgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, IDs); - getApplicationContext().sendBroadcast(updateWidgetIntent); - /* - broadcast end - */ - } - - @Override - public boolean onOptionsItemSelected(MenuItem item){ - switch (item.getItemId()){ - case R.id.refreshMenu: /* Button requests status */ - doRequest(hostAddress.getText().toString()); - break; - case R.id.changeHostMenu: /* Button requests pop-up window */ - popUp N = popUp.newInstance(hostAddress.getText()); - N.show(this.getSupportFragmentManager(), "tst"); - break; - default: - //onOptionsItemSelected(item); - break; - } - return true; - } - - @Override - protected void onDestroy() { - super.onDestroy(); - stopService(SendRequestIntent); // just in case - } -} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java deleted file mode 100644 index 68fff28..0000000 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/SendRequestService.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.blogspot.developersu.nowol.nowol; - -import android.app.IntentService; -import android.appwidget.AppWidgetManager; -import android.content.Intent; -import android.os.Bundle; -import android.os.ResultReceiver; -import android.widget.RemoteViews; -import androidx.core.content.ContextCompat; -import com.android.volley.Request; -import com.android.volley.RequestQueue; -import com.android.volley.Response; -import com.android.volley.VolleyError; -import com.android.volley.toolbox.StringRequest; -import com.android.volley.toolbox.Volley; - - -public class SendRequestService extends IntentService { - - private static final int STATE_ON = 1; - private static final int STATE_OFF = 0; - private static final int STATE_UNKNOWN = -1; - - private ResultReceiver resReceiver; - - public SendRequestService() { - super("MyIntentService"); - } - - private void sendData(int state, int awID){ - // MainActivity requested - if (awID == 0) { - // Log.d("qwerty1212", "MainActivity case. Status = " + Integer.toString(state) + " awID = " + Integer.toString(awID)); - resReceiver.send(state, null); - } - - RemoteViews rv = new RemoteViews(getPackageName(), R.layout.no_wol_widget); - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); - - switch (state){ - case STATE_ON: - rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.statusOnline)); - rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorPrimary)); - // Log.d("qwerty1212", "case 1 widget"); - break; - case STATE_OFF: - rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.statusOffline)); - rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorRed)); - // Log.d("qwerty1212", "case 0 widget"); - break; - case STATE_UNKNOWN: - rv.setTextViewText(R.id.widgetStatusText, getResources().getString(R.string.noResponse)); - rv.setInt(R.id.widgetHeaderLayout, "setBackgroundColor", ContextCompat.getColor(this, R.color.colorOrange)); - // Log.d("qwerty1212", "case -1 widget"); - break; - } - appWidgetManager.updateAppWidget(awID, rv); - } - - @Override - protected void onHandleIntent(Intent intent) { - if (intent == null) - return; - - // Log.d("service", "Got intent"); - Bundle bndle = intent.getExtras(); - String url = bndle.getString("url"); - resReceiver = bndle.getParcelable("reciever"); - final int awID = bndle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID); - - // Log.d("qwerty1212", "got from " + Integer.toString(awID) +" "+ url); - - RequestQueue queueStd = Volley.newRequestQueue(this); - StringRequest strRequest = new StringRequest(Request.Method.GET, url, //will be 4 requests - new Response.Listener() { - @Override - public void onResponse(String response) { - if (response.contains("00c600")){ - sendData(STATE_ON, awID); - } else { - sendData(STATE_OFF, awID); - } - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - sendData(STATE_UNKNOWN, awID); - } - }); - queueStd.add(strRequest); - } -} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java deleted file mode 100644 index 535b250..0000000 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/NoWolWidget.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.blogspot.developersu.nowol.nowol.com.blogspot.developersu.nowol.nowol.widget; - -import android.app.PendingIntent; -import android.appwidget.AppWidgetManager; -import android.appwidget.AppWidgetProvider; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.graphics.Color; -import android.widget.RemoteViews; - -import com.blogspot.developersu.nowol.nowol.R; -import com.blogspot.developersu.nowol.nowol.SendRequestService; - - -public class NoWolWidget extends AppWidgetProvider { - - private void setRequests(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIDs){ - SharedPreferences sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); - String hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault)); - int bgColor = sharedSettings.getInt("WidgetBgColor", Color.BLACK); - - RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.no_wol_widget); - - rv.setInt(R.id.widgetBasicLayout, "setBackgroundColor", bgColor); - - for (int appWidgetId : appWidgetIDs) { - //refresh - Intent refreshIntent = new Intent(context, SendRequestService.class); - refreshIntent.putExtra("url", hostIP); - refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); - PendingIntent refreshPendingIntent = PendingIntent.getService(context, appWidgetId+1, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBntRefresh, refreshPendingIntent); - //reset - Intent resetIntent = new Intent(context, SendRequestService.class); - resetIntent.putExtra("url", hostIP + "/?RESET=on"); - resetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); - PendingIntent resetPendingIntent = PendingIntent.getService(context, appWidgetId+2, resetIntent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBtnReset, resetPendingIntent); - //power - Intent powerIntent = new Intent(context, SendRequestService.class); - powerIntent.putExtra("url", hostIP + "/?POWER0=on"); - powerIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); - PendingIntent powerPendingIntent = PendingIntent.getService(context, appWidgetId+3, powerIntent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBtnPwr, powerPendingIntent); - //power5 - Intent power5Intent = new Intent(context, SendRequestService.class); - power5Intent.putExtra("url", hostIP + "/?POWER1=on"); - power5Intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); - PendingIntent power5PendingIntent = PendingIntent.getService(context, appWidgetId+4, power5Intent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBtnPwr5, power5PendingIntent); - - appWidgetManager.updateAppWidget(appWidgetId, rv); - - context.startService(refreshIntent); - } - } - - @Override - public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - super.onUpdate(context, appWidgetManager, appWidgetIds); - - setRequests(context, appWidgetManager, appWidgetIds); - } - - @Override - public void onEnabled(Context context) { - super.onEnabled(context); - - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, NoWolWidget.class)); - - setRequests(context, appWidgetManager, appWidgetIds); - } - - @Override - public void onReceive(Context context, Intent intent) { - super.onReceive(context, intent); - - onEnabled(context); - } - - @Override - public void onDeleted(Context context, int[] appWidgetIds) { - super.onDeleted(context, appWidgetIds); - } - - @Override - public void onDisabled(Context context) { - super.onDisabled(context); - } -} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java deleted file mode 100644 index 8c3eca5..0000000 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/com/blogspot/developersu/nowol/nowol/widget/WidgetConfigurator.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.blogspot.developersu.nowol.nowol.com.blogspot.developersu.nowol.nowol.widget; - -import android.app.PendingIntent; -import android.appwidget.AppWidgetManager; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.graphics.Color; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.widget.Button; -import android.widget.RemoteViews; -import android.widget.SeekBar; -import android.widget.TextView; -import androidx.appcompat.app.AppCompatActivity; -import com.blogspot.developersu.nowol.nowol.R; -import com.blogspot.developersu.nowol.nowol.SendRequestService; -import com.google.android.material.switchmaterial.SwitchMaterial; - -public class WidgetConfigurator extends AppCompatActivity { - - private SeekBar opacityBar; - private SwitchMaterial bkgoundSwitch; - - private void generateWidgetAndDie(int awID, Context context){ - SharedPreferences.Editor settingsEditor; - - RemoteViews rv = new RemoteViews(this.getPackageName(), R.layout.no_wol_widget); - AppWidgetManager awm = AppWidgetManager.getInstance(this); - - // get shared preferences - SharedPreferences sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); - String hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault)); - // set setting editor to store background color set for all our widgets - settingsEditor = sharedSettings.edit(); - - // @TODO set pending intents linkage to buttons - Intent refreshIntent = new Intent(context, SendRequestService.class); - refreshIntent.putExtra("url", hostIP); - refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID); - PendingIntent refreshPendingIntent = PendingIntent.getService(context, awID+1, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBntRefresh, refreshPendingIntent); - //reset - Intent resetIntent = new Intent(context, SendRequestService.class); - resetIntent.putExtra("url", hostIP + "/?RESET=on"); - resetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID); - PendingIntent resetPendingIntent = PendingIntent.getService(context, awID+2, resetIntent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBtnReset, resetPendingIntent); - //power - Intent powerIntent = new Intent(context, SendRequestService.class); - powerIntent.putExtra("url", hostIP + "/?POWER0=on"); - powerIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID); - PendingIntent powerPendingIntent = PendingIntent.getService(context, awID+3, powerIntent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBtnPwr, powerPendingIntent); - //power5 - Intent power5Intent = new Intent(context, SendRequestService.class); - power5Intent.putExtra("url", hostIP + "/?POWER1=on"); - power5Intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID); - PendingIntent power5PendingIntent = PendingIntent.getService(context, awID+4, power5Intent, PendingIntent.FLAG_UPDATE_CURRENT); - rv.setOnClickPendingIntent(R.id.widgetBtnPwr5, power5PendingIntent); - - if (bkgoundSwitch.isChecked()){ - rv.setInt(R.id.widgetBasicLayout, "setBackgroundColor", Color.argb(255-opacityBar.getProgress()*255/100, 0xff,0xff,0xff)); - settingsEditor.putInt("WidgetBgColor", Color.argb(255-opacityBar.getProgress()*255/100, 0xff,0xff,0xff)); - Log.d("qwerty1212", Integer.toString(Color.argb(255-opacityBar.getProgress()*255/100, 0xff,0xff,0xff))); - } - else{ - rv.setInt(R.id.widgetBasicLayout, "setBackgroundColor", Color.argb(255-opacityBar.getProgress()*255/100, 0x00,0x00,0x00)); - settingsEditor.putInt("WidgetBgColor", Color.argb(255-opacityBar.getProgress()*255/100, 0x00,0x00,0x00)); - Log.d("qwerty1212", Integer.toString(Color.argb(255-opacityBar.getProgress()*255/100, 0x00,0x00,0x00))); - } - settingsEditor.apply(); - - awm.updateAppWidget(awID,rv); - // Send intent to widget - Intent resultIntent = new Intent(); - resultIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awID); - setResult(RESULT_OK, resultIntent); - - //send intent to service to request widget status - startService(refreshIntent); - - finish(); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_widget_configurator); - - Button submitBtn = findViewById(R.id.configBtnSubmit); - opacityBar = findViewById(R.id.configSeekBar); - bkgoundSwitch = findViewById(R.id.configSwitch); - final TextView opacityLbl = findViewById(R.id.configOpacityLbl); - - // Prepare seekBar element - opacityLbl.setText(getString(R.string.confOpacity) + " " + opacityBar.getProgress()+"%"); - opacityBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, int i, boolean b) { - opacityLbl.setText(getString(R.string.confOpacity) + " " + i + "%"); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) {} - @Override - public void onStopTrackingTouch(SeekBar seekBar) {} - }); - bkgoundSwitch.setText(getString(R.string.confWhite)); - - // Cover widget intent - Intent initialConfIntent = getIntent(); - Bundle initialConfIntentBundle = initialConfIntent.getExtras(); - - // Set logic - if (initialConfIntentBundle != null){ - final int awID = initialConfIntentBundle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); - - submitBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - //Log.d("qwerty1212", Integer.toString(opacityBar.getProgress()*255/100)); - generateWidgetAndDie(awID, getApplicationContext()); - } - }); - - } else - finish(); - } -} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/nowol/popUp.java b/app/src/main/java/com/blogspot/developersu/nowol/nowol/popUp.java deleted file mode 100644 index e732955..0000000 --- a/app/src/main/java/com/blogspot/developersu/nowol/nowol/popUp.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.blogspot.developersu.nowol.nowol; - -import android.app.Dialog; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.widget.Button; -import android.widget.EditText; -import androidx.fragment.app.DialogFragment; - -public class popUp extends DialogFragment { - - private EditText hostName; - private Button submit; - - public interface pupUpRetuningValueListener{ - void onFinishEdit(String hostNameReSet); - } - - public static popUp newInstance(CharSequence ipRecieved){ - popUp f = new popUp(); - Bundle myBundle = new Bundle(); - myBundle.putCharSequence("ipRec", ipRecieved); - f.setArguments(myBundle); - return f; - } - - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - //getDialog().setTitle(R.string.hostChBntMain); - - View v = inflater.inflate(R.layout.popup, container, false); - submit = (Button) v.findViewById(R.id.popupHostBtn); - hostName = (EditText) v.findViewById(R.id.popUpHostText); - - - hostName.setText(getArguments().getCharSequence("ipRec")); - - submit.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - pupUpRetuningValueListener retLs = (pupUpRetuningValueListener)getActivity(); - retLs.onFinishEdit(hostName.getText().toString()); - dismiss(); - } - }); - - return v; - } - public Dialog onCreateDialog(Bundle savedInstanceState) { - Dialog dialog = super.onCreateDialog(savedInstanceState); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - return dialog; - } - - -} \ No newline at end of file diff --git a/app/src/main/java/com/blogspot/developersu/nowol/widget/NoWolWidget.java b/app/src/main/java/com/blogspot/developersu/nowol/widget/NoWolWidget.java new file mode 100644 index 0000000..26e71a7 --- /dev/null +++ b/app/src/main/java/com/blogspot/developersu/nowol/widget/NoWolWidget.java @@ -0,0 +1,101 @@ +/* + Copyright 2017-2020 Dmitry Isaenko + + This file is part of NoWOL. + + NoWOL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + NoWOL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with NoWOL. If not, see . +*/ +package com.blogspot.developersu.nowol.widget; + +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.util.Log; +import android.widget.RemoteViews; + +import com.blogspot.developersu.nowol.R; +import com.blogspot.developersu.nowol.SendRequestService; + + +public class NoWolWidget extends AppWidgetProvider { + + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + for (int appWidgetId : appWidgetIds) { + updateAppWidget(context, appWidgetManager, appWidgetId); + } + } + + @Override + public void onReceive(Context context, Intent intent) { + if (intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS)){ + int[] widgetIDs = intent.getExtras().getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS); + for (int widgetID : widgetIDs){ + updateAppWidget(context, AppWidgetManager.getInstance(context), widgetID); + } + } + else + super.onReceive(context, intent); + } + + @Override + public void onEnabled(Context context) { + super.onEnabled(context); + } + + @Override + public void onDeleted(Context context, int[] appWidgetIds) { + for (int appWidgetId : appWidgetIds) { + WidgetConfigurator.deleteBgColorPref(context, appWidgetId); + } + } + + static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, + int appWidgetId) { + int widgetBgColor = WidgetConfigurator.loadBgColorPref(context, appWidgetId); + RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.no_wol_widget); + + remoteViews.setInt(R.id.widgetBodyLayout, "setBackgroundColor", widgetBgColor); + // + SharedPreferences sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); + String hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault)); + + remoteViews.setOnClickPendingIntent(R.id.widgetBntRefresh, + createPendingIntent(context, appWidgetId, hostIP, appWidgetId+1)); // Refresh + remoteViews.setOnClickPendingIntent(R.id.widgetBtnReset, + createPendingIntent(context, appWidgetId, hostIP + "/?RESET=on", appWidgetId+2)); + remoteViews.setOnClickPendingIntent(R.id.widgetBtnPwr, + createPendingIntent(context, appWidgetId, hostIP + "/?POWER0=on", appWidgetId+3)); + remoteViews.setOnClickPendingIntent(R.id.widgetBtnPwr5, + createPendingIntent(context, appWidgetId, hostIP + "/?POWER1=on", appWidgetId+4)); + + appWidgetManager.updateAppWidget(appWidgetId, remoteViews); + // Ping serv TODO: FIX + Intent refreshIntent = new Intent(context, SendRequestService.class); + refreshIntent.putExtra("url", hostIP); + refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); + context.startService(refreshIntent); + // Instruct the widget manager to update the widget + appWidgetManager.updateAppWidget(appWidgetId, remoteViews); + } + private static PendingIntent createPendingIntent(Context context, int widgetId, String linkAddress, int code){ + Intent intent = new Intent(context, SendRequestService.class); + intent.putExtra("url", linkAddress); + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); + return PendingIntent.getService(context, code, intent, PendingIntent.FLAG_UPDATE_CURRENT); + } +} diff --git a/app/src/main/java/com/blogspot/developersu/nowol/widget/WidgetConfigurator.java b/app/src/main/java/com/blogspot/developersu/nowol/widget/WidgetConfigurator.java new file mode 100644 index 0000000..6f804d5 --- /dev/null +++ b/app/src/main/java/com/blogspot/developersu/nowol/widget/WidgetConfigurator.java @@ -0,0 +1,140 @@ +/* + Copyright 2017-2020 Dmitry Isaenko + + This file is part of NoWOL. + + NoWOL is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + NoWOL is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with NoWOL. If not, see . +*/ +package com.blogspot.developersu.nowol.widget; + +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import android.util.Log; +import android.widget.Button; +import android.widget.RemoteViews; +import android.widget.SeekBar; +import android.widget.TextView; +import androidx.appcompat.app.AppCompatActivity; +import com.blogspot.developersu.nowol.R; +import com.blogspot.developersu.nowol.SendRequestService; +import com.google.android.material.switchmaterial.SwitchMaterial; + +public class WidgetConfigurator extends AppCompatActivity { + + private SeekBar opacityBar; + private SwitchMaterial bgColorSwitch; + private Context context; + + private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setResult(RESULT_CANCELED); + + setContentView(R.layout.activity_widget_configurator); + + Button submitBtn = findViewById(R.id.configBtnSubmit); + opacityBar = findViewById(R.id.configSeekBar); + bgColorSwitch = findViewById(R.id.configSwitch); + final TextView opacityLbl = findViewById(R.id.configOpacityLbl); + opacityLbl.setText(getString(R.string.confOpacity, 0)); + opacityBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int i, boolean b) { + opacityLbl.setText(getString(R.string.confOpacity, i)); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) {} + @Override + public void onStopTrackingTouch(SeekBar seekBar) {} + }); + + this.context = getApplicationContext(); + + // Cover widget intent + Intent initialConfIntent = getIntent(); + Bundle initialConfBundle = initialConfIntent.getExtras(); + + if (initialConfBundle != null) { + appWidgetId = initialConfBundle.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID); + } + if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) { + finish(); + return; + } + + submitBtn.setOnClickListener(view -> createWidget()); + } + + private void createWidget(){ + RemoteViews remoteViews = new RemoteViews(this.getPackageName(), R.layout.no_wol_widget); + + SharedPreferences sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); + String hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault)); + + SharedPreferences.Editor settingsEditor = sharedSettings.edit(); + + remoteViews.setOnClickPendingIntent(R.id.widgetBntRefresh, + createPendingIntent(hostIP, appWidgetId+1)); // Refresh + remoteViews.setOnClickPendingIntent(R.id.widgetBtnReset, + createPendingIntent(hostIP + "/?RESET=on", appWidgetId+2)); + remoteViews.setOnClickPendingIntent(R.id.widgetBtnPwr, + createPendingIntent(hostIP + "/?POWER0=on", appWidgetId+3)); + remoteViews.setOnClickPendingIntent(R.id.widgetBtnPwr5, + createPendingIntent(hostIP + "/?POWER1=on", appWidgetId+4)); + int bgColor = getBackgoundColor(); + remoteViews.setInt(R.id.widgetBodyLayout, "setBackgroundColor", bgColor); + settingsEditor.putInt("WidgetBgColor" + appWidgetId, bgColor).apply(); + + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this); + appWidgetManager.updateAppWidget(appWidgetId, remoteViews); + // Send intent to widget + Intent resultIntent = new Intent(); + resultIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); + setResult(RESULT_OK, resultIntent); + finish(); + } + private PendingIntent createPendingIntent(String linkAddress, int code){ + Intent intent = new Intent(context, SendRequestService.class); + intent.putExtra("url", linkAddress); + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); + return PendingIntent.getService(context, code, intent, PendingIntent.FLAG_UPDATE_CURRENT); + } + private int getBackgoundColor(){ + if (bgColorSwitch.isChecked()) + return Color.argb(255-opacityBar.getProgress()*255/100, 0xff,0xff,0xff); + else + return Color.argb(255-opacityBar.getProgress()*255/100, 0x00,0x00,0x00); + } + + static int loadBgColorPref(Context context, int appWidgetId) { + SharedPreferences prefs = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE); + return prefs.getInt("WidgetBgColor" + appWidgetId, Color.argb(255, 0x00,0x00,0x00)); + } + + static void deleteBgColorPref(Context context, int appWidgetId) { + SharedPreferences.Editor prefs = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE).edit(); + prefs.remove("WidgetBgColor" + appWidgetId); + prefs.apply(); + } +} diff --git a/app/src/main/pwr5_widget-web.png b/app/src/main/pwr5_widget-web.png deleted file mode 100644 index de513a76711e43338e53cb87b39efc5b216f4673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18924 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 B9)bV> diff --git a/app/src/main/refresh_widget-web.png b/app/src/main/refresh_widget-web.png deleted file mode 100644 index 846544dc4ef03e16750118e34ed56749ceac2ed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20401 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 BusQ$$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-anydpi-v21/w_power.xml b/app/src/main/res/drawable-anydpi-v21/w_power.xml new file mode 100644 index 0000000..f7878bd --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_power.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_power5.xml b/app/src/main/res/drawable-anydpi-v21/w_power5.xml new file mode 100644 index 0000000..22c0354 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_power5.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_power5_press.xml b/app/src/main/res/drawable-anydpi-v21/w_power5_press.xml new file mode 100644 index 0000000..258f671 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_power5_press.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_power_press.xml b/app/src/main/res/drawable-anydpi-v21/w_power_press.xml new file mode 100644 index 0000000..3d7911b --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_power_press.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_refresh.xml b/app/src/main/res/drawable-anydpi-v21/w_refresh.xml new file mode 100644 index 0000000..0a595e3 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_refresh.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_refresh_press.xml b/app/src/main/res/drawable-anydpi-v21/w_refresh_press.xml new file mode 100644 index 0000000..db1e5bf --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_refresh_press.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_reset.xml b/app/src/main/res/drawable-anydpi-v21/w_reset.xml new file mode 100644 index 0000000..ba01c9b --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_reset.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable-anydpi-v21/w_reset_press.xml b/app/src/main/res/drawable-anydpi-v21/w_reset_press.xml new file mode 100644 index 0000000..f8dee9a --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v21/w_reset_press.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable-hdpi/.directory b/app/src/main/res/drawable-hdpi/.directory deleted file mode 100644 index 5d657c4..0000000 --- a/app/src/main/res/drawable-hdpi/.directory +++ /dev/null @@ -1,4 +0,0 @@ -[Dolphin] -PreviewsShown=true -Timestamp=2017,8,6,16,39,33 -Version=3 diff --git a/app/src/main/res/drawable-hdpi/pwr_widget_normal.png b/app/src/main/res/drawable-hdpi/w_power.png similarity index 100% rename from app/src/main/res/drawable-hdpi/pwr_widget_normal.png rename to app/src/main/res/drawable-hdpi/w_power.png diff --git a/app/src/main/res/drawable-hdpi/pwr5_widget_normal.png b/app/src/main/res/drawable-hdpi/w_power5.png similarity index 100% rename from app/src/main/res/drawable-hdpi/pwr5_widget_normal.png rename to app/src/main/res/drawable-hdpi/w_power5.png diff --git a/app/src/main/res/drawable-hdpi/pwr5_widget_pressed.png b/app/src/main/res/drawable-hdpi/w_power5_press.png similarity index 100% rename from app/src/main/res/drawable-hdpi/pwr5_widget_pressed.png rename to app/src/main/res/drawable-hdpi/w_power5_press.png diff --git a/app/src/main/res/drawable-hdpi/pwr_widget_pressed.png b/app/src/main/res/drawable-hdpi/w_power_press.png similarity index 100% rename from app/src/main/res/drawable-hdpi/pwr_widget_pressed.png rename to app/src/main/res/drawable-hdpi/w_power_press.png diff --git a/app/src/main/res/drawable-hdpi/refresh_widget.png b/app/src/main/res/drawable-hdpi/w_refresh.png similarity index 100% rename from app/src/main/res/drawable-hdpi/refresh_widget.png rename to app/src/main/res/drawable-hdpi/w_refresh.png diff --git a/app/src/main/res/drawable-hdpi/refresh_widget_pressed.png b/app/src/main/res/drawable-hdpi/w_refresh_press.png similarity index 100% rename from app/src/main/res/drawable-hdpi/refresh_widget_pressed.png rename to app/src/main/res/drawable-hdpi/w_refresh_press.png diff --git a/app/src/main/res/drawable-hdpi/rst_widget_normal.png b/app/src/main/res/drawable-hdpi/w_reset.png similarity index 100% rename from app/src/main/res/drawable-hdpi/rst_widget_normal.png rename to app/src/main/res/drawable-hdpi/w_reset.png diff --git a/app/src/main/res/drawable-hdpi/rst_widget_pressed.png b/app/src/main/res/drawable-hdpi/w_reset_press.png similarity index 100% rename from app/src/main/res/drawable-hdpi/rst_widget_pressed.png rename to app/src/main/res/drawable-hdpi/w_reset_press.png diff --git a/app/src/main/res/drawable-mdpi/.directory b/app/src/main/res/drawable-mdpi/.directory deleted file mode 100644 index 958cefe..0000000 --- a/app/src/main/res/drawable-mdpi/.directory +++ /dev/null @@ -1,4 +0,0 @@ -[Dolphin] -PreviewsShown=true -Timestamp=2017,8,6,16,39,9 -Version=3 diff --git a/app/src/main/res/drawable-mdpi/pwr_widget_normal.png b/app/src/main/res/drawable-mdpi/w_power.png similarity index 100% rename from app/src/main/res/drawable-mdpi/pwr_widget_normal.png rename to app/src/main/res/drawable-mdpi/w_power.png diff --git a/app/src/main/res/drawable-mdpi/pwr5_widget_normal.png b/app/src/main/res/drawable-mdpi/w_power5.png similarity index 100% rename from app/src/main/res/drawable-mdpi/pwr5_widget_normal.png rename to app/src/main/res/drawable-mdpi/w_power5.png diff --git a/app/src/main/res/drawable-mdpi/pwr5_widget_pressed.png b/app/src/main/res/drawable-mdpi/w_power5_press.png similarity index 100% rename from app/src/main/res/drawable-mdpi/pwr5_widget_pressed.png rename to app/src/main/res/drawable-mdpi/w_power5_press.png diff --git a/app/src/main/res/drawable-mdpi/pwr_widget_pressed.png b/app/src/main/res/drawable-mdpi/w_power_press.png similarity index 100% rename from app/src/main/res/drawable-mdpi/pwr_widget_pressed.png rename to app/src/main/res/drawable-mdpi/w_power_press.png diff --git a/app/src/main/res/drawable-mdpi/refresh_widget.png b/app/src/main/res/drawable-mdpi/w_refresh.png similarity index 100% rename from app/src/main/res/drawable-mdpi/refresh_widget.png rename to app/src/main/res/drawable-mdpi/w_refresh.png diff --git a/app/src/main/res/drawable-mdpi/refresh_widget_pressed.png b/app/src/main/res/drawable-mdpi/w_refresh_press.png similarity index 100% rename from app/src/main/res/drawable-mdpi/refresh_widget_pressed.png rename to app/src/main/res/drawable-mdpi/w_refresh_press.png diff --git a/app/src/main/res/drawable-mdpi/rst_widget_normal.png b/app/src/main/res/drawable-mdpi/w_reset.png similarity index 100% rename from app/src/main/res/drawable-mdpi/rst_widget_normal.png rename to app/src/main/res/drawable-mdpi/w_reset.png diff --git a/app/src/main/res/drawable-mdpi/rst_widget_pressed.png b/app/src/main/res/drawable-mdpi/w_reset_press.png similarity index 100% rename from app/src/main/res/drawable-mdpi/rst_widget_pressed.png rename to app/src/main/res/drawable-mdpi/w_reset_press.png diff --git a/app/src/main/res/drawable-nodpi/widget_preview.png b/app/src/main/res/drawable-nodpi/widget_preview.png index df38e29aa871e90d31d24c832e3364d1bcd53be8..f8c6e99a6e6b8d4fd928eab40642830af0a2c0a3 100644 GIT binary patch literal 34865 zcmdpd^;cX$(`FJR1PSi$?j9h6ySuvt4-UbCI|PTpf=h6B_W>qYaJL}AUH9_7-=4E) zf7m}@fjP|d+}pRiy6UN?tEwZE6{S!R2@v1Bd4nP&Ew1|J&D(z9^&SBpXknw|fdf8- zSc{1%%ZQ1QeRX!Uw6?Q&^M)?oH(p4(PZ=vjNv%+ofdU81X;?XnDID8rh5;*Av;MHl*?LLRi6lME-(lbrSTru%79oOPUQ4`|H!1wq=amH6@7j9S?`u_rU!JRV>telXv!~!b8!^7-vrN?=KkhT-(frbkXj1R>b z6Q_KJXOQQ&X&$~4%rG4l%?N13kU}fj8RZ;y>KY#|nCWz^I$d!bGc002^gSc-SY(l; zpahW$ch-4GG=yP~c|x~kRQG0^6?x|}*`jiqK;&JNb|5S|Vi{d7GNH<%n<`VmU%}%I zQipqLXZmf1fOxaF*k68R_??1oh4dInGh7ozoqj$HIDM83=w|s{!as3Sv&E(O=7sZX zVbfFcC$Nka&Xf9Y^26Gzotl&(b?2 zDn=CsTPC-^{rEAU=AA{AcY9m0i^I!x{q7BnHJo$)ob-$+urBbXa#G@NxL$v&xQM!e zmJeU0bzI)OLBf1}y?q1D!~+`NyUHj?yx&HAi^~On%j`G=G~v5SXuFCz+S^+=xV{l{ zwlHzEFeme{cKt#oC8MCM74Q-F%^R{eGU6iYo{L8v9zTfZeD@ysi~GiJ6el?Gwlfh_ zsl+2cP<&89&J&N|k^pnG5I}rtH3>)cpwEZ17nO%XS{-}LbFEA>2VM}pMlB5HCB!0W zxLsKI?{8%K-@-eck7c=iy%f4=6h+FFz^Le4*aI(J27czhwS!@>A(`81q>k!AhR5> zM&_Nuu`lLd79ERJvzjwO$bb9n;xMLjI67*6GNoT;R$(l$rBDgA8=`c27%V23<` z8Z5m>PJMP|Nm5sdEy2&3^(EH`cYIoNl^Tz`2liU7NruvYb_a%VS%*v_#vz)Vf*Zec&? zG@05cpL;Qunpu-}4ud`4JZnrMA`eIWRh~XnROPU?YKJYwhmdl`id-J`Ff39<=ODDe zALypmru=bCFYs5n@bdd|y34ZFrS3@HL#s50=Ko!V-6koq=6Gf|EhnoXgL0V)S{q3a z7khal4y9zUG!=(ZIPa{(uJOH4?U(S!n5?YU9G*0F}QMZ|}g9va9QZ~q8@KtI#InN(32O=ce6dL}c1-oK( z^P-aB%*S8t!0(7!TZ!z;Bi3b#T%wt#*{W&CG>d~a#m_+Nc=4#IN98H9KLh$3GJ8KuL!+} z3;if_`|(fkwO0GkM;_QS)6rn0r;R&pm8dk-!aarjNqvG)wvrFC=cnh6)f6oldpu}d`~`z)^XU{eLZPZWZt*;*GY;P>bV&2My1{SBtIEoDh37i1 zL(G5oXoxCY<0dz$?6K<;)Rci?x53aD^o^V=SjC;$GrRXJGT95wuU_-cOnxmDtYyNC3_BjqEV<9&TCC`Lk~NHCb+Ad!CFfik0e&xX-QczsoBdR`YF{Cx~?aWMRWQUJyckRt-#!D#S+}d z9Bh&1`guG9rY)UCaq9!B3G4-R1Dy>Qm|v7aVKMLD(U-QYf-G=DQ?c?GmX)XNHj1Cu zwe>2IS5Tf-bHT;@R1x*mXbf}HZwzbx6I-~zMP=fw8kPgmE5J(c!eLbc=;iY?ql43p zt$pwr6MyZ8yT#Whh)2_9@BMIdE^yh(%>F#^9Pf*42``O1IMR%-zfYmCakKPeQTLH< z1&_C3c{HYicbdq0zRZh`s^FN ze^d|BY82PS2-f|Lod*D#zN%)VMrnio-0cEfMQdN;`@8*8|J|$_p;V^OcOo$ckn5sD z9lg5P;AH(7Cpk+tGfVR|joWUO-wMSKo^Qv&_HeSp6r;M2>d0}->Jlx-$ zUrrW#-i;v@ba0KPAjpxSyoK+)%B>hcMTH|F5nB-95OKEYm9MTi<~%xCk;+x>N01u} zmoR7!pgt=EupoBtN4AX1Q9rw2pF}9NxCjE8=sha?w^%L$1z`^#daW!oP}TabSM7gf)(QQOb9dT?@thU-vjt@rILsty`99-jW}SMD6gt{~%th}lf0#rhbNMo^ zVj!p)IFC@rNM7t0&`llzqBQ95II!#~7z1LzL8Z~7+1cbvZ6W3guW1mLmr za61;!uMWpBI#{Z?BgHz0hnR8E>LO&Azz@CmbXvO*yc$)*8bnO{fN3o^miA7`Dc*aX zAZAxh(YGWZR+|c$?#hzcq|h z@TtplzXErk^wdQtn7kVe0j3~{D(}N_=Z0aY4 zd-rLO4-PCIdf(bs19dN!pLzAiS6-pP6`E1faJc*Am&ewVK88;dg_)D)t&}9X=C8$s8W8#RV&s$`<=;{FU6lsW&_=RCCt;frc2p@3R z=NC3!`<4&nRHfRHS%jV4zi-i$NWBorse927=zoZ;OY+~V8yIhNeJ?Rm=407umP0Rz zYM)T;JqV1?GIiR+QYB*&SsivVe?&VW_0QQ14$5#kLqy!64?eviOjbn@BNM~mG%=-- zj}E_FSqSB8A}Nz=-$Ug90qWGGs8^pgc!y`>XFoO#c|3 zsu+iP(YJGNB7r}0JgE|)u$If+vbt#>U?@$=m?M7t6g-V2@s?aG*!udOSm9s! zmm6MVt@Q^BSQlL>gWtS`;Y$Av#EG5v5rUkePA(Jbo zd>8bLMSNHEc$d&99!hPw+^-0J)(1Z~JfxPO$&TS3hwMtRnEI6swcHn~;==s?!r~z+ ziC`Nb*`>n^5qCN_>&mW1C$}h;)-BcPx=8}u8haXHITme;Hqs;x&v?8h&#e6*&tnFO zB5K{uI*Fm*7IjfkF*=X73})NJU}ar(poF@1&n7W~DNEwc%B1hnv0l%4BQ^rLv^ZwD zjluZhpj*4^0bF!R0P-EnrzON`v{EbIe>8R``AMb}pq`$|8yVcev*0~euw*i}PQzE- zUQ@k3ZmM!B_yjxlp>9`@)KnO~s<^a&k7nV!w>>p7j01}^pAs|?#blBYgN2zDQIb`W zt-}6h@yWKbku?8E&vC?Wx3aCzn)r*MOTkQ4fz?I+zy5uc)ja6&qtV!^0!4x_qKuUp?k~N$)1$Vo9$CILc7O6l z3LNGQcXxN6_~3L{EZ?mmd;(%~rY)qPdN>Sz5Q0Ao|ODL|uR*oWoTMB(LG6SZnblG6^r?z6+(6>J{0cv=4(IuweZj(^6?qW4_` zT|zC5>K_#ZgHhY4EZHM@(8DN_}XaK3vEzc60GO+;*vO9X}D5 zZ?~`KFnILzCpg_)?H`VV&58=nN)E1n@84TGHJhm}61BWM_)(2#C1V+uUq%xZ5Rb2Y zQ-txMZ{Nkn5^uC%cJ0pG(ii*++#r4ywxX3JJ3M_*2#;zocO6i^|NG&+OYPM4S_sLw<&Oi}jL=%{4nII$b&L zMP80Rpf0|P3ptl`hQcq%yfsv-2FK#%Nt?I(W=EiU)HjqAH8%1`pO63xDdT4E4J8d% zN$zGg2&so{kxvQO)KQGhGFCVwC@@jWDJ$;iBz9cvOLzX7Sma3mEukQt!9y1wO(G%- zX-ocFb5RgFH-i%WY>M;`np&=!Xh3?w(P(|sVwohLW5DWs*;{SzD9I24B?FT`nTqSA z>krh0UzCkCjzLsnfE;v;+H!pq zstBu0wvm^kqmc3O$nl%0U}A23=7z3*IjlGCcvP49DM+j%u{gFm-riuav*ihEn}*6C z9Np{e;mgDsTiQorKHq|6-%jO_imB@iq9vGU7HX>DmJKD*ux}FKgwaJmz`;b9Z0wb! z1eUuB$4R;@Yd8ceMPPE43j)IKbfIyJv11(lEKQt(lX1;txuO($6LlH zuT)e&rHiJ%={ zrPw#i%yu<0Qz>Z))wH6QlZdYggsmVcgOY%nc&-zr_9!(b_<9Q5pgi_&Zj)q8EfyTOa_W`>#@1FcLmITsKGa3auJ0s~n#N7fMFE4+; z^FFWgB)Bwf)t|^33z*35Pzxt+2Afqw~vV`kLyOi=$0wm^ciR?%2My6j-W-CK3m z#E^x_g8g1T6UxgPqd0nb(Nxb>B=}jXG1vxog*z>?L^FAL#r5WolIo_C3S-TVllUeu zeF+F=ext!Z-dVrP{z-O$Z2ka=0Eco(4<@+sxH^CGM`S(R#1`~-gk*Kp{>sbaGo%9P zic<>~Fh7O=`JE{ocR&`Wn!}8{94%*3AS{A|h7tXPRHbxmR0s(+r5=(B;`%(?CbhN` z!fj+^8|zlj~S3e8dY&G73xb@nX2TAAz0;V(PM@`MMnl{?~?x zq!^HI6?eMXiR*bhzLy3D_dDtLYKBuYuPnQ-{9A6mlEj##N->$%SQ^mc^^JKs#FfI& zNT+WTu+YBMY$@KQ&*R(z7BnG;{(C=ZUA4Gu0NZ0xw$b0ts2y&`A5+@GXvEGzaH1r5 z=F#(xL|&JF0rIU0wDL$$hb>=CMPz$=GxP8;#m386KPlHeT!TxE;!QK`0Og zKR>6i!MuI7aHX+P-DVBA03Z|GcDQu zTs9JeYw^Myrf@WL#5Z-^!1 zFapeO^Ka3s3)<#2VX3GlC>6Y)2Rn(j%d`XCalwj$Gs3f5YfZ>iJ?+0+(G|U|2-VlO zT((xHr+rf`A7#!2_t9_Ltfv0Q1g<#m-lnCXxcCOP?_}nzv1(}ujHm{gIzH~4``Njn z@eXXLQFZ47PM(JQiG>S4d>B0cls6XT_KE!+j+2FvT`OORmK$jFYG7_$GixX$_6u#r zq&sY&KD!i8&PGd9&Q59Sb26tD^gCH~8FDal8Wv`|?>&m{P2<$$vWQsO+iA8^xtYl< z{n3bx&x5pskB5kNIBU!A-@ef}tr{5rrg2kI9jpM5*(_p@DFWL*9y^eNghmT5aY%-n zQxS1{Id=42CRbE~=O@4_H!Ss++oSe8pC3InT)wmZaLEW{*wM?Mh>l7>9YwE>iaDMI z!iPy&dE8Tt-^uP(iY5vX^AI0vQdH3UO>4rpTAw=&MhdZA%jw<=W$uX>BAf>AdB{}i zDk$`kk;LBddk#c?|2dOM)4z_5ZP+8m*NI(%gZ!*-+@Se<*pU}Tt4`gks*#=|OD-3P zw;aBOHG+NKxx~v?0_rFZNrv~Yky}i+dc=6qc8VODCtLqb`thFlk=LYejQ-;$r^AXBpd}&TFoR$>w zYuGKngMzinzx_rqRI{C{$#ut^<8d5HA&*piJLeML+ueB7J@t`9_1uu`Yx36KM!?}% zwxJ~eS(L8;u_$0-j>Oh|INh8U?u`;Un z0)~CexQ8WVCThT|K~RuLBa<=-WBPK%EL)FSb2T%2G@yiDiCi!+_#sOBs}Nk_&6TCs z5yKqD5qS#fJEAaA_PA;|%d!5l287wAG@0qRKbNO4deJV~jrypUcWTh{&4@iGD}855 zIOiZQXEXk_#d=uH-u}vlr%ia3K2kk6%mpq^8-gLXYWbJ9)Rt255)qtR>z4A%fnmr< zGosLUg-$M|&7YD@HEg(>JdT*=$OQ%5Q|wse4BBIhT6b%IEr59NKvm!T-H*K(w!Bqb zI1dT-n$2FLj9`gshKA7O5sl!z8I7wB&*^r~#?;J=Hct`t9ky;4rqf>5n%x&=_hc3t zuGKX&ETk$I5^UUzPff~H}<^;`%ZFZy}R!o0(+f5gRV z6vmRH&?o+`#(?*=(pCsMqy&T>Etw)b>Nr}y8G?0J$2pS-DNc4r^~@!zhQ&<+M>hN4 zAAe_0O_u4p*#H8crep%bgX#1`mHO==;W=`uzLTL`Yz4^R0aX@CcXq}iEDT7s6`Z4I zw%q5O9E%R7Z5z%4DuP(moN}o_xcIN(Kd^f_6kb}*3;CVY``;aEj^VmCRDVT)4P|31 zgkAR=hsj(mO*Tz0qXhB5I9;wuv zxkejHz}zGaUQ~Kb)CKDhJZCZ%@kT>&{T+*@ejRS(D69(S;OzKZZQ(uxg(VjBV&3D3 z*l^*2L!p#r{PA|D#c6D2mBY<96825+VWytWgdtRd!ZHq03| zO}}fqpEnkcbXMg~+J3$<(nb?X&C_#o)J-v%h|(*Ma?OoGCEU;n{M*dJxqvSS&9G1z zH(0h+b6a*^`N$)0Cq4+P$sqj@o`e{r^|3BQ!M^#U*r*rMamybaHSh%i32qiei|7Pv zs%7NQ^XL~!yMWUYsw}7%SK5u$4^DjUJT4mW7gV>}RtFTwLCQ4Ph7!Ai+(xRpAS6kW zP4XEotYX+sgsFu#D>CX%U(`tG&AXoaqANSw4)BCIZRH+Edir+h+;g&T*y_e&!`yf} zTOfuLZuZjk?nj3uKLNd>M$=;XG4pCtU4s_7=F59!7)^$D>thH^s5cU=fR+>mH{VT7~QCg0K-rodjtpgm)TWYOy-P=GJ zEy^%HP;cJ?yH-rQ=qUgm3UFga9?0TXqOj6*An!pQ^zM)8+x)ux!XST_m#&tAi?UkA z<7Gw%>CkX+jgF~-YvlGh|BG(4u%{g8Trfb~g#=H0-7+>fk12w6qv(%bOX-%T?v_2U zoyb1_s{ek-?a_w2vP^uFLAeO5VXEl0uF;aF(GaJSb!gI0hA-3*`gxV~qHYMxneOBswXTTfkB1Qz}lRlZ5L}dww zYZCrbieSo-4OowQ?`}twhwZ{t(dXswD)u4RNYRBuk2hF7ewpp!n3q0CmEPI5nrIxo zROS6g>~uK8yLACS#~agv+dZQ!?f-r1tUvN|u<4@y`|@|qtTV0H|B(r1|1C`s?eI=r zbGF_wLXG{-ER*%YAX{`K^-ihtZ%Bxv5jyHni~E3^{!&L)s3)Z?{r%9yIWOqtGmKb} zXSRTVDW9^qipIzurI^OQ4~+FdNIr*+(dp*&7m)wat0((B_hP$BwBS3kC$BBjIBV4R z(zq)?^=~Gy%FFGq#dT~)1E1MH{TH%e;SU4mCJB>A2-O6qkn-8WgNV>P&&nWP+qY^W z8y# zrcxttZDOG&h@`L>Nd4C7+gOcGV>!XoVpYo-trYuSqCQAdHdR~8MaLPAw|;eac07lE z&m)^eXyDg-!;L#3sMC=;>z(M^Ik(d?b&-}x(Ea_3qLi4G4w?!sInk&;*rw`m{gC&w zyjUIyJyo%k;>A=au9rRZmw7EdD3!g$Fv3Sb3Jn2WP!uf6W)9*^>*Q^ep9h`>E^##vv+=R_7 zZtr=yd}D*N7!GAVD0va33-)JEHt`9$90YwZwWgNe8^Rw&RxcNrE~;xt+{t3(<8rUA z^~c_hVwR+#uuQ5nFEqY&wFGa}m~gZpyU#NeJBPy|_vdbiJfH2o3{RSMH20Qb!6B4w zt7D=_+%=*4rBHMM?KZkA0gu6^t9%{~$RGBL6k1Z&J)=j?jv?=-HwDIiqx<|C zt~_q%VW^LKs%Kb5CKDgsr@$qXK6!NCBqUuZ+f!GS>`P*cE|Qcmr3u6o>?)UJS0OH@ zt#J`9_2%G)q6~H*c~_HbiD_%|r;er}rSZ!{U|hH{HClR!`d=N-Qk za@m@VsZGL)xBJDSUX@CcpNTDHtFUs+`_eB7QYZI9iyacd*YHtaXQEXw%Vr$Lv7P0| z<=GRn24!`2Rzod*SxuV$?RrV*S6wvww?mtjZxwsGe7tr#xXODf2xWCvE(^tEz+SsH z$d{C!$jF)E*8i(2>K-1$$m{%YEg&tP@PaqO9P)TV+FG^{74#-9~(J_S0g&CQ-*{pcMsUXUD zmj`9&Iurt7z1)bP%!y12wM_E8o#8fq{hj^-p2+`Q3xJ-GTbr9ujlmU?0VJogE3THl zAaFCyr_HO8nBB1h8PIgCP{Y=e?C4!MWO2z0N}`Ov7M_;jf5Ztxx&GQ5nqHKRKOP?E zY~W-GV+9fM#ogs5Yv8B?4@YUp7}ZQujZA!^<^TQAnG*;8AYI=5h4}wfrpZKWbvCoKJQx6}0BkO_YRKI+hAG?!W z%8~-T*4+x*Hc>$8-%1>Uaayc7mwAC}oE+%##OQVzQX^Ckyl#An%j_dC*n} z`ykR5*0LbCh{9CpR~R7bs7qnLx02(U3=ty^xT)$moPay0p(H}xW%%jDkY(ZcB ze1X$cW!L=!oxqlGq0yaCpz(NpVXKRNZs;DIT^iKxR88The7l^n}{SzIbHAp^U>l@`Wgc#2)z<|ji_I02)_Yuu=YH( zB+2M+E5EL_2R9G@X#ZG&QQNGxHr8yOrlX33oN6VC9*fu>Qdu;fHaAW#{1Ph)F88Ao znxE0IHk0N8Qi#iO9ZSDelOGN}b&<)27s<(0C&bb4j{ALVdtCJ?(vRYINbGj{tt2Bq z8`Q^Gop5ccYiysq*^fq73(m1}X}sOH)>UiXuiOA&DW0bcq=(*5olFuN4FaN+AjakC zWr}c{#@17^c!n`DcNif_aGpS@Q> zm!GrG+4}t4h!`#I{^(2V*M?}46nAgd+cF=0BV<(ZGFB0(uQIS5Z*nN4yP2BN1h~nF z`P#fdxqPKzJz2_fNu7aBR56zD#btW2r`fg}JckvlHRJ9(@9^i%BsWVw4ySOdxJNLw zsx_!lov=na`U=8xI=n}^GmsCxm>4#^=d^M{Srbg|Au%3Co+Pq1QG3#Ku;~by<+iOs zA%tGwWf1M8r{-8f1B5)M`eL<#5IpKHqHuB?G@Jc44GZl%mci~>S{QWf+ZL}BlZi4i zwd=2%|Kt#<&?!Z=@}i)PtKBJszYx+l&dEpx0hE5C4HDhOKzF_RF(_eA4lmLid3MB? zcqel};f6P5>~>@0(0=bC&ySfooc*S*HVzz3wO^?-+PG`mTc)J9mLmk|(v|0*TIt12r5rnlK@9h3nXOV;`$M zE}5^RJI33#9)LOs1813Lq+N2vx7i!)D)JZdC#)qXb0%>7b~Rt3Gn!UK%?v2zlvsDZ z-lM6RVnE&FQ`VSsY4rPQXPiGzyAl&eu;f`{&AG`a72jPQ8(lmSLS4T7#gc3u<%k@u zZD!^&^lQNNxv~2}V;mfm9c>|^jwd>SG@8q>0kRy@*69kghcwpI`|)dW+vihGh6t~F zk-+3XwfkQRO?=E@e&06y6Y^Lnp8k%A6f~GVqBbLGgD(18eQu0+?u05K{Cr}+1IrAq zoFMTFhrFBu;UU4Ci^4?%mqZ3crG@&C%`WWeTalpzIu!S3I%My!kY7^Q%TU+ec6uV8 zX1p>J){F%T!*ei7!QESok3qh|CXxIXTTqpK^4~5&WaP{~1mnfAKurrKr|+dANnvMA zKzoMO&9H4d=$VC`aiVCExn5$)I;JtcUiAWuWHihypp$0K1sVfbHBp*p&PrdEGvN0F zwQhyyd__d4=(uDs4o>sm03q6IMW9qP>M*+YK5E#x={9o7)rmr- z_Gp#(Ti8wmL_0xOmg7ju+d;P@eMe4{?Gt$=zSuj1Hg16L40Sm{WPbWAh7$NDLj@e9|}rVMSp z9LBnd%L1G6#WJTgSo;fG6oE=H3sdTe%-xR5&y6!i10(yN4M}_=nxxjc(cqydkD-7Q zZ*JVE15g3jo(=HWF`1aC&&G$U3faFOaskLztwYL|TE`LL8swFL^2|Qu8eG5y*~qf6 znS6*2-yZK-kyljY$R^o4w!cY;rj8diC7|J+Bv74HS2kp-Hrs7p4V@BuyuUI!p94MG z-Yb#}^_<;+fpn2BCZl1bbU9X%;g=p}39S?Z2aOdT_3F)Rmopq{LOEju{;Ffc&L8HAQ3PEAz3|}tS{S+c^n^vxBYj#Hw-rfW4`o=nkmi~Pl2dA(o+}XacH`zKvaOPn6r3Zpf!xR z!sE2B)BmUAy|&JJ5n^IH*QsFD$4+q|vw3{0s!63aiTe@^NmT@Pcc~x}(59_mA(E3q=+~NY8Y1J*}!L z{KgaEG?!El#En%b82=?jI>e8RQPI9vJRNLnyW6kwAI;qgqf_pV&gk@{8vp5N^3~V5 z(~`-vGJ%^BZd93w1T_4z_~4OAz&8-X=x8c4jghx8FBs+SY?(k=jCygj)V0Cu_zWgq z`mA(bH&RRH-rzR5x-9vqj;xgV5>#`t{@KuT3obVM-+(OMbK2a(Jhva2g3MoBpHPH6 zkS~(HdY&FG1{XP6Xu0_I=s=XNmjjG#0s}b^h0S3~Qq3I6+$4>CQo4@r95Ht?OHtzHv~ znI^YKY<-D+T%FV6dbL?8V9kU{s(59f?gWSy&=gHy#$CEt{zay}SNiSI7#AObUO-)) zmu%VQ-f_ahO(7y2gSFjGBt;v0I_LPz8yzjJ!L|Ldpg$$6=~lvczfvL@+xcns2@N2M?gIzJ=Ii_`7%?7npB#! z(y8HEn=5t7?}RUfG`c|+Y1@%rKxCXx$OoKn<<0MW&sO|iNo5$D&;0=JYUEp2U3>9s z^h>|5kBw2{gJd1$BHKJ(j<#<@#9(JVc_soNq`E57u-o) z=a5m?-CDIX&wxxAC+)=P>d1``WaXL=A4!bOAk!4OzVrxUeOUu?6PYq$tN9(7S$tc1 z8SVoOOuJb8TJJ(R#U5`u*80YDniE;_pYn+ggo4q}Zipd_sUo*yD1HVk;ySpPolbJVcEt|Zj^EXlU#fniD)&L%ce^ON}>g+|K!^tQwT_}9i?DW2;lsuiidJ+ zwJ5^x_d6_|>%;6)FacBfCvQbYO8?}WND_xX|4Br${2(4y%cKi@$LWA!Q;onKQfhtf&xf^orwm1tIGx}6Q^*DY}Z8>NZ}C>Qf0|N4=Ue^ygkYba~4_j>ojT} zp;;#AEo)%2gV|w-RQuS{BiQon_R~Ljf9_e+h^|9vdu#4^YNLW)6?Rlh6gf@*Ic<=V;_99a5$y*Vd z);A`apS|E8ZCyE7rjq8baB_E*eWT51& zZCBFc=BNxUx}l8OtJQEhd5F>cYgy5c4MROP=Of2)k;`B6WHKI?!8E$8hBF!cJ z9#*;-_!v7bV!!d`&kPnUnfRpm5F`9u;v~JEV~erbHN;Z&U&^i&|dblh#YQF0ft_L2IOeNu&gvf#ee&7da!;V~w zz!tMTej%cV)wD*ok3i?G0Ww{ghpD|6W!E!y`)vkt6j<8Y&3^myQ~c3sCk`n^!d~wv zjJ=*$3sdV)^-)a_$HEH*Sm7qPSq$do`?Fv?{SLR7|a}kk%M>IqERe< zCiwk~#=kKVxB;h8+7zz-2xV4bhe;9*4F)x-8jJgiq?o*D8%(?wHXGuYl0}NbBNd-Y z$it(TSdMk09Du*=n67F3`A+Y%Q73DFCccnIk2Jn)3K!b7{*brBIy|Ztpd2n+j5N|t zP}Yl3uCo&rh@Q~-17Xb>OB3x zxMw8h4;141AS){`!XG#%ht~|Z*2;1P#{##TWZMoO-!Q7y({XF2HIc|&#)LRj3#=0<7moOwq zUi`^46Vq{UGKE%Ryf)#;t?`NVLST-y`tRt^(4u;AYGx75JP`V`w6vb)qIR+~G33O^ zEe2^@GNs&t+^31WFx#*20uP(Ld_pd%@SzsDJvI7z)c>>HPZDmjsuW)b88aL9UW~ zjov(;q|?BcdcHi7+Hc@2fEdwbQOuB{eB~6%dd^UCtIF(mVd$NG*8Q#zOT+DwAy44O z5CYd*D2z`gguabg#t;=lX5;?snM}B^X<#NHD9-Qko6Uk+%Bg3L<&+FvJF?J=c}-3u z+eAiC4i#-@uB>b>9BJH%+SfAoZZaiTGQZ^!u12;RK|kYpvt;zoRy)<%f%%nAp%RW$ z>_H{|?6J@UYbZ9v@|t^GuK-R1slD~oJLgc)^w`U?CeO@-SuUp4^jH- zL@vj0J?(?zb=SgB7f>CnTGqq-xmOAJAu28BBHN06s|u(9?Q#>*H|_y5BJ6!zdGGfk z$LC%%WTYyd-`szrJvJX9*RFWBu?#JLpKy^CCRe@NAI5h5A7LVFQs8`wArSyDqa}0F zdID$!ROUZtB4Q+w@?Jl1>7sGJHkV2k@K7g_z`tIhe-?<~ql6mt`hBHqJw*NWIs)eK z|HtkBJ-b2>^WVcAU;gK?O#Xk5p#1-N>-bRI>rtS)wCvA?R2UJzS65dt5kqi%moG25 zf`WqDIMSm@#K#4L(Zngxb@lYTO>5@!;vnW6mp3;jqvjlRg_pwb-rZ&cBHzuY#X_uc z-Ji;qBK1v*jg6HcZSsHd%l0{!i6sSf%CYK$y)B>% z9@@ILZqK&bA_wwFr0vOVxJXZWXJ=;mS3K6n@2?JVeV3<|K;w1L&vHgaIerOqOn<$; z*x7AgFFEdo5;|yKI<KkoXaEcLfCn z6*?@IC2vPtTfH5x)%1XX0Q@J7->+&|#g(WnYq!J_k*%Vob#uGeU~BE@SX^2fQB*`j zKuBo)ea$TWYjFT#db+=w`SZsV4_c+*xqiO_{r5X@Nh`*cWV!ihbLBsViposrjSsB}4JLi1Tal^sIH3K~H z?e)KDajkoQ zf6wQ3pbiayc|YIg!RqVl+g4Ou44OIwZa!%F*SK^$$lKWyib4o1$UWgt03vdDM6g7a z_4MSVq@)ZJS{bB_6YOo6GyDa*1EA-^8dIDcHdi?u=t4sa5c@bV zXHwoZA5Oq7QlAorvpG2hDoMv^y47cU(waNHa;F`?*p2Qj*SJhB3rt#$gQCgDsjE-w1K zJl(84oc5vCS&oC1mV1bKEUB(jhb`yS4g6@`<~U2U`h3{ zzev2LuBfPRbLhDGL+gGt-vdk>I-1M~k-5lm4MyYQ=8l&w1TdrE*RLp}m-{&(;2Dob zaj~(ob8fg-p8?qm33wbAU?~tph*$n)HTLxt@>uh|A$^_q%-r1c{QUgIcA}E=?pV4( z6!A3U2S}}UouvX)tMeTDxb={Q$8mM6>k-m**?u`C*EY3ZPxAA-GF?BQ<=)4g4-S7S z4dgh|kG$^pi(d-6y8M;nCVCI`TwGl2_9n87UPiS#dnfay?(U%es~4M5tjD8!7rJPy zq2?Si9v&W0pck+0c&Yhn6PQx<1GNVUy)HkYtgI|xF=7EVa_o3KheSn6{yRE4YT1ev z@Vwm!TWGXj!hV9|LJsm2oB)*Y&jqj!E>Bl;sU&#AmUWMS>ip&RIxoN(;784RHRG0( z&IixOvmt9+TQdMQs1juap@&{)1GpXvN=inP6(zFt27tP{LB&vo`h9O!v=r;!9Y4)h z`Eh>*WRmmO-Jou$yrbhOThFnhVJCt%+jwg*M&Dz_tw5FDxkVp(ywc`@9W}6auy=q- z8Gh!O$*k9Sx$OV)^tgKRL^AosRkQZ7IN6+I1ci6G8!*RP(w8m&Q$Xa`M*xzEs4&6( zUiLoe5Ii5I^x5UiY02yQt}3fqiuDS2cln@u%0E>`M(%{H2CYdiz`c~ACa3wNPs4Zw z1kP8RJ8?R4au6X@p-Z$l!E@=Bcqcxh-E8k;a-1l3e*T4v-3-U$d$z#N&!tG-bXcYf zwH88aPsbj2k9!~`08!q|8G17pS(`4oLs0!rVQ6S*>M`JfdAT1iFP!&dDpk83{yE<} z=zKWNFDeQJ-6ewd_YV)3k|8^OwmH9)qVohFPy2*k?m#bAB;H5tfD6SY51lpYR%aOC z?YdKVzEpZi0u1x#p1#s`9O&5-Y8EFnn8K`giOZJ!iZS}oo6Z{{K!*gN6`kfI7}=hi zAApW(hRkZxaKz{%hPEDyUoLZWNxuCh2YmFN7qdhAndI{k^f@|)koQ`@)TpS*k~*_T@{s>!9Mg} z?rOOPg{?C_ZfV9RA&Tyd1C9 zxE*RHjBK}`_*TD+o;*&R7=taLuV`qHn3$+l&P^OQv=98WygWbX0N~aBUX7kQLOc)v z!t){j$Dzl$mwO{`L;t5Mg8@?&B-5)fn^%=Fx*OHWiZ~yun2Jqpghu<8@#xv`^pe(ZSxx%8kmwu zuSL7OE-W!3V7ur1&l7W$>9Cpsf8}{ODWwD0|HjwbNF1@H#+I`|LhsJ|*(&F8?zv3f zbq1o3b?*Okk^9IJNA%+Zc#5oR-Ty6SzXJcmaa$Y!vM!&MW#}Oek6|R=5Qdyay+K;N zn|`wzT33R%>p@5JH9_hOZWCea0B`_;tg+7!&Ha5bo%5WONUL<*njo$sEA#3Zg>IJn zUaH(MQ`wpAV1HF2q4Eq)?emHG=Vfajl@o)+`=evp_W z6w0|uRV>CQA+hxI1oEnWu_QvWj*hIr-CHxIYRIUlC#~9R{v7EAH8nNG`T0RRkkmTU z0YtzeB)z=_Vq#)m;ar{ulvEFR!Cru3c>%x$h_Sg6GLa=vb^8X4F{kgM0EIyn>>lS` zYp0Xr$B3x594F{}`sZlm6u>k4mg|*d*xTFVUb-TXBZT!W1CS;!FV6;`!KAz1ymENQ8OR8n|Iu?i>qTNc1>C_op!xoEEIA`1GBmWb9#_}b=Z_cA)GjpJKjr%^ z`$ZYeuk-}qVSu>-G@S`@FMOpA49uuA^W~KE8Addm@pDDqWfFee(A~|;^O_4_*#N<5 z`)ekatIYo!emxBINDhz-(tGaKN<9bsMs1FCWYT25xw$z))X%qMYXCi@L)p@>Uvu0vT$}jS9>v# zFH~K2n=|lvSX#53Ez`htv$L|IeHGAxT?**s0z{iJ?q|1zw+ozwMhX!XJnP5I=)7*I znw*)r%x!lB;N@hsz)y+x($>@CSHu8?d}M#w55D@w8w*+Qa(Y!Z@$$Sylcb~1|U z`#j&D$M2u`-4BoV`@XxmT<3Ydj^lW)*ta}w{D7(dw`XHp5Iv|*5@AKA?H=g%LxUtePJ-QvG1RKjQ_JH_h7fHGbir_!CWK54!LXzk`-$L9G21WOD-%lL;qhmk;w-UtL^q zu3V3n^}Dt(TzgGY_F9Rk-e7|FWJR+Z%QIH~H*d%fQwGn}M)2L<=DF+O&rNQIdY;4l zHOf17b=a%#Z<%DwJ~u5tdNp-LZq&X=RbAZ*z4H(&YtD%Oie7mh?^P)U1%;EYW83~C zk#28nc!%9kx3c0QxK`BNyN2Knra!7@E`NG?2CXrr|Bo-g(~*-WH6O|Qc{Mm)7}loy z<*)D;!yse`R3S4n^XsE*E6F6+`Jv-xb^c7Ao}S+p7sJfN5+CaF^(jBKxh!?~z1>lK zdC0Jy&HbpA`}lDl?mD-kB73#hyt0MGNR8@c&MGhO9iT!)4O9hF?&Sj1A20sc*B9EB zD4tbSH8iu>WmSAiEK#R3MOvjx%eQ;RW6%Em`~NFCRMKB$uHx=4nVFTfkDh+wLy??> z#J#EL-^Mp82K1z+}zww`u-FE63wfsl1aR_(_L8UK!oah%tSThjPnP#G>hzBi83 z*=>8IlJ9)}Z1#PuAvioT^6EGHL%S(T%gZMpT^niOPxIfAr2F;fe_LqyyD4^pihQ;U z1H%@R_gfROEg1xEFm8JDrrSc7ifo6Co!vw;SWGdH2?lskOI2nK20oQqM$MmzUje$|upj!H*8uNG5%?&|8YjkR);OfoPv75p#XD9++p3qaq#efyOBl!OjYFTX$92_8r*6o32s;^O*7 zgrcP6{UJcwwYkAbg9Fp!6O_67k6wfHd>9@UH5Z$F=Tw%Nk)iaY%Rzu5I1q$|LPA2K zbRkRL=hFJZ@VB|SCJfZ6@8r#yG+eQ*s@mGrWw@VD&8xjEF5FblQc_bRAMu%H^~aOG zl1BaaIeTVlK>-c8_5rmsZ#z3Lc)i)V64*9nwYfGwPNEYtCL$=Hmi)81OWzBgX(y_1wfEx%zRk?U)ctrTY$=)4lPd3b@4*92;g2J2Z8QxH z4FtbAqM&dWQ}%Vd`dFmGZ0N09RN6W^ZcAfIVF97dRt?|23EWtYyf8Mc_)q#>TbsO) z4J0kszgs>tdjmF9w!j`JBu=Nw(ns7Pm0w|<*Oih5N$>^>TL!?@POSFCD7W0|{I?bT z6O;nmP43_9zkK~lQ1`cQ-=@o5H@iGiGdP~$2;rx~b$o{fL;=A^Q4=|D8=cS0w6F(6 zjgMbMr%_Vc4!#rh{=IJE-2$~yPK7@|KT^JQ8C94i|Ms@M2vTRVOI<|r2^VFtL_f2~ z$*3cXXBvKf)j#LUM<1)JtGj;tz-eP+L)W}{w|8=+){nJgfR&ByP0~?&*YVfnCud*P zm6pZ{iHTV(`Qcave*f--qbkc{_%JCcP&?-}`@ap1LwD5U5)!)gOMM(}-%L$q>*?+F z`BH%%Hc)I$Y5de={NCipw{NL{2g;qbMZQYb=Nk#JDBfTZVW6R;WpQ;dJ9zNmMUXG( z4}sW9V$h?TkD$X_R@c_Pt-`4suO0I4opy@6AH% zrvXXo&Ou>gx~WZyTgsd~^t;M{Fi5<+*C;)FeVI`b3Swpz#9PaKq;ufF0ZR~Lnj4B& zK38n7G`kBJ=JW3<5Z??AyZ}RF$o0*&E`|^k?^BcF9gdEUMj9Gn8cZxWS2p(cXN8TQ z-ZT+;EMF9*&P}}PUd1gs&|SkH*?$9o_;YX}S$Gq)tTL+A46>4v^uW@}=$5@BBMbNM zbY@abG>Vb+)%vY-2@6MhttDJnE_m|f_3~tk+ww#+xmK$=m7Sg4hmRk*3!gsCc6WCV z=TNZPx)l;~W^{98o$l~q9lzIoGah;Q`35|L2+CWdio$ zc;$$Q2=V#BlCYPup|vlc<>pcX>QmtMJhy53@Ymq?#)jq8yZC=!s84VFo8(teV6(Ng zEu~qSFA{oI^Ml&g&o42AGB+#JL<4oOHNghQf(|1~z=kq^UYY~mce&PnO&5*o~qd7YRLnt05CxC

SlwzQ?RqM4^2Y!qOtExRZ~-IesS7sL+s6)H|o#Kt3x9h#k*e?TNj(qMW}kC z!*S9_$Z<7*nT8HQ-V;*DjOifLF`}WNw&V~}>!cR@^oVtd_`0ct|d#~TjIrq#W2hbTD#ZgW6 zer#+^Qc^@wkywnG7`x|mvxAqH6g@q?g9a;#&28%4L5%oVo`=#_#U>!LJfh;_xxi5O z($W;y%~^s2OG}TTyQODjT(om`e(!j=n*5-ui;D|d?L=`4Th{eL9lx09?D+h-> zr+mF1UJ}_yk0fxDlatftG!_^MnbqH5Ex$7C?s##rJi|!H?e|Z|L>uL69v+sit{-L; z`%|TTaJEf5&*GGj3VuyYSb<8%wNAO0AB+N*@Dx5*l>JDP7!T_U=6JD3aw)VTbk8o- z-_6d>cA1ag(3`y7IjzDK1K>j0f>V_uRm5OK*Vx#Y4>*&ZlOz4})de6ybV(h%gLW>$ zXN`?Rr&IlCLqbBn2>yE6@XqQYkUXvJh?JDn1m?WHXmNTQisSF3;$M|2lOQ>ECnu+D zTteoHl9HIjM2*>@`}gTT*ZA!J@4x@9m@+imNXEp(jDJ|^@9qwI@Owo7})xHLMtby;f?&~@M_24RiD1`wtTtc2=5+)du`ic$l2*$ZGF;k_FF`XmjE|aU3s9L~!m5w6wHJ zMTVXl3qOARn79rc*7}8rjK?lqQc?**qN3*OV2`Lk>kfO#wnrFY99&#MeaD63sT0M_ zl>-9)QRVMRW|w(HJ3l{P;WkO}&6hkkJNqOHtNU^Ep;Es!rri`~mG0yqi8{6xB$2s! z2*{N?s%no}TU(zoGWt@w{(>V29j5qVBgL(-u#cqSOUIZopvTeg4pN6$X&s}93J(_; zd0|UK%O)3&NpW9Kh7$O7YisLXOiW;Udb;!l`xDm{1OCdzY4e&k%LW1aR{2NQDa~)T^O80=MPlq@<)kv59Vhx^6*lCi?QV#SwGEE9#LEKvl-)&SgD&w%5b!GbRQn zCnpYJ_UD{3rsQ@23Tj^Z2nX9lr!rD$S=r#`pBSZaGPXWXz`Pgr9E7|&@|1^)+L2_x<;qoeg6 zfSskWjy94^SB9(9uB69yIhDEi|7hhWuDgh4&mOfiXZEE?xJmC6ON?=o)W(TIir{ri_oq}#V|)6vnLnyu>UIzzN1s?1p6{4r~}(*rMv0U#l**}T_Sfla_GphW2)a9&0fK_ zB#}tjP%}zZIWf(Wl9I+&e)ToeCQBaLO+^-z2+`e9t;k5|AZ`~1x8?~Ne#kVzBO?|w zA3o3(eqn}G`uer9x1S&TGMN&Yxl(DE&f&v{<$u#KL^ij=>3R*R!NAB!mEM8nd^0x> z&n>UyT$pwsPQfY56?PMbLh;|`=bOKL`I7Q%KNVScL`0w_kFR5KTU3Ra7-kG6g@b4* zJU(Daima}RZ2!37?aA#FAXIo0QBm(}OJh5yxj}$&|5s>Rs*UKFcE6c>a_?^CGv$m^ zxE~Z06mnjkFa@Dw_IW~yW9fTps-j*UeCyV&IGG9Op25M0yLV~bcbaR$$GBX55*@Os zNi}!%ipPNrgOjnK9ez9JXJ=J(bZCD4FxS-3pe($qiq^yy4gUPVM`O%PC|pTNDdF2U z2QX8TU@??3@R{{*=It04`B@s#^s+B~=$V-GhTO^jQ-j z93mpR&#hbT?i8E!^^A6^HxJk3nf=f_-|ij5ykpT;VIjoK;42 zP~DDgZ3p9-~Qyb{RlAmZZyv*EtJG0{8ExnOMux(h*QHX2~XAN$+i5rIdnOR%Q3L(|#{Q1Ku0)>Z|PM(x)N6JWh zatyU}==RgoGyK`zg*)z{@))%QuE=$J$_maYzzDvkSy-)(916dEn?#arLWvD3O*^<4WA1ZT5}$wol}0q%qm}yUWp7PwZDo8LfpNE0_^t}+ zrzx0w{rT;=d(R#%M!&8c!~7!>65ESSvuqJ>cxY{XzH?Jn2%0un#+Xnwn^beX+^X z+8RY#XKwuHDKfWGE6q`Rj{LJ z9C+k)u}z6?9vzhv3f=bY+tC6~UjKdUzY7=Y#|ESCQe|GhVp(hwd7qt5KsdPYx(Gw$kh9cLQ3jf) z#5D60+oN}9xSwRfG$tH+a4tT3^HB-$n2>Tm zjK4_(wr#PkP5v_Z6-IP3Y!!Y0x@}WcdiBS41d0LYGy@XDPnr`p3QN-uQEo62IM7{O zED>m!FK2m-xflkM#@Zr)Ml;Y-Ol+)5S!t;zW2V0rzU|8M>H(9&K8ljT6uosBsbsyc zkIA8+o$RTcxcJkyscUrBP^mO6&iz=qwX(Un`LSp}c^#E-vhHI=@i!Yd z9OZg^XJ2wpI@LM;xm78yz~Y#ALSBAPY^%peS4f`DrLRzfL|d4|#l@Gr<+#GhHnm4G zo@;4pzRf%zEPWWK^~VqQ8K_d2)N5}+@6y=U7DxAL=&rJw`(wXr&)&T%`9@;em!k%q z?W8AesgZSAlXYD*znV`RWm3pfG>E0uRo>vc+qT_nwK3Efx=Bt+DK4#4x`I$m?X`b@ z|7eIE1L!Bl2^*V&%VFVj)Dw-Y6Pce?s#fUtH8t;3)zB_N*PXWAoH0~NL4C#xHrYtx zoAs+y>E?ue!e0FT>i2x11Lt5E&u9sBPD4xxFM0p|eL8x2<;vfG$jHg1dr~h+>_3ke zVtsOUb$$K9JvEAPn!VN*XX1r# zgWK&Ik?yFu{@h$B92^Mmv9zdokv=#m=r)9KxhMQw4Zol0U?sd&H(5`85x|!{WPV+PYfH< zp_!sxqG9Fe*hX#s`qjmJ4kdVqjV*P(!hJ?5k~@fM8>Fr9@bI@37YD7Sk{$Q{0IcAx zRVmfDU?Vx0$?#ysTaGG3nWVwO7u#A$7NhU2$3rjeQKXhm8P=F#-eFxb2t0gju`f{U zU{ij+;LKa9Kg_LRL7M6m+i^efHcE>wmJDKk12*YfJXvpEi2p6H_2-ZI4TiMTRQ-r% zE7BAzIv4bS$dPTI#lk&0B#CqS`ZXOBlc{#9Za<;xcMVns_=J7yBR=r?h>Q$%ytdk< zvF4VR&dQx9E;<6)IPy{t0Ew#W>b|d<@*NEd3NlOGmz10wnU^O(>NgQ#cxwYx9;zt* z^-tIAD%|qyM>m&0+?0=!ODf`qp0gH;tO`NRNQGV&^`CO=!$F3rLw3Ng(L8-RZKd+A ziHN#~$1%KfN85ZcjSYVV|LfPucLa`Yd(@C+Tri4xp?ht;#z-iB4=`V8x*#M zSI@ie+*iZS<{RY|6sQ;)cBc@7pG#117gPx&HMNkq-7zladS{^5o&xVHTzU;#%Hl~; z(G3?H8`bHKw9`3;|DgcwJKw+m@I(~HN)@ixq1|up&pn%&np!Q)cn8G|#hm!(3Z}+0 z&+M|>Cz$WRH!%HqBOa$yR8;f`^PTjgFPp3+P~u}#Q);_kn;&~gzkmNeCMK;*3P+jm zAY7HUPT{0PR$N#2Kh0D5B(4FLhXyPWCf?E4`%lXu4oAy@JKQH!o0YW_eM({5XA<42 zuY71&7-wP|(6NktE*}$504$a_Tmr)85!}5jYIQ| z3)CPD{`CD*Q@=Oy^Z}#}yCH}V-8nuvF=1e0LX}}qVPmfGRn{AfDX*qRj)$MWadb35 zU;M&_3(rkNfMUT(oqC29r{S-G&@GJA>dd}MX}03z;@TlCE!~nZg#RFdD+)3yFE3AH zfgbs|wugfdexZBGz4$T-vz_{LeE_>%$)Kp$IrXgKC%9pFpMAB_QBh4uj|o~$e%(^D z(9+rkK}oORV+e#h7@L+y4vnNN`ngti!|nUIx|&g4o!obe?*KI%#aoc#-o@CZ>ag;~ zMj&#-2_EMW>Go-8=!l%$oWvVSnMVt?5Tu4w-||xae^~$~8_1#pf`X>*qt{(sUEML- zZYhs*lOrukB^3YeKiQ@U$TS}$b+*;z2^JO@m08kRHCTYDD_K{WbAy^k)ZyV#6 z90r`FkUvotHly~BiLf|-o+hj7q>KF3N&*_^p(Jf>dFPMbfr2tOR7Rtm;Tn2u&)@GV ztss-OZ49a!8Xv2Sa||;wGk4&PcBcOD@sxQ~gj5qEC4k^SFd;W@-sJ67;+2qaGk0?O zUj8>3Hel3U8O3d{aIcw}A3lQE*Y@W974g2Fo-bZO$N;Gc_b}ig9KX~@NZ{_-_Uz-y z&1g_@q+%=b!mBe$Nlc(V882V<3FgSr&_^Q8O4zY5iX1|;!I;4mLYJ17taS!`nqssB zF``JdzQwV=>QNFw#Kzga>~ds3mKSHyHN~1NbMVFkMoCBGxl<(~S zc<~|Vw_-j!!$V$=j*h;7*E2NvF4g)&cQ@DSAtf-titC#%VHDp?2;&THIAv+cK`7Bp z&CO?Q2Hr3D=P_RJ-v((jE3$dun=JCa2k?D5 zR$JMR9~&b516&zxCUL2Zgl3r-CzA8{agpD62%|%}()Wc0^{ZD)&JXKUcX=aqJ5M?n zc#HI2Kf}B>U>(gVDCpSgWo-IZT2xq=1~PbQr>&o#pWEVyd?&r?=BonuQnlKk)I|4& zj2QFiQSH-n*6@%_O-+qVO_?Azu#j>_YkWR(D^|DL5kcVJo12cSnn2AU&<%)@@7uqB z^5-%)9o4;r1a9(K-PhN5V%W|3IJ9q%Yu7$fCrc*j!Y#YF`n?yzA5V3Y4_pyd z#KmYK9hWkYz!kvh9UL9qND56seMgBCIy*ZnfzsF=4x3jKmwFG$5)X~X8Cf03CL-F@M!?S0X^PXP1qaK`)!0@@kP38OC?z4V2 zT#AZmYh`$sYe)6UpQb_DdGdX3?iP1l+id?c4d{oCEOQ(nNhl$cYOg}>(Zi6eC1hm2 zmm0hcqBW?#bcg%A8RiA7AWMWf2HPY`BAcx)etfKV5og;&z{Bjn|3W}VeEj~1O0BN0 zIyg9_UpLp+rzKj-ty^Td&%VMqgjcYPXyKywd|Cg}O4>h`^Dmu!q!ASOv9bcOA(pOJUxtz2{;cKK%XmUN@!zz?B=E28`Lk-cnk4jVr|o-Qdzd-YpQiH{FK)?gg=wGm>?9>uIHjMV7)&{v&MJhX)$ zAVCQU2^swN->UuTdd9SXztZkkuNEWHH`Ko{P`uNrl3~=7z2%|JRX~l{LPvzyB-(j-`y07+Z)Q z6LHOa{C|~AkR61U<>e&3Qs@-|0s=^JBwc5^qmCrVYlmaXSzX&UGR~!Ud zIz}K)otp6K1s-}ra>nd@3}>nC%QTPuE4vcHnS}4fiCNWG1`v$DN9iVAzaeK#r^mM+ z=U!t3$+72%U4dYHcwtAgdv_Bq0$H)B$(HD|?d|P`*A@rH1b~zB^YeRRxHX=`2_YjR z`%rbm&W-{IoUn8+T`FjMTEpPGMZ|DoPb*}IhQm7mZXxy*5ClzvYG`b~@VGAG-o1Mo z49sA)rWth9A?bbxpxqofemn%B*zv7jEBcD;5Lq>D+)!A>76K=#rSGZ?B<+ZZU4*#~ zw103RwbywuVF`vK7e7CxM@Il$r0(u+S1e+9cz75<$k6f9cc(BDW5l%S!I6$hNzuLZ znc!%vzA1_UY_K5qbd1Ct-7Z)8;e_h5{_?gd_lV*6oBB^gF*8w$cs1fJK?sj9%ztX? z#8-_M6BHDL`XC>&81Qcsr?OP#J+2+$okskDAI8~?q1$x-?CNp55>u=4&dk`Pud}m} z@C=}#eciivZ$FHtPyP$AZ+>c_IBbvBHa^>v$g{Z?UWeDrIi zoUp@EztJp?$x@Zwai0C5ijK0fGQw;cvW?N5(^=1-(_LHm+{(_xl%LeuF$hr>>~IiK z3rgJj0#O(T1@iBLKIWdDM1kj&Lau$2q)y{CxzXKiNUS4_Eqj+LBn}HsV_BlYXXSCr zTmsC&_jXtHKw5c_i-2T!_3!7kqs6#wu<3s7-o3l0Lgx2a1Y|s@r0PHF|83S&QB!A@ z(UlH5A3AjC)#%@~6Gq0y+UEO05pXEoTQ@Q?^6=+R4`dgjR2FPjk#=4Wl4rCQMI zyQPl>Ct}3>o;e+G8}T;)!M7P&FOk_`6f=8;3{19qmRsxUm7__z$MJv>StfyYd>rBh zIojCRcm)E1LrR~dYdraF6ZqQ>93Z0hXk>vb2hiF$Le}21h2^dbpQZClj%v@-gkldz z=Prx%ju=fWpuAH#vHjtYQ0@iz&Gw}9jhNHip zjZHQW(51&f9Z3Nb~yxWV<0FA_6)XRupqsi4_pP3bpE^GUT!#|{{C`h z7&UUMJ!eg7eOGI!ufy^WMmNi-tTe4MVlM(AfHvfhY;pLVJ8BLN0+)rWQI^g_rMrv^ z4k9g8g_|&c)fl!9vXGa@F7&T~OJa&p-l zQq9h=#z6htVDPw~KYu=DpMgDrK?u@I=&1li=sZ;-k!LvQEP>_zm(hFlXphEFkzl+w zu+mN-o0YdbV%7CCMEV5b0U~Q!RJ)sorjZx`&=#SA5b4cCW#v!)U&}!ToglXo^LGBJ z;TVl|40gou!JwDKL@%3qC>a&>q9FP3n9<@-$!^(>3W6C}p+ll}LXmAJ?j1&NzJBi2 z^P~FEDIw;W#@@egF@&@?k}(kgH$D-!kcJ_02smXYL>b!dFFy4LZk_>3$j{E^33EDT zZDsZR`lc61GkDe+s3)|C(-b{!$Gj{pegD@SR0Z!K508A{!Wt{K3{^pf;CB;N6pWZ! zi@mtd7$%q$mNqs``K^-C#GM76`rnx*3|@tZoF9 zM;Mfwzab_#kJho03K@`LO$SJ0{Nm?vf^5fjfKtL$B;ux}UY{>K1`kK*LmkmuotF6X zCUwvowV#<)D(B?pTI24N%DM$4!K4L5vqBhS1N})6+}+|yuhZ}o%RW>y${QX&+*;q6 zZ(UhLBDu!78Sp8+e|8z`dRa9!pD$m2VW#BcBRw%OaW5%pm&VX7HN>p(gwZcIro;oZ z0Bd9lE3Uh{(_<^78$M*Yc^nppkmWN_{M{A3gw3B<`}hU?E>v9`@u9@q@*6h)n()gN zZahV?Ns2in4B9XiKmFUFEX3XrYHYHwd?XXmjl^F4n8tAqdHF}b%L6t~I1j#P=G^ar zyw%K%V~XrGT0jn$u}Eu$#Ns^r@C)iWhP^~E#?a6Z1Y71=2N^mQC?2s8c1t9%dnQVXLa=7pV9k71e=#P#EWmVA4&&ejDG{mM|^3p0@g)6%!PGMPh#;i{RWm#()04D%*6UL+#n$=W6Y4V z2W&~8Y}iFYu3idmIFi>t%L^w6VmWs?1&|$Sj3SEG%&Vc;TvCVQO7<-&a>w zRG^9gK*v0IAOP+1K4##%li3g>h20BPV1P+k>hXA!7iNMZ`_i)^M3JjGE=D#T{{ndx`KMyF0~Lo_9C&tWM| zu)IKQRF5sUumco_s*n#}u=nsdfJ5Dgu;-aGXE@D^%1%R7huGH37n_e0$O?i;JA59g z2Lkwngamd@>%d`dvOLlw!W*p}5D);}!w_w&nSg}}313|+MjVc1B2O29$Rjoe%6RS1 zBPWg38B^71rRBvR!Hpk51-rHHkOAZ_v58O`?L^Mu8hm; z_8QOnv+!cr7h=YM&7raVGi@B?a3LNXu@?%l7J3oljMI;*I^cT%_#<2=2gN{BUtitC zZpr~jw zQXJ1Of0BYa+0_xc#pf(_80kq@*w8gtlS15P;(oh8&c2BsPR`Cxk*JCpxPFQiJ|Y+L zp*ZDGJYeV37aE_RoRLinro?snoJXyS z({XIndFa~{Hcq}6_-epjCH zf5PT8vM<2iJP_TEOC`5Y>e9}M=HQk+fVz+ioEC(DDLh|4i+$8^_lbVGShGTVfV%m< z!qqZh=52gDXY*YI%dSZm-F;c%}rUqG;h zgfd~uM-dzd!-VF=M;wKckZxEkb|p;s-`y0G!m=uxZ3kbk>tVHj;&bKIlUQ5<|4r08 ztyu+pe!l;y=}I@egy$f%KL2WP%Mkkmg~)jEf}V)me*b=7rut9RQFyB9gwTTsC=!YQ zq6Z-*ttgZm3&msSaPJZ^l8cMoOndv6fB7RhWk4kFAX-fSCuGZh4u=LNBw?kvPQKZL zc&jEqAK&LSw(#bOFNh3!;<}+0oI=PT2+rf>^LT7nigX#PT^~_7d-h}I`^#6DB>(tQ zIfL)0=NoCG-=AcmMOQI*%62ZdoLKfQNlnB9Mc-0#bv;51!2{F{(<=?*u3&cNLZNGP zj{p64up?DIa%H+R3m{edVT=NEtwkqnxr!6VkN*eWc)Gga-HCZxG^Blp4@V+TLxlQ} zXnH-p!V7Cbub{W8xjPlgqzFS|5%BP3h?ei(y?c%XBHGgX>Qc&Wn5RUzcncg!`Rv)) zp5aXvnZqT6yUR%CM->#rcG1wNxVkRYsKy}W2ttHTOHeE{5x{m{v~l{9L6NQ*k4OtK zyK+ul+;Wry4^VhG!JG+sAGzqp&Q6z+7A2Ty*vkww5>kU88x*E3uS_=&yEeVNyc|PW z1N?YwadB_psUyPbI)Apq?k6IvSe!rSkM+|FtKR9-~BQ@9fm<8BqKut(GoL-me@%MB#6up zexa}z89+@NSXj{J8{LLlXnXicKt(}8Qc6l3jvF^pME(i^7V85Gg~<@0Alx-IH4Q{t z^7t!Un3$US?{cw84TJkWV)8IElUNuT%b_Og5G&eamD8yzfFEeLc(&85m+@&E4KSRs zju8mLw65=Bt$u!M{0-+vm)D;@9R{Q83HUo5V1pvqi?z~ErcPMtAQ=_@ zza)i(g(Z$1`x);x^)v*sUca+VRI5!#YN7%L;{cce(DqJ+G)0%~TfZy19gdy6`gJ!X zQpNPTx*J_B@h!VDYriS*@ML=+7ILvuVN--)b&_0O_H%r#V35jKHqZcU%8I-w@Z1RO z$plNCp4dXdZm{);z2a!8H$El<;}83YYRC=(&o2L(PRq*381FG zkeFSYf^Y^&6!dU#&o}!E5EU>+D56`gw#LLErH;kLzdv&o$GdZM(39Ph)eCy1s3gPyyUE47GCU#_cuhP+c*w-w2J*xqcqHwi8dM#@2&IBf4AloH5-<}TE;p>I zE&}1g!R|-+g@g3?B*a1T7q;J8#p;eYB&rt9C_n1oU>eZuS=2f@$^Xp>^ zG&bt%;(*|rrX~ZwwYdg(e0H&VW_PYH=OAHdm=CiZxTwxh+m2CHERhD;AOLF>4mv^! z!t7XDUk}5L4swR;O8$Lz)@`Pn*B`t0_u8he*se}52RVen2j=DuCa%u-nZ+H5F}Rtz z*-6zwP#2I^f%l8Z<|Kv;kwF9$&q2nntu@6jqd0M83vB5zvFeE*3-c`%{f}5$`}g-c zfxd8RvwJL$+%x!N#&=d+91s)6*UcA)Z{YRat=T%RL2xCyCBewo=1lWt*|z(rCd`<* zY#>hCjv?lR^5uq=6%Cyl1FOOEh@H!pRb*DLQ(5j6-20ta-)(RS*gT(tNa7HhizO>Ae=K6lo0Yb&eue^;Lo77H5f!poRvyd^4IlE4qpKruz&9Z_MM4LCUv z6dUYbe62AEFeV){9frk+8INc1_YzudxT;^PVG)u8TLq+QFVX+4IEjf}8OdQv4JQ>s z`s4nK)gfZZ3FDEUR&(Vhj)sg3%o{IJ0!>1j7}85j+<}rpS>MynskpYth8Z|4^RteJ ze0g@_5Iy~U5&DQe?3@smJ`5VHDV`#cm_hf<8Dz^zg_ysmu(IiN=@NFuZ=pv(x`ald z`ou`6_5C;nw&#dQG*Dyc{O3yIV~Ujh{kLBH+Cp-816IgVD}P#gVc|S?h_ZyXSLn+0 zMJazbe76@Ie<|mIoA^K#a_JH;M$Q@>5j-_`aX+dI^KB|OD@Z?rHf-nQ7p<(V36TYV zaq#g`taVWB2((;lo?L!4~wSCI{Vj1b8WRjiy>G{4ZYyS}DzzsxZu?5SkI8;b8 zefa#jm4f2Qwr%7CTB=G$Q3!xQ@8OnJI`O!o;(;$d+Mw8dN*l0A#PlK(VCwj!1h@kb zdqfFE3RjX{_u*jd(?mu>M8Ss^SV6ghONR{=H{XaiR&Z^1KGF{Zbsz*nLRG=K38YVX zJ2O#Xr7b>qXb6u8`Y~6_??K608XtlWht3LB2I)@7p2&61wOR0EQJ$zt0|6rLfwks7 zi^N+lZ=eGq`O<^xeGbVMfXwH-M;DCVX2f{ zekJE<>vEdlFNiY!Z*g?tb0u}9*@zN-1p}KOf7*)|lHX@?)7}7Ta~`0!XN{A)=sf86 z1|bMUS%^gxA`dHep-$v@k}g~FAx*NFQ{Fv|<5RXLR$qb>*5ZjfL6#xM*~0{68_&8V zl?+4pF8InMx+pP(P=`i^#@5oM&hFRF?B2C21KVT7CyU7a-IxS0TMIv`4wv=iODQZn zu;RLuU}y)E3X8g(%Ge(9p2lx{u+v{*^h)|3_@*c|O&)qIUSVQzwDk9NDGQ2$^HV#%CHj6;9R zEGs*R;Z2mX*iklRh=#<`M}GwKL{&3G@P&Rs1&nH7aIcMfzt_=qteAri;0wua(4Gvm zHoO9okUHvQ5ghbX`auY2h=@dKVcb5!n zG;Ogeeq~imsM#<(rRN#$sB;5L!eo?77IczI7S`oEThMA_HFU{R>+3+fadl`7pX{KF}Z|N92w>WDuM$5SW%7-ygOZbWYX_s4hx|G)jw d=VM!nPo8TWYni7<40zi%Ej4}BB4x{<{|9Z+&%<(j7x1-AGA;bfa{~&?%*KBOu*<_xL;S zU3abb@9SdC!8tR}v!A`c@rmy_p~{NV*cjv(2nYz+vNCVpAs{@u1i#;+p@7%ak=h0D z4`j#JvTA7H4;0Nb1Ob5-LH3Qfnp@i61y`t=S*z&bsN=wCB7YGw+N0N~l44@8_ua6t z$DeDmFgY7pOPXfh`!tpBw={ViEaVt3=(QM2RQ;W`7e{_f#PX94`88T#jM%`bcg7M; zd_<5CZ%Y3c=u&Icw;{okG~T7O1Hn;u3^6piK)l!gzrR2X`+xlrq)CUxSLuPf(Jv5w zl3&JnVT3!ow%C)DR4VT#LX6)c4*ypZ+}voQm(h~;4}cb>(dhzD$+cC2dA!K3$yk*?k_Y1Ju^dmjbCg^-6R zyom{3#`IW5doi{u8rGH3^~+=_Qb?MEd>-2l`7iS%;mWZHubuw*)tIb@rdp!f!K^)V z2f=H!eh=3CPO%fih+&%G*oIt{{DT0>_nebC*FUC?ykXJ&25dN<xkvsD&4cvvXqNTX-qy_T6aHe{YoT$W}~wFkFgp1SZ;pL}gX zONymyZHkD<7H>G7=kOojjQFs?*Guy|nT~fl<^el$7EOA;e26R>F2z1+tVoh-}T6`umXnPC-d5IqUZ#@*{>&JuDr4SHCg>c9@jgN z!#Z^ZOGvSS<1xkyLQOvP^r~ndCdayRUsA+>h`~v!w^+(db(IWX*a^cN>_; zG@pq&qApw>AF`GT-MUZqQ=w@Lr@kki6goGq@WQ~dIq+sYGEl90n;%EC?ujKqn8nijT5E| zq*qS(hz5e#mp*VpJ0!SrMkT;3SVX+3jU(S$FhH@?LN_QOSQH7t&U@ASxcC0{*HVG@ zEWKNRX}7KPEC279Oqu63Cgo zk#yRC=sqj_LrCXnl<1(-wHud_M+Rm4mmIuoE+`kWbkj~4TD+7>M)DQf5`lWIQy_m4 z!;nwZ{usM_Kz%&O+3)2l!RLLq?xp$N2HPzpI8#p^krqKaff#q_%I9)B!I3WP>2p?W zZ_le|zs|e)pVJ6pAs8wIWj*ouRz-o!s*H%?7J`&*w^?3u&=CQfP{IEbkUr5uQ0pnRr~~#U6YjcUk-D zS<#bZ0DT0b@TcYJV?-|&Cfh+IA~Zp3^SLv+y%>y^n(pV_FzSfj_uGoWy`M(#FUND^ zu1T3BI5xZ)FFOpekr8?lCyt>pEU(7*?`-hZn12#?FsD8h#bkc;*K%px?EZX_c?12P ziAX@)bR`VgXDr&_ep~_m+-eo9|=y zbcMZz1~h3dzuuw!3P5vDkU*3B2QP@PA-SlHit$b2O7^6LrXJsu5%wps19Rc-F_At0HCW9iXgJ8fte zI+%qBJ@IGvWupvJ5^pE&<~88#7JN4P*aWMZe(h^0?@=4gE0lib*E}J3HHe)1j_5r^ z3J5PMm(+tvY9Fu_5IC9J&`7?#mGn`498rz#r;HFeA_bj0_m4T;xivV^grWAfKBORluSKAztz8hQtFh$p%G84KTFJLTX+ zKq&3@f|=I0kE#(^6c4vFM+3BPy$yZqM6?j8*JIw|KZjZVx!KO*crU@zuZI$&;*UX} z8~8Q1NqIptvN(nvmPBmq`k1_RuxTcDs{NDp|%fAvL$FeHRb&$NZKOo*jbG&nx9W zG?a6;;nZP$#hifTvTj%&kIl^EZk@fN(Re@7eUKy?Xn9k92#aB?^`Z}qacWOSsL2Xq zhKl}7WBTJKI(ag6LQqOzZ?aLwJs>5c&`IZtbYH#Kwr116q{mXmPHjw0eKou0xE4Pu z`Y4`sos#S;BGKeyRvAXY+rQVSq0%wPAXpvBBlM)}eA-&V=zNpt3^9XBw!JV81JnKVP=RYnP zVIs7#Nc!fmpyiB9jP+oaw7!4%%f8zMxnu0&I|DXnX(vI_tH?)k4A5b3w2i*fuk|k#Hxz*(UN=IB6?(v&(nq`9%{i*|gPa2;38#lz0~_QfVFhA2G_&%0JrN1v zFXzid=sn8f?JD+Po5COzZC&Uztp1|WAluen6hZ9$Hr{RhEl;z?iOuDmDT?5TrIkSm z&0?1b_oJB8mDb}>P7(sLa@ICtUbYXCwM}>J{I?&E9+sC3?kI%&RMHG0bhuK(-8JS> z6284|EkbBZIp;3-`heobtsDOoljoOglptN;HwxFW&pra|u>9!*07X|YUX1VC1}hz% zxoQ2#;p7>^!J}T}Pws3zWqEr@?5w!H%kN1+ilFjL>}NRMnQ^`74NGxEO7|GK)!y-U zZ`hr3ix&xDg@25|BttA>d+hYHy+D|z5JLlMzdJ=caF8@?yiWQ7M zLKvYCer#LnLFF&!TZpM)BE6BEYUm@6u=s(7z6I@lxkKlSQ=RT-p--l#!U&pe=2Ybm z!wN5S(v~q$<4MVN$d7s@A3~8L&)iP892L@nBrZ(3^w|N6Gm7Jlw?Xyi1DfYdj9 z9~^bkenpsx2&)h~I^hic;uwYcaEYK^hT+|q%j81_dN?IY*>pQp z4xYG4EPhE~$#XpvP4liexvHcM)^Wz<3AcPMB)U5r^E&UHAF8`Frc0iD^{byQ$hOUO zr2c)h>cRi2>~~q>nstdL*ywJznf&e^5H)DYp|_Surw;Zb&Cyx2vfYQi8V$ ziO)FITK-x1S;&Hf3m2pE&n>atXmzJ(j#*cvJY|2TJ8XnMW)?V)yuA;1HV`{vi#f%A zE(yxyZWhOs7*8Nm1G+oWB+93!6?LQ>g{)*@Ew$vxf5i)1=ft7wEnhlz2wKj?gZ-mTv@|`i(b* zl_MhTspp2DaUekVd7bmXz?9|nS*#vfV;2dwGQykR>%MreJ$Os<@c{c7%TvGhZK6Ia zZ~UUD8UGXc0KNX1!S0Vn)#l^%q2ALomwL*A<`;NVh;JehRM-M*sLtV8*E(KS*A)v1Ha8FN#I5)`OSSjQ z)z08j%W>=b?Hgff#Tls$stpH^rgQrGGmX0TMa$rCNwnl|`h=dm5Kl#ck(5ViKrw0s z{`vxpG8z7y4u_6DcblGSpWJ~fXcH^Ao%HF0v-dDEVBjm}opvacnl2VBX^*5Q4?yY2 z`-oS*D*mbHjz0-7c~m`ug`F(ujy9D1#yKRuAy)JuJ>Vza9IVmOYE2+PS0N6qM4;>w?;ujAk1PrCC=KHe!0 ze~@VNv;zPY=^>4^ZX#JXW)Nh*F?tWA_qEKEoAMrMS_d&;L$Vq*v zPi%_yJ)&I+Wj?|&Jl`n=Rz5rvhP(6dd7)O%KIv8LyRVM|jPV9txFVrGJ!8Cf6EH_S zryx8hlqbi`Ol8F+DIuvS_s@@8hCg)U=!I zH{*xQptWO$7pxQncn3L#jQ~wWiu_p;A(3_wg zL$5qE#~&qZ2*iuyBxJ5cwPL#SGM~DguH~>erWDzzeZ$yUT5YJXPnN9v;_)*FX*!Mc zxjg&t0_(6|Y?{@~o28&V!h^YqcVCxN`o?;64llQSdJgg*s3RbxXHvI!_asNF1rP1J zFZF{AaKy}FJNvawNo~kNuL2Ib`qly+eK}F*UFpZ(rq3hYHLLk`6`*6& zw-DN-$pC#PuEVO;#V)P6sX{U#fC6=>4ktWLj>NvO7q0d zkUupZ^UfQH^BzaKlg|%=IL2@ywF8Vz&&D1!SL46reNCIubWKzFhr=+!XfdH~C9XeddCu$8IHi@pdWB?49&Qg&bg(`@ z0>W!Kw2BIk#{iYdps?JgSUeUJ8BPVgn*4;B+D$^=LehHOJiTm|jMP+Is;V3r)`+jb zDvXMufv1dk$RdJfsEkQ2lSBB?@1e`u&W>4EJYbg=1SW|*g@~McQayp}m2!=L7!WAj zKHSAySbpq$m2`_QmHq@FYvvE65jrG0qt|ptF@JWGX=1yeFXQoK2Rd~z8tZIa(TGVj zg?Rp}#Qvt_uW{j&~bywp$pD>c#jFt!IM zneGa}$ZYK75af_Gf_4%!oxbi*3V7lH;yTk-R#kkIa8hRwQmI1HAL zW*)+?wdkZr5VoD&RMH*Y9v+qzAN}hd` z-c!qJC$h_#n(=RmYSEm#C2IY&;QK*IRW0)59Ro{U{T9?oU7^80_=W#I9^&33fZ`4* z&pT%RcJ=*KA$=!8$QVH87en*5Ecobby2Ae3hRnC<=By{3*!^LXV}wQ7BdVXxjZ{Aq zK-;MUZ?aJLJ-C{KI|J_J8POXZK#6=lM(o<6jrqdgj^?o4u^m%MqIWkEAO3#Ar)*B; z4zG61i$}QgXVixX!CCm7b2|i!jJ^}CjO!}++ML#*D0G?rS+5Y5o`?!Zin!t4aOYSM zq9ow>!%Y3U*2E+}Ax$6Xq87}dGb0dm&8d(SX0fPAn7o(Rw>SZ!c8X=CJDT^a)ragh zdxT=^mq${2pDr8S`2wRv{vs(PkXlejywf9dcn=icA?0xLJ_ST`%GMZ~j4Vv+dw$9@ z>JAZe4oj=4Ut5Ke@fUWTy~z*9an9(Yy)113sGX5}^m;F{x&8c#Na@RbsW|4UHg<=p zP6~ZQ?IW^`4Xa7_x2$oPn4DWNswHuvjV}U1wUP-JYgsj-u=v=vyQ8GsdY3j_6D1R# z1qTm3rnQ6}aFLVJS|S$?@qFow>Tshc-qxRX?{{jPp>Ni`ythZ)Lg+r!M0go()0Jo| zAb!LaTXjmdo1CbDQ|G6=HK0sX*lA4?VO;UCNer!DKO>8xJPQ+5_vXlE0l)O+_1kZ( zEwilzH))h&)D zA#>P%fga&Z&nU|!K7vkbi2HOMNBqbY%U}>MgG>LJ7>|r{3PazfoiT~?ijlg{FTN=B z5PC@Vvm;E)M{(PPp=wZ9;u@_>Hex_H{e)n=vx1Q4x~WmHul}Iv%_ztL$bXTMqhuh?@On!^JtU=!$+Xu*wSUbJgxWqH{0SX7R9rcnN#WbdjI7~1 zx0~LU)-@bzcHvbDjTg!7Pw&or+)#ar;m4AGGpOmtFQgShf1|9=45hrInrL^K?+DkX z!lqJCh{XUq~#P=5@f%R-K3X=**Gu!Efd_=(P ziTnId*{0J9!3V18|NYmvDbcVXKDcr=K7{a&~sUoN2p% zTsN1#jvuEW0ZC~1KcDv z75r4QOXR(KgmCLEis*-srpRQ)PeF-;3SMVtXUAq|!)j~!>lbV;p(1WAi+zv9g^VMz zD=YEb-Q9mRxpFn@+ZKnv0qYFMhsL4#BP7T@4u>I@Oohe8;bT$0z#}3eVrF9tr*8!J zP9FYX@%-yV?Thz>k3}-M;+A!^wZ|qW1A~H4{{H@s>UsWGTtWirYijEF^mLFIEuM4R zl&MKXhh>fNNSdH>k(%31Q2{)1Wbjq|m1uiNPd#3Rg@tju9U5X$@MB2?7-oZVWafbsq9)#XLoLwcM8Ft==9ql<`RU|?`Ntjk1D2;i9X zM*X|vyLX5!`ZTVuqftz-SQ9Y7kD#C+GZ$BHig^Zl!9*xnS$2Lt%98gD$8?!aFo#ZU zRzrgz%f<^Luul}W%}-7?hb1yaylBxTYvX}q6p0TN2+0Y_$$6@f!t->!F;TF|1N-Bda;vJIr1D#L_R{!7yf0DDZfIzb&X`G6 zV4Qat^TK^W&$981;sq0VjhZSTH!N$&B_$>6FIU6u!NrUg8lByaU?f#e+wUk} zc|6Y!T{NyT1l#O(*nw*FoSdK*?#_;9Bhx%qAvCJev^)Q8ZUT-!na2#n!O@Y|Bh3s1 zGI(N>z8Jdt)1UHH7UNH$XHy!LzpWPJP9q?MgoMk}I<_$X$C%6wAXdVZ{Y9|@I(&_~ zf>vffRltT)cvZBuzw*5w_NUFt%0kf4b0+GEq6%k_Ph4JbU4qqG&n-JN7%%FZi(Uvi zZZ4nC*#=KpzI|N;*H;4YZ)MT^eXFZ^hLRyj8U|i`;H#Kr>Zv=%44-My{>)U+?6=<7 zC?s<~l22sskf!kpyuQ9Jycy^1QP$OsNVRE1KiL|U*3#0N)brK3<*P*F(7V7MdzVNc5Y0n4U-1x458w;3}BMhPo`AERPg zNUPV4@#W#lzYTRi*(_9~R4*YCSa2fP98Q()ze9eb^5*?}qWrh1L0&iKMpwrhb}uN4 zIMt)aENfmo+@3%zCz+ww+XcTGo!Jom#EQccj+pbA^A&^fZB`W;|IaMIEyPr-=X87G z=p^%ja;+yaVBBKpkNIAeVT5=b{gm7|IF2KWq9rj!moCC1!dA3HLhAt)UoN< zt6Ne83!#_o{KBHj?Q;)R$PgwwJ3EUpBRgohSY(O*#2-VCPNMHd=Y6+pU~;(Jk^I8` zDg09G2Cc%o7q3#_D|#1dzM3;-d6n+E*zdYO-+$*VdN52Vx#HcHX**XNIhraET{5*3 zPyPMope<8?pZ{2ynQ*H1;V9bYaDIONi_hY#s=n$W^Wm>B0qfarFA*9I!q2FPk6PVN zK6qbkBsunIzFw-x%JTIA%ZKm(u%ALMAxtnk-?R64`jT$cXb> zC-%|3U3)GsZ7nTVLBD`r>@PGoHh$I6&^TFWay@Bm6k42|>;@mWa1#cfJ`$sC2Vd17 zWZ2%Ywzb`g7CuHB9UR}5< zJML#v(a;EPZf=&*s5hnjuE2V-9Q6erkC0i3)Bx9pIeA9 zwGwX9bHV52*qqIWuZ3?9yGWl~jG-HtRB0X#8rhDqoyXiwUrvQn~p>dol3Jo;>nqr+?Ez9{#0!0Xr`S| zLsFBmZ71#&g}&io$u{phZsTsW29)Tr{REyre{(lGPpenopI%X@c_xAxUW`6gq=X5chX?-ixCj*yS_=Rd_<~s$d z0AtoohX1XNg_Co0RQLqT*49=@a~0eSI{cOI763Uu(UT$G2AJ`RKkYXw8cCIP5M8&W z-$zz)U!CGT>^B|cv?40jS}7cYrgy94bFHe&w5kY-QH4%j)M%Pu{HNz%>jz@P{-s~_ zAm`er>C(`vH}kS8go{6ac9L-F_JRFXy?4*=0$a8F-&Q$|Th`o;OVhlyICBO#=%I_| zzC9S5qQ_ZCPg{=z!@nIH1t}90N1ywvt%l(b@_iz%(zOh3334!>lhmcd>FH^kUNv*q zf{zpVu=j~-X%RlBxipfE9L~~PdNV%vTRtB=T$#dH6d^>tads`mvFX}nJ@B>9JJ0AX z*j$w{V*uEvUaIL=km*g%rctgi*h3kX)4uJrT2j&42|7v@^vZ!ILzYHr|?e{dwYBJ2dy`Uzf7VfUqK6K(co|2 zyn02A3xFnon{QMiUgndUaHkH}-|RPykB#|~7(lCLu-h=c87Sl-!qhzE&l1MaD?%z7 zcUW6JFZOK=o?PE~gWqiaMNf5g^^Zmq(FFkWXoQ@YeL!Wo0)@pz@iS+KMhS!tKWm*Iuh}^ zHl6%FZjm%1nt>~FnI)akZ|>kvg6tPf^)iu5uknWt#H?=aDqcyXe{gVcqNcHOuD2*B z$Dd2LzEX$J+)vE6LhE~w(%0uKC7h+aEcrj_IxgapCVHI7z z!ymeq?#~5;?=RP0*e#1qN(_966QlKg<#}#6n(<1j!6(#|Kh+*!Qj?$GWbJ#uEZFph zbG3#%+$}vwdU<(GmM!px<}m-Nv!$U1k=G11-X1rJRTjS|f-K-uc>@ZF2Xsy|kF4Y{ zz!9%y&JyrQBx4Ocw)1Y={gCYSHUOxg!a+5tx1-}?W0SwSr+3^=BO0-(>-Bn18LrS0 z0G`^wX=xH)sw)1%6Sm`DlL`Hsvc%O$;1>o~WS1|7AY_iZeJR$k5NPYHdX6onmqILr*u~6XQHGFfr9e;ecZ4F6? zLKl%YVO^=N4%5d&R>%~g0(DvhneJQ<3nkzZ!0sau(K!Hgu$45CnlQ7ocbC;IhJj0@ zfB5_oTO7|0l=!tyOs+uYFh~Ur7D|=43i|OQi$SfGmhKG&#^=j&y{1bg@8kH=KNutjIpY?W zrCQ%F0gqUXYDi$y$e*Cns0b-?Y7Q9v2@j|yt0$6ACi35QX_==J&0OOIBXPCe@+5NV zVN}edF8|C!1*GsFQ2?Y+ON&geB?BzG{!dOgw^3(c{j_U?t{Y&choBLHN=skwl+v|( zwmP9C3Ij~?QR*=93_qOCY)=&QI`^h3GUww581GD0+pu2)J_)CM0NU7>wHd=Ony+_C zEI{Y8>;DNbO$SHaygz(*<2=8VsVrRk3$U8~jsVo7NmV7Yh2VMFk|{Xd)~qyq1n$pp!JH1Dfqm~}wnT8H z-OB5~OKqYZc^JH;Sji9*l+BTJOszzM#yt=p!k5bdFQAv){vC#$wM{+`-ol`HlZtu^ z0}^kn@6#Rf1b*oHo_jTc2}K2YjtXW^!-@z7i+SPU3%C(VI1K-!QNMx&)O`%~GVO!} zuMQ4kOk#FT-=*740cKX#oOSBF+gm6+Mgg&gRP3Hy9qyD=te%XDDrqY~da|Z0jrdam zTg7iAjqLfRrsFVD<*+eOZ+^}LFyig;AaAXaMPsiTaw(+KN}Rdg>*74qJ;0A00eXW1mSIgUV$K?w2PWGF=C2CPGfz{iuDZhJ%f3i^2wbBmi zF`OPS7C9AlkOoXy!r%vfb+To?F!izeV~uv2`(}zg3|_374qC$jC1EOZV(JwP9^DG) zS_!$~jD`dOh*952Bl+oIvBhn-td861&sg&2tAmK$?;}E(2HsZ;X^Q4Q2a+vP$W>Ev z1bQZmOyBy~X_t`-*ib4ksw(WVg!zMI8~&~~)0(o(fCK@JXdVPJT%Q2&Ut;PQQmtK< z%x&~~2m%xA?TMrSD#6b$KkPQsOm?TsF6Wl+Q8GtKE?fY1sI^_n_@P|}%C3^g74k%Z zQtx9DUA&3(co2Aj=mg5@>Op!{{tI`11 z0t6tav9Yn#Bmcd!vM*eV0sJFxof=gfPZ{tJAcVkl6D;fIjzIA@dbq!131t}(JU>{9 z7Fcw9ws-J`oSgh{yC8Elf_EfjJLLzxEGf4k0!WZb097JL*BRnXSmRIglZDbtU+k8s zv8ug)pIu-7VsncLFhI=~55B)Ho^f(BC+x)Xrh$zB-l{l62e1zo78k#km6aWW)c8Ey zmxdRa+BfLJKV4i>VxnE~UCw#EFBS*`vaEW>Dhg*2i-f8L@kHj{;V^%oa=_+&hX4cv zhuF2);`x2m5*xuuNbj4t9#9?BaTdo2fZh{?Lq+Z=YF055KAb9G{$7D0K8Lxmq@)YL zX_In~>D@E1f`MeR4(5ChDci83iT*HT+Zt^Mh|}camKR$9#B~WQK?Cyh^XU`Iw~~R( z1XzsQvL9+8o34OXnR)~%+5DR16HFfm&t?ov9xQHTlP<97kV41eWRa zK-|a0#nl_{0I2z^+6>d#But!}v>TM-O53H@j0Z`2+}Qf6l6&Qmkt8tuqONGRRHhVQsZhr*KO zJ_9&n2-rHrbr4ja!oosd^^&*m`axYS-ZJx4kbJgA&@7cJZf0gS|hsyq*oTnp$OS+O%5OyqzFJe>ghTw1Dd^C%7Mvwm%_+H)Qe z3X2-;FNujgx4MJib0F%;^!ChZwC&+yA2{6w4UU zJ5b7_uTnmOxS5ZaKO+n)%1GLS5Jg6ephZA{>YGzp$-TLyJv=-N$1FYPEPMcSpH1sP zfF`qpkz`05{uum$^s1?G^13Usatn4nG6wCivXCslgxqr0t zPZUWNWgVT=sww?y_BA+2iWFExOIHj|OiWZGVPV7xerDZt0~9lVfB)n;9?+734wWaV z;LM1WAosbm^Y!}1hIqw{M53A92PPt*NWaEicDe>y3^s@-)}irv}O^ zZJ4q4bf1}of?2UuWRZoLlRv6&T3T8?K2%RnuLp;mP8Q!~e?AnHI)N$4&_U2$Rva4M z=|vD2N6;}bF>QKRhUFN7H2(NR)t}Z7D2Q&SwAPV`DMI5EyCK zShfT_z1F;$!k((J5-BhefLsg?C1C3OADz;yu_RiAp1if1{ecb^_bTJhf{g&EKE|yk zJfv9MiLbQn!>7M!m3S{ zxx99T2PE{_xw&{X*0_FB6QJloaF2E!8h+*vGHe0LNK1$zu0qHhhBzWfY64V3LP?o8 zr}?F~Tc#AE4_BiQ(>^@mqi%xB%~ab)zGr%+R{T0cuBAE5omTt>d;Kpcj9KH&OcW&9 zatWGg(I6V0k5*XsoifeBzXj2v**ixcxd{UqQs2rN{D z2J9ae3KHBJuo$CNQ&)$V6w4YRhnXe!ap<@ti8vmz@cAzj%{m*s=*aUwE=_Berv+1% z6X&LB{g4FgYDj)g!V$VihL#TyMWYuJVum_M!>?j-@uFDTmNEnJ)Ae<9C;(9S{5F-} z2neFTYCe$wuVnei4gBC?p*+C=S}>xiR*-thX8^1KXg^w`c_2;FbwD2&9DK&a`_H<_ zS4_u99S#D;B`Z5STlyTfbpmsyG}BU?i??U&QRDCL`7e|-hfY|LR?Kx$=Fj}-mCW%Y z-ZK-*^&8T=G*N|U#10i|-0L7O)^=T#`o6KkU7 zr79y#t+pSegA_=I5qDjU5B{`c!rSYC9-kDfe^)<-D=8qoqF&OezkhEu`{Uy)ht7C< zmhv@HG~}Nyhu;>-Rkxo~z#}ewnMg8pSF2Gj&tEE6_I0RC{_ZfO#$`{NUBCIV9z_-e z=~jlP%@A)kOrlJ^_kDW$2-DgkrRp~AzpsOU{fJ#LWw~bQrBrQT8^r>;9$>y6`_9#HJjMqm27LG=^BQSt!|G(c(Ul!b|oZEx=pb4dOZjK+w9E_!!6gxUZ0dzrC z_W*;zDz(dGxqv1fab;S{ET@~PrL;W^Nx=Cpidw%%+p?Q#MY-!*{Cs(Op6t-HP*_nR zYV%;GB?W}ipP5}-8ym3sv#G6|H7Xl?SBc-)c=WULf7Co9jwOu~dXcH0LRu zw3^MnbV~vp!q9il?K6)ENIaW9`vBms~*7H@C$+wc#qqz&S{l9ws*spUR&uh1 zJ{&aH-H#R)?SMuBMEk_~J(da9#>NIIkWl%pevO%&=$Q-2#{EOZG$O+JmJ%a^I8;J` zkrV>?UQ-(R-Cz1m!%nOAIYCpOvuVNx#Pwylyb7qbiChL5KRA_gn2iCH1E?ruS8E$I z+zD@&K84UCt8q}q$w9a9J4CktayA^*Ps#>Eg3{6`BWOgaX}m9ur0SsivH*0{@0K^& z0Y1?)SunG8vXYmi-+8__HzCr2v`wQ5^zt})&W`o|_#=QXjKKZvYaB?BAA#>B3)oWc z0~2X2ND4U0z_e*EeqVyGb;}8iLI_am*0;8LZ%cmwl-j#ld{FKbU1arB$9Tu7`e_G{ zq9yUA*$IsQI0>cM_mF}0ivi%%gKHUM1$@Dr97LeON3t{^t&Ca#5Qg3`_ZJ;l3&33i z`~U{pBa78Qwq`ospz^Viv9_Fl6uZ@v#!W5xFeu5<;jfdPg|3e|9$Z9P0e=EJY^M-rW zz;yv4DMYX8>;U|?w2W`zJESVYEYS!+cPL7*xZ_mKFOwlVI08 z>GMH93Rb9Ol<0Q%||LaN&U9&v>pq zkePD<|L9#%VGZ+#^K3w?LF@4PIZ!dN&27K>28)b`KK~5R0UMhhK&0M@XlwuAVaVsv z`;RhIFk`^O9y}Om!ab)}zpVI80MFB`wIbuUT~yHMWg5R?w*&7$lqhyCZs2zOs6$zLNWnvZ=Bc8uA0^M(fD9lIARz%0+krE?lFWqu%wftU zQvl(BVhmoHC_4dC&#A2?21YgIqQ`F8H<5QNY;0X-NqRxR{7Rn2{QMdqe_SBaBtpCr zfZoTW_1~g#5u~FiJ3!LffwOulARqv*h#~X+Y8o2mr`);y^s@Mz^~;Fxpn>2vt~d!D z4GSzS_r*Q~Y|NpXLN%i5OV1bfL7-Q?F)}hz*tH*7IdTIDj{-zxHaFmT#$Bh##svcD zfCe67MRbIC`vX4!^^5RS|N8$@)gIUQ-F26yDw_qN=luLV&@(fh6gwD^Miw{_aHGv# zpoWw;Y<^9?Sp$ayH+T1DYsfVA5=H=XmbSL$XuaB`0IH13O%x{~h7q6#Zoo)C0)~s> z(JBlQ-Ar6^eC(hLG!e)QnzMSI_sOsT*+hP>s!*>Q|DQ;RGi%k`DuR~a_#X?Z4h_2S zF#*78jlaGMfuNL3VKgm70e8my?U_Q3OkCj0gJuF=^N|SmH)TMZh!(jO#hN}zT_fl^plR`z*t!(T3Mhi8|>x|#0!Ssy?fUQg#WYpsJtBJ+q;XUEg&(mEa8R~ooWFc%m=`$HIWPh zuQMVpE-s}jZ)JtN(KrT3f}Pe0R_g?)GVs0XUa)lq0~_@#K@`T+Z7(RuBBh4D@?ipd zG4j(LXzuLVKj2USol|QxCs~d%cRU1?TpUnK!#{a}(gV0W0cdY>cKsg2Ftt^{mz%%n zqbDRKfhc_t-q-piiGYA>2mk*9l(RJ`Gk3!+c(|EfqitPW@#kG_;gqHKFyG7};Od8l z+@vS=K*5Ff$1w;4&b4t9#|hyBu8TgEDr-U*c#tV5yokdHx6uK0i(cRMTmrR+^&K7-J-QLRVY(E3n z1?T@Rf-Jsl(i5>l13i2MycBz?E)YiEGkUIYZ?aXCP_@XQn){!VK?t`*9&Wcp-I)o) zt|Y)jz)MP;d$^Mcx)_)U7`P}X0Co-y5On@IZe1(OVL9EHWPUE8bxX>OEh6clU!Ql|2ZYgaCZ{u#L-RHK__-ZBhR9RKMs0~Di6AabsXD0UdeR2Z~nJp7RsU5%s9gSNrP zKH}=>b=4zHUD-zj0oJ4&;w{Qa{DYUIVbk-sut)$S0F0@a`T+m@Je%BTwEN1mj))qv_3xa zw*wa?P2t*Qn*>aX>s+muPk})ndQ;CF);TvfcV+N!t)c(!UEJ~APEqnTP&0d|aHQ)@ zb~cg>Mv9Zkfnp78?}w3S>Q}R6CTk82mpPK*Za`KVxCjR$4aKO5@U5RRdxGo-e5%k2 z%_@IXM8Eog-0xF6Kl9}O`QXDJ90x8q7GZ|mhl89=zyThYwy%4=M+nRpV4M$0M^mRK zybmY{D+0AB;^yu?uzM1i71dAkMQ#rzz_TpwC2N2GfSt)>CO6GD{Vh2sS*Sk_^3E$O zN(YP_we2_Vy1jk-cK*@NtKPLUk1H_Fb_D>~puC(M4`&gW^*aKxV=CMQhdYmV<8~wN z&dz*oU`%Ub&s{ybdlF1v5fG~a zgfKN+4!GaB6BrKs!?sHpSN-6|j(V0Ibt}1*jm@TQ>(vJ#gC{OpAmM>Vv;{X&Y{B4& zdO(IEc+8EuMUPKH596mY3WDh)fjyH~TbY><2p`7Lkn` zX^13bDnK4S$0M{2A2tHKnPlIgq0vk7*EZnrx2|nBRPbt$WG1+AxS}JWaS+1^$OE%68jDxg2+}~V*fi3)MU~$?d z4Z`3yX!*qUyVhvSAza04ZP zE>90eYBCSb7r;61IqSM3A~tpU^(fzy1BxjQ-Fog_sS^3#X6_?Kj0X7TG+asZ#< z_zwW9g~fdK!9NoPxQuVV20~1Fz);UKQmm(>Se?6P=bElWvT@2lJqKeRx?q~>@@mv4 z3Uo}e_wV1M|5h3i1l$lnFb=rn^Q+Cr2T?BlO2~v208J1t=+Q;IBQKCp0v`E^W%ZiK z-9GFsEZC}^A@v^NdimGvPFFGMyus`2n%9-#Rxw^p7oeBQ4L$M?{PdKrJ;4X@5hA+G zb4%lh5#-m+V@7EtC|uCwcPbM+q{^FrEsA#e8%4@+x7;4>9&B+9;AYQxj4W1sldYJw zO&zVvoH)OE)w``GEgf8Ivrr5s(8PgeKLzGMrzR#;lV(_Cub}z?0RciDr-f3|($?Qw zc8y|+f=xOUro2+;+m@`{eaP?AorKaoz|297?UG0f@Odmhess@jDe&oi{`Res((cYw z2}W=iIW@KVbMmQQzmj=UB3KjT^tv`(nxRzyfN3Knc{IDL&QT zR_X@OqtAfx<^W-+_+8QDM%A9L!ks7ah}y!9+i&7#Cnh`i4cmO$^nsm>D$>y{3c-^2 z{91h5NxMo@AvZTSOe#0*&C{^nwXZ2DD*sO}=l<1X9mjEsFy)9S0U;1+>cBB6w;?wr z9Y~6k+cp?i1sRuNkc4qlu)K#j4PgvK8??=5h=PWTdqgCH1pyPeEGf=JK`~ehAtt@| zFZ4q@&pF%9bI$jCZ_oSt`F!55^K2>Qhy%WRarRrdh0e~-_g>7RgAV4#ghCOb)9FyO zDL@YS_4)HFa963VEtV34gP~>HvV$Rq0qf1gBa5dvv|7HBJg3X4y>o{Tyk_F*)4<%^ zmOBRrgSsvaOjcz}XXY9`0Xvkr9%6uu38;&>F+4VGB&yG~>^3*rm*OPc@>nkZM<2VUfHQYt9M@n1Dw~=jf#RKk^2xN51CCb9A5hiP8I}|lwo82X73K8U zU5k95s=szLKI!P!)nrH=UY;EN#PwU$tDdVGLJ$aD>>dyA885xMtI&6+Iu%YBM-rsp zY*+?K5V7S@gp&}k+s8A2u94E$sgf}xMx_pm&oKq=hbJ!imAOk|si8JDuR_cTLoKf@-t_1uS1}H5LEWUiRMr&g<0Gp z`c(o5Or$s$6Z&lqm^LXnIhi;emxyUZRchY@k*_2O2}ds?V=WX; z9^gRH_E7SfgH)FJLd><`%97&Zp7y-A3;kqj%^Z^84T|BWey{KVOn+NjTh^>9U5isG zAvX3$^6(z(-%@{O*F^-o+CG4(AOjW=-m);0r?m8Rrcike%)meM+8eVOLeMCaID^5i z_f-fy<&Pi74ZpM2=9GAP`p{9F!N@=rbUOVTHko(wEiZ0oY8U&xi#;M*{9h;$OpMfh zTA!&QiR3gYuabGFyi_up=B^wZBv97$Lz%MocDH9Gc5avdnm#(7G)YQ}E*J$Aar3MB zBuQW5o$oij?h((Ai}QJObhd2Ck|k-c7BVG48*`S0y%F0v^N^&tG?J`fh%dk!Awr@u zcY=Al|3wNXbg48E^W$KZK4 zshF6U=+#T)fx9cVAu`tsmb-_CTAQU#t+V{tOe7_+TO74DHJeRLO(y{lhhU+r!WEW0 z+l-9-A|j>+2&IHek%B-C{BYsV<3Idf{m1mn@^gl!0;V(FxcOogw}#<))nBDj4c+49 zWo2jM^r%1!Fy-VD$xhs|6Uc6aoFEIkI@PJ2u~c;0diCnS^=A5uV#%V4*iORRef&ON z#VV>^$mV8v`RC3#Sm*Q8(%9JRg9nS4p({mvu6ZNp{=Oq(2#`2n7uX9W407$uF+q}E zRi8a$!-sqQ^J8Hs!hk(k%&zlp`+)A^B7-8UnvaH~x>a)daz73ki@f$U-TdKvfgmX+ zhEY&Zkn0vgzn&tda>#|K_R(pyil+>OXs4^2c<>CKkZb*iN4gwwHLc z3WK>fsqMryu1VBRDETQV132z1Ag3cEl$J*~u^;MGQ$vJ(mpb)%M|$%^n&=#)+S$#G zAc&3XR5$&lnNwG?rYx5yFEDc+5z`6606Hf6c%LO80l(ze#oNe@e2=p zm%lC3{Ni?IdE13(D|v8b?LQjFz2hmz(iTPfe<%0G8qYGMmKH{)2FFa4O@bG?c)a+o wdcCoofq_l==xYYmYyZ!mc(vYt{~S|K`F|QnYhsB?nEF - + android:drawable="@drawable/w_power5_press"/> + \ No newline at end of file diff --git a/app/src/main/res/drawable/pwr_widget_button.xml b/app/src/main/res/drawable/pwr_widget_button.xml index 8f3781d..70d0ae7 100644 --- a/app/src/main/res/drawable/pwr_widget_button.xml +++ b/app/src/main/res/drawable/pwr_widget_button.xml @@ -1,7 +1,7 @@ - + android:drawable="@drawable/w_power_press"/> + \ No newline at end of file diff --git a/app/src/main/res/drawable/refresh_widget_button.xml b/app/src/main/res/drawable/refresh_widget_button.xml index 73b5861..21f3911 100644 --- a/app/src/main/res/drawable/refresh_widget_button.xml +++ b/app/src/main/res/drawable/refresh_widget_button.xml @@ -1,8 +1,6 @@ - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/reset_widget_button.xml b/app/src/main/res/drawable/reset_widget_button.xml index e21bb01..f036942 100644 --- a/app/src/main/res/drawable/reset_widget_button.xml +++ b/app/src/main/res/drawable/reset_widget_button.xml @@ -1,7 +1,7 @@ - + android:drawable="@drawable/w_reset_press"/> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4f43633..88aafab 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -10,6 +10,7 @@ > @@ -18,18 +19,18 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" - app:elevation="4dp" android:minHeight="?attr/actionBarSize" android:theme="?attr/actionBarTheme" + app:elevation="4dp" app:titleTextColor="@android:color/background_light" /> + tools:layout_editor_absoluteY="98dp" />