mirror of
https://github.com/koloideal/Casha.git
synced 2026-08-08 17:51:14 +03:00
386 lines
23 KiB
Dart
386 lines
23 KiB
Dart
enum AppLocale { en, ru }
|
||
|
||
class AppStrings {
|
||
final AppLocale locale;
|
||
|
||
const AppStrings(this.locale);
|
||
|
||
bool get _ru => locale == AppLocale.ru;
|
||
|
||
String get appTitle => _ru ? 'Мои финансы' : 'My Finances';
|
||
String get totalBalance => _ru ? 'ОБЩИЙ БАЛАНС' : 'TOTAL BALANCE';
|
||
String get tapAndHoldToEdit =>
|
||
_ru ? 'удерживайте для редактирования' : 'tap and hold to edit';
|
||
String get addAccount => _ru ? 'Добавить счёт' : 'Add account';
|
||
String get addTransactionDashboard => _ru ? 'Добавить' : 'Add';
|
||
String get transactions => _ru ? 'Транзакции' : 'Transactions';
|
||
String get searchHint =>
|
||
_ru ? 'Поиск транзакций...' : 'Search transactions...';
|
||
String get filterAll => _ru ? 'Все' : 'All';
|
||
String get filterIncome => _ru ? 'Доход' : 'Income';
|
||
String get filterExpense => _ru ? 'Расход' : 'Expense';
|
||
String get filterTransfer => _ru ? 'Перевод' : 'Transfer';
|
||
String get filterAllTime => _ru ? 'Всё время' : 'All Time';
|
||
String get filterMonth => _ru ? 'Месяц' : 'Month';
|
||
String get income => _ru ? 'Доход' : 'Income';
|
||
String get expenses => _ru ? 'Расходы' : 'Expenses';
|
||
String get noTransactions =>
|
||
_ru ? 'Транзакции не найдены' : 'No transactions found';
|
||
String get addFirstTx => _ru
|
||
? 'Нажмите + чтобы добавить первую транзакцию'
|
||
: 'Tap + to add your first transaction';
|
||
|
||
String get addTransaction => _ru ? 'Новая транзакция' : 'Add Transaction';
|
||
String get editTransaction => _ru ? 'Редактировать' : 'Edit Transaction';
|
||
String get amount => _ru ? 'Сумма' : 'Amount';
|
||
String get category => _ru ? 'Категория' : 'Category';
|
||
String get note => _ru ? 'Заметка' : 'Note';
|
||
String get date => _ru ? 'Дата' : 'Date';
|
||
String get time => _ru ? 'Время' : 'Time';
|
||
String get save => _ru ? 'Сохранить' : 'Save';
|
||
String get delete => _ru ? 'Удалить' : 'Delete';
|
||
String get cancel => _ru ? 'Отмена' : 'Cancel';
|
||
String get typeIncome => _ru ? 'Доход' : 'Income';
|
||
String get typeExpense => _ru ? 'Расход' : 'Expense';
|
||
String get confirmDelete =>
|
||
_ru ? 'Удалить транзакцию?' : 'Delete transaction?';
|
||
String get confirmDeleteBody =>
|
||
_ru ? 'Это действие нельзя отменить.' : 'This action cannot be undone.';
|
||
String get saveChanges => _ru ? 'Сохранить изменения' : 'Save Changes';
|
||
String get noteOptional =>
|
||
_ru ? 'Заметка (необязательно)' : 'Note (optional)';
|
||
String get addNote => _ru ? 'Добавить заметку...' : 'Add a note...';
|
||
|
||
String get settings => _ru ? 'Настройки' : 'Settings';
|
||
String get managePreferences =>
|
||
_ru ? 'Управление настройками' : 'Manage your preferences';
|
||
String get appearance => _ru ? 'Внешний вид' : 'Appearance';
|
||
String get theme => _ru ? 'Тема' : 'Theme';
|
||
String get themeDark => _ru ? 'Тёмная' : 'Dark';
|
||
String get themeLight => _ru ? 'Светлая' : 'Light';
|
||
String get themeSystem => _ru ? 'Системная' : 'System';
|
||
String get cardTextColor => _ru ? 'Цвет текста карточки' : 'Card text color';
|
||
String get cardTextColorWhite => _ru ? 'Белый' : 'White';
|
||
String get cardTextColorAdaptive => _ru ? 'Авто' : 'Adaptive';
|
||
String get cardTextColorBlack => _ru ? 'Чёрный' : 'Black';
|
||
String get darkMode => _ru ? 'Тёмная тема' : 'Dark Mode';
|
||
String get enabled => _ru ? 'Включено' : 'Enabled';
|
||
String get disabled => _ru ? 'Выключено' : 'Disabled';
|
||
String get hapticFeedback => _ru ? 'Тактильная отдача' : 'Haptic Feedback';
|
||
String get vibrationOnInteractions =>
|
||
_ru ? 'Вибрация при взаимодействии' : 'Vibration on interactions';
|
||
String get biometricLock => _ru ? 'Биометрия' : 'Biometric Lock';
|
||
String get requireFingerprint =>
|
||
_ru ? 'Отпечаток при запуске' : 'Require fingerprint to unlock';
|
||
String get currency => _ru ? 'Валюта' : 'Currency';
|
||
String get amountFormat => _ru ? 'Формат суммы' : 'Amount Format';
|
||
String get language => _ru ? 'Язык' : 'Language';
|
||
String get langRu => _ru ? 'Русский' : 'Russian';
|
||
String get langEn => _ru ? 'Английский' : 'English';
|
||
String get data => _ru ? 'Данные' : 'Data';
|
||
String get exportData => _ru ? 'Экспорт данных' : 'Export data';
|
||
String get clearData => _ru ? 'Очистить данные' : 'Clear all data';
|
||
String get clearAllTransactions =>
|
||
_ru ? 'Удалить транзакции' : 'Clear All Transactions';
|
||
String get clearDataConfirm =>
|
||
_ru ? 'Удалить транзакции?' : 'Clear all transactions?';
|
||
String get clearDataWarning => _ru
|
||
? 'Это навсегда удалит всю историю транзакций. Это действие нельзя отменить.'
|
||
: 'This will permanently delete all your transaction history. This cannot be undone.';
|
||
String get areYouSure =>
|
||
_ru ? 'Вы абсолютно уверены?' : 'Are you absolutely sure?';
|
||
String get allTransactionsDeleted =>
|
||
_ru ? 'Все транзакции удалены' : 'All transactions deleted';
|
||
String get noKeepThem => _ru ? 'Нет, оставить' : 'No, keep them';
|
||
String get yesDeleteEverything =>
|
||
_ru ? 'Да, удалить всё' : 'Yes, delete everything';
|
||
String get allTransactionsWillBeDeleted => _ru
|
||
? 'Все транзакции будут удалены навсегда. Восстановить их будет невозможно.'
|
||
: 'All transactions will be deleted forever. There is no way to recover them.';
|
||
String get dangerZone => _ru ? 'Опасная зона' : 'Danger Zone';
|
||
|
||
String get navDashboard => _ru ? 'Главная' : 'Dashboard';
|
||
String get navCategories => _ru ? 'Статистика' : 'Statistics';
|
||
String get navSettings => _ru ? 'Настройки' : 'Settings';
|
||
|
||
String get statistics => _ru ? 'Статистика' : 'Statistics';
|
||
String get allAccounts => _ru ? 'Все счета' : 'All accounts';
|
||
String get categories => _ru ? 'Категории' : 'Categories';
|
||
String get rankedByAmount => _ru ? 'По сумме' : 'Ranked by Amount';
|
||
String get overview => _ru ? 'Обзор' : 'Overview';
|
||
String get netBalance => _ru ? 'Чистый баланс' : 'Net Balance';
|
||
String get averageIncome => _ru ? 'Средний доход' : 'Average Income';
|
||
String get averageExpense => _ru ? 'Средний расход' : 'Average Expense';
|
||
String get transactionsCount => _ru ? 'Транзакции' : 'Transactions';
|
||
String get expenseStructure => _ru ? 'Структура категорий' : 'Category Structure';
|
||
String get topCategories => _ru ? 'Топ категорий' : 'Top Categories';
|
||
String get monthlyTrend => _ru ? 'Тренд по месяцам' : 'Monthly Trend';
|
||
String get topCategory => _ru ? 'Лидер категории' : 'Top Category';
|
||
String get shareOfTotal => _ru ? 'Доля от общего' : 'Share of Total';
|
||
String get thisPeriod => _ru ? 'За период' : 'This Period';
|
||
String get analyticsInsight => _ru ? 'Финансовый срез по выбранному диапазону и счёту' : 'Financial snapshot for the selected range and account';
|
||
String get noStatisticsYet => _ru ? 'Пока недостаточно данных' : 'Not enough data yet';
|
||
String get statisticsWillAppear => _ru ? 'Когда появятся операции, здесь будет красивый аналитический обзор' : 'Once you add transactions, a beautiful analytics overview will appear here';
|
||
String get addCategory => _ru ? 'Добавить категорию' : 'Add Category';
|
||
String get editCategory => _ru ? 'Редактировать' : 'Edit Category';
|
||
String get categoryName => _ru ? 'Название' : 'Name';
|
||
String get categoryIcon => _ru ? 'Иконка' : 'Icon';
|
||
String get categoryColor => _ru ? 'Цвет' : 'Color';
|
||
String get deleteCategory => _ru ? 'Удалить категорию' : 'Delete Category';
|
||
String get noCategoriesYet => _ru ? 'Нет категорий' : 'No categories yet';
|
||
String get noExpenseData => _ru ? 'Нет данных о расходах' : 'No expense data';
|
||
String get addExpensesToSeeBreakdown => _ru
|
||
? 'Добавьте расходы, чтобы увидеть разбивку'
|
||
: 'Add some expenses to see the breakdown';
|
||
String get noIncomeData => _ru ? 'Нет данных о доходах' : 'No income data';
|
||
String get addIncomeToSeeBreakdown => _ru
|
||
? 'Добавьте доходы, чтобы увидеть разбивку'
|
||
: 'Add some income to see the breakdown';
|
||
String get total => _ru ? 'Всего' : 'Total';
|
||
String get lastSixMonths => _ru ? 'Последние 6 месяцев' : 'Last 6 Months';
|
||
|
||
String categoryLabel(String key) {
|
||
if (!_ru) return key;
|
||
const map = {
|
||
'Food': 'Еда',
|
||
'Transport': 'Транспорт',
|
||
'Shopping': 'Покупки',
|
||
'Entertainment': 'Развлечения',
|
||
'Health': 'Здоровье',
|
||
'Housing': 'Жильё',
|
||
'Education': 'Образование',
|
||
'Travel': 'Путешествия',
|
||
'Salary': 'Зарплата',
|
||
'Freelance': 'Фриланс',
|
||
'Investment': 'Инвестиции',
|
||
'Gift': 'Подарок',
|
||
'Refund': 'Возврат',
|
||
'Other': 'Другое',
|
||
'Utilities': 'Коммунальные',
|
||
'Clothing': 'Одежда',
|
||
'Sports': 'Спорт',
|
||
'Beauty': 'Красота',
|
||
'Pets': 'Питомцы',
|
||
'Business': 'Бизнес',
|
||
'Savings': 'Накопления',
|
||
};
|
||
return map[key] ?? key;
|
||
}
|
||
|
||
String get colorPrimary => _ru ? 'Основной' : 'Primary';
|
||
String get colorSecondary => _ru ? 'Второй' : 'Second';
|
||
String get colorSecond => _ru ? 'Второй' : 'Second';
|
||
String get colorSolid => _ru ? 'Однотон' : 'Solid';
|
||
String get gradientLinear => _ru ? 'Линейный' : 'Linear';
|
||
String get gradientReverse => _ru ? 'Обратный' : 'Reverse';
|
||
String get gradientRadial => _ru ? 'Радиус' : 'Radial';
|
||
String get gradientSweep => _ru ? 'Круговой' : 'Sweep';
|
||
String get reset => _ru ? 'Сброс' : 'Reset';
|
||
String get apply => _ru ? 'Применить' : 'Apply';
|
||
|
||
String get accountsInfoTitle => _ru ? 'Счета' : 'Accounts';
|
||
String get accountsInfoBalance => _ru
|
||
? 'У каждого счёта свой баланс, валюта и цвет карточки.'
|
||
: 'Each account has its own balance, currency and card color.';
|
||
String get accountsInfoCustomize => _ru
|
||
? 'Удерживайте карточку для настройки градиента, названия и валюты.'
|
||
: 'Long-press any card to customize its gradient, name and currency.';
|
||
String get accountsInfoLimit =>
|
||
_ru ? 'Максимум 5 счетов.' : 'Maximum 5 accounts.';
|
||
|
||
String get currencyConversions =>
|
||
_ru ? 'Конвертация валют' : 'Currency conversions';
|
||
String get showConversionsOnCard =>
|
||
_ru ? 'Показывать на карточке' : 'Show on balance card';
|
||
|
||
String get selectSourceAccount =>
|
||
_ru ? 'Выберите счёт отправителя' : 'Select source account';
|
||
String get selectDestAccount =>
|
||
_ru ? 'Выберите счёт получателя' : 'Select destination account';
|
||
String get accountsMustDiffer =>
|
||
_ru ? 'Счета должны отличаться' : 'Accounts must differ';
|
||
String get transferLabel => _ru ? 'Перевод' : 'Transfer';
|
||
String get transferTo => _ru ? 'на' : 'to';
|
||
String get transferFrom => _ru ? 'с' : 'from';
|
||
String get selectAccount => _ru ? 'Выберите счёт' : 'Select account';
|
||
String get accountPlaceholder => _ru ? 'Счёт' : 'Account';
|
||
String get saveError => _ru ? 'Ошибка сохранения' : 'Save error';
|
||
|
||
String get manageCategories => _ru ? 'Категории' : 'Categories';
|
||
String get manageCategoriesSubtitle => _ru
|
||
? 'Создавайте и редактируйте свои категории'
|
||
: 'Create and edit your own categories';
|
||
String get customCategories => _ru ? 'Свои категории' : 'Custom categories';
|
||
String get defaultCategories =>
|
||
_ru ? 'Стандартные категории' : 'Default categories';
|
||
String get newCategory => _ru ? 'Новая категория' : 'New category';
|
||
String get nameEn => _ru ? 'Название (EN)' : 'Name (EN)';
|
||
String get nameRu => _ru ? 'Название (RU)' : 'Name (RU)';
|
||
String get nameEnHint => _ru ? 'Например, Coffee' : 'e.g. Coffee';
|
||
String get nameRuHint => _ru ? 'Например, Кофе' : 'e.g. Кофе';
|
||
String get autoTranslate => _ru ? 'Автоперевод' : 'Auto-translate';
|
||
String get applyTranslation => _ru ? 'Применить' : 'Apply';
|
||
String get translating => _ru ? 'Перевод...' : 'Translating...';
|
||
String get translationFailed =>
|
||
_ru ? 'Не удалось перевести' : 'Translation failed';
|
||
String get categoryNameRequired =>
|
||
_ru ? 'Введите название' : 'Enter a name';
|
||
String get deleteCategoryConfirm =>
|
||
_ru ? 'Удалить эту категорию?' : 'Delete this category?';
|
||
String get deleteCategoryWarning => _ru
|
||
? 'Категория будет удалена. Прошлые транзакции сохранятся.'
|
||
: 'The category will be removed. Past transactions are kept.';
|
||
String get noCustomCategories =>
|
||
_ru ? 'Вы ещё не добавили категории' : 'No custom categories yet';
|
||
String get noCustomCategoriesHint => _ru
|
||
? 'Нажмите +, чтобы создать свою категорию'
|
||
: 'Tap + to create your own category';
|
||
String get categoryType => _ru ? 'Тип' : 'Type';
|
||
String get categorySaved => _ru ? 'Категория сохранена' : 'Category saved';
|
||
|
||
String get dateLocale => _ru ? 'ru_RU' : 'en_US';
|
||
|
||
String get premium => _ru ? 'Премиум' : 'Premium';
|
||
String get premiumStatus => _ru ? 'Статус премиум' : 'Premium status';
|
||
String get premiumDescription => _ru
|
||
? 'Разблокируйте цвета карточек, высоту и до 8 счетов'
|
||
: 'Unlock card colors, card height and up to 8 accounts';
|
||
String get premiumEnabled => _ru ? 'Включён' : 'Enabled';
|
||
String get premiumDisabled => _ru ? 'Выключен' : 'Disabled';
|
||
String get premiumFeatureLocked =>
|
||
_ru ? 'Доступно в премиум' : 'Premium feature';
|
||
String get accountLimitReached => _ru
|
||
? 'Достигнут лиммт счетов. Обновите до премиум для большего количества.'
|
||
: 'Account limit reached. Upgrade to premium for more accounts.';
|
||
String accountsLimitLabel(int max) =>
|
||
_ru ? 'Максимум $max счетов.' : 'Maximum $max accounts.';
|
||
|
||
String get premiumFeatureColors =>
|
||
_ru ? 'Настройка цветов карточек' : 'Custom card colors';
|
||
String get premiumFeatureHeight =>
|
||
_ru ? 'Изменение высоты карточки' : 'Resizable card height';
|
||
String get premiumFeatureAccounts =>
|
||
_ru ? 'До 8 счетов' : 'Up to 8 accounts';
|
||
|
||
String get onboardingWelcome => _ru ? 'Добро пожаловать в' : 'Welcome to';
|
||
String get onboardingMultiCurrencyTitle =>
|
||
_ru ? 'Все деньги\nна одном экране' : 'All Your Money,\nOne View';
|
||
String get onboardingMultiCurrencyBody => _ru
|
||
? 'Счета в разных валютах с автоматической конвертацией по актуальным курсам'
|
||
: 'Accounts in different currencies, automatically converted at live exchange rates';
|
||
String get onboardingCardsTitle =>
|
||
_ru ? 'Живые карточки' : 'Cards That Come Alive';
|
||
String get onboardingCardsBody => _ru
|
||
? 'Наклоните телефон — и карточка оживает. Градиенты, цвета и высота — всё настраивается под вас'
|
||
: 'Tilt your phone and watch them respond. Customize gradients, colors and height to make them yours';
|
||
String get onboardingReadyTitle => _ru ? 'Всё готово' : "You're All Set";
|
||
String get onboardingReadyBody => _ru
|
||
? 'Если готовы — свайпните вправо, чтобы открыть приложение'
|
||
: "If you're ready — swipe right to open the app";
|
||
String get onboardingSwipeRight => _ru ? 'Свайп вправо' : 'Swipe Right';
|
||
|
||
String get proTitle => _ru ? 'Casha Pro' : 'Casha Pro';
|
||
String get proAboutPro => _ru ? 'Подробнее' : 'About Pro';
|
||
String get proSubtitle => _ru
|
||
? 'Раскройте весь потенциал Casha'
|
||
: 'Unlock the full power of Casha';
|
||
String get proBuy => _ru ? 'Купить Pro' : 'Buy Pro';
|
||
String get proFeatureCloudSync =>
|
||
_ru ? 'Облачная синхронизация' : 'Cloud Sync';
|
||
String get proFeatureCloudSyncDesc => _ru
|
||
? 'Синхронизация между всеми вашими устройствами'
|
||
: 'Sync across all your devices';
|
||
String get proFeatureBiometric =>
|
||
_ru ? 'Биометрическая защита' : 'Biometric Protection';
|
||
String get proFeatureBiometricDesc => _ru
|
||
? 'Защитите свои данные отпечатком пальца или Face ID'
|
||
: 'Secure your data with fingerprint or Face ID';
|
||
String get proFeatureAnalytics =>
|
||
_ru ? 'Детальная аналитика' : 'Detailed Analytics';
|
||
String get proFeatureAnalyticsDesc => _ru
|
||
? 'Графики и статистика по расходам и доходам'
|
||
: 'Charts and stats for income and spending';
|
||
String get proFeatureCustomization =>
|
||
_ru ? 'Кастомизация карточек' : 'Card Customization';
|
||
String get proFeatureCustomizationDesc => _ru
|
||
? 'Цвета, градиенты, высота — всё под вашим контролем'
|
||
: 'Colors, gradients, height — all under your control';
|
||
String get proFeatureAccounts =>
|
||
_ru ? 'До 8 счетов' : 'Up to 8 Accounts';
|
||
String get proFeatureAccountsDesc => _ru
|
||
? 'Создавайте больше счетов для разных целей'
|
||
: 'Create more accounts for different goals';
|
||
String get proTryPro => _ru ? 'Попробовать Pro' : 'Try Pro';
|
||
String get proRestorePurchases =>
|
||
_ru ? 'Восстановить покупки' : 'Restore Purchases';
|
||
String get proActive => _ru ? 'Pro активна' : 'Pro Active';
|
||
String get proSignInForSync =>
|
||
_ru ? 'Войдите, чтобы включить синхронизацию' : 'Sign in to enable sync';
|
||
String get proSignInGoogle =>
|
||
_ru ? 'Войти через Google' : 'Sign in with Google';
|
||
String get proSyncEnabled =>
|
||
_ru ? 'Синхронизация включена' : 'Sync enabled';
|
||
String get proLastBackup => _ru ? 'Последняя резервная копия' : 'Last backup';
|
||
String get proSignOut => _ru ? 'Выйти' : 'Sign Out';
|
||
String get proPurchaseSuccess =>
|
||
_ru ? 'Pro успешно активирована!' : 'Pro successfully activated!';
|
||
String get proPurchaseFailed =>
|
||
_ru ? 'Не удалось оформить подписку' : 'Purchase failed';
|
||
String get proRestoreSuccess =>
|
||
_ru ? 'Покупки восстановлены!' : 'Purchases restored!';
|
||
String get proRestoreNotFound =>
|
||
_ru ? 'Предыдущие покупки не найдены' : 'No previous purchases found';
|
||
String get proTapToClose =>
|
||
_ru ? 'Нажмите чтобы закрыть' : 'Tap anywhere to close';
|
||
String get proResetData =>
|
||
_ru ? 'Сбросить тестовые данные' : 'Reset Test Data';
|
||
String get proResetDataDesc => _ru
|
||
? 'Локально отменить подписку для тестирования'
|
||
: 'Locally cancel subscription for testing';
|
||
String get proResetDataConfirm => _ru
|
||
? 'Сбросить подписку? Это локально очистит ваш премиум статус.'
|
||
: 'Reset subscription? This will locally clear your premium status.';
|
||
String get proResetDataSuccess => _ru
|
||
? 'Премиум статус сброшен'
|
||
: 'Premium status reset';
|
||
String get proRestoreSuccessTitle =>
|
||
_ru ? 'Покупки восстановлены!' : 'Purchases Restored!';
|
||
String get backupTitle => _ru ? 'Резервная копия' : 'Backup';
|
||
String get backupCreate => _ru ? 'Создать резервную копию' : 'Create Backup';
|
||
String get backupRestore => _ru ? 'Восстановить из копии' : 'Restore Backup';
|
||
String get backupCreating => _ru ? 'Создание копии...' : 'Creating backup...';
|
||
String get backupRestoring => _ru ? 'Восстановление...' : 'Restoring...';
|
||
String get backupSuccess =>
|
||
_ru ? 'Резервная копия успешно создана!' : 'Backup created successfully!';
|
||
String get backupRestoreSuccess =>
|
||
_ru ? 'Данные успешно восстановлены!' : 'Data restored successfully!';
|
||
String get backupRestoreFailed =>
|
||
_ru ? 'Не удалось восстановить данные' : 'Failed to restore data';
|
||
String get backupNoFileFound =>
|
||
_ru ? 'Резервная копия не найдена' : 'No backup file found';
|
||
String get backupTokenMismatch =>
|
||
_ru
|
||
? 'Этот файл резервной копии принадлежит другому покупателю Premium'
|
||
: 'This backup file belongs to another Premium purchaser';
|
||
String get backupInvalidFormat =>
|
||
_ru ? 'Неверный формат файла резервной копии' : 'Invalid backup file format';
|
||
String get backupNoToken =>
|
||
_ru
|
||
? 'Файл резервной копии не содержит токен покупки'
|
||
: 'Backup file does not contain a purchase token';
|
||
String get backupRequiresPremium =>
|
||
_ru ? 'Резервная копия доступна только для Pro' : 'Backup is a Pro-only feature';
|
||
String get backupRequiresSignIn =>
|
||
_ru
|
||
? 'Войдите в Google аккаунт для работы с резервными копиями'
|
||
: 'Sign in to Google to manage backups';
|
||
String get backupLastBackup => _ru ? 'Последняя копия' : 'Last backup';
|
||
String get backupNever => _ru ? 'Никогда' : 'Never';
|
||
String get backupSyncWithDrive =>
|
||
_ru ? 'Синхронизация с Google Диском' : 'Google Drive Sync';
|
||
String get backupSyncDesc =>
|
||
_ru
|
||
? 'Резервное копирование данных на ваш Google Диск'
|
||
: 'Back up your data to your Google Drive';
|
||
}
|