From a13d74fc95324c4318fcc95956b07fe593669412 Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Sun, 24 Mar 2013 08:54:55 -0500 Subject: [PATCH] Add partition list GUI element Add partition list GUI element and update backup, restore, mount, storage selection, and wipe sections of GUI and partition manager code to reflect the new GUI element. Update ORS engine to handle new backup and restore setup. Fix a bug with decrypt. Add 1080x1920 layout. Change-Id: Iaa2f44cb707167e66f935452f076ba00e68a2aa4 --- crypto/ics/cryptfs.c | 2 +- crypto/jb/cryptfs.c | 2 +- data.cpp | 168 +- data.h | 2 - data.hpp | 4 - gui/Android.mk | 1 + gui/action.cpp | 63 +- gui/blanktimer.cpp | 12 +- gui/button.cpp | 77 +- .../1024x600/res/images/exclamation200.png | Bin 5260 -> 0 bytes gui/devices/1024x600/res/ui.xml | 1047 ++--- .../1024x768/res/images/exclamation200.png | Bin 5260 -> 0 bytes gui/devices/1024x768/res/ui.xml | 1045 ++--- .../res/fonts/Roboto-Condensed-40.dat | Bin 0 -> 12724 bytes .../1080x1920/res/images/back-icon.png | Bin 0 -> 2627 bytes .../1080x1920/res/images/checkbox_checked.png | Bin 0 -> 1807 bytes .../1080x1920/res/images/checkbox_empty.png | Bin 0 -> 586 bytes gui/devices/1080x1920/res/images/curtain.jpg | Bin 0 -> 107182 bytes gui/devices/1080x1920/res/images/file.png | Bin 0 -> 1267 bytes gui/devices/1080x1920/res/images/folder.png | Bin 0 -> 1069 bytes .../1080x1920/res/images/home-icon.png | Bin 0 -> 2433 bytes .../1080x1920/res/images/indeterminate001.png | Bin 0 -> 3791 bytes .../1080x1920/res/images/indeterminate002.png | Bin 0 -> 3796 bytes .../1080x1920/res/images/indeterminate003.png | Bin 0 -> 3772 bytes .../1080x1920/res/images/indeterminate004.png | Bin 0 -> 3760 bytes .../1080x1920/res/images/indeterminate005.png | Bin 0 -> 3780 bytes .../1080x1920/res/images/indeterminate006.png | Bin 0 -> 3732 bytes .../1080x1920/res/images/keyboard1.png | Bin 0 -> 65355 bytes .../1080x1920/res/images/keyboard2.png | Bin 0 -> 66480 bytes .../1080x1920/res/images/keyboard3.png | Bin 0 -> 57703 bytes .../1080x1920/res/images/keyboard4.png | Bin 0 -> 54577 bytes .../1080x1920/res/images/medium-button.png | Bin 0 -> 3359 bytes .../1080x1920/res/images/menu-button.png | Bin 0 -> 8122 bytes .../1080x1920/res/images/minus-button.png | Bin 0 -> 815 bytes .../1080x1920/res/images/plus-button.png | Bin 0 -> 1117 bytes .../1080x1920/res/images/progress_empty.png | Bin 0 -> 261 bytes .../1080x1920/res/images/progress_fill.png | Bin 0 -> 316 bytes .../1080x1920/res/images/radio_empty.png | Bin 0 -> 2673 bytes .../1080x1920/res/images/radio_selected.png | Bin 0 -> 3432 bytes gui/devices/1080x1920/res/images/slideout.png | Bin 0 -> 3254 bytes .../1080x1920/res/images/slider-touch.png | Bin 0 -> 29925 bytes .../1080x1920/res/images/slider-used.png | Bin 0 -> 9123 bytes gui/devices/1080x1920/res/images/slider.png | Bin 0 -> 21895 bytes .../1080x1920/res/images/sort-button.png | Bin 0 -> 1495 bytes gui/devices/1080x1920/res/images/top-bar.jpg | Bin 0 -> 29015 bytes gui/devices/1080x1920/res/images/unlock.png | Bin 0 -> 68671 bytes gui/devices/1080x1920/res/ui.xml | 3626 +++++++++++++++++ .../1280x800/res/images/exclamation200.png | Bin 5260 -> 0 bytes gui/devices/1280x800/res/ui.xml | 1047 ++--- .../1920x1200/res/images/exclamation400.png | Bin 11295 -> 0 bytes gui/devices/1920x1200/res/ui.xml | 1047 ++--- .../2560x1600/res/images/exclamation400.png | Bin 37149 -> 0 bytes gui/devices/2560x1600/res/ui.xml | 1047 ++--- .../320x480/res/images/exclamation150.png | Bin 6460 -> 0 bytes gui/devices/320x480/res/ui.xml | 1123 ++--- .../480x800/res/images/exclamation200.png | Bin 5260 -> 0 bytes gui/devices/480x800/res/ui.xml | 1122 ++--- .../480x854/res/images/exclamation200.png | Bin 5260 -> 0 bytes gui/devices/480x854/res/ui.xml | 1122 ++--- .../540x960/res/images/exclamation300.png | Bin 13488 -> 0 bytes gui/devices/540x960/res/ui.xml | 1122 ++--- .../720x1280/res/images/exclamation400.png | Bin 11295 -> 0 bytes gui/devices/720x1280/res/ui.xml | 1124 ++--- .../800x1280/res/images/exclamation400.png | Bin 11295 -> 0 bytes gui/devices/800x1280/res/ui.xml | 1128 ++--- .../800x480/res/images/exclamation150.png | Bin 6460 -> 0 bytes gui/devices/800x480/res/ui.xml | 1045 ++--- gui/fileselector.cpp | 20 +- gui/fill.cpp | 4 +- gui/listbox.cpp | 18 +- gui/objects.hpp | 106 + gui/pages.cpp | 25 +- gui/partitionlist.cpp | 926 +++++ gui/text.cpp | 6 +- openrecoveryscript.cpp | 116 +- partition.cpp | 123 +- partitionmanager.cpp | 639 ++- partitions.hpp | 16 + variables.h | 2 +- 79 files changed, 9597 insertions(+), 9380 deletions(-) delete mode 100644 gui/devices/1024x600/res/images/exclamation200.png delete mode 100644 gui/devices/1024x768/res/images/exclamation200.png create mode 100644 gui/devices/1080x1920/res/fonts/Roboto-Condensed-40.dat create mode 100644 gui/devices/1080x1920/res/images/back-icon.png create mode 100644 gui/devices/1080x1920/res/images/checkbox_checked.png create mode 100644 gui/devices/1080x1920/res/images/checkbox_empty.png create mode 100644 gui/devices/1080x1920/res/images/curtain.jpg create mode 100644 gui/devices/1080x1920/res/images/file.png create mode 100644 gui/devices/1080x1920/res/images/folder.png create mode 100644 gui/devices/1080x1920/res/images/home-icon.png create mode 100644 gui/devices/1080x1920/res/images/indeterminate001.png create mode 100644 gui/devices/1080x1920/res/images/indeterminate002.png create mode 100644 gui/devices/1080x1920/res/images/indeterminate003.png create mode 100644 gui/devices/1080x1920/res/images/indeterminate004.png create mode 100644 gui/devices/1080x1920/res/images/indeterminate005.png create mode 100644 gui/devices/1080x1920/res/images/indeterminate006.png create mode 100644 gui/devices/1080x1920/res/images/keyboard1.png create mode 100644 gui/devices/1080x1920/res/images/keyboard2.png create mode 100644 gui/devices/1080x1920/res/images/keyboard3.png create mode 100644 gui/devices/1080x1920/res/images/keyboard4.png create mode 100644 gui/devices/1080x1920/res/images/medium-button.png create mode 100644 gui/devices/1080x1920/res/images/menu-button.png create mode 100644 gui/devices/1080x1920/res/images/minus-button.png create mode 100644 gui/devices/1080x1920/res/images/plus-button.png create mode 100644 gui/devices/1080x1920/res/images/progress_empty.png create mode 100644 gui/devices/1080x1920/res/images/progress_fill.png create mode 100644 gui/devices/1080x1920/res/images/radio_empty.png create mode 100644 gui/devices/1080x1920/res/images/radio_selected.png create mode 100644 gui/devices/1080x1920/res/images/slideout.png create mode 100644 gui/devices/1080x1920/res/images/slider-touch.png create mode 100644 gui/devices/1080x1920/res/images/slider-used.png create mode 100644 gui/devices/1080x1920/res/images/slider.png create mode 100644 gui/devices/1080x1920/res/images/sort-button.png create mode 100644 gui/devices/1080x1920/res/images/top-bar.jpg create mode 100644 gui/devices/1080x1920/res/images/unlock.png create mode 100644 gui/devices/1080x1920/res/ui.xml delete mode 100644 gui/devices/1280x800/res/images/exclamation200.png delete mode 100644 gui/devices/1920x1200/res/images/exclamation400.png delete mode 100644 gui/devices/2560x1600/res/images/exclamation400.png delete mode 100644 gui/devices/320x480/res/images/exclamation150.png delete mode 100644 gui/devices/480x800/res/images/exclamation200.png delete mode 100644 gui/devices/480x854/res/images/exclamation200.png delete mode 100644 gui/devices/540x960/res/images/exclamation300.png delete mode 100644 gui/devices/720x1280/res/images/exclamation400.png delete mode 100644 gui/devices/800x1280/res/images/exclamation400.png delete mode 100644 gui/devices/800x480/res/images/exclamation150.png create mode 100644 gui/partitionlist.cpp diff --git a/crypto/ics/cryptfs.c b/crypto/ics/cryptfs.c index 945864d6..d994449c 100644 --- a/crypto/ics/cryptfs.c +++ b/crypto/ics/cryptfs.c @@ -211,7 +211,7 @@ static int get_crypt_ftr_and_key(char *real_blk_name, struct crypt_mnt_ftr *cryp /* the footer size is bigger than we expected. * Skip to it's stated end so we can read the key. */ - if (lseek(fd, crypt_ftr->ftr_size - sizeof(struct crypt_mnt_ftr), SEEK_CUR) == -1) { + if (lseek64(fd, crypt_ftr->ftr_size - sizeof(struct crypt_mnt_ftr), SEEK_CUR) == -1) { printf("Cannot seek to start of key\n"); goto errout; } diff --git a/crypto/jb/cryptfs.c b/crypto/jb/cryptfs.c index 456d49f0..be6c476b 100644 --- a/crypto/jb/cryptfs.c +++ b/crypto/jb/cryptfs.c @@ -317,7 +317,7 @@ static int get_crypt_ftr_and_key(char *real_blk_name, struct crypt_mnt_ftr *cryp /* the footer size is bigger than we expected. * Skip to it's stated end so we can read the key. */ - if (lseek(fd, crypt_ftr->ftr_size - sizeof(struct crypt_mnt_ftr), SEEK_CUR) == -1) { + if (lseek64(fd, crypt_ftr->ftr_size - sizeof(struct crypt_mnt_ftr), SEEK_CUR) == -1) { SLOGE("Cannot seek to start of key\n"); goto errout; } diff --git a/data.cpp b/data.cpp index 02bdba36..c33fa89d 100644 --- a/data.cpp +++ b/data.cpp @@ -226,7 +226,12 @@ int DataManager::LoadValues(const string filename) // Read in the file, if possible FILE* in = fopen(filename.c_str(), "rb"); - if (!in) return 0; + if (!in) { + LOGI("Settings file '%s' not found.\n", filename.c_str()); + return 0; + } else { + LOGI("Loading settings from '%s'.\n", filename.c_str()); + } int file_version; if (fread(&file_version, 1, sizeof(int), in) != sizeof(int)) goto error; @@ -259,24 +264,19 @@ int DataManager::LoadValues(const string filename) } else mValues.insert(TNameValuePair(Name, TStrIntPair(Value, 1))); + if (Name == "tw_screen_timeout_secs") + blankTimer.setTime(atoi(Value.c_str())); } - fclose(in); - - str = GetCurrentStoragePath(); - str += "/TWRP/BACKUPS/"; - str += dev_id; - SetValue(TW_BACKUPS_FOLDER_VAR, str, 0); - - return 0; - error: - // File version mismatch. Use defaults. fclose(in); - str = GetCurrentStoragePath(); - str += "/TWRP/BACKUPS/"; - str += dev_id; - SetValue(TW_BACKUPS_FOLDER_VAR, str, 0); - return -1; + string current = GetCurrentStoragePath(); + string settings = GetSettingsStoragePath(); + if (current != settings && !PartitionManager.Mount_By_Path(current, false)) { + SetValue("tw_storage_path", settings); + } else { + SetBackupFolder(); + } + return 0; } int DataManager::Flush() @@ -433,10 +433,10 @@ int DataManager::SetValue(const string varName, string value, int persist /* = 0 SaveValues(); if (varName == "tw_screen_timeout_secs") { blankTimer.setTime(atoi(value.c_str())); + } else if (varName == "tw_storage_path") { + SetBackupFolder(); } - else { - gui_notifyVarChange(varName.c_str(), value.c_str()); - } + gui_notifyVarChange(varName.c_str(), value.c_str()); return 0; } @@ -458,13 +458,8 @@ int DataManager::SetValue(const string varName, int value, int persist /* = 0 */ else str = GetStrValue(TW_EXTERNAL_PATH); - string dev_id; - - GetValue("device_id", dev_id); - str += "/TWRP/BACKUPS/"; - str += dev_id; - - SetValue(TW_BACKUPS_FOLDER_VAR, str); + SetValue("tw_storage_path", str); + SetBackupFolder(); } return SetValue(varName, valStr.str(), persist);; } @@ -501,13 +496,38 @@ void DataManager::update_tz_environment_variables(void) { void DataManager::SetBackupFolder() { string str = GetCurrentStoragePath(); + TWPartition* partition = PartitionManager.Find_Partition_By_Path(str); str += "/TWRP/BACKUPS/"; string dev_id; GetValue("device_id", dev_id); str += dev_id; + LOGI("Backup folder set to '%s'\n", str.c_str()); SetValue(TW_BACKUPS_FOLDER_VAR, str, 0); + if (partition != NULL) { + SetValue("tw_storage_display_name", partition->Storage_Name); + char free_space[255]; + sprintf(free_space, "%llu", partition->Free / 1024 / 1024); + SetValue("tw_storage_free_size", free_space); + string zip_path, zip_root, storage_path; + GetValue(TW_ZIP_LOCATION_VAR, zip_path); + if (partition->Has_Data_Media) + storage_path = partition->Symlink_Mount_Point; + else + storage_path = partition->Storage_Path; + if (zip_path.size() < storage_path.size()) { + SetValue(TW_ZIP_LOCATION_VAR, storage_path); + } else { + zip_root= zip_path; + zip_root.resize(storage_path.size() + 1); + if (zip_root != storage_path) + SetValue(TW_ZIP_LOCATION_VAR, storage_path); + } + } else { + if (PartitionManager.Fstab_Processed() != 0) + LOGE("Storage partition '%s' not found\n", str.c_str()); + } } void DataManager::SetDefaultValues() @@ -522,6 +542,7 @@ void DataManager::SetDefaultValues() mConstValues.insert(make_pair("false", "0")); mConstValues.insert(make_pair(TW_VERSION_VAR, TW_VERSION_STR)); + mValues.insert(make_pair("tw_storage_path", make_pair("/", 1))); #ifdef TW_FORCE_CPUINFO_FOR_DEVICE_ID printf("TW_FORCE_CPUINFO_FOR_DEVICE_ID := true\n"); @@ -788,7 +809,12 @@ void DataManager::SetDefaultValues() mConstValues.insert(make_pair(TW_SDEXT_DISABLE_EXT4, "0")); #endif - mConstValues.insert(make_pair(TW_MIN_SYSTEM_VAR, TW_MIN_SYSTEM_SIZE)); +#ifdef TW_HAS_NO_BOOT_PARTITION + mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;", 0))); +#else + mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;/boot;", 0))); +#endif + mConstValues.insert(make_pair(TW_MIN_SYSTEM_VAR, TW_MIN_SYSTEM_SIZE)); mValues.insert(make_pair(TW_BACKUP_NAME, make_pair("(Current Date)", 0))); mValues.insert(make_pair(TW_BACKUP_SYSTEM_VAR, make_pair("1", 1))); mValues.insert(make_pair(TW_BACKUP_DATA_VAR, make_pair("1", 1))); @@ -882,7 +908,7 @@ void DataManager::SetDefaultValues() mConstValues.insert(make_pair("tw_has_brightnesss_file", "0")); } #endif - mValues.insert(make_pair(TW_MILITARY_TIME, make_pair("0", 0))); + mValues.insert(make_pair(TW_MILITARY_TIME, make_pair("0", 1))); } // Magic Values @@ -1018,7 +1044,7 @@ void DataManager::ReadSettingsFile(void) { usleep(500000); if (!PartitionManager.Mount_Settings_Storage(false)) - LOGE("Unable to mount %s when trying to read settings file.\n", DataManager_GetSettingsStorageMount()); + LOGE("Unable to mount %s when trying to read settings file.\n", settings_file); } mkdir(mkdir_path, 0777); @@ -1063,86 +1089,22 @@ void DataManager::ReadSettingsFile(void) string DataManager::GetCurrentStoragePath(void) { - if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) { - if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0) - return GetStrValue(TW_INTERNAL_PATH); - else - return GetStrValue(TW_EXTERNAL_PATH); - } else if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetStrValue(TW_INTERNAL_PATH); - else - return GetStrValue(TW_EXTERNAL_PATH); + return GetStrValue("tw_storage_path"); } string& DataManager::CGetCurrentStoragePath() { - if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) { - if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0) - return GetValueRef(TW_INTERNAL_PATH); - else - return GetValueRef(TW_EXTERNAL_PATH); - } else if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetValueRef(TW_INTERNAL_PATH); - else - return GetValueRef(TW_EXTERNAL_PATH); -} - -string DataManager::GetCurrentStorageMount(void) -{ - if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) { - if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0) - return GetStrValue(TW_INTERNAL_MOUNT); - else - return GetStrValue(TW_EXTERNAL_MOUNT); - } else if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetStrValue(TW_INTERNAL_MOUNT); - else - return GetStrValue(TW_EXTERNAL_MOUNT); -} - -string& DataManager::CGetCurrentStorageMount() -{ - if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) { - if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0) - return GetValueRef(TW_INTERNAL_MOUNT); - else - return GetValueRef(TW_EXTERNAL_MOUNT); - } else if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetValueRef(TW_INTERNAL_MOUNT); - else - return GetValueRef(TW_EXTERNAL_MOUNT); + return GetValueRef("tw_storage_path"); } string DataManager::GetSettingsStoragePath(void) { - if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetStrValue(TW_INTERNAL_PATH); - else - return GetStrValue(TW_EXTERNAL_PATH); + return GetStrValue("tw_settings_path"); } string& DataManager::CGetSettingsStoragePath() { - if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetValueRef(TW_INTERNAL_PATH); - else - return GetValueRef(TW_EXTERNAL_PATH); -} - -string DataManager::GetSettingsStorageMount(void) -{ - if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetStrValue(TW_INTERNAL_MOUNT); - else - return GetStrValue(TW_EXTERNAL_MOUNT); -} - -string& DataManager::CGetSettingsStorageMount() -{ - if (GetIntValue(TW_HAS_INTERNAL) == 1) - return GetValueRef(TW_INTERNAL_MOUNT); - else - return GetValueRef(TW_EXTERNAL_MOUNT); + return GetValueRef("tw_settings_path"); } extern "C" int DataManager_ResetDefaults() @@ -1194,18 +1156,6 @@ extern "C" const char* DataManager_GetSettingsStoragePath(void) return str.c_str(); } -extern "C" const char* DataManager_GetCurrentStorageMount(void) -{ - string& str = DataManager::CGetCurrentStorageMount(); - return str.c_str(); -} - -extern "C" const char* DataManager_GetSettingsStorageMount(void) -{ - string& str = DataManager::CGetSettingsStorageMount(); - return str.c_str(); -} - extern "C" int DataManager_GetIntValue(const char* varName) { return DataManager::GetIntValue(varName); diff --git a/data.h b/data.h index 17e1a4da..3137f8fa 100644 --- a/data.h +++ b/data.h @@ -23,9 +23,7 @@ int DataManager_LoadValues(const char* filename); int DataManager_Flush(); const char* DataManager_GetStrValue(const char* varName); const char* DataManager_GetCurrentStoragePath(); -const char* DataManager_GetCurrentStorageMount(); const char* DataManager_GetSettingsStoragePath(); -const char* DataManager_GetSettingsStorageMount(); int DataManager_GetIntValue(const char* varName); int DataManager_SetStrValue(const char* varName, char* value); diff --git a/data.hpp b/data.hpp index 55966a1c..b540675c 100644 --- a/data.hpp +++ b/data.hpp @@ -57,12 +57,8 @@ public: static string GetCurrentStoragePath(void); static string& CGetCurrentStoragePath(); - static string GetCurrentStorageMount(void); - static string& CGetCurrentStorageMount(); static string GetSettingsStoragePath(void); static string& CGetSettingsStoragePath(); - static string GetSettingsStorageMount(void); - static string& CGetSettingsStorageMount(); protected: typedef pair TStrIntPair; diff --git a/gui/Android.mk b/gui/Android.mk index de146044..b3e9b092 100644 --- a/gui/Android.mk +++ b/gui/Android.mk @@ -21,6 +21,7 @@ LOCAL_SRC_FILES := \ keyboard.cpp \ input.cpp \ blanktimer.cpp \ + partitionlist.cpp \ ../minuitwrp/graphics.c ifneq ($(TWRP_CUSTOM_KEYBOARD),) diff --git a/gui/action.cpp b/gui/action.cpp index ca968d08..34563241 100644 --- a/gui/action.cpp +++ b/gui/action.cpp @@ -1,4 +1,20 @@ -// image.cpp - GUIImage object +/* + Copyright 2013 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ #include #include @@ -745,6 +761,51 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */) ret_val = PartitionManager.Wipe_By_Path(External_Path); } else if (arg == "ANDROIDSECURE") { ret_val = PartitionManager.Wipe_Android_Secure(); + } else if (arg == "LIST") { + string Wipe_List, wipe_path; + bool skip = false; + ret_val = true; + TWPartition* wipe_part = NULL; + + DataManager::GetValue("tw_wipe_list", Wipe_List); + LOGI("wipe list '%s'\n", Wipe_List.c_str()); + if (!Wipe_List.empty()) { + size_t start_pos = 0, end_pos = Wipe_List.find(";", start_pos); + while (end_pos != string::npos && start_pos < Wipe_List.size()) { + wipe_path = Wipe_List.substr(start_pos, end_pos - start_pos); + LOGI("wipe_path '%s'\n", wipe_path.c_str()); + if (wipe_path == "/and-sec") { + if (!PartitionManager.Wipe_Android_Secure()) { + LOGE("Unable to wipe android secure\n"); + ret_val = false; + break; + } else { + skip = true; + } + } else if (wipe_path == "DALVIK") { + if (!PartitionManager.Wipe_Dalvik_Cache()) { + LOGE("Failed to wipe dalvik\n"); + ret_val = false; + break; + } else { + skip = true; + } + } + if (!skip) { + if (!PartitionManager.Wipe_By_Path(wipe_path)) { + LOGE("Unable to wipe '%s'\n", wipe_path.c_str()); + ret_val = false; + break; + } else if (wipe_path == DataManager::GetSettingsStoragePath()) { + arg = wipe_path; + } + } else { + skip = false; + } + start_pos = end_pos + 1; + end_pos = Wipe_List.find(";", start_pos); + } + } } else ret_val = PartitionManager.Wipe_By_Path(arg); diff --git a/gui/blanktimer.cpp b/gui/blanktimer.cpp index 7085557e..17cc0b3d 100644 --- a/gui/blanktimer.cpp +++ b/gui/blanktimer.cpp @@ -109,7 +109,17 @@ int blanktimer::getBrightness(void) { string brightness_path = EXPAND(TW_BRIGHTNESS_PATH); if ((TWFunc::read_file(brightness_path, results)) != 0) return -1; - return atoi(results.c_str()); + int result = atoi(results.c_str()); + if (result == 0) { + int tw_brightness; + DataManager::GetValue("tw_brightness", tw_brightness); + if (tw_brightness) { + result = tw_brightness; + } else { + result = 255; + } + } + return result; } diff --git a/gui/button.cpp b/gui/button.cpp index a4c5ecb7..5ba8182a 100644 --- a/gui/button.cpp +++ b/gui/button.cpp @@ -1,4 +1,20 @@ -// button.cpp - GUIButton object +/* + Copyright 2012 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ #include #include @@ -39,6 +55,7 @@ GUIButton::GUIButton(xml_node<>* node) mRendered = false; hasHighlightColor = false; renderHighlight = false; + hasFill = false; if (!node) return; @@ -49,7 +66,6 @@ GUIButton::GUIButton(xml_node<>* node) if (mButtonImg->Render() < 0) { - LOGE("Unable to locate button image\n"); delete mButtonImg; mButtonImg = NULL; } @@ -58,6 +74,21 @@ GUIButton::GUIButton(xml_node<>* node) delete mButtonLabel; mButtonLabel = NULL; } + // Load fill if it exists + memset(&mFillColor, 0, sizeof(COLOR)); + child = node->first_node("fill"); + if (child) + { + attr = child->first_attribute("color"); + if (attr) { + hasFill = true; + std::string color = attr->value(); + ConvertStrToColor(color, &mFillColor); + } + } + if (!hasFill && mButtonImg == NULL) { + LOGE("No image resource or fill specified for button.\n"); + } // The icon is a special case child = node->first_node("icon"); @@ -80,8 +111,12 @@ GUIButton::GUIButton(xml_node<>* node) } int x, y, w, h; - if (mButtonImg) mButtonImg->GetRenderPos(x, y, w, h); - SetRenderPos(x, y, w, h); + if (mButtonImg) { + mButtonImg->GetRenderPos(x, y, w, h); + } else if (hasFill) { + LoadPlacement(node->first_node("placement"), &x, &y, &w, &h); + } + SetRenderPos(x, y, w, h); return; } @@ -105,10 +140,32 @@ int GUIButton::Render(void) if (mButtonImg) ret = mButtonImg->Render(); if (ret < 0) return ret; + if (hasFill) { + gr_color(mFillColor.red, mFillColor.green, mFillColor.blue, mFillColor.alpha); + gr_fill(mRenderX, mRenderY, mRenderW, mRenderH); + } if (mButtonIcon && mButtonIcon->GetResource()) gr_blit(mButtonIcon->GetResource(), 0, 0, mIconW, mIconH, mIconX, mIconY); - if (mButtonLabel) ret = mButtonLabel->Render(); - if (ret < 0) return ret; + if (mButtonLabel) { + int w, h; + mButtonLabel->GetCurrentBounds(w, h); + if (w != mTextW) { + mTextW = w; + // As a special case, we'll allow large text which automatically moves it to the right. + if (mTextW > mRenderW) + { + mTextX = mRenderW + mRenderX + 5; + mRenderW += mTextW + 5; + } + else + { + mTextX = mRenderX + ((mRenderW - mTextW) / 2); + } + mButtonLabel->SetRenderPos(mTextX, mTextY); + } + ret = mButtonLabel->Render(); + if (ret < 0) return ret; + } if (renderHighlight && hasHighlightColor) { gr_color(mHighlightColor.red, mHighlightColor.green, mHighlightColor.blue, mHighlightColor.alpha); gr_fill(mRenderX, mRenderY, mRenderW, mRenderH); @@ -129,9 +186,11 @@ int GUIButton::Update(void) if (ret == 0) { - if (mButtonLabel) ret2 = mButtonLabel->Update(); - if (ret2 < 0) return ret2; - if (ret2 > ret) ret = ret2; + if (mButtonLabel) { + ret2 = mButtonLabel->Update(); + if (ret2 < 0) return ret2; + if (ret2 > ret) ret = ret2; + } } else if (ret == 1) { diff --git a/gui/devices/1024x600/res/images/exclamation200.png b/gui/devices/1024x600/res/images/exclamation200.png deleted file mode 100644 index 96258a1c3b233f723ed05e0d285142c73ba26ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5260 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 diff --git a/gui/devices/1024x600/res/ui.xml b/gui/devices/1024x600/res/ui.xml index 16969d9b..1615ee9c 100755 --- a/gui/devices/1024x600/res/ui.xml +++ b/gui/devices/1024x600/res/ui.xml @@ -41,7 +41,6 @@ - @@ -153,6 +152,8 @@ + + @@ -178,8 +179,24 @@ - - + + + + + + + + + + + + + + + + + + @@ -505,51 +522,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + @@ -854,15 +835,6 @@ - - - - - - - - - @@ -1261,6 +1233,38 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + @@ -1270,211 +1274,51 @@ Mount Menu + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + + + + Decrypt Data + + decrypt + + - + Mount USB Storage usb_mount - - - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - Mount SDCard - - EXTERNAL - - - - - - - - - - Unmount SDCard - - EXTERNAL - - - - - - - - - - - Mount Internal Storage - - INTERNAL - - - - - - - - - - - Unmount Internal Storage - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + @@ -1539,191 +1383,83 @@ - Wipe Menu + Factory Reset: Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is the only wipe that you need. - + - Cache + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - System - - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all media - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + + Press back button to cancel. + + + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - - - tw_back=wipe - tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + Swipe to Factory Reset @@ -1739,6 +1475,128 @@ + + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, backups, pictures, + + + + + + videos, media, and removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1748,10 +1606,18 @@ Back Up Device - - - - Free Space: %tw_storage_free_size% MB + + + +
+ + Select Partitions to Back Up: + + + + + +
@@ -1760,95 +1626,41 @@ Backup Name: %tw_backup_name% - - - - System (%tw_backup_system_size% MB) - - + + + + + Refresh Sizes + + + + + + + + + Set Backup Name + + + tw_fileexists=0 + backupname1 + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - + Enable Compression (Requires more time) @@ -1856,61 +1668,13 @@ - + Skip MD5 generation on backups - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal - - @@ -1926,27 +1690,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - main @@ -2070,51 +1813,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + @@ -2144,19 +1851,6 @@ - - - - - - - - - Decrypt Data - - decrypt - - main @@ -2185,89 +1879,22 @@ Package Date: %tw_restore_file_date% - - - - System - - - + + + +
+ + Select Partitions to Restore: + + + + + +
- - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - + Enable MD5 checking of backup files @@ -2289,7 +1916,7 @@ - + Delete Backup diff --git a/gui/devices/1024x768/res/images/exclamation200.png b/gui/devices/1024x768/res/images/exclamation200.png deleted file mode 100644 index 96258a1c3b233f723ed05e0d285142c73ba26ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5260 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 diff --git a/gui/devices/1024x768/res/ui.xml b/gui/devices/1024x768/res/ui.xml index 88365e62..d1605622 100644 --- a/gui/devices/1024x768/res/ui.xml +++ b/gui/devices/1024x768/res/ui.xml @@ -41,7 +41,6 @@ - @@ -180,8 +179,24 @@ - - + + + + + + + + + + + + + + + + + + @@ -507,51 +522,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + @@ -856,15 +835,6 @@ - - - - - - - - - @@ -1263,6 +1233,38 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + @@ -1272,211 +1274,51 @@ Mount Menu + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + + + + Decrypt Data + + decrypt + + - + Mount USB Storage usb_mount - - - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - Mount SDCard - - EXTERNAL - - - - - - - - - - Unmount SDCard - - EXTERNAL - - - - - - - - - - - Mount Internal Storage - - INTERNAL - - - - - - - - - - - Unmount Internal Storage - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + @@ -1541,191 +1383,83 @@ - Wipe Menu + Factory Reset: Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is the only wipe that you need. - + - Cache + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - System - - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all media - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + + Press back button to cancel. + + + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - - - tw_back=wipe - tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + Swipe to Factory Reset @@ -1741,6 +1475,128 @@ + + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, backups, pictures, + + + + + + videos, media, and removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1750,10 +1606,18 @@ Back Up Device - - - - Free Space: %tw_storage_free_size% MB + + + +
+ + Select Partitions to Back Up: + + + + + +
@@ -1762,95 +1626,41 @@ Backup Name: %tw_backup_name% - - - - System (%tw_backup_system_size% MB) - - + + + + + Refresh Sizes + + + + + + + + + Set Backup Name + + + tw_fileexists=0 + backupname1 + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - + Enable Compression (Requires more time) @@ -1858,61 +1668,13 @@ - + Skip MD5 generation on backups - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal - - @@ -1928,27 +1690,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - main @@ -2072,51 +1813,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + @@ -2146,19 +1851,6 @@ - - - - - - - - - Decrypt Data - - decrypt - - main @@ -2187,89 +1879,22 @@ Package Date: %tw_restore_file_date% - - - - System - - - + + + +
+ + Select Partitions to Restore: + + + + + +
- - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - + Enable MD5 checking of backup files @@ -2291,7 +1916,7 @@ - + Delete Backup diff --git a/gui/devices/1080x1920/res/fonts/Roboto-Condensed-40.dat b/gui/devices/1080x1920/res/fonts/Roboto-Condensed-40.dat new file mode 100644 index 0000000000000000000000000000000000000000..ff23add82e17747304da3a2a8984c9b4fddb79ee GIT binary patch literal 12724 zcmeI2PpBkGUdMl7%yx{>R*DxJ$*nxN2;O=`q=w0PrGl5miw9x7NPBQkg4HfMIds_- z&j&sagN+{jGb0{EJS&XQxY0ChAH-?)w6`YOC-gzFb7*jDoZ_XQZ)DYb^?KgS&WwzI zJ9xjW%!tT{-|zeT8`=Fg!R#k&Y*+cY2K_knGtk$d--PZ!e+>N<^taI8L;napg`6|{ z0cZ;SB=lA22J~CdThO0F??UfE{{;OzbmjZZehB(8sD*w3`c>%npg)7&g}x2_GvvJ4 z4@0j&KM(y9^y|XxA@Hn4CXNLp*=@@4o9`pf5}`TwN}= zg~8k0whUH`e_D>Gwx?b#)f-j372)$#9p{ZT8SBp9U^CNB<##vl;(8;eWz6l}?=-3L$pSb284k?8^M@3blJ^p|+-%DY;YgX<`ej&tGb7 zu&URDRbrEhr%f0(Zm_U9pJf`AT0(R~ws~(uZ}Y*1Q(N_xeFDnP#{(?0i5_4(^$%-n zHrAXPtIdbLweG;CQv%p?Qt^qELk70^l<*(#6IXfd^NUQn$I45z6Fc!gFZY==hJMtLEda0qd2vB z6VWvC!}#qv%Iaa7EgNxE^LZ&JernPOk5pN|j6%;gYJAUD38@u-UaO^D>6MJIe zD#~;Bjx8J^a*c@i+s%m{sz*`GNeCs3H)vFy~qt`3K5V4z?20V;IAvD-&m)5Mz~A5lQ&9kUudYx_zW zJ3$ft)fNGp&TK!qdfl+v3CwpWWQ!|M!-`K#KyG`4U=p_U5+3%N*yr6<3_xV9j|v`M z4&C`E?wKHiV8%SIh}C5dt_%y(EUWj3%3qUue;>sw*L2u;4~wNGcM@?j_aJ&$0@Ah& zl%&02Wq6Aggtgr$Gxpdkx1cyK<>MWO=TnY7^3`iCbQo@|KIQ>&i3r`)Y_hwFCj#2@8u>F<$J zVh8_fwR?-GjFI@`YZmUnc!$DQW5CdaEOC$zCOUgV+TsCQVJ}v}CSKMoT34iOGoC7Y z$UXwB99s8DulwWZ(SC07mosm&FsqcLCNGqg)4Qm`y0bUgQ%Y2JZ`}iiu`pyMllJ7s zYQw|uZna9qIzVmsX6C6nRUt5}tFAir12Rtu!;7{Ox78qU`|E_wL58bK+JF%)7|{` z!?-%I^*Wqn4J7U&@b}XS!Mm1OtBn|26tUn-0gbe{ddn~!nI$nj1M=9g&Y4(OM6y?N z0J4n%79|C%0LFm_T;{g^a5%C_YYSD#;{1|?~S!&FT>>K%+i z!3*Iq3f`iT(j#`Jl5f_Ov@@o&5P$Mh?)<1Ey#)@WD|v=i%|Jbe8DB}TV>ayz-%Pc!^c>P}l?Nyj+>4v?lv3%Fy& zUx63UmUc@miLU&B5-U)U(oh2?3~Lhtf)Itp>K$83&jl$t$AK*tvzfb>DL>g$i8`|k z2dT9uQ7CCw8=>6gCvkBzD`^u+nYLn`k~n}M99z|WBiU`!Un!Dgdt*bkDO@UF)#SBN z(h#2k;Hc!oOumwJx3E)YOl$YxCdCoXjgKWtdpEFzkC-pKG|^sJyQfDH#-yu;BCRx7 zsf9OCG|DJ|E5lO_Ri@0#tU#API=rWfa#oDLR+z>&tzRYXL9MczJt+GJ6Lj!UYQ`FH zUFvt$vn6S(`nYwUAdZb^x)j`Hd!2pcDy_xHZ*isqCQl`}ih%1+*jZ*xhDTj2SMAyhHe9$=ebp&bx zVP0_<^`nMeo@b0;lpAz)YC>F$P_c&){N|&Dt&Jc_w!pDc9+LPfie=ktC$awkvyAM9 zeM4$9DGg~+Hmh*Ovxr3k@+F?+gDWBco7laa7aX1mNf^go(k4G`llDQ;{t4E9D}g-L zAhVO{P*lm-bn3XfQ-Bhe zvJkK%JEd`v6#NeWFpfzLW1}=-z$$RX5uU}#$z1|RMHa+HVeIAIQSK(9wRUxJqpOH- zO4`ya7h0*rk#EXwi)P3&ZXi>}MN_mD#*#`{yS|v!0OKR>%`oLRpfL%nSJfQ*0ABF> z>ismU#-zDEi9w)ReR@7fzpqT;-Tj6$a#*W&6YnqwzNM`?xHF(U1;9p>;UH89S~d`?LiH?gR!T=+TF z#1-U@4pXkTXA2TCkqUT~M9N8<*Jpf8V5NTnlX*l&MwPS^rL6o2bQH;&bZQNVs<>dI z~EjouH3S3nek;ba@$_d?hyz|xmoO%c5Q*T*p-@Uab1$O zdbeR*>_`m_9O%7C0ah`0405GRQS#$|TGW#(vd98*Toho>PujfBrxpjlA@>tUVy_~m z#hH?CmD1>_*Vm$L0-!DhLoRsl6flPEzLvBF%_1rI6F0VF#p(+Lx)aC$YRwTQ6st_w zlmWo#*xY?;&b2La>Zm^0YexSrXAnwDu<2#oz_0WmFJVg(BaPLRd}xcjfd4kw66f=A z39vrGIQLw5eIgO9o8v73cw`Mal`W{8%1N6jOx6jRWOImd6;t8;tpcoTB+%ig%)O-D zllpg+*-q|KTm+=-ZPP?fuq$|%awQu~Cj!+qi53D}-8Qyy^cCzeLB`3GvT|!1-XmO) zLDai+9@dF3Oa=nJK^z|+$)fot#%py*jNnLA$|Y$Nffv#*ajEr@g1J}&VE9-&KAy>s zh+ql3BH2_@b+IQfWCt3jkLrlhhpm13X`G{=5L+EM#*nUHrh^Itihkm_K`k4K4Yy`J z&?&OXwajiNeXD)BUX&tSLY5}S?TP9nIZp0;$yEsDd+=OkK;X;isUk!kDdT0?{PD9@GX0drIt(`N*h+=|TACw|S8$#{2WwNqfc)L$q1fy$>o6H|k=kj5J!fu6Gvw$p{KhBe5(k_^2W&N9j zUxyFDk0DzhP>Z3sjKP()WIzP8u!cVbx}(qwH)_&39NIieS_*<5c8m1y+yH(QOEueq| zPNT_&Oxw2U>)Q(Sw`Xv{cg#n!Y}|oZGlukzlOW##G{B51HGBhyF*aAFKj7FZ9`@Rm z^Lt9x@uBE^1m}G8xw|u#=*NveM=JsGW8dSmP3~k9n@gq?24$0b4aF1--s>v2#kN7` z+&a~L{cM^`+l7kGFM@M6>Fj17mBPi@$fv#8`r75w5uz0La{7<7k+*Fe+KoyNmoY8o zTp|$cChFJ4v!`mOwXM$21}?kt=kMA6{bh4MPoIR4Tq^lL(niJQi~X1e_WzMqkf0{I z2(tdi>$c6dfVi~l`GntkZ|vfVdjtQ8TS`BC`SLb;$G(>_PnLR7qvOj(hXjI;TkH&w zJtQvQR=sI&=+juo-t6dTIN?gVHVS?lqalb4X~k_$^W5lA-bC5c7ERS+A~t z>9fA_J?A%Rtb8w1Ff!xwI{AT-yD;JE=zgD_fJbTls#ux2=Mi?EJYl`onXb7ao7-!qba~ I|1${u2O!J3Hvj+t literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/back-icon.png b/gui/devices/1080x1920/res/images/back-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..85c6a5d68157c364c976f19f891ab355417c0276 GIT binary patch literal 2627 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/checkbox_checked.png b/gui/devices/1080x1920/res/images/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..65d0b34daa4a58cbeca0c49fd81c1b129ff574e0 GIT binary patch literal 1807 zcmV+q2k`ibP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*f2 z5Dg{x{9yn900xgqL_t(&-tC*sYa3S=ho3VanvrCrR*tJSB(0moDos*~A++R$CLyg0 z%_hkr6#51I*ZM-BtKv-ybt$d02$T|2oVv9Vl`QfSOpJ}yNE%5qbGjJGj!9xmGBz#6dh)F*i5&Tx*dXZWJJ+sy3h^vhM||s)$Gz=m0u1GxNkf z)-ygUKmj-jOaXza>V6h0(TJG99bgHl13IYS3~*AF%ZBitOVBYPQml&D4u<0*mIY$; zucV<0G(>%$uaIPWAF zRaH~a0AWQP{--WkLL{*8$`$IBv#i!?u=XI`$$F&Bp~_jLT%i%zs0uAL00`T<5_%0Z3=qS_DwHUmxwyHIHSaE>em7aI zmQC)&TO9i6bBbp!Viii;p22YQc(o-qR;q+=zl4lA;D^LQ+HhQghik0PeNDY`mcqo# z7#RmKOf(D$nt$WGGD+$D6@o?`AX&Uc$ennL7tdX$bpFaVjKwek@at=A{PF`@y-85{ z5@Y-@_|14oi)EqR4vp#ptF;=ggiKueV%rao4DVeqHrzaZeT|3Te#Po{*D-@S+Wj=D z4Ty;}VxX#My9H|xSf8K8%oix0xrp=1|)M zK(x?1kKr0!>c92G@g5Z8Uw>rv+y6#10b)B_i8gkYe##4IR2M)XXw;L(dkBoz=VxP0 zot=?>#;7;%E&?Qq_plf@?=Hs56IQGe&+jIScN~mkCdJ{99tGYhV7xb^_l);#)bI2# z&X7BCdgK`I8RlJ7$<{tOuP*zi)5l@u5{rl{HfZF)dnu z{m$A?-;CBs0F1U)?dGG79QEjH&ZnRtzysZhU@jxm@B(n&cLqc#SUKss^5 zZA8XkGDwfea7)}6Oa$ps8*VA!y~|OHL`N;%sB<9y#`Ne7w-|Ug{=9{D+ndk4hohD- zI%;vUaHO1?;WjMZjYkb6sP~Rq!uUw5?<005!nksliA$fQXSfZ4x2FdA>P^JXpuI!; zSV)I$4>LQ)p_z}7awT=cZD73L`GE1)Ud7Cg5w^YfNNcx^;pQm5`yq|MPTg=D6mR$F z6vfF&43^Pu6U2_2r6uZv@;j(X>W15(cx&LJVJA`(H)%ypV9|^9`mI3{?Pa~%5*xq# z!0LC`;r?^h2@v?KsAQOXi6ORgwlDjO?R zw0bjYGbp`~Zev=wW7vnoMOF!Cl}^sB*&;rHr?|xpd6I7(cuZnoFD8n@ce> zp~?*r?({SaEVu(Ki9o09dang{aliLU x_g57W5moI19T6GqnVQL70(Y)*K0-AbW|YuPggqW+?$aw!&@B8-b>r@^o-IJi-{#%>8Rg5__qA=CQ!IOY;^&`dOnjG236tD$ z&FgyUoA1@X_N||O`e%Ei*s+VT-$Si3tnZS3+(aMAUrGhL`oVAnh)w&!^JakvzIM=|Jz-Adf%N4hWB}UHb%OzJve&i-n3oa+Iw2u6MkHt`A__ktINH+ we;)_tJ$v1ndZ6YzTkc=sh8Z(v9G@58`s3^3yBoYYfDz5$>FVdQ&MBb@0LL-~Z2$lO literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/curtain.jpg b/gui/devices/1080x1920/res/images/curtain.jpg new file mode 100644 index 0000000000000000000000000000000000000000..269941d5e941fe74c7c5fa95779246466f47a317 GIT binary patch literal 107182 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 z z#4vMYn&hF7jcC>t{oCKn@EhZRX#ypUGR+`QrQ)ke0ow}RMs%OmT(ppK0>^4u{Tcny z+E!%3Rh3D(X=y?v(Dxoo$_$YhdRJS-F4`khw6C4DYNcwBy((%MbI#qS>HVH%Dc0sO z;(|=t_J2%ep7b+Q*3lAnedQAb*MYp***(6OmoCu~{t&6of6Kn_&)W<;((A~6yMz_C zsWQ#(mnqcsN6oyFZHh(+MYWk%YR^1z6RHD=OAgha7fBb7ROHKBw?%#}pA1%M=pFX~ zR^XcplFQpg#qpb~FV_fAOt?~J;0Hw9K4YK0{xZV2Dt7lZ3m?td-%k6Q=@qA4Er*x1 zGMX(grF2cAT}E?lK~89OxYUZ}T^G}IKbyG2at6zw^IDj88geStZmr%tNyLM0;j3>+ zfwk4qI2&+CHA^Tut*_kY?rTb{>6ykgMttwv%Q`={>}OMgmCfj`0iBAm6~j{|L6LsP ze=sAhy`56E>#=6cl&v;5$(?D7b?SYSzmLTQ@RS^BKYp5^J``(P8`r;G#NMq#m zeY%b;$3HTtB;Mw?u}}@Ki{1fUOQGhULxs8&&`YV<)N228Or0Ljw&>AF#VLn}j_1Xm zBJJ0;xhp2jPHW4)$q}xcfQ_#0&hek3O&vu$u>x{3Z zBcHVVs~p2)b4Ix$RGt;%I&nPPR@h#6@oJ38;uTAZAq-_VkDOlSk&+*Wd}B4qv?=>I z*vS^l#jpq{I?RC6()Y6LojY6U4lO933qhftA?Yv8bBUB`MM`T%U?O8fYjW(hl+x>zpM1!7VfJ=&&?I=*;rwUm0`_ z)&cp8+-s{+WO*{wUHHIA8{a^ct3G_C8whB@DJx;=^C@?oveDPgJyLBu_x@j!uGOkA^Afy$J|It z(bz4;b_M_1ur#AHPfA8R7@4=3X*lQ+0K3u%XGdnA|jsv1VQ&6sQY zO%|imV|q%l93Gng)0n7I+Hhe!Hq?A#9ed!leRhp_?sCCyCVLa|6fz#N%TYaS&Z%)v zHv1RmU&sN?zx4cO4$`Xc9g`5=9}XMuyk_2QJR(R^rLpnX{xaXq+MAyjl%~8Q6rl@4 z6w=9pFkCyI(_)r~Lkpa=e5X88z<>G(HzX{$^{69b)7_kdmY522(GIz}7KffLOF{wS zvkCa@)Rg$nr*j2ReoZDBSGmy!dSs;UGN)rg0n*P`+ z_wCP=@`NgTHy`SU!KSVzYs@cDh7$)rqH9{0O8Z{JJR}mf`Qzgp^`bpL`-q{xZkdtX zZ~5I1-Y=X?WJgbKiDMoC33RuY<3!pW$Kh#Gay>^8d4EgZmm1+hg<4t2jzb$3eH&XTFf-|~-mp?4B@7YLY$S1QSKu8brc%;0N zlD?g#U5RV!Rkfi%IY+^S~XS!$B!!%xJ=qf9=ohc zzc)#G#zMmWfhuzbwp`X+fd*xXeOfwn)$cmo{5VFvXms-Zn_k|)5A56kmG5$tv6laWs+ttCjLU91Qdib^E@b_oLA2QLUP>u0Y>`X$CY6~6#vXnwAY@=$dQ4kI##h*&w^Gk2m4w$4{nY!PXct66)P`y{6Y`5s!77- zwx6%R*9~oa+nt$f_y0wxuIjNxM6tH{N2iyDQNaq#jv=z$f3vYkd8@x))E!mk6{>u! zgYE;XmCP=TDhzR(fBniTcp$;tXz}9G?o}J`m6KgL!vCZlx z=1YYZf%({gnF8PMD6d~@wtxV6&A0Seg{gjFo{lPlE zI_tF`Gf-M94p~;uH@kKSWV~6R@fg8KlMT}Vwt|3_h}kNK_-PGs#wX*qaN|S zaiX?u|GPpdPNlb)sKo+^=mR^2s2}lnjGD36AZv%^v1i(2Y1C?m(@k1e%;GByzlz81 z6}9$%(5yMA|7b&z6UH~3{8rDy8KLVJTIf_!HHIDVQmj`~Wn&9JCbD|?8GD+j8nu8y zREpLp=G;=4X@t(LTeAy^r}a9s&3SVc|Ix4M62$Oq_N1TYoxE5{{H&FM|c^cqFEf* zE*)~RLf0p1(h1;%^zK@jkS(S(As@m-roXU#7cO)~ zn`@B+Vp%&rP8NOR7Bb$cEC&X*xrH~98z8;sXUp-lL?=EAEk3bGA-9&*Q%!lMEu*Gj z28O7q$bV)xn@)XkGs`&H?V@}cv*#YF2M*>{5qfn~YSoUi_(Pc)a@6Q7=c{wom~R zp8%mSD-Yae>6}_Rue_7*GHFe7>%ZExgGCE77AKUrj)_|m3I&HOGf2 z(n_VC8=dk@Or)XJUZy`#>qvYm(KKdR&jw4gn4a3>Go?D04^auqb#ohp_9wg_nN*Hi z6A~@f@hR(wtmb)iI@>GX_IgSNmu7h(C@br4I+x^|(9`7P*c2=wJjuW6=2G`hVJ$~M z*>AU3IB@@!SaMiQItl&&IaxMP_a`m&03 zN?WAQ7uSmEG}Fy@FM3eB-5_SZ%AKcBt1r3&5y@)o9@HO^%^ z$vP2xf>W5>CqA7I>?=B)kVd60Ep7#DOLkFKzKaC`Wp<5MmaeOFEEe=V{9S*%nFIWO zx7y|!hLJl-+~ADaJrTj{J=S(NlxZBOpm4C}VW%_Ho8H+ty(Z*CuZbQ-z!K&)uKe)= zzgSzx?)QQYtWCy34sPrMrT?g}8(GjCj=2!P)beejWHuB3hq8Ec((SNw-XG=xCKM!h z@bA|Jn{EZsZEZh&nxb=t5J&k3X&zc1Y**&Xa5&i4xs|az&4)TD2n_oHN<&_>R?Mu= zI!7E*%_XA)@{Dhw&KX-3%LrIrO~v9xhmDn)m|y%YGr=9u0@Rn;jP^TkLIS- zD>RmY!>a#{gH<{vIX>^mxS>x`n|KQE{Y#_G*@xC`Al8CzHWn7$8Pt00D4~_I5W1RZ z#p5u^S96PCRUJn2%%1bLIUgx@v;D#vl+fnC7ostY`thf3;Cq76$2tp5pMo)~hqMNck7`Br<9!;qMob4UhZ^dEbOCeo0WIrW*Uu853Y# z-kkU3+Pd^MaVA0(=3xE{1Cv0eeQAEtF9Jz2;J5Kn>)o7O5f3JH6K0Qs$t+j@b!uLA zS61dV*IqQQcWgTd&k0^`8$Hl}ns!a`o?D;dHYtc0mv81~h_USVOKYc8@okSZB3Z91 za(S4k8o&9@b-+1bVq%J1_?`?+JD0YmUs;`W$|@|va9CTWT}WjZm>4%pS|4=`KEF+m z^T*2gBxWZi0S{ZgP#dEd3-AE z^;EDF*?m@1!LJpzG&rM=TyrYpQz^55*cvG-5}cOCy8`|9>)NOO$Rd_H!i8-j-Dy3o z%N%$rKGWoNKeb}O0@s67=`@Ye2?G%FuGC^F^@$C zKT7!YHCcEvwXzA)8m;5+SQoi8)4|US54`%F+}mRm`P>;+x_tz+jpN5@5_=V9x8DCh zG`(e5RE_rqih&9!2na|^3SfHcw} zAt5F3-ueCSyOOFt5D53x z;t@-ipS}RDF{QNTeII3tFFi-au~%{To8>{*U#>m6aUFfJ0&POPrgK^z*I@}$6SZiS zv}3I-G?ppkZRO~G0jB@p{$k(OkDCRsbjaZg^XDVa6RjaEFpd&Cd~a%gW2O0clEN@A zKuyd&Wy#LgVWsQf+IOFY;SSe!R~^w}6vy5_Jr7K3C76}7P7fpZCGt!Z3RNsi!(((s zS{r#&^lKe6c#>wvoK9R^dY+m1w#N3WC&jgP3~14r7t1K{NY`7A#MdxqEj_rk+V?I% z4UY#6!}EnNQP(0@j7Esw;%L)?**Qu)UrDLLxEZzW6d%>)W6qT1U2FC><&RWpF;uAe ztpJ}g#VL+IiVPF=qp705t@bS|MxE8~pA!G%`_fI_0L95Z+_xmT_at>t-Dr-@h1?1i7aNA~qI&&NIGP1WSvWa*p{QoP zW#Sl;`XSHNAx%$PTa^omPl6yf(9G_~#QiErXmusQLA_V1prO?KL0qqpSKIut!4bns z9qTiTY5}kD?i0-SRj2Fe!vIEKSK#-AsU!YRwzVo1MkoNyM^jY=j8ya9wt8Mg&3ntn z6^|sAH_SA=Gpibv-P&#Fir`XEl|y}}N;#K#%Hb$o@OiG!F(>A5ZtoMb#i<7v z`yY{f`%GWT&l=1N!$819%uEr}BH}(GPO+m%C-v==99l8=LG* zQGc1os78#9PNX)kr;z&}`4U)bu8@H_pH9B+`>{IT-g~_H4_qXm#ghX?9T*3rEsI8JWy;MWRuuwDeu9EY8_bP6f{otJwg{^2DV4o>b6byOgZ3w*OmjBmmGurh z3I()b^d;p4m%b*ZMK|Y6 z4`{|e^5)4J5p(w5%?4BBxik^4mpAK+mVj_$XUfLPpmVgm>e3Q6Fsz}8kf_6N-=M4V zPqtL^w2t?&wRgIufiw+)?(#DpovMOo>(@6*&c}~ej)Nd}1bbW`N}1mft=W<16OP6Y zD~%t5sLnvKixO}w(qU4g>u+{|%v_hN$2wYMmv@L_$4Ah1?d8dj)IZF7sIrw7kS+am z%bs}^4FN`QH9i=o#&`f2={903EUTFBHy%W`%;JnMpEV%*8GdzJ;-1YGCCLguz;^|` z3}mqb{)zsZlb>`ccrMTlpWYh#5J&zMl<>0AC!c9lR|6XOkfvI2Fmy`|O2V$6``*+o zKD3fkwXDP|W?o`0`xc?e>L|Y4Pa!3%xI*=5k|hLa-5XuPT$j|xTDEO11v`*QS|FLi zRK*s?p(}Vdlii3ds1$klMx%&NIn^oul7a53lj8>+d(mpNTn0`v(zFTFSmc46I%Ux0 z8LxwBEKOUCp|?n*wM_5wv*IbyBuovNK$dD@4eggXo8m9Jf14Q|cE)3GHLL!PE=S3R z_o*3k-fA|Om<^!f`b$JUj)m|m=gbuu!i!-c+p*&)sp{l* zV#%tZzvyrmYE-XvijFpFIFLr-k{n!TtKqDz?K~pXrJ+#AJ27#&8TO%#n=zViZgEP0 zq;E||Qy`PIvL%G`ZkUNDq@#UIId#LogZ8MG<1oPQG$8s020v~8b~YWy!FB6M?Q^z-6+a-sA{D)UyUuJ_JT8pc97FVsT zaBDelDrwZd|B%w&FQW?f!9Z8g1Q!+a@<>iB@BV2!a`7zX-1*N+T*9e)5W$u}0c8M+ zrTU>zYbbRVC3KRW=fsXPQcc(q8aK05Pfb*tSBx?5qcZTdb58urtWh^(Sj5r)vBO%a zu7)*y`owR>?PP7BG$ffLuCn5F9pwyYN#1A5q^FiBd~d)5^`|ET)wYO2$P;X`*^L+qsMOluP}{sp0wVfSX<`cx9?0ywn0v+C z49C8zj`NGkF;oMcT-o1Ze9NX7UMXqMJQ}`R4Cl5E98^1`;}1|N2LKbv-Jf{90?L%& zL(;PLbay<@+O{=wG;0!ypPsZZt9{cS@5p8AsMIBS2dE4Am*T-%058n=?F}euq95m; zh7gNi3NzmKDx6*xl5B~nlcJe95j5PS%gtLue58G6WNhi@iL};4LJ0QypF9^?!=6w-#r-Gf+h2M?h4vWinbMMz{^OMnpfV4hIYLrX?lz1iYW_;whev zF5?>sI(@3kq{e4%U|rqDwbgo(9Q-t(GcQ40BR$>blu|~6m7QfE9pYqj7!ct0b6{5B zaf5$L7ytvM=7pB!dbt4dkc zm59yU=}FA9c$d%tyZP1O=q=quXq=7;jeadMj7>dJJLq7MCoI8FzeOy0jyp7`W_Ciq zV&6V_43!BweY|$z(JVXG={2F6@p17qh-15ByJ(@aIf1N&aqEw((Vn)u?-Rz7CnGQS z-gWIeG)h)_j?ryWu#H2mBl>y?#|00%DA5j_AkR>OWL{}N^AEki+V68Ar^d>Uc^h)G zxaw2N@g~1jxXh(~U?W&wb-gsUx|zA4gW*+We1<<~(jOsygjAcX=AJ}jqxj_?Bm#s# zj?5;{Z3ou-{4AhD%j=XdI8t*o#AeCGWO5G;n`-6ZKH60E1x06Jths{P)$9|dfEhfc zjr<7plP$ZzF%6@?wuHXYMd&MA`Qj2mx@A45C1+`n-h`#7aJODM%%0BTNtUpSckr0e z#@~r^;XA1S*-`jUTzW?iDa&vR`OdEy)5@rq(LWQ90pB5U+EnM()4q>vovw4l6N1ie z$IO`OupTSfxtQ*owh(yJddd0fSd`!zC=|Qxu{)Q(f2)u~68L0!b4cF(OeS5aAawC` z31R+V;vJOGUGCguwh7Gz>kQGL`R!d6tCncapWOAk7$V~EuVvnS+H}81ez9jn zEQ$tMm&w*1FzHWK3~P%)-okW+^MtQ!6>;t18G90S-{VB&z)R;(q^0LqLE(+>Ip@20 zhc0HvWX>@k{dp1U7ZcM_**}g<%Mr$Q?Kd!eg-hg?&?iIJ7HNRmj(kKjPRl7A$LaI% zJ0d5M?dc-PXZ`t(%rguIA3DD+tm?fw=+hP~d3D~xztfV{h>{mHQ(rMqkpSO+{CVP= zIt=M=l|R?{O%3;q#diN$a6~Wz`bYuy_-zOImo^O3-lgRggSskU2rT&!@i>YHUNSUD zL2mWRSSx*k7^f4$__R8$H16B&GrbA14@cMU`!cI44Q{%w!^GBfMlw_z1M8p}h+kf* zFJ{QfoS0yCS^fcb4bq#o20#3ZY?#e1?B+Vo7zJnM9w3edT{t40_g>wV6z6w54NefC zJ1#g3h?gczFu<;y=`9D#Mq+h88TbId8#9ZRH$?NmdB_dpLqWbT@pVR;u9iFK;ZJoA z=)0g#o>TKG7TnbJZB2iqO|r}7*I~&xMOpEydcTQ&!|d3)PdXcVn79BIPmu%7$=|Va zHs2G72CYov+W_+wf`bd)K|l6sDR#-)LaHl0JgU3}HkmDd4WD-z?W2Q9xt8{&l0B({ zehy*94y@QK55av#)E?_|T!+IaxO0I-dGzfUq{u|vQva&-$282YZSshFO%5TTH)v34 zy(A-hYai=FqM%{kTS=7-Z!?ha+VWeCt!MB99xi2*PUyl1yR=oazWAd&7Fkucp7$Bc zV`Fn;NMd#d@tq~hU+BiMHK`Sxj(FLK2V70T?({f}(zgqjP{O^ApAFj3uT6K7guNsFVpbi(nl0?by91esdF%#(b1SFY}A9 z*LjJu2PreGCO~sy4cBYoDCu44ju}o965LuS2vgm-PLbJ|bJ2)he)>S_tZWkST$O`Q2 z-H9*7e*a2U>p$ZEIV~Mbxe+W45o|yn-iNcm(zOuX=GcL?UsU` zw(GzXUX-#D{!4oly(hG%BH=7ed3 zCU6FzARK>7MT%LYQhJp@JXZkkuT@w7p*!aU?kmQi>N9h|Tfv&5TNQbJJypq(8I5k< zi=BVQ_Y|m<5mb-lA1kSBWUUtzohVrW`4J#^uQBt_rKjk0AVpx_2i(2;DtyzCg&pkg zI|?RGKlteFPAgX!w2=Nx%(gP5Zu~LGU)3Kx>zM z;?c$0zzk4&Icv_r=3Zu}R6O|yo=aZ0)(T`FbLIax9{E_B1WB^ZYTRTJ$NvX4t<=-f;7zi}faXoCl2<08^ z;r*)OFT|*X45ZXHAr~KXWX=S@Dl?1)_?4s@>BmbC9>Ig1?`=4~5gvQu=Sc!)AM|{= zns1;BDj7C>WUS#AHD2au_IQUELdY^nnGnJt4=hG7TJ!7FsDWqyghjL>PE!~IZxfP=uF2)6&PmtUec6V4F~}s#Wxy~ ze5^fM*C*5=QRqE>|X5V8r9Rv3wAYkzncMdYmVQ5BIPvMMaO-Zkf8> zz}oKc*%%iKtL@74lvX#m4aL#+ZuE{Uc(n5dgKF@!^<6~14PE}Oy80B^87a4@qH^J4 zB`(%tu-vB=_?LnYF|0PvhxBx~fw*5>r4Yxg6a%x#u>7r6AJ+^4?SxNX?;}Z2CZIe(* zau*e6m_#9TS0ON~w6w{0yk|rFa^jk&^w5wq#bTkqAZfi5d^=_wjQ<19Ww|bxLqh zoP|2%S?^baISYL%z>;_-Y@+Gr%gqEy0PQsgvSP}2)8TU(_x%C5ok~Udo^*N+L?F{_ z_=U=)v!@p%Q%VHRrdiOZeyZ=k5nuuzcavtZD`;CDcszCd`NXGHT zz-Ww9!HqK!l&^ADUyxUHG8!PoU;*+?KzoAJ(d3&d!D_Fnyu5{9+5s8ag75eFv7}{0 z1hSR+m$n5`;LEsw9;O(CkOk1TZ|R#E3;WdLScWOm9Z9b~x1I@(&fk5xeooi?qR@&4 zC(aTWeQ|$FKcgo79wh5w&RG+?mSxmbMk}YUovHDHs1hNx@~Yn{X%XK8J~x-#hb2r; zl#LpKDL`a~Ul+u-=z+}T39xR>C6bcQ=0g`TI^D>5k{^paM3ZwbObD|zG!w#&@GsRYW^c@VRy)NHC*aK>j! zgLd5DN)$98ZB>D1)?Z3xxV_$V)U0~S?8d52kI;qW57dVngLd31DCT!G*O&LpU(&a7 z36&8~srK%Y?n(F7sjBXa=U7hr8;5p~r`n>uax?8O8E2k%@`NNg+gv4~!&r``pZ1CR^#|W#i2Pr7qAz^FW!)7-5158rgA|8ya zNIyB7{^D2?Fuqdu>+J7j6l%?}pJmV2Ch@iNkbZx|ZFff< zKmUL(^Je}=YnS|)&~k(x8plE*es-ie3{d};22!pVj^TM;mDwyS0uO>mJq~&G`!AQ4 zp#g%@%?CQ@3itkv zxoUB4Skn;6c^LJ^W$H0b_6A2mb5!newzyVS6qsGjBRwgh)2iOHA@x?kTYdv{#mHsr zwee;?z;U3_Oo^v!Eoj@bZg%w;To<)Hw)4v`cy4Sp_lV{&ptPcH$h|Lwjn!+aAJ{hh z9}zq!1H5y{V3UAiMN(=(DY&iCn=1|3YOl_D;E%#HSo8~0n$~FDtkAus4`XZ16Tu}c zgwLe>Cyo-F>kty6#CTFS!Yn(WbhwSnB9>$EOzxEyo3{oIagymyp4;9$XjeB$J(d=v?2x%rt`zi~JD# z7r&;;6~UOd8r~&+)FJoV@~6&$$fOAZp#LAy3ny5yKl19!SwKQs;x=GwaNYlI{Ffi9 zPw4}@1n2iDT1EdCPa^y|zjA|LDaomArgJ2RWa5~^^3glL04N-y?vzZ^fKObvcs3H3;^RZ# zxU|OTi#T7~R8QBC{-NCP{rs|(nY3K`$x+}ly$Wqe^F9;{e%An3F@b4td2KDYj`k%d zr{qpmwK6RtC7lNhfx27uhR-rtwYT4J43F}i?-?pK6FvR_FTCgoCsJl~c7mWD7k#a$ zZ_M-_3uM-ip51iBz>Bkf`OSNsihvM&6FPh`9hI^lc@CpXFHkR*dsPmFN{u_85fTkv zBSX?2R`mD{kvKyj!^_ls&%YMYZ)~NUgOYAdB*>{C}n%30}J>aV^(pO~2JYoDXjY&N+s)N$(fVEk6r7fnH;VPV!9)bVBian(Nu|EBjX&A@4OHKnq4}`WD z+a^5Dy!N%XRgSGpxv#nECbE>nl=S(Btw`Hr~ zGZ`s;Nq`XdSTwsjd4Lc{guXFkw(+AiQkbsYs3)I4JD564 zYr}(QqPEj8J4b7ZTK7%BV@2pcEEzPw-dCdyuNq>d zTubKc%DXv^N4b8PrDsyU@w_u*&f$1b zmc^SYE>BT&u5}(&r+o>#RRrkQ~*!ynnbSsYyYNlL+}#P`3IPb0fK6 znmhG}r2fa$$)fDGA!bi%V0Ps4K;&v6GQ58X7`cz(gSXo^@yjbUTmUtP(GsjwFF*6R zrp9ir!I)#T0x~}fNrWq0rnrO+!NP(AWlV2G6E_HQ%`xG`E3K`a5ZR@%!?}%Ai~y(n zX(}G&5>AA^_dX}H&RlW-pz9J6Xta9nVxc)VSz|tNSRAnOC`2OX6Rt+m;70}FG*rNo zLu?&JdHq;Yk{{UZ<{COr5Ra#$9_MJJ?<80^;<)rqc!Sf->h@T_CxQ1di|tx+7DI{K zn`wt01hu(6q<;#*nMkG1_YcvNZ$!kZt8}PNHQ;2|=buXjgnj3c(XJ=UITc5p^BbhA z+LJJP(ywS4<}KdADM?&0F6|x7k4+Gqw1KI3!4Vc&wi5;Rjsc%Hd( z7F&C`vu|kAI2qEwX>9EtP1|=N?2#7e$#0SL_?%Evqxmuh3DXeZ>zuwDsoV2gl?1z$ zY5YQqw$2Yw>LgbF=;Pwt*?=_YT{(BO*Vjxp4K4%x3ij(yWaenndg;n~8<$uM(AqEM^Hx;953Q~dcyAmQkM_O^7POzgl&KUQ%4_d85XY-0)u%QL{v-8GKCZrx z@0P5-4{wDkhxU|<>k01p5^xlAzB*+;61KHrp9S@re}8WQ!$8F~92z8bIvZR}`ArTB z90N&P8IBo4oHZZNYEP6qS;)99Aom^^iq`6X$9K^n`sUnmd-fH{a{qhK+O-APnL~p| zH|c(_@4F{omIVkm5xmV0#&e|X!RZsp5ekc4rsNP}2l-UkcT3L1nvsKwGr&8ZP)a`GEb!I9a8?$lyj*M95R-j2-Sb9rt% zA(&KMiEPdU+sl!aZ%HdwI?Xf|{|@8!4jAcMf9!BAh?Va2mTjVOe#T~+iuSnT42b~l z>&4(P1#Vc{_-TMZriEgF$c1LV#lUU$W`kUS%y{TwoI-+Fwa=O#f}#NQne5@07~YRq zcSC+CcxlthcI3JLF1MRXPl$ft3lDLYW8Y_2dL5A=KwAQX)b{DMSHA3|UiZ>c9J{XC zc!SJ7kaobqb&{F%v9#i7#AD2K7r$HLv&1eznEd;ZNA8YD8#uB#^it{3$KKKN4ugUg z2_0XT*`5uxf;IKj7t{PbC=J8b>z91RdoIa_gYFUt&AX~g^2b!zp3_@qS?akkxlij8 zO=Wu~Y2ha~vj2l$bv9PK2|Ypds>PVr__1gDp|QqXwzH-Z*(brh8LA~^jahG1cSIA6 z_I3I}NE5(WZ^*r@bsAhlSVrzjN&+>v)7QuTV1<*fShsfWWS8KOd`gm}1aU+21*H!u zm2`E$%teu?{Ga-PEsF7R{h4QyZEO~5K2y6&-AU4Se3<@?E7tL|rE?a*$6XXuT(M;* zW}a4|)Tp3Cbq`whez0cBQEf-yo!7p=mHpJv6sP~3ZBCd;mBLZ-XTTb&@3cK{@;F#E zW`~Sz9Q*A5Zv|9ctxB6OZNprXakcxea78;X_Q7*ZV`Zd~m1Q>*)Ise1tP{l=87P9e zoG!u2n}u}G-x=0hUZs(7P#kbDhA@5|g;0rv%`vDB)^INO$_&XXD-B0wqV$UFvSYJJ zTkR{h{?%J<__xQUUIrYy^4?XxNvWW|8O4;8=S#jNJhdUPnyFstHJA3s+o?U4>jrS@ zn}*U*v9NLe^VEZBsPT|g-1prp*9mGzF*XIm^~LhLH|2+Yh;BQLXbt%kNU*wS>6}#D zBTQ?a{opW?0}%^}%Bb2RnX1#?66zfGU-)Bh(%!X9B2N{0%li)zb?PH^$!IQc-%Ow( z-W+)euX;8yg!f`Lc`216mM(k{AV15#uQ76l=dApP*T&SFPPhw@;(({$s5UF)&(yC+ z=Y?q}`=|>)3(=|D6}$kQFtASz;-2)GHK^{;_E@(Vu}F%1$P`h8&~g9diESg}7<8;W zQ^?cVX0escYJ|+bq@vxJ>7r$C1r)I%{|HZG^R;Y54KZ<`lWDlI%~p+9Yq4QI{6*U= z^ELUDAqwoz;JNR4k|NOX5_C zwqDfK?mCv%3ae6uG0NFytbc4Gw9w)yajxJ`@bP_f**V?w+0oQ!Hz&~jz$B1@*f!bP zv`WCKobl2^`dmkD%7jp`eTxT$=uBMZJJ6~Rj>8z*5+agB4wx9 z_U+eDo6?jsue~ampa>(v)*e~ARl}3sl3LkFneNj75K;7 z+hF+6FLwlcVso)+&5}7=_2%1Xgne;vHaJx;5TOJ!xWWpCBNTcSa}IEw%14Gz?3TFMB8|idEXyoZ(xx~fsV}Md z8B?8)(dciw7Y>p1|ISWfdT)9rPRS~dc~{#^mUS5<{*pk3648N?4hy+g=|9ftD#(i& zUC<(k!+#!hDVs#-bhG$Vo;_OnXP3D&ZTJ;?)9|Y|!?1~-2~kU}JRutBnSqB>Y+R4^ z9X;d7Q7AIaz3CXRPcCbbfM&l9IE}F0Mv#T1rB%@B%<5)w1JbirXNjvFt z@$oi)E;OTuAB<;2lh@I0$J6iJceYi@tUGw-{PlW{l-Y&@A#Msq9h=MabxqU?LEOI9 z5ylb2;8S&99b#;Xe27s^eP7Zl?!FBDBBQY=p8bCn-$GkQE7ykN^x;;gnPc1$33}tk z4vrUhh^@`ja9jzb=?%!tdmbapg413eEY81lxu(+s&X$L$f0;WA4qlYunr}D^kho0x zBsbz{@yo(%Qiot^bK`$!T)=l=HKV#dYJ~Q&aShtJeOJpC{%vUMw=sKpw#?9`g_~CQ zLV%IWcu8z=hGCcQlMEB17snwsHPm+>wm;nh;@#{V3o?x}fd`CsHu!=bIbqO$K~%ZKRB#u-}iK@oApT3*+pqahIw&s>&(V zQEBTHf6@*Ee8x|~zFWDNk(-iJZ&}vEtpU!(=#89`%y?sK4cNV>(_B@7jZ+Sjg{BIL{JA161dr|PG!+sKSmgb_;Jv@i7nX)^CCK`)aX>u6(e z-xgT;uwdzz$3&4T5koEIKeYeQz2W$H{gGghTNKE&B-MhQzzdK}9@lqe=Rxc8^gJQs zD~hsp@{Z5Hs!e%2w7O7rl_(8CUH=+Q7r`R-4P=VydGBm!f*9@FAa4vIbh)YnjfTy? z2T|XrPN0!x=CxAG%F0J5XAaxI#bDAp)eX6h_swop!~Ojkb;e0EiPikaiUvp8HSe!I z=YT{`P`gq`gtJ{meWi+m@TRc-rl{T~3Q@z8%ywoULYV(YWOaMDtQ>n#aesPaOOaisb}&j&wPWlnY2(pT)BoRn9I zlvp?+Jh^*h)+|0k7uf#w#MWzZOj<0HV+%w5=@GOE7W>OzM|f-EvVBoQd?a{GPAiqg zSM#8pz||psoA+DXE5KcY<9L3mS(Hw|q*51hx%ZyZzWefTL}&(5p=!1|n02b!kTKxx zi;jmfv6nTHzGNrt`hBz)(xSO1Q3APt5XvXC<5)ez&$QZuvCfN$!%_@BYf74#zm2xW zgJ&<$uK1zj*7&)x^v6&?+^-0Ai$gI|3x}o+$M)js7 zZ8B(IW=t!PKy!X#EzT8JGePkz8nq^TWKK_$>Y~$4P1J~i{HYyG;-V1u5Ww)QShpm7 z7^KaOT|;vN9t?X#El;atXG{Zls-q}kRxW!mgQrKsQXMpYQ2BfkV+n1H_jkcZrabej zWPiLz!+(2S>fRbN7W%eXY;9bz>_)1QuGfJee?)(%&&&c7ZDy+#R9Ase&}JRrFm|Ic zFfNyX)$rHshZHtb)bhu@UmEAQy-=*y2rCJ#!Uc8yOQ z{R4)On}OsiQ%f2Kw8~mu7EW?)*iyRm2lG=0qDoKWXqu;jzB|^ceT)5drS22jGJ00% z+F1d18OeR~I_8vkSh#Vlu&P?lvWe|)a>_$d)T>&qwE||PV(WjV>#lMsyE^f+%9h;sWzzaKld1dnD!7O3t41N>YdnbnnyDV4=}i%} zG6X7_LxC;#TDMMZD5n1|WncHin*5#}1;+rZby3n_dwkZ(kOQJ!)iO7MII$`6XTS4mv(;+utoUJd81`xOW*AJ$OSa;nVZCy3K^L^hv+SpS;b5p3 zXJk;3=U|-Hqe*EcJ%9zTTwm&sPo#=LOI?=*7w$VjKM2B`rEdu`#S6L@GQ{G31p=SB zue^$4;Ar-jdxow-mBxV766?So$)9X!Oy{y7x|@!mzCPHMfZUq1bRTmu0ala~nIL&{ zmB+D6$b@r*k-u$!|p~=OD86 zxANNY)4Hb85bCI2&r$BoUH;s7X4FmxjAgqtY5wg%%EbQ)Stpk#^Y|36mC0IedBLY% z^%UM9?FI8>L_J(m6u0q@O{3Y;4OAHHGbkwIimB2cSs2d;1|sWhaG*t7?Cst{=S~lP)O7W3!KFKaC8X zaNH6dTSGH5f%$yq!+ri_5feIzPmHLHK$*O`?+kNZSvY4Y4cb#e4?JW+>r9^nFj2aX z%gvREgp`zsh)Di{hbNAgjh6$$V2L->Pvcv(Kw!utGd|M-r4;kR>f#+}YQ;kzTKbo7 z12nieCr*jGL|A(P9JRwzWW+u}7+Mg`^hvRE{n-ekm;LZN8Ds9Z_DE-WsjvO_xrvEG zl`T#6Y$~<{Njog*{T%}An-hW~BZ(c6T)s5{khG zJg#pQ=ow3Uq=gI~-3xsBtWjKGvXksJ29}m$CsWjJpf@L57F##pKVQr{#})j5b}kbI z^sr4#gfkQcgJ?snTl_#bJ!R<139U5GsWx#Q(}>#Cvdp*0N}TrP!XF02LX2)YI)^v| z>3V3$K3SHeS8S#}jkprgn8oQILI?5jN@peJ$?Y#ZWecUIf>H?OOSuI9T7M#0O)n3# zjakVvI;MZ({469NmnWNonPZ1kq)Qa82Pa@4+bSc>ns9nAlZ^`gA(Ko!IJnHpgXZMARvWu5>3lx$bR>-jqGT6&wdPp8>A>_I*on-xFk& z#{OpSnWD~x{8(LBOhx29OVRi;>V@3zP8+@9A!SX~ivlz+Y+~OaSOLp6vkfMT-DUf;) zd#TXqnNF+JbPm&4owzLwI;HPwHlk#b4FYofzr%M*7x54s3=s z)C7cvYrU{w*fud%0>=6mYYAwC2s0QO0xY9XlHhVdJ3efk&)-1U^Hx?{9VW`4*dFnT z0$YOfdfd%o4aeef59Pkp_oT7KAJh}V^+ld6Js^@-c6!J+tYx66f9;zs7PzTlMP9MU zxwV}45-6O+vijX%riT|r1cOs&cCp#*{ni1L@c8QlyJ;fX)AN1AQPOdq>=hE`> zG1j7TXSd;YFVcx>Wr(dGOj>%Tlm!aZ4TLH9*#0hRRPs~M4=Q%-K-xGzn~NCqe?YO| zL^ zqRe~##IdHrR^JQvL* zhag3hY2z;^ruC|8XuWUzHp9Tb-(1iOwc{6ka9;WqAee}!AnK*_qXi&8-jf|+R=n|U zeZFR|(eKR|fl1Ia!Q1<KvnKtqeq|q0$UUTaNrzc=p#potf4ifJ2O`fgfMsw-Tpx!>R3K z;ry9x>DV_RT4m`RO#&4F%Bd8Ob(fz}Ny69zVxb6k5lny{5Fpk;T$8>>7j7@c8QNr+E zG}dhgl$}Ut*1E_sD1ZD`Ii_p#H*L?c_)qwNb>|S%+#PyE4S-%Deh%BQ(19Uu#Wk@n{BCApUXR z|2peL^3FAzg5Gp_P0t{f-VI1*4guI8gT)M;O*-TvdL`jo1Z3)r96Q;r8MQq-DOh{nzLgWXG&`L-=IgC+Gs2jc9! zrV%ZskKuvOTH&;~M|?_e8jI-@w1?F3L)N=VC4$G@Y@tG4z4b#oh~DxXGQ-!`)PfyR z>2ZLo@PcrNZpt)s7cI1G80`Lj>+8GuSMRbI^B~_Z6h2L$t5e}LdP4dlSY$;Vt@-?$ z0aDfsA0F9AxXGzzku3kKpS7n9>!}(P{E?%^cEx+L?;Ad^|GOp!w62sn=aKWRWSKq@ zwj<|_j|+(8=T0M`$e;{T%4wbXahfSz-Ao0?`S^L2p3D8okff|8&a3Ir?3s(b( z29?piB{-{^D+Xm7CZi4p^R}~Ff)XX_Z+c-op5J>`wOq`V-0@VsI%p&0bd+pZzH+lE zlsDj?2Emxj#mIAD&ZRP38rCeEWY$~sGsf`or-vatoAUcQpGKJ$3~&AIG|xd{JaB6M zxE30fecXUXfIVsoFOxWo_mm=!PVaC8XlGuGQ>@ zo{4ww#9n$h2XdoRRj6--UZByNW5VWGwQw|Q7_xP*F%7s8=q#U`0gAC7YZ{O~cIJm7t<}oA7SQOvga>1+KMXH9t`uV>>D#DCoY8^xqS4DVL2<8AzH+XGw3Y zeZ-_i1(l0{Zxi0FkL~uP=18{mVq0lBOPa68Ccx*=K7aZnYYdH0R=z?oy_MNN+*8_w z*oe1)jjV{|iav0-Cqh#o5o|owWzHKI(NpS8c_K(eWJN?YloAeRI9rUAcf!-b1IaZ6 zqAM-MPkSU{psEE))Bj$OruZ;wjq3e~Mu#4!nHT9!iKotN*oY};DmvDmjTvp3&Ut;I z$o?FPUog54NCG6FEI5CvSJ@_y6VEFt+vQ4->5klE<+u!xKj+O@^ggHDI8<-`GsiVz zLhfb*kTZ|UPJ;(BpG}Cvh6?wMu2a?V!gvv9^KQ{8M&c>;Oj3ISeyX=c8Qn1)x@`p% z2)_$6pQNg|)S*dMoairW8@%Zq%Ssq_M+ZuI6lLGDgojsBRHwcoB6|Yunhmu{`c;4J zjE5dLv@n^ynVVpCqZ~c4LEz?!&6bb&CiEj+2kaWQm=66?1Ikq_hnA8J#1}f6gbj+5 zoHcg8SGekluL?~592+O>y3`s-DP!HI1B6w{)>N3KAO%SipRti=H1TG19^eBuYLu>^ zAsoY$(0g{kb@&m-ZsYm6QhaV*92(wZwq$(QUuUqS>ASHp`@N!8hQJtTPM^@c!o0sJ zPmal%umQIGBh0oUnME<FaL z?Gp=BLUjUZ>Zgh(y9rl1gEd^$0k(goTx5_wk{8pta-i(cY{g80ja=Fm)bEWlnaD4# zgYUPNfNL?%nLIUaIZF7JWAw1$ekZ|sdY%XZxC7;&*QP9SIOAZd2g1z=v?pqbH zpZt@FU~i5mu*R0gOADM_TJH?r$2=@ny;XoV@_k3%MlirG!5z$%klv<}7uwyDYL^M@ z(ni}iiwgt;3XyZ=mZaALCI9lERy11d!-~{Wws#SOJGz@n|NGt6gddC(f+7i?26DS_ z72Q5n<+bTK>@{=Arq=A*n6Io?+9vK(Jh6+_3w_5Wx{{Zz!lL?)VsP)V=R3y>EKLrs z?mpjn1lkV&q{xtFbE#cg`nzs@AU|%ZZzsYnq z!StNBzq}ukxxbsj$W#LfQoZm(t@O=fzHP5Ea8?ILGF@tMCw-Cx<2O_fV;;`=>-2O) zW~z?ulK=wh~M5taR0o-%l zOv0Le&ec|&Z7xYl#KmH!)^dz-pZiXNvrXR??=e5w(~=V`d`0x~8_~m*_o9wpN~enj z7|@QN{vi^>2}a)@R9SH(Mg{Yb`P1%R4HYCUiKi=AXb7;qRRpE0T+-*ybA8c;rInIt zUn1!w&ll9WjNfB|N!oiYt7M3z9z5zP04N>5q|_a@e07m$#BMBKNha`1or7C4Aovu-AA5TLK$SbH zv1=EuWkQgjPWS&K%9Sr`u`@a9{#eF&SZOm2ls7Q>4GP8y4^9L=!D?W`hak29@ zHsT*nq-uJ>YXNqD<&BKn$tgxPntPuG72PaAEkEawoRaQ4QbYbeqa%?zhd&;bkSoFKw<&1H=?%LWy0v7jtgC)|>(ihx} z!=G0pE{j9wPlU-<-j;pqDfJhmNOCPQR|zifm|s~`S=I!S*ykio`r<CcEs%-Lj`>jZ07Ag|aJ#E%7yKhZv?JQF0Q{}K4&q5E!>>J9VTn|p^Y zn;9X(_9c6%y~1ijZ$>??V825mW-m>D_x_KjSve!Fv z$}hH2;dU;U7UbPZ zj$wsl(hxrLOj-{M0$+q@k3fbxx%Rp3AxTlZ}_C_MD9Yl83faO|YRpd$g~ zVWVm3w35}8oI&^znJoNThVF1Z5M3V4vP|;Z>Jp{Yb`gYA>eX9wfczq35z8k?DxOO^ zyR%r(dI!NiFJxcNw{*;pY`sID=KnU|Yp18J>U6Y7Zf%p@>X8@XJh`xqtC!W6FAt$> zgh)%FKWuO0rHvDh^nl_UK1m5EiJ%u$f<4O!5Xq`yc;Gy25CUauRc;>Osl|Kce0 zQkQBR$92b~rWcg*Vg4(7mR7-MAE%12ex;B<$)Od^x1{s?*@W+i^G1{wPwII^LUQ4} zoYb{A(ME&YGey=g{nb~4VVRybC%1oC^4xh|t7sv`l%>;<6(zwV5h%hm_1E}eI&b`+ zNyb4I`aS*-d5J$EOmgQ=CfU>MI;xpf?7j|s=A>))H`$hZ@)mX8C3P=lqzV#S#xbh` zUb!hbx1fXgU;9>$Aiv;tBV%jN*AqyRh`agqPFVeg-pcOyl%91~ZtP&2mn>1+Y%Abe zw(trhz^9A22OOOHAoeECpg%oDYNxIJF5AA`25BTJZK>3?==Vk-J9ej! zIL9t+V_$Wr*T2uj#sgTtv%X)v_Sw_dm%-56Sp-EdJ8}0_ zeh)R#0{phlSH@zaFiyARIoov9jKy7guafBVk^uI<#$mfZy;ILKm~f7~J1<|}?+^J0 z6mdMas3KddmDiqM6P~iTXfQ$RF%}|w*`+J zTV-wgVOBh!Rf@BS2cds>o;5U^Tk%dnY)A4%4`0iAd$iceLl6Cov9-AeC-{*5%%(B!gPEnXqN zP)46cRFcDFuVts?ex0TPpC|d>3k}|}-v_IfS5FLn*M>$LsVG1F-ESoA6(coSsU1}^ zdw21rl;qTf3=1+dWw#=GBp}?z3}ca~Z*T)#tMTIE{`y_keWmR0%vo%EN^J-CKkBtt zlLfzC7tq-uQ{(gj6sdp<0B}f?j5k=3ZN}9a{^f}u!^yoXXB$u#4ovoBA?|1iCdT^l z?5Jkw{2EHJ9QJhzGOLUe3%l!kT-vryZS2kp`)(jjb_q&8dIcxJX!FifToGWeGr@ha z1?6$z#S0d?GHJTK4>2m2!kXg{;ukwoNn=r;+%XVOYSiZx`m`LHx5nlZiL~2_NoiSr z`1p~#q_}&KQs(k(xc2gXbmGSyQp$r~UWUd<$p@9)ZB|dW*h6Fp{!k2;xv@moM^BXD zAR|?ITU9oY&O@x~m4iww*Hulk%EvrshW_~Y9m>TX^4=h%|5y#iCOV|h!P)^y_n`$ zRO_nAeVd@Fl7Ys3ZfW@sKN=ei8(NraRr z^V!n^+I>hta!$!9!ZoIwE5~#%ZJ9ZdISgpS_W}X1Z&L0%RzvL%Sx2YM9dHr({7wH3 z7F2et1;r-2Vne(G`$LOXIVJ^(dYEccl+VJ}%rv(nJGn+mux3IsEGh(jAGrl-xz|{x z3P5$?NPVNdXB>T}HWr)&caoC^Cwe*a&dj)nL8n}%%9^(xTyc|YcXrHZnpd%j_3jf7 z@d^v&Cqc#6Nonrk91e98!(ce3&Dw&`R{X@EY{{(FB}uBj(q+PH8?o5<5x4y9@K1r% z*|bS6zOcW=!q^(on>)H&wlaDA&Uj&6#5}35^rZ;APfwGn3!~z!dcJ>e#I4AuMU&0D zi@S9GCpK!?(`nG#4+{UThN-?(w8*Kh-&g7_F8&{YP#;5bh+sWXQcu4#5m@GBSF1ir|^5xc}?Xrjxk;O zIp=s6IsIo%`O_@lzPK2_FA7wJPml*(DYmnhPicz#`&4Pf(wpo=9lclGU39I~#+|g$ zK8|RZ85`IC0Kosa?Kr-a58>q#A%uAFDJM5-dMKP51|vQ3qSgCAOoCj;6%YNUcU4LVD8;}vl2#tFG3S+9iLAc+Kp ze5-K6OY?r=iS>3~-w3{yn-9_kyXYs$PW56IU#q3e#Uzt*uTu3CJg`Tlpno!fc)z8ihApGLtGEdQTwT+$!`kY#dwRi4kIE+85p}KBb5s zQ#kG?b!0Ks$b0)glyg%cO3(#_C9!_M}eIQ6~ zMrEGxS&ERBKv@AYgNnZy=a`?a+k3|G(ME^|fE@YBv#_j!@4`EJ(aulskB0l`^^F#j z5bfhqh17K2Cb*koMr@9$)_`M*TGGrMW}tna+m`cLMQ|oaGN6)}t`?I~=pFU+k`)#G z5E8mi9=>j#EzH921P$qQO@+!9@h2t zB{SU_4-W>h54|+kbQD**^8Tf0x~fNgQG}h9(2*8jMz$B#6sA872iH^tS-+W|8^?$O zaWa3ZE6uE}s=X$fz&Q~sUd>C4$m>k>H~2n!q<&T^q@z2%`~I?3wNwbR^;B?jirK0R zme|tR>-Dg5H=y_Bwo-3X36qJy>@v?+(RY-oQe&A_E^#~!jz{D*4Cq-PuEfv7u|=?@ zRs(C?I*4R}=2OVwMLnNq0`5OQ1B0 zQz&(n%FflrtV*KG{cE{qZ8mK-jFg$`;b?BQjC1b@4>Mm?IQr9$QwWuV8Q5hEKc6J= z%BgY?qcWWLL!K%iz60kO){&BxUE=N%!rG1Kn-s#3Q5-AD+3@5V5%HbgV$wY*%yCIy z`u>M?pCjdg#PpP7Yw0inwp+IRFEO5p+IG*bdNK<`4;^%a@5#Qd@-`Xi2HI`+iq|8B z=E~J3eO2^Nb&J>a{E?)dZuNqX@TD5B>6@acM;^{;lXp_1nVq-8yb1B`=lYvMAUSEC z_0m?VD5kkX6Z7|c48Pl|M9q63_zY!7P<5{FqHFHjm+DzCTriBaP()jo#GkLx@`et3 z#RYSt)S_2S#eI2f=W2I>xz=waN{Kwa@BUfP8TUue9*kNa>W~KkLmee$z;wDuyd;>!b_=CphjVmT+4n}R@d(-MI{vN ztz-W%_67?cK#n-yz?`yWPv!_o? zt_e5=mRX3zSPyaDJXVOzv#IZRxM8dJA=Bn za}(H>oJr5cMgUO3ZNOsi|NBt1^jY<9XLFCzzK0&CJcGVJ0 za*9AOpXPyZz7k`BPe}fR)RB&{wKy$tZ0gb}eEflzdS_%omyGe+&Ko`i3~E!SWLx|? zepcYx4nTd`V+DQ4@L9>mCw0?!3EyyK!6ar#NY?xY+6B(1Q9#mAlH7YvA82@|m9BjM#4NW8Jt z)e1cUaLZSi3`;K=iQt3S&||3`{!IyxXnobLajgEbKCdIX|sS^~?N<&lmBO zU<(zqT3Gm-T6gmm{h9sNk5IR8!Hw05HC(Fk)OzK`*v<;f*Wbp5T;Z0_1B&p{AD+4$ z&PfLrI^YG#B)H_hjl-FBw?^Y>R>K3o+j1IbzM~MQ2A-}TV(;f%D!%G`I#qSrv9s{I zQ&@X<0#xyxZQI1xDJMtAPjM6UC9q5j_w1Q6N58%U$26A11RSxYT?)(#_A4c?X1oZ$ zx@v!Gl^d)TDv=#>c^RIQo6ZZ|n-)1~k$qw4`5{vi`Nr=ml~9V!T++`vQQwLN`nG9(L$*6{4iP!0fj&&}6HvlTgYysJyk9nFz5 zPEJ031rXCsTQN{cA8~K)9OxQacBbfsiATDBtrQ!Um~S*8dPd0mUITx1#awoT2~fxe zz!e!acSc-yG^F3Maa*_H^gR{!-SWzoWSlph*`@fH3bD(=ZrjhsO2QsdqnCz*WLlm3 z_dMz?=#u4waStjjy!1)anZGVS7}*v1o~GwMmA6p74{GwqXhJ?v8IN4s#YY<-TnEdR zIp7NV6IwA2;QH+>1sh3g_pZXqfVGURkTAMqn|-CV^x|28KFU=8vCKRv37)lQ#AAy+ z&Bveu=czW8idqbDYaMujyrMhPkOm4gO8X5$b0iZry9rs20r@g%_JR+xhDbaz*=@rh zp7$MLLLq2!mT@T5dL{hpEL2yMg=X7NXiI%DJwWx@Xz0Hrls@+P)+#GG!K6gB zui=;dRW%F09pZXf!PZQ9-Z?ty5WU*~0;;xu)K0ieiPc|Qamz!M?%H;BK5U)CW{2x- zO5+r3p3(O0GL)i-+(9c#i5Mvj}>U4nujrOd^XK-NN0 z*O|#}I;;kk=*`c8cjz(Wk$yrwdr< zAQaKgS1oyr_aB@y<~&ya*I|2|K$Y-<{g6j6@;| z4!hr#qb|2w+NZ=yfj?j_3f^@;Wyr=;PXbLYUuu?tl|FpiI5OW;cjdI81n3gH)mp~S z8aZmi*>{P90$5IT`Zev20%XC~#RTe3T= zU5=V0@nAMGh{0n6IkBqvo0bBRl-91@rKzL)K{D%RJ3Vy0L5_eTi-k#jO?FlIVuGp7k9>by-k4a8}EIqY>dcJMtVmy6UOlTHbla)uVRx@2v2ZzYjt)KLaY!2jepL!16h5Se) zji*N5Brtp=dNl4*`AeG1R66>^|HC5)GRq>TXmxJ9Y8dJTUTw?iktP@putu|S$4b)} zEP#zk6`SJiqV;oK@xpR%^NF5u&ISZLUb`wfM!U!HK_vZ0VyfS%*>M1|dJm3H`kQF5 zDbqC{x(>X`VIv=ZCi-SZV?Nc#hkv-i&)LeNp2D`76ySv6AkqbGfx{Ke!6t$-poI>Z zAx2-%$4#$?u^fS=J-doLTaoDJM#m=$JfMazSfl(S~ zWwU()aw*nE2~Y}j1OOO>q5uH<;53$VSsItMYoEmf5flACB4Tk%3!%ynpl#lvf)gp! z6WSp^Rc@6Qudc1Q236E3=v_Eo>E#4v`~sTGAAO1q5Roz>z2MTs)hNYg;`3^9{Y|$e`ebI26MtAI2QN#Oa=mfd*i+oY6Nz1 zcxEO}6BHO0BBlN6Iv@NVe3NH=HUWm&6sYj_1UIO3dDZ6xRg^sqb*&Gb(T&(~_$K~` zcw}}lKmF`b^Cg%IwQ*A}w3RA*eh}|jmRJ!q>ZGTkT{jO!*|CnV*kE=dZqh`;{9Aox z{Udd}yQRI-lx@#|87p-jN!0?41iGn0GYOE2v8Y?|T6s9DR zEU}2cg_E(?$>cXUov8XF)G3|n7knc`95_oiudyZ^8NxL`A?uMjgTEZpeC{^wh$i2D z?`K0|-Qp|j^)m~9y(sXl`wPm_{43B!KA z-BCu_L&~KUMBI&ijirP2z>q39)#B_1r|!%96GJ6_4;=L(+4A{6 z)7tR7C@P7;xnel!wZKtSm((5%s}}Su)>8W(8_jvjJbG;7&4;@8f5?Bnp2yINNVPv# z6Utx}Lhr_cZNS?9m7CkIh)6WJRzKxZ@|CGeElFm=p~qQE2+eNEE^I6O$xOGG0Sb6O zG7Rp1a{Q8g0-Gk%s*^gl7G)*AE~K|h&JK;*0~S}@ml_rvM2=HDFNI+o%kZ1R*ATr& zfux$sSa@^KWU)(=gU|yW=>AscJq%An-t;Y>&VS;;5F4H5CKhg{r3;pGF^t z?8*V>r~WcHhm|u+dKc32IUv{sp6m&@Q91_z+%q62M}h!m6l?b21Jf<$n!HuvU?17W znteU^sK?CF=*N2!?gA4i^oN>a(kgbi#(LbA@0KE=QD*`fsc>XL=5HxveAFKx?ABRa)hiE&^7vd^-YMKx~eQWz;Q1u9D1oc#J&`UKM5@Uf{-B0HGE+giufp^ zC?EM~RPtH>aJinJZ}IhbpXrhL)2g>9Lp`?ne1k_%D&uI$?tH54iK>S0brAtHZULT` zv>31~$xWlkVdB5!&_0+ixEcV^Du=J2PQ{;k=sQ>4VzZO1_;TmgyW30%y*KeY4jenE*F2asn%>FBYGv$jQ)Gv&hJldhm0usjmtJA3a~Ww?2I_M9 z!FwvDX(7idYP@wDutm5@1+$~N<@-Ek&1<66E=zAFpe+ANesQ@-1fRUuRi;E{yqFaC zo+>Ola#>j3O_G&+?DG<=eBTaAP^nlKMz^OC-@Kc6k_;;wYPL$dVEUvS1|ox+kx^owl{RKn?~8Q{JCZI zH?)fqyYYO8#%06Ps)%>EeQJtl8hKP3T?9yDJ*TqBF z-2t)sbM69LusWm$guL`DLY5T}g=-7QjTq_xl`~&IU=BkeW$9CRSH;JOH98-hVZ+i!#YYLF_#?c@*iF2QtpM$kL=Q_LC)ZjjeqLmuXubdBWIbXHC zF2x;IbAVW^1>TTMj`$y^aL8fWJfd@#-wd{8*K{EAoQf1IqXjv<`;`7_Su5DL8JFWr z9(DzQBdN@PGt2UvgX~yK4VStHW?a+< zauoWq=Qh)Sf7DRw2$CRthGeIZyN6Fz`es#RLO+|G&eDX#Cf9;Z#$-lyM;m})PdU^n z+*<5Jmg5FER%>9^&6zrrqo4JGrZaUuKi7Po={3CW0-rzOp!3T%J({Xj&?jK5PrO|W~LA(uE zR)>L$XnK*(DTPH(yD%DtRmBsTkTM4mSz^GDZHQpl0}EidZ;@}`IAv>qog7lt@T=R- z^kW1L5DFLq0Ftw&yq5~OWXjA>NB(;oNJ|)HOvv9g^b($D=O#Q-pp&UY`O&s^XCJ;G zxb8P+)5gi}B2(h46Cq>79BblH|N_dS4Ih!Qe93@(#@spCRO$f>gwqv82Z0O9U&Sq7)^Gr8V zL*P+Pb+gru)_an)}ietR#UEegNg;;zR)TzxAFxCA@+gho+?Y`OE)u;`{Mjf<%h8 zf@Fg72#t5xmhhHguy7&{eZvh|W)mgGF8a0ckkiC_aSUm?QDC*#%gNnxH7h9bVst ztx{=P+rudb9H-&EjFH20&6QmGE7da4pb5^FC_SlQa zqXi{InLk45d)Jw=cB02$&F(o4ZH|3z-$+k3iOTq0|1NCun3GQSYH3PlHPBKYngBzp z=WBSzlW{lDC)Cd>9%y`Z^BU~gF1x^*4U1!+?+(lw;e33O_n!<3V_c&u1UuB?qN5($tV{0U z@=0L*#FSOYPbI=X0i)D*y1kAyItfk>?-}!^K|&+h)MXtF#MvSG=>?DZ*eFEeg3^rH zuhZ9>^8dOQ?!c~8qmd^DcMD2UeE0og)u83HmASAIROpcgcB5VZy)>>SW6vpU$O&mB z9H@I)2~6w}@5O3gYfvL7WJe?w#+wdwA6e-36$*Ri<<_=eX>6t2 zX34_ZWduP12$`e{pa>ILlc;!GtEC?zN<2O``m2gAGn$8{Si)Vy>eZBT+RMvcH43U` zIu1nZj%7$mOkIqx%vY0lSgRnx>e-lcv-(Z0iVR&E&-sY1QM)tkyQa-(_bc+4?E&BJ zBUGfd!xp_7BIV`_Kd(dmE-x%qtNqAH5V0=1iq)eICb{QT2-cR9$6gRr=D}0-j6Bsm5 z*_*xJ)6ZSevdY0<8y8~rtOx0U!OMLJwQAFZ%lZp-Hu-uvxfZXu)5Y3+YB%@#`>kYjAdrmj&!oS~sZJvk>aREv0Y`O-lmK<&u4hiS=AB;p>{dym zc*QqK^?0H0tTvPvhD(!6QPGVl56mYVYo3LyVjXyHqQOcHkTmMnm{>-JN0(gnkT6Jq zX&*TUyc0OHrWD9lzfs<#u1HU;xj5F&lfS-o-6;32=C8M(f8Hz4(ezcDL2<&H6Z5)3 zB-<8Im_tep9a{_{>P>^tiQn4HnA4*oR*=a^jgG|{v@LIGU&grb`Kn)Vf&c0BawNjO zxOii_C$F{*pP%cYJK=0vtiox;dxMImPC#`16;Zv9!4q<^fohWYDTEKM`gpd_@hx~i zzVJ_zv&Le;n;;WSW%jvY32B<@++?ROU70jF*|m1`bQ?>GZsoV zEQ4r?!-EF}u{uLYH36ZyD4j(&Z1O6wP^?Yd1HmBlzKA<3VR zS$NB;-*viK!*#j^M{QR!88**}uzu~DvjGOC-msxmr|A0RCKOjn)D88-((eD)CB-y3 z(E4B+-(m_3;yDs+P29*9pDTAL5#lsVFExUbA~k1k5L+s_+y()FX&Nd(ED{n60LMyG z9{Tu^&)yRu_3h==&+puk4oF`M6_`kKwV>VBY4vt54Dt52AVa+1CtU4J{1;LS*IwS@ zmvYB8!^DmMICIZx>!cZU}1+h#;8b~}da0A9Wa1iU)PP*X-cRUj~^QROhX_}%$ zgqOl3t0tWFY7~+tJ#T1|O4HgZ9@PAS=G)D&ZNN}o1^gIYBfnp01%p%1_wRUO61{vz zCa&l5q{sh|QY?U@5)T79uYqCsfY(Hi=A05-J7;pMZ|#01Om6XF#GOnT0z`s=r8RZ@ z0Dwj|0GLWwYc}DS8pcy`aYy%Q?9ok%xv^&gNPOA-w52HcjzGZ`C{!?>-jFCA`fV10 z@j;eev)*iVM6p#tONKOa@)B>}lhlfKwW_Ti=4<{~DF$u%VF7iWrszNLmH>m^Y(dSq#{`@!})VYmA4D--lxI5m%?h{~O`2%;33r)kAme@pMTu0Xzw*ZJnDs&vDL* z@=__h%oZWki`|e<;BYQ_|2H^p8$6JCz)+lC>Pfyc4adgjw5o@!&rs znUj?guJsguYgKDaYM$$V*EIdGp=)0jyV@06+e);Rsk#E0PC?UKQqtN#)gzo%gU_pf zFnD7+49`tML&Az*T02yhjU2Bj%0}MW;Z}_fk@T|>hPy$&U2^}_6I&1U(9f>RCJXg0 z&kCXU#q*Vr(m=y%nL#xTq_v`kK07(QN=@1B9laLv7nFAW^KydEv{PC-kJ_PgsQegd zZOCeb^Zb{BqkP)ba%jZB9Hhe80vyF^Zbx@melc4h1BipL%+HHv74(<0mYTBlu&NB7 z%<9vt5>RVSOfrL*e9?w7fj(f{N6uG0Xx?^96Ue#s)Y`|0!aK4jpGI__z27=TY--n| zY(FKp)POR*Ym(O`o@?<26n?%aXed5iSWnZ}EqrcQsK#WvPX-0R4r4d9CDJmw>q| z4onxRY?)cG_W_a!P1}<8#@uF^$a|H-BtUH+#l_q9;eeIX@7Yj0^~fl0m!O1~ zn&2zyHxnh2*(94O_Z*vP7y!d!t%VYSb$QB`-lia^3V~U99NBz=(FCr(O@`E*W6&SF;JarTb6G90vdD z%cpXS;VGDejb&!DOF=x3! zfgZ`oy7XnI42u)brjUycce5ACp+1q`|2NpVVyEgSxuu5P%w*&*rbW}6?DHd|ZZ+jE z4m=UlT0KSeg$ukH+T~}b4H`2Rl%j6(edHneF4sBcCi4bKLq2q3r)l!TtDKBXqup*z zkqYRI)wFQ>RCL~VNBqs<;4W1qKt@%m*vU^$t>Ij|nrKfx#kLwq?CuY+_z7$y`Q^mcEaj&o)mE#e&U4(Eg-af1ZSWh-4%5CP zE3-K^=ENqDv8F?oUa@iI{2@b;)#b;sxgrL<(p=T$r~u1PNbF~^#B7p4-aXXUIp;cb zRJp?3f2gs2&%)AhYqz&+^;HTmBx~??a2Y{H%i-iU8144x$x5PjC?9sHp9#?$$W@0~ zy@&FFI3|h5u}UhS(5%RQMxK9%@tN^bUUZxw5qP77&2CROcdax^JmA-Y1pxxZFaQ9e z0NND>2e^ybW0e;g!mmA^VbZcF`#9CP8;q88ADY>32=N0@qlTPz>gU>}d)=*IEpd+& ze#m10KtC413XrDJ2H>eY9&hvO6)zfW;@tn($j#kNb0hI8nnqW;ci?7Gn?|>4H=io^ zd>xUtR|!bo)UJh$_58y64+$lB<)8}=(~9Jx7d^hsdVW;4Z}nb6&L>VSe==L`aI*6Y zY;)@B`94s8yEf3uPD{AKcxKFxan$|SJC@%Z;jbrjj5V+)_w0+aj{JTL+j+M0KBVh} z@lrACjMm3Gpe+E7C&${Y$Y!ix5guk8y)~YFYIs*>elgPLuycnr_o~^5en_=fmUJ&A zz;JXLu~2{=%*CoBMcr;f&{#P(tk;JNZp80@D@5cjRaHVNE{s0BN_>+USlhK9obizw zBdKF${j;Z@M>JC6rDiQ=<;IN?-Y_<;+UOMU5Ke}S#R1^koM{4V;;T&KyD{T)Eq0oF zM0I{D;rJYxoLg+IzvH~rlQC>@OezkWcOY(y*Qn!4W2K}1)c0_K84+`0 zNRqiwOQsQHdFg+D=7uI?phr3>M{tj-T#&q1w?wPQvP#Ni`EKUYrB28&-#;AFmp@<* zMo+r@{?sTF6s(_G!z^v`GQ+K>qQsA!OsJ&-)9PJ~c{6|87YqqtHWoCIS~f!IT?|63 ztj>DyCw9*&7=GMD+McKSZ!`4N)xHX4j+>i$#!NPPpgK{LlI{(Zs<|W)(*#G3b{Dy$ z$orgJl$Nj^N2{l2kLstnG#W|CP^m7zf2NxJvUV7dZ`VB30RX!>hAL@8pr&Ioxd*9F zJ(q`l`@+qs>n_qW{3>qFtd{}S2uwuTLHZ`Zn&ZImmLx+`p6r5EX^Xya%|#oHQt50g zfSTVGNP!;!Fj|;9aC|%)CMAdNwT{Q87r5SDt5H%RHYbqiu%#SB`beSy#jGfc9Wpio|IP@x_UP=+Ul@|*jU~)v15zt z?R76{saE9lPw$(TZpMWvm%R6DPI(jQQzp=^v)_I<(pb1z_*~w-boD~dh~7z7KCCTd z4LEIf>O=ZRgTt$!QPA>G{Mpg4?7F8%O)Ag++`+xY@7&-&T1Qsp4WQ)qy=;*-`LbcT zk?+7iS0s@hD4UjMq++7BVV3()L##8R>EC-rFl%`PStCsqvzW=@5>ieULoL332zrY> z*L+O8(3AF+`5@|IhHk{#C2(pt;RV4~gB2=kqdsjaj!0X!goiA9QUTK~(G1f(1K)l~ zK7k2*<$YZ;SEWhUgzKZzj1dV~n+4X%Q8~sUM@nX++KM zCBO*C(kgwY-#q**+6A7;ui?2EUW%JdNivhS)fscQCDN9%PmGnceE$rGuA;IE0`sN+ zgny35b0G0Nqf$a?HySL5!*~k0wB%LuFBP}34w`3)3gCgSH?D;ldU0X8Ehsf>?fo2? zp_b&97&1x`jR{@0J+M2$)z0{|AWMzIt^3{WBx~dI;@32v1lTMr!EZ6KLJIdj9qF9K z!4?yA$Tk6F=v;9v#a7K*)__#Mi?~P*Hyib%ySY@4!(W;mN5+Ri7q62RRNyAkD|lt` zBLw-*xdB5!k0>3pcPz2i7Z0cd>NCx#U^->$!pg9=NeLHebHB*M+ppC+v_k=ax=d4O zCM0-VLOT+Grbe81kl$IeS5CJG$lyAxWaSQhfr*ALfM9da$p9ecox2C)13~Rz&Eie% zvjy>9Kl!J}z10DfPym2kwFv-F6%7%jLN9%S*>3o_#$oVc?Q39@U`eixEb}u|fB{gu zBvxNgh|C-j(-Ex0ScCRbQuBrYEcCVj%54CEGZw&@lvk;n7i8{IP5k3PeYt>wM>F!2 ze^8oh!HIYUgr25;)UyTIQ4OsakLziEy@8II$&7Cq>$fHopN@NL1y{z^=6kD4#0&Pi zG9N{yUS3!+o0Hz5d|GgC zR~P%*n7+DZN#kvDZascCXPD)-*ye;_>}jY7n6?r60bJ%IkA$HMxIoz$E>o(L$W38`99-i8Z^b!s4AKrN98&RPT4QGRLkP4U z_$GB-NwIW&M;X4Nt1`sqM4iea7rtVKek>S<%r>A9@`#fR}_-M3s*Aa{&CUaj0a7%l<$hBavgWo*u}*#s#aCN^)? z&v$r}Ve0A&#F{%_D&zow-UdyPH<$c$Rj?=)(h;x)ur$hDUdW zC$9|v+S=8ZtY<|+TUHZ;t)CgZx`|YHx>;W`!Jmg5g<|A?utzHrU~Ec?20oG8;_i?p zIo|gS6;!gd0uj^!U2#)98z=u8aU5PU^flqRf|KWBXgOywT{h`IvkV#yz;y0o?y z>3I<~6W8(d{oxq7@p`1;d$<(x5jhfli~9JO99Ei?GwX~*2(>01L7pZ@K8x>AoJyx$ znMHywNYtbL^u{G0%cCoWXTRdXZ?KL1aSxf|;U{9@tg$H(h!*9CjtWu;x|ubuL`#fRUJT6M^WvY4phLheS=O5v%MX zDN1p7QBo%bBZ1O#kHDZnMb^_yPPon@#z|oh(-jOz#yjoz?L)n>)z3KZ93$_r5V?zx z@AC6>Pvcm=Qr5Rktl(i#Tas-AYuwHiM-C4cLv9zBKqGn+9Ge%#oLE1{$iPvdubslp zXHb2>A}_SlGZn47vU{p$T631rD9`EwBvL?@JYA@Nf_t{PQ_m+_HcCmPm00=auYKw+HpV9mqoq3-P4 zS?b>H0{j5c|5a?JBL9s1Qj57{@w`Tsz?y0_nMWgpI(Z80%4Fj;fP|U=wrVmSVoja2 zD9od+IyzMZgwRzs7TKP)74GbyjYotMta+gW<8_GOFL{f>3Lcb?YcH-Hq?ojH@n-Vm zA(M-TT(FbHgdF11$UDUY;g4s(1AeZ{7GTE&Cd83>;I9)Tj4gD6P<}X>J#3R-?M%kn zb8WXWWd)0ixhCPg`IT>bWcNr(-xM!-MWk(wIS%<424Sa7|2GdnbYE6v^Z>)(1Bcg^;|5aO%XXeJ=TMH>HL(n=WER_G0} zXoY`}own_s-6bvh9QBhn7U1cFMBq4@QqkJC0n{VO%&lM{=^ZU$N>=Dws{v{Z#a^EX zP3??d3MOBv<^Df6M_)PjS2pk!eM=^!iGD8>7edG_kSc_ufN$ELiymh|uDV}^asqL# zZXrDCk3zkd#Vbgzl@>&C$&B$%y42z(v}XczR`0zM)~`o)QaF_W(;vjzAJb^{bC3(A z746`TlI^6IDmx9bw$;U*ewIRho~Z&*TuUhw220DwT3OKDk*uO5Fa5ztk0n1P_PWdd z!Ggu(7VM2iPH32*4fH!dosWNv{w=!kK}Vc>G8+q0`<%Kq?mg&mhN?dsSyBx6Zym+2 z1#q=&VTH28A#e&{lBLg)7C_6j1sJ~<2606KC|F(t2)1y_asFA4q~HTe?->p30l7R- z0w|SP1^9Jh)3&2F(k_MX|HE<-aIX@nEBE9I!v8gf&TUBHuyP;H`H`SIq9p^bzxC!ip`PPwPOnkac zepO%PraS&rk;wqPWqEhqB8*5?%{U0#G|N;$UnuXi4u_%BlI7msMA74Wuf>HVf5NG3 zmYQW+sB1gVBVnmu{W)u_9Pi9ZD-Xp|0$+FybA2yC5cru^|vneS|la04IS^ozh-AXjDy-Dem#da@>Rm3ZW zGg8BjS}Ec@F!R9}_p^he-BT65giz-Nt-)U{*4NqRa+WE+uY6?Z zmqu+l(<(;GhL64WaZerolX;a8K|C1JB@6=7!~5>oHkkCc#e1C%Hj~AC?W5Dhh(tuH z*;16VYl&X<0dTA)_N#3oV~Bw&H0_;w`wtFjL=SMt7Go0$LfT+P0d`xF0aj|G8&;NU zJuEwC23TYA`XBKBgOCcwHlQV7#Z_TOm#fSOlmza4RQY=x#w*IGCsiSGi`k22^s?D+6LoM+nK&+ly%FPzaVt%I&a6(1b2E0Qfrmd?1 zg;Gf}%-N;qrAWAu1ONZUpd>4GM=Ex|W87mUuzFrH(+~rVd)wl>lSwnLqfdF>JS+NZ?-Y{{CqD%0@<0^9dnnA}|oC0d!1 z$J1l*`Yv zRJmWtq2ntU$hD>Jo`e5Mi^vxT6DEcXV-Ama*5e=0=X~5=ily~vI>&gl(cLg>v2wT} z;2*r}*Y4r$8tp(3b*Zo_?VWvhxQJDl2S%ZtoGP;wjd#UndVB=OA z1ss@GVViNobI1Wq1~+nUyP0>y0($Jpj|oJ`T~||oz!4QcVs6K4aCFza)}7^0VPlxj zzliOfg|Qk}X!nyX>wHaOpW*PUG&ysr>ZJ-yTg9C_ZN7zMxdX@BC#SC_Yda10#S%(&hCuw(Wb^^S7C_*%t_1q>#&M2SZ&E-5Cxh?xd}!rw2dI zV5@Rs*2v2?fwQ+E#qQ@pnH0~*MtdavC-z~U;wz(uLC~c_{PXgW3r35C<_R&*jh1q$ zIlqQyHIeyN`#S7{IdUEII?f?hYX7IKYk^8S+xmw;pa`UZifLkipr&MsJ?u4uhzUN* zd?jTK8a7R1jZvDtX7CwG8Q>$ea-`JM)B!TntOj2N*4(hyShwcW3A^U_^%|?0zL~k- zvAW&Xy=$Gt`nwkEFX!yv-ut)r*=L_7SFb<9^j|x9mG-=veDI4-fXb=~@gpRW$V{$6YcNWvEd|rw`bGg$=Ut`^nmUv3*)UY^*t%@$;9; zVY6fOAD(*CT=yFL$;`j4{sup{zBGETS4#8I`$OpE%c>n0ZmeDeM8&bj$O_A)?&%^m66r zC~Ej@ssjMX7%Zsup3_T;#Av;+^%)yZ+PRl-l06%zy80)Uf08j?f8-2J(kA}DgSszJ zMNx`$Z1cu47)$8jO_*wTHi1KVCeUFaZ#t!7SWAO@Jo0m}6ab1x0)TG}+5Jy5lhMmj zJjHG|J)huu=2|J>Gv9lwiJy!JMg#@d7V*2B>w91uO`0g^z6t)CcSgq@%#ah8pa|ev z8~(xYPR}Ohqr~{4l~&Rq+0=RN>wGokxS1hUr9tAx1CXFibF^Mh%bwk&J!0D7EgjX8 z4jO?-JoNJB@`H8U;a2H(d1%;_OW&NdH{WoU*xU=+3-4*~OBtLXb|~9!i~huj-S}6S z_Tv2Yt11TOVcYv^IffrYKH;tB@5?EOesXor53Mz0k*urWjyd4Q@jJagl-+20u=j{C z{W{~fXAKP#1CCk4=e5-*@BdIa!7nbkF|Y9Xirw3uY(9BGT){q(vWQhg$@8^Tb}v16 zZWlR|qc9Oq)q><;-rz)q^KCz`BgChyOty7H!>4Cb<{=$Rd)AGI_0D{5Y=OHD@kK88 z3)@!3Kr&zx6KI=CP{W8Ho+LnJXf3N%>n6C4H6(*jf;*=C-xSsXq8eXy^2Kn&|HO_w z_SLO4oiDwwb%`}M8xpFUuI_XBj$HFCf9i*_jr#7Bi#qU6TxNry{rJd zvZ{V?M49pidr50S^rb?>8B#>uoxIq^_LI!MF)+fTt5U3sjQh zrgSC6sp3h<>bl$j8=EgDAy)A3tpm2?lm2DZo8sgzfCCQO51dhvBV>lL*xD!sm_cyQ z2%bTwRQt{{gvSae1cC!40@aY|{$A0|sKt@YSe;Vx)ps%1HwQ@2S~~Iw#&4TSzJ64_ zEU$SM%`QfNvAFKF{i|{EjV6*IN+EWnr2Z}6xFPQfS`y@!i0sP`CsrTJ^BU-%!-{b+ z7woppO%)8bw;ydI>$wwapLNE{Srr zkFR{567}LF_k1VK&|K+z^TtFyEM=nqFlz}#H=Q+9W8^k`<_%b^Q7Xp><1xd@wi+^h z%^a{qj^@IcVU!2pg`O~JcMLW(UW|?`#|J0G*GmkgeurZRHx-Mrww%&TIt?5N-?4S6 zwB0ozJs-^sF?OwAvDCbtw<#P`fj>3)DZk5AMiYL1dN5wOMcUG*Za7b1)ndH5Nw8A} zaowLb$PhusvzzX^T9;4p9AqgeuB0O75i%2Ak!SpEysN~Kq$W#Td`V0(D_kQxv&_y? zAt(@M=4P@I)CCF{7y*=v2_QZw8eb5q(a}JY_rB=^=Rq-ona*aliQm(KV}1Z@qU*PTFmf^UBYIu z$Ir`7Jgu!rWjvxcx(#&xVu3Yt_X@9ShJ9sZkJv3T3>JVGOL>86QiPTk?3hy#*$~I6 zn%pnq9Et0R>QZWRG8RV|r;hh0VJ7?Jt-98OI*viO;!UM&emnvk*TdBs_!q5bI`=C}!W8Xc_fsi)R%nv+l~dU= zN_K4zd9S0ljEC*t&0M#?Pu8!Na-Efi5v3>I5b&K|2#{Ovmi&Om!)m}Or*~&YW6N`5 zT_y59yUtdM1GZ&u9u76qcw^)^Z%Iz||B>K2zQqEW70@Z&BS$0tq!&EVFm=R~QM#LD$ z=pcFPxd9~EZ^4R_=8$KX8QA+dVse=XXQ)~`A&$BkJJwK@?h(U{nH-nCYzm z6fzTy)MwyIzJ~PdPt$?*q9jHpTQW4|8qtGkAqj~9j1yalMZ|&9PKpnQN72(pB%2`U zc!10UI0dY#z$w~Ms0;2rX%Vk~*ky40kBl5DkRkBD}<1-qat=ZBNB1Jy&aE&KYeR<=Gdjk_}~ zxQCMjmen1#g}5f(wY=Z&rL(p2?jqSNMN?@iX7CCU(c8xqOi_0`r}a_+&Sy2kH?rZ; ze(<8*1njuA(?ER>=IIGKxZ?^8Mr$OmhYLB} zMXU7^#?o@r*^xG0bOCle?h~n)+l0ID+~yACe&f-}1o!<1*VNqevq5cC7evjIV<_%? zU|*X&B?tI1fFLrG5gg@B2WN-*zq!~7YI#9cyZlpn%zm@rcfS$7>JB_M*01x1im!amBl>gdWfCA;Wz)JIgzsAkstY- zquV~^yXjqA@evP_3^hY~cmTj+yjOU6gZ%b+)$h4cY3&qYSmCn#q*QDIlqoy#%>n*o z<*yE_(-UhR{xBIR5G+$>batujieCv#Vid(^%}c*hj<4$U@z{l8N=K5;-*ygrDM=p8 zF_&86ml#c}e>Ri3>wLV@GLwGvJ8H8AU;1D&RHUJWiF5#Tg;+!vuTaF!X~qysJ`LsW z+-*pGQlwiuz^a!5d^vBr9tZfmQ%m@XQ?ld}8ogvsdNaHI#b#~R=E6vi@iwgD$5>9~ zqzJQcApw$QYvC%H7pBg#3#F9b{hX#_g3}Mzm86}$7Dq915hXB9=wDj-~+vdy=N9|Z`Y<07Do@5R0G*; z!>nOkvhM^`#NFiXqArU_dN##5lC6Hg2$-)5N^~a52UiG^%5|pIZFcwb+sLMnAWDO6 zYW!GNY-j9wcvL+~IY~D%-MYM16q*>don7U#r#@zl@k>#t(TX+ygfgiyB0X{bZF)^*#xCJUeL$4_+Uc^1h0vN?N;=Biq% z7dn{~rObeh`m^D&p^bLaGJ0EAh1&cU49A}31e~8@oG$*%Cu1GL$UoU2RHh7(B#FIz zH3eYc*KHcbM4f4iwKex`XhFj%c6;$pWd+?=Xkspos-0A}I_4-=4%!j(aLVTvjpBO? zPS0$C2J}6J1;FhRs9UBfF0Yqrs3Q39F?4`0dz%}!5OtZSX)P7sJTcZ7ykz7R{{44Kf&)PAM%AKmDzv?~- zIUfiwSy%NMRs%n^ji0gCJZWE$z$NJoUAXq+SXlRpPg6gB>5LxTseeV59#Bni(E&On zm>S9mhddkencOq?cL!uNPQ_&N8`hBGfsUALgj0bR^J=_W%)6O9e`FU+s0qtuMahC} z_N*jRc&ITJKrMz2N%e1sz(v}A>|GN(xF3IYPPMOH!E;W@!2Bx{TZ)(|Y3B6!Xv;VL zsDMIK^?AExgk@;1PcDJuDD!&a|Lc$*FAen)%zV1c6~Mc6jnn3cDhGChMi}+W0Xjgw zBG|DYAD|H!Yfd{^%sw9ACH;v+8XZvnA@Twq@Zq(E6{I&gCtS=|Jw=4qH)@m5y!M#o#X9qP z+Ou(YZA=pW6I4E=!vxpXRF(sSLoC3(7_RJ2Ry>>}Grc(C?n4x>;DK?gEn&8~&%VcKz#GHue-^n>^Io#Miey_Pg$hPJ=UxV+QUOzY> zmDK?>bVE&$N|Y&crKG=dzRN4f@1F9qhDvZNtuUK04f})`{LcXx9l)$aJEaJV#H<31 zuoj0)VS0#$%RBEdMR9tU`+Kp96LJ)rBm}4b?Xn7h&Ex_JYFo6T)*!M=Ql$X^KDKx7 zpQ$`*(jcp)WJNYvx+^a_vJ_!1)fn6~pM|UHPiOj{YEM6BukAW&ARDA_k`l>jRbuI2 z4=s^rU}tcOGS(mBIQsM1xoM__NF(gwsdSSLdJxhKzS&{I<`C)f4ho->?x%W2K5XN) zaK3O)YI_u|GNUPJpyca^XFI~qRzjl(d-7P5kQgTKxT(}PjX?mWl~!dHiMm^GE@fS3 zyT-uYk)Y&%NtoR+(T`(npRQ0}DR#VHD2f_it+B zA5zf6D(|o#02E0 zLdc=$iyHH_in6Er{qvCfwH=4)3997l)z%r7aMeFfJZz6@tq5F#q)DE^!#dn0=8W}P zsV=Gu%S_e|l=p--@`|MPVa5u4jh&jba8r)-7WoyG(t`))Fn6SsbL4j=r4pU5eBK>tU8SrCde^3HC>P^Q0Gf$+l&k8 z=$d#4<`Ou4=!*m&1~Hd+OeKh3RHpq!Oqw1%#JL{ zJnOL&mlCk{D?^r{Rd)fAPk&8 zR`(Cjh$|~#;y}(<{6^~3{P@%K0Ir} z61=7by6NXXc*0t-ZU(H&!zM(`I^*`5Z>l^buVS?Ejnujh4$KsWMTEp4C|SEOA*asQ zh`^aqV?Lhm3gE+VcGWdnPRH2AhW0j1h+V_KLDXW6{Aw3z%^kU6{f==0SrW zlkYa%da;@&5uFZ9q$QlQl;@B|VI^GA?LKdFju6!LjR3IaA1$~7 RfFk;IqUk@7|LH&P{yzie!Epcp literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/file.png b/gui/devices/1080x1920/res/images/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a69b6199618233b6f30703a9a6d47b77c47eacc3 GIT binary patch literal 1267 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 Qg@2oXttA>&X6_yTe-II=(RoP7uYK!tuC5FoDr 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 Ytv2pH=~?4G@Rt+78ChT-8M?;*2c-iWz5oCK literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/indeterminate003.png b/gui/devices/1080x1920/res/images/indeterminate003.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb597482d376adf19acd3d55fca587724798092 GIT binary patch literal 3772 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/indeterminate004.png b/gui/devices/1080x1920/res/images/indeterminate004.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff77341d9e6733b388b5d88d14422977e2c6248 GIT binary patch literal 3760 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/indeterminate006.png b/gui/devices/1080x1920/res/images/indeterminate006.png new file mode 100644 index 0000000000000000000000000000000000000000..9eed176000d69adc9daf6e0a08d7dbcbb554db9e GIT binary patch literal 3732 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�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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/keyboard2.png b/gui/devices/1080x1920/res/images/keyboard2.png new file mode 100644 index 0000000000000000000000000000000000000000..63a5b6a19c960991fe4ee46caa4d7efd20ddc7d3 GIT binary patch literal 66480 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
+ + TeamWin + Backup Naowz + Default basic theme + preview.jpg +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tw_clear_destination=main2 + clear_vars + + + + + + + + + + + + Install + + + + install + + + + + + + + Wipe + + wipe + + + + + + + Backup + + backup + + + + + + + Restore + + restore + + + + + + + Mount + + mount + + + + + + + Settings + + settings + + + + + + + + Advanced + + advanced + + + + + + + Reboot + + reboot + + + + + + + + + + + + Select Zip to Install + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + + + + + + +
+ + %tw_zip_location% + + + + + + + + + +
+ + + + + + + + flash_confirm + + + + + + main + + + + + main + + + + + + + + + + + + This operation may install incompatible + + + + + + software and render your device unusable. + + + + + + Folder: + + + + + + %tw_zip_location% + + + + + + File to flash: + + + + + + %tw_file% + + + + + + Press back to cancel adding this zip. + + + + + + Zip file signature verification. + + + + + + + + + Inject TWRP after install. + + + + + + + + File %tw_zip_queue_count% of max of 10 + + + + + + flash_zip + + + + + + Swipe to Confirm Flash + + + + + + + + Add More Zips + + install + + + + + + + Clear Zip Queue + + + + install + + + + + + + + install + + + + + + main + + + + + + + + + + + + + + + + + + Flashing file %tw_zip_index% of %tw_zip_queue_count% + + + + + + %tw_filename% + + + + + + + flash_done + + + + + + + + + + Zip Install Complete + + + + + + + + + + + + + Wipe cache/dalvik + + + tw_back=flash_done + tw_action=wipe + tw_action_param=/cache + tw_has_action2=1 + tw_action2=wipe + tw_action2_param=dalvik + tw_text1=Wipe Cache & Dalvik? + tw_action_text1=Wiping Cache & Dalvik... + tw_complete_text1=Cache & Dalvik Wipe Complete + tw_slider_text=Swipe to Wipe + confirm_action + + + + + + + + Reboot System + + + tw_back=main2 + tw_action=reboot + tw_action_param=system + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to reboot? + tw_text3= + tw_text4= + tw_action_text1=Rebooting... + tw_action_text2= + tw_complete_text1=Rebooting... + tw_slider_text=Swipe to Reboot + rebootcheck + + + + + + + + Home + + + tw_clear_destination=main2 + clear_vars + + + + + + + + Failed + + + + + + + Successful + + + + + + tw_clear_destination=install + clear_vars + + + + + + + tw_clear_destination=main2 + clear_vars + + + + + + + tw_operation_state=0 + tw_text1= + tw_text2= + tw_text3= + tw_text4= + tw_action_text1= + tw_action_text2= + tw_action_param= + tw_has_action2=0 + tw_action2= + tw_action2_param= + tw_has_cancel=0 + tw_cancel_action= + tw_cancel_param= + tw_show_exclamation=0 + tw_show_reboot=0 + %tw_clear_destination% + + + + + + + + + + %tw_text1% + + + + + + %tw_text2% + + + + + + %tw_text3% + + + + + + %tw_text4% + + + + + + Press back button to cancel. + + + + + + action_page + + + + + + %tw_slider_text% + + + + + + tw_clear_destination=%tw_back% + clear_vars + + + + + + main + + + + + + + + + + + + %tw_action_text1% + + + + + + %tw_action_text2% + + + + + + + + + + Cancel + + %tw_cancel_param% + + + + + + + + action_complete + + + + + + + %tw_action_param% + + + + + + + %tw_action_param% + %tw_action2_param% + + + + + + + + + + + %tw_action_text1% + + + + + + %tw_action_text2% + + + + + + + + + + tw_page_done=1 + + + + + + + %tw_action_param% + + + + + + + %tw_action_param% + %tw_action2_param% + + + + + + + + + + + %tw_complete_text1% + + + + + + + Failed + + + + + + + Successful + + + + + + + + + + Back + + + tw_clear_destination=%tw_back% + clear_vars + + + + + + + + + Reboot System + + + tw_back=main2 + tw_action=reboot + tw_action_param=system + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to reboot? + tw_text3= + tw_text4= + tw_action_text1=Rebooting... + tw_action_text2= + tw_complete_text1=Rebooting... + tw_slider_text=Swipe to Reboot + rebootcheck + + + + + + + tw_clear_destination=main2 + clear_vars + + + + + + + tw_clear_destination=%tw_back% + clear_vars + + + + + + + %tw_filecheck% + + + + + + + + + tw_fileexists=1 + %tw_existpage% + + + + + + + + + + tw_fileexists=0 + %tw_notexistpage% + + + + + + + + %tw_action_param% + + + + + confirm_action + + + + + + + + + + Factory Reset + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. + + + + + + + Advanced Wipe + + advancedwipe + + + + + + + + + + + Format Data + + + formatdata + + + + + + + + tw_back=wipe + tw_action=wipe + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page + + + + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + + + + + + + + Backup Name: %tw_backup_name% + + + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + + + + + + + backup_run + + + + + + Swipe to Back Up + + + + + main + + + + + main + + + + + + + + + tw_backup_name= + + + + backupname2 + + + + + + + + + + Please Enter a Backup Name + + + + + + + + %tw_backup_name% + + + + tw_filecheck=%tw_backups_folder%/%tw_backup_name% + tw_existpage=backupname2 + tw_notexistpage=backup + filecheck + + + + + + + + A backup with that name already exists! + + + + + + + Cancel + + + tw_backup_name=(Current Date) + backup + + + + + + + + + tw_backup_name=(Current Date) + main + + + + + + + tw_backup_name=(Current Date) + backup + + + + + + + + + + + + + %tw_operation% %tw_partition% + + + + + + + + backup + + + + + + tw_back=backup + tw_complete_text1=Backup Complete + tw_show_reboot=1 + action_complete + + + + + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + + + + + + +
+ + Select Package to Restore: + + + + + + + + + +
+ + + + + + + + restore_select + + + + + + main + + + + + main + + + + + + + + + + + +
+ + Restoring: %tw_restore_name% + + + + + + +
+ + + + + + + Rename Backup + + tw_backup_rename= + tw_fileexists=0 + renamebackup + + + + + + + + + Delete Backup + + tw_back=restore + tw_action=cmd + tw_action_param=cd %tw_backups_folder% && rm -rf "%tw_restore_name%" + tw_text1=Delete Backup? %tw_restore_name% + tw_text2=This cannot be undone! + tw_action_text1=Deleting Backup... + tw_complete_text1=Backup Delete Complete + tw_slider_text=Swipe to Delete + confirm_action + + + + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + + + + + restore_run + + + + + + Swipe to Restore + + + + + main + + + + + restore + + + + + + + + + + + + Please Enter a New Backup Name + + + + + + + + %tw_backup_rename% + + + + tw_back=restore + tw_action=cmd + tw_action_param=cd %tw_backups_folder% && mv "%tw_restore_name%" "%tw_backup_rename%" + tw_text1=Rename Backup? + tw_text2=This cannot be undone! + tw_action_text1=Renaming Backup... + tw_complete_text1=Backup Rename Complete + tw_slider_text=Swipe to Rename + tw_filecheck=%tw_backups_folder%/%tw_backup_rename% + tw_existpage=renamebackup + tw_notexistpage=confirm_action + filecheck + + + + + + + + A backup with that name already exists! + + + + + + + Cancel + + restore_select + + + + + + + main + + + + + restore_select + + + + + + + + + + + + %tw_operation% %tw_partition% + + + + + + + + + + tw_back=restore_select + tw_complete_text1=Restore Complete + tw_show_reboot=1 + action_complete + + + + + restore + + + + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + + + + + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + + + + + + + + + Mount USB Storage + + usb_mount + + + + + + + + + + + Decrypt Data + + decrypt + + + + + main + + + + + main + + + + + + + + + + + + USB Storage Mounted + + + + + + Be sure to safely remove your device + + + + + + from your computer before unmounting! + + + + + + + Unmount + + usb_umount + + + + usb + + + + + + + + usb + + + + mount + + + + + + + + + + Reboot Menu + + + + + + + + System + + + tw_back=reboot + tw_action=reboot + tw_action_param=system + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to reboot? + tw_action_text1=Rebooting... + tw_complete_text1=Rebooting... + tw_slider_text=Swipe to Reboot + rebootcheck + + + + + + + + + Power Off + + + tw_back=reboot + tw_action=reboot + tw_action_param=poweroff + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to power off? + tw_action_text1=Turning Off... + tw_complete_text1=Turning Off... + tw_slider_text=Swipe to Power Off + rebootcheck + + + + + + + + + Recovery + + + tw_back=reboot + tw_action=reboot + tw_action_param=recovery + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to reboot? + tw_action_text1=Rebooting... + tw_complete_text1=Rebooting... + tw_slider_text=Swipe to Reboot + rebootcheck + + + + + + + + + Bootloader + + + tw_back=reboot + tw_action=reboot + tw_action_param=bootloader + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to reboot? + tw_action_text1=Rebooting... + tw_complete_text1=Rebooting... + tw_slider_text=Swipe to Reboot + rebootcheck + + + + + + + + + Download + + + tw_back=reboot + tw_action=reboot + tw_action_param=download + tw_has_action2=0 + tw_text1=No OS Installed! Are you + tw_text2=sure you wish to reboot? + tw_action_text1=Rebooting... + tw_complete_text1=Rebooting... + tw_slider_text=Swipe to Reboot + rebootcheck + + + + + + main + + + + + main + + + + + + + + + + + + Settings + + + + + + Zip file signature verification. + + + + + + + + Use rm -rf instead of formatting. + + + + + + + + Skip MD5 generation during backup. + + + + + + + + Enable MD5 verification of backup files. + + + + + + + + Use Military Time. + + + + + + + + Simulate actions for theme testing. + + + + + + + + + Simulate failure for actions. + + + + + + + + + Time Zone + + timezone + + + + + + + Screen + + screen + + + + + + Restore Defaults + + + + + + + main + + + + + main + + + + + + + + + + + +
+ + Select Time Zone: + + + + + + BST11;BDT + HST10;HDT + AST9;ADT + PST8;PDT + MST7;MDT + CST6;CDT + EST5;EDT + AST4;ADT + GRNLNDST3;GRNLNDDT + FALKST2;FALKDT + AZOREST1;AZOREDT + GMT0;BST + NFT-1;DFT + WET-2;WET + SAUST-3;SAUDT + WST-4;WDT + PAKST-5;PAKDT + TASHST-6;TASHDT + THAIST-7;THAIDT + TAIST-8;TAIDT + JST-9;JSTDT + EET-10;EETDT + MET-11;METDT + NZST-12;NZDT +
+ + + + + Do you use daylight savings time (DST)? + + + + + + + + Offset (usually 0): %tw_time_zone_guioffset% + + + + + + + None + + tw_time_zone_guioffset=0 + + + + + + + 15 + + tw_time_zone_guioffset=15 + + + + + + + 30 + + tw_time_zone_guioffset=30 + + + + + + + 45 + + tw_time_zone_guioffset=45 + + + + + + + Set Time Zone + + + + + + + + Current Time Zone: %tw_time_zone% + + + + + main + + + + + settings + + + + + + + + + + + + Screen Settings + + + + + + Screen Timeout: %tw_screen_timeout_secs% seconds + + + + + + None + + tw_screen_timeout_secs=0 + + + + + + 60 + + tw_screen_timeout_secs=60 + + + + + + 120 + + tw_screen_timeout_secs=120 + + + + + + 180 + + tw_screen_timeout_secs=180 + + + + + + + Brightness: %tw_brightness_display% + + + + + + + 25% + + + echo %tw_brightness_25% > "%tw_brightness_file%" + tw_brightness_display=25% + tw_brightness=%tw_brightness_25% + + + + + + + + 50% + + + echo %tw_brightness_50% > "%tw_brightness_file%" + tw_brightness_display=50% + tw_brightness=%tw_brightness_50% + + + + + + + + 75% + + + echo %tw_brightness_75% > "%tw_brightness_file%" + tw_brightness_display=75% + tw_brightness=%tw_brightness_75% + + + + + + + + 100% + + + echo %tw_brightness_100% > "%tw_brightness_file%" + tw_brightness_display=100% + tw_brightness=%tw_brightness_100% + + + + + + main + + + + + settings + + + + + + + + + + + + Advanced + + + + + + + Copy Log to SD + + + tw_back=advanced + tw_action=copylog + tw_text1=Copy Log to SD Card? + tw_action_text1=Copying Log to SD Card... + tw_complete_text1=Log Copy Complete + tw_slider_text=Swipe to Confirm + confirm_action + + + + + + + + Fix Permissions + + + tw_back=advanced + tw_action=fixpermissions + tw_text1=Fix Permissions? + tw_action_text1=Fixing Permissions... + tw_complete_text1=Fix Permissions Complete + tw_slider_text=Swipe to Confirm + tw_show_reboot=1 + confirm_action + + + + + + + + + Partition SD Card + + partsdcard + + + + + + + File Manager + + filemanagerlist + + + + + + + Terminal Command + + terminalfolder + + + + + + + Reload Theme + + + + + + + + + ADB Sideload + + sideload + + + + + + + + HTC Dumlock + + htcdumlock + + + + + + + + Re-Inject TWRP + + + tw_back=advanced + tw_action=reinjecttwrp + tw_text1=Re-Inject TWRP? + tw_action_text1=Re-Injecting TWRP... + tw_complete_text1=TWRP Injection Complete + tw_slider_text=Swipe to Confirm + confirm_action + + + + + + main + + + + + main + + + + + + + + + + + + Partition SD Card + + + + + + + + + tw_sdext_size-128 + + + + + + + + + tw_sdext_size+128 + + + + + + EXT Size: %tw_sdext_size% + + + + + + + + + tw_swap_size-32 + + + + + + + + + tw_swap_size+32 + + + + + + Swap Size: %tw_swap_size% + + + + + + File system: %tw_sdpart_file_system% + + + + + + + EXT3 + + tw_sdpart_file_system=ext3 + + + + + + + + EXT4 + + tw_sdpart_file_system=ext4 + + + + + + You will lose all files on your SD card! + + + + + + This action cannot be undone! + + + + + + partsdcardaction + + tw_back=partsdcard + tw_action=partitionsd + tw_has_action2=1 + tw_action2=set + tw_action2_param=tw_zip_location=/sdcard + tw_action_text1=Partitioning SD Card... + tw_action_text2=This will take a few minutes. + tw_complete_text1=Partitioning Complete + action_page + + + + + + + Swipe to Partition + + + + + main + + + + + advanced + + + + + + + + + + + + HTC Dumlock + + + + + + + + Restore Original Boot + + + tw_back=htcdumlock + tw_action=htcdumlockrestoreboot + tw_text1=Restore original boot image? + tw_action_text1=Restoring Original Boot... + tw_complete_text1=Restore Original Boot Complete + tw_slider_text=Swipe to Confirm + confirm_action + + + + + + + + + Reflash Recovery + + + tw_back=htcdumlock + tw_action=htcdumlockreflashrecovery + tw_text1=Reflash recovery to boot? + tw_action_text1=Flashing recovery to boot... + tw_complete_text1=Recovery Flash to Boot Complete + tw_slider_text=Swipe to Confirm + confirm_action + + + + + + + + + Install HTC Dumlock + + + tw_back=htcdumlock + tw_action=installhtcdumlock + tw_text1=Install HTC dumlock files to ROM? + tw_action_text1=Installing HTC Dumlock... + tw_complete_text1=HTC Dumlock Install Complete + tw_slider_text=Swipe to Confirm + confirm_action + + + + + + main + + + + + advanced + + + + + + + + + + + + + + + + + + + + + + + Swipe to Unlock + + + + + + + + + + File Manager: Select a File or Folder + + + + + +
+ + %tw_file_location1% + + + + + + + + + +
+ + + + + + tw_fm_type=File + tw_fm_isfolder=0 + + + + + + main + + + + + advanced + + + + + + filemanageroptions + + + + + + + + Select + + + tw_filename1=tw_file_location1 + tw_fm_isfolder=1 + tw_fm_type=Folder + filemanageroptions + + + + + + + + + + + + + %tw_fm_type% Selected: + + + + + + %tw_filename1% + + + + + + + + Copy File + + + tw_filemanager_command=cp + tw_fm_text1=Copying + choosedestinationfolder + + + + + + + + + Copy Folder + + + tw_filemanager_command=cd "%tw_file_location1%" && cd .. && cp -R + tw_fm_text1=Copying + choosedestinationfolder + + + + + + + + Move + + + tw_filemanager_command=mv + tw_fm_text1=Moving + choosedestinationfolder + + + + + + + + chmod 755 + + + tw_filemanager_command=chmod 755 + tw_fm_text1=chmod 755 + tw_fm_text2= + tw_fm_text3= + tw_include_text3=0 + tw_back=filemanageroptions + filemanagerconfirm + + + + + + + + chmod + + + tw_filemanager_rename=0000 + tw_fm_text2= + tw_fm_text3= + tw_include_text3=0 + tw_back=filemanageroptions + filemanagerchmod + + + + + + + + Delete + + + tw_filemanager_command=rm -rf + tw_fm_text1=Deleting + tw_fm_text2= + tw_fm_text3= + tw_include_text3=0 + tw_back=filemanageroptions + filemanagerconfirm + + + + + + + + + Rename File + + + tw_filemanager_rename=tw_selection1 + tw_fm_text1=Renaming + tw_filemanager_command=mv + filemanagerrenamefile + + + + + + + + + Rename Folder + + + tw_filemanager_rename=tw_selection1 + tw_fm_text1=Renaming + tw_filemanager_command=cd "%tw_file_location1%" && cd .. && mv + filemanagerrenamefolder + + + + + + main + + + + + filemanagerlist + + + + + + + + + + + + Browse to Destination Folder & Press Select + + + + + +
+ + %tw_file_location2% + + + + + + + + + +
+ + + + + + main + + + + + filemanageroptions + + + + + + + Select + + + tw_fm_text2=to + tw_fm_text3=%tw_file_location2% + tw_include_text3=1 + tw_back=filemanageroptions + filemanagerconfirm + + + + + + + + + + + + + Please Enter a New %tw_fm_type% Name + + + + + + + + %tw_filemanager_rename% + + + + tw_fm_text2=to + tw_fm_text3="%tw_file_location1%/%tw_filemanager_rename%" + tw_include_text3=1 + tw_back=filemanageroptions + filemanagerconfirm + + + + + + + + Cancel + + filemanageroptions + + + + + + + main + + + + + filemanageroptions + + + + + + + + + + + + Please Enter a New %tw_fm_type% Name + + + + + + + + %tw_filemanager_rename% + + + + tw_fm_text2=to + tw_fm_text3=%tw_filemanager_rename% + tw_include_text3=1 + tw_back=filemanageroptions + filemanagerconfirm + + + + + + + + Cancel + + filemanageroptions + + + + + + + main + + + + + filemanageroptions + + + + + + + + + + + + Please Enter New Permissions + + + + + + + + %tw_filemanager_rename% + + + + tw_filemanager_command=chmod %tw_filemanager_rename% + tw_fm_text1=chmod %tw_filemanager_rename% + tw_back=filemanageroptions + filemanagerconfirm + + + + + + + + Cancel + + filemanageroptions + + + + + + + main + + + + + filemanageroptions + + + + + + + + + + + + %tw_fm_text1% + + + + + + %tw_filename1% + + + + + + %tw_fm_text2% + + + + + + %tw_fm_text3% + + + + + + Press back button to cancel. + + + + + + filemanageracction + + + + + + Swipe to Confirm + + + + + %tw_back% + + + + + main + + + + + + + + + + + + + %tw_fm_text1% + + + + + + + + + + + + + tw_back=filemanagerlist + tw_complete_text1=File Operation Complete + action_complete + + + + + + + + + + tw_complete_text1=File Operation Complete + action_complete + + + + + + + %tw_filemanager_command% "%tw_filename1%" + + + + + + + %tw_filemanager_command% "%tw_filename1%" "%tw_fm_text3%" + + + + + + + + + + + Please Enter Your Password + + + + + + + + %tw_crypto_display% + + + + trydecrypt + + + + + + + + Password Failed, Please Try Again + + + + + + + Cancel + + + tw_page_done=1 + main + + + + + + + + + + + + + + + Trying Decryption with Your Password + + + + + + + + + + + + + + + + + tw_password_fail=1 + decrypt + + + + + + + + + + tw_page_done=1 + main + + + + + + + + + + + Browse to Starting Folder + + + + + +
+ + %tw_terminal_location% + + + + + + + + + +
+ + + + + + main + + + + + advanced + + + + + + + Select + + + terminalcommand + + + + + + + + + + + + + + + + + + + Starting Path: %tw_terminal_location% + + + + + + + + + %tw_terminal_command% + + + %tw_terminal_command% + + + + + + + + KILL + + + + + + + + + main + + + + + terminalfolder + + + + + + + + + + ADB Sideload + + + + + + Wipe Dalvik Cache. + + + + + + + + Wipe Cache. + + + + + + + + + tw_back=advanced + tw_action=adbsideload + tw_action_text1=ADB Sideload + tw_action_text2=Usage: adb sideload filename.zip + tw_complete_text1=ADB Sideload Complete + tw_has_cancel=1 + tw_show_reboot=1 + tw_cancel_action=adbsideloadcancel + action_page + + + + + + + Swipe to Start Sideload + + + + + main + + + + + advanced + + + + + + + + + + + + Install SuperSU? + + + + + + Your device does not appear to be rooted. + + + + + + Install SuperSU now? + + + + + + This will root your device. + + + + + + + Do Not Install + + tw_page_done=1 + + + + + + + tw_action=installsu + tw_action_text1=Installing SuperSU + tw_action_text2= + singleaction_page + + + + + + + Swipe to Install + + + + + + + + + + Fix Superuser Permissions? + + + + + + Root permissions appear to be lost. + + + + + + Fix root permissions now? + + + + + + (Fixes permissions on su binary & app) + + + + + + + Do Not Fix + + tw_page_done=1 + + + + + + + tw_action=fixsu + tw_action_text1=Fixing Root Permissions + tw_action_text2= + singleaction_page + + + + + + + Swipe to Fix Root + + + + diff --git a/gui/devices/1280x800/res/images/exclamation200.png b/gui/devices/1280x800/res/images/exclamation200.png deleted file mode 100644 index 96258a1c3b233f723ed05e0d285142c73ba26ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5260 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 diff --git a/gui/devices/1280x800/res/ui.xml b/gui/devices/1280x800/res/ui.xml index ef0b432c..5ba47009 100644 --- a/gui/devices/1280x800/res/ui.xml +++ b/gui/devices/1280x800/res/ui.xml @@ -41,7 +41,6 @@ - @@ -141,7 +140,7 @@ - + @@ -180,8 +179,24 @@ - - + + + + + + + + + + + + + + + + + + @@ -507,51 +522,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + @@ -856,15 +835,6 @@ - - - - - - - - - @@ -1263,6 +1233,38 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + @@ -1272,211 +1274,51 @@ Mount Menu + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + + + + Decrypt Data + + decrypt + + - + Mount USB Storage usb_mount - - - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - Mount SDCard - - EXTERNAL - - - - - - - - - - Unmount SDCard - - EXTERNAL - - - - - - - - - - - Mount Internal Storage - - INTERNAL - - - - - - - - - - - Unmount Internal Storage - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + @@ -1541,191 +1383,83 @@ - Wipe Menu + Factory Reset: Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is the only wipe that you need. - + - Cache + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - System - - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all media - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + + Press back button to cancel. + + + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - - - tw_back=wipe - tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + Swipe to Factory Reset @@ -1741,6 +1475,128 @@ + + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, backups, pictures, + + + + + + videos, media, and removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1750,10 +1606,18 @@ Back Up Device - - - - Free Space: %tw_storage_free_size% MB + + + +
+ + Select Partitions to Back Up: + + + + + +
@@ -1762,95 +1626,41 @@ Backup Name: %tw_backup_name% - - - - System (%tw_backup_system_size% MB) - - + + + + + Refresh Sizes + + + + + + + + + Set Backup Name + + + tw_fileexists=0 + backupname1 + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - + Enable Compression (Requires more time) @@ -1858,61 +1668,13 @@ - + Skip MD5 generation on backups - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal - - @@ -1928,27 +1690,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - main @@ -2072,51 +1813,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + @@ -2146,19 +1851,6 @@ - - - - - - - - - Decrypt Data - - decrypt - - main @@ -2187,89 +1879,22 @@ Package Date: %tw_restore_file_date% - - - - System - - - + + + +
+ + Select Partitions to Restore: + + + + + +
- - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - + Enable MD5 checking of backup files @@ -2291,7 +1916,7 @@ - + Delete Backup diff --git a/gui/devices/1920x1200/res/images/exclamation400.png b/gui/devices/1920x1200/res/images/exclamation400.png deleted file mode 100644 index f3a8aabb63afeee60f6822317e6514249684e13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11295 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 A#Q*>R diff --git a/gui/devices/1920x1200/res/ui.xml b/gui/devices/1920x1200/res/ui.xml index af438d7d..935080ae 100644 --- a/gui/devices/1920x1200/res/ui.xml +++ b/gui/devices/1920x1200/res/ui.xml @@ -41,7 +41,6 @@ - @@ -141,7 +140,7 @@ - + @@ -180,8 +179,24 @@ - - + + + + + + + + + + + + + + + + + + @@ -507,51 +522,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + @@ -856,15 +835,6 @@ - - - - - - - - - @@ -1263,6 +1233,38 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + @@ -1272,211 +1274,51 @@ Mount Menu + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + + + + Decrypt Data + + decrypt + + - + Mount USB Storage usb_mount - - - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - Mount SDCard - - EXTERNAL - - - - - - - - - - Unmount SDCard - - EXTERNAL - - - - - - - - - - - Mount Internal Storage - - INTERNAL - - - - - - - - - - - Unmount Internal Storage - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + @@ -1541,191 +1383,83 @@ - Wipe Menu + Factory Reset: Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is the only wipe that you need. - + - Cache + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - System - - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all media - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + + Press back button to cancel. + + + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - - - tw_back=wipe - tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + Swipe to Factory Reset @@ -1741,6 +1475,128 @@ + + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, backups, pictures, + + + + + + videos, media, and removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1750,10 +1606,18 @@ Back Up Device - - - - Free Space: %tw_storage_free_size% MB + + + +
+ + Select Partitions to Back Up: + + + + + +
@@ -1762,95 +1626,41 @@ Backup Name: %tw_backup_name% - - - - System (%tw_backup_system_size% MB) - - + + + + + Refresh Sizes + + + + + + + + + Set Backup Name + + + tw_fileexists=0 + backupname1 + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - + Enable Compression (Requires more time) @@ -1858,61 +1668,13 @@ - + Skip MD5 generation on backups - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal - - @@ -1928,27 +1690,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - main @@ -2072,51 +1813,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + @@ -2146,19 +1851,6 @@ - - - - - - - - - Decrypt Data - - decrypt - - main @@ -2187,89 +1879,22 @@ Package Date: %tw_restore_file_date% - - - - System - - - + + + +
+ + Select Partitions to Restore: + + + + + +
- - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - + Enable MD5 checking of backup files @@ -2291,7 +1916,7 @@ - + Delete Backup diff --git a/gui/devices/2560x1600/res/images/exclamation400.png b/gui/devices/2560x1600/res/images/exclamation400.png deleted file mode 100644 index 408193277e9754a1760cc3779cc14f4f98e96e70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37149 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 KdilDxA^!nQjY)|B diff --git a/gui/devices/2560x1600/res/ui.xml b/gui/devices/2560x1600/res/ui.xml index 96170b59..7c46a994 100644 --- a/gui/devices/2560x1600/res/ui.xml +++ b/gui/devices/2560x1600/res/ui.xml @@ -41,7 +41,6 @@ - @@ -141,7 +140,7 @@ - + @@ -180,8 +179,24 @@ - - + + + + + + + + + + + + + + + + + + @@ -507,51 +522,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + @@ -856,15 +835,6 @@ - - - - - - - - - @@ -1263,6 +1233,38 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + @@ -1272,211 +1274,51 @@ Mount Menu + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + + + + Decrypt Data + + decrypt + + - + Mount USB Storage usb_mount - - - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - Mount SDCard - - EXTERNAL - - - - - - - - - - Unmount SDCard - - EXTERNAL - - - - - - - - - - - Mount Internal Storage - - INTERNAL - - - - - - - - - - - Unmount Internal Storage - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + @@ -1541,191 +1383,83 @@ - Wipe Menu + Factory Reset: Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is the only wipe that you need. - + - Cache + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - System - - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all media - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + + Press back button to cancel. + + + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - - - tw_back=wipe - tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + Swipe to Factory Reset @@ -1741,6 +1475,128 @@ + + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, backups, pictures, + + + + + + videos, media, and removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1750,10 +1606,18 @@ Back Up Device - - - - Free Space: %tw_storage_free_size% MB + + + +
+ + Select Partitions to Back Up: + + + + + +
@@ -1762,95 +1626,41 @@ Backup Name: %tw_backup_name% - - - - System (%tw_backup_system_size% MB) - - + + + + + Refresh Sizes + + + + + + + + + Set Backup Name + + + tw_fileexists=0 + backupname1 + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - + Enable Compression (Requires more time) @@ -1858,61 +1668,13 @@ - + Skip MD5 generation on backups - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal - - @@ -1928,27 +1690,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - main @@ -2072,51 +1813,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + @@ -2146,19 +1851,6 @@ - - - - - - - - - Decrypt Data - - decrypt - - main @@ -2187,89 +1879,22 @@ Package Date: %tw_restore_file_date% - - - - System - - - + + + +
+ + Select Partitions to Restore: + + + + + +
- - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - + Enable MD5 checking of backup files @@ -2291,7 +1916,7 @@ - + Delete Backup diff --git a/gui/devices/320x480/res/images/exclamation150.png b/gui/devices/320x480/res/images/exclamation150.png deleted file mode 100644 index 6e05987c14f9ef683a87ffb2da4209e7f463ee91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6460 zcmaJ`^;Z9oq##JQNOzaCu=KJh;YuUjogy6q z()I55A9&B4J9FlqGc!LtGtYDHok(46RVs2IIRF5lf~dWGjT=+{XQafqUIx!~4L9Jq zzgATOR1L9i<0iy58mcb=_y248t))pg51EUau{!`j!SFxB17v1D!Z}IaL$qFzEReA< zNb$LP4y*$Jk6Iuv74^O5_H+Dd-r0H_1PohSr8CRnH@|w;s^{)Q5=5A&{))C5NP6zb z9ohZWm-3HoB`u!3ii)ac)#!iI@?tjyp-LRRD_Rh4eOSUVmkCClpG%SM4TPDatj3gK zQ7B3lU`G2vAFQ;{!;onjTEhjV6#b+hLF-r%Tl zk*h^@`m_~(t<~O@7j#~Eze= za8ibJ_tH1EOGJqisulK!>Ko=Tw5Q|s2MxX;bo%!zTF#=l#+|x|Cu_>K5h<*2I*d|` zdZ9KbdMND{sgcn)9w;Z;sM}~XArQjt&q2i%JccpAuaL)nA^Ewfwxirk{4c{>(xG!R zxz#YUU6FM+4r>o_i|FgO*aP1vZ~9zX9%szr&H_W5Q^~pB#VY&uy9@m`S=by zEE9Um-{GF3vYnjArn9 zG2PCHqSl|gwwy*jfT@W?ZB6y~Fq>+@*|%luiH$Hoo}Jruj1sP&7*p|0yrJ6>wNm+m z*m=iI_}#qZ*&tEb@u3XK>+amtxeUqGEl1>i+qw};vMIR30pt>6tf~#%U6UI)7Ompqw>?G?GssTfnGk`@Bjw~yt?z*S6 zo{`m$$@DLs_f!5&rpE3X>DE!%;{~y}X4xxewu?m%5!}_7!lk1=Nxk!etBjCj)!Lz< zTNn&}#6lN3G~p)VvQ^y*1$Qz)C4`SYwR-5HWNBe#ZU9;PCKgQ!3;}Bu>kSV$7Rr&B zP4Xj5bY$uNonTMkqqtz$2FW(^Rd=kkKxjEu+f=cXk7tf0qTdr5kK@lGyoR!OKr?RHL zs@(Vgb?qBMG7f!k;`ZZJTRTa+yruzc+RnBw;~T; zoP2ld(1_juLS?u~Fd}KLFExhhP^V+7n5SkcF7=BsYH+4ydSjisTERMN0IkU7-(ZXq ziXPry|FR8FJrOsF6+F+8u@e)z<0Gf_n=Wq8IJ9EcOA5Ne25ihITMnw zl|xM_yuiDtIvW1)5^T@pN_|nx5xKjY)9Xz7#^HK{Ro`4&lO11t5@Cwbb6+>st>O)S+!_-u5M^zWHmdeUu2B7l|{;7GF`k_lfU3Z^$aP1Ah$b9K`t_qtN&J2@f6SHaqM7R2e=F1Bxfx8K?x(fa zPnKJFsS29|_Zt?Mt$vnctLz^6X;u!mc6vCH$LwRzs&1H@HR;QXsCs}D- zpQlH|(el~K_2kX=*l0>? zqF2g;_P?s=Ctf{X$%E05>hGQ!iyJ-=_(gA&)H4mK7N0R zBr4pq>)j1xnCh;@_PH=guEc?b8Y0n42dL7M0)*qE4T|YPn#g@U57ql0$%S}()uNKu z{9uyo(D~s*)6NHDl~c6-l5k}mZw0LVe4C>zkELd7h#1N)As6;2hq8#^nGe0Mb^HW7 zkiJYS!zy&?@{}X;P}at@V@^uNhluywm;gYH!!zj>lOFETOrU8WGTgh1FD{goJ*ekZ z+o1tREYu}<+ZpNpk??XVBg5@PzqftkcxOVq?cT*%Bo>xbfL;pq)03x>zBuA2zvojP zcdhZY5{nDTlM@A)r+3Svy|ae~9{1JlMU6TBD@lBdlEQq&Q3SNJnFo3BwJoih6y3_P z(a~K?AuCm>DigOW{pGMit*uvT;p{Pgq5*g@+UtW!Ok-nRpt@Czu|}Alg;z%!;2}-Z zUR0f`woOe2oA|+Eh6U@da|2rM`EvqGR+rf>rnClvTJFQ&Q$~|>(M5jPMqhWsZ?L)| z;|^!Ta5b6zljZ;c*tJVj9Y4fx-5(J?8Wvm)Fx_6{SdM$I#1l!A280XQg*A{Y;PGP< z-?{7XM4mr$of@WI483VAT;Qd7yA<_}cRBy8{W~7P{G6IUS>^Mrc0<6tX^=ops2|j; zN0heNIkX~Acwm8);fuo_HKcz3rJT-zNR4bjH@(qs&b>jA7sNA29}Pn{!b{>Ic9NJY zkVcHaLmBDz&o1j$t(kINsk59yGj{mOjx+l#EM_tA0X(7of^%@M&pU|K07Pd4$ zyinFFscvK8KH4<2(i4%!Cp|}DLoa3intxA{tqbeTfIYgsETageH{u#Nz;Q}O=k)}d ze1POpfrg<2AQy-i-v0tx#i$n~ygvms;W#~nLkrWilBP1rt-u|h?7*1`UUB;j^Rjys zKAcxu8-N)z z_fb&F=N8Ju^eNZYj>|eIrO{xeAU1pTR~r!2Px`&e7yfMburerBff9pp^-pu}$awRn!$IHo06{S{Hp`F`_OW^H;h)5zR4~2vr(M;rI zb@zP|{h=jayEd<@G-W2s5ahe>@lsqb!QsPykrefTIWQw>+r-G5m-rPzp%=fg17=!CICnSNStE%O+|7YcYmAv8Q|}#t$$0LfZ-@Mu^685 z43kozm}))X$oe9q`WLlBnG3pjpYd^|>BcdiZsF~06qYoye_Z5+#9;-!QAc{PSadA? z!t+lPq;mA!M+_APZlh1fjXH?>3>=wCI$}3%UQJ)8& zY^h(^#dl)tK|U#x;gZo(H4a{GdViFcFhH&Uu&*I&!&YsOMkAQ~--VeUq?+r-6G;x_ zI`~zMQlAgrg;3h1ReQ3$i`!o{rgmM5J1YL%-dfaAUw% zDDpmxlz9G{aFZzJs_?DDuy|)$;Ifffl8ZtU6ZdJ4;SVh|h<3SecypV)i+FE5SmpKz zA{F(KQw+*tc$Jk)Es*FmlAEs=@LtfAd98+-ALfyZsCJt~d&?D^jihX;*UEF;YIXNL z4e8ZMq`EZDf67}s3*GzP}xog)DVXdgzh#M{pssnTSTL0^AL)e#6R?X__3YJ~OasarJy848cCSfj6*t zP$)C>wqwv4ZQ@RQQk|!Y^uuwpWDZt$Y86V6#znQZ0wfU4 zV!b?7v+7FfR_Sc+44Sn@JMbKn*cy28z!+qOKJ67!;~g)39o@O8NWY9BMoQyA--247 z&9?Lu)qV$fvb%h+oWjvs+rW$tFdlT|Q|(O!mi-^ko(ua1#lFTqI6g#q z=2*&z;f;~lDh1Y0w&2p3_b#Z?(p&%qhFYPWyGR!^dZay`s`iouu>`B!2*L&GqZ|tn zN~|I#^{0~{DJd3N%^;?3uOHM2MdXsU_YA!=XHnsAw$Md*rKvE$^S~);xWAfigjj2a+ah#6!kuUp% zjoq`T*1WvX)JE8sANV`(Q*z%uxmrE%M#nYnV1Frk)U77@k=h*%87R`Tt5+mFz$>5i zJ)^;<(16qpG7a*u;9zb!LNjo$l+AS#E=H1}PLg~aYx_f)cFeR^yYZ0pIC1tTVQ~yg zu6;shyRX3JN>Kxb^e;uCS9Lul@2I=n7p1)qnrJ>jRyUl4Q^874#stmlx0oT*nl={M zRzJ|61b!wJ*M2vnodyh#SWrW{0_HNpM`8PK#ZbUqla+~QZEH8nRN=fTW#>}bQe|EA z6rdQe1T1Dq=iV2;>50z6UBL*#(v7#Gen0^oI$o4Y^;ob^L4A694t{_!WDO#;@S-_A zj-S2Z5(0m38gN&vyK`r@``Hfs-3nasyqdfwSS6>yB&%YaePSJ*5Q}Fgd>tec_O;1|s7p756^1rzsCT-M~==aev$=P_v7)B@@4-E3uS3{TmVf{(4Af1zTNeI8Vjg47J+ zUdEWq?2LbaFFtN+xl*b~Z`f~b@n&gKAzNkGAGN7CAHsdN_R_WT2C*@Sy^fA6wiK`T zGyd73&V0`=!5-Ov_1}Y_SfZu0@X?JFU|zT%L0*O~q$u@}|fZjMMp?go|q95QcZak4`KH{MY;U$c@2>X+&oN0WZ32=KD+&IF}%E8)D^L+`1Mz`uWA>ofb~`M^iY^?Ty^BeM8&KtuGt(8x z9>tYGMB{CydZGXF>y-9HN$Bd^q;K`VV{YC;PM!+Li<#&DYAix5+g&St)7AA;Fz9>% z5hiJyp@e6Zc1_?UhNpa(r3xdq905;|{(eMXKc7lic_UH~$Dv)yXxf+$p}K!<98{mt zqm5vBJ}7bphRmO6u64cl!;>ViCvWxG$(4wd7ruCSm8^`fjm!MGG$l=!(VclZB;faa(j)9G)aEtp^XUCA%?U#o3u_Sa>>QJR?rzh#R1pFXaU-~ z_b!v=?~Et%dgqt*ruAK-b5e3yZOtO^q3)}Q4K@==R6&;M?Z_EQvpN0n=N3#koLw}? zSXvpgd?z*w`sZf1EivZUP?!@{MOwoj^J1{Zlheig19|Dgy8v5UW;~J2*)FHx1Y~<- zw2{jZNu&9jU=zbTvF2%@8qZqDlw_MT?d``G{FfKDfcMF6E)PkCxVG z`(dg1boV)f(>{HB3c6$$bhFf*`s#F@Q1D@sM6NQh`3BzTSQCC;LOJ+SYsLj%T?@oq{cd*#+{NG(M<2&tJo$U9PA@-~eLRx6 zHcJGNE6Fhta1YH3y&1J0TNIl)*yy91+`{j`6lvQ#FojeT{}oWAmoQd+{Sr^C0zF8d z7Ggn@4M~j_iDKhwqrQ??q%R$R@a=gKyxiu*Jkn9PM>Wxsk^A)ep+?)tTG2D5HJ@!xEnT35$$^asRgA-RYNVArMAJ;n3 zacNAQQ`rlNXH2lyqFV^9-!sm_jwpJzzM~~BaEefE7MDM_HAapiD|9B<#Kd@4p?%fH zhBzXf*~IQZx0fLf(8AwAi``jUa#>Op6sL`Dq*LE!oC&Bs)AAA<$Yye&@E#hirSTdS zp2&n5qU=#N#!P3UC2E=1PgN^*_!^xBW!nSWpJAER3^DXzCQukf5%|TcHT#eOkqunY z?9M`pkOeCUEvygpp-Z`2VzR*D$w1_{Q&Icbgq;3^r?AAl#j;VbBLS>hF-KD|`W5rEQMbm(dG(s8#ddYC~<%R8-JHt%vX#Pxx)vu5AgrWx%F&d4@(`3SUDP z>B6kfCejhTG-E+s?qOYTl9kYq7na1O&XFP-s`|wx6%;W8K|wL33)(DBdy05_(7O)d$QwH2U?RTyUkQaTynG{!n3; wP@aVp3u-WR>5|pFhCa~!e?J4rd+$jIW4?25l`Ua#UmF0(EA5w6N>;)D2btn}Qvd(} diff --git a/gui/devices/320x480/res/ui.xml b/gui/devices/320x480/res/ui.xml index 887505c6..c85db3a2 100644 --- a/gui/devices/320x480/res/ui.xml +++ b/gui/devices/320x480/res/ui.xml @@ -39,7 +39,6 @@ - @@ -124,7 +123,7 @@ - + @@ -158,15 +157,26 @@ - - - + + + + + + + + + + + + + + @@ -465,56 +475,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + - +
%tw_zip_location% @@ -826,15 +800,6 @@ - - - - - - - - - @@ -1111,194 +1076,154 @@ - - Wipe Menu - - - - - - - Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - + Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. - + - System + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD Card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all internal storage - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + - tw_back=wipe + tw_back=advancedwipe tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + Swipe to Wipe + + main @@ -1306,12 +1231,90 @@ - main + wipe + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1321,10 +1324,67 @@ Backup Name: %tw_backup_name% - - - - Backup Device + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + @@ -1339,186 +1399,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - - - - - System (%tw_backup_system_size% MB) - - - - - - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - - - Free Space: %tw_storage_free_size% MB - - - - - - Enable compression. - - - - - - - - Skip MD5 generation during backup. - - - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal - - main @@ -1640,56 +1520,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + - +
Select Package to Restore: @@ -1730,18 +1574,26 @@ - - - + + + +
+ Restoring: %tw_restore_name% + + + + + +
- + + Rename Backup - tw_backup_rename= tw_fileexists=0 @@ -1751,10 +1603,10 @@ - + + Delete Backup - tw_back=restore tw_action=cmd @@ -1768,6 +1620,20 @@ + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + @@ -1780,101 +1646,6 @@ Swipe to Restore - - - - System - - - - - - - - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - - - Enable MD5 verification of backup files. - - - - - - - - Package Date: %tw_restore_file_date% - - main @@ -1980,216 +1751,70 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + - - - - Mount Menu + + + +
+ + Select Partitions to Mount: + + + + +
- - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - - Mount SD Card - - EXTERNAL - - - - - - - - - - Unmount SD Card - - EXTERNAL - - - - - - - - - - - Mount Internal - - INTERNAL - - - - - - - - - - - Unmount Internal - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + - + Mount USB Storage @@ -2202,7 +1827,7 @@ - + Decrypt Data diff --git a/gui/devices/480x800/res/images/exclamation200.png b/gui/devices/480x800/res/images/exclamation200.png deleted file mode 100644 index 96258a1c3b233f723ed05e0d285142c73ba26ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5260 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 diff --git a/gui/devices/480x800/res/ui.xml b/gui/devices/480x800/res/ui.xml index ab4be70f..6efca350 100644 --- a/gui/devices/480x800/res/ui.xml +++ b/gui/devices/480x800/res/ui.xml @@ -39,7 +39,6 @@ - @@ -123,7 +122,7 @@ - + @@ -164,8 +163,20 @@ - - + + + + + + + + + + + + + + @@ -464,56 +475,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + - +
%tw_zip_location% @@ -825,15 +800,6 @@ - - - - - - - - - @@ -1110,194 +1076,154 @@ - - Wipe Menu - - - - - - - Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - + Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. - + - System + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD Card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all internal storage - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + - tw_back=wipe + tw_back=advancedwipe tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + Swipe to Wipe + + main @@ -1305,12 +1231,90 @@ - main + wipe + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1320,10 +1324,67 @@ Backup Name: %tw_backup_name% - - - - Backup Device + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + @@ -1338,186 +1399,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - - - - - System (%tw_backup_system_size% MB) - - - - - - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - - - Free Space: %tw_storage_free_size% MB - - - - - - Enable compression. - - - - - - - - Skip MD5 generation during backup. - - - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal - - main @@ -1639,56 +1520,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + - +
Select Package to Restore: @@ -1729,18 +1574,26 @@ - - - + + + +
+ Restoring: %tw_restore_name% + + + + + +
- + + Rename Backup - tw_backup_rename= tw_fileexists=0 @@ -1750,10 +1603,10 @@ - + + Delete Backup - tw_back=restore tw_action=cmd @@ -1767,6 +1620,20 @@ + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + @@ -1779,101 +1646,6 @@ Swipe to Restore - - - - System - - - - - - - - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - - - Enable MD5 verification of backup files. - - - - - - - - Package Date: %tw_restore_file_date% - - main @@ -1979,216 +1751,70 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + - - - - Mount Menu + + + +
+ + Select Partitions to Mount: + + + + +
- - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - - Mount SD Card - - EXTERNAL - - - - - - - - - - Unmount SD Card - - EXTERNAL - - - - - - - - - - - Mount Internal - - INTERNAL - - - - - - - - - - - Unmount Internal - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + - + Mount USB Storage @@ -2201,7 +1827,7 @@ - + Decrypt Data diff --git a/gui/devices/480x854/res/images/exclamation200.png b/gui/devices/480x854/res/images/exclamation200.png deleted file mode 100644 index 96258a1c3b233f723ed05e0d285142c73ba26ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5260 zcma(Vi9gf-d+saD-C}D@nKPCnIWjg!O6Deuu=*-;AIZ5?V!0wE5gW=eS8}szn&!$C zxkb!P=8XES|KRufyxyPZ^?5(f^L{^{_jA6V$JSP6g8V1=0RVuYg*nQG1v~x?UT)UA z+=-ma0&GDxX2t+=kIW+LgWJQ>3I$Rf7;eQzbOi#5i;+5MOu|8e)CCfb(D*leo(vygb zPi0E7^>;oR>uuC;)0qgmIX~&#)0QZ#zui)|z}(OKt7~9z(+CRWJQzo{-ze(UTum;JTxts9T6t3LL7(MR2D=8j- z;M2|+5n1yW7Qd7>q=dA>jX_c43B3k)9*gcaOeqmB$T~>kGwcoKD`&}fbIKLi`zl38 zdX?N;9{pmnTcXhMP@Mc19!gL0^$YfL^c~Y0W1*JXm zOyi*ZdAS_>qvx49J0`WCSTNy595}ons>_Lk?#f!FXP(k=(=?s=NuN#^T zqQr!wm|rNC-mu1_Zj(4E1M%f8%9($%PRM_eyedXTZ|P<9xqaCS%VN8EKDy2gWPo&d z8`a@l7HoCE@#E?vA)fq6ndsKx*)ZCeE|O|N`*HY%Whp}mrbD1G#sy{Q_-t` z9ZXMt&)?SG77`}_Rm`FO|Kwd9eGmog4ohU~vzl4EsxuH82hmk)X*BkZ$z+;Bc%3(lLu zGtWL|b7=vKW9DegGwzK?vv-5Fon2+kZ^$=DoqHuNtb#^{i*C5n-yUkOVX(bC?;Vtg z#a~J;CT2d4Kq15B*NXQ~P?&xFd6GUBy02v2%S{%G#u|>bbGDyhp-G-()?Z0$3pzji zU8p0hOw0==son>{qhrQhGyATv3*Q6!z92anr>YEk3Uw#TsnHBNVR99{?k@Ks+x^av z#jOt*V2_A|2%co0a@Am|b~&TZ(BSQRFZJ>;*B}Q|GfD`gcA@;AH02Wg-s?>m61-X<3p$XRu9|5Xe|w z8_(_fcB1ZIiOkm4Qf6%iQ5rL+AX!{CQw@%!)GpztPG}v*5qxeH*%}XP4 zjA}yQ$;LYw$K;mvAgHdwhgCrrBzE7gXTW){09mRaG%Fs@x~6Jt+Lng&0?SVXos04& z+k=j{H;bP>s*CzLpATdOx#swuP&1iJ7K|sLu6(IBG9il>xpX-h8`o*@u*cEVuaj|e zN-_4<9gg{X$6Cfm&3SEXRRRV%Oem5#rWWYW{Chdq`j#S9$Z#8q*QWPlB%<38L#F*# zjB_oEPOUcY?c%0rj;Ad25b*wiSb-fEQL1EK*xhqWHFSpASv3cpVt9Yu4Q~z{lSpm5 z7IDsc+|z#xtdA5CE`^m6?#ARbuY_yJC|M7<$AKUxlFG& z;@b$f!-gdEshc7X^9jqZU)k4a@?K`A9kiGz43 ztP%G4=cup}F^{fmT=cyJ+%aHEXA~!_gY_@vjt1k(^pP%&Fvy%zm&M<*N5cI+LwD$7 z4w`wO0Erczp+aTPpL`y$313zD;{t!@zJoPZBl}4fFSml}&&Y(~^Xz;S-w^Ax^YD%f z_fXVwI%7R^I?!+>-d2gY5JAEV-o7ep{@7NTD{>6;oFlSEe(@vEt7@=b@-9tcWhxnO zZLd32qJs1xwLJ0&HS>|WeIBQWW45tXoO>w5wrj^i$|K7nWO!s|G0($h34J@-7j(W_ zNQ=gd-aSrZg$-AGdr~^5#aHm=9UOBDn-Kdl(F#~9*DE$ftp9}tm6kvk*u(-ZI2;VA zphP{EQfN0v$>E>uHVdlqcd{FWzi|-AMDu zlxSg*H{0>r5C(5KP9sugq?CzuQrCMl-FkE0nV-4%sbQ7U4ly~Cg!dn=E_NwAosb!j z=R08zYN<2|njAGvYb`Vibu+K|lo&KtxANA(o6lotR^6R@&3D3?E6Hn>YHrM~RY8MN49u!-eVW>v;N#}PY6)zD0t zY;<q* zJK?UA6#*xnfiq6Y8zB1O+4y(BpX|aC-@C~#fFzE$L%DmtXLGUc&VCB*CsdZQ0XOU5 z6HfK@1T4rBo%&4Z6nPa*B&Y=rKMBo=!eWL|peX5$XJ*+>jdrD)oZgGc;n|)diT*A+ z%i;ovNF8%4rC+DUv7jr;R~nA*Godc}NhK@_wJF+oQd@b7RGKvz_g5;O2nzDAguovGiO z|2X2Fpxt0NCbxV3eTH=bnSjHjE=TdZ;h61qQulGsN!a@z2;b~@f26VUj++160-#00 zujufabN}_jM#MEB*9^6w!a1MM1Gjf=e4+fBgXxrW_24a&p4p}sw zDp^M#pszkej8&a=&LgQt9&`p?=W9e*J;876$yH#l^QBK~jQ*rE>`$q5J)ImLv3Vv? zqf}jjJNnG;^B_jQu7m%Vfe~hWEy24=dtno8Es{qj(8;wx`M3aSs-Kk5>_r^Y-J&k! zY0;(oxW;p(a`!2jkWW&hT2lCM55DLLku&+t$1gGb*RwX|R!{5)<6Px9HGhLA8e>fZ-oB-lbwe0w%yxhysV% zxrf@ZPnG;_{gt)iu%%D^{eDAOX7~l|GWHSZg%aa-45QX{mO;L;rR!_f=67*cDgDxp zX0Z>=<(u;da;XdLzMsxfB7rqu()J5dZn-DZ4w7qHp`6|p<)K`WlfxQyPl!Lz==24> zgHrzwp{w%|$BwRJ8WB6eruz?-A|h4XC{mWf&(Efs|*EU4)sORh(=!{7kZcB|#n z4Z^>!*{h9`XO6KH1({scT3-y*^j7Vf-N-;33`^VtD)AvpZ0;YET503X4Lqib`Y<`r zZ7#|+qcS~^oR3~jelBUz^AZ#ZvM=&6`8Law6#-l<`HV9je9 z-qmLM_;(|Jb7X!NxEnBgh+zZ!b@VaPudi`f$wn_MUB)rvewfxm>C2QqLNVb+peUC@ z392c9xGMD7NyKw+-Hf9*A!5)Nom{X_7RkDDsc^qF>teB!AA20kWxRr5h#fC>Ksoc} zENuu736pK<{2s9O;aD`fTZap4FEZ80^f^BgP99Kn$PZKD#422z3Dwqn3)KNk1s=}F zA|i6?FP2;MUpeeddl>uj{B|J8lt=Bj`GJj`$-(?&Yrr-x#5n}ZNFu^H-jw9|s zqKVX>jET1i$`qCloK(6amw?|mm2H;#^RRI zbNZPU5Xs%KEiv`Vyz1K+II;de|2jlOQT?OW?S5>?_T?6AR@V~n zhj!FD<=Julh5n9BxqGp`5R(`Zq1AQ#hj8d`+vzA=@ZZXsL9JB+e#3?pbo2ETi9vVK z*j)bVNWx|q{ zNS9x?@`PfiY)q$IZMU7cb6)hXeOjcp(ivJ>HB)yfmmwxJXD!8tczH&0eJgpcaxah@ z>Akmg^PBJT@Ig<+`H{>j1r7%>t{L%h8hgnISmW_4!`w~B=z`?2SyrmcVM&mo5?Rio zx$hQ6RbVBd;XU;qBtn~CTO;V}&On4r_(zyvOX;%WGy9b96a|BRytmc`KP~Hxb>*jt zk$o`xBQNpznt=n?D=wxiH{OiE1=}qUS3pvOCX{8ZS{R+dTR%y(vYfD0Eyt^Hh6bn> zAr6c=0nX?I?hUsPZPK=)qf1-TcHf|$+-gTowI2UD{;g|E4SpB0C+67%5P_+t-M)O? zzrB+J@MVm9sk{~5XraN zlsE1vc$OOE@6+QgD5iYpPgX6oP!@$^T#E^l3XWV=1Ow^%Ag>J=jboF=|;(g zu=4gXir2J3)#AzhImliMZBxb_Bl^4csmK1@*I_tuq4Srn@4jNT!RsO_i5rlmOpLKx zp!pg2GywcV=Poriq}d_waQ2uq!fr?&t!&Bu=BQD{?Bw4S+mM)!$>?hXTHYP2Nts8s z*V}F1z%ln(=)|)aU}sk^pzW9Y{B=r_C?6NrF6|5DR?4M?8VXU(ZToVSHpeWu z%#}>YJ=G}>2VmB`XjOYvhqYHgEltZ!5&F?S5Oub@1P5zK*XG7B-?zFkN7ja6?1s$e zUkm9BWiKozmra@_Ag?H1k5xU@mO_(QH5q&kD9-;)!8Q!%LlxKK0sig!;9nIaw~-(| zk7t)$Q2+?fPP(24hI?wByhA;VE!C5wtb4bvM>eZGejUr;fB^nC5kqh*pa(LJ{JNZ4)Hhg=G^}H$sazRoCvo!o z4)`tfSFRCqLgTDjy9;bbWKia|M-mgxJH-)d7Fxl%{SjE{3_4QqR5I@r{CF>R)#EJk xawXV_ZDoCh3a{{#9F+L+`~T~&LE(IVPByzbdO8L@YGkzv0TyU06xrAv|36g*&~pF) diff --git a/gui/devices/480x854/res/ui.xml b/gui/devices/480x854/res/ui.xml index 1147b77f..de4d1594 100644 --- a/gui/devices/480x854/res/ui.xml +++ b/gui/devices/480x854/res/ui.xml @@ -39,7 +39,6 @@ - @@ -122,7 +121,7 @@ - + @@ -163,8 +162,20 @@ - - + + + + + + + + + + + + + + @@ -463,56 +474,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + - +
%tw_zip_location% @@ -824,15 +799,6 @@ - - - - - - - - - @@ -1109,194 +1075,154 @@ - - Wipe Menu - - - - - - - Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - + Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. - + - System + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD Card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all internal storage - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + - tw_back=wipe + tw_back=advancedwipe tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + Swipe to Wipe + + main @@ -1304,12 +1230,90 @@ - main + wipe + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1319,10 +1323,67 @@ Backup Name: %tw_backup_name% - - - - Backup Device + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + @@ -1337,186 +1398,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - - - - - System (%tw_backup_system_size% MB) - - - - - - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - - - Free Space: %tw_storage_free_size% MB - - - - - - Enable compression. - - - - - - - - Skip MD5 generation during backup. - - - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal - - main @@ -1638,56 +1519,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + - +
Select Package to Restore: @@ -1728,18 +1573,26 @@ - - - + + + +
+ Restoring: %tw_restore_name% + + + + + +
- + + Rename Backup - tw_backup_rename= tw_fileexists=0 @@ -1749,10 +1602,10 @@ - + + Delete Backup - tw_back=restore tw_action=cmd @@ -1766,6 +1619,20 @@ + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + @@ -1778,101 +1645,6 @@ Swipe to Restore - - - - System - - - - - - - - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - - - Enable MD5 verification of backup files. - - - - - - - - Package Date: %tw_restore_file_date% - - main @@ -1978,216 +1750,70 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + - - - - Mount Menu + + + +
+ + Select Partitions to Mount: + + + + +
- - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - - Mount SD Card - - EXTERNAL - - - - - - - - - - Unmount SD Card - - EXTERNAL - - - - - - - - - - - Mount Internal - - INTERNAL - - - - - - - - - - - Unmount Internal - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + - + Mount USB Storage @@ -2200,7 +1826,7 @@ - + Decrypt Data diff --git a/gui/devices/540x960/res/images/exclamation300.png b/gui/devices/540x960/res/images/exclamation300.png deleted file mode 100644 index 1ac400d119bde3e0fdc58c82dfe482ea515a7fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13488 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 - @@ -123,7 +122,7 @@ - + @@ -164,8 +163,20 @@ - - + + + + + + + + + + + + + + @@ -464,56 +475,20 @@

- - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + - +
%tw_zip_location% @@ -825,15 +800,6 @@ - - - - - - - - - @@ -1110,194 +1076,154 @@ - - Wipe Menu - - - - - - - Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - + Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. - + - System + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD Card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all internal storage - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + - tw_back=wipe + tw_back=advancedwipe tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + Swipe to Wipe + + main @@ -1305,12 +1231,90 @@ - main + wipe + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1320,10 +1324,67 @@ Backup Name: %tw_backup_name% - - - - Backup Device + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + @@ -1338,186 +1399,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - - - - - System (%tw_backup_system_size% MB) - - - - - - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - - - Free Space: %tw_storage_free_size% MB - - - - - - Enable compression. - - - - - - - - Skip MD5 generation during backup. - - - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal - - main @@ -1639,56 +1520,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + - +
Select Package to Restore: @@ -1729,18 +1574,26 @@ - - - + + + +
+ Restoring: %tw_restore_name% + + + + + +
- + + Rename Backup - tw_backup_rename= tw_fileexists=0 @@ -1750,10 +1603,10 @@ - + + Delete Backup - tw_back=restore tw_action=cmd @@ -1767,6 +1620,20 @@ + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + @@ -1779,101 +1646,6 @@ Swipe to Restore - - - - System - - - - - - - - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - - - Enable MD5 verification of backup files. - - - - - - - - Package Date: %tw_restore_file_date% - - main @@ -1979,216 +1751,70 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + - - - - Mount Menu + + + +
+ + Select Partitions to Mount: + + + + +
- - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - - Mount SD Card - - EXTERNAL - - - - - - - - - - Unmount SD Card - - EXTERNAL - - - - - - - - - - - Mount Internal - - INTERNAL - - - - - - - - - - - Unmount Internal - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + - + Mount USB Storage @@ -2201,7 +1827,7 @@ - + Decrypt Data diff --git a/gui/devices/720x1280/res/images/exclamation400.png b/gui/devices/720x1280/res/images/exclamation400.png deleted file mode 100644 index f3a8aabb63afeee60f6822317e6514249684e13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11295 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 A#Q*>R diff --git a/gui/devices/720x1280/res/ui.xml b/gui/devices/720x1280/res/ui.xml index 5d94483c..e2a02b1e 100644 --- a/gui/devices/720x1280/res/ui.xml +++ b/gui/devices/720x1280/res/ui.xml @@ -39,12 +39,11 @@ - - + @@ -128,7 +127,7 @@ - + @@ -169,8 +168,20 @@ - - + + + + + + + + + + + + + + @@ -477,56 +488,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + - +
%tw_zip_location% @@ -838,15 +813,6 @@ - - - - - - - - - @@ -1123,194 +1089,154 @@ - - Wipe Menu - - - - - - - Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - + Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. - + - System + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD Card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all internal storage - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + - tw_back=wipe + tw_back=advancedwipe tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + Swipe to Wipe + + main @@ -1318,12 +1244,90 @@ - main + wipe + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1333,10 +1337,67 @@ Backup Name: %tw_backup_name% - - - - Backup Device + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + @@ -1351,186 +1412,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - - - - - System (%tw_backup_system_size% MB) - - - - - - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - - - Free Space: %tw_storage_free_size% MB - - - - - - Enable compression. - - - - - - - - Skip MD5 generation during backup. - - - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal - - main @@ -1652,56 +1533,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + - +
Select Package to Restore: @@ -1742,18 +1587,26 @@ - - - + + + +
+ Restoring: %tw_restore_name% + + + + + +
- + + Rename Backup - tw_backup_rename= tw_fileexists=0 @@ -1763,10 +1616,10 @@ - + + Delete Backup - tw_back=restore tw_action=cmd @@ -1780,6 +1633,20 @@ + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + @@ -1792,101 +1659,6 @@ Swipe to Restore - - - - System - - - - - - - - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - - - Enable MD5 verification of backup files. - - - - - - - - Package Date: %tw_restore_file_date% - - main @@ -1992,216 +1764,70 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + - - - - Mount Menu + + + +
+ + Select Partitions to Mount: + + + + +
- - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - - Mount SD Card - - EXTERNAL - - - - - - - - - - Unmount SD Card - - EXTERNAL - - - - - - - - - - - Mount Internal - - INTERNAL - - - - - - - - - - - Unmount Internal - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + - + Mount USB Storage @@ -2214,7 +1840,7 @@ - + Decrypt Data diff --git a/gui/devices/800x1280/res/images/exclamation400.png b/gui/devices/800x1280/res/images/exclamation400.png deleted file mode 100644 index f3a8aabb63afeee60f6822317e6514249684e13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11295 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 A#Q*>R diff --git a/gui/devices/800x1280/res/ui.xml b/gui/devices/800x1280/res/ui.xml index 9e2e2b8e..7282c929 100755 --- a/gui/devices/800x1280/res/ui.xml +++ b/gui/devices/800x1280/res/ui.xml @@ -39,12 +39,11 @@ - - - + + @@ -123,7 +122,7 @@ - + @@ -142,7 +141,7 @@ - + @@ -165,8 +164,20 @@ - - + + + + + + + + + + + + + + @@ -465,56 +476,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + - +
%tw_zip_location% @@ -826,15 +801,6 @@ - - - - - - - - - @@ -1111,194 +1077,154 @@ - - Wipe Menu - - - - - - - Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - + Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + + + Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is + + + + + + the only wipe that you need. + + + + + + Press back button to cancel. - + - System + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD Card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all internal storage - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - + + + + Swipe to Factory Reset + + + + + main + + + + + main + + + + + + + + + + + + Wipe Menu + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + - tw_back=wipe + tw_back=advancedwipe tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + Swipe to Wipe + + main @@ -1306,12 +1232,90 @@ - main + wipe + + + + + + + Format Data will wipe all of your apps, + + + + + + backups, pictures, videos, media, and + + + + + + removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1321,10 +1325,67 @@ Backup Name: %tw_backup_name% - - - - Backup Device + + + +
+ + Select Partitions to Back Up: + + + + + + +
+ + + + + + + Set Backup Name + + tw_fileexists=0 + backupname1 + + + + + + + + + Refresh Sizes + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + + + + + + + Enable compression. + + + + + + + + Skip MD5 generation during backup. + + @@ -1339,186 +1400,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - - - - - System (%tw_backup_system_size% MB) - - - - - - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - - - Free Space: %tw_storage_free_size% MB - - - - - - Enable compression. - - - - - - - - Skip MD5 generation during backup. - - - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal - - main @@ -1640,56 +1521,20 @@ - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + - +
Select Package to Restore: @@ -1730,18 +1575,26 @@ - - - + + + +
+ Restoring: %tw_restore_name% + + + + + +
- + + Rename Backup - tw_backup_rename= tw_fileexists=0 @@ -1751,10 +1604,10 @@ - + + Delete Backup - tw_back=restore tw_action=cmd @@ -1768,6 +1621,20 @@ + + + + Enable MD5 verification of backup files. + + + + + + + + Package Date: %tw_restore_file_date% + + @@ -1780,101 +1647,6 @@ Swipe to Restore - - - - System - - - - - - - - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - - - Enable MD5 verification of backup files. - - - - - - - - Package Date: %tw_restore_file_date% - - main @@ -1980,216 +1752,70 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + - - - - Mount Menu + + + +
+ + Select Partitions to Mount: + + + + +
- - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - - Mount SD Card - - EXTERNAL - - - - - - - - - - Unmount SD Card - - EXTERNAL - - - - - - - - - - - Mount Internal - - INTERNAL - - - - - - - - - - - Unmount Internal - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use external SD - - external - - - - - - - - - - Use internal storage - - internal - - - - - - - - - - Use internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + - + Mount USB Storage @@ -2202,7 +1828,7 @@ - + Decrypt Data diff --git a/gui/devices/800x480/res/images/exclamation150.png b/gui/devices/800x480/res/images/exclamation150.png deleted file mode 100644 index 6e05987c14f9ef683a87ffb2da4209e7f463ee91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6460 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 diff --git a/gui/devices/800x480/res/ui.xml b/gui/devices/800x480/res/ui.xml index 82423709..97fdf44c 100755 --- a/gui/devices/800x480/res/ui.xml +++ b/gui/devices/800x480/res/ui.xml @@ -41,7 +41,6 @@ - @@ -180,8 +179,24 @@ - - + + + + + + + + + + + + + + + + + + @@ -515,51 +530,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=install + selectstorage + @@ -864,15 +843,6 @@ - - - - - - - - - @@ -1271,6 +1241,38 @@ + + + + + + +
+ + Select Storage: + + + + + + +
+ + + + main + + + + + + %tw_back% + + + + + + @@ -1280,211 +1282,51 @@ Mount Menu + + + +
+ + Select Partitions to Mount: + + + + + +
+ + + + + + + + + + Decrypt Data + + decrypt + + - + Mount USB Storage usb_mount - - - - - Mount System - - /system - - - - - - - Unmount System - - /system - - - - - - - Mount Data - - /data - - - - - - - Unmount Data - - /data - - - - - - - Mount Cache - - /cache - - - - - - - Unmount Cache - - /cache - - - - - - - - - Mount SDCard - - EXTERNAL - - - - - - - - - - Unmount SDCard - - EXTERNAL - - - - - - - - - - - Mount Internal Storage - - INTERNAL - - - - - - - - - - - Unmount Internal Storage - - INTERNAL - - - - - - - - - - Mount SD-Ext - - /sd-ext - - - - - - - Unmount SD-Ext - - /sd-ext - - - - - - - - - - Mount Boot - - /boot - - - - - - - - - - Unmount Boot - - /boot - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=mount + selectstorage + @@ -1549,191 +1391,83 @@ - Wipe Menu + Factory Reset: Wipes Data, Cache, and Dalvik + + + + + + + .android_secure + + + + + + + (not including internal storage) + + + + + + + SD-EXT + + + + + + Most of the time this is the only wipe that you need. - + - Cache + Advanced Wipe - - tw_back=wipe - tw_action=wipe - tw_action_param=/cache - tw_text1=Wipe Cache? - tw_action_text1=Wiping Cache... - tw_complete_text1=Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + advancedwipe - - - - Dalvik Cache - - - tw_back=wipe - tw_action=wipe - tw_action_param=dalvik - tw_text1=Wipe Dalvik-Cache? - tw_action_text1=Wiping Dalvik-Cache... - tw_complete_text1=Dalvik-Cache Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - Factory Reset - - - tw_back=wipe - tw_action=wipe - tw_action_param=data - tw_text1=Factory Reset? - tw_text2=(Wipes Data and Cache) - tw_action_text1=Factory Reset... - tw_complete_text1=Factory Reset Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - System - - - tw_back=wipe - tw_action=wipe - tw_action_param=/system - tw_text1=Wipe System? - tw_text2=This will wipe your ROM - tw_action_text1=Wiping System... - tw_complete_text1=System Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - External Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=EXTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe External Storage (SD card)? - tw_action_text1=Wiping External Storage... - tw_complete_text1=External Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - - - - Internal Storage - - - tw_back=wipe - tw_action=wipe - tw_action_param=INTERNAL - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Wipe Internal Storage? - tw_action_text1=Wiping Internal Storage... - tw_complete_text1=Internal Storage Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - - - - - - + + Format Data - tw_back=wipe - tw_action=wipe - tw_action_param=DATAMEDIA - tw_has_action2=1 - tw_action2=set - tw_action2_param=tw_zip_location=/sdcard - tw_text1=Format Data? (This wipes all media - tw_text2=including backups & removes encryption) - tw_text3=Most of the time you do not need to do this. - tw_action_text1=Formatting Data... - tw_complete_text1=Data Format Complete - tw_slider_text=Swipe to Format - tw_show_exclamation=1 - confirm_action + formatdata - - - - - - Android Secure - + + + + Press back button to cancel. + + + + + tw_back=wipe tw_action=wipe - tw_action_param=ANDROIDSECURE - tw_text1=Wipe Android Secure? - tw_action_text1=Wiping Android Secure... - tw_complete_text1=Wipe Android Secure Complete - tw_slider_text=Swipe to Format - confirm_action + tw_action_param=data + tw_action_text1=Factory Reset... + tw_complete_text1=Factory Reset Complete + action_page - - - - - - SD Ext - - - tw_back=wipe - tw_action=wipe - tw_action_param=/sd-ext - tw_text1=Wipe SD-Ext? - tw_action_text1=Wiping SD-Ext... - tw_complete_text1=SD-Ext Wipe Complete - tw_slider_text=Swipe to Wipe - confirm_action - + + + + Swipe to Factory Reset @@ -1749,6 +1483,128 @@ + + + + + + +
+ + Select Partitions to Wipe: + + + + + + +
+ + + + + + tw_back=advancedwipe + tw_action=wipe + tw_action_param=LIST + tw_text1=Wipe Selected Partition(s)? + tw_action_text1=Wiping Partition(s)... + tw_complete_text1=Wipe Complete + action_page + + + + + + + Swipe to Wipe + + + + + main + + + + + wipe + + + + + + + + + + + + Format Data will wipe all of your apps, backups, pictures, + + + + + + videos, media, and removes encryption on internal storage. + + + + + + This cannot be undone. Press back to cancel. + + + + + + Type yes to continue. + + + + + + + + %tw_confirm_formatdata% + + + formatdata_confirm + + + + + + + main + + + + + wipe + + + + + + + + + + tw_back=formatdata + tw_action=wipe + tw_action_param=DATAMEDIA + tw_action_text1=Formatting Data... + tw_complete_text1=Data Format Complete + action_page + + + + + + formatdata + + + @@ -1758,10 +1614,18 @@ Back Up Device - - - - Free Space: %tw_storage_free_size% MB + + + +
+ + Select Partitions to Back Up: + + + + + +
@@ -1770,95 +1634,41 @@ Backup Name: %tw_backup_name% - - - - System (%tw_backup_system_size% MB) - - + + + + + Refresh Sizes + + + + + + + + + Set Backup Name + + + tw_fileexists=0 + backupname1 + + + + + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=backup + selectstorage + - - - Data (%tw_backup_data_size% MB) - - - - - - - - - Boot (%tw_backup_boot_size% MB) - - - - - - - - - Recovery (%tw_backup_recovery_size% MB) - - - - - - - - Cache (%tw_backup_cache_size% MB) - - - - - - - - - .android_secure (%tw_backup_andsec_size% MB) - - - - - - - - - sd-ext (%tw_backup_sdext_size% MB) - - - - - - - - - %tw_sp1_name% (%tw_backup_sp1_size% MB) - - - - - - - - - %tw_sp2_name% (%tw_backup_sp2_size% MB) - - - - - - - - - %tw_sp3_name% (%tw_backup_sp3_size% MB) - - - - - - + Enable Compression (Requires more time) @@ -1866,61 +1676,13 @@ - + Skip MD5 generation on backups - - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal - - @@ -1936,27 +1698,6 @@ Swipe to Back Up - - - - - Refresh Sizes - - - - - - - - - Set Backup Name - - - tw_fileexists=0 - backupname1 - - - main @@ -2080,51 +1821,15 @@ - - - - - - - Using external SD - - external - - - - - - - - - - Using external SD - - external - - - - - - - - - - Using internal storage - - internal - - - - - - - - - - Using internal storage - - internal + + + + + Storage: %tw_storage_display_name% (%tw_storage_free_size% MB) + + tw_back=restore + selectstorage + @@ -2154,19 +1859,6 @@ - - - - - - - - - Decrypt Data - - decrypt - - main @@ -2195,89 +1887,22 @@ Package Date: %tw_restore_file_date% - - - - System - - - + + + +
+ + Select Partitions to Restore: + + + + + +
- - - Data - - - - - - - - - Boot - - - - - - - - - Cache - - - - - - - - - .android_secure - - - - - - - - - sd-ext - - - - - - - - - %tw_sp1_name% - - - - - - - - - %tw_sp2_name% - - - - - - - - - %tw_sp3_name% - - - - - - - + Enable MD5 checking of backup files @@ -2299,7 +1924,7 @@ - + Delete Backup diff --git a/gui/fileselector.cpp b/gui/fileselector.cpp index 8b580449..d2be865b 100644 --- a/gui/fileselector.cpp +++ b/gui/fileselector.cpp @@ -1,4 +1,20 @@ -// FileSelector.cpp - GUIFileSelector object +/* + Copyright 2012 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ #include #include @@ -1003,4 +1019,4 @@ void GUIFileSelector::SetPageFocus(int inFocus) scrollingSpeed = 0; mUpdate = 1; } -} \ No newline at end of file +} diff --git a/gui/fill.cpp b/gui/fill.cpp index 094814e0..11b700fc 100644 --- a/gui/fill.cpp +++ b/gui/fill.cpp @@ -35,8 +35,10 @@ GUIFill::GUIFill(xml_node<>* node) return; attr = node->first_attribute("color"); - if (!attr) + if (!attr) { + LOGE("No color specified for fill\n"); return; + } std::string color = attr->value(); ConvertStrToColor(color, &mColor); diff --git a/gui/listbox.cpp b/gui/listbox.cpp index 60517234..910a6a39 100644 --- a/gui/listbox.cpp +++ b/gui/listbox.cpp @@ -1,4 +1,20 @@ -// FileSelector.cpp - GUIFileSelector object +/* + Copyright 2013 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ #include #include diff --git a/gui/objects.hpp b/gui/objects.hpp index 3a39fe56..973c3cfe 100644 --- a/gui/objects.hpp +++ b/gui/objects.hpp @@ -1,3 +1,20 @@ +/* + Copyright 2013 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ // objects.h - Base classes for object manager of GUI #ifndef _OBJECTS_HEADER @@ -17,6 +34,7 @@ using namespace rapidxml; #include "../data.hpp" #include "resources.hpp" #include "pages.hpp" +#include "../partitions.hpp" class RenderObject { @@ -357,6 +375,8 @@ protected: bool mRendered; bool hasHighlightColor; bool renderHighlight; + bool hasFill; + COLOR mFillColor; COLOR mHighlightColor; }; @@ -586,6 +606,92 @@ protected: int touchDebounce; }; +class GUIPartitionList : public RenderObject, public ActionObject +{ +public: + GUIPartitionList(xml_node<>* node); + virtual ~GUIPartitionList(); + +public: + // Render - Render the full object to the GL surface + // Return 0 on success, <0 on error + virtual int Render(void); + + // Update - Update any UI component animations (called <= 30 FPS) + // Return 0 if nothing to update, 1 on success and contiue, >1 if full render required, and <0 on error + virtual int Update(void); + + // NotifyTouch - Notify of a touch event + // Return 0 on success, >0 to ignore remainder of touch, and <0 on error + virtual int NotifyTouch(TOUCH_STATE state, int x, int y); + + // NotifyVarChange - Notify of a variable change + virtual int NotifyVarChange(std::string varName, std::string value); + + // SetPos - Update the position of the render object + // Return 0 on success, <0 on error + virtual int SetRenderPos(int x, int y, int w = 0, int h = 0); + + // SetPageFocus - Notify when a page gains or loses focus + virtual void SetPageFocus(int inFocus); + +protected: + +protected: + virtual int GetSelection(int x, int y); + virtual void MatchList(void); + +protected: + std::vector mList; + std::string ListType; + std::string mVariable; + std::string selectedList; + std::string currentValue; + std::string mHeaderText; + std::string mLastValue; + int actualLineHeight; + int mStart; + int startY; + int mSeparatorH, mHeaderSeparatorH; + int mLineSpacing; + int mUpdate; + int mBackgroundX, mBackgroundY, mBackgroundW, mBackgroundH, mHeaderH; + int mFastScrollW; + int mFastScrollLineW; + int mFastScrollRectW; + int mFastScrollRectH; + int mFastScrollRectX; + int mFastScrollRectY; + int mIconWidth, mIconHeight, mSelectedIconWidth, mSelectedIconHeight, mUnselectedIconWidth, mUnselectedIconHeight, mHeaderIconHeight, mHeaderIconWidth; + int scrollingSpeed; + int scrollingY; + static int mSortOrder; + unsigned mFontHeight; + unsigned mLineHeight; + Resource* mHeaderIcon; + Resource* mIconSelected; + Resource* mIconUnselected; + Resource* mBackground; + Resource* mFont; + COLOR mBackgroundColor; + COLOR mFontColor; + COLOR mHeaderBackgroundColor; + COLOR mHeaderFontColor; + COLOR mSeparatorColor; + COLOR mHeaderSeparatorColor; + COLOR mFastScrollLineColor; + COLOR mFastScrollRectColor; + bool hasHighlightColor; + bool hasFontHighlightColor; + bool isHighlighted; + COLOR mHighlightColor; + COLOR mFontHighlightColor; + int mHeaderIsStatic; + int startSelection; + int touchDebounce; + bool updateList; +}; + // GUIAnimation - Used for animations class GUIAnimation : public RenderObject { diff --git a/gui/pages.cpp b/gui/pages.cpp index c4a65b43..40de44f7 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -1,4 +1,21 @@ -// base_objects.cpp - Source to manage GUI base objects +/* + Copyright 2013 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ +// pages.cpp - Source to manage GUI base objects #include #include @@ -276,6 +293,12 @@ bool Page::ProcessNode(xml_node<>* page, xml_node<>* templates /* = NULL */, int mActions.push_back(element); mInputs.push_back(element); } + else if (type == "partitionlist") + { + GUIPartitionList* element = new GUIPartitionList(child); + mRenders.push_back(element); + mActions.push_back(element); + } else if (type == "template") { if (!templates || !child->first_attribute("name")) diff --git a/gui/partitionlist.cpp b/gui/partitionlist.cpp new file mode 100644 index 00000000..9f9321c0 --- /dev/null +++ b/gui/partitionlist.cpp @@ -0,0 +1,926 @@ +/* + Copyright 2013 bigbiff/Dees_Troy TeamWin + This file is part of TWRP/TeamWin Recovery Project. + + TWRP 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. + + TWRP 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 TWRP. If not, see . +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +extern "C" { +#include "../common.h" +#include "../roots.h" +#include "../minuitwrp/minui.h" +#include "../recovery_ui.h" +} + +#include "rapidxml.hpp" +#include "objects.hpp" +#include "../data.hpp" +#include "../twrp-functions.hpp" +#include "../partitions.hpp" + +#define SCROLLING_SPEED_DECREMENT 6 +#define SCROLLING_FLOOR 10 +#define SCROLLING_MULTIPLIER 6 + +GUIPartitionList::GUIPartitionList(xml_node<>* node) +{ + xml_attribute<>* attr; + xml_node<>* child; + int header_separator_color_specified = 0, header_separator_height_specified = 0, header_text_color_specified = 0, header_background_color_specified = 0; + + mStart = mLineSpacing = startY = mFontHeight = mSeparatorH = scrollingY = scrollingSpeed = 0; + mIconWidth = mIconHeight = mSelectedIconHeight = mSelectedIconWidth = mUnselectedIconHeight = mUnselectedIconWidth = mHeaderIconHeight = mHeaderIconWidth = 0; + mHeaderSeparatorH = mLineHeight = mHeaderIsStatic = mHeaderH = actualLineHeight = 0; + mIconSelected = mIconUnselected = mBackground = mFont = mHeaderIcon = NULL; + mBackgroundX = mBackgroundY = mBackgroundW = mBackgroundH = 0; + mFastScrollW = mFastScrollLineW = mFastScrollRectW = mFastScrollRectH = 0; + mFastScrollRectX = mFastScrollRectY = -1; + mUpdate = 0; + touchDebounce = 6; + ConvertStrToColor("black", &mBackgroundColor); + ConvertStrToColor("black", &mHeaderBackgroundColor); + ConvertStrToColor("black", &mSeparatorColor); + ConvertStrToColor("black", &mHeaderSeparatorColor); + ConvertStrToColor("white", &mFontColor); + ConvertStrToColor("white", &mHeaderFontColor); + ConvertStrToColor("white", &mFastScrollLineColor); + ConvertStrToColor("white", &mFastScrollRectColor); + hasHighlightColor = false; + hasFontHighlightColor = false; + isHighlighted = false; + updateList = false; + startSelection = -1; + + // Load header text + child = node->first_node("header"); + if (child) + { + attr = child->first_attribute("icon"); + if (attr) + mHeaderIcon = PageManager::FindResource(attr->value()); + + attr = child->first_attribute("background"); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mHeaderBackgroundColor); + header_background_color_specified = -1; + } + attr = child->first_attribute("textcolor"); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mHeaderFontColor); + header_text_color_specified = -1; + } + attr = child->first_attribute("separatorcolor"); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mHeaderSeparatorColor); + header_separator_color_specified = -1; + } + attr = child->first_attribute("separatorheight"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mHeaderSeparatorH = atoi(parsevalue.c_str()); + header_separator_height_specified = -1; + } + } + child = node->first_node("text"); + if (child) mHeaderText = child->value(); + + memset(&mHighlightColor, 0, sizeof(COLOR)); + child = node->first_node("highlight"); + if (child) { + attr = child->first_attribute("color"); + if (attr) { + hasHighlightColor = true; + std::string color = attr->value(); + ConvertStrToColor(color, &mHighlightColor); + } + } + + // Simple way to check for static state + mLastValue = gui_parse_text(mHeaderText); + if (mLastValue != mHeaderText) + mHeaderIsStatic = 0; + else + mHeaderIsStatic = -1; + + child = node->first_node("icon"); + if (child) + { + attr = child->first_attribute("selected"); + if (attr) + mIconSelected = PageManager::FindResource(attr->value()); + attr = child->first_attribute("unselected"); + if (attr) + mIconUnselected = PageManager::FindResource(attr->value()); + } + child = node->first_node("background"); + if (child) + { + attr = child->first_attribute("resource"); + if (attr) + mBackground = PageManager::FindResource(attr->value()); + attr = child->first_attribute("color"); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mBackgroundColor); + if (!header_background_color_specified) + ConvertStrToColor(color, &mHeaderBackgroundColor); + } + } + + // Load the placement + LoadPlacement(node->first_node("placement"), &mRenderX, &mRenderY, &mRenderW, &mRenderH); + SetActionPos(mRenderX, mRenderY, mRenderW, mRenderH); + + // Load the font, and possibly override the color + child = node->first_node("font"); + if (child) + { + attr = child->first_attribute("resource"); + if (attr) + mFont = PageManager::FindResource(attr->value()); + + attr = child->first_attribute("color"); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mFontColor); + if (!header_text_color_specified) + ConvertStrToColor(color, &mHeaderFontColor); + } + + attr = child->first_attribute("spacing"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mLineSpacing = atoi(parsevalue.c_str()); + } + + attr = child->first_attribute("highlightcolor"); + memset(&mFontHighlightColor, 0, sizeof(COLOR)); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mFontHighlightColor); + hasFontHighlightColor = true; + } + } + + // Load the separator if it exists + child = node->first_node("separator"); + if (child) + { + attr = child->first_attribute("color"); + if (attr) + { + std::string color = attr->value(); + ConvertStrToColor(color, &mSeparatorColor); + if (!header_separator_color_specified) + ConvertStrToColor(color, &mHeaderSeparatorColor); + } + + attr = child->first_attribute("height"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mSeparatorH = atoi(parsevalue.c_str()); + if (!header_separator_height_specified) + mHeaderSeparatorH = mSeparatorH; + } + } + + // Handle the result variable + child = node->first_node("data"); + if (child) + { + attr = child->first_attribute("name"); + if (attr) + mVariable = attr->value(); + attr = child->first_attribute("selectedlist"); + if (attr) + selectedList = attr->value(); + } + + // Fast scroll colors + child = node->first_node("fastscroll"); + if (child) + { + attr = child->first_attribute("linecolor"); + if(attr) + ConvertStrToColor(attr->value(), &mFastScrollLineColor); + + attr = child->first_attribute("rectcolor"); + if(attr) + ConvertStrToColor(attr->value(), &mFastScrollRectColor); + + attr = child->first_attribute("w"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mFastScrollW = atoi(parsevalue.c_str()); + } + + attr = child->first_attribute("linew"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mFastScrollLineW = atoi(parsevalue.c_str()); + } + + attr = child->first_attribute("rectw"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mFastScrollRectW = atoi(parsevalue.c_str()); + } + + attr = child->first_attribute("recth"); + if (attr) { + string parsevalue = gui_parse_text(attr->value()); + mFastScrollRectH = atoi(parsevalue.c_str()); + } + } + + // Retrieve the line height + gr_getFontDetails(mFont ? mFont->GetResource() : NULL, &mFontHeight, NULL); + mLineHeight = mFontHeight; + mHeaderH = mFontHeight; + + if (mIconSelected && mIconSelected->GetResource()) + { + mSelectedIconWidth = gr_get_width(mIconSelected->GetResource()); + mSelectedIconHeight = gr_get_height(mIconSelected->GetResource()); + if (mSelectedIconHeight > (int)mLineHeight) + mLineHeight = mSelectedIconHeight; + mIconWidth = mSelectedIconWidth; + } + + if (mIconUnselected && mIconUnselected->GetResource()) + { + mUnselectedIconWidth = gr_get_width(mIconUnselected->GetResource()); + mUnselectedIconHeight = gr_get_height(mIconUnselected->GetResource()); + if (mUnselectedIconHeight > (int)mLineHeight) + mLineHeight = mUnselectedIconHeight; + if (mUnselectedIconWidth > mIconWidth) + mIconWidth = mUnselectedIconWidth; + } + + if (mHeaderIcon && mHeaderIcon->GetResource()) + { + mHeaderIconWidth = gr_get_width(mHeaderIcon->GetResource()); + mHeaderIconHeight = gr_get_height(mHeaderIcon->GetResource()); + if (mHeaderIconHeight > mHeaderH) + mHeaderH = mHeaderIconHeight; + if (mHeaderIconWidth > mIconWidth) + mIconWidth = mHeaderIconWidth; + } + + mHeaderH += mLineSpacing + mHeaderSeparatorH; + actualLineHeight = mLineHeight + mLineSpacing + mSeparatorH; + if (mHeaderH < actualLineHeight) + mHeaderH = actualLineHeight; + + if (actualLineHeight / 3 > 6) + touchDebounce = actualLineHeight / 3; + + if (mBackground && mBackground->GetResource()) + { + mBackgroundW = gr_get_width(mBackground->GetResource()); + mBackgroundH = gr_get_height(mBackground->GetResource()); + } + + child = node->first_node("listtype"); + if (child) { + attr = child->first_attribute("name"); + if (attr) { + ListType = attr->value(); + PartitionManager.Get_Partition_List(ListType, &mList); + } else { + mList.clear(); + LOGE("No partition listtype name specified for partitionlist GUI element\n"); + return; + } + } else { + mList.clear(); + LOGE("No partition listtype specified for partitionlist GUI element\n"); + return; + } +} + +GUIPartitionList::~GUIPartitionList() +{ +} + +int GUIPartitionList::Render(void) +{ + // First step, fill background + gr_color(mBackgroundColor.red, mBackgroundColor.green, mBackgroundColor.blue, 255); + gr_fill(mRenderX, mRenderY + mHeaderH, mRenderW, mRenderH - mHeaderH); + + // Next, render the background resource (if it exists) + if (mBackground && mBackground->GetResource()) + { + mBackgroundX = mRenderX + ((mRenderW - mBackgroundW) / 2); + mBackgroundY = mRenderY + ((mRenderH - mBackgroundH) / 2); + gr_blit(mBackground->GetResource(), 0, 0, mBackgroundW, mBackgroundH, mBackgroundX, mBackgroundY); + } + + // This tells us how many lines we can actually render + int lines = (mRenderH - mHeaderH) / (actualLineHeight); + int line; + + if (updateList) { + mList.clear(); + PartitionManager.Get_Partition_List(ListType, &mList); + updateList = false; + if (ListType == "backup") + MatchList(); + } + + int listSize = mList.size(); + int listW = mRenderW; + + if (listSize < lines) { + lines = listSize; + scrollingY = 0; + mFastScrollRectX = mFastScrollRectY = -1; + } else { + lines++; + if (lines < listSize) + lines++; + if (listSize >= lines) + listW -= mFastScrollW; // space for fast scrollbar + else + mFastScrollRectX = mFastScrollRectY = -1; // no fast scrollbar + } + + void* fontResource = NULL; + if (mFont) fontResource = mFont->GetResource(); + + int yPos = mRenderY + mHeaderH + scrollingY; + int fontOffsetY = (int)((actualLineHeight - mFontHeight) / 2); + int currentIconHeight = 0, currentIconWidth = 0; + int currentIconOffsetY = 0, currentIconOffsetX = 0; + int UnselectedIconOffsetY = (int)((actualLineHeight - mUnselectedIconHeight) / 2), SelectedIconOffsetY = (int)((actualLineHeight - mSelectedIconHeight) / 2); + int UnselectedIconOffsetX = (mIconWidth - mUnselectedIconWidth) / 2, SelectedIconOffsetX = (mIconWidth - mSelectedIconWidth) / 2; + int actualSelection = mStart; + + if (isHighlighted) { + int selectY = scrollingY; + + // Locate the correct line for highlighting + while (selectY + actualLineHeight < startSelection) { + selectY += actualLineHeight; + actualSelection++; + } + if (hasHighlightColor) { + // Highlight the area + gr_color(mHighlightColor.red, mHighlightColor.green, mHighlightColor.blue, 255); + int HighlightHeight = actualLineHeight; + if (mRenderY + mHeaderH + selectY + actualLineHeight > mRenderH + mRenderY) { + HighlightHeight = actualLineHeight - (mRenderY + mHeaderH + selectY + actualLineHeight - mRenderH - mRenderY); + } + gr_fill(mRenderX, mRenderY + mHeaderH + selectY, mRenderW, HighlightHeight); + } + } + + for (line = 0; line < lines; line++) + { + Resource* icon; + std::string label; + + if (line + mStart >= listSize) + continue; + + label = mList.at(line + mStart).Display_Name; + if (isHighlighted && hasFontHighlightColor && line + mStart == actualSelection) { + // Use the highlight color for the font + gr_color(mFontHighlightColor.red, mFontHighlightColor.green, mFontHighlightColor.blue, 255); + } else { + // Set the color for the font + gr_color(mFontColor.red, mFontColor.green, mFontColor.blue, 255); + } + + if (mList.at(line + mStart).selected != 0) + { + icon = mIconSelected; + currentIconHeight = mSelectedIconHeight; + currentIconWidth = mSelectedIconWidth; + currentIconOffsetY = SelectedIconOffsetY; + currentIconOffsetX = SelectedIconOffsetX; + } + else + { + icon = mIconUnselected; + currentIconHeight = mSelectedIconHeight; + currentIconWidth = mSelectedIconWidth; + currentIconOffsetY = SelectedIconOffsetY; + currentIconOffsetX = SelectedIconOffsetX; + } + + if (icon && icon->GetResource()) + { + int rect_y = 0, image_y = (yPos + currentIconOffsetY); + if (image_y + currentIconHeight > mRenderY + mRenderH) + rect_y = mRenderY + mRenderH - image_y; + else + rect_y = currentIconHeight; + gr_blit(icon->GetResource(), 0, 0, currentIconWidth, rect_y, mRenderX + currentIconOffsetX, image_y); + } + gr_textExWH(mRenderX + mIconWidth + 5, yPos + fontOffsetY, label.c_str(), fontResource, mRenderX + listW, mRenderY + mRenderH); + + // Add the separator + if (yPos + actualLineHeight < mRenderH + mRenderY) { + gr_color(mSeparatorColor.red, mSeparatorColor.green, mSeparatorColor.blue, 255); + gr_fill(mRenderX, yPos + actualLineHeight - mSeparatorH, listW, mSeparatorH); + } + + // Move the yPos + yPos += actualLineHeight; + } + + // Render the Header (last so that it overwrites the top most row for per pixel scrolling) + // First step, fill background + gr_color(mHeaderBackgroundColor.red, mHeaderBackgroundColor.green, mHeaderBackgroundColor.blue, 255); + gr_fill(mRenderX, mRenderY, mRenderW, mHeaderH); + + // Now, we need the header (icon + text) + yPos = mRenderY; + { + Resource* headerIcon; + int mIconOffsetX = 0; + + // render the icon if it exists + headerIcon = mHeaderIcon; + if (headerIcon && headerIcon->GetResource()) + { + gr_blit(headerIcon->GetResource(), 0, 0, mHeaderIconWidth, mHeaderIconHeight, mRenderX + ((mHeaderIconWidth - mIconWidth) / 2), (yPos + (int)((mHeaderH - mHeaderIconHeight) / 2))); + mIconOffsetX = mIconWidth; + } + + // render the text + gr_color(mHeaderFontColor.red, mHeaderFontColor.green, mHeaderFontColor.blue, 255); + gr_textExWH(mRenderX + mIconOffsetX + 5, yPos + (int)((mHeaderH - mFontHeight) / 2), mLastValue.c_str(), fontResource, mRenderX + mRenderW, mRenderY + mRenderH); + + // Add the separator + gr_color(mHeaderSeparatorColor.red, mHeaderSeparatorColor.green, mHeaderSeparatorColor.blue, 255); + gr_fill(mRenderX, yPos + mHeaderH - mHeaderSeparatorH, mRenderW, mHeaderSeparatorH); + } + + // render fast scroll + lines = (mRenderH - mHeaderH) / (actualLineHeight); + if(mFastScrollW > 0 && listSize > lines) + { + int startX = listW + mRenderX; + int fWidth = mRenderW - listW; + int fHeight = mRenderH - mHeaderH; + + // line + gr_color(mFastScrollLineColor.red, mFastScrollLineColor.green, mFastScrollLineColor.blue, 255); + gr_fill(startX + fWidth/2, mRenderY + mHeaderH, mFastScrollLineW, mRenderH - mHeaderH); + + // rect + int pct = ((mStart*actualLineHeight - scrollingY)*100)/((listSize)*actualLineHeight-lines*actualLineHeight); + mFastScrollRectX = startX + (fWidth - mFastScrollRectW)/2; + mFastScrollRectY = mRenderY+mHeaderH + ((fHeight - mFastScrollRectH)*pct)/100; + + gr_color(mFastScrollRectColor.red, mFastScrollRectColor.green, mFastScrollRectColor.blue, 255); + gr_fill(mFastScrollRectX, mFastScrollRectY, mFastScrollRectW, mFastScrollRectH); + } + + mUpdate = 0; + return 0; +} + +int GUIPartitionList::Update(void) +{ + if (!mHeaderIsStatic) { + std::string newValue = gui_parse_text(mHeaderText); + if (mLastValue != newValue) { + mLastValue = newValue; + mUpdate = 1; + } + } + + // Check for changes in mount points if the list type is mount and update the list and render if needed + if (ListType == "mount") { + int listSize = mList.size(); + for (int i = 0; i < listSize; i++) { + if (PartitionManager.Is_Mounted_By_Path(mList.at(i).Mount_Point) && !mList.at(i).selected) { + mList.at(i).selected = 1; + mUpdate = 1; + } else if (!PartitionManager.Is_Mounted_By_Path(mList.at(i).Mount_Point) && mList.at(i).selected) { + mList.at(i).selected = 0; + mUpdate = 1; + } + } + } + + if (mUpdate) + { + mUpdate = 0; + if (Render() == 0) + return 2; + } + + // Handle kinetic scrolling + if (scrollingSpeed == 0) { + // Do nothing + } else if (scrollingSpeed > 0) { + if (scrollingSpeed < ((int) (actualLineHeight * 2.5))) { + scrollingY += scrollingSpeed; + scrollingSpeed -= SCROLLING_SPEED_DECREMENT; + } else { + scrollingY += ((int) (actualLineHeight * 2.5)); + scrollingSpeed -= SCROLLING_SPEED_DECREMENT; + } + while (mStart && scrollingY > 0) { + mStart--; + scrollingY -= actualLineHeight; + } + if (mStart == 0 && scrollingY > 0) { + scrollingY = 0; + scrollingSpeed = 0; + } else if (scrollingSpeed < SCROLLING_FLOOR) + scrollingSpeed = 0; + mUpdate = 1; + } else if (scrollingSpeed < 0) { + int totalSize = mList.size(); + int lines = (mRenderH - mHeaderH) / (actualLineHeight); + + if (totalSize > lines) { + int bottom_offset = ((int)(mRenderH) - mHeaderH) - (lines * actualLineHeight); + + bottom_offset -= actualLineHeight; + + if (abs(scrollingSpeed) < ((int) (actualLineHeight * 2.5))) { + scrollingY += scrollingSpeed; + scrollingSpeed += SCROLLING_SPEED_DECREMENT; + } else { + scrollingY -= ((int) (actualLineHeight * 2.5)); + scrollingSpeed += SCROLLING_SPEED_DECREMENT; + } + while (mStart + lines + (bottom_offset ? 1 : 0) < totalSize && abs(scrollingY) > actualLineHeight) { + mStart++; + scrollingY += actualLineHeight; + } + if (bottom_offset != 0 && mStart + lines + 1 >= totalSize && scrollingY <= bottom_offset) { + mStart = totalSize - lines - 1; + scrollingY = bottom_offset; + } else if (mStart + lines >= totalSize && scrollingY < 0) { + mStart = totalSize - lines; + scrollingY = 0; + } else if (scrollingSpeed * -1 < SCROLLING_FLOOR) + scrollingSpeed = 0; + mUpdate = 1; + } + } + + return 0; +} + +int GUIPartitionList::GetSelection(int x, int y) +{ + // We only care about y position + if (y < mRenderY || y - mRenderY <= mHeaderH || y - mRenderY > mRenderH) return -1; + return (y - mRenderY - mHeaderH); +} + +int GUIPartitionList::NotifyTouch(TOUCH_STATE state, int x, int y) +{ + static int lastY = 0, last2Y = 0; + int selection = 0; + + switch (state) + { + case TOUCH_START: + if (scrollingSpeed != 0) + startSelection = -1; + else + startSelection = GetSelection(x,y); + isHighlighted = (startSelection > -1); + if (isHighlighted) + mUpdate = 1; + startY = lastY = last2Y = y; + scrollingSpeed = 0; + break; + + case TOUCH_DRAG: + // Check if we dragged out of the selection window + if (GetSelection(x, y) == -1) { + last2Y = lastY = 0; + if (isHighlighted) { + isHighlighted = false; + mUpdate = 1; + } + break; + } + + // Fast scroll + if(mFastScrollRectX != -1 && x >= mRenderX + mRenderW - mFastScrollW) + { + int pct = ((y-mRenderY-mHeaderH)*100)/(mRenderH-mHeaderH); + int totalSize = mList.size(); + int lines = (mRenderH - mHeaderH) / (actualLineHeight); + + float l = float((totalSize-lines)*pct)/100; + if(l + lines >= totalSize) + { + mStart = totalSize - lines; + scrollingY = 0; + } + else + { + mStart = l; + scrollingY = -(l - int(l))*actualLineHeight; + } + + startSelection = -1; + mUpdate = 1; + scrollingSpeed = 0; + isHighlighted = false; + break; + } + + // Provide some debounce on initial touches + if (startSelection != -1 && abs(y - startY) < touchDebounce) { + isHighlighted = true; + mUpdate = 1; + break; + } + + isHighlighted = false; + last2Y = lastY; + lastY = y; + startSelection = -1; + + // Handle scrolling + scrollingY += y - startY; + startY = y; + while(mStart && scrollingY > 0) { + mStart--; + scrollingY -= actualLineHeight; + } + if (mStart == 0 && scrollingY > 0) + scrollingY = 0; + { + int totalSize = mList.size(); + int lines = (mRenderH - mHeaderH) / (actualLineHeight); + + if (totalSize > lines) { + int bottom_offset = ((int)(mRenderH) - mHeaderH) - (lines * actualLineHeight); + + bottom_offset -= actualLineHeight; + + while (mStart + lines + (bottom_offset ? 1 : 0) < totalSize && abs(scrollingY) > actualLineHeight) { + mStart++; + scrollingY += actualLineHeight; + } + if (bottom_offset != 0 && mStart + lines + 1 >= totalSize && scrollingY <= bottom_offset) { + mStart = totalSize - lines - 1; + scrollingY = bottom_offset; + } else if (mStart + lines >= totalSize && scrollingY < 0) { + mStart = totalSize - lines; + scrollingY = 0; + } + } else + scrollingY = 0; + } + mUpdate = 1; + break; + + case TOUCH_RELEASE: + isHighlighted = false; + if (startSelection >= 0) + { + // We've selected an item! + int listSize = mList.size(); + int selectY = scrollingY, actualSelection = mStart; + + // Move the selection to the proper place in the array + while (selectY + actualLineHeight < startSelection) { + selectY += actualLineHeight; + actualSelection++; + } + + if (actualSelection < listSize && ListType == "mount") { + if (!mList.at(actualSelection).selected) { + if (PartitionManager.Mount_By_Path(mList.at(actualSelection).Mount_Point, true)) { + mList.at(actualSelection).selected = 1; + mUpdate = 1; + } + } else { + if (PartitionManager.UnMount_By_Path(mList.at(actualSelection).Mount_Point, true)) { + mList.at(actualSelection).selected = 0; + mUpdate = 1; + } + } + } else if (actualSelection < listSize && !mVariable.empty()) { + if (ListType == "storage") { + int i; + std::string str = mList.at(actualSelection).Mount_Point; + bool update_size = false; + TWPartition* Part = PartitionManager.Find_Partition_By_Path(str); + if (Part == NULL) { + LOGE("Unable to locate partition for '%s'\n", str.c_str()); + return 0; + } + if (!Part->Is_Mounted() && Part->Removable) + update_size = true; + if (!Part->Mount(true)) { + // Do Nothing + } else if (update_size && !Part->Update_Size(true)) { + // Do Nothing + } else { + for (i=0; iFree / 1024 / 1024); + mList.at(actualSelection).Display_Name = Part->Storage_Name + " ("; + mList.at(actualSelection).Display_Name += free_space; + mList.at(actualSelection).Display_Name += "MB)"; + } + mList.at(actualSelection).selected = 1; + mUpdate = 1; + + DataManager::SetValue(mVariable, str); + } + } else { + if (mList.at(actualSelection).selected) + mList.at(actualSelection).selected = 0; + else + mList.at(actualSelection).selected = 1; + + int i; + string variablelist; + for (i=0; i SCROLLING_FLOOR) + scrollingSpeed *= SCROLLING_MULTIPLIER; + else + scrollingSpeed = 0; + } + case TOUCH_REPEAT: + case TOUCH_HOLD: + break; + } + return 0; +} + +int GUIPartitionList::NotifyVarChange(std::string varName, std::string value) +{ + if (!mHeaderIsStatic) { + std::string newValue = gui_parse_text(mHeaderText); + if (mLastValue != newValue) { + mLastValue = newValue; + mStart = 0; + scrollingY = 0; + scrollingSpeed = 0; + mUpdate = 1; + } + } + if (varName == mVariable && !mUpdate) + { + if (ListType == "storage") { + int i, listSize = mList.size(), selected_index = 0; + + currentValue = value; + + for (i=0; i mStart + lines - 1) { + mStart = selected_index; + } else if (selected_index < mStart) { + mStart = selected_index; + } + } else if (ListType == "backup") { + MatchList(); + } else if (ListType == "restore") { + updateList = true; + } + + mUpdate = 1; + return 0; + } + return 0; +} + +int GUIPartitionList::SetRenderPos(int x, int y, int w /* = 0 */, int h /* = 0 */) +{ + mRenderX = x; + mRenderY = y; + if (w || h) + { + mRenderW = w; + mRenderH = h; + } + SetActionPos(mRenderX, mRenderY, mRenderW, mRenderH); + mUpdate = 1; + return 0; +} + +void GUIPartitionList::SetPageFocus(int inFocus) +{ + if (inFocus) { + if (ListType == "storage") { + int i, listSize = mList.size(), selected_index = 0; + + DataManager::GetValue(mVariable, currentValue); + + for (i=0; i mStart + lines - 1) { + mStart = selected_index; + } else if (selected_index < mStart) { + mStart = selected_index; + } + } + updateList = true; + mUpdate = 1; + } +} + +void GUIPartitionList::MatchList(void) { + int i, listSize = mList.size(); + string variablelist, searchvalue; + size_t pos; + + DataManager::GetValue(mVariable, variablelist); + + for (i=0; iGetResource(); h = mFontHeight; + mLastValue = parseText(); w = gr_measureEx(mLastValue.c_str(), fontResource); return 0; } diff --git a/openrecoveryscript.cpp b/openrecoveryscript.cpp index e319a9c6..5a23c1d4 100644 --- a/openrecoveryscript.cpp +++ b/openrecoveryscript.cpp @@ -215,52 +215,41 @@ int OpenRecoveryScript::run_script_file(void) { DataManager::SetValue("tw_restore", folder_path); PartitionManager.Set_Restore_Files(folder_path); + string Partition_List; + DataManager::GetValue("tw_restore_list", Partition_List); if (strlen(partitions) != 0) { - int tw_restore_system = 0; - int tw_restore_data = 0; - int tw_restore_cache = 0; - int tw_restore_recovery = 0; - int tw_restore_boot = 0; - int tw_restore_andsec = 0; - int tw_restore_sdext = 0; - int tw_restore_sp1 = 0; - int tw_restore_sp2 = 0; - int tw_restore_sp3 = 0; + string Restore_List; memset(value2, 0, sizeof(value2)); strcpy(value2, partitions); ui_print("Setting restore options: '%s':\n", value2); line_len = strlen(value2); for (i=0; i 0) { - tw_restore_system = 1; + if ((value2[i] == 'S' || value2[i] == 's') && Partition_List.find("/system;") != string::npos) { + Restore_List += "/system;"; ui_print("System\n"); - } else if ((value2[i] == 'D' || value2[i] == 'd') && DataManager::GetIntValue(TW_RESTORE_DATA_VAR) > 0) { - tw_restore_data = 1; + } else if ((value2[i] == 'D' || value2[i] == 'd') && Partition_List.find("/data;") != string::npos) { + Restore_List += "/data;"; ui_print("Data\n"); - } else if ((value2[i] == 'C' || value2[i] == 'c') && DataManager::GetIntValue(TW_RESTORE_CACHE_VAR) > 0) { - tw_restore_cache = 1; + } else if ((value2[i] == 'C' || value2[i] == 'c') && Partition_List.find("/cache;") != string::npos) { + Restore_List += "/cache;"; ui_print("Cache\n"); - } else if ((value2[i] == 'R' || value2[i] == 'r') && DataManager::GetIntValue(TW_RESTORE_RECOVERY_VAR) > 0) { - tw_restore_recovery = 1; - ui_print("Recovery\n"); + } else if ((value2[i] == 'R' || value2[i] == 'r') && Partition_List.find("/recovery;") != string::npos) { + ui_print("Recovery -- Not allowed to restore recovery\n"); } else if (value2[i] == '1' && DataManager::GetIntValue(TW_RESTORE_SP1_VAR) > 0) { - tw_restore_sp1 = 1; - ui_print("%s\n", "Special1"); + ui_print("%s\n", "Special1 -- No Longer Supported..."); } else if (value2[i] == '2' && DataManager::GetIntValue(TW_RESTORE_SP2_VAR) > 0) { - tw_restore_sp2 = 1; - ui_print("%s\n", "Special2"); + ui_print("%s\n", "Special2 -- No Longer Supported..."); } else if (value2[i] == '3' && DataManager::GetIntValue(TW_RESTORE_SP3_VAR) > 0) { - tw_restore_sp3 = 1; - ui_print("%s\n", "Special3"); - } else if ((value2[i] == 'B' || value2[i] == 'b') && DataManager::GetIntValue(TW_RESTORE_BOOT_VAR) > 0) { - tw_restore_boot = 1; + ui_print("%s\n", "Special3 -- No Longer Supported..."); + } else if ((value2[i] == 'B' || value2[i] == 'b') && Partition_List.find("/boot;") != string::npos) { + Restore_List += "/boot;"; ui_print("Boot\n"); - } else if ((value2[i] == 'A' || value2[i] == 'a') && DataManager::GetIntValue(TW_RESTORE_ANDSEC_VAR) > 0) { - tw_restore_andsec = 1; + } else if ((value2[i] == 'A' || value2[i] == 'a') && Partition_List.find("/and-sec;") != string::npos) { + Restore_List += "/and-sec;"; ui_print("Android Secure\n"); - } else if ((value2[i] == 'E' || value2[i] == 'e') && DataManager::GetIntValue(TW_RESTORE_SDEXT_VAR) > 0) { - tw_restore_sdext = 1; + } else if ((value2[i] == 'E' || value2[i] == 'e') && Partition_List.find("/sd-ext;") != string::npos) { + Restore_List += "/sd-ext;"; ui_print("SD-Ext\n"); } else if (value2[i] == 'M' || value2[i] == 'm') { DataManager::SetValue(TW_SKIP_MD5_CHECK_VAR, 1); @@ -268,29 +257,14 @@ int OpenRecoveryScript::run_script_file(void) { } } - if (DataManager::GetIntValue(TW_RESTORE_SYSTEM_VAR) && !tw_restore_system) - DataManager::SetValue(TW_RESTORE_SYSTEM_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_DATA_VAR) && !tw_restore_data) - DataManager::SetValue(TW_RESTORE_DATA_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_CACHE_VAR) && !tw_restore_cache) - DataManager::SetValue(TW_RESTORE_CACHE_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_RECOVERY_VAR) && !tw_restore_recovery) - DataManager::SetValue(TW_RESTORE_RECOVERY_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_BOOT_VAR) && !tw_restore_boot) - DataManager::SetValue(TW_RESTORE_BOOT_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_ANDSEC_VAR) && !tw_restore_andsec) - DataManager::SetValue(TW_RESTORE_ANDSEC_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_SDEXT_VAR) && !tw_restore_sdext) - DataManager::SetValue(TW_RESTORE_SDEXT_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_SP1_VAR) && !tw_restore_sp1) - DataManager::SetValue(TW_RESTORE_SP1_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_SP2_VAR) && !tw_restore_sp2) - DataManager::SetValue(TW_RESTORE_SP2_VAR, 0); - if (DataManager::GetIntValue(TW_RESTORE_SP3_VAR) && !tw_restore_sp3) - DataManager::SetValue(TW_RESTORE_SP3_VAR, 0); + DataManager::SetValue("tw_restore_selected", Restore_List); + } else { + DataManager::SetValue("tw_restore_selected", Partition_List); } - PartitionManager.Run_Restore(folder_path); - ui_print("Restore complete!\n"); + if (!PartitionManager.Run_Restore(folder_path)) + ret_val = 1; + else + ui_print("Restore complete!\n"); } else if (strcmp(command, "mount") == 0) { // Mount DataManager::SetValue("tw_action_text2", "Mounting"); @@ -493,20 +467,10 @@ string OpenRecoveryScript::Locate_Zip_File(string Zip, string Storage_Root) { int OpenRecoveryScript::Backup_Command(string Options) { char value1[SCRIPT_COMMAND_SIZE]; int line_len, i; + string Backup_List; strcpy(value1, Options.c_str()); - DataManager::SetValue(TW_BACKUP_SYSTEM_VAR, 0); - DataManager::SetValue(TW_BACKUP_DATA_VAR, 0); - DataManager::SetValue(TW_BACKUP_CACHE_VAR, 0); - DataManager::SetValue(TW_BACKUP_RECOVERY_VAR, 0); - DataManager::SetValue(TW_BACKUP_SP1_VAR, 0); - DataManager::SetValue(TW_BACKUP_SP2_VAR, 0); - DataManager::SetValue(TW_BACKUP_SP3_VAR, 0); - DataManager::SetValue(TW_BACKUP_BOOT_VAR, 0); - DataManager::SetValue(TW_BACKUP_ANDSEC_VAR, 0); - DataManager::SetValue(TW_BACKUP_SDEXT_VAR, 0); - DataManager::SetValue(TW_BACKUP_SDEXT_VAR, 0); DataManager::SetValue(TW_USE_COMPRESSION_VAR, 0); DataManager::SetValue(TW_SKIP_MD5_GENERATE_VAR, 0); @@ -514,34 +478,31 @@ int OpenRecoveryScript::Backup_Command(string Options) { line_len = Options.size(); for (i=0; i= flags_len) continue; ptr = flags + index; + ptr_len = strlen(ptr); if (strcmp(ptr, "removable") == 0) { Removable = true; } else if (strcmp(ptr, "storage") == 0) { Is_Storage = true; + } else if (strcmp(ptr, "settingsstorage") == 0) { + Is_Storage = true; } else if (strcmp(ptr, "canbewiped") == 0) { Can_Be_Wiped = true; + } else if (ptr_len > 7 && strncmp(ptr, "backup=", 7) == 0) { + ptr += 7; + if (*ptr == '1' || *ptr == 'y' || *ptr == 'Y') + Can_Be_Backed_Up = true; + else + Can_Be_Backed_Up = false; } else if (strcmp(ptr, "wipeingui") == 0) { Can_Be_Wiped = true; Wipe_Available_in_GUI = true; @@ -349,7 +403,7 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) { Can_Be_Wiped = true; Wipe_Available_in_GUI = true; Wipe_During_Factory_Reset = true; - } else if (strlen(ptr) > 15 && strncmp(ptr, "subpartitionof=", 15) == 0) { + } else if (ptr_len > 15 && strncmp(ptr, "subpartitionof=", 15) == 0) { ptr += 15; Is_SubPartition = true; SubPartition_Of = ptr; @@ -357,16 +411,37 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) { Ignore_Blkid = true; } else if (strcmp(ptr, "retainlayoutversion") == 0) { Retain_Layout_Version = true; - } else if (strlen(ptr) > 8 && strncmp(ptr, "symlink=", 8) == 0) { + } else if (ptr_len > 8 && strncmp(ptr, "symlink=", 8) == 0) { ptr += 8; Symlink_Path = ptr; - } else if (strlen(ptr) > 8 && strncmp(ptr, "display=", 8) == 0) { + } else if (ptr_len > 8 && strncmp(ptr, "display=", 8) == 0) { + has_display_name = true; ptr += 8; + if (*ptr == '\"') ptr++; Display_Name = ptr; - } else if (strlen(ptr) > 10 && strncmp(ptr, "blocksize=", 10) == 0) { + if (Display_Name.substr(Display_Name.size() - 1, 1) == "\"") { + Display_Name.resize(Display_Name.size() - 1); + } + } else if (ptr_len > 11 && strncmp(ptr, "storagename=", 11) == 0) { + has_storage_name = true; + ptr += 11; + if (*ptr == '\"') ptr++; + Storage_Name = ptr; + if (Storage_Name.substr(Storage_Name.size() - 1, 1) == "\"") { + Storage_Name.resize(Storage_Name.size() - 1); + } + } else if (ptr_len > 11 && strncmp(ptr, "backupname=", 10) == 0) { + has_backup_name = true; + ptr += 10; + if (*ptr == '\"') ptr++; + Backup_Display_Name = ptr; + if (Backup_Display_Name.substr(Backup_Display_Name.size() - 1, 1) == "\"") { + Backup_Display_Name.resize(Backup_Display_Name.size() - 1); + } + } else if (ptr_len > 10 && strncmp(ptr, "blocksize=", 10) == 0) { ptr += 10; Format_Block_Size = atoi(ptr); - } else if (strlen(ptr) > 7 && strncmp(ptr, "length=", 7) == 0) { + } else if (ptr_len > 7 && strncmp(ptr, "length=", 7) == 0) { ptr += 7; Length = atoi(ptr); } else { @@ -378,6 +453,14 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) { while (index < flags_len && flags[index] != '\0') index++; } + if (has_display_name && !has_storage_name) + Storage_Name = Display_Name; + if (!has_display_name && has_storage_name) + Display_Name = Storage_Name; + if (has_display_name && !has_backup_name) + Backup_Display_Name = Display_Name; + if (!has_display_name && has_backup_name) + Display_Name = Backup_Display_Name; return true; } @@ -452,7 +535,9 @@ void TWPartition::Setup_Image(bool Display_Error) { } void TWPartition::Setup_AndSec(void) { + Backup_Display_Name = "Android Secure"; Backup_Name = "and-sec"; + Can_Be_Backed_Up = true; Has_Android_Secure = true; Symlink_Path = Mount_Point + "/.android_secure"; Symlink_Mount_Point = "/and-sec"; @@ -924,7 +1009,7 @@ bool TWPartition::Wipe_AndSec(void) { if (!Mount(true)) return false; - ui_print("Wiping .android_secure\n"); + ui_print("Wiping %s\n", Backup_Display_Name.c_str()); TWFunc::removeDir(Mount_Point + "/.android_secure/", true); return true; } @@ -1293,13 +1378,8 @@ bool TWPartition::Backup_Tar(string backup_folder) { if (!Mount(true)) return false; - if (Backup_Path == "/and-sec") { - TWFunc::GUI_Operation_Text(TW_BACKUP_TEXT, "Android Secure", "Backing Up"); - ui_print("Backing up %s...\n", "Android Secure"); - } else { - TWFunc::GUI_Operation_Text(TW_BACKUP_TEXT, Display_Name, "Backing Up"); - ui_print("Backing up %s...\n", Display_Name.c_str()); - } + TWFunc::GUI_Operation_Text(TW_BACKUP_TEXT, Backup_Display_Name, "Backing Up"); + ui_print("Backing up %s...\n", Backup_Display_Name.c_str()); DataManager::GetValue(TW_USE_COMPRESSION_VAR, use_compression); @@ -1398,7 +1478,6 @@ bool TWPartition::Restore_Tar(string restore_folder, string Restore_File_System) char split_index[5]; if (Has_Android_Secure) { - ui_print("Wiping android secure...\n"); if (!Wipe_AndSec()) return false; } else { @@ -1406,12 +1485,12 @@ bool TWPartition::Restore_Tar(string restore_folder, string Restore_File_System) if (!Wipe(Restore_File_System)) return false; } + TWFunc::GUI_Operation_Text(TW_RESTORE_TEXT, Backup_Display_Name, "Restoring"); + ui_print("Restoring %s...\n", Backup_Display_Name.c_str()); if (!Mount(true)) return false; - TWFunc::GUI_Operation_Text(TW_RESTORE_TEXT, Display_Name, "Restoring"); - ui_print("Restoring %s...\n", Display_Name.c_str()); Full_FileName = restore_folder + "/" + Backup_FileName; if (!TWFunc::Path_Exists(Full_FileName)) { if (!TWFunc::Path_Exists(Full_FileName)) { @@ -1575,11 +1654,11 @@ void TWPartition::Recreate_Media_Folder(void) { void TWPartition::Recreate_AndSec_Folder(void) { if (!Has_Android_Secure) return; - LOGI("Creating .android_secure: %s\n", Symlink_Path.c_str()); + LOGI("Creating %s: %s\n", Backup_Display_Name.c_str(), Symlink_Path.c_str()); if (!Mount(true)) { - LOGE("Unable to recreate android secure folder.\n"); + LOGE("Unable to recreate %s folder.\n", Backup_Name.c_str()); } else if (!TWFunc::Path_Exists(Symlink_Path)) { - LOGI("Recreating android secure folder.\n"); + LOGI("Recreating %s folder.\n", Backup_Name.c_str()); PartitionManager.Mount_By_Path(Symlink_Mount_Point, true); mkdir(Symlink_Path.c_str(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH); PartitionManager.UnMount_By_Path(Symlink_Mount_Point, true); diff --git a/partitionmanager.cpp b/partitionmanager.cpp index 4364a225..f40b35ee 100644 --- a/partitionmanager.cpp +++ b/partitionmanager.cpp @@ -56,6 +56,7 @@ extern RecoveryUI* ui; int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) { FILE *fstabFile; char fstab_line[MAX_FSTAB_LINE_LENGTH]; + bool Found_Settings_Storage = false; fstabFile = fopen(Fstab_Filename.c_str(), "rt"); if (fstabFile == NULL) { @@ -75,12 +76,36 @@ int TWPartitionManager::Process_Fstab(string Fstab_Filename, bool Display_Error) memset(fstab_line, 0, sizeof(fstab_line)); if (partition->Process_Fstab_Line(line, Display_Error)) { - Partitions.push_back(partition); + if (!Found_Settings_Storage && partition->Is_Settings_Storage) { + Found_Settings_Storage = true; + Partitions.push_back(partition); + DataManager::SetValue("tw_settings_path", partition->Storage_Path); + DataManager::SetValue("tw_storage_path", partition->Storage_Path); + LOGI("Settings storage is '%s'\n", partition->Storage_Path.c_str()); + } else { + partition->Is_Settings_Storage = false; + Partitions.push_back(partition); + } } else { delete partition; } } fclose(fstabFile); + if (!Found_Settings_Storage) { + std::vector::iterator iter; + for (iter = Partitions.begin(); iter != Partitions.end(); iter++) { + if ((*iter)->Is_Storage) { + (*iter)->Is_Settings_Storage = true; + Found_Settings_Storage = true; + DataManager::SetValue("tw_settings_path", (*iter)->Storage_Path); + DataManager::SetValue("tw_storage_path", (*iter)->Storage_Path); + LOGI("Settings storage is '%s'\n", (*iter)->Storage_Path.c_str()); + break; + } + } + if (!Found_Settings_Storage) + LOGE("Unable to locate storage partition for storing settings file.\n"); + } if (!Write_Fstab()) { if (Display_Error) LOGE("Error creating fstab\n"); @@ -136,8 +161,12 @@ void TWPartitionManager::Output_Partition(TWPartition* Part) { printf(" Used: %iMB Free: %iMB Backup Size: %iMB", (int)(Part->Used / mb), (int)(Part->Free / mb), (int)(Part->Backup_Size / mb)); } printf("\n Flags: "); + if (Part->Can_Be_Mounted) + printf("Can_Be_Mounted "); if (Part->Can_Be_Wiped) printf("Can_Be_Wiped "); + if (Part->Can_Be_Backed_Up) + printf("Can_Be_Backed_Up "); if (Part->Wipe_During_Factory_Reset) printf("Wipe_During_Factory_Reset "); if (Part->Wipe_Available_in_GUI) @@ -162,6 +191,8 @@ void TWPartitionManager::Output_Partition(TWPartition* Part) { printf("Has_Android_Secure "); if (Part->Is_Storage) printf("Is_Storage "); + if (Part->Is_Settings_Storage) + printf("Is_Settings_Storage "); if (Part->Ignore_Blkid) printf("Ignore_Blkid "); if (Part->Retain_Layout_Version) @@ -183,10 +214,14 @@ void TWPartitionManager::Output_Partition(TWPartition* Part) { printf(" Length: %i\n", Part->Length); if (!Part->Display_Name.empty()) printf(" Display_Name: %s\n", Part->Display_Name.c_str()); + if (!Part->Storage_Name.empty()) + printf(" Storage_Name: %s\n", Part->Storage_Name.c_str()); if (!Part->Backup_Path.empty()) printf(" Backup_Path: %s\n", Part->Backup_Path.c_str()); if (!Part->Backup_Name.empty()) printf(" Backup_Name: %s\n", Part->Backup_Name.c_str()); + if (!Part->Backup_Display_Name.empty()) + printf(" Backup_Display_Name: %s\n", Part->Backup_Display_Name.c_str()); if (!Part->Backup_FileName.empty()) printf(" Backup_FileName: %s\n", Part->Backup_FileName.c_str()); if (!Part->Storage_Path.empty()) @@ -441,7 +476,7 @@ int TWPartitionManager::Check_Backup_Name(bool Display_Error) { // Check each character strncpy(backup_name, Backup_Name.c_str(), copy_size); - if (strcmp(backup_name, "0") == 0) + if (copy_size == 1 && strncmp(backup_name, "0", 1) == 0) return 0; // A "0" (zero) means to use the current timestamp for the backup name for (index=0; index::iterator subpart; for (subpart = Partitions.begin(); subpart != Partitions.end(); subpart++) { - if ((*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == Part->Mount_Point) { + if ((*subpart)->Can_Be_Backed_Up && (*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == Part->Mount_Point) { if (!(*subpart)->Backup(Backup_Folder)) return false; if (!Make_MD5(generate_md5, Backup_Folder, (*subpart)->Backup_FileName)) @@ -602,23 +636,15 @@ bool TWPartitionManager::Backup_Partition(TWPartition* Part, string Backup_Folde int TWPartitionManager::Run_Backup(void) { int check, do_md5, partition_count = 0; - string Backup_Folder, Backup_Name, Full_Backup_Path; + string Backup_Folder, Backup_Name, Full_Backup_Path, Backup_List, backup_path; unsigned long long total_bytes = 0, file_bytes = 0, img_bytes = 0, free_space = 0, img_bytes_remaining, file_bytes_remaining, subpart_size; unsigned long img_time = 0, file_time = 0; - TWPartition* backup_sys = NULL; - TWPartition* backup_data = NULL; - TWPartition* backup_cache = NULL; - TWPartition* backup_recovery = NULL; - TWPartition* backup_boot = NULL; - TWPartition* backup_andsec = NULL; - TWPartition* backup_sdext = NULL; - TWPartition* backup_sp1 = NULL; - TWPartition* backup_sp2 = NULL; - TWPartition* backup_sp3 = NULL; + TWPartition* backup_part = NULL; TWPartition* storage = NULL; std::vector::iterator subpart; struct tm *t; time_t start, stop, seconds, total_start, total_stop; + size_t start_pos = 0, end_pos = 0; seconds = time(0); t = localtime(&seconds); @@ -647,162 +673,38 @@ int TWPartitionManager::Run_Backup(void) { LOGI("Full_Backup_Path is: '%s'\n", Full_Backup_Path.c_str()); LOGI("Calculating backup details...\n"); - DataManager::GetValue(TW_BACKUP_SYSTEM_VAR, check); - if (check) { - backup_sys = Find_Partition_By_Path("/system"); - if (backup_sys != NULL) { - partition_count++; - if (backup_sys->Backup_Method == 1) { - file_bytes += backup_sys->Backup_Size; - } - else - img_bytes += backup_sys->Backup_Size; - } else { - LOGE("Unable to locate system partition.\n"); - DataManager::SetValue(TW_BACKUP_SYSTEM_VAR, 0); - } - } - DataManager::GetValue(TW_BACKUP_DATA_VAR, check); - if (check) { - backup_data = Find_Partition_By_Path("/data"); - if (backup_data != NULL) { - partition_count++; - subpart_size = 0; - if (backup_data->Has_SubPartition) { - for (subpart = Partitions.begin(); subpart != Partitions.end(); subpart++) { - if ((*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == backup_data->Mount_Point) - subpart_size += (*subpart)->Backup_Size; + DataManager::GetValue("tw_backup_list", Backup_List); + if (!Backup_List.empty()) { + end_pos = Backup_List.find(";", start_pos); + while (end_pos != string::npos && start_pos < Backup_List.size()) { + backup_path = Backup_List.substr(start_pos, end_pos - start_pos); + backup_part = Find_Partition_By_Path(backup_path); + if (backup_part != NULL) { + partition_count++; + if (backup_part->Backup_Method == 1) + file_bytes += backup_part->Backup_Size; + else + img_bytes += backup_part->Backup_Size; + if (backup_part->Has_SubPartition) { + std::vector::iterator subpart; + + for (subpart = Partitions.begin(); subpart != Partitions.end(); subpart++) { + if ((*subpart)->Can_Be_Backed_Up && (*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == backup_part->Mount_Point) { + partition_count++; + if ((*subpart)->Backup_Method == 1) + file_bytes += (*subpart)->Backup_Size; + else + img_bytes += (*subpart)->Backup_Size; + } + } } + } else { + LOGE("Unable to locate '%s' partition for backup calculations.\n", backup_path.c_str()); } - if (backup_data->Backup_Method == 1) - file_bytes += backup_data->Backup_Size + subpart_size; - else - img_bytes += backup_data->Backup_Size + subpart_size; - } else { - LOGE("Unable to locate data partition.\n"); - DataManager::SetValue(TW_BACKUP_DATA_VAR, 0); + start_pos = end_pos + 1; + end_pos = Backup_List.find(";", start_pos); } } - DataManager::GetValue(TW_BACKUP_CACHE_VAR, check); - if (check) { - backup_cache = Find_Partition_By_Path("/cache"); - if (backup_cache != NULL) { - partition_count++; - if (backup_cache->Backup_Method == 1) - file_bytes += backup_cache->Backup_Size; - else - img_bytes += backup_cache->Backup_Size; - } else { - LOGE("Unable to locate cache partition.\n"); - DataManager::SetValue(TW_BACKUP_CACHE_VAR, 0); - } - } - DataManager::GetValue(TW_BACKUP_RECOVERY_VAR, check); - if (check) { - backup_recovery = Find_Partition_By_Path("/recovery"); - if (backup_recovery != NULL) { - partition_count++; - if (backup_recovery->Backup_Method == 1) - file_bytes += backup_recovery->Backup_Size; - else - img_bytes += backup_recovery->Backup_Size; - } else { - LOGE("Unable to locate recovery partition.\n"); - DataManager::SetValue(TW_BACKUP_RECOVERY_VAR, 0); - } - } -#ifndef TW_HAS_NO_BOOT_PARTITION - DataManager::GetValue(TW_BACKUP_BOOT_VAR, check); - if (check) { - backup_boot = Find_Partition_By_Path("/boot"); - if (backup_boot != NULL) { - partition_count++; - if (backup_boot->Backup_Method == 1) - file_bytes += backup_boot->Backup_Size; - else - img_bytes += backup_boot->Backup_Size; - } else { - LOGE("Unable to locate boot partition.\n"); - DataManager::SetValue(TW_BACKUP_BOOT_VAR, 0); - } - } -#endif - DataManager::GetValue(TW_BACKUP_ANDSEC_VAR, check); - if (check) { - backup_andsec = Find_Partition_By_Path("/and-sec"); - if (backup_andsec != NULL) { - partition_count++; - if (backup_andsec->Backup_Method == 1) - file_bytes += backup_andsec->Backup_Size; - else - img_bytes += backup_andsec->Backup_Size; - } else { - LOGE("Unable to locate android secure partition.\n"); - DataManager::SetValue(TW_BACKUP_ANDSEC_VAR, 0); - } - } - DataManager::GetValue(TW_BACKUP_SDEXT_VAR, check); - if (check) { - backup_sdext = Find_Partition_By_Path("/sd-ext"); - if (backup_sdext != NULL) { - partition_count++; - if (backup_sdext->Backup_Method == 1) - file_bytes += backup_sdext->Backup_Size; - else - img_bytes += backup_sdext->Backup_Size; - } else { - LOGE("Unable to locate sd-ext partition.\n"); - DataManager::SetValue(TW_BACKUP_SDEXT_VAR, 0); - } - } -#ifdef SP1_NAME - DataManager::GetValue(TW_BACKUP_SP1_VAR, check); - if (check) { - backup_sp1 = Find_Partition_By_Path(EXPAND(SP1_NAME)); - if (backup_sp1 != NULL) { - partition_count++; - if (backup_sp1->Backup_Method == 1) - file_bytes += backup_sp1->Backup_Size; - else - img_bytes += backup_sp1->Backup_Size; - } else { - LOGE("Unable to locate %s partition.\n", EXPAND(SP1_NAME)); - DataManager::SetValue(TW_BACKUP_SP1_VAR, 0); - } - } -#endif -#ifdef SP2_NAME - DataManager::GetValue(TW_BACKUP_SP2_VAR, check); - if (check) { - backup_sp2 = Find_Partition_By_Path(EXPAND(SP2_NAME)); - if (backup_sp2 != NULL) { - partition_count++; - if (backup_sp2->Backup_Method == 1) - file_bytes += backup_sp2->Backup_Size; - else - img_bytes += backup_sp2->Backup_Size; - } else { - LOGE("Unable to locate %s partition.\n", EXPAND(SP2_NAME)); - DataManager::SetValue(TW_BACKUP_SP2_VAR, 0); - } - } -#endif -#ifdef SP3_NAME - DataManager::GetValue(TW_BACKUP_SP3_VAR, check); - if (check) { - backup_sp3 = Find_Partition_By_Path(EXPAND(SP3_NAME)); - if (backup_sp3 != NULL) { - partition_count++; - if (backup_sp3->Backup_Method == 1) - file_bytes += backup_sp3->Backup_Size; - else - img_bytes += backup_sp3->Backup_Size; - } else { - LOGE("Unable to locate %s partition.\n", EXPAND(SP3_NAME)); - DataManager::SetValue(TW_BACKUP_SP3_VAR, 0); - } - } -#endif if (partition_count == 0) { ui_print("No partitions selected for backup.\n"); @@ -836,26 +738,20 @@ int TWPartitionManager::Run_Backup(void) { ui->SetProgress(0.0); - if (!Backup_Partition(backup_sys, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_data, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_cache, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_recovery, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_boot, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_andsec, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_sdext, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_sp1, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_sp2, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; - if (!Backup_Partition(backup_sp3, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) - return false; + start_pos = 0; + end_pos = Backup_List.find(";", start_pos); + while (end_pos != string::npos && start_pos < Backup_List.size()) { + backup_path = Backup_List.substr(start_pos, end_pos - start_pos); + backup_part = Find_Partition_By_Path(backup_path); + if (backup_part != NULL) { + if (!Backup_Partition(backup_part, Full_Backup_Path, do_md5, &img_bytes_remaining, &file_bytes_remaining, &img_time, &file_time, &img_bytes, &file_bytes)) + return false; + } else { + LOGE("Unable to locate '%s' partition for backup process.\n", backup_path.c_str()); + } + start_pos = end_pos + 1; + end_pos = Backup_List.find(";", start_pos); + } // Average BPS if (img_time == 0) @@ -919,23 +815,17 @@ bool TWPartitionManager::Restore_Partition(TWPartition* Part, string Restore_Nam } } time(&Stop); - ui_print("[%s done (%d seconds)]\n\n", Part->Display_Name.c_str(), (int)difftime(Stop, Start)); + ui_print("[%s done (%d seconds)]\n\n", Part->Backup_Display_Name.c_str(), (int)difftime(Stop, Start)); return true; } int TWPartitionManager::Run_Restore(string Restore_Name) { int check_md5, check, partition_count = 0; - TWPartition* restore_sys = NULL; - TWPartition* restore_data = NULL; - TWPartition* restore_cache = NULL; - TWPartition* restore_boot = NULL; - TWPartition* restore_andsec = NULL; - TWPartition* restore_sdext = NULL; - TWPartition* restore_sp1 = NULL; - TWPartition* restore_sp2 = NULL; - TWPartition* restore_sp3 = NULL; + TWPartition* restore_part = NULL; time_t rStart, rStop; time(&rStart); + string Restore_List, restore_path; + size_t start_pos = 0, end_pos; ui_print("\n[RESTORE STARTED]\n\n"); ui_print("Restore folder: '%s'\n", Restore_Name.c_str()); @@ -944,157 +834,65 @@ int TWPartitionManager::Run_Restore(string Restore_Name) { return false; DataManager::GetValue(TW_SKIP_MD5_CHECK_VAR, check_md5); - DataManager::GetValue(TW_RESTORE_SYSTEM_VAR, check); - if (check > 0) { - restore_sys = Find_Partition_By_Path("/system"); - if (restore_sys == NULL) { - LOGE("Unable to locate system partition.\n"); - } else { - partition_count++; + if (check_md5 > 0) { + // Check MD5 files first before restoring to ensure that all of them match before starting a restore + TWFunc::GUI_Operation_Text(TW_VERIFY_MD5_TEXT, "Verifying MD5"); + ui_print("Verifying MD5...\n"); + } else { + ui_print("Skipping MD5 check based on user setting.\n"); + } + DataManager::GetValue("tw_restore_selected", Restore_List); + if (!Restore_List.empty()) { + end_pos = Restore_List.find(";", start_pos); + while (end_pos != string::npos && start_pos < Restore_List.size()) { + restore_path = Restore_List.substr(start_pos, end_pos - start_pos); + restore_part = Find_Partition_By_Path(restore_path); + if (restore_part != NULL) { + partition_count++; + if (check_md5 > 0 && !restore_part->Check_MD5(Restore_Name)) + return false; + if (restore_part->Has_SubPartition) { + std::vector::iterator subpart; + + for (subpart = Partitions.begin(); subpart != Partitions.end(); subpart++) { + if ((*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == restore_part->Mount_Point) { + if (!(*subpart)->Check_MD5(Restore_Name)) + return false; + } + } + } + } else { + LOGE("Unable to locate '%s' partition for restoring.\n", restore_path.c_str()); + } + start_pos = end_pos + 1; + end_pos = Restore_List.find(";", start_pos); } } - DataManager::GetValue(TW_RESTORE_DATA_VAR, check); - if (check > 0) { - restore_data = Find_Partition_By_Path("/data"); - if (restore_data == NULL) { - LOGE("Unable to locate data partition.\n"); - } else { - partition_count++; - } - } - DataManager::GetValue(TW_RESTORE_CACHE_VAR, check); - if (check > 0) { - restore_cache = Find_Partition_By_Path("/cache"); - if (restore_cache == NULL) { - LOGE("Unable to locate cache partition.\n"); - } else { - partition_count++; - } - } -#ifndef TW_HAS_NO_BOOT_PARTITION - DataManager::GetValue(TW_RESTORE_BOOT_VAR, check); - if (check > 0) { - restore_boot = Find_Partition_By_Path("/boot"); - if (restore_boot == NULL) { - LOGE("Unable to locate boot partition.\n"); - } else { - partition_count++; - } - } -#endif - DataManager::GetValue(TW_RESTORE_ANDSEC_VAR, check); - if (check > 0) { - restore_andsec = Find_Partition_By_Path("/and-sec"); - if (restore_andsec == NULL) { - LOGE("Unable to locate android secure partition.\n"); - } else { - partition_count++; - } - } - DataManager::GetValue(TW_RESTORE_SDEXT_VAR, check); - if (check > 0) { - restore_sdext = Find_Partition_By_Path("/sd-ext"); - if (restore_sdext == NULL) { - LOGE("Unable to locate sd-ext partition.\n"); - } else { - partition_count++; - } - } -#ifdef SP1_NAME - DataManager::GetValue(TW_RESTORE_SP1_VAR, check); - if (check > 0) { - restore_sp1 = Find_Partition_By_Path(EXPAND(SP1_NAME)); - if (restore_sp1 == NULL) { - LOGE("Unable to locate %s partition.\n", EXPAND(SP1_NAME)); - } else { - partition_count++; - } - } -#endif -#ifdef SP2_NAME - DataManager::GetValue(TW_RESTORE_SP2_VAR, check); - if (check > 0) { - restore_sp2 = Find_Partition_By_Path(EXPAND(SP2_NAME)); - if (restore_sp2 == NULL) { - LOGE("Unable to locate %s partition.\n", EXPAND(SP2_NAME)); - } else { - partition_count++; - } - } -#endif -#ifdef SP3_NAME - DataManager::GetValue(TW_RESTORE_SP3_VAR, check); - if (check > 0) { - restore_sp3 = Find_Partition_By_Path(EXPAND(SP3_NAME)); - if (restore_sp3 == NULL) { - LOGE("Unable to locate %s partition.\n", EXPAND(SP3_NAME)); - } else { - partition_count++; - } - } -#endif if (partition_count == 0) { LOGE("No partitions selected for restore.\n"); return false; } - if (check_md5 > 0) { - // Check MD5 files first before restoring to ensure that all of them match before starting a restore - TWFunc::GUI_Operation_Text(TW_VERIFY_MD5_TEXT, "Verifying MD5"); - ui_print("Verifying MD5...\n"); - if (restore_sys != NULL && !restore_sys->Check_MD5(Restore_Name)) - return false; - if (restore_data != NULL && !restore_data->Check_MD5(Restore_Name)) - return false; - if (restore_data != NULL && restore_data->Has_SubPartition) { - std::vector::iterator subpart; - - for (subpart = Partitions.begin(); subpart != Partitions.end(); subpart++) { - if ((*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == restore_data->Mount_Point) { - if (!(*subpart)->Check_MD5(Restore_Name)) - return false; - } - } - } - if (restore_cache != NULL && !restore_cache->Check_MD5(Restore_Name)) - return false; - if (restore_boot != NULL && !restore_boot->Check_MD5(Restore_Name)) - return false; - if (restore_andsec != NULL && !restore_andsec->Check_MD5(Restore_Name)) - return false; - if (restore_sdext != NULL && !restore_sdext->Check_MD5(Restore_Name)) - return false; - if (restore_sp1 != NULL && !restore_sp1->Check_MD5(Restore_Name)) - return false; - if (restore_sp2 != NULL && !restore_sp2->Check_MD5(Restore_Name)) - return false; - if (restore_sp3 != NULL && !restore_sp3->Check_MD5(Restore_Name)) - return false; - ui_print("Done verifying MD5.\n"); - } else - ui_print("Skipping MD5 check based on user setting.\n"); - ui_print("Restoring %i partitions...\n", partition_count); ui->SetProgress(0.0); - if (restore_sys != NULL && !Restore_Partition(restore_sys, Restore_Name, partition_count)) - return false; - if (restore_data != NULL && !Restore_Partition(restore_data, Restore_Name, partition_count)) - return false; - if (restore_cache != NULL && !Restore_Partition(restore_cache, Restore_Name, partition_count)) - return false; - if (restore_boot != NULL && !Restore_Partition(restore_boot, Restore_Name, partition_count)) - return false; - if (restore_andsec != NULL && !Restore_Partition(restore_andsec, Restore_Name, partition_count)) - return false; - if (restore_sdext != NULL && !Restore_Partition(restore_sdext, Restore_Name, partition_count)) - return false; - if (restore_sp1 != NULL && !Restore_Partition(restore_sp1, Restore_Name, partition_count)) - return false; - if (restore_sp2 != NULL && !Restore_Partition(restore_sp2, Restore_Name, partition_count)) - return false; - if (restore_sp3 != NULL && !Restore_Partition(restore_sp3, Restore_Name, partition_count)) - return false; + start_pos = 0; + if (!Restore_List.empty()) { + end_pos = Restore_List.find(";", start_pos); + while (end_pos != string::npos && start_pos < Restore_List.size()) { + restore_path = Restore_List.substr(start_pos, end_pos - start_pos); + restore_part = Find_Partition_By_Path(restore_path); + if (restore_part != NULL) { + partition_count++; + if (!Restore_Partition(restore_part, Restore_Name, partition_count)) + return false; + } else { + LOGE("Unable to locate '%s' partition for restoring.\n", restore_path.c_str()); + } + start_pos = end_pos + 1; + end_pos = Restore_List.find(";", start_pos); + } + } TWFunc::GUI_Operation_Text(TW_UPDATE_SYSTEM_DETAILS_TEXT, "Updating System Details"); Update_System_Details(); @@ -1106,16 +904,7 @@ int TWPartitionManager::Run_Restore(string Restore_Name) { void TWPartitionManager::Set_Restore_Files(string Restore_Name) { // Start with the default values - int tw_restore_system = -1; - int tw_restore_data = -1; - int tw_restore_cache = -1; - int tw_restore_recovery = -1; - int tw_restore_boot = -1; - int tw_restore_andsec = -1; - int tw_restore_sdext = -1; - int tw_restore_sp1 = -1; - int tw_restore_sp2 = -1; - int tw_restore_sp3 = -1; + string Restore_List; bool get_date = true; DIR* d; @@ -1170,7 +959,11 @@ void TWPartitionManager::Set_Restore_Files(string Restore_Name) { extn = ptr; } - if (extn == NULL || (strlen(extn) >= 3 && strncmp(extn, "win", 3) != 0)) continue; + if (strcmp(fstype, "log") == 0) continue; + int extnlength = strlen(extn); + if (extn == NULL || (extnlength != 3 && extnlength != 6)) continue; + if (extnlength == 3 && strncmp(extn, "win", 3) != 0) continue; + if (extnlength == 6 && strncmp(extn, "win000", 6) != 0) continue; TWPartition* Part = Find_Partition_By_Path(label); if (Part == NULL) @@ -1184,48 +977,13 @@ void TWPartitionManager::Set_Restore_Files(string Restore_Name) { Part->Backup_FileName.resize(Part->Backup_FileName.size() - strlen(extn) + 3); } - // Now, we just need to find the correct label - if (Part->Backup_Path == "/system") - tw_restore_system = 1; - if (Part->Backup_Path == "/data") - tw_restore_data = 1; - if (Part->Backup_Path == "/cache") - tw_restore_cache = 1; - if (Part->Backup_Path == "/recovery") - tw_restore_recovery = 1; - if (Part->Backup_Path == "/boot") - tw_restore_boot = 1; - if (Part->Backup_Path == "/and-sec") - tw_restore_andsec = 1; - if (Part->Backup_Path == "/sd-ext") - tw_restore_sdext = 1; -#ifdef SP1_NAME - if (Part->Backup_Path == TWFunc::Get_Root_Path(EXPAND(SP1_NAME))) - tw_restore_sp1 = 1; -#endif -#ifdef SP2_NAME - if (Part->Backup_Path == TWFunc::Get_Root_Path(EXPAND(SP2_NAME))) - tw_restore_sp2 = 1; -#endif -#ifdef SP3_NAME - if (Part->Backup_Path == TWFunc::Get_Root_Path(EXPAND(SP3_NAME))) - tw_restore_sp3 = 1; -#endif + Restore_List += Part->Backup_Path + ";"; } closedir(d); - // Set the final values - DataManager::SetValue(TW_RESTORE_SYSTEM_VAR, tw_restore_system); - DataManager::SetValue(TW_RESTORE_DATA_VAR, tw_restore_data); - DataManager::SetValue(TW_RESTORE_CACHE_VAR, tw_restore_cache); - DataManager::SetValue(TW_RESTORE_RECOVERY_VAR, tw_restore_recovery); - DataManager::SetValue(TW_RESTORE_BOOT_VAR, tw_restore_boot); - DataManager::SetValue(TW_RESTORE_ANDSEC_VAR, tw_restore_andsec); - DataManager::SetValue(TW_RESTORE_SDEXT_VAR, tw_restore_sdext); - DataManager::SetValue(TW_RESTORE_SP1_VAR, tw_restore_sp1); - DataManager::SetValue(TW_RESTORE_SP2_VAR, tw_restore_sp2); - DataManager::SetValue(TW_RESTORE_SP3_VAR, tw_restore_sp3); - + // Set the final value + DataManager::SetValue("tw_restore_list", Restore_List); + DataManager::SetValue("tw_restore_selected", Restore_List); return; } @@ -1322,7 +1080,7 @@ int TWPartitionManager::Wipe_Dalvik_Cache(void) { dir.push_back("/cache/dalvik-cache"); dir.push_back("/cache/dc"); ui_print("\nWiping Dalvik Cache Directories...\n"); - for (int i = 0; i < dir.size(); ++i) { + for (unsigned i = 0; i < dir.size(); ++i) { if (stat(dir.at(i).c_str(), &st) == 0) { TWFunc::removeDir(dir.at(i), false); ui_print("Cleaned: %s...\n", dir.at(i).c_str()); @@ -1993,3 +1751,104 @@ int TWPartitionManager::Partition_SDCard(void) { ui_print("Partitioning complete.\n"); return true; } + +void TWPartitionManager::Get_Partition_List(string ListType, std::vector *Partition_List) { + std::vector::iterator iter; + if (ListType == "mount") { + for (iter = Partitions.begin(); iter != Partitions.end(); iter++) { + if ((*iter)->Can_Be_Mounted && !(*iter)->Is_SubPartition) { + struct PartitionList part; + part.Display_Name = (*iter)->Display_Name; + part.Mount_Point = (*iter)->Mount_Point; + part.selected = (*iter)->Is_Mounted(); + Partition_List->push_back(part); + } + } + } else if (ListType == "storage") { + char free_space[255]; + string Current_Storage = DataManager::GetCurrentStoragePath(); + for (iter = Partitions.begin(); iter != Partitions.end(); iter++) { + if ((*iter)->Is_Storage) { + struct PartitionList part; + sprintf(free_space, "%llu", (*iter)->Free / 1024 / 1024); + part.Display_Name = (*iter)->Storage_Name + " ("; + part.Display_Name += free_space; + part.Display_Name += "MB)"; + part.Mount_Point = (*iter)->Storage_Path; + if ((*iter)->Storage_Path == Current_Storage) + part.selected = 1; + else + part.selected = 0; + Partition_List->push_back(part); + } + } + } else if (ListType == "backup") { + char backup_size[255]; + for (iter = Partitions.begin(); iter != Partitions.end(); iter++) { + if ((*iter)->Can_Be_Backed_Up && !(*iter)->Is_SubPartition) { + struct PartitionList part; + sprintf(backup_size, "%llu", (*iter)->Backup_Size / 1024 / 1024); + part.Display_Name = (*iter)->Backup_Display_Name + " ("; + part.Display_Name += backup_size; + part.Display_Name += "MB)"; + part.Mount_Point = (*iter)->Backup_Path; + part.selected = 0; + Partition_List->push_back(part); + } + } + } else if (ListType == "restore") { + string Restore_List, restore_path; + TWPartition* restore_part = NULL; + + DataManager::GetValue("tw_restore_list", Restore_List); + if (!Restore_List.empty()) { + size_t start_pos = 0, end_pos = Restore_List.find(";", start_pos); + while (end_pos != string::npos && start_pos < Restore_List.size()) { + restore_path = Restore_List.substr(start_pos, end_pos - start_pos); + if ((restore_part = Find_Partition_By_Path(restore_path)) != NULL && !restore_part->Is_SubPartition) { + if (restore_part->Backup_Name == "recovery") { + // Don't allow restore of recovery (causes problems on some devices) + } else { + struct PartitionList part; + part.Display_Name = restore_part->Backup_Display_Name; + part.Mount_Point = restore_part->Backup_Path; + part.selected = 1; + Partition_List->push_back(part); + } + } else { + LOGE("Unable to locate '%s' partition for restore.\n", restore_path.c_str()); + } + start_pos = end_pos + 1; + end_pos = Restore_List.find(";", start_pos); + } + } + } else if (ListType == "wipe") { + struct PartitionList dalvik; + dalvik.Display_Name = "Dalvik Cache"; + dalvik.Mount_Point = "DALVIK"; + dalvik.selected = 0; + Partition_List->push_back(dalvik); + for (iter = Partitions.begin(); iter != Partitions.end(); iter++) { + if ((*iter)->Wipe_Available_in_GUI && !(*iter)->Is_SubPartition) { + struct PartitionList part; + part.Display_Name = (*iter)->Display_Name; + part.Mount_Point = (*iter)->Mount_Point; + part.selected = 0; + Partition_List->push_back(part); + } + if ((*iter)->Has_Android_Secure) { + struct PartitionList part; + part.Display_Name = (*iter)->Backup_Display_Name; + part.Mount_Point = (*iter)->Backup_Path; + part.selected = 0; + Partition_List->push_back(part); + } + } + } else { + LOGE("Unknown list type '%s' requested for TWPartitionManager::Get_Partition_List\n", ListType.c_str()); + } +} + +int TWPartitionManager::Fstab_Processed(void) { + return Partitions.size(); +} diff --git a/partitions.hpp b/partitions.hpp index 47436b0e..704ba68d 100644 --- a/partitions.hpp +++ b/partitions.hpp @@ -30,6 +30,12 @@ using namespace std; +struct PartitionList { + std::string Display_Name; + std::string Mount_Point; + unsigned int selected; +}; + // Partition class class TWPartition { @@ -67,6 +73,7 @@ public: string Actual_Block_Device; // Actual block device (one of primary, alternate, or decrypted) string MTD_Name; // Name of the partition for MTD devices + protected: bool Process_Fstab_Line(string Line, bool Display_Error); // Processes a fstab line void Find_Actual_Block_Device(); // Determines the correct block device and stores it in Actual_Block_Device @@ -74,6 +81,7 @@ protected: protected: bool Can_Be_Mounted; // Indicates that the partition can be mounted bool Can_Be_Wiped; // Indicates that the partition can be wiped + bool Can_Be_Backed_Up; // Indicates that the partition will show up in the backup list bool Wipe_During_Factory_Reset; // Indicates that this partition is wiped during a factory reset bool Wipe_Available_in_GUI; // Inidcates that the wipe can be user initiated in the GUI system bool Is_SubPartition; // Indicates that this partition is a sub-partition of another partition (e.g. datadata is a sub-partition of data) @@ -98,11 +106,14 @@ protected: bool Is_Decrypted; // This partition has successfully been decrypted string Display_Name; // Display name for the GUI string Backup_Name; // Backup name -- used for backup filenames + string Backup_Display_Name; // Name displayed in the partition list for backup selection + string Storage_Name; // Name displayed in the partition list for storage selection string Backup_FileName; // Actual backup filename Backup_Method_enum Backup_Method; // Method used for backup bool Has_Data_Media; // Indicates presence of /data/media, may affect wiping and backup methods bool Has_Android_Secure; // Indicates the presence of .android_secure on this partition bool Is_Storage; // Indicates if this partition is used for storage for backup, restore, and installing zips + bool Is_Settings_Storage; // Indicates that this storage partition is the location of the .twrps settings file and the location that is used for custom themes string Storage_Path; // Indicates the path to the storage -- root indicates mount point, media/ indicates e.g. /data/media string Fstab_File_System; // File system from the recovery.fstab int Format_Block_Size; // Block size for formatting @@ -143,6 +154,8 @@ private: void Mount_Storage_Retry(void); // Tries multiple times with a half second delay to mount a device in case storage is slow to mount friend class TWPartitionManager; +friend class DataManager; +friend class GUIPartitionList; }; class TWPartitionManager @@ -193,6 +206,9 @@ public: virtual int Partition_SDCard(void); // Repartitions the sdcard virtual int Fix_Permissions(); + virtual void Get_Partition_List(string ListType, std::vector *Partition_List); + virtual int Fstab_Processed(); // Indicates if the fstab has been processed or not + private: bool Make_MD5(bool generate_md5, string Backup_Folder, string Backup_Filename); // Generates an MD5 after a backup is made bool Backup_Partition(TWPartition* Part, string Backup_Folder, bool generate_md5, unsigned long long* img_bytes_remaining, unsigned long long* file_bytes_remaining, unsigned long *img_time, unsigned long *file_time, unsigned long long *img_bytes, unsigned long long *file_bytes); diff --git a/variables.h b/variables.h index 49872f7c..3808212d 100644 --- a/variables.h +++ b/variables.h @@ -17,7 +17,7 @@ #ifndef _VARIABLES_HEADER_ #define _VARIABLES_HEADER_ -#define TW_VERSION_STR "2.4.4.0" +#define TW_VERSION_STR "2.5.0.0" #define TW_USE_COMPRESSION_VAR "tw_use_compression" #define TW_FILENAME "tw_filename"

#Zc3Z zl^>o{%{*Jxzh+8?sa zeDK6#pV>$rz|WN|?YKGc0A0TL&|U*5xl1hQG*hnZGS`jVJ|cP4?$N+*=gBX@4;mUs zyd_1Y*}i{kpevgbWnhTn4OUFo_IxLHKh34iEK%d0SR(U|FlF3iCABNNrhaV=!oA4T z%f?bB?(2^$S5nVpU1}Rkn-F`MR+LG`HZc(t@;uKtBqx{diSIGv!Lu0IfZOS`r7z`e9{3zvG6r8njnrFDPCv)XVYAYk(zp1pEhQCtE7 z?B9fi+FWMtuht+z!k5C@(`M5bzh_4}gA@hcUoM*0N}>tqkC2$Til}c$F&vgOdG(dM z$gX)qZZ0k=23&8R{K<2#mTzVwgIvM~tZHTg|3cY=JN?`}sD7vWbolv=Yu-CbhEHw( zO?ZR8Zn2P{ASI~ykdTTF>YA77hu?guXzA|W8S2+W6Mj}lVgFtE-1gaYC0vM6em~t= zacRZ+xnC!BpWh&(-IY4LXupGIv#Gg-!k(?%Qe32`A8Po0x+0hRfO)eYJIp9f#cx4h zm8#yK^7z|iiLf_sG}-m>QS8o}0Y*xX{P^{AgR&h8FQ+JoO0na&cS@A0s;h0W=_3S~0g?Ph|cVokv{@cSf> zU%jzUr?t5Wy{k`TFqOp14&jL(;lM+gpq93_wpw1f@*>})@uZGUBY%Y*yOh%?{WIHL=KzKuw)t`-aADs= zt(1nW(+_vtX0Ctv^3u#;Gi_lOv`-Mru)L-`fBw9xy1G+G@$&ox%P$Fy{dbMOR=E0d zyaI#lq@m#(3lfqMRTUekSg8DJYc`{)BV~jiAhyL}YuRc`K=1+TpY3&IPn4ie=>Fgfs7D=GS{hap2rjyQL4| zQN&i4a@`6EAK$@)N}it5!ZSB;olDKP_u96;*=g0DpiqS(0wimAie0 z;$xq)O%Bt7$v|;bg`mX^3U8-o9oz?5sjsFrIs_mgEkfhy>NE3RV~|jGHZ`fnhVH?^ z)wuF|)_xKAFYcN+FkqGrttL~U!NI}Zyu9Q(7d=IAd#8Snquwq9j^Pz@XKk|I9Rkvr)p5;Xa^W8T!Gcy``b=Q}A-F<$%c71I@ zR%Ro;r^aiZDJ>uyaYAMxebI?+#uQQOi?&E^p;L!;%i*0U!EeRpUI*?Q9E3uRX zDh@#^1u=WA=35xWF+IIqUaMmlzd>W_R8}h30d^XpK>Pf#(mg1s;vhf&7UHSESmT)| z7WwDw3*@2oFB-U)5{@uF@myVRU0a$=5w@V+1JTk%VL<^sGjpKh$eZ69%ZOkk>l{t4 zLxY2T{ec|HPEOB8XqB@VOS&DX8^TxuLF})yijLlFVwlW`^pemuyD$8#2RWtxS3k|` zmeq;x&ED7ZhDETrr55}A0AH|Iztd7zf4MwaJ$cvrDj(~`pWP$=RpArTJw2PHIF_!8 zzHa$#(kglcQgVZ~c`$Mz*Sy{MQ^EJ(A&ZFMW75MtcXf7~(9z0@BxnUuQ&BA*k0m!X zHy?N?yPBmE%CdS8OBJ8?nz(I@hxaWRFto5`OifOz#!FroV0Rs4h+q<1x=?gwdrsN# zF2mj+zDH&j7SunRt%~%fvBaS9N~TdcLXncXa?;fF{^`2Y)*&GwE*nRE_}M+CQ#Db#Vt+ zcmk@KFCM7yA3O;DrAMu+SWrOCapl#v3fEcXU*A0uO}1{`TG}1Ul6}5#GgN-QC6hmX z$eWq%1)+!%4fG8ZbaX0s)I6F=LH6GoD7~_;dM|eo1VrA>Sx1PQ7ok-SAT*YUW~P28 z+d{&_8z4%hDAN~Mv_PkgPOk%k*D#Nk^skS3WQe~Z z9UZza>+6k%U&qHuI6mkTSOj}&v7gR6h~U5*CQ9!8xB?DmN~PtfrasrXQpumC3R5Sg zK^BaVS)u?vtv;{p_@1r&x_KKQt*cCxcfjTmC>z{r{k0;#U7U+*S6Nw^ulq!TIuGHl zz+T3_75OAP0~=e|@o1j1GkuGL(ONFEBb%{dnLb9t60najH8_1by3PjNcS8SiY2r(f z?la4%x+E;PJZxwL^uzRG&;ahRx0!|De?tv8pfI(~H*ekbR5xF~&Fk>x_j~kRhwd(p zW<4qB6mzfFMhwkL*({+x0e0D)5qkXKbUgikyn%T)h9XBbriGNQ^R8NsH zXltH=L%|E2A)BgmI;|VVa;pVKN%uxKA2w;&l6=SW7_w%tIUBBe&9b1Xmy>mbW`K*6 z(qa&-rwMrx6`8pLPGUW#>~eE-1%sxNEc ztgq02AhRxMt0fIg*~icC)M7Q|(;>1IPA@_R_>3Ke77-tKH3~cVT{`PP<{$p906m5a zED6ZMmg%Ue>wbKCQbtNkb~h=BRj%&GhQ7DnYqO7recoFhaRD`sjHb~sGnShnsv6E5 zb(yh-`%5jl!PtAn*`i1~CD0u~oG6D5y&Yl^V-nYAW?wao#O+Rn7{Qi=iJ9nz8sTun{KQ_9bBuDdP zM_XIpl+kV>q1!%-KI?GE@co<^+ic1wATYdf2U!@1cvN3fWY-o=Vr31a+~ywDIS#}L zn(Ux*WqjK^c-iXnQwFJS+Yb*k9_8c=(^Ipz?})s>++<;fqLJW5iiNT;}&%Z>gC{{6NLMd%3w{K1n)iYE;I?#;ms2$2$ZeXlfYh zy?p=p4VyuSvc|PlpQPAB;d?C%8@Ji?WmWJqov4vjUpkt2smiO&?Wsn*5E=3W`neiU zoS@cUo;C9-oc5jYQm|y1@#3bSVtqQj7+6{=F6VdIh5ADdLa+`7!-h;Lsd(kU?)|Or(n2c7I)6^wI zFS`Mc`jSvQYfh}R*NV&i`}YYck9D{9(Q7{#ktM2hD+|PaTkc(#Atcgziz+Gf@pv=X23RZSH6p}Am0kmaUm9*r08Gf$B9B(9HLT;J-!q4r`bp3f<-rk{M^ z+qbCb=xPe;kO6 zYE$+ajH74v-%XuBip~-mWO>u^JCs5PEiKiqT@w+t?QR+fNX(a3Ajd8^rpk$$gKoz+ z>jTcWOuI|%eJv~>go=oXnY8B^_-X|S3JR94&UX=1^?~POIopm1a*(m7&1T~SEv!)` zfyVlEzbKA(<%}qBqCc*4p5QO`?!nz6GTcRBXfO!Xkc;MC2NKyU^Bd&@9zq{xS<{?@ z2aIxCEz{v;%7Oj+jkkA@v4~n9gYCMpi3!;{_J@gG9gSEYUQ+>Qr}KCRK07UiVZ8rJ zVq36+zkrDP;H21SxZN5jS9&P%f`@l(iBuz$t@ev)f%V3<1R*#)oK}=QidwgCDj&)q zs7QKZwdrtL%43S}0ctOZ6W*=z>rne;)C0&V>m9lLpIYTsGF4Vq+PY>V z7o9)Dy{iGn8e~_A#N_+KlyqF8otKLl#f?cg72}40dyW}TpKh5QZe^Jsf%GLRCWgo5 z>xSpL$jAw9wbaT~oiA@Ui@HFp366<4v8%hK4!rmm7l0kT0Gva9M2e4$hgpb=Bu2pC zM@)NXwYMymNW-^q`OoP}p&b;8UM{)6kr>=-=iw5&fl!KgxXC za(ZSaCWiobW|1RD`rfH<)Z>H^;46&6=|zx<@8919W_?GgJ@kw*65f~Vy?Ow$y4nDq^wejT@3@{CR(?6CunUVf zh)!nlM!N_X71fCtemS^FpsVd-$nC(Oqdm>ZDNXY9+*lqNZQqN-+f^FE*+LN<3Tk^y z-zG~FDuA0%mQsUyZtL2*@AQK{Jdg$m{N7H#CTe$1MS!YM9mqR59bxfnQsTE;jEp2z zQBc@;R8lf5Ec=%*+}=C_s)?HjKCOsq|gE%D}HznCE__Is%+)YV^E^tF`}NTPX{YDuf( zwn(0trTVzq+~Z2-VNX?(2}n(;z=lKy||sWyy$b%fLw%E^P4zPOF{$ zR@k{5I9=@*-B5X=1RoewGW^5dmv&<$bl*H02{*wigNX+>Kfn5v74~~S;>WiFBQK~e zsJ?{z?^|$N><{cYH@LgsKq0=Voxj+$>oE+Y}`tv%ijw3gf5>nbbtIxqVC0vDe z@7-J9{}#1ix97qiZE`)J4rL!QT8_M55A5!v2YD*%V?WIUn=&aC-c}rdP$sPR(L7;> zn+nd4w8xLB#@cfmx9jNpKxMp@%3r?i?Zs=K&UO@-QA4WR5$DAvC8giy44Pi!F0y)w z*9`IMJflT8QlM{A;fK9(<2M|xeM#DijAsze4ZT;d5u!}r;f^>dSD~EeKlXd9OgGw& z*()*b#|`rt7%-L-yQ*VwZ9DOIC6!mNT-o0c!SOaz)e|hcK1f-~i*0*CmVcJhoqnKh zU&?{a%?}kt3+GZ4gne>dzvkxh^7;C{|8fiL3aU2-K@U{;@KOWFxvyARsdV$8e#Rjz z0pnaoCzS0|z3XetM7H1*UcR<8W)FSl*OF}#!Jbr}HL(X0DDEx$Nj-!>0ggMlWVzQ2 zPoAuKy%Lo1+t&KamoFW}2fS zyY*Jo@AzgM5~zywTFK2hLT}xA`RwwCO+7V7 zL`3py`TB79Qk{G9sb6Bhm>6@p^MtV^!3ItCuh=J@7 zam_bbb}vuFF^Ddcda z;5fYaEG0Rmk2kN1T6f&I{NVwopy0dyV!$cTAJegW&S|5WjB|72_~f7xl4IYPz?mc7 zddz+mKtg7%QIF{p=|}e+*gmAA^Q5JMZwYuzKX3 zE;gJF!2KLbH2^z&$W2U0*gxtrIMY=nS#nhP%w8E8_L3fFmcYmKl)H=dvMGiRU7d-g zl!?B5J2F20``rbqmlbnvm8sNgw{{Bad*uRsl3TtRd3TGv$f2uc$V|w7efbW_Bcheg z+Un~Ad7G{n0=wA$tOq6U?ni;!K$#rU_u&)~IXg8oBTCee#a5RuPdBeMf1?%$Zik@C zv$$}v)GqDq@Ou-(G*6i=&koUQPjhif^Wt=^LanLIu>zTPoV0s!-2!SOMI6mqLUpjQ zJ7#S?9yAdb8F>S^vB}7rdl|MWX-c(BX?Uaqj=sZA|isy6?%0VKQh`w&97f8o;r2AZUP=c`L;brA2ytyM;+x; zy)twtve}f|RtFlL>eY#>6_jk8f$-0h?EVRxDq0*|FnSxGb4St12H4ZtWn((rir>F~ zanj=$Pjo-;dGY6gP*B{STVy(- zPuob?4=6&ExzX457~Dl5j)?`BfaHxFZ;GFYgteVj@CF;Nl#{#stpT3%M|_Jb;h1Fy z2Rlh=eY1vJJBj?@rQk5*DF7^7mh9ocO9(4FJgz#!XtW}cS%r{MGuc%=+HlIy5J-VD z#T#SP{kr+aWRv~UicRlZGk$YT_N(kQ^T1Ued()Ab3DpE+cuP1QsBUYK!Gay-$TTwJ8zzkjD~f6j3wh3E$eJ47Sj{>+_w0YLY{ zSN8}B?UP+dl^$r`3qdL%m!iCvhiBmPg{$?~tCtOMoiqUWNJCC#F#@XHA#8rD&Q&_V zarpJl&GK^Jkhe9U6-h>;t*W6>4-Y{)=w^Wn;Q$1Gob%v8jj0eTXaw8&WldNf&)}rj zJsIv$#!7_EWS0TTdDd%%pPuNHuZqCBvzGm|;Y+Vn!`)6Uuhv$VdkVf?cXFagICca( zTS7u&TvTKWT6pk4lWRM9ckTYEeZ(0A&w_N2_5s`0-#;FmBw!0JKX$P9&R-tzVCw)CTl561fBtfCa+~4Y5t_2$+OX*EcwA8G4Hs z=w){xYOSp;RL|Dl@`c-Hg&#tUn@6v$rDY8vair5)`3SQqqE}Vhm5YUj_`H&L`w<6| zxD>ybm`;-4V452bZN=1KGPW?|1m!P5*X_Rq{zHdhfba3(Baieo>QGh^LYSEdU4{a z_n6&YrWrOo57Y-IrUqxw48UqSgb^t$5u;YfKjPZ@_x<#WlXe`wm6~}1itzKlw}YX{ zL?=B*FKY8;@ZDEdD7gQah%$+-+(E5Q^aY5Bgm^9~oE|B|Wa#cMPjrKuP`*wgEe1Hln_stX`MF5q3f!mLhSo z-ZB7xE*LI<%sNfLkV(%|qZXc(l$b31>>;X|Km!_IKE{c!l`Js4EJcSV-{ZGKiDw9+ zeg5@HL+kER213oOaJmU@M?~^Z)NX`=H9kI`KD1ubo8GKQ52?yKz%;mfZ?nu)n-|cg z2n0Y&nJ~(}A?DzP095gL^y-`NfUn@@`)U&AYvRz*clB1I)_8I*d+W1=S4+RfT;&-b zp+`xidGJwVLxFLr)|ag5%^T;XhAO0!kn7eU#_hE{r8~p_)V^Ho~W_DI^MyjxL zd}^tFEOC~|Z97aNIFawd53(Nl2R$1bO_b`90ndBcd63XY*mM;eA=>Dh)oom$HZSbV zs7!HpbDNs)y83Nxd6IcW=6bh1xfiTd+@9&MIkK#}-mXwVbz(tN&!(Ss#`x8peL*21 zOAiFa)$42~td?`nJ*j_}p+Y47Jykxpb(u>iP$1zBrJ3=$%~U^WJD z5LFnQc#I%Xi_nx&2kP7GdGsEgx13&BoOC3;qQk+Y_=s(pZ%f~2JrL^Zf`}OW%#`|N3H3Gv=v(GKnq=GsxYBw_Ls{(}&r{7XPf${zUWUtvaw7a*; zZ+%Qn5;{Ucdi#f2@b{0e%?Bd$$^Ru6`#)auKXNgW|9Ejzxo{fv^=%US&rAN1@+j5% zNdH@Z*XQr#gB;18?$ZB!%cSG~R_6X6*Zhybt>!fgte4>D0NkkS?BO7d>~ zdvpJYeg5l(s5(i3%lR~$`gU3m%MGW^7Zv48(hB{*7ltH6XAGB~o;z?$Im45@@3zuU zn+w?C(aoFuYWre}&HleWM(XW=8O>C*_S?reqf}kal$P0O@N9$l1VY)rVm4v{%u;n$ zz=IdL%^ykXA2kx0x}lF6BW7UT9%93gLToifWo53TM`0tcjm#PQ2iCk&YRaycI` z&m^3$V3qCW?rxC7CG=k!)Bk+bRH{yPR;JK;!yZg+#BXC80-D5^RFks3U1!5bRB&mP zm27|s+pZM-U0Z+DsY^!>Z2-UV-`|P7I8sllvO#FamcN50aS8l2-W9&2YLxA7>;`y?EQ)`pn=m z?ZQ&Vs-(AN%i2VzcXw>L7oidV=kpK?|DXT)+8jz2zTu$5+{K7^;icz!!k(VHF_Uvy z_vm#F{eQpd|7aDJ{{Di1!<=lMOJtez4cD2zKll7Um;C!%L-(Mfqv(?-FPl7Og2($` zule_}g;$XJ+|j6E^ZTEBzb&|P6M?hgAI4D#LH>|exYBR@M~V8sZBMONnXdm@;%)zT zyZOIX{{OP`{;%H2e+P>Hx^%Q&_PJuxe>ACNN9O-;KHUFu$^YN)_IUQW0~dV$6{>f+ z+xK-tzvigyL38MdQ!PzRBCcAt(uz3XhnSmk+|JFec zQpp%}Q9w;%3o1p#ze})!a zP#mGyhkuvn_S>$PkL>#R`7>d@0fGg$D+mbO`}c?ZUAyu^hb%%_jEszkZvUxMTR~(p z722sl6*Y1aaSZI|QZWhPKb21JFQ>J!Fix$pBQh z;&ya2ZZN(-3}tU$1^RA(H}-)&vkvnTiagOYE@;wadTgdi8vz543Na8JEBFkOR7&U{ zuv6WG=tVH|vd*AIfP~5aPXIR`BNxoq-2%#Mu%dDG4Jd;VhoI-pT^B&y42p;#=szf$ z5rG#Jn7ckY4-l+NJXpirz;~8TEi~kRwV-6ih9(WS@<+@L@Ay}|Dcg6*Vjm;bvhX9k zQthQn#hmh7Q5}JM@jbi%zTHAbt7_U_RPkEkf$Na{tKL+9o{qSZYup7wK{Uj$5%)1#Y(4*`2Tu+aW_j0LWUhR~9xJ$xAWPuPh~oN*{_ zdtq_%XJ~O*!=9~_L@zB_F`Sy!m{O4|%2QzTb&n-QpAtu8>8g9Sg3OuXv|Jcgi(VqG zZpgv4?X`7dAy$=qTAo(l-^AlzA@p^NfvZH~!4$cyb^W9ABcJSb`|{*XQwHG*?$Agj z2lUWT@Yj&cCCTP|x3Myh9*J3T+^9c6@XsIZmel+noA-9fY&bS0C~(cL;fB(lnI#YE z!Cqd8F3LvcdYa_!BvTN_M9={;YI=5d5)1+zK0>Q= z&iKpRcU3h_k_~7gn7qv~*!bm+>+ibhqAgpS#bV#RU7!7)H*#WlyKcJ}ai`ix_wwvD z8h+Y2?@V-B9LBsSlxT;CSWvcuwizj7E5%4vujGySq;`+9K&kvezU9~SkmK$YxywhE zeeXza{}VOK6x7sy+~BG!`+P3Pt=|NV=E9NJN~UK%=5^il_vbty$#T58nXjvw?&v*% z-R$PUo3|BG{t0nSXR%f&gM&9#wRd~O&^?tA6_H&}9|*`EY3Z}Z33J$USUqLoX1|O= z#$Go25r)oyhj~w!jhdpeDpOw5RvQ zQkg|X{&lB4_<4Ao`|`>9j-B7BcR{ZW&Rp}wqO5!eD=p>UqBY8XoiS25+4SSmFXpI} z?s58AD)Vzs$SmF_RXq~&e4N$%Eyeusq4p$c$AHGzltd8=S}ty`>gMtBogY7cbQy}4 z$3v6%QRI^IFn)1kQY1yXWh^!#UR^n9ax`!KeD0*5<`cHOFoa&M>tgtToz)K^JaA!* ze9Lr7bUQLYEnc$>$$k|dwA!>&#s+CN`Aj=4-* z-k9s9@$qVMt8GWWbaftbOA;b_Ijt>jpkqN>Y&~p7g zl-tL0+cUEAqfE3{yMKqz!lBwkfnHnn#PQ=h#icSc{o8XlAWG7+Z4>Tu-xZcXqd)?J z0j|8b8vo zAxhBbg;M4Hgv59bveDl`8gSbftSClhL_uP@kaN#^)36fz?YKLeqDB*osDYRSKHL-p zAQ04d*0$vbnPoc-SlLhf{Sa7dyNd4LA0(k`8qt%Gs_#X%b^k%8(W{SH^r6-JG=I%G zW&E()JDYI>LoA6kuU$y4C6m&%)Y7+IHLb0k3kryPhAoFg$e6#0SCiPj2^H&tazK)9Hi@2}b$4 z0Ttv%hHIQAFK&{=Uvo}w?0==eUM=f1#2%wMI{k*7RZ;Hg(r6S3b6(CHO~b?3d`$;& z-VJQqy4fS5rEWx2 zJs)3QjU3}kMzx_Eq=9F6{8jf1&`2}*fBk(j=Z1XNv-R^l)Fv5=WpQyGBxJPl>J7@% z+nL@A_aSJSTSYF=we_zBrV<7;sX42f1>1xZ4oqYo4Nzo((8u2qD&)h zGIHZNw8c{c56J}mmb9kd)|CkGd`WB2G(mV~u;BdOyH z@|^x{VZDiqYeV_<2~+M(kwjKN(!riqS+>H*G0%FU%<|WrLhCyl-oXd2HDxuBMo#X; zF&{r(S3DZ7ndG>R4iazMN4bF@1k^2(#H(*ElP9^SX|c{8_>exT`V!rrNmVlk-U$lM zvy+0t{xBh7al-`BbSd`!wVlN`Xk{xkD>up~h48ux7uG|>`Yt=6?z9D!Aub7*$p4{S!UAu(7a1p$#6M}U zhx(7vTB$qi-OCHzc$Y}UKyFje)@B%fn?eT%^_MRdks4sQ2<+`Q98+bIsF0QlRPdGR zDh8}@<$u5mWlL*{Z)E%m$QuvW!?Vc;0fAq?lpg$M%rXpwkqPG7!p;D_?chcO71wR(AhAHmNjtRkyFE zzU~xmACRRyr|+lG`enr6hxu(UVSAWw-6^D-eQq2GAmFt;W-;AC3IY5rfx3-_r56G? zA}H^kS9XA#rvjl`>Mf%0gQ*YCyJLXMH#IfUKg)(xT1km)){&sgqDvqMTpFAPZX~QA zx1w;Jw;@V!V1xkcz$Zutii$xm%I@xxEOv|!)Z={xO&Y|diW3qN>}Cd!mrQ;`))psf zlTfz+=((fJk#{4@9$<2KUl~{w>l$>j zX!3Q(3ww<~>wzEq$l8%D$oN6lyHq21lobOOVCG59#>OU4IRY0(uF@L9M>(FeZ1=%~ zGyrjFz-hcOH8sUha+Z$~lw>(HsBt4FdI`5p;Hml7#?Ijri$2B>9oJIK$6)=c&H;b+ zYB(%*dxh&gvt%HwA0?#L*=0O-lwY3=s5dsUT;;!5#Y(XM$Nbz-0pa$x!8RA8VnE2E z;ECSH*Y%a9y&LW1K2Up|;@$yro+hyM%zN9mZk>YDs)SU|SMPOCJhGWZ`+-GQGyu^D zxaeZt8!u=QkUGB9g=Z7aA^XN%l|#m4v#|Hq+?Q!p-+rwZY(GTYH!u^3{sd~GjieZ} z1T2H#S%Zgk^3*9`aN%L1;C_g{%R9JSX-(nF1Ie;J` zRk#XY}{*CpX~CtME{Hw5%1{Hl79h zD3vs$@TSKr>vEqF!C^LFq{OVyS9cFgFMf+4hJw8S&m$0+@baABjY~SGP8oCXXslWF zzwl>oZTgU_mF!-%#UG<6S1d=ih1Sm>>dLzVqS-D0#7df)Z*JI-Pd-Cq96cCx?lf*PuMHBr~!pRW_E4w=e0c`oh zwfmqYi=mxr=0|*C@J!1$PiKJu*HP_V-Sx%c^V9RbZeP$ZPDgPj_nYA3p>G<1H-JG# z-Zg0of#Rl3t%QQ%?g5dKc5_9{yGt1UKSf%; zGK&fhX)CMZB|s%~`SCTM7P2_P0WwrhD=SbGHwOJZIXo4Jttymg6}8#g+I=xxW{;|LB3d4XnR zIGog(AQCbWwJioE9gEm+8}D*Hn$Ugdxs`M+c+zT7-WmwdU6(2aP{uZ)VP%s--Kn23qU$CDm!=<%vGx1mnLH z?Vie`;j#cBz~<*8Bo?u}$u#HC+kxP;9!)lt3V{Zw176&uv`wUU#jp4VJRI*Sj~!8w z<-V)-$H*DV6z9i5>fr?0%55y$W$pLK`C|*G!Gchfm-p>6DwKC*cF^3@oA>K|-mmcz zjqv2?Xg{2j%Z@{RD*@%sG|3C^?pAYLUhWTJkT>j|_k?8_j+mzxtJ%>eLB&5mVsr6g zqQZk3PE%dAb@GfTx2qj%)?E$Ipkj9DzI~LSmCg6>2mhBfM?Rw%@(1T?XL&SC)L!FM@KW|cM}p8pG~7}XLqQz!025y7%{_W>5{O{|n%l+TY^@E0SG)m)YBX=S zp%F!QbBC-~MITEoy7&a4jF1js(&5eqdV=5zUVWg=(d$3;Keo4*uXuqP3?|~Ux(V2{ zj=tNwQ^7xy+{{AO2Qv_f`#p``)O4vsp;9Q5QA^B0!aO=x*lX!&zFogOT6OPie*Y!H z-3l9fSWk1|CrW!97rJ?uNQmPFhZs^H{khkpZw3N{$s*UfB=@^fc(UQ1Ak<_aA$qqg z)59|8kfRa!0#TWa<~pXy)L;Q=8yK{X2jn4@?#5gs+LA;lorunId3S((V7Z-3h&w@* zRbYBwZ!CzNW^8O685QM&ema+|>_t0H2Waq+MC<}tG%h-^$G(wmaXP}=di~j*l@@}Z zoBNaJr7szEhkG5}FAfGm=nP2^Xfh@sV(gG~9uIPSQ2Ks0eLclspC*NCb()v+lw*NS z4ukiF<0pRn*pYOM&vuI#zZukXpboGVJQvl&F_4v&MW|^m73t-pahl4OGtlZ?XLnak z>-~2pV2QYG&`ck2O812U3)$uP z)PZKaNGK8;SF_hvsY9Q@H~sPBih8_|*~=sl!{hcny%1nY2qC{byX>XiXNPGZcKq`kG3h7yBEf^gnlM4o$ItNt5DrM1sp+J9 zOU}%6lTma@_5-bLb=nul`^EvnU2_-BK61>5rW*1%KQh_}4OAn3uB7BwymvO@S9BhZ*X zdiDN(b6xrMw*VGfJMo9)8vxECawLCCzlYc-MtPK(AkaZCcpc$$Mc5lOPqJ%KDI!)( zSZo`2rj-tkx`2z}%S+CtX>7~|#^t14Ihxd^m5b`(_oUsK2v%v|cE|2YkGzsej@3@W zEgUW70Le^_-pMi(js#ins$Nea_8->L3O1G9#Ar(-ScF0Z3_L)vbuy=^TztS#32PbxjpC64OX6DfS;moaK~}k=ea|Z>`F^lZSPvF4tQx?~>1jg8m=- zyyn}wCwFS@zst3EFBxR4FJP=sbhS}j81Zhu_Mj9kKKr#5R}4MMh>s__HkJz_9-A7MVP@ySr*WVQ2if)L_xeJ_ir#4U8DNImsulCs0orMmfp?^Q8IdmYUKOR3} z9oE;;352*{wxLHuW@SnNOdN@B0ZB;~B%d2+;tv~3Gr>1!(emn5(yqsf$=YD6T1wKc&Wx}A{8D5E zifhLXucl95nScHulmEHTb_27U9cuQ$;o$)=dz8Ql14n8@nZC^6Y*Jemt@TB4d_Yw} zAzLD-@}O4ZTqReZkyyOO&lI{!U3!@JJgU;Fr5^{zzZ6m9&>|SvI1Mm5 z$mEc3hnM*y$fMHu*Sfp7AB88a8TeXD8m$}c!;v|k8MFCNyYQ*&9BE1s{l3F?ciW1c zC-eeSuFS}FuA-Km0w0I!ho1MhFfm&3%~#8YnB>HmK!aMZ5Rx#37HTY@5u zH{cZ4XgShPKjT=OD4WddsfCWz*Q-sxmK&qG;Z2`p_fcieZ8gt37NlFuGSa?B2hofQ z>%a@g)a!E`F~%3DoIgE2OHeYgR4%2oyt|t$>KFJBz46YGW`GYw_a38X2^|T}McN%X zLM{SfYjvkyy?T}BI&1EMk47*7lx; zHuIa7_fmA7R$%+n^L}8F_QhPVWsu6Z#7tlo7eZ{zKr@xo$uEcLhy7m>G> zw8XLn^M+Nh9C-cxhY!DDewn60oj>FDg~?tz;6J-pjwve#)KzTRyb-n&_1|78LEJx2 zS0AvIojn{wGs_7Ap9@F7S&H|X1k(5)MuiZeV2W4KhsGM@KFU&61e-7OMC^>8HeEqa zIpi!vp9EM70yfl-4U5y?;LXS?KsIK%7E&v{2YpHN)&w$CfdHg1Ejt5~4PZn8BHa8) zw}j*HZXTWn!)K!xt-(G84UvYpJR-xg=VN^V6>DpL2v81R`*B85NvTtE)0R)Oilfza z7pd9aAL}I{r#q3qodIwR;ctK&?f$LH`JBapvv2sDh2M{DVBUWN97=-Q6t9lwH6L;h z5Jwbu5QRa5Ouup)7)UM9Y4oXVmX`{c0Y7)tayH+Szp=s&q zq-YlbNCPIP4Ep&EQlOa}#HY~oT=#^c6Vw%Je%W;NiD-U1ILC!VPKfNH34FNN9JY>N4zRX=N~+l^ z(H*dy`1sJ}M7ulDr`&WdTwn=jmp(e~g(;5{b1z#6GYn+R^OIUBGGPc(>=)Pt5cp;8 zXsW5bAn4;Q0_B7RY5vnGsUoU}=rI`@vY*Q}41?+j;^h~Y4)6Zk`UW|+!m<<|{RO!( zGr*<#@JddGlTE>(u|{tTU5dh*e|n+h&B31Q)i_m< z7jbdU8lVwQt1_h^&+|J8nO7fIOm(^JZcJtt?J6bU7kv)-7|`JIPjw^F~mGSNI+X^4=$$N$$Rbouf$Cw_E>9!gCS{rAsN5PvW5P36l-u${k z0cWCy#C=xhXoG^p1=HTW)&&pzZ|*%tQNII2kGq$=^r`JOQI zoTXd8R+G5%8Z-7Slr6kjm7aA^=J2geJ-Td)k{UiA+X?+_VdqjspbL$1(XGVjYZuj< zw{AaZwlC`S$4e(_d6pd0y;;I~KaKtJe03Ji=s*W`b8Zg+34OTFq#9r-R3-t_Y`lbL z1;)hXVE~!Y#SLzihJC!^*Ed%r=pmyL4;li97g7ynGeUW}9l07)HVq6M_reLMN z#0-=z4?j>=8q%GQi9(?Z2o2?m;lUG8W@T>|b;p?JroVD*W6hXL+h*{JM1S9jGJ?+w zNCSA^BaX)=zez;iZ%~=kg}rY*v0G^ary=<42XXs~gWvJ+kH-1B#LS(-e9PNzz&55s zFRsXcaJZ9CV0Pd9xizjt-BsUu*YTiXh3*Ic#oK#N9HEITdfF$iuz;U5K9d_tOzFXt zZ1@a`WR{!|`e}uu&;>GZLU2LnHr_emEH&4ruo$tvNN0HQ);Ec1uWccKLN~y+u-Ka1q>iX>RGRG_`_5*%Z87G4G^Y=54FUa07%Lx&{M0JRa=i=i>k)J zN0Bm8{qyI4!u9d`&x?*r-DWgwV0pyGFG3?CPxn(m%X9GwWbXrdFGqt1^ ziaxu=Ty)3f<$lWGysimoz-nPEL%;!q3Z2!@=W` zipL}1^csOa0iipELyn@Mp<#;NAs&g_7wzryha1xMeM|=asN&(HF*7MW`&!tVUu{z# zo+lg^?I#K4D6*^45e0}T5RiDKEF6B_86>8{w_IG?O6V@%b$7p}5ek4ABqaLvH)&L= zr~D7)^^c0DY%>sOPhGEq`OvQmi?v`&5$9^#tkK~erdeNigde(glnuha!`^Ei1oVn` zFK=#cp7QCGvXCL`m5bq{)qt$^9a}|ot2`u#wp@7+tsFg;0ahml`|LUH%ip4U;)DV! z1A?bcRK@VC@tnwCvfbm>n)Tk1d+#<@zw8(XOr1AEUIC+R)2YoT-src!Jk#-e^MMoRE8Tu!WvE8-8vEZ#d$Sl+^86Kc zHR7y1ac7Vc?YTvuRc{;8k6&6{`lWC*oDd9Qj)JXtdUe~3hH?7Lwu3|a5QEKJ)u> zrRlwAIKUv76u%>Qt=s$QjxkX=`o4u_H1V?DbOd>YMNQ|nkHJLZ;TLtMypgu0CF8wH zr_vOaWV@ffciAhJ-f{}eVZE3F$QPiJ$zlE5Qi#~cE~a!A2g)Dm0r+)Z}2oiNy9*>aSWzRFOf(DI!)Ug z*)>f_atPTAZ-srAX^75#jld-9>7$SnVhvb}cBL-F18W3^V;pmk!Z&qaZ9YDy{c1&` z^+;V>1yAZD7Jnw$L{a<^ny}rG^mS?@aCHH+_ zzw0`$^E}SuIL_oP<3meFA+a5=pyllb3>DbnFy&3lGmw}1X8)HK<8!{55@t<}S5V3W z`hY>T)OQc`AE+^ZC!Z1~Ov8jm0*`IL(viVm2s{`S+l=7dxZGu)C6~2<& zlo(FPPNJv5S!Mka5vC<-201Uf1QjRRM08GtI|eBTl#k9385?9Jrj;gK5)u+r;qj=2 z{QBP@j)7)5;ksd0N4~v5fl!`U@GGbt(V0j6AooV-8BhmuimuLOT-}LDx>kxbWco7N zoyRwpSLYHJqtAsm!pv*y&|GoAQ>|7}1wZ5PBV%v8CwuiRxDB9Mq4nt8apl(&+7BFz zF&IQ8#erVkX5u+UmI4lD#7$mLB>HIYn$7nBHTHg1HFgr5=-)jdFmbu)%8VW9n)5{H zY+TYl>>3oxSX5Lr4g;e5dzpx?NhDf#&+!mnk&%@eOSl%g8&?)n+3#vDoeOdoORN1G3Z)kYWcFfsH(CHT6D%69uz_fGV+Ji@1Iq1C8kRAL{B76kohHDJ!e$sfs4@AC)o^qCg zK@uA6Xz9~#+!iim82u5K z*;ynGC~`B&v(?VM52~$6eL&I%*jV%hhTnpp0?9)<s4jn6ks0kS>cq z4guyp>eVwhzBU6YC({=LFGHd<`)9uvjFd)VNx-KwXU;%p>$6`h#zD8e=TRc7{W-4q z$ew98as)pYT_VQ;>)->%EQWdk2Lg}5k$9pYBdA5s0%;#5Y}gIi9e+<)bEDIbHbprQ z$sVT{G#k${xtxzZvpGZPqEFh=Yd>I1-9!b6Gum4Cd;HvUrO0oan!YJTwjHvA3)Jfb z`OV*drH)^OiIgS!2z2>Nn0f03+)_U7i^%EFgnlXv0aZ% zl7oR1osNy?X?!W^*KhrCp%~>cd{R_?N;~6i#byZQps4%vfPV6^TMz@-?*J2zLAC-PLRtrw8F4-3)g!}~Pa$myPtO}Ss?Z;5Z z)6*PW1f~c4u)8uuA-^LGXsUs$Rejx0fQH&Aek;>8j~qEtS<6aIX}&OY1es02iGaG% znX{kXj&m6waC#@xka|@qIQDxg4tGz@J}1~LmXp&cwMbBzO`CdYHVC3+`JvR~N~anK<#holE}MBLUu8=Oo@L4 z&z>Q_V`F~)K1_*y!pg1kJgN)V!xQ)46Mo}~NS?MHFDQ=-kHl1CCXhSAIvkuK8z-st zw)Y&vsHFGpdvn{vA4f9s)~ygs(}t%s75%y`9878uqBZD~N8Z&g6mn5zo< z;MY1v4$mJ!PEQ<{KG8~>S@IbggujYt?B4~C8CXq(kc$@sfdOmhZV}wEVcWe| zFa-@qgY}}4amY)bYxL`3nOyPBsiJ=ppN$rupGYWi%VO{a0we)^pn;@3L~*3$x6&Xh zccjQx6pd&Vf{Ij&hG0{_fczI)+eh7)>4(go_~2lYIf!e9m8En?dAG08G9>IQczkeT z(a+>h+|jcdN;xt4+ucDqY3#SV%7%SjpkP2@EZ(z#cs~xkhY9=o_tv8tk$V{)J4T<@qhl~J=MCxKzaX`xoelFX5W5u>cK4wUW%IP+<+hkE3fi-m$Ahf zdjd59Mt~a~(GSARRBS*rLGaMY^MGTvg&bFpOOYcS*f8@3d6Xp@#K?^uXVh>Uy|C8@ z2KHx!>TKf)`(qk1aOy5k1g$6RsXjN^JiadTp)6o0KY>-Vvhs%->XggJ+HTT=UJbG~R_k z-(LPg*YVVQ^KTNB*kDh>HSU;xw^i7XaXX_OB)|o5Z(+;2cL4nW=r~2TWOtTa+18jO zj_dhM@Qqj@*|66DNJAJmC{!nTbJ&X?;MzfE<~H_kn94g1D906-M{jHfhD9dRi>glr zi#L7Sgj>OfkHOefSmr(V&>8U@J9-*l7-y7Y6T|NHak#mxjLZ|T4xuB>tP9(1Dd;Am zoBlMP#Fh7t2#Bf34PszXVPQSq()E;-2xJYJK`avHigy#z_w{WGUQyP?ygYuA8NW$s zq{Z*?6;YcuSc}0@{geEdmlBoEKlAZj;m&%CGTx+66s1E~f{PU%t6?~RXPLQ2=u8@;oXYE@Y1i8`pT}cmJBbPZ46yV#NIX8n)pl|eJoupalq0GZMJp(L&*KPNR zp*v@J@cDUtef`Q>$D+>+ucd(LZ#f}ucCyeVHC~Ql-ah@)<-_#Jg0;zbLcmhuAMGQ9 zWr+Fjl(Hp^CyWam_<^I#59Amc8Od%EPLNY+^4Ns>R3DHiu1H>;aBd{hL3YXs_iMG6 za(XTL8eTaJ(T5Z|EF>l6tpV8xv;<{g8K%Ms2s3`G}4fZ7uWh$-1ao#5kDW) zuIx=0E?u8I&HQEmRe_+W#qHe|bRl<2wI!C;4L_?sgYghEa>hRXHL)0KU&XBU=t0f^ zcxSct)1n{tZTsv84(z`50%h==n6DlNI`g6EQue*RVS4k~6=iET2&6P-*nZp|P!;(k zkv|dz9^7_?ip|l!ppy0RK2#iXxqD9+SJCHipa8XDr>(36aYAN4#tMLZAiptX%Y%)) zxZEsEc17)G4=7ujFFSpCPgIDRsW1ma>WdegG$Jq%rsTLTzGGzE1riqW=cHkqijObyLvezu^hE3WWY( zJi-;%&GGGIt%IikRqR0e&eV-|iks7`hvPb~(sJuM^_>|!ck3a+`Eb397I%e6mfn96 zBoG#c?6LDwmq)^xurAj=M(0bHmCUOCWh_buNSUy5?dc!7XK*qsjqh_KLjillQw=^qC|n z5%EGCzQ4>(@4|nJ*JEl8Nj`CXU;Je`joYo=8pb!fiY(i;7g6If%s`uV4yGnGv z_Zu1lA(%3-V^BC87L&Q`0s^;Vjt(4xPzLzGY1&o)VI@Hui>Nb}v?< z^O)$rgBoqd)~CnM!P^LKLsE}~0{B*;_K3dMWv%=16)dP_PNhnH0%bPo$;r^njC3Y2 zkYEjQsAc?OPvuIxCyr!JGckS4+Z|nw8$|KZkp-7n}A4;{t+?5An$r!L#Joe4TH{>K=cz> z13;PN09S!be}A)n#D}jNrp50M-fL}cmf4i~OwYgXtQ5v)lX~ua{$~Xn6->VBQ`O$J zt19m0iQJcahc7VpFVOi=p!EhQdKkp>mZ$b8rNZmHw%_QJkCjG+mrtH7@E^ekS*Aw9 zW@&40p+(dS7Y^=;J!|nULasXpS|J6MS)rU!Jz=CU?N^-=t3lF{dPgm1ywvB&9O%av^ zPnN?*R!yLXjUVf#TW7oF;kOMhvA2t1#_ibGhU|j8N`j>_%xp<9n)p(hnq1u~JO-8X z&@{Wx6m`8!kUx97Ww6(-@707I9KqKk-=o|&PV8hacZT~!zAfeWnV%%*-n6+@cy5i> z8YE4`_FHXfQq5|5s4XEp+n1L4Ou}QWG@U3R6@p4CDpw#~kQtW=D{tC#^wU1?x&mLOyNM?O z*zcFsjY+^rL}Ez2kLo-8BZ;AR+9KC;`>wb8pSaGG94Wt=m|wH5@K&#!F9G6PFnI6Q z_2lH_u~I@^b{YLboRw&H`6egx5POhW@I&LqIPyN8n|+^OdX3mg9(#VS0(P&dTW@S6 z7JG#MiO1M_T;{7wQ4TP}vNsS+IQ%IyCS6L93XfNVC^4Fmu z5pdi0mj&uR)%#&_^=Fs6bAeThao?Awt$TIfYX*4AjHahaPj7A-y&$4$e^+hxd%!##>u&(j&+(h3N2H7U~IrD?kmBnq>pQM_1nu zz(H7+v;u(r?&B>a9acOhvPZFd{yNN}2*GSH#zEih7*BZVB&^}s^-G0_4`2+ z_lP}nZ`={@AZ)PjDp)$?BWL@Hyt2PKe{73MuBMT}CaxmtTDWW9w|yCmskXSf$L9F! zrX`Qqo4)AgOI$UAM#vZlcm<82=Q4Q4+lq{9h6i;(7^mlQhxhJ`RCc_%iBz&8~F4;YIn z06d6HNm2XywFac-F;wc~$9L4zh4-8@h|M_e0XEB6rujm!?=!mAwl;YSPG>H2Q1Xav z%Du^Ba5;gG;)|vO7TlbsS*(BSW$gW4lDPm6D=aGF*JVZHLyY~vQspx_3YU!>H(=nOD2@i{kHo)uVWaW*EHa|+RJ&A7+*0Vrb4=9b59Fz?v~31;3h93Xna%pV%0UFjz&z0^m=I7H3!Wl*9BXVrg-7 z={v>IG`JEi2O>h%L-}#~byNt7EmD6Q8SJ>LfY!=0;C}9)XueOpuZ&x0t9j{b#!G7f z+MytKg;$!1Q;d)Rqt4Z-G+xHb^2}Ttk@QtzlhcH}WWDsH_-y;uaLxl`iR(GXXni$~ z7dkJOAV57^T_dLU-a6SKntJQ5|8fl=$ieW-)}o%emU^YIA%*r?8d`&cnpVRoz1m}( zDZF3->iXexov?1@WTRTdsC)nR1ez}5t4B^X0GMQ2xuLQxIQuD*6luslu!Nq@s;t;VaVVu162G7y;h@neaehxQK^O9kta23T*LRGJwU z?O@`Nd~xU5hLQbI8~&3ljli@^xg)m+Qa zI62C){lG%RWB5H!C8_Bdraj9Y~T80vz z;~4hJ>10nuohuO)ZDR=E?SEb+&lVq$T`T!%U`;tr_wNED)p_&d3>SCI83XnU%}93J z)8f(4(BOzG*eSmHM1kwL0O9dkg8f>6`2kNr>AQF%#+pKWrPsDh zSTpWDS*un@`RAF?w=*dcYwg#B2Z>+^oMQHF^$)S$Dz{+mEG@jv^Q+~Da~O;?H8}fy zTUij=fgB9}exeWW#3V8(%31QGp+QVE|hJ?>{i zUr6oxzL&0R@E>Cmw0tfuE_)(0M5`91lN&{KS@B)0v7E!A4U`YXRs%jpps~pNXd%VX zT3&su>XI1au6a=r|0XD|+?Dv$)Y|MgPo_#MEm8e9XSvI&z zn^ogKEUFg%dzr%(HsdMgBukW&_+|Le%E$KrjqHoi^?$#w8q27q>8qRA-L2#sMSXS) z=kkwVeup3lm3rQk$42%vJw+3wCA#( z!~Xhi<^KQ2Yo74&{YOT5fQOAcMuu9WTib$swEukg;GqBIhx}_eQr}`8X1}Q|fzk2I z#=jq{>D55?`)%u(0_Oh+v1zc({rTrx@#k!ei$=BznqQy!SDg?G2GmZiWf-MUf!)O) zY?;zwWWC)$vsa8W`p^;Ifj*JB#(x*?pLI;*%)Xja7aY)fUsk^(7!)$fF-+ToA9cgDc_Uo{wT+H^8Nizt{0hSXmo^3FuI*x zOLyq2H{U8iO)OfG&wT$rCQZR~{t9UaliMc^xG}yS?2zcXn5VKzz`J3hnh>h{T}Wr@ z?5$VroF?l6^UP{o=4G&1mN(4H<$V*TRqU_4xci2*SlEK+?ThBEqIz~>xylphxLFCMHUBE%0?+EFN=kVU^)!h{(1WPExp#Oe_Y-E0+>mwv< z&N}zWCrX<>4Aro8|8>nUu7XlMvMpLWJze0VIN1s@PiZxs737pZM*cYYyS|i9x7jc8 zD_Wx~yuFkKMc4j%d2nuQHT8-yx01Bnr!xQf49m;azB@(jM$K(G7pwVKiU&jd=$JHO zyQkfdW})+n-gBX^u$72}TdbduuI{aokV8jeUuR24l`vATKyRyWu~1ldC%Ecp!Xg|) zrgA6wM_kiJPj|r_1f6RwgPI`8B6i_5|Lf7<|An0?_TTjPb?07j$Z;^7+4Iy^%rKH) z*W)y&=HVp^k&&UUoK)FUfVCc9;2xz8NEJise#Z0>-zpHmKnnm#M5T#Q@HuKrJU76e z7$Rerzrif~(m}UMDH1sTc})^Oz zzuALUDxIiw$B>))8GYmb{XyIB*PaziZTPK3lXQIk#8>+1-SG#7KHe4niAGqv^EF-? z3d4XWZ>a~Iz4%u6ID8Aps@XA|trpCn5lN}E%5SZnbG4vo!GK7v)#a#=OHzz8T~R&N zYZhcNc7qD*Y3g|M?%Tun#g>oy>iUS^63D5hrQW>hgVs>3;@1So=S}*Yce0mYJ#(!vBWK zz$m(7?^yo^FT;Ao=PmH)lfG{~L~_u*4#*FrxpF!lZyZFbP(C@Gdhn^=xLGy-{0S~p#W^ij<$gK*JEu_9k8fw| z;BDCizQE!yw>2(liv_PxVplhgVqw~xcC#C!&Ox6B$q(`hbO~@?J2`F3)lJZ|b616E zpklU&dL20~A%vrtH#qNX^Z zZpatlv#Kx&Q_ZJ_zdoDUXn2mrXI0Y2)mHbYzKgf;pZu=z`~!cGn;64-En!7X3Liu7+xg`` zrgzfO?`P+XY7cuNP;1~|qvQx*1SG0}243Ydpc9}Q#n&K{uQsj3uf0bHFDs;bAVVPB z*}TV7@%ebJ@fH$~)=3(&V*~(GKoupvmZ?UZ*=y`tUTr%7p!hloe7xT376)0mm*3x~ zf8O7I7OjDicqv$Yr`(_|v+(+HlO>Aky7kJ}jw}w=JP~H1JF{CfBnSBKZMV2CH|XGc`uhBGfsINoKp;wTMg0- zF8t$LZyv3xi(^zf9O*jftc=IZ$G*B^&{=?ewX_-X%t6&MSC6=(?E&vNZ#PKz#F$Xz zTWFMz1U&M)<5y+z>i(#ztF>Ay-3mQrS-+>^@5H^jhqM*hIZS+Zu^^TzQ>X(Sxb=ob zc#e-gpepVC{p<55&b-{*eE&dpJFJ4)5%e@r@5F}3b2^B;Xe8Q%_S7v(uIEa-SW)3h5?)Ww@j0nO zSVFT3mjlOK6h72Zk#C=I3|)?ubaledQBK zIQ}e(QQ_SGOFloRnK!L? zD?)n{H_va+>IJFkUU{wv*~8Qt9KG{&qKDk)?E5lzU;)!EF)>oH6!2%IHcIYE8r~&k zCdbtuNj)E#d@Cq0%VpO-8=*Om_l|62EroeKdJl3*ezi@nOnbuXNS?*D=uLJ$d{er5 z$YV8FX!d!6!hkQaVAekAN;dA4#g5sbko9YtKBVXj4$b}%Fl%I+sVeKmg;V%YQ*?^} zUD)nifr(LYACZZmBSz!P|D7QWW5w0^DE>AHwG3%qcLq)$U%n*dq_IY+nc7R5*Z5YE zSoQj~UsaFSXS;yUb~+#%0OZ9NS_+!u*$c6PLBaSjXgA($SP2$(eg`9%9e|5q6pnDl z?7CItuStvu6V}=JP@vE@l$^`XcNmZ3U)7@yml(iX#IhU2Brqu;h^{=9r;%Oe#1*<# zixSXP&&)hJ$KdjyPf7q{IXSu8ckiwQF^*(WG`;TcCBZ$v=pu?JO#(IHj8SNU~sJNzU$!s650+x z&M2W1gUxq|Q~>lV)bfOj1nd=`YFAXcYBnj60|RTA@v&l}QX330uN?yqAsh6^)dRX0 zXo_RiqDP2c<3CHSIOUXtpRgcGbUHyn;4$2wY4?rpss@#1JG}1 zsduta11Q1Mp}@UYj=H?ZSs5}SYIK$$qwISXDM&_-Y8oDFIEKQAyn1spStM9>5c757 zx%29k7oI-wK&Ukc83Lp^?(HrNpwZ?j&D|_nUi799q=-GRXX^DT&{V*LB~JO!K7qsP z4a8lM+aFgh-zvNZ^$Qndy*7I&;MKq?V#Fnrq@N+8i;v!Em!H586qADp4ADPq2>G#4 zMDz;ot-~Anc0O(M(UK)!*Kj5`^b1Puk|{ZT_Rh_k@JLxMlNJt!(U^OYEJM<%HchoLJb{r3+ z5lH>)`gR|vJSp>_vBmu4wOF#n+1VKq9)YWcpn}Ilv;^2Z1p5XspL6^gIUP0(h@5iz zSS!!zOmmpb*OYVtk=q5DuY<3aFoV}-*=?}%A-Z)!%Lm9Au%&@;a{&EgG&B(K;m^c^N^{s!r>JHSVa&|&QP@&1Lfyq@#-3d z=~fLm*H0{8t_H7ica$IOMuA?$W-jmCFiM1rnmSCrV$S=>J);^W)Pr6@Uw1w)JW;Wi zi2$y!kPGfbD9j060~DGkfVu&pKv;@k0g#a#O5nC&79k`NRizY%ANU#?8s3F__Gm7x zH4q3|Yse1cl>Hby0`dk7OsSNUvKl?AdZbR8Xv2Z%Q%46P9O3Fg$^~8_Wx)Y~KCmC# z+E(gDaU3L&N2*~BHEomP3v>k7esz-`9l*eXoYW`=#5w5Vp%<-&SA3gD3Wzh1_7M{d ztQiTdkW~=s4E88$UFgRg6uAKg69X+UySyM3)`+!63y3;oorI5AFeds{f?9$#W&w^A zla1|41oV)yR$+s*Y2RzYdqzZL;#MToOl0ANLuw2PED5j>VUbxbX4&gA^pkdiHhkJ~ zd7ZHjV%!kga@?ke{OH2-yF9Oy>-p3rb_P!6k>Gsz@zHDOJWx@92jTFuQ;7^@#@Gx% zA%K0!X91fWA4k*BuVbVJtWl!&LhB1{7BE$4U;~78H%!R{?+KqB*8;`jCqW_$KoBAd zSg`z|xkohuMLc+g6vyK)w%{_sJQkuIheMhUa=s%@((!skfVi5Tp7{M!c(n}rHTL7d z|8uvH522h@w&(^>xM1eQAvFGmT%H;)dk z7l)z+aKasmJ`+)b^2JT;THZ}I2agyu4KKOPO}eTSI1fe@HtVJf-NP&`LMB8QXpQHI z5~@Ir0i`+W4e;FXvk1wPV63(H7p#CzFc+K&bT}~4h}{oB4Dx~Si01$AwLc2VM~uU- z8nDQkK7W1_w)Q0;Y+P?~m?4Zf1`BV}e=lBIoc{|3t1EIJzG4Ad9F!`cui&urf%b?% zhP5RF6CA+f!f_(BZ7i`z?By^y4tWlSS8$v{vzp9O!#1w4%;^UCLec5#Dl|`Ui;?iR z%7=`XB1+0LMn-to4vGxAQQhONPoV#XKp^WrnJ7bqJlJu-N*H8FKwE=|`hbK;xOQ1w z4%UtwIhprS%45#?^{s8pAb(yLq60Ii0*90Eh%KZ(WK`pRNA*LtF8-d-Kmez=`t3^3 zx&QH;Hq>Sa{B8Yu1_nnOi~&7KA?_3E2QFsbM*C3$c;w9S_Vj*B+lxTF6bwy-lZNIgBHy%31tdiNYXr4j>{jOgX#pfBBm)J2F0fE97g9)#JJPnpOAy4C8 zK?(^4PWgxnv2;eJ1RnQ4tkhF)6X`Nqf*`k>Rw4cKd_k8Y>?w3RwDK zvyo)YLaH2cKm-PCn+?(Z^>uaL$my)C`T~zUBhwV1P{pUk!E0;d);{Z2hywzGiSn$I zauVJUge#&mV?qv~844$skjWac8JghwBRo}ORwGJzxRTuw*#;`2l?WA~u%KZChBiGe zK9tu8*094NO?pE1#Mm1=hRm`JL3=R*8vSz6IPb(3XvX@4nQc`lOc$O|29cDkJpv-+ zs!Z4y_t6T18XHd=mkUvfVc;U>37aGxIx zdUdb8#8wZuTzU6#xbkI#DH72AiwDg1MN3tX?2WkE5k(S0;+)*dP;yQQzW|J9vQ6kN z#lCXB6i{_XL^^dTF*=$mv+d!RrL*SqTwkCE;ve-xe&|X#%U~@5Wp*#8*d{aP242xv zt=i%mo`}=0I>_+&W$7QZ6Bnh{Jq7>*8e=82?b{JLqiCC{-yKb!05!tlm-a!cCM3Ot z=L8KlmJQuCawO3VZ#${(9EBVaS3Ht$92W$8(ye^@lrWn}YKW^F-`CXALWMj59x}M` zC`b~7Isku#O6U43imcbUg*)ROGHflN`oRba@}aFJ=T0vGg#K zd8ZeU_Buil05>9D(&oZ~5aKYjEhw$u_VT6bW`OvME3K17Gp2dBI<}`2ZSDjJ%(^0l?tn#b&Rl?dqqn9DNPVPkZ0`FoE z?-*?M6z!bS%Ak7ycaIY@t#-$`UWQm?EH7nY%LymJ!w0@%>a|Z*Pq&#`xE%;Me$t=8 zuEqJ=wl3>+Jz#k<78&-0pI%LZ=7Mwt%EY0CRCFqEZxoYBY5hr;9J~dqh+o8l&eU6r9$^|xLJQD&6+PzUkUS8BPI$rMDPSduQV5c~MK83$Q}grl z8$%gD_J$esy?Y`kFo7uXOBOnu5J@@lf=u z1Gz}NPRbyeK|w9R!2l9Cz63-?Ga4P`jdyNpc1P??!`TJuR*j)WSYO%Ox;9g9i2=3>fh=>#4pSn+#onZ*5vKbkw*xaF7lQXA1yF!Eg z>q*OnRFeY7K@|?mP)5(W52wd!O=+82-yU9Z#MFmC&cGtVmC9!k!u&BT@Lps2QrY5g z*%*AKkg8oO*S`enZ#V8oDw=RmGa6C*s&|Kx`fC6HEo;_6~i4v|o1bMD+h z`zy;vrjnj(y5`>J(+F*`D;yMYhkZ{#!?&Re^QaarRXx$IBmYvB@i5%|)Os;g@8w>} z5En%^4ZH~rLwUJ$|_SS?7~5d|@QZu8Fr50Q5u z(qoJH03oRD8@#~qcUtTTNUtC#&;e-+PaE|S-hS5GG#xZ-FFU_@6osx$KY;V`nLKkf(lf}Cmn~614F`O)^JaPDRraomO6Nqb^f#zTp zu3aj-r8oATY?CgyOrdmUbbVx;uf?j6b2tJvsTEM%abD;M6^h*TiIDjc9)sfwHx6_MOnnd3l(ZG#Rq+;6F^2{%(v6G^~Kx@=>b?LspO$tGIic9uk z-Z{&co93Rsa(V*Z1xiEx45K7Rh!W@IB-T<>g1olx(_!Sj$SQ#!p_Ih8{H75c?p)7=8xH<_AIg0V3DbGmySPw13eO2Of+())@e;Smyi~T{J7XV`TGeNN}fg$ zWpCZ!QG~J<2?$JIP@RT+5*2J>eVDtYs(JQ}uA-gh$bDR$=rAn%u zUTbje%{lGt+D!2WhHGr3Vhq&MVpU&(uk~ zwI~Jsr?wNf+{^R(4@+}Cs5pED*o0nZ*YJ-Y+;S(HyS9~%hw+zf)s13VMNK25hylsq zIeemy)J}<=hymR>SLH5m-p5C8AEMO)(P@B?u4BG+`sEDNxb4Fw&F=;!=brtG=L0!+nZ$jZDxa6%p!j6i8BM-)})mh>I81gtN1=Itw-KRzYqi zG)kVu+Ykuk#Wz+9>B$W3~q^DJb?>Zn*h6=(6ctW$X@{(YEKCdUZsH4NXmy zyB%eI#1_yoC5iRc+?^cr)lt1Bd`On2MD-W#F4v2-lz+POvwPk5ZjaIZ^)gl^vhf43jecF%sE)n8eM;MInhrC7eL>;)#E2pQ%Wgwg1ir62=Bp!*TMdzUiCMPo zoY`0Ty4+CINXQntVL(NSdZ3KN3IN&=Y%qXKgb9W<)51R`49%H&V%P_|H84&9QOJ1l zJ+E>@L3hRt0gx>=-{BVx&YI!GQR(~@IavZ-I~>@LO7E4uBq zHkIcBb4u;Ph9e@y;qn_83zqzE%udY-&rXyru4}aaDEr{lg>-ixtC3I7qZN)> z#u77^g9Ts_QQOy)7#boZgq#F`F!tmVxWA#WkT_*^LLy@Q?=oO@(71qUwjb3Pg#9R~ ztL*Xt<^p0u@OoyTgVGEI1#SgWf|B}kc>3Wt1rUW0cz~ecs$Fh{q9~CUuRlpxK!#3r zjc+L|L$jGuUflm(IAZL<7T&ha)>A)PBck1N?oxqcT`~Xk2dNE=vv1fU1U{dtSX$_t zcPw)~?IWlQ4|mvI2};vOV=VgXb(4DkasgZpFf)OHm=%||nb@mC^*WzNWyu3Yt=P|Zc2-&cVOlXHUv zh150ZT?ePyY|lHF zQPm+8;sz%i@fcD2&i>u!cXJK)uZa)asX4XOQ8Y8Akh$HU+x)XcUDT+{x!M}XAJvXO zh1gd}j5r^Am3}V&olBgA0bR?==cdgr+xJz)j_jg;eNx1EwaWISr=Q=JOU399zE$6A z8%4vh^)8+6Zti|dQODjQYn|M4b%kYalJhzfr8l;Gj0)p^G&_GeS;azkG_$>*dw55G z#s$xSz`*Y}WikXu7{bSuj=E&EP%?L2*lzb?>q3@9ZmNx}j&tGO24j(#(@Q_Ex>M>j zPIZ?LPSU4F#J5w1gWgUJmZo^b%+%ED;m_hgC!atW@suhH_RcQa6#-Dx2{GP>5}(+f z1K^KQTVWClREG)eq=^>WaHRK^*wdU;+><*fX1v`wIKxnJ9&I*2*o&ym`0R912G|5~ zQ3V$l#l82(bNauxHz-UzF5Su#0a`9CRuy{;?1BDC+dMrqvfx?>pz~S!oygtPKxwev z_)S$+6{@SFw>951g1^A7)#S51p0$NsgH5!xhb?sHU5_W;l8iVa@t`VyaX90Ei?Jd5 z$}7xC>@Sl;ZWo#D@S?g+WL^pY*sJcqN|1!zaOV3AZ^@T=} zSkw1_w`{=q2TvK@5IE;b@>6-X$BI`I?l*9&C(!-?1V(f1Ohsk< z>o2<>t=EluYAph}EljP!j1sTC-w1$rsVlhvSj2w_0?PN&fpXR>Ob-p&EY#}}Nn3Vwc%d%1zmeFL@h+S%z zsn@;?PjAmIxJQ%!`6*A?+(J`kX-fPhN+v{D2)Ma1YWD0WdrLBuyALAO$zOArQu_00 zI}gkUfln*Zy#^}L35OpdaH7>e!dD(?>t7C_Iow9BzH$$n@&20^DbxY#K}SS@>mbdi zP7-2bWQsh2YY!egsBXxPi^=NbNooqxN<)qj-*r&LG-NsQ*P=#tgv9E6dz$m~=2a^Q z&Gz$WM%0rLH|C2^LJSUV-2N{M02amx~)C%U5Wae)j zWh?gsbV`8uy-=}^t)RYG=db+g2-~$^)6)pHfD3R15x*a}I|#ndHjjXy1x*VSBdC9I z?ZB(iMt1wX)w}gBZj6pV4i3xMqF8&u&o8jspGO^{sRv^{N+ZY6zdY$`ebj!0XNnkngmkkX+7hhOKR6!$)6QdDbO;N9x zt;0f1U;-Bx0d6MIB*`S_AOp6WU047B;Wm_v^5vjp_l_&#E8kv(6c-fb&l)z|-W%OK z#VlHM+hQok?`&&8@(JdI^^$wsid#(r?><|r*skW2d08lG8)Z1Dh;4m0P*G8RD7?5C zA?W+aGk72LVK=}Qz_I=Uf%u`0P#E^AqL(c8f+m4~kl07K|H?~Q9>*ObthDAWaSTU( zA-%qqJMPS}FPhmUzqoE@q|-4_+;lpCkYXeE@O;sbv$7*_Dna(uME}3HUOZU9-`^i? zG}8CP1U|GrZ@sxUQYq7+PL2aQK*Phk(3GOVSl5W!JY|=O#v!Yr(R54{6MwcdEi(Kgw`s#GQ(bmpUV#^PlS~-MFx@F!}2fN_nCWNW~}p_5y%6!~hcg zm$%W-(2TVj87$j{lw7$~Z!vnTYi=C`PE~_rO3r8wlOgfPlVuvbd=dh7CPk*x`~f(Q zM@+&VP(=m?20mQskhc&O^~H~tvbmFC_nlX)Ec{s4vpyD zFFOW)tynPfI`B2omj%nF6NO{*hkD-CJ>w~5D@wLr z-tyedcBASu@yViIN$r+b*Fy$ zca8Q>#OQ4cGiJcp)=vi*(e(yOOPB^QQb#D|;O4GIC5-+G_BoYFEF5vsDvEmg=8UC> zo>^{`_&eNhDm=`8Jj;H4nmJ}4oQgg>`o6$|NwWd%kmW>&k2UD)j}j95#AZ}VDfT2@ z6KC7JhucNda_64wJ=>RN?Zx{)6#lOI;8c|mYDKH7-^H7ls3Mp2;H`v&m)uHx;`>nU zAJc{6Ev}u)8!o)_#C7M>Mk69+WME``^IM)Yu>oN1ec=zUk#5-U{fVguJK$#9PjUEH zoH@LA<2r%qQ3wxu0Sg}W+Lh$-75x~*iG&2M(6F#OWstNdCE+R~A`pOC*rAE~8S7pH zQMApEfAh-?)5?0sXP>4>%Q9-;r#r|cklM^NoGZDk8%TF0ae~;xM2JT*e6!!&M_dA0V58CwHN2`v>Spn z;rflZpyzfcJ)Ig6Pu$zD?&4`VE@Bh`Yp=-2HRo;X4tmGO|H&G7yBO$qh8%!MpSFj znuSH}r^8Q!`q{PCpk4*3xHf{fc6QdaIj3bIoDi^J_J^_pPxu|2ebD7GiG6VnlSHs! zAt9_Ti$Au_*8P&KkQ$^PnO~YrDPO;;C-SN%U6b*ji9f+=Z_D2eQe?giebb&@x9QcI z^};H7GZKHkB^|qM;98=eQPs87SmZeTt9DJ$>it{G0+`AZ?zy>-T*wzGF&j}^n%ZW6 z@0>{kMJ?@DVsVAc=)fs0h?Z#ySb2J_+^c7}^!@<0)i3IxrzrSrr-EL-Ny;c>of2q0 znx20$332UeSX=7-wwisVqv~_h%#98XRSdAvUfJFJIvlnq+ee1moM2w^$FJV|TvP~b zUE${*NY#GMo_k!8%rgT|E;cqcrtFIRs@tktby;y<@g=0Y=cAi~v{dh36Bv+$C@DZx zqmHgiU%2(h>=7OnJ;o3S{kW(@KeKBPuu;+r^Dx#CM6s` ztUmB|GQh}m)?@zTN@<=R)*IX(k+OkMlHtAxSa%@wZF@^gw4B%?0php+EFd$f#INpt z^M(v)JAJr+dVawbgM|9E_KS5{7hPF>GvjsWa*kD1UQQt*B7#H=A}k|Thlgq*se#_! zlnhKvmhSGy>7DMMR~h#`zMRVwQ&B?9fH@L?B;r$#OOJi++Pg{KH^dxu_X4#;#R$$A zz`uJ**YE=k;q>M2PeYtaF`O7xFNg`^x`#;b!NxNhJs(0B^&0!A4I`itsCPxD@mfAfy8+ljh zI4<=qJ+-L0>ZZ`t$>`GW_HKrlK?3B+Q?0G8rY@bjD+!){UZoSEYr;T@bJ(*nc}HSN zZiSFMvHC35j+Q38f_34i4Qhhg;4n3hV{CKhX<+O-?BVsTfWd6`)-v>bah_C zrr>YL8!f8~_Q_k=>i*;G)v!KO58DeT|IB_{DmU<4;AOcRPb*d_O*!-D&C<*G#S>d% z%tWZTFIU6$h;)I`>X7U6eup;C_=`plCY=3#zD+v0@g*ob3skJvd52>HRZq_eu#!Z? z)wBxvyi&z<^ETzuDb(kNqRorv`!qkF_}LK(S50lLQEJDKlIW6A{uK#Wf@x`8d)^mf z*UY8c-P}w@juGK7w6BOsSc_d(uc{%5=~za^k_S0|bz7Oke0jD#TacA4_pSXMF|RF~ zS7}+!E;e2bVg5X0npiBQcz(sZ^9DOYMpYL^SLw)>MfmLP=jGa1o5Ab8Lb7Dxi_g$m zr=UH_oV>iX2$5vWT~Aig&q_>2fttLf^e_uGPWP%twIvm^D=Fy1m!6RR4Ud2fc&wTpb z*)aQZn0CCZY}VYNBW&34`xa{FGj2@{qjxCQAGcFk8lqJBU1>%wKyT0KY(}kU2211O z+1`)~b36og$C8}(_yZksC|b3%!8df#{lXh0L%QzZYQdg{?VL}lSX^A37di-lx!Zp= zMv}`Gmgs%Mm^9Ee?l0fKrz6B#fwTh)MS}o`wX*g0tzH_Mb^||^&~JdcfM}d#SagJ) zPziB^k)aD547wV@gDZq6NU>&a9)S*!#QsRv^SFY@EraKzj56K=NgUjyc~HF|%=&I1 ziQEI?`G<)ojfzE6P*A_bA^OPs%Ifo0=F+*=vhGZZgyD5}9z0)tNdVWR+Un^#1UTY_VQKhoc8uIgsX@K z3xJseXMwuP0w2}s2L{%~CSjqWW2dH7sR-8)r$Yyk3As2*Z8VRKV!e^1l8}TJ6YwQj zrXOgq+iC=#d(eKHMhAov2nJ*KA6^z#Sim2Q_>%z%M3&Zs&OGT=TUxG&5^|gY0F|1F zYT%O!Y7btb!9=Gr|sO09>lud^hC(I5) zjhK|KSp8~sV$)jV>+1{e2x|E72ZPfkF(1cmv;U?yN*{1ttxbOoF@z(~N<`G?zU5ay$_a_p_9gEjXZgdZQizc~IHLni5R4Y^%}u?&hx zO}pbv%#4m{1XsvQLN$PAKsT`zaVxQds}HY2bNVkiRYtOHVG%r&)Z(<51Zj1_|e%bRy_ z!Ife1GTpi!^(II6t2NNg69)h^hzCYT;Y4)ZTIqp1%pUPW(YnmBX-bVbzA+jOG@vS2 zVSpl_7EKeA_~&iIdN;#>36aML>L2zg-eDE2R&y|>QZY$CG(4R2T}2I&tH;KkxNt8= zt2Kr{rD$oJ7#uIx--s@#+Kmc_%#46%Vqmt z5(1qwfisV}N1XbodqKO4y~ z2F@VY)%d}^`}ikVhK}L#EQdwnh)W;Z9dHE`2Q-3Y;cuF@4!}A%4a=fsAF#R!ai4eY zT|n+0_FHe{ABb;GU&^tBi^HpoD#KzBzU>zQBbx%K#<^qHfnZ@(lmu|=?bW1`~L zH2DNpIjZXAW&U282elR&g>RF0gxJV|eieWlI`z&SjgE?H+!0`T0cS@X2-Fln{I4Xo zYKU7BR|7T~b#F3FdRU7lSx$~L5~5ykIY`%WZhjsKfXNB+(g(4qa4xR!;Vbmv=;o_G zpwM81^piXc8pSLYyc&{kG%Zp4{v~q|Km!jDnHhN`pg-fS;Su>`6zCbHZLGdrMr|Lz zmIoxfW2Zoai*FU^^hBjWn*EsTOLQMB)Q6YZ%uQ>nvD)j zHRx$kLJ(jAZ^rpRx6i`Cfdxn(P$|tV>srE3I4lc(2YkuqT?ZyJzUVFey#wIb!^(Em ztQf8geSLrz$dZv#4D~4dHjwyM^f=fYdo4mEiZ>|4ssW@9z7qojV)y|db7EN_$3e)9 z&xvgGW~8x37#LXXtY}Olmw~O4sucNVBH{(lliEH<;MxEPDQ-S@+Q`G>k6!R!hp5-5 zF6@~wHi?anEkSczGp#A6`p%jC-M)*a+5U6nsjO_$ILY}g(bCH|Fl&?1%8eik@U22T zLg}bPM}0p?Q)wP^wDGdOwG^~#OmF0V=C>~7=8j)XA%7b9otZ{4&_@4tzq)#_{-*e> z3wNmHI12d5<9^p;@y`$bUhUpESWfBT*#8KnPMs5i0=p?RDPX8Ozkmmkhb1_+Y_@L1O%cH2; zGW>wk)M8Ap!MpV~VpD;`V2CqLRRhaFh${l`B?E&A0zQEfn2EZGYog+YeIOwrYZ)Ep zS;1~%jDd9*Uw_qP4lXUQx>|f$*16alIFd1a!}IE-oBm(#lpF_{wz1yh^CsC>B@KET zegA&+-m-Gu>~}M6CNwl_oCh{tZGqctF4frqkG29f+}K?Mm(}F$O3uiu1+D}IUUjwe z+h^d>MIV68c!$6#n)7GBlK{E&8-J$VuUpUak3Q-Wdi%WGKmNe}{iQ5ji+p|ptu#2` zxP<|@ybCm2a{t5aoNYbleam^y>H;rMSblls-<+*c#&+g+4MD*=8Q7FLyQAI$$lDwk zli^%B(fRkz3sDn3?tIxdlNT5bp8_6zYR!RJdn$gD&iNhnGhWWvxwOvu{6Edq%YK`t z8y;Bb$Ll#q=}@Ck>g}|mt<(D78tl|j@w`;`|A^7dS37-Sa@8QxXT+`Xso_hL#ZMST=Xyi1-lbgcU zcD_wp^?aH2vmoohe>dtjaa6o8+ItFkngy`r5bJi${_}<**vwoSsF;HZILZc`0l0tN z@+RNs)%$?s{ugfD0xkRoE}faOWagKD)@_qifNNnu<4nNybfBcf{qEn+^e`r_L+Yz@Gex~EEe#_IfjI} zPj?hcaDlch!24^yJv^wHFy-AcwbMpP z8)tme4>vd1cKFXq;I3-Wv}E^DP(wZ>WJ#$_MEvIU`dgLF4GkMRJ2`=~bsS9xfaS^} z*2@1${|)y4YM-=>`(OCbp#NQk7RCX29w2UN_*N-j;2XyZNKRP5^Gk=W5;Z8F()Ya1IN! zaXrIi(`Cc%Z~CB>9Zou8&A@vkfZM4~%>c*aM`%1Mo_0_v$b6vXJ)KE9%{sw=iB0%( z;RShSnIM@7t_~ec{{$6G>NMHg=U85tcGYa-Bo)=#0^l^++r!PW@j>|pz|wzODsW~K zSo;Tx6c>F?vOaVESJ3tAr#A5bmpw=50DD8g0iYwlW~H(l%JnM)ua^ck@F#ja`K$gr zsTR2OV;(r_m;YN>1hhjbUTVcF-v-s9%#~eMlbbay#mq{%MP3%I6I0}3+2dfs(Xml- zuF`Jt*Cn3vVt+0yI4R%ts{XmrP2t;#|E^5mCEdR3j^oP_>C^*dLwZ_OzxUAOw{tfIfaKhFB}eb$ffhsq4ZzaP{t1;xqzU!ScU*6)|O zvSZKWQ|y+H-5g(in(_0?4JVcOxJ8RjOrLzoYr62|XBO~6)P6hm~e3kDYc0y b;{Vp0_T=9e+_B$*0SG)@{an^LB{Ts5EeWbF literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/keyboard3.png b/gui/devices/1080x1920/res/images/keyboard3.png new file mode 100644 index 0000000000000000000000000000000000000000..a646c7557d8a77630af1fcdc2104ccca6553d6a4 GIT binary patch literal 57703 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/keyboard4.png b/gui/devices/1080x1920/res/images/keyboard4.png new file mode 100644 index 0000000000000000000000000000000000000000..3b2905adbad79c84f405077b2666fcb6a3b85662 GIT binary patch literal 54577 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⁡5Xoyk=uto@k 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/medium-button.png b/gui/devices/1080x1920/res/images/medium-button.png new file mode 100644 index 0000000000000000000000000000000000000000..a3bf30d58d430f60a2f0b6996478be7f8d2ecbb6 GIT binary patch literal 3359 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 JF6*2UngGXSQRV;u literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/plus-button.png b/gui/devices/1080x1920/res/images/plus-button.png new file mode 100644 index 0000000000000000000000000000000000000000..b67d9b928e744f1f84ff8833a7e5d9ddb3018ce0 GIT binary patch literal 1117 zcmV-j1fu(iP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*f2 z5D_?ijZlOD00Z4gL_t(|+U=arPUJ=q#;f{|&0s|A0f|Gzfe{j1l0$ONao=Dcb6+6m zT=$Y2NW`GkP6#5*SV63q>FMr0GpS}G zJ?;KTI`z&H5fjvvypUvO^zWGd_`n~3S42e2B*epy_XGl+N(f>>%*0GYiiy0lWM*XM zM8wX)L|u*j2LO^6bFzk<^F)f6?cJ@r`mCJiWP>~abWA}=whMWCNuixFlfSKyiddR|K7Bd;lLrHtZK^bVoGMTk47|`$vPwy%L>>$}oCR8Ym5|h)EfYOvL3JX;OvK27IvV~&yqp3N5j=k1 zNhwSK00001002P!NJW^-`Njt#;>WD6{r~{oGO*Tq?*jv7W@ag6bk>g#fOAd=Q540_ z&Q6}^_4TT%ZfstSJq0NwhZ;c$3#bTk@`!jSjgmt}c!a#B^*vR?v#Ze5TuCJc7x zT<}N;!s`PN;c&P-jY5@pZ*Q+%QGPz3Pp8xIcxWi2; z_?gBWDvDxvcQ^E>y!3%Yba!`mc6N4od0E$)-@Xen#u#H(i6V_Fi^Za~2M@mMI|{+%0AA8-JA#OZXpN^4@sf_iCd><7Tb#YI_`?V`7oax@wpA0Ov=UbiMrCX>_C z)3PjATnD^;0JRHh_f>H7LrX3L0Dg&bhuy>fbMbQ2(k+l93)36d!y1J^bS5-BcOb91tbsn;W2qpOI>+5Gv%!;cX8L{@bxow_KgObld7A*@J%BS7>o+W{!umc*lI`v7t*xyzO#z@&h4%W| z*(f4XN^Nd#W?7bHS&}3G(Dh2*dq11a!Y;ZZqVTFvcunVRtnZ`nMd3YX<-M=V8W{U) jo(jyYmiM+W{MWCqF)krm$Y$c<00000NkvXXu0mjfrHbuS literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/progress_empty.png b/gui/devices/1080x1920/res/images/progress_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ea0c2febae1979d8747a45e06ac8d0bfdc4e0a GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0y~yV5|bNF! zZ|@xBZE)aVa5NP2{oG)h@#yFaA5I&yg8uF^cNpevmuB2>%+Pol!;QQK{#^6Bxm*o* z7>bw+OwH$YG2Z4?Fb8t>n45>Day7hVn;^|_TtvaVA(_h|56A+G09j8!5<3~6u>B~` ntC8b60n%k&BrLd$L8pMpJkHhr- z<)$y=i5&BOO@>n<0UCMR7Wy#G-0|`e+leVFU%qAIn5tRGoU%>2kh$g2vD>^8w1OY8 z379*qG*ZoDxXl}ov-@Kz*NG#&_JRPh9~Tk+wVX5gSmfdb%b9qkKx2m$Rye3@B6>JYD@<);T3K F0RU|~afSc@ literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/radio_empty.png b/gui/devices/1080x1920/res/images/radio_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2c66bb088a86597c250a7f7be531ebdbf1c56c GIT binary patch literal 2673 zcmV-%3Xb)OP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*f2 z5E3S=uRbII015F)L_t(o!_Ar9ZyQ+|#(!t*iS0O!$F3baajQ+zHf>!sZD`q+(l2PW z2vi}VY7v4vq`g>)6@LI1@CR_u4M<28LghnzR9XpkyHY5KWm7@FXi42|lBS8BICdIm z>|{JMK3w$7Xf{iC`?V>rG)gk#Ip@ja=e*~ApCfp-*bck~90oq8{*D6LC%oeTRiFf1 z0sah30QIMxJoFTwHGreQS#^B@7yZQsTNUuIozIb%kx)xUL&~bxpDTYv8ZyTWA6D zc|eDN{lHtmF`%Gi;J+7*Mj0L+W^izjTrMXK!w|`25?$A^EQ@NjO0`;*l}bg-%*-%9 zKOY1xfi|!X{0sOa@N;1KSwW|PF9F|BEa$ujsZ@%cJ9o;Vp&_!_tVkphbaizRi9`s8 z!w4bp*tTsO+qP-9+pMpzv$C>6xm=c$laowMO^J59?G4)ot^;oazg53Km8R3cY2Xb7 zx<|1pv)L?TV`Jjv$&=#DnKNSd?%nkE_TsuOmSwTJy2`@B0`+>GX0wT=X~g4k`uh49 z85v>k-n|SD4~uX(EF8zdG)?KcE>g-cFrdEK7VvK+ANeFqdw_og6up~0Jv|&cbV$Db z`s<|AX;H7&SzKJCR;#hPx{8|E*D>HT?p;C%(&;n<0|N{U4AALxn4FxH7cN}j?%lgW zN*~_?;7`C0fQ3(EIs|-GF?__kIXXHjPoF-`(W6I&VHl!buXF$Yeahvs&!}zNIF93k z?{qr2u8ZS1wA*bg%c9k4vA({JWm(v^O(YT_olc8Fp&&w`kgU~eo?Lo?K9y-IDpmeZ z&^j;*d{;>VfI^|bxpU{l@#DuuI-TbF_3PZab&E=+Lc85Y2tha;CKL*Ngwc&Ghe9F3 z;V_*}heo5pg9i^-Sy`dGyPJat57OJ)D@@arwOWmKyDb#({fgDs9r(Ut zTx7FZ-hA^-48suDuV1HHt>QS2KgrXw`y}8k%fhlOy1KeB41;t!&F$N_v29x@i3qhQ z?`x{qDJo5iR4OI+?b|1^*{m>4liAr>f5APA9G+AzQc6tI*qA633f^Q< zwbu4|1N;UigMvtns!iKV3_Mn^{(92^Wj8UT)I zsvgdJ#ZNYy6_H4UYPCwE(fG_64$8#)S*z7pT3TXcWQ6|y{vcy{;Gn1Jl&&(nN09;3K-Fp$iup>Gc+_rEEc0)uhZ#tHjU+t zvA({JX`0x!O){Azl}dTUbpshqEk>bfnlubUhQnch@ol!2gPFv(ZNExPBoZEh8K4*r zd@aIz*lM-tbUK?3dgG?Ewzh`ry6Czt6_zBB)PgA|m&>7P8ns&OrGnnLI0GfC-)Q$;lPjUga|rU6eR5@a$N zEX%?)&EVsQz?7!^g+(bP%gf6&8V!UHq*5v3@wne%Z>Ek7!(hvnElf{OQ>j#flh=V; z8t@lj*1KD&ROI5~BK`gSq|@n5V>>8~OeTY27+kw{jhUI5;NqGG{;2`)sHPEsQmMoT zAACTeP#~YrW83zoFzwas$z+oL{(fSy81KLTK6mfl_3SeX_z&<84Y;9u}h=%>KXLf@XTqw6}UREnXYA*$6XDI> zK*V)jrl+Ubwr!g@bm$O`M#Fc9JnP^^g0^j&LZLvhSi~?4#>dCGc=2LzJ$(rLSUIac z=!UXecL4)Z$}ZD1g>BnX*LAUD#}1;=D2+w~%d-4k>RG`DJ-=``OrcO<*REZ}<8dxs zy2Rznm*w*EvNw1M_>FQ?*ETv#4P~I`Ji}&weqL0oRXH{`#+EHx1VFpp_WioYRb`)) z9fDP5G#Vw7$xtj7iO1uVN+o&z{CVc*=Ys?N4)~eM9G#7z9bifse+N`Y!|LiPrBaDp zE+>v3KTa~4#Ih{v^?Izy1z~!|1wBS63I&X!K)OEEXe~Op?px$mjE9vsrq2dYGD;lJC9u zp164NA^{CM3h=LhU#KGKiH?%m_YjT>COdX-A0BAd;ouq-P$_dCE(fj_7X<*5&fit707%gSU= z1`mk#?%m7Qty^U}ofh5Q-Gsy8k7?U0Gd)|kTrSJ|_wS48>FJGgm6R0TRu1XX^BlF=(srx3%{*BaUq2(94ddN00000NkvXXu0mjfwyhWW literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/radio_selected.png b/gui/devices/1080x1920/res/images/radio_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..8d05b9d481e13bec9440fa097190bc0167101ac6 GIT binary patch literal 3432 zcmV-u4VUtXP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*f2 z5E3+B7Ef#d01W6!L_t(o!^N4~k6cGy$3Io4`<%XapPA{N?w+wdw+v?Nkc9E-t-5-WJ;0sa8qc>#$RBC!xbKwc><$XOf%tJon2oO_x_Uh8jT1Yzp`>b^KB`motzUhAzxrJS->l677l3aAzpDR70QnW)c)%WT7q|-i zEASCedD_K|rx=?7UI)If`*(nOAP>a#T;glykbni)z%($U=j{NECj}y&U`z;z0lxwK z9`IWlrpP3saC7XaU8L_x=N{3 zIt*L^eV_;Y5Ae^x-vHHb3VH$=qIb+)&+)va5%SY2HeuImn`?E{|zKL*~_&yPL&#{vFz;19LJ z4W+7V+h$>5L7X~uN-QlcVObUx$6;%0i*~zBx6`51X#-%ICXq;#csx!flVLocClZO^ zIF9)6!w-qaLQ^1@);T^5G!IMaO2>8!|h2hJ1JkH|cqI&DCw@9T@ z!f_m`)hZRop;@otdoC&nP%1#_;}=3Aq(n#qX&8u5h>Sf#zEGf$&l3azckbL#@4ovk z%gf6m2oCUV0`CKVs=xB6wM7@a!d#vak~J-U@GO3exz*RPWu9c6BAj?<@4 zlS-vT5CrPlwQICmEdfjdf22*}&BsYP3H%xG29N-lpPyH6yzz#3_0?B#9EWRHukv7f zn;rspe3shc_h}qIL$5fGo6h0KGx$~v5D4XikOXD~KbEF%=jl!yXFoSh5KCdTt9Z>C zje4DCtHtcx9Iw6d3M=>T<2a7c7AB%O-33t-LrDWamZF!PLP$xt zRl{x8XjCh>zR$OomT+BHtgNi4Znuk4Dx%Hpe`y7EhoFBO_+u?`k!0H6lm-%>TcY{WY20)c5qO}~&zm42p6ni03W35)j^SqVM5^2P4TpZGgOrkFDn%xf z;r8v@xUMTSMTAz$b*Y`51t5Jnfl9yyOT<8i*i3 zC`|()z8+@O0dLBC04v5YQhf(m8Sxj1aX4dsM4cjvqfxu~M|Hk&>C zg$>M0P4ZAE6k=*>3ez;%-PtAZJ%ZF2{jnoj@qAu%3&IilxhdM=IITt<&+|y9)7Z9+ z7;G>Gj7hDGLQ1I;iG&hD(CM@X&W{ztkEI6}hEm^L`Myfn!_!j=j1X=rhZjlU_WRUp zHIz~$lS!nM0As+yf$t%u6tP$gDJ8vL4;2IiVGG}iqlEmrVB$GYM4=D^-7%vmw@$rL zr{C{mnx@i{P6O$KK-4e{3WWleWzlRj34EU*lE6)l4z6dV_&;ew<%A(6P>-xFA8uF> zjYhF7>tOIe3WEQyCJ+y?d>QCrXcPp&0JxM0uaE3^5h{4`;D>TT9WYTnq~uU~3J4B3 z?Yb`a@83rVLD&o5QtB#J#Ug75oODwQGVDzGed z{M8xK!}C0f#Uj!OV^qsT%l8JyWrSWVHGB`F*TiV-k+DLIWwUfTgPZYCs{!|=&M)jL zrKnb`)a!K+g0yWDHy~8s!K{`rx=oan1F1YOY3q5E5hmQ&BT~A9>b6LxlB7~8R#sLh zm&=D2s{l78@E^d&@NKzVR^@V;@qC_<5gXBN5ZkzcS=$C-931I0QAK~Nv`H0#kF~c( zeEm~G1Z2i?B$G+5U%$@U+S*~WRRTViz)y702*C34G9Q2ZF%!iixxxf~w?*R4e-qhR z87%TVuW=y}Dj?i)u*%EC_EyQnV@w=5N;;k9>eZ{PtgH+j*nQv@@G}W~rW1c%K&`K@ zi)+`e(d+dX9UG&N&lB!7iQNB$M=kMj~9VYs8uCex<&f4e<#{;7#T0HaN-1|tt~EHx+L!3zduYR z)PNspD(?;h+qO1+zXn*o@3X$X&e5Ys#nRFejYgABtA*RF5vgsXLMCpe07gjL*FypB z6algmN_&~z(c%0?sW%bTG@36hSefYTk5%_CuIf5_Cnr3wV z<4^Q6mSw4#nHk=E^G$K~>{-^<*0}Y>7p$$Xqe2#h!l+0b*Dlbvi+J(OA-W8FiBQYI ztnFYl_E6o{z^uh%Oixd9^w=>h%i{g_-{-ye-c!|T6{VEWx^@ZpOAY+7S<{}rDmyx@ zkn(+BR4NtGZnssh*AvlblzcugRKAcp@%KZWZcPu3S1cAIl}d?Y z$BuF4%o$FeJjwX@IKJ;utJbL3>j)_j2owqxD6+X6nM?-9akzW;E}wt?IX74A*IB1 zT^z@uR4S>BjSaD}vGM3ycQqA$tTUt!o~0xQ@Vmh81K-uzdF#=7jb&NbwoM|D7{+u; zNBKC8L#6ViHBMJstrGB0z~5dUZ6=et6f#WFwzc**fnDvtmw^?1)7=3+ zf0|(KSzNXxa0Xb^<>o9f1su_vlUi!S(%L3)UHk8!0bhL6h5r{3Ud5{X0egG^0000< KMNUMnLSTY$^>6C{ literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/slideout.png b/gui/devices/1080x1920/res/images/slideout.png new file mode 100644 index 0000000000000000000000000000000000000000..56a9ac2aad26e3937bf1ed095491ba8e7cf6d2eb GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/slider-touch.png b/gui/devices/1080x1920/res/images/slider-touch.png new file mode 100644 index 0000000000000000000000000000000000000000..b3365afeeed1755d979894d4b4d22870349a990d GIT binary patch literal 29925 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/slider.png b/gui/devices/1080x1920/res/images/slider.png new file mode 100644 index 0000000000000000000000000000000000000000..1e034a621ceca84ba9d1301dfb086f722160a100 GIT binary patch literal 21895 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 literal 0 HcmV?d00001 diff --git a/gui/devices/1080x1920/res/images/unlock.png b/gui/devices/1080x1920/res/images/unlock.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3894b7633728e666c31fc370c2dec2e48a7f1c GIT binary patch literal 68671 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∾F-yn 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 We{yF=;B*EJ{3t=y + + +