From ae7150520d7d510e3a58503e673ea9b543a65739 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Tue, 2 Jul 2024 14:29:18 +0800 Subject: [PATCH 01/14] feat: pre-support zenless --- src-tauri/src/gacha/impl_zzz.rs | 141 ++++++++++++++++++ src-tauri/src/gacha/mod.rs | 2 + src-tauri/src/gacha/plugin.rs | 38 +++++ src-tauri/src/storage/entity_account.rs | 3 + .../src/storage/entity_zzz_gacha_record.rs | 67 +++++++++ src-tauri/src/storage/impl_storage.rs | 37 ++++- src-tauri/src/storage/mod.rs | 1 + src/components/Sidebar.tsx | 17 ++- .../gacha/analysis/GachaAnalysisHistory.tsx | 5 +- .../gacha/analysis/GachaAnalysisSum.tsx | 12 +- src/components/gacha/chart/GachaChartPie.tsx | 69 ++++++--- .../gacha/overview/GachaOverviewGrid.tsx | 15 +- .../gacha/toolbar/GachaActionExport.tsx | 3 +- .../gacha/toolbar/GachaActionImport.tsx | 3 +- src/hooks/useGachaRecordsFetcher.ts | 4 +- src/hooks/useGachaRecordsQuery.ts | 101 ++++++++++++- src/interfaces/account.ts | 26 +++- src/interfaces/gacha.ts | 15 ++ src/router.tsx | 6 + src/routes/zzz.tsx | 16 ++ src/utilities/plugin-gacha.ts | 6 +- src/utilities/plugin-storage.ts | 24 +-- 22 files changed, 538 insertions(+), 73 deletions(-) create mode 100644 src-tauri/src/gacha/impl_zzz.rs create mode 100644 src-tauri/src/storage/entity_zzz_gacha_record.rs create mode 100644 src/routes/zzz.tsx diff --git a/src-tauri/src/gacha/impl_zzz.rs b/src-tauri/src/gacha/impl_zzz.rs new file mode 100644 index 00000000..a8bb0239 --- /dev/null +++ b/src-tauri/src/gacha/impl_zzz.rs @@ -0,0 +1,141 @@ +use super::utilities::{ + fetch_gacha_records, lookup_cognosphere_dir, lookup_gacha_urls_from_endpoint, lookup_mihoyo_dir, + lookup_path_line_from_keyword, lookup_valid_cache_data_dir, +}; +use super::{ + GachaRecord, GachaRecordFetcher, GachaRecordFetcherChannel, GachaUrl, GachaUrlFinder, + GameDataDirectoryFinder, +}; +use crate::error::Result; +use async_trait::async_trait; +use reqwest::Client as Reqwest; +use serde::{Deserialize, Serialize}; +use std::any::Any; +use std::cmp::Ordering; +use std::path::{Path, PathBuf}; + +#[derive(Default, Deserialize)] +pub struct ZenlessZoneZeroGacha; + +/// Game Directory + +impl GameDataDirectoryFinder for ZenlessZoneZeroGacha { + fn find_game_data_directories(&self) -> Result> { + let cognosphere_dir = lookup_cognosphere_dir(); + let mihoyo_dir = lookup_mihoyo_dir(); + let mut directories = Vec::new(); + + // TODO: Untested + const INTERNATIONAL_PLAYER_LOG: &str = "Zenless Zone Zero/Player.log"; + const INTERNATIONAL_DIR_KEYWORD: &str = "/ZenlessZoneZero_Data/"; + + let mut player_log = cognosphere_dir.join(INTERNATIONAL_PLAYER_LOG); + if let Some(directory) = lookup_path_line_from_keyword(player_log, INTERNATIONAL_DIR_KEYWORD)? { + directories.push(directory); + } + + const CHINESE_PLAYER_LOG: &str = "绝区零/Player.log"; + const CHINESE_DIR_KEYWORD: &str = "/ZenlessZoneZero_Data/"; + + player_log = mihoyo_dir.join(CHINESE_PLAYER_LOG); + if let Some(directory) = lookup_path_line_from_keyword(player_log, CHINESE_DIR_KEYWORD)? { + directories.push(directory); + } + + Ok(directories) + } +} + +/// Gacha Url + +const ENDPOINT: &str = "/api/getGachaLog?"; + +impl GachaUrlFinder for ZenlessZoneZeroGacha { + fn find_gacha_urls>(&self, game_data_dir: P) -> Result> { + // See: https://github.com/lgou2w/HoYo.Gacha/issues/10 + let cache_data_dir = lookup_valid_cache_data_dir(game_data_dir)?; + lookup_gacha_urls_from_endpoint(cache_data_dir, ENDPOINT, true) + } +} + +/// Gacha Record + +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] +pub struct ZenlessZoneZeroGachaRecord { + pub id: String, + pub uid: String, + pub gacha_id: String, + pub gacha_type: String, + pub item_id: String, + pub count: String, + pub time: String, + pub name: String, + pub lang: String, + pub item_type: String, + pub rank_type: String, +} + +impl GachaRecord for ZenlessZoneZeroGachaRecord { + fn id(&self) -> &str { + &self.id + } + + fn as_any(&self) -> &dyn Any { + self + } +} + +impl PartialOrd for ZenlessZoneZeroGachaRecord { + fn partial_cmp(&self, other: &Self) -> Option { + self.id.partial_cmp(&other.id) + } +} + +/// Gacha Record Fetcher + +#[allow(unused)] +#[derive(Deserialize)] +pub(crate) struct ZenlessZoneZeroGachaRecordPagination { + page: String, + size: String, + // total: String, + list: Vec, + region: String, + region_time_zone: i8, +} + +#[async_trait] +impl GachaRecordFetcher for ZenlessZoneZeroGacha { + type Target = ZenlessZoneZeroGachaRecord; + + async fn fetch_gacha_records( + &self, + reqwest: &Reqwest, + gacha_url: &str, + gacha_type: Option<&str>, + end_id: Option<&str>, + ) -> Result>> { + let response = fetch_gacha_records::( + reqwest, ENDPOINT, gacha_url, gacha_type, end_id, + ) + .await?; + + Ok(response.data.map(|pagination| pagination.list)) + } + + async fn fetch_gacha_records_any_uid( + &self, + reqwest: &Reqwest, + gacha_url: &str, + ) -> Result> { + let result = self + .fetch_gacha_records(reqwest, gacha_url, None, None) + .await?; + Ok(result.and_then(|gacha_records| gacha_records.first().map(|record| record.uid.clone()))) + } +} + +#[async_trait] +impl GachaRecordFetcherChannel for ZenlessZoneZeroGacha { + type Fetcher = Self; +} diff --git a/src-tauri/src/gacha/mod.rs b/src-tauri/src/gacha/mod.rs index 1325a11b..72527f6b 100644 --- a/src-tauri/src/gacha/mod.rs +++ b/src-tauri/src/gacha/mod.rs @@ -1,6 +1,7 @@ mod declare; mod impl_genshin; mod impl_starrail; +mod impl_zzz; mod plugin; mod utilities; @@ -10,4 +11,5 @@ pub mod uigf; pub use declare::*; pub use impl_genshin::*; pub use impl_starrail::*; +pub use impl_zzz::*; pub use plugin::*; diff --git a/src-tauri/src/gacha/plugin.rs b/src-tauri/src/gacha/plugin.rs index 1fce9c85..f91aeebc 100644 --- a/src-tauri/src/gacha/plugin.rs +++ b/src-tauri/src/gacha/plugin.rs @@ -1,6 +1,7 @@ use super::srgf; use super::uigf; use super::utilities::{create_default_reqwest, find_gacha_url_and_validate_consistency}; +use super::ZenlessZoneZeroGacha; use super::{ create_fetcher_channel, GachaRecordFetcherChannelFragment, GachaUrlFinder, GameDataDirectoryFinder, GenshinGacha, StarRailGacha, @@ -23,6 +24,7 @@ async fn find_game_data_directories(facet: AccountFacet) -> Result> match facet { AccountFacet::Genshin => GenshinGacha.find_game_data_directories(), AccountFacet::StarRail => StarRailGacha.find_game_data_directories(), + AccountFacet::ZenlessZoneZero => ZenlessZoneZeroGacha.find_game_data_directories(), } } @@ -41,6 +43,11 @@ async fn find_gacha_url( let gacha_urls = StarRailGacha.find_gacha_urls(game_data_dir)?; find_gacha_url_and_validate_consistency(&StarRailGacha, &facet, &uid, &gacha_urls).await? } + AccountFacet::ZenlessZoneZero => { + let gacha_urls = ZenlessZoneZeroGacha.find_gacha_urls(game_data_dir)?; + find_gacha_url_and_validate_consistency(&ZenlessZoneZeroGacha, &facet, &uid, &gacha_urls) + .await? + } }; Ok(gacha_url.to_string()) @@ -102,6 +109,25 @@ async fn pull_all_gacha_records( ) .await? } + AccountFacet::ZenlessZoneZero => { + create_fetcher_channel( + ZenlessZoneZeroGacha, + reqwest, + ZenlessZoneZeroGacha, + gacha_url, + gacha_type_and_last_end_id_mappings, + |fragment| async { + window.emit(&event_channel, &fragment)?; + if save_to_storage { + if let GachaRecordFetcherChannelFragment::Data(data) = fragment { + storage.save_zzz_gacha_records(&data).await?; + } + } + Ok(()) + }, + ) + .await? + } } Ok(()) @@ -141,6 +167,10 @@ async fn import_gacha_records( let gacha_records = srgf::convert_srgf_to_offical(&mut srgf)?; storage.save_starrail_gacha_records(&gacha_records).await } + AccountFacet::ZenlessZoneZero => { + // TODO: Import ZZZ Gacha Records + todo!("Import ZZZ Gacha Records") + } } } @@ -167,6 +197,10 @@ async fn export_gacha_records( let (primary, format) = match facet { AccountFacet::Genshin => ("原神祈愿记录", "UIGF"), AccountFacet::StarRail => ("星穹铁道跃迁记录", "SRGF"), + AccountFacet::ZenlessZoneZero => { + // TODO: Export ZZZ Gacha Records + todo!("Export ZZZ Gacha Records") + } }; let filename = format!( "{}_{}_{}_{uid}_{time}.json", @@ -205,6 +239,10 @@ async fn export_gacha_records( let srgf = srgf::SRGF::new(uid, lang, time_zone, &now, srgf_list)?; srgf.to_writer(writer, false)?; } + AccountFacet::ZenlessZoneZero => { + // TODO: Export ZZZ Gacha Records + todo!("Export ZZZ Gacha Records") + } } Ok(filename) diff --git a/src-tauri/src/storage/entity_account.rs b/src-tauri/src/storage/entity_account.rs index d2d033fe..bbc1725c 100644 --- a/src-tauri/src/storage/entity_account.rs +++ b/src-tauri/src/storage/entity_account.rs @@ -15,6 +15,9 @@ pub enum AccountFacet { #[sea_orm(string_value = "starrail")] #[serde(rename = "starrail")] StarRail, + #[sea_orm(string_value = "zzz")] + #[serde(rename = "zzz")] + ZenlessZoneZero, } #[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)] diff --git a/src-tauri/src/storage/entity_zzz_gacha_record.rs b/src-tauri/src/storage/entity_zzz_gacha_record.rs new file mode 100644 index 00000000..70c187da --- /dev/null +++ b/src-tauri/src/storage/entity_zzz_gacha_record.rs @@ -0,0 +1,67 @@ +use crate::gacha::ZenlessZoneZeroGachaRecord; +use sea_orm::entity::prelude::*; +use sea_orm::ActiveValue; + +#[derive(Clone, Debug, PartialEq, Eq, DeriveEntityModel)] +#[sea_orm(table_name = "zzz_gacha_records")] +pub struct Model { + #[sea_orm(primary_key, auto_increment = false)] + pub id: String, + #[sea_orm(indexed)] + pub uid: String, + #[sea_orm(indexed)] + pub gacha_id: String, + #[sea_orm(indexed)] + pub gacha_type: String, + #[sea_orm(indexed)] + pub item_id: String, + pub count: String, + pub time: String, + pub name: String, + pub lang: String, + pub item_type: String, + pub rank_type: String, +} + +#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] +pub enum Relation {} + +impl ActiveModelBehavior for ActiveModel {} + +/// Convert + +impl From for ActiveModel { + fn from(value: ZenlessZoneZeroGachaRecord) -> Self { + Self { + id: ActiveValue::set(value.id), + uid: ActiveValue::set(value.uid), + gacha_id: ActiveValue::set(value.gacha_id), + gacha_type: ActiveValue::set(value.gacha_type), + item_id: ActiveValue::set(value.item_id), + count: ActiveValue::set(value.count), + time: ActiveValue::set(value.time), + name: ActiveValue::set(value.name), + lang: ActiveValue::set(value.lang), + item_type: ActiveValue::set(value.item_type), + rank_type: ActiveValue::set(value.rank_type), + } + } +} + +impl From for ZenlessZoneZeroGachaRecord { + fn from(value: Model) -> Self { + Self { + id: value.id, + uid: value.uid, + gacha_id: value.gacha_id, + gacha_type: value.gacha_type, + item_id: value.item_id, + count: value.count, + time: value.time, + name: value.name, + lang: value.lang, + item_type: value.item_type, + rank_type: value.rank_type, + } + } +} diff --git a/src-tauri/src/storage/impl_storage.rs b/src-tauri/src/storage/impl_storage.rs index dd264670..ea84c2fe 100644 --- a/src-tauri/src/storage/impl_storage.rs +++ b/src-tauri/src/storage/impl_storage.rs @@ -10,12 +10,16 @@ use super::entity_starrail_gacha_record::{ ActiveModel as StarRailGachaRecordActiveModel, Column as StarRailGachaRecordColumn, Entity as StarRailGachaRecordEntity, }; +use super::entity_zzz_gacha_record::{ + ActiveModel as ZenlessZoneZeroGachaRecordActiveModel, Column as ZenlessZoneZeroGachaRecordColumn, + Entity as ZenlessZoneZeroGachaRecordEntity, +}; use super::utilities::{ create_index_statements, create_table_statement, execute_statements, is_constraint_unique_err, }; use crate::constants::DATABASE; use crate::error::{Error, Result}; -use crate::gacha::{GenshinGachaRecord, StarRailGachaRecord}; +use crate::gacha::{GenshinGachaRecord, StarRailGachaRecord, ZenlessZoneZeroGachaRecord}; use futures::TryStreamExt; use paste::paste; use sea_orm::sea_query::{Condition, Index, OnConflict}; @@ -77,18 +81,24 @@ impl Storage { debug!("Creating tables..."); let statement1 = create_table_statement(GenshinGachaRecordEntity); let statement2 = create_table_statement(StarRailGachaRecordEntity); - let statement3 = create_table_statement(AccountEntity); - execute_statements(&self.database, &[statement1, statement2, statement3]).await?; + let statement3 = create_table_statement(ZenlessZoneZeroGachaRecordEntity); + let statement4 = create_table_statement(AccountEntity); + execute_statements( + &self.database, + &[statement1, statement2, statement3, statement4], + ) + .await?; } { debug!("Creating indexes..."); let statement1 = create_index_statements(GenshinGachaRecordEntity); let statement2 = create_index_statements(StarRailGachaRecordEntity); - let statement3 = create_index_statements(AccountEntity); + let statement3 = create_index_statements(ZenlessZoneZeroGachaRecordEntity); + let statement4 = create_index_statements(AccountEntity); // Account: facet + uid constraint - let statement4 = Index::create() + let statement5 = Index::create() .name(&format!( "idx-{}-{}-{}", EntityName::table_name(&AccountEntity), @@ -105,7 +115,8 @@ impl Storage { let mut statements = statement1; statements.extend(statement2); statements.extend(statement3); - statements.push(statement4); + statements.extend(statement4); + statements.push(statement5); execute_statements(&self.database, &statements).await?; } @@ -371,6 +382,15 @@ impl_gacha_records_crud!( StarRailGachaRecordColumn ); +impl_gacha_records_crud!( + Storage, + zzz, + ZenlessZoneZeroGachaRecord, + ZenlessZoneZeroGachaRecordActiveModel, + ZenlessZoneZeroGachaRecordEntity, + ZenlessZoneZeroGachaRecordColumn +); + /// Tauri commands #[tauri::command] @@ -485,6 +505,7 @@ macro_rules! impl_gacha_records_tauri_command { impl_gacha_records_tauri_command!(genshin, GenshinGachaRecord); impl_gacha_records_tauri_command!(starrail, StarRailGachaRecord); +impl_gacha_records_tauri_command!(zzz, ZenlessZoneZeroGachaRecord); /// Tauri plugin @@ -536,7 +557,9 @@ impl StoragePluginBuilder { find_genshin_gacha_records, save_genshin_gacha_records, find_starrail_gacha_records, - save_starrail_gacha_records + save_starrail_gacha_records, + find_zzz_gacha_records, + save_zzz_gacha_records, ]) .build() } diff --git a/src-tauri/src/storage/mod.rs b/src-tauri/src/storage/mod.rs index 6b382552..c030c341 100644 --- a/src-tauri/src/storage/mod.rs +++ b/src-tauri/src/storage/mod.rs @@ -2,6 +2,7 @@ pub mod entity_account; pub mod entity_genshin_gacha_record; pub mod entity_genshin_gacha_record_legacy; pub mod entity_starrail_gacha_record; +pub mod entity_zzz_gacha_record; mod impl_storage; mod legacy_migration; diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index 6495e812..18c4727b 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -9,6 +9,7 @@ import Stack from '@mui/material/Stack' import Box from '@mui/material/Box' import Button, { ButtonTypeMap } from '@mui/material/Button' import Typography from '@mui/material/Typography' +import SvgIcon from '@mui/material/SvgIcon' import HomeIcon from '@mui/icons-material/Home' import StarIcon from '@mui/icons-material/Star' import DirectionsSubwayIcon from '@mui/icons-material/DirectionsSubway' @@ -42,7 +43,14 @@ type Nav = { title: string, href: string, icon?: React.ReactNode } const Navs: Nav[] = [ { title: '主页', href: '/', icon: }, { title: '祈愿', href: '/genshin', icon: }, - { title: '跃迁', href: '/starrail', icon: } + { title: '跃迁', href: '/starrail', icon: }, + { + title: '调频', + href: '/zzz', + icon: + + + } ] const NavSetting: Nav = @@ -84,7 +92,12 @@ const NavListItemButton = styled(Button, { paddingY: theme.spacing(0.5), display: 'inline-flex', flexDirection: 'column', - '& .MuiSvgIcon-root': { fontSize: '2rem' }, + '& .MuiSvgIcon-root': { + fontSize: '2rem', + '&.zzz': { + scale: '1.5' + } + }, ...(activated && { color: theme.palette.primary.main, backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity + 0.05), diff --git a/src/components/gacha/analysis/GachaAnalysisHistory.tsx b/src/components/gacha/analysis/GachaAnalysisHistory.tsx index 6f1e3c17..fc3c7caa 100644 --- a/src/components/gacha/analysis/GachaAnalysisHistory.tsx +++ b/src/components/gacha/analysis/GachaAnalysisHistory.tsx @@ -11,7 +11,7 @@ import Divider from '@mui/material/Divider' export default function GachaAnalysisHistory () { const { facet, gachaRecords } = useGachaLayoutContext() - const { namedValues: { character, weapon, permanent, newbie, anthology } } = gachaRecords + const { namedValues: { character, weapon, permanent, newbie, anthology, bangboo } } = gachaRecords return ( @@ -30,6 +30,9 @@ export default function GachaAnalysisHistory () { )} + {bangboo && bangboo.metadata.golden.sum > 0 && ( + + )} {newbie.metadata.golden.sum > 0 && ( )} diff --git a/src/components/gacha/analysis/GachaAnalysisSum.tsx b/src/components/gacha/analysis/GachaAnalysisSum.tsx index 3bcc22fa..47500620 100644 --- a/src/components/gacha/analysis/GachaAnalysisSum.tsx +++ b/src/components/gacha/analysis/GachaAnalysisSum.tsx @@ -5,10 +5,12 @@ import { SxProps, Theme } from '@mui/material/styles' import Box from '@mui/material/Box' import Stack from '@mui/material/Stack' import Typography from '@mui/material/Typography' +import { AccountFacet } from '@/interfaces/account' export default function GachaAnalysisSum () { - const { gachaRecords } = useGachaLayoutContext() - const { namedValues: { character, weapon, permanent, newbie, anthology }, aggregatedValues } = gachaRecords + const { facet, gachaRecords } = useGachaLayoutContext() + const { namedValues: { character, weapon, permanent, newbie, anthology, bangboo }, aggregatedValues } = gachaRecords + const isZZZ = facet === AccountFacet.ZenlessZoneZero return ( @@ -27,8 +29,12 @@ export default function GachaAnalysisSum () { {anthology && anthology.total > 0 && } + {bangboo && bangboo.total > 0 && } {newbie.total > 0 && } - + ) diff --git a/src/components/gacha/chart/GachaChartPie.tsx b/src/components/gacha/chart/GachaChartPie.tsx index 8070c6b4..55ba37dd 100644 --- a/src/components/gacha/chart/GachaChartPie.tsx +++ b/src/components/gacha/chart/GachaChartPie.tsx @@ -8,7 +8,13 @@ import Box from '@mui/material/Box' import Typography from '@mui/material/Typography' export default function GachaChartCalendar () { - const { facet, gachaRecords: { aggregatedValues, namedValues: { character, weapon, permanent, newbie, anthology } } } = useGachaLayoutContext() + const { + facet, + gachaRecords: { + aggregatedValues, + namedValues: { character, weapon, permanent, newbie, anthology, bangboo } + } + } = useGachaLayoutContext() const itemTypesData = aggregatedValues.values.reduce((acc, cur) => { const key = cur.item_type @@ -42,13 +48,25 @@ export default function GachaChartCalendar () { @@ -59,16 +77,31 @@ export default function GachaChartCalendar () { {...PieProps} arcLabelsSkipAngle={10} arcLinkLabelsSkipAngle={10} - data={[ - { id: '角色', value: character.total }, - { - id: facet === AccountFacet.Genshin ? '武器' : '光锥', - value: weapon.total - }, - { id: '常驻', value: permanent.total }, - { id: '新手', value: newbie.total }, - ...(anthology ? [{ id: '集录', value: anthology.total }] : []) - ]} + data={ + facet === AccountFacet.Genshin + ? [ + { id: '角色', value: character.total }, + { id: '武器', value: weapon.total }, + { id: '常驻', value: permanent.total }, + { id: '新手', value: newbie.total }, + { id: '集录', value: anthology?.total || 0 } + ] + : facet === AccountFacet.StarRail + ? [ + { id: '角色', value: character.total }, + { id: '光锥', value: weapon.total }, + { id: '常驻', value: permanent.total }, + { id: '新手', value: newbie.total } + ] + : facet === AccountFacet.ZenlessZoneZero + ? [ + { id: '独家', value: character.total }, + { id: '音擎', value: weapon.total }, + { id: '常驻', value: permanent.total }, + { id: '邦布', value: bangboo?.total || 0 } + ] + : [] + } /> diff --git a/src/components/gacha/overview/GachaOverviewGrid.tsx b/src/components/gacha/overview/GachaOverviewGrid.tsx index 8867edd7..14d051b4 100644 --- a/src/components/gacha/overview/GachaOverviewGrid.tsx +++ b/src/components/gacha/overview/GachaOverviewGrid.tsx @@ -13,8 +13,9 @@ import dayjs from '@/utilities/dayjs' export default function GachaOverviewGrid () { const { facet, gachaRecords } = useGachaLayoutContext() - const { namedValues: { character, weapon, permanent, newbie, anthology }, aggregatedValues } = gachaRecords + const { namedValues: { character, weapon, permanent, newbie, anthology, bangboo }, aggregatedValues } = gachaRecords const hasAnthology = !!anthology && anthology.total > 0 + const hasBangboo = facet === AccountFacet.ZenlessZoneZero && !!bangboo && bangboo.total > 0 return ( @@ -33,6 +34,11 @@ export default function GachaOverviewGrid () { )} + {hasBangboo && ( + + + + )} @@ -58,6 +64,7 @@ function GachaOverviewGridCard ({ facet, value, newbie }: { const newbieGoldenName = newbieGolden && `${newbieGolden.name}` const aggregated = category === 'aggregated' + const isZZZ = facet === AccountFacet.ZenlessZoneZero return ( @@ -67,7 +74,11 @@ function GachaOverviewGridCard ({ facet, value, newbie }: { {categoryTitle} - {aggregated && (包含新手)} + {aggregated && ( + + {isZZZ ? '(不含邦布)' : '(包含新手)'} + + )} {dayjs(firstTime).format('YYYY.MM.DD')} diff --git a/src/components/gacha/toolbar/GachaActionExport.tsx b/src/components/gacha/toolbar/GachaActionExport.tsx index 5f8192d2..56d71ef2 100644 --- a/src/components/gacha/toolbar/GachaActionExport.tsx +++ b/src/components/gacha/toolbar/GachaActionExport.tsx @@ -78,7 +78,8 @@ export default function GachaActionExport () { {{ [AccountFacet.Genshin]: UIGF 统一可交换祈愿记录标准 v2.2, - [AccountFacet.StarRail]: SRGF 星穹铁道抽卡记录标准 v1.0 + [AccountFacet.StarRail]: SRGF 星穹铁道抽卡记录标准 v1.0, + [AccountFacet.ZenlessZoneZero]: ? }[facet]} {/* diff --git a/src/components/gacha/toolbar/GachaActionImport.tsx b/src/components/gacha/toolbar/GachaActionImport.tsx index 0c6ab485..8f772864 100644 --- a/src/components/gacha/toolbar/GachaActionImport.tsx +++ b/src/components/gacha/toolbar/GachaActionImport.tsx @@ -29,7 +29,8 @@ export default function GachaActionImport () { extensions: ['json'], name: { [AccountFacet.Genshin]: 'UIGF 统一可交换祈愿记录标准 v2.2', - [AccountFacet.StarRail]: 'SRGF 星穹铁道抽卡记录标准 v1.0' + [AccountFacet.StarRail]: 'SRGF 星穹铁道抽卡记录标准 v1.0', + [AccountFacet.ZenlessZoneZero]: '?' }[selectedAccount.facet] }] }) diff --git a/src/hooks/useGachaRecordsFetcher.ts b/src/hooks/useGachaRecordsFetcher.ts index a7ce5e1e..e0c436dc 100644 --- a/src/hooks/useGachaRecordsFetcher.ts +++ b/src/hooks/useGachaRecordsFetcher.ts @@ -1,14 +1,14 @@ import React from 'react' import { event } from '@tauri-apps/api' import { useImmer } from 'use-immer' -import { GenshinGachaRecord, StarRailGachaRecord } from '@/interfaces/gacha' +import { GenshinGachaRecord, StarRailGachaRecord, ZenlessZoneZeroGachaRecord } from '@/interfaces/gacha' import PluginGacha from '@/utilities/plugin-gacha' type Fragment = 'sleeping' | { ready: string } | { pagination: number } | - { data: Array } | + { data: Array } | 'finished' export default function useGachaRecordsFetcher () { diff --git a/src/hooks/useGachaRecordsQuery.ts b/src/hooks/useGachaRecordsQuery.ts index 52cb7c07..e93d9231 100644 --- a/src/hooks/useGachaRecordsQuery.ts +++ b/src/hooks/useGachaRecordsQuery.ts @@ -3,10 +3,10 @@ import React from 'react' import { QueryKey, FetchQueryOptions, useQuery, useQueryClient } from '@tanstack/react-query' import { AccountFacet, Account, resolveCurrency } from '@/interfaces/account' -import { GenshinGachaRecord, StarRailGachaRecord } from '@/interfaces/gacha' +import { GenshinGachaRecord, StarRailGachaRecord, ZenlessZoneZeroGachaRecord } from '@/interfaces/gacha' import PluginStorage from '@/utilities/plugin-storage' -type GachaRecord = GenshinGachaRecord | StarRailGachaRecord +type GachaRecord = GenshinGachaRecord | StarRailGachaRecord | ZenlessZoneZeroGachaRecord // Computed Gacha Records // See below @@ -15,8 +15,9 @@ export interface GachaRecords { readonly uid: Account['uid'] readonly gachaTypeToCategoryMappings: Record readonly values: Partial> - readonly namedValues: Omit, 'anthology'> + readonly namedValues: Omit, 'anthology' | 'bangboo'> & { 'anthology'?: NamedGachaRecords } // Genshin Impact only + & { 'bangboo'?: NamedGachaRecords } // Zenless Zone Zero only readonly aggregatedValues: Omit readonly total: number readonly firstTime?: GachaRecord['time'] @@ -24,7 +25,7 @@ export interface GachaRecords { } export interface NamedGachaRecords { - category: 'newbie' | 'permanent' | 'character' | 'weapon' | 'anthology' + category: 'newbie' | 'permanent' | 'character' | 'weapon' | 'anthology' | 'bangboo' categoryTitle: string gachaType: GachaRecord['gacha_type'] lastEndId?: GachaRecord['id'] @@ -63,6 +64,60 @@ const gachaRecordsQueryFn: FetchQueryOptions['queryFn'] = a } const rawGachaRecords: GachaRecord[] = await PluginStorage.findGachaRecords(facet, { uid }) + + // FIXME: FAKE TEST + if (facet === AccountFacet.ZenlessZoneZero) { + const fake = [] + for (let i = 0; i < 35; i++) { + fake.push({ + id: i.toString(), + uid: '100_000_000', + gacha_id: 'idk', + gacha_type: '2001', + item_id: 'idk', + count: '1', + time: '2024-07-02 12:00:00', + name: i.toString(), + lang: 'zh-cn', + item_type: i > 0 && i % 10 === 0 ? '代理人' : '音擎', + rank_type: i > 0 && i % 10 === 0 ? '4' : '3' + }) + } + + rawGachaRecords.push(...[ + ...fake, + { + id: (fake.length + 1).toString(), + uid: '100_000_000', + gacha_id: 'idk', + gacha_type: '2001', + item_id: 'idk', + count: '1', + time: '2024-07-02 12:00:00', + name: '艾莲', + lang: 'zh-cn', + item_type: '代理人', + rank_type: '5' + } + ]) + rawGachaRecords.push(...[ + { + id: (rawGachaRecords.length + 1).toString(), + uid: '100_000_000', + gacha_id: 'idk', + gacha_type: '5001', + item_id: 'idk', + count: '1', + time: '2024-07-02 12:00:00', + name: '邦布', + lang: 'zh-cn', + item_type: '邦布', + rank_type: '5' + } + ]) + } + // + return computeGachaRecords(facet, uid, rawGachaRecords) } @@ -156,8 +211,18 @@ const KnownStarRailGachaTypes: Record = { + 0: 'newbie', // Avoid undefined metadata + 1001: 'permanent', + 2001: 'character', + 3001: 'weapon', + 4001: 'bangboo', // TODO: deprecated? + 5001: 'bangboo' +} + const KnownCategoryTitles: Record> = { [AccountFacet.Genshin]: { + bangboo: '', // Useless anthology: '集录', character: '角色活动', weapon: '武器活动', @@ -165,11 +230,20 @@ const KnownCategoryTitles: Record + switch (facet) { + case AccountFacet.Genshin: + categories = KnownGenshinGachaTypes + break + case AccountFacet.StarRail: + categories = KnownStarRailGachaTypes + break + case AccountFacet.ZenlessZoneZero: + categories = KnownZenlessZoneZeroGachaTypes + break + default: + throw new Error(`Unsupported account facet: ${facet}`) + } + return Object .entries(categories) .reduce((acc, [gachaType, category]) => { @@ -383,6 +471,9 @@ function isRestrictedGolden ( return !KnownGenshinPermanentGoldenNames.includes(record.name) case AccountFacet.StarRail: return !KnownStarRailPermanentGoldenItemIds.includes(record.item_id) + case AccountFacet.ZenlessZoneZero: + // FIXME: TODO zzz isRestrictedGolden + return false default: throw new Error(`Unknown facet: ${facet}`) } diff --git a/src/interfaces/account.ts b/src/interfaces/account.ts index ebfcc508..fcec6495 100644 --- a/src/interfaces/account.ts +++ b/src/interfaces/account.ts @@ -4,7 +4,8 @@ export enum AccountFacet { Genshin = 'genshin', - StarRail = 'starrail' + StarRail = 'starrail', + ZenlessZoneZero = 'zzz' } export interface KnownAccountProperties { @@ -30,13 +31,20 @@ export function resolveAccountDisplayName (facet: AccountFacet, account: Account } // TODO: Default display name i18n - return account?.properties?.displayName || ( - facet === AccountFacet.Genshin - ? '旅行者' - : facet === AccountFacet.StarRail - ? '开拓者' - : 'NULL' - ) + if (account?.properties?.displayName) { + return account.properties.displayName + } else { + switch (facet) { + case AccountFacet.Genshin: + return '旅行者' + case AccountFacet.StarRail: + return '开拓者' + case AccountFacet.ZenlessZoneZero: + return '绳匠' + default: + return 'NULL' + } + } } // TODO: i18n @@ -46,6 +54,8 @@ export function resolveCurrency (facet: AccountFacet): { currency: string, actio return { currency: '原石', action: '祈愿' } case AccountFacet.StarRail: return { currency: '星琼', action: '跃迁' } + case AccountFacet.ZenlessZoneZero: + return { currency: '菲林', action: '调频' } default: throw new Error(`Unknown account facet: ${facet}`) } diff --git a/src/interfaces/gacha.ts b/src/interfaces/gacha.ts index 697fd59c..6d46e971 100644 --- a/src/interfaces/gacha.ts +++ b/src/interfaces/gacha.ts @@ -28,3 +28,18 @@ export interface StarRailGachaRecord { item_type: string // 角色 | 光锥 rank_type: string // 3 | 4 | 5 } + +// See: src-tauri/src/gacha/impl_zzz.rs +export interface ZenlessZoneZeroGachaRecord { + id: string + uid: string + gacha_id: string + gacha_type: string // 1001 | 2001 | 3001 | 4001 | 5001 + item_id: string + count: string // always 1 + time: string + name: string + lang: string // zh-cn + item_type: string // 独家 ? 代理人 | 音擎 + rank_type: string // 3 | 4 | 5 +} diff --git a/src/router.tsx b/src/router.tsx index bf9c68d9..0b074ddb 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -6,6 +6,7 @@ import Root from '@/routes/root' import Index from '@/routes/index' import Genshin, { loader as genshinLoader } from '@/routes/genshin' import StarRail, { loader as starrailLoader } from '@/routes/starrail' +import ZenlessZoneZero, { loader as zzzLoader } from '@/routes/zzz' import Setting from '@/routes/setting' const router = createBrowserRouter([ @@ -25,6 +26,11 @@ const router = createBrowserRouter([ element: , loader: starrailLoader(queryClient) }, + { + path: '/zzz', + element: , + loader: zzzLoader(queryClient) + }, { path: '/setting', element: diff --git a/src/routes/zzz.tsx b/src/routes/zzz.tsx new file mode 100644 index 00000000..dba9a774 --- /dev/null +++ b/src/routes/zzz.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import { AccountFacet } from '@/interfaces/account' +import { createStatefulAccountLoader, withStatefulAccount } from '@/hooks/useStatefulAccount' +import Layout from '@/components/Layout' +import AccountMenu from '@/components/account/AccountMenu' +import GachaLayout from '@/components/gacha/GachaLayout' + +export const loader = createStatefulAccountLoader(AccountFacet.ZenlessZoneZero) + +export default withStatefulAccount(AccountFacet.ZenlessZoneZero, function ZenlessZoneZero () { + return ( + }> + + + ) +}) diff --git a/src/utilities/plugin-gacha.ts b/src/utilities/plugin-gacha.ts index dbf0537c..da4c0bf6 100644 --- a/src/utilities/plugin-gacha.ts +++ b/src/utilities/plugin-gacha.ts @@ -1,5 +1,5 @@ import { Account, AccountFacet } from '@/interfaces/account' -import { GenshinGachaRecord, StarRailGachaRecord } from '@/interfaces/gacha' +import { GenshinGachaRecord, StarRailGachaRecord, ZenlessZoneZeroGachaRecord } from '@/interfaces/gacha' import invoke from '@/utilities/invoke' export async function findGameDataDirectories (facet: AccountFacet): Promise { @@ -20,8 +20,8 @@ export async function pullAllGachaRecords ( payload: { gachaUrl: string gachaTypeAndLastEndIdMappings: Record< - GenshinGachaRecord['gacha_type'] | StarRailGachaRecord['gacha_type'], - GenshinGachaRecord['id'] | StarRailGachaRecord['id'] | null + GenshinGachaRecord['gacha_type'] | StarRailGachaRecord['gacha_type'] | ZenlessZoneZeroGachaRecord['gacha_type'], + GenshinGachaRecord['id'] | StarRailGachaRecord['id'] | ZenlessZoneZeroGachaRecord['id'] | null > eventChannel: string saveToStorage?: boolean diff --git a/src/utilities/plugin-storage.ts b/src/utilities/plugin-storage.ts index 60979a29..6a909982 100644 --- a/src/utilities/plugin-storage.ts +++ b/src/utilities/plugin-storage.ts @@ -1,5 +1,5 @@ import { AccountFacet, Account } from '@/interfaces/account' -import { GenshinGachaRecord, StarRailGachaRecord } from '@/interfaces/gacha' +import { GenshinGachaRecord, StarRailGachaRecord, ZenlessZoneZeroGachaRecord } from '@/interfaces/gacha' import invoke from '@/utilities/invoke' export type AccountUid = Account['uid'] @@ -7,7 +7,7 @@ export type CreateAccountPayload = Omit export type FindGachaRecordsPayload = { uid: AccountUid - gachaType?: GenshinGachaRecord['gacha_type'] | StarRailGachaRecord['gacha_type'] + gachaType?: GenshinGachaRecord['gacha_type'] | StarRailGachaRecord['gacha_type'] | ZenlessZoneZeroGachaRecord['gacha_type'] limit?: number } @@ -54,29 +54,13 @@ export async function deleteAccount (facet: AccountFacet, uid: AccountUid): Prom export async function findGachaRecords ( facet: AccountFacet, payload: FindGachaRecordsPayload -): Promise> -export async function findGachaRecords ( - facet: AccountFacet, - payload: FindGachaRecordsPayload -): Promise> -export async function findGachaRecords ( - facet: AccountFacet, - payload: FindGachaRecordsPayload -): Promise> { +): Promise> { return invoke(`plugin:storage|find_${facet}_gacha_records`, payload) } -export async function saveGachaRecords ( - facet: AccountFacet.Genshin, - records: Array -): Promise -export async function saveGachaRecords ( - facet: AccountFacet.StarRail, - records: Array -): Promise export async function saveGachaRecords ( facet: AccountFacet, - records: Array + records: Array ): Promise { return invoke(`plugin:storage|save_${facet}_gacha_records`, { records }) } From 507f11ac92474a86f77c1567b0a0c2de35b0b889 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Tue, 2 Jul 2024 14:42:36 +0800 Subject: [PATCH 02/14] chore: fix typo --- src/components/gacha/chart/GachaChartPie.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/gacha/chart/GachaChartPie.tsx b/src/components/gacha/chart/GachaChartPie.tsx index 55ba37dd..f418de9e 100644 --- a/src/components/gacha/chart/GachaChartPie.tsx +++ b/src/components/gacha/chart/GachaChartPie.tsx @@ -52,7 +52,7 @@ export default function GachaChartCalendar () { facet === AccountFacet.Genshin ? [ { id: '角色', value: itemTypesData['角色'] || 0 }, - { id: '光锥', value: itemTypesData['光锥'] || 0 } + { id: '武器', value: itemTypesData['武器'] || 0 } ] : facet === AccountFacet.StarRail ? [ From 9f81fc79bf9bfb20054a694e5fed1d4edff76402 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Tue, 2 Jul 2024 21:16:25 +0800 Subject: [PATCH 03/14] chore: update grid for gacha overview --- src/components/gacha/overview/GachaOverviewGrid.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/gacha/overview/GachaOverviewGrid.tsx b/src/components/gacha/overview/GachaOverviewGrid.tsx index 14d051b4..0d19c72b 100644 --- a/src/components/gacha/overview/GachaOverviewGrid.tsx +++ b/src/components/gacha/overview/GachaOverviewGrid.tsx @@ -39,7 +39,7 @@ export default function GachaOverviewGrid () { )} - + From fa5bac2a280ed21d75b1dd2a9820e48330c90db6 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Thu, 4 Jul 2024 14:17:55 +0800 Subject: [PATCH 04/14] feat: add support zenless --- src-tauri/src/gacha/impl_genshin.rs | 8 +- src-tauri/src/gacha/impl_starrail.rs | 8 +- src-tauri/src/gacha/impl_zzz.rs | 8 +- src-tauri/src/gacha/utilities.rs | 14 ++- src/components/account/AccountMenuDialog.tsx | 17 +++- .../gacha/analysis/GachaAnalysisHistory.tsx | 2 +- src/components/gacha/icons.tsx | 3 +- .../gacha/overview/GachaOverviewGrid.tsx | 2 +- .../gacha/overview/GachaOverviewTags.tsx | 2 +- .../gacha/toolbar/GachaActionFetch.tsx | 6 +- src/components/gacha/toolbar/index.tsx | 12 ++- src/hooks/useGachaRecordsQuery.ts | 92 +++++-------------- src/interfaces/gacha.ts | 6 +- 13 files changed, 88 insertions(+), 92 deletions(-) diff --git a/src-tauri/src/gacha/impl_genshin.rs b/src-tauri/src/gacha/impl_genshin.rs index 28905c0c..517775e1 100644 --- a/src-tauri/src/gacha/impl_genshin.rs +++ b/src-tauri/src/gacha/impl_genshin.rs @@ -7,6 +7,7 @@ use super::{ GameDataDirectoryFinder, }; use crate::error::Result; +use crate::storage::entity_account::AccountFacet; use async_trait::async_trait; use reqwest::Client as Reqwest; use serde::{Deserialize, Serialize}; @@ -114,7 +115,12 @@ impl GachaRecordFetcher for GenshinGacha { end_id: Option<&str>, ) -> Result>> { let response = fetch_gacha_records::( - reqwest, ENDPOINT, gacha_url, gacha_type, end_id, + reqwest, + &AccountFacet::Genshin, + ENDPOINT, + gacha_url, + gacha_type, + end_id, ) .await?; diff --git a/src-tauri/src/gacha/impl_starrail.rs b/src-tauri/src/gacha/impl_starrail.rs index 672745c4..40610646 100644 --- a/src-tauri/src/gacha/impl_starrail.rs +++ b/src-tauri/src/gacha/impl_starrail.rs @@ -7,6 +7,7 @@ use super::{ GameDataDirectoryFinder, }; use crate::error::Result; +use crate::storage::entity_account::AccountFacet; use async_trait::async_trait; use reqwest::Client as Reqwest; use serde::{Deserialize, Serialize}; @@ -116,7 +117,12 @@ impl GachaRecordFetcher for StarRailGacha { end_id: Option<&str>, ) -> Result>> { let response = fetch_gacha_records::( - reqwest, ENDPOINT, gacha_url, gacha_type, end_id, + reqwest, + &AccountFacet::StarRail, + ENDPOINT, + gacha_url, + gacha_type, + end_id, ) .await?; diff --git a/src-tauri/src/gacha/impl_zzz.rs b/src-tauri/src/gacha/impl_zzz.rs index a8bb0239..77ca2846 100644 --- a/src-tauri/src/gacha/impl_zzz.rs +++ b/src-tauri/src/gacha/impl_zzz.rs @@ -7,6 +7,7 @@ use super::{ GameDataDirectoryFinder, }; use crate::error::Result; +use crate::storage::entity_account::AccountFacet; use async_trait::async_trait; use reqwest::Client as Reqwest; use serde::{Deserialize, Serialize}; @@ -116,7 +117,12 @@ impl GachaRecordFetcher for ZenlessZoneZeroGacha { end_id: Option<&str>, ) -> Result>> { let response = fetch_gacha_records::( - reqwest, ENDPOINT, gacha_url, gacha_type, end_id, + reqwest, + &AccountFacet::ZenlessZoneZero, + ENDPOINT, + gacha_url, + gacha_type, + end_id, ) .await?; diff --git a/src-tauri/src/gacha/utilities.rs b/src-tauri/src/gacha/utilities.rs index 96325cee..92ce907c 100644 --- a/src-tauri/src/gacha/utilities.rs +++ b/src-tauri/src/gacha/utilities.rs @@ -253,6 +253,7 @@ pub(super) struct GachaResponse { pub(super) async fn fetch_gacha_records( reqwest: &Reqwest, + facet: &AccountFacet, endpoint: &str, gacha_url: &str, gacha_type: Option<&str>, @@ -266,14 +267,21 @@ pub(super) async fn fetch_gacha_records( .into_owned() .collect(); + let gacha_type_field: &'static str = if facet == &AccountFacet::ZenlessZoneZero { + "real_gacha_type" + } else { + "gacha_type" + }; + let origin_gacha_type = queries - .get("gacha_type") + .get(gacha_type_field) .cloned() .ok_or(Error::IllegalGachaUrl)?; + let origin_end_id = queries.get("end_id").cloned(); let gacha_type = gacha_type.unwrap_or(&origin_gacha_type); - queries.remove("gacha_type"); + queries.remove(gacha_type_field); queries.remove("page"); queries.remove("size"); queries.remove("begin_id"); @@ -285,7 +293,7 @@ pub(super) async fn fetch_gacha_records( .query_pairs_mut() .append_pair("page", "1") .append_pair("size", "20") - .append_pair("gacha_type", gacha_type); + .append_pair(gacha_type_field, gacha_type); if let Some(end_id) = end_id.or(origin_end_id.as_deref()) { url.query_pairs_mut().append_pair("end_id", end_id); diff --git a/src/components/account/AccountMenuDialog.tsx b/src/components/account/AccountMenuDialog.tsx index aa990dc0..08f80434 100644 --- a/src/components/account/AccountMenuDialog.tsx +++ b/src/components/account/AccountMenuDialog.tsx @@ -207,7 +207,9 @@ function AccountMenuDialogForm (props: AccountMenuDialogFormProps) { const onSubmit = React.useCallback>(async (data) => { const uid = Number(data.uid) - if (uid < 1_0000_0000) { + + const isZZZ = facet === AccountFacet.ZenlessZoneZero + if ((isZZZ && uid < 10_000_000) || (!isZZZ && uid < 100_000_000)) { setError('uid', { message: '请输入正确的 UID 值!' }) return } @@ -227,7 +229,7 @@ function AccountMenuDialogForm (props: AccountMenuDialogFormProps) { } finally { setBusy(false) } - }, [setBusy, onSuccess, setError, isEdit, handleCreateAccount, handleUpdateAccount]) + }, [facet, setBusy, onSuccess, setError, isEdit, handleCreateAccount, handleUpdateAccount]) return (
@@ -241,7 +243,13 @@ function AccountMenuDialogForm (props: AccountMenuDialogFormProps) { InputProps={{ ...register('uid', { required: '请填写账号 UID 字段!', - validate: value => /^[1-9][0-9]{8}$/.test(value) || '请输入正确的 UID 值!' + validate: value => { + const isZZZ = facet === AccountFacet.ZenlessZoneZero + return (isZZZ + ? +value >= 10_000_000 + : /^[1-9][0-9]{8}$/.test(value) + ) || '请输入正确的 UID 值!' + } }), onKeyPress: numericOnly, startAdornment: ( @@ -311,7 +319,8 @@ function AccountMenuDialogForm (props: AccountMenuDialogFormProps) { const FacetGameDataDirExamples: Record = { [AccountFacet.Genshin]: 'D:/Genshin Impact/Genshin Impact Game/YuanShen_Data', - [AccountFacet.StarRail]: 'D:/StarRail/Game/StarRail_Data' + [AccountFacet.StarRail]: 'D:/StarRail/Game/StarRail_Data', + [AccountFacet.ZenlessZoneZero]: 'D:/ZenlessZoneZero Game/ZenlessZoneZero_Data' } function numericOnly (evt: React.KeyboardEvent) { diff --git a/src/components/gacha/analysis/GachaAnalysisHistory.tsx b/src/components/gacha/analysis/GachaAnalysisHistory.tsx index fc3c7caa..310db936 100644 --- a/src/components/gacha/analysis/GachaAnalysisHistory.tsx +++ b/src/components/gacha/analysis/GachaAnalysisHistory.tsx @@ -66,7 +66,7 @@ function GachaAnalysisHistoryList ({ facet, value }: { key={item.id} name={item.name} id={item.item_id || item.name} - isWeapon={item.item_type === '武器' || item.item_type === '光锥'} + isWeapon={item.item_type === '武器' || item.item_type === '光锥' || item.item_type === '音擎'} rank={5} size={GachaAnalysisHistoryItemViewSize} usedPity={item.usedPity} diff --git a/src/components/gacha/icons.tsx b/src/components/gacha/icons.tsx index 3236fbc0..35ae086d 100644 --- a/src/components/gacha/icons.tsx +++ b/src/components/gacha/icons.tsx @@ -311,7 +311,8 @@ const StarRail = { const Assets = { genshin: Genshin, - starrail: StarRail + starrail: StarRail, + zzz: {} // TODO: wait a minute } export function lookupAssetIcon ( diff --git a/src/components/gacha/overview/GachaOverviewGrid.tsx b/src/components/gacha/overview/GachaOverviewGrid.tsx index 0d19c72b..e9d095a8 100644 --- a/src/components/gacha/overview/GachaOverviewGrid.tsx +++ b/src/components/gacha/overview/GachaOverviewGrid.tsx @@ -111,7 +111,7 @@ function GachaOverviewGridCard ({ facet, value, newbie }: { key={lastGolden.id} name={lastGolden.name} id={lastGolden.item_id || lastGolden.name} - isWeapon={lastGolden.item_type === '武器' || lastGolden.item_type === '光锥'} + isWeapon={lastGolden.item_type === '武器' || lastGolden.item_type === '光锥' || lastGolden.item_type === '音擎'} rank={5} size={72} usedPity={lastGolden.usedPity} diff --git a/src/components/gacha/overview/GachaOverviewTags.tsx b/src/components/gacha/overview/GachaOverviewTags.tsx index 32fe7b98..1701c054 100644 --- a/src/components/gacha/overview/GachaOverviewTags.tsx +++ b/src/components/gacha/overview/GachaOverviewTags.tsx @@ -44,7 +44,7 @@ export default function GachaOverviewTags () { return { luck: luck ? { name: luck.name, total: luck.usedPity } : null, - unluck: unluck ? { name: unluck.name, total: unluck.usedPity } : null, + unluck: aggregatedValues.metadata.golden.sum > 1 && unluck ? { name: unluck.name, total: unluck.usedPity } : null, related: related && related[1].length > 1 ? { name: related[0], total: related[1].length } : null, crazy: crazy ? { name: crazy.day, total: crazy.value } : null } diff --git a/src/components/gacha/toolbar/GachaActionFetch.tsx b/src/components/gacha/toolbar/GachaActionFetch.tsx index 96cb7ffd..8c56a4c3 100644 --- a/src/components/gacha/toolbar/GachaActionFetch.tsx +++ b/src/components/gacha/toolbar/GachaActionFetch.tsx @@ -35,7 +35,7 @@ export default function GachaActionFetch () { const { facet, uid, gachaUrl } = selectedAccount try { - const { namedValues: { character, weapon, permanent, newbie, anthology } } = gachaRecords + const { namedValues: { character, weapon, permanent, newbie, anthology, bangboo } } = gachaRecords const pullNewbie = shouldPullNewbie(facet, newbie) const fragments = await pull(facet, uid, { gachaUrl, @@ -44,6 +44,7 @@ export default function GachaActionFetch () { [weapon.gachaType]: weapon.lastEndId ?? null, [permanent.gachaType]: permanent.lastEndId ?? null, ...(anthology ? { [anthology.gachaType]: anthology.lastEndId ?? null } : {}), + ...(bangboo ? { [bangboo.gachaType]: bangboo.lastEndId ?? null } : {}), ...(pullNewbie || {}) }, eventChannel: 'gachaRecords-fetcher-event-channel', @@ -150,10 +151,13 @@ function shouldPullNewbie ( // HACK: // Genshin Impact : Newbie Gacha Pool = 20 times // Honkai: Star Rail : = 50 times + // Zenless Zone Zero : Useless if (facet === AccountFacet.Genshin && newbie.total >= 20) { return null } else if (facet === AccountFacet.StarRail && newbie.total >= 50) { return null + } else if (facet === AccountFacet.ZenlessZoneZero) { + return null } else { return { [newbie.gachaType]: newbie.lastEndId ?? null diff --git a/src/components/gacha/toolbar/index.tsx b/src/components/gacha/toolbar/index.tsx index 4e42c8e1..b31f6652 100644 --- a/src/components/gacha/toolbar/index.tsx +++ b/src/components/gacha/toolbar/index.tsx @@ -13,17 +13,19 @@ export interface GachaToolbarProps { } export default function GachaToolbar (props: GachaToolbarProps) { - const { ActionTabsProps } = props + const { facet, ActionTabsProps } = props return ( - - - - + {facet !== AccountFacet.ZenlessZoneZero && ( + + + + + )} ) diff --git a/src/hooks/useGachaRecordsQuery.ts b/src/hooks/useGachaRecordsQuery.ts index e93d9231..3a8cf587 100644 --- a/src/hooks/useGachaRecordsQuery.ts +++ b/src/hooks/useGachaRecordsQuery.ts @@ -64,60 +64,6 @@ const gachaRecordsQueryFn: FetchQueryOptions['queryFn'] = a } const rawGachaRecords: GachaRecord[] = await PluginStorage.findGachaRecords(facet, { uid }) - - // FIXME: FAKE TEST - if (facet === AccountFacet.ZenlessZoneZero) { - const fake = [] - for (let i = 0; i < 35; i++) { - fake.push({ - id: i.toString(), - uid: '100_000_000', - gacha_id: 'idk', - gacha_type: '2001', - item_id: 'idk', - count: '1', - time: '2024-07-02 12:00:00', - name: i.toString(), - lang: 'zh-cn', - item_type: i > 0 && i % 10 === 0 ? '代理人' : '音擎', - rank_type: i > 0 && i % 10 === 0 ? '4' : '3' - }) - } - - rawGachaRecords.push(...[ - ...fake, - { - id: (fake.length + 1).toString(), - uid: '100_000_000', - gacha_id: 'idk', - gacha_type: '2001', - item_id: 'idk', - count: '1', - time: '2024-07-02 12:00:00', - name: '艾莲', - lang: 'zh-cn', - item_type: '代理人', - rank_type: '5' - } - ]) - rawGachaRecords.push(...[ - { - id: (rawGachaRecords.length + 1).toString(), - uid: '100_000_000', - gacha_id: 'idk', - gacha_type: '5001', - item_id: 'idk', - count: '1', - time: '2024-07-02 12:00:00', - name: '邦布', - lang: 'zh-cn', - item_type: '邦布', - rank_type: '5' - } - ]) - } - // - return computeGachaRecords(facet, uid, rawGachaRecords) } @@ -213,11 +159,11 @@ const KnownStarRailGachaTypes: Record = { 0: 'newbie', // Avoid undefined metadata - 1001: 'permanent', - 2001: 'character', - 3001: 'weapon', - 4001: 'bangboo', // TODO: deprecated? - 5001: 'bangboo' + 1: 'permanent', + 2: 'character', + 3: 'weapon', + 4: 'bangboo', // TODO: deprecated? + 5: 'bangboo' } const KnownCategoryTitles: Record> = { @@ -247,9 +193,13 @@ const KnownCategoryTitles: Record record.rank_type === '3' -const isRankTypeOfPurple = (record: GachaRecord) => record.rank_type === '4' -const isRankTypeOfGolden = (record: GachaRecord) => record.rank_type === '5' +const isRankTypeOfBlue = (facet: AccountFacet, record: GachaRecord) => + record.rank_type === (facet === AccountFacet.ZenlessZoneZero ? '2' : '3') +const isRankTypeOfPurple = (facet: AccountFacet, record: GachaRecord) => + record.rank_type === (facet === AccountFacet.ZenlessZoneZero ? '3' : '4') +const isRankTypeOfGolden = (facet: AccountFacet, record: GachaRecord) => + record.rank_type === (facet === AccountFacet.ZenlessZoneZero ? '4' : '5') + const sortGachaRecordById = (a: GachaRecord, b: GachaRecord) => a.id.localeCompare(b.id) function concatNamedGachaRecordsValues ( @@ -300,8 +250,8 @@ function computeNamedGachaRecords ( const firstTime = data[0]?.time const lastTime = data[total - 1]?.time const metadata: NamedGachaRecords['metadata'] = { - blue: computeGachaRecordsMetadata(total, data.filter(isRankTypeOfBlue)), - purple: computeGachaRecordsMetadata(total, data.filter(isRankTypeOfPurple)), + blue: computeGachaRecordsMetadata(total, data.filter((v) => isRankTypeOfBlue(facet, v))), + purple: computeGachaRecordsMetadata(total, data.filter((v) => isRankTypeOfPurple(facet, v))), golden: computeGoldenGachaRecordsMetadata(facet, data) } @@ -338,7 +288,7 @@ function computeAggregatedGachaRecords ( (anthology ? anthology.metadata.blue.sum : 0) const blueSumPercentage = blueSum > 0 ? Math.round(blueSum / total * 10000) / 100 : 0 - const blueValues = data.filter(isRankTypeOfBlue) + const blueValues = data.filter((v) => isRankTypeOfBlue(facet, v)) const purpleSum = newbie.metadata.purple.sum + @@ -348,7 +298,7 @@ function computeAggregatedGachaRecords ( (anthology ? anthology.metadata.purple.sum : 0) const purpleSumPercentage = purpleSum > 0 ? Math.round(purpleSum / total * 10000) / 100 : 0 - const purpleValues = data.filter(isRankTypeOfPurple) + const purpleValues = data.filter((v) => isRankTypeOfPurple(facet, v)) const goldenSum = newbie.metadata.golden.sum + @@ -431,7 +381,7 @@ function computeGoldenGachaRecordsMetadata ( let sumRestricted = 0 for (const record of values) { - const isGolden = isRankTypeOfGolden(record) + const isGolden = isRankTypeOfGolden(facet, record) pity += 1 if (isGolden) { @@ -472,8 +422,7 @@ function isRestrictedGolden ( case AccountFacet.StarRail: return !KnownStarRailPermanentGoldenItemIds.includes(record.item_id) case AccountFacet.ZenlessZoneZero: - // FIXME: TODO zzz isRestrictedGolden - return false + return !KnownZenlessZoneZeroPermanentGoldenItemIds.includes(record.item_id) default: throw new Error(`Unknown facet: ${facet}`) } @@ -492,3 +441,8 @@ const KnownStarRailPermanentGoldenItemIds: string[] = [ '1003', '1004', '1101', '1104', '1107', '1209', '1211', '23000', '23002', '23003', '23004', '23005', '23012', '23013' ] + +// TODO: wait a minute +const KnownZenlessZoneZeroPermanentGoldenItemIds: string[] = [ + '1211' +] diff --git a/src/interfaces/gacha.ts b/src/interfaces/gacha.ts index 6d46e971..7ea8b078 100644 --- a/src/interfaces/gacha.ts +++ b/src/interfaces/gacha.ts @@ -34,12 +34,12 @@ export interface ZenlessZoneZeroGachaRecord { id: string uid: string gacha_id: string - gacha_type: string // 1001 | 2001 | 3001 | 4001 | 5001 + gacha_type: string // 1 | 2 | 3 | 4 | 5 item_id: string count: string // always 1 time: string name: string lang: string // zh-cn - item_type: string // 独家 ? 代理人 | 音擎 - rank_type: string // 3 | 4 | 5 + item_type: string // 代理人 | 音擎 + rank_type: string // 2 | 3 | 4 } From 93a450483522b89c0b471eae4088c5d8f4247189 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 09:53:18 +0800 Subject: [PATCH 05/14] feat: perfecting the bangboo pool --- .../gacha/chart/GachaChartCalendar.tsx | 31 +++++++++------- src/components/gacha/chart/GachaChartPie.tsx | 36 ++++++++++++------- .../gacha/overview/GachaOverviewTags.tsx | 9 +++-- .../gacha/overview/GachaOverviewTooltips.tsx | 4 +-- src/hooks/useGachaRecordsQuery.ts | 12 ++++--- 5 files changed, 58 insertions(+), 34 deletions(-) diff --git a/src/components/gacha/chart/GachaChartCalendar.tsx b/src/components/gacha/chart/GachaChartCalendar.tsx index 79114aca..e3687de1 100644 --- a/src/components/gacha/chart/GachaChartCalendar.tsx +++ b/src/components/gacha/chart/GachaChartCalendar.tsx @@ -1,6 +1,7 @@ import React from 'react' import { useTheme } from '@mui/material/styles' import { resolveCurrency } from '@/interfaces/account' +import { isRankTypeOfBlue, isRankTypeOfPurple, isRankTypeOfGolden } from '@/hooks/useGachaRecordsQuery' import { useGachaLayoutContext } from '@/components/gacha/GachaLayoutContext' import { CalendarDatum, ResponsiveTimeRange } from '@nivo/calendar' import Stack from '@mui/material/Stack' @@ -10,19 +11,23 @@ import Typography from '@mui/material/Typography' import dayjs from '@/utilities/dayjs' export default function GachaChartCalendar () { - const { facet, gachaRecords: { aggregatedValues } } = useGachaLayoutContext() + const { facet, gachaRecords: { aggregatedValues, namedValues: { bangboo } } } = useGachaLayoutContext() const { action: currencyAction } = resolveCurrency(facet) const calendars = Object - .entries(aggregatedValues.values.reduce((acc, cur) => { - const key = dayjs(cur.time).format('YYYY-MM-DD') - if (!acc[key]) { - acc[key] = 1 - } else { - acc[key] += 1 - } - return acc - }, {} as Record)) + .entries(Array + .from(aggregatedValues.values) + .concat(bangboo?.values || []) + .reduce((acc, cur) => { + const key = dayjs(cur.time).format('YYYY-MM-DD') + if (!acc[key]) { + acc[key] = 1 + } else { + acc[key] += 1 + } + return acc + }, {} as Record) + ) .reduce((acc, [key, value]) => { acc.push({ day: key, value }) return acc @@ -35,11 +40,11 @@ export default function GachaChartCalendar () { if (!metadataByDay[day]) { metadataByDay[day] = { golden: 0, purple: 0, blue: 0 } } - if (record.rank_type === '5') { + if (isRankTypeOfGolden(facet, record)) { metadataByDay[day].golden += 1 - } else if (record.rank_type === '4') { + } else if (isRankTypeOfPurple(facet, record)) { metadataByDay[day].purple += 1 - } else if (record.rank_type === '3') { + } else if (isRankTypeOfBlue(facet, record)) { metadataByDay[day].blue += 1 } } diff --git a/src/components/gacha/chart/GachaChartPie.tsx b/src/components/gacha/chart/GachaChartPie.tsx index f418de9e..650530e1 100644 --- a/src/components/gacha/chart/GachaChartPie.tsx +++ b/src/components/gacha/chart/GachaChartPie.tsx @@ -16,15 +16,18 @@ export default function GachaChartCalendar () { } } = useGachaLayoutContext() - const itemTypesData = aggregatedValues.values.reduce((acc, cur) => { - const key = cur.item_type - if (!acc[key]) { - acc[key] = 1 - } else { - acc[key] += 1 - } - return acc - }, {} as Record) + const itemTypesData = Array + .from(aggregatedValues.values) + .concat(bangboo?.values || []) + .reduce((acc, cur) => { + const key = cur.item_type + if (!acc[key]) { + acc[key] = 1 + } else { + acc[key] += 1 + } + return acc + }, {} as Record) return ( @@ -36,9 +39,18 @@ export default function GachaChartCalendar () { diff --git a/src/components/gacha/overview/GachaOverviewTags.tsx b/src/components/gacha/overview/GachaOverviewTags.tsx index 1701c054..6b601a76 100644 --- a/src/components/gacha/overview/GachaOverviewTags.tsx +++ b/src/components/gacha/overview/GachaOverviewTags.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react' import { useGachaLayoutContext } from '@/components/gacha/GachaLayoutContext' -import { resolveCurrency } from '@/interfaces/account' +import { AccountFacet, resolveCurrency } from '@/interfaces/account' import { SxProps, Theme } from '@mui/material' import Stack from '@mui/material/Stack' import Box from '@mui/material/Box' @@ -15,7 +15,7 @@ export default function GachaOverviewTags () { const sortByUsedPity = Array.from(aggregatedValues.metadata.golden.values).sort((a, b) => a.usedPity - b.usedPity) const luck = sortByUsedPity[0] - const unluck = sortByUsedPity[sortByUsedPity.length - 1] + const unluck = sortByUsedPity.length > 1 && sortByUsedPity[sortByUsedPity.length - 1] const countGroups = aggregatedValues.metadata.golden.values.reduce((acc, value) => { (acc[value.name] || (acc[value.name] = [])).push(value) @@ -44,7 +44,7 @@ export default function GachaOverviewTags () { return { luck: luck ? { name: luck.name, total: luck.usedPity } : null, - unluck: aggregatedValues.metadata.golden.sum > 1 && unluck ? { name: unluck.name, total: unluck.usedPity } : null, + unluck: unluck ? { name: unluck.name, total: unluck.usedPity } : null, related: related && related[1].length > 1 ? { name: related[0], total: related[1].length } : null, crazy: crazy ? { name: crazy.day, total: crazy.value } : null } @@ -58,6 +58,9 @@ export default function GachaOverviewTags () { {`❖ ${action}标签`} + {facet === AccountFacet.ZenlessZoneZero && ( + (不含邦布) + )} {luck && } diff --git a/src/components/gacha/overview/GachaOverviewTooltips.tsx b/src/components/gacha/overview/GachaOverviewTooltips.tsx index d11a8367..d0ac6f69 100644 --- a/src/components/gacha/overview/GachaOverviewTooltips.tsx +++ b/src/components/gacha/overview/GachaOverviewTooltips.tsx @@ -6,9 +6,9 @@ import Typography from '@mui/material/Typography' import dayjs from '@/utilities/dayjs' export default function GachaOverviewTooltips () { - const { facet, gachaRecords } = useGachaLayoutContext() - const { total, firstTime, lastTime } = gachaRecords + const { facet, gachaRecords: { aggregatedValues } } = useGachaLayoutContext() const { currency, action } = resolveCurrency(facet) + const { total, firstTime, lastTime } = aggregatedValues return ( diff --git a/src/hooks/useGachaRecordsQuery.ts b/src/hooks/useGachaRecordsQuery.ts index 3a8cf587..92131277 100644 --- a/src/hooks/useGachaRecordsQuery.ts +++ b/src/hooks/useGachaRecordsQuery.ts @@ -162,7 +162,6 @@ const KnownZenlessZoneZeroGachaTypes: Record +export const isRankTypeOfBlue = (facet: AccountFacet, record: GachaRecord) => record.rank_type === (facet === AccountFacet.ZenlessZoneZero ? '2' : '3') -const isRankTypeOfPurple = (facet: AccountFacet, record: GachaRecord) => +export const isRankTypeOfPurple = (facet: AccountFacet, record: GachaRecord) => record.rank_type === (facet === AccountFacet.ZenlessZoneZero ? '3' : '4') -const isRankTypeOfGolden = (facet: AccountFacet, record: GachaRecord) => +export const isRankTypeOfGolden = (facet: AccountFacet, record: GachaRecord) => record.rank_type === (facet === AccountFacet.ZenlessZoneZero ? '4' : '5') const sortGachaRecordById = (a: GachaRecord, b: GachaRecord) => a.id.localeCompare(b.id) @@ -275,6 +274,11 @@ function computeAggregatedGachaRecords ( data: GachaRecord[], namedValues: GachaRecords['namedValues'] ): GachaRecords['aggregatedValues'] { + // HACK: Bangboo is a completely separate gacha pool and doesn't count towards the aggregated. + if (facet === AccountFacet.ZenlessZoneZero) { + data = data.filter((v) => v.gacha_type !== '5') + } + const total = data.length const firstTime = data[0]?.time const lastTime = data[total - 1]?.time From a43283c17ca808a4b71c58d54486ade322dead8a Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 10:09:58 +0800 Subject: [PATCH 06/14] feat: known permanent golden items id --- src/hooks/useGachaRecordsQuery.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/hooks/useGachaRecordsQuery.ts b/src/hooks/useGachaRecordsQuery.ts index 92131277..d4d9d6d7 100644 --- a/src/hooks/useGachaRecordsQuery.ts +++ b/src/hooks/useGachaRecordsQuery.ts @@ -426,7 +426,12 @@ function isRestrictedGolden ( case AccountFacet.StarRail: return !KnownStarRailPermanentGoldenItemIds.includes(record.item_id) case AccountFacet.ZenlessZoneZero: - return !KnownZenlessZoneZeroPermanentGoldenItemIds.includes(record.item_id) + // HACK: Bangboo no need! + if (record.gacha_type === '5') { + return false + } else { + return !KnownZenlessZoneZeroPermanentGoldenItemIds.includes(record.item_id) + } default: throw new Error(`Unknown facet: ${facet}`) } @@ -446,7 +451,7 @@ const KnownStarRailPermanentGoldenItemIds: string[] = [ '23000', '23002', '23003', '23004', '23005', '23012', '23013' ] -// TODO: wait a minute const KnownZenlessZoneZeroPermanentGoldenItemIds: string[] = [ - '1211' + '1021', '1041', '1101', '1141', '1181', '1211', + '14102', '14104', '14110', '14114', '14118', '14121' ] From 4895b1f1395de6efbdba7cac8376220edd75c3c9 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 11:24:09 +0800 Subject: [PATCH 07/14] chore: fix bangboo sum problem in gacha history --- src/components/gacha/analysis/GachaAnalysisHistory.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/gacha/analysis/GachaAnalysisHistory.tsx b/src/components/gacha/analysis/GachaAnalysisHistory.tsx index 310db936..5ece729a 100644 --- a/src/components/gacha/analysis/GachaAnalysisHistory.tsx +++ b/src/components/gacha/analysis/GachaAnalysisHistory.tsx @@ -52,7 +52,7 @@ function GachaAnalysisHistoryList ({ facet, value }: { {categoryTitle} - {category !== 'permanent' && category !== 'newbie' + {category !== 'permanent' && category !== 'newbie' && category !== 'bangboo' ? `${golden.sumRestricted} + ${golden.sum - golden.sumRestricted}` : golden.sum } From 6a4ff1496bf1cfce2ed693522aaedfe9de425dbc Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 11:25:21 +0800 Subject: [PATCH 08/14] chore: bangboo pool does not show currency --- src/components/gacha/overview/GachaOverviewGrid.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/gacha/overview/GachaOverviewGrid.tsx b/src/components/gacha/overview/GachaOverviewGrid.tsx index e9d095a8..3790936e 100644 --- a/src/components/gacha/overview/GachaOverviewGrid.tsx +++ b/src/components/gacha/overview/GachaOverviewGrid.tsx @@ -65,6 +65,7 @@ function GachaOverviewGridCard ({ facet, value, newbie }: { const aggregated = category === 'aggregated' const isZZZ = facet === AccountFacet.ZenlessZoneZero + const isBangboo = isZZZ && category === 'bangboo' return ( @@ -101,7 +102,9 @@ function GachaOverviewGridCard ({ facet, value, newbie }: { - + {!isBangboo && ( + + )} {lastGolden && !aggregated && ( From 66f8c0408ff47af9131da06fb4dcb5b52f3d938e Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 14:19:02 +0800 Subject: [PATCH 09/14] feat: impl zenless 1.0 assets --- src/assets/images/zzz/bangboo/54001.png | Bin 0 -> 3679 bytes src/assets/images/zzz/bangboo/54002.png | Bin 0 -> 3505 bytes src/assets/images/zzz/bangboo/54004.png | Bin 0 -> 3753 bytes src/assets/images/zzz/bangboo/54005.png | Bin 0 -> 3471 bytes src/assets/images/zzz/bangboo/54006.png | Bin 0 -> 3988 bytes src/assets/images/zzz/bangboo/54008.png | Bin 0 -> 3894 bytes src/assets/images/zzz/bangboo/54009.png | Bin 0 -> 3821 bytes src/assets/images/zzz/bangboo/54013.png | Bin 0 -> 4246 bytes src/assets/images/zzz/character/1021.png | Bin 0 -> 6914 bytes src/assets/images/zzz/character/1041.png | Bin 0 -> 6334 bytes src/assets/images/zzz/character/1091.png | Bin 0 -> 6146 bytes src/assets/images/zzz/character/1101.png | Bin 0 -> 6623 bytes src/assets/images/zzz/character/1141.png | Bin 0 -> 7087 bytes src/assets/images/zzz/character/1181.png | Bin 0 -> 6578 bytes src/assets/images/zzz/character/1191.png | Bin 0 -> 6574 bytes src/assets/images/zzz/character/1211.png | Bin 0 -> 7002 bytes src/assets/images/zzz/character/1241.png | Bin 0 -> 6156 bytes src/assets/images/zzz/weapon/14102.png | Bin 0 -> 4563 bytes src/assets/images/zzz/weapon/14104.png | Bin 0 -> 4226 bytes src/assets/images/zzz/weapon/14110.png | Bin 0 -> 4017 bytes src/assets/images/zzz/weapon/14114.png | Bin 0 -> 4369 bytes src/assets/images/zzz/weapon/14118.png | Bin 0 -> 4491 bytes src/assets/images/zzz/weapon/14119.png | Bin 0 -> 3713 bytes src/assets/images/zzz/weapon/14121.png | Bin 0 -> 4681 bytes src/assets/images/zzz/weapon/14124.png | Bin 0 -> 4594 bytes src/components/gacha/GachaItemView.tsx | 20 ++++-- .../gacha/analysis/GachaAnalysisHistory.tsx | 2 +- src/components/gacha/icons.tsx | 63 +++++++++++++++++- .../gacha/overview/GachaOverviewGrid.tsx | 2 +- 29 files changed, 79 insertions(+), 8 deletions(-) create mode 100644 src/assets/images/zzz/bangboo/54001.png create mode 100644 src/assets/images/zzz/bangboo/54002.png create mode 100644 src/assets/images/zzz/bangboo/54004.png create mode 100644 src/assets/images/zzz/bangboo/54005.png create mode 100644 src/assets/images/zzz/bangboo/54006.png create mode 100644 src/assets/images/zzz/bangboo/54008.png create mode 100644 src/assets/images/zzz/bangboo/54009.png create mode 100644 src/assets/images/zzz/bangboo/54013.png create mode 100644 src/assets/images/zzz/character/1021.png create mode 100644 src/assets/images/zzz/character/1041.png create mode 100644 src/assets/images/zzz/character/1091.png create mode 100644 src/assets/images/zzz/character/1101.png create mode 100644 src/assets/images/zzz/character/1141.png create mode 100644 src/assets/images/zzz/character/1181.png create mode 100644 src/assets/images/zzz/character/1191.png create mode 100644 src/assets/images/zzz/character/1211.png create mode 100644 src/assets/images/zzz/character/1241.png create mode 100644 src/assets/images/zzz/weapon/14102.png create mode 100644 src/assets/images/zzz/weapon/14104.png create mode 100644 src/assets/images/zzz/weapon/14110.png create mode 100644 src/assets/images/zzz/weapon/14114.png create mode 100644 src/assets/images/zzz/weapon/14118.png create mode 100644 src/assets/images/zzz/weapon/14119.png create mode 100644 src/assets/images/zzz/weapon/14121.png create mode 100644 src/assets/images/zzz/weapon/14124.png diff --git a/src/assets/images/zzz/bangboo/54001.png b/src/assets/images/zzz/bangboo/54001.png new file mode 100644 index 0000000000000000000000000000000000000000..b5a04b52d1e223c46eb0c6ad62ffb8370bae566a GIT binary patch literal 3679 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/bangboo/54002.png b/src/assets/images/zzz/bangboo/54002.png new file mode 100644 index 0000000000000000000000000000000000000000..e25d4729c45eb67371bd9b462710a9e9ba480912 GIT binary patch literal 3505 zcmV;i4NmfjP)pG%zs$0Ra~k2>}5B zfoC!`Eh;J~DjpaKpm7@)5C-tWIIDLW0001$ZXr4?4i*pwvVI%Grc>U$MY*`ODIf|V z919f`6L4TYPd^Y_Q7Dy*Ytgk)h-4x~HxH+jUpzW8cUU1~S4oS8deqO!U0YOMTvc3J zQ~$*?5DyI(77!E@5MEG2VP04N$TC+|Pg++|U{XafFD#gsmOni?X=Y+BB^om^EjTnU z{lhXMARak4IYU7_pl}!e#V;fxB$;d%1p^N@Gd5mTL578cF)lF|6&58R6e}nt|KWQc z9U79AoGmLYQ$;rg1O{YQN>x%!QB6o$QbSovJX26gO-e-_91t298jX#LkYyL_yDmva zKwM2go12?1EGhrVEatT>->@w)C?NmcZevtO|KovOLlFPNDw%yN`^7RqI4odbUmY41 zeSCZW&pLo!7ys5k{>(K0&M-Wjh8`Rp|HnB0+;@p!6r!S|ZER{wOHIb0EKW~Va&d51 zS5{6q4C}x@Yg|u6L`HX36;x42Nk27NV-t6Gbz53lgM4%T)nNb6O?Pc#ZcGn~nHW(< zC}mkaMobfCZxe`(n7x-MtF%?Aj4EbZEli++LqR}AG7RXcC2CL?q8DF!stu z^|L46zCM?*UvOhr!iO8Vp+I6$B+-)|Gd2-#dKTWdM$V!u^u8|Dt1@b*bAxm(!naF; zs%YHx8c|6xAND%?U6d`hbQjI zr0t_!)$ADm?y#}L7%@+UJR9~ig zSfYFJ#+>W_8M>)+-n?9wjcGc6S@gVwlZRz6CKZ#IPw&4qr)Zri0000)bW%=J0N?!z z{{4{w1OA)_s1Y|X{(%0@7fFd*_?9%!D z`2PO>{OtVm{r&y^*Xs>I00009a7bBm000ie000ie0hKEb8vpU_-I@-eT8S(tGc{&7>!jOp=-G zq|Hn+y_cQsANJgfak87tvs~QsJSy_x$N!xFdC&Xa7Xw;jJ=IG z9t>n^NKozWkp=GX(#CZ6WV!fELL8^kk*VHobLNCDJQZStGLXQa$A?a@2$}3Sm4UeI zUKqA-Ut#1-XPm-7{6}tjh&ms2V-K^tZLos z?r{DHD=`e9$@5P60)v6Lotm9e0?_N{mN`4<6diG%ANsrOr z&8D?yg{HFAt6}Yig>xc|4WJ{Xnu(VaE9d zC2ri^8#?dEA0w@b7C3Yyjfmhtr)x^;x$<7Z*-_McNS~PG(1&9 z>mf3eA2wmnpx#J863a*=YA7$a!W!j?I#fK(g=3vRAHE5{P%0kdY1f_e&;WBffha}1ia=Mzwk zsdIC2CoLHBP)O27w?6T*3qU>~rkeU*Hn}Di)7HIjE9FrlNTEYD~aywlVp% z{dezvVylGO{6Z<$N$E-s8YqY`He;C>5b>a0-I8jngjy^ahf-bOq(K52qSdEc2AWC@ z0t^oUEeYe}d`z7u9*4@vKw%T5q_ex$74-GVie!p3wc2O|`++aOyu@72IMkPv_wJZp zKTyzLkRs#eit{A!lNVnUk4I5F`YY6v6m*6mB5z>bwv@PBA(zVqXs*O05lbWzu1Wk7 zG>{b3*KmAT9k;DTDkPFcQ6Y+QfCj%_RFph4#L_e*-;g3J5^~2G5cr=lolbI;6cjcn z%7(2?@}U;$i&S3;u3YZq6i=e2;M4M5HfYiP>Gt~+E{&~B^-5C|Z7Ue+mq>)@*sQYYMsvMnCSp}>n76{dM+xu= zqw2k4Au3~=`eOQ8%&;xtAr?#UNrehcOldq`0Ce4{TKgWPVaqqh>C}}3bZBdaTv9aD zZxVAQG9?~V2&Gz0EyBfb+k3*_PH1qNPNz-9q0K4s&DA-=k`hT{kuvMOx87R6etlL} zbX0U>DNY5aQs>$O#Y?JZv)KeSwWS}8%5jQ`5f?`*qqAN__4@UtQbjyeV^e@#?GIgQ zU`yF-ouxT7)+=S3M3^Bji7^*PHx@^YM{)ILtwKu8GmF(e_9+d~hL=j&OqxO4oECF@ zR%1qgU%|bosK%)1u>flIW`k5Al`3Tly9O0>XgdL( z9Ef6DL~m~P0;sf9vD}`O3YSn=nvv#7NBk*R#MY9MVF4(WW!wv|-oAbNnKQd~?ZOS) z+)Ohnfy!3fv!%f4#KqecKAwS0VPzV0+XmFS4SCQ;l^I*NwzQ-`6cohls-*dP8`%n| z0mZIUKiwu6f8h0@7`mA0Of6GaWL6eu5FvykfFwHH6K<)oQYuwppa1Y+!XPrDPeOcX z%=EZ8ou0`|uf#p7&N=hLFVCJmSrUsMp{K!<7DoDdg3j>niqOSD=q;7i;Cgh<_76Y) z=;MDbN%bKL2&POO1wX# zGg3bM==t+smgEzIgw9|v=nmYXuq@1UyI6ey)c&E>$l`7IOSLX@lZY%3phtpxLQ&|5051s!x f6`hIUWl#JY3m)%YFY5U100000NkvXXu0mjfNgaCy literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/bangboo/54004.png b/src/assets/images/zzz/bangboo/54004.png new file mode 100644 index 0000000000000000000000000000000000000000..5093fed8499e6a8033fb5f8e9f761e8613af44b3 GIT binary patch literal 3753 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

&24d!q;i( z@!u{n@fff)%(7{%e{e`7yhTiy^EKMU$x_q65E&kqBpO_)jV=xMM@%*(`?w(!GvB|> z%$7|W>gwr5r)K+p#ufj(s$JaocU9BTxL3Y^Ws5>!wysjM3!ym!*sZIa{CE65?~SW* z$c}C6>=sz*j6%i)k6BoGdaxirNB`Ukk4<7|*F3wTsh@|vhFg?C!j!NJHYvpJE!x+h zaKJ3^xww(LfVNfZ)>+Jl%94y&X6+EGjn|r_QCRXr=oXX(>+uRobVC?;8WLQzg+oWwjfvQ80fw;;H8l;gkd%rb5FD-MhQ5hQq!kl~q z2n-4E^V7`n&feV9U&vY3W1^+yXP(klS7nF>%J92jy9(CS+4=rP=egYJn~)HN_pgZ?3|Wfi+AHYc^e4ZV4w- z&1jLf*jX>wxAvqs&5(-swDvoOdIx*LwqJ8pRcPOH*y9DIWvGp=v~Q=$Z`yZKrfO=Y zFIt{xC-F~ch$Z;iu3wCdTp6O{}h(dtHr_lO7GZbTn6q;9z< zd~9SHeKWD@uvM?kuGxm=FCwI&cIWv|{HP!T%hjxR8v76BOmm}04 z>GR{`g~2v(p;+vs@Xik9vW}D!`7<7deEn3oq#ZHJ09KYb@zImrpKhVaA`&uc=Q|N{+B39*E_u2ch9BbwmfjscV}p@lLZobyrAjDD+ZCc(KDDyo zfKLVDecr@qou3v}L|^|kcP%>hB4KA|N3}G}PM4K8r^$`_#$C{CokX7Kek#1MMyWIB zF8?*cQP9X!{TDfS}a@Ak#=bqzqF!~@tdY_0VS6! z?f&${l*ANqUS{hoR_oP%H#bStp!W;dFa7^CB(afkgH}}kSW(SYr z5m)MVI<7zG{ab{wY~`@OeN23OjA4iSNh(%>!NiLxd{2H6Ig4zSRC_r~%ETO5;O0t3 zJyVjKRlTEWFZcM&+P55Djsw0FZ9seQZ|l+a ztxk)?y9pc8Qw0tV_&4e4Z^lATXI*MyKBG=g(cmhp_T8W@+eH>iZ_g8KYsR*+-`6>D zabGd(Q2#YYuP}yqhuXG78iN|JB3>~gftjLLK#ljP{2+fMAUh}EH2_*y6DK4l_Mchc zkAV~w>%Tr33AoiPPd>KUEi{df7`T0xE4$rUSzwy{Eus2yEr6Z9D1fKG#gSGwrhDb& zIFV~O+Y~ys0FC?w{beW`da?~HI0Rn5o-j(28;IRn1h!^mu^TO-OMhj}aV;_Lg-!&i z*{rVRbH@-~bx$LcU24xIsxkG3C9-n1*zU25W5Di3)o9TfO%6p;|DE$6^OZeJbk%x7 zjq{hIZ$vV5?^@fj_#If#_yqId1>9FOeC{V0z+kGi_aXDJ7WSuPnavvbk>WbUmYAy!zTJ+(5~ZtgEC|>CZU|C57KzPa_{~c@B*! zD^s-trQvzmdoOV7)uPhQAN>kz-4!}oR8y3fCR0S$x&U4SRzNwYF2S&}~X!ezOObzrQfP&EF)|aB`uf+Q+wx zDrRkSqgde^3M22gJ>fAO#)d(t2nVe)v$goy*nI9PATC14A#XFigH)<6ddAoee}B#O zWTaFOqq;6KoclTxnYDL#S7^X?l~~x_Em($X%f!&{FRClTw+&h&f`9HM5MJID9vnow zN(hxT7By8A@z*!;OVw9Y;N8@u($dV<;+l{9v%k2q&@_95U0s5!?lY8ufBqaE(S?ya zn!9hl4{O|RhmE;JM^Doy>ARwMi|Orh#~C&7a7*R;N~A(U})&Zt=;0) z$3(&7LuD1nz~+U#J$H=T=)^7}=IsrHA*;*co=^R>*auMVAk(ang(~)tj?xB(Me(H! z8N)80-5#CmsNZz(^z~I!Q~R}?+Td6))?=EHe|1gk94!NDd?z_mOzYR7+RKsyNMOBA z>Gu-h{2QGwyg(G&B@aHlb^Ep`OJ84~$+1FqXrfgG z;>WN<-8(+U_hs)soYk4EkDC3y*hL>rGR63481wxX4>9Qda6+!JL5qEDgiHeuYZbKX z>9y-Q%Y45XI;d6fsW3=vcG6kI%h+24y8^%@IMju{z$FpnPMS=FypSr2ukOD?@EVFu zhey3DP%01;c~8N{2Y_Q6DofVt(18cPT#z2np16k8R zjQKhZ>y*7wPdp`n=0y@zzL-{c+nDdn<}*D0uv0N7)%f~on3Zzs!p4NGdU575(!gAIsu z?XLH~IPHLWOmIl#!-}!2+@F>YpAcrA>bYuENm9?%%P+#lQq^+oMijBR22K;4q0}#v z%)2HNAL7@1<;EG%#)1DOiC||>k9*UOTUZo0jGn}^bk)e&NXnaAf_nV7V$sz)&st$! zcaGA8sc3DweZGGvc6q#M48ea6occ0XkG_v;313Ggs8d!x9$7v|32}Ox_ZCUED&998 z8?uk5@|(_$`AX&8r{-_y_5oQ|YG~HB{&r$OTPO?mbT|lQm7ZO^Dmbyz`B_!Pfjyua z`y6VHR0)s@U91FB&(JGY0R zNYGffG6mQobb?t{`dL%nFsg#QE?lE{>Z}-R?y?!JGU6^@>ZQ8b?^x%)#uUs zz62F6-^xeHG#|YWo#c$IFpJ;kir(wI26RpMwGgdaqKgrrDK!)^z3-llAuB|p^nTN5 zeP(q9H{}g(Eqj$M8o#m&a&hz*K7?`7zYNfsvx|<)nc#K2uTCj(raSc1P^a+;lH0=l z=?nzS%`J1&XFNuMkF^RuFrdrmXgkW-7~S}ym1?Qwb7^^-SG`Aq@qpMENbuHk?|@+^ zOL0r90+TuP&#JugwiV+~ZqMOvh(^2m3=^xkeWxBnOF7Nhd8>MP**qLIrU1lH$?zDJ z(1x}t?QNCJle$8*wasbzTd0lABZVJiRMp2sDXhdjY2(Ildpj5{xIHKQp{kFKLU#Hm z7R;|zV6iiQ8eO@aI41|4{TZXURlwhPfIxryoKeqJCERr(*3Mh<9{A_={$~u)`u;cF pxH36*B`+y(o(^e)voXWO>q(we6qYA~>7=6=0M*b}uTr&%`X8{0q`&|G literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/bangboo/54009.png b/src/assets/images/zzz/bangboo/54009.png new file mode 100644 index 0000000000000000000000000000000000000000..114d95288f2d447bc8c9ace0d46840b95a74ae07 GIT binary patch literal 3821 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/character/1041.png b/src/assets/images/zzz/character/1041.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6bd045cac3c96f99b8d107db70bf66090ce2b2 GIT binary patch literal 6334 zcmV;v7(wTWP)f0|5a6`~3I=0|Ws90R;sJ3=9ki1_l8E0R;vI1_lNI000000RR9100000008XS z&AG+b)ZpvV-s!x?*vHP-zR1ek9DEHUcu?da|6&DY{q zS68>f)jB;+T3cKm9xfOb7xUM|_1egcn69n4%dNP_v%%A)uf0P>PsPvMrn1Aby2r=O z)Ss)r_~h2EywAXqgTctrx`=wJwZ!t^)40FN%-QJc)WtzUMkXdTEGH*OK|>-UC<6lo z)Y{$j+|1Cvm6_~6dl+Om<$WkHBnVr6cEnjJYvZkWq(Z`LIqL6q>nt?}Y zOf3HK<3lnpg;NFY#IEPLq{+UEyO~XWS|`7$blAwgZ)kA2y1I5k1L3QarGIk3nvS4< zgW9~dSYk=ds9j1`ajThR+0B+eAr+!^Ev24{>Z5}8+>FD*!o#MVIYMJqRf%;_IAmp) zwX>4n;@Xuu6mCcjwu)HEXB^yv8-X)I+I>)8gj)aptEeVjlt_2@pt#m}Vl7gb+zcA%;jbKtL1%p@rVND7}gbh>9S^3aHq7@4b&* z$F8F@RxBU0t-w9aeZdgHF%g1-`ubhLM5=UlmNGy)hT1g^0cwc7F$*4FCa%K&m z!;r}R z|4^aNk~H=)f@~Gzag*Y5CSxYf;J~7hXf!~rsYH3El4eT+lumPyQ*FtltQsnZ1LSPP z+B&GneE3U}yScfWyE~>vUaOE4=`OIy6{B&u$>CE?=q9R)PGULuQEhCjgRgODSo0(r zkw#M5l4%l}(i9XGnaZJAJ2~MawJMh8eQ>jbL)3L1b53}9fXCJXFkgLQfrOCwA zI56mRZz7RSbh6H*)5)lLvICJy28k>WP!jzaoH>uo#jI!5;@i?IX9RDMJCe7N`w*v9LOB<2x`lx@~xFhlNzxk0@`;se{#0D zr@|w_ReUXJ>PSu;PR3x-7zm{+Gl@!AEFy{Q;6NpjZOLRJo$5p~p%5FE(#FY23H=B2 z`NW9dsW8__^M+#yk`F;1lX19-;p0D?~--$|t!x!Wigr@2q710D+bi$+wxKE`)Xcmpm&7|R#%3vo9 zwF$Pt9F+894WqUk8!C+mXpkxbq3%(?7ksvxu#!p{3~82>1WPZZ(y74NP~pg8Xc?7M z_JxThy+)-5vEUE}sr&$qbc-<0neu5jnUVs^$O<6T2=N3eodhA3N+q9SWW~%MX$h0SyX@MCU4M$+piI37cs)L(0m^ma7Reu98lV;S)(Qbh^?SFq?yF z^+6}6&rl~njxDt&j^rn2aA>H1cVHvae;1GW5|zaQYOKu^3WYITI*|?_7d}u_n}ZVL zK`MzqOhQn&UC6cp?dO$pH7AG>q?!%qDl#(4Tss~&?sF6$E0sE{i_~11FouLD(1}E) zki;TlRGG2HiKOIEO~ZuZa2x=Ac7m>w&}b?~P!NnXGCj)t>{nkV1yti4TfveN@G%4e z9Z)WVB;}GItBtixq9lTdKPt++cl4L2MxCv3 z_K{>uxpy5pHiX900ll#{qs(ZF|~4*Q;sX-e{<3qy7&X zYmAjT%dbfY1VRiRsU(($E+?YPfJA5Xso-vdn7S;y8FeS@1ldTknlfTenEJs3>>N z-8K1J`0`GzN|SF(}O;$oq-!{LJSK**Y@rEfdD8TPsbBt>GUiXS}{5yb3+3cPzH@g1J6`J0UsW{y!hyZ+NZ{} zr=lWBPJdf|kJ#EQ$>l5p-h{$WHJz&uz}8IG@U+_*p$r;pn53~(s?2S38?L^*=3@-< z_H&DJOHXH|U$nq|u8JjUW4W0R0X&4_5gOB*$)&+`eXcCnP(ue3jqk#Z{-Hig$96^1K)nxn72{jAn z`QEum@Wv`Y%7Q^KYK-UauU3eE*>ba~Hc0K~=I3r30dGK|U+$?XY;|L7uv$Y960n&H zjY2~9oDHe+{^&{O1&>B=qZ~+7Dn@`$=I*#xueKaI`8rXfl0-z% zVD%%SBE%CvN5|sEGbQ-opVToj)IDBCsFf0A=VxtGXDa1aM3pV8o3m=NOsG$QcYsgx zyDk5@`NyIA_b(9Tk|++zEy_JJV)mD-KNdG}R8KJXCrOO65UDbJZLAPqGk1YXBGSLQ zvEqldD~7VOYNbA=^1e3o_P{SU|GM$|x{;NY73D*P&EFUC#Nx|`)L7hCo62I}0E$JG z31ihVy!=YDcJ+;W2UZ+{NcYcc%GE46h6Wh#JzV_9AFtoOZqRs}$(8a5_w?W#fs}UcjoQhTEBbCmdseQa%Yp8{p8QTPM?0b;$b$U z$Ajn{5S8v0V0KV6`G3&9;PRf!2!*IZnKV{!j2T*dXv@2uE$>=hy?XWT<|%dNp-g8V z#9loA+x>H|&poU)_IO-iNf_x-OD^<8{B1`e^g?j?n~hwd%o$Xnv$MKZYm`6Oa`VuE zhwpxQ)%Blm{#^UI_Q2AM8itQN`}_*1a}P5wzRh_fZPb&}(`PFbf4@)Rm&rYVre$-T zotWx9+-FvgPgC0}l`V-@pI6^N)Y8J@@+I;%P$?*a5K**Z#2f+k5wZ`);FJ zec5|<)WK_>Dezi8?u#e?INX#?!9^aPeZd-M6ji2?sf!-2IQ4GJfdgyTKK$oD|M+X# z;uVV*A9yz4e?pxt>}z@Z?YH0F`>i2M^2SFMaZp|uUQjRz3p#cj&|^*L_~Mwp@Hd-c zoKXpd8fTW|yS3-;KRCJehadj@>!15qyax0}=krx}o~}HxP1XHNOUtVk?S-N@<*cBC z3~i{cAbga?lu2VIn(pbb<52sP*nlz{p>s@i*2py1)-GPW;?F||*8Xsyt!)M5+|_w^ zft8ijs=Id=F1&l#e?!-%qKYDx%0?b-w=Tm@V4tiL7g$&~j z7Uyaxu(TXK8KDzK8TA%pMis?MWiVFsEfs2hgY{T@VDaK}z#eLOj$&F_%?&gUT!__? z#)>Spq(00ZDq2vNn7BFv%C1#pAC@e}qK@wCqf8l7s4nMf&|+yom1!F8!E)TYcVO*- zlkM|Orq#^3rGX0}>B5&=`-+MhB{>+1!O??tiFV*NM<*FfE9FtF(@h$mBav{W8fgGt z1E0>$`lj!Y`$~K4PN3B=I&&`8{;VH2mKT+m8#yVLC!Vy^z^EoHSlgJQ*C=RckW2gnSs8@UFbXX zK6OuWg+y|2c9QFGC18>FX?3D_myu&NaojlEB+CN9QL~@e6-AQ1dWE8{dFaHC^Y6_1 zh|ctVIds(u%qvGzQ;+5d^hWDQtC;!|M4Qz*E!oPWB)BFejRa0k(NWm!PuI$n z@Z1Nf(^t1vTrMit|N8UKKfmdIdIynUVrbyYW5+jGfq61@`lVAx>RRKn(w8)C>@nL^ z?2$Yy1Iqr0qMV*LFHN7GI@nmzs4vnN{rc;#KX<>JHTP4{z#skR!{@dKJN8_u_J}#vvhX&TpmrKzXB8Edn{6s8>fLsA<~&Tq)WE>2 zR*$rMtJj};3}#N!c~)$L#rV+{mIXTIu&i)3Bqt1;<3@`^(4?R)ZI(6mN%Z>0j{ffE z%YD5K@ZL1MP&2`--@do{f@fg;Woi@WZcwAQ;=Mk;IVO&LaY;wG;bMFlDY>& zQ{Okm6!jJ9C1yJ}96#26%>Pj-x=XHNd(_H4B<&xVnRtY4AG*CvF!EwLEL)1>TwI2O zS{Oo(UNWK6Q;#+Wvy76W%Zg+ECpH{E{_Mq%3rkCVLADAM<%Sg6V>uH=yzp>JnE^eV z#*Q6ly6?t}vede`oHe0i!mBEmR_~ZTtiIoh59Z2zeB>98BlFlV?@BUGz$v)e>c|Xf zMf0??Yc2K+4;P#t{pksU`Zd7TKif3?K(VZ9KV3az`iQ!Imyt{067aQ|=jE|Y$2$8H zC<#dkT1v4((A?UJOgjN@d01$3vc>Qd53c(OUxg>fyTms)turMZEv`Crsd~nUx?{(T z2U{iC&Qgs=W9%v3RJ?Ixu?N&+LH%Qq$!rz1Zf?#HhzzFpaya8-EDG%7UDh>iUhQJK zr7Q}o&LGq@fEhDpRIlH%U2#F8R{Q9S;fS!=9`#3#C`6BsuuZ02tKGVF>sspu_KiYs zX5-M=(dERuG<*l92^}vsbex3tF?A38n6ZBSKX_~=kL{t@SkI(TJc=J5DHhc~u4hJL z1BH)_b?fXh_OX{+PDHIw93379t%I59g04Qa@t>81r?eq##tzJ^-uv~}w<#VT5Rn4K zX4fC7XXiX#!(@xlZc5Ck6M<o3FP3;ei!}?NKaXKhEJ%D2i4TGh-h`v@X%EPOH^v4PtmcTcXyR8oE(T7p*;Z z?>{^IEVqi%mikfM`wgJ&6dq+*X~Shc0HZ5@^DF&;`+I1r*~A(*a7PV?SIqX*$)kS@F&SWwvVeo`6P7>eFtE?NWj0UrL z9f~Q46Xj4~v*0FvRd{0M9Q3723tM__QU0{|d-tw~EoB+LJ1<#LtY9-8nM~ex=ALP6 z-e4yMdkU zBNW(y{=$vR&+Olye{R~2y$?#*9=wncM@NXs|AN8`8_015GiCE& zLd)TW3#^*7C}@sI6bCtT1j)GSy+eonG1PxxP^a+Nbw7XqqN61q%N&si#bYwl+VdCX zPe-OF6HsQ?fNNf5Xz04SRkhmu^jQ@!&2< z={QnM9&`Kk{nOg=yS9VriJE8bt2Bg$?yg(SZuh$73$@_Z%y>ckSx|FC0!my4?)|9~ zEB%qW@>%zb?xbAya&Va;A5q?R-t_&`rsdyXhD=XK3Wdkk<%NcdOExd>zhg2N%=0a6 zvah!n2?Qc`oFE#vt8o4tf28_%@8fkQ>C)Qwty$yvDd_gFrTNnU?b@D;P-G_Ut_;l+ zch;rMxrLEX^A_A{pyY^ha_p0%qoZ-Fm;dOGQ2z}B%X2-GQgR({bgkhHlL?M#?bDFC z|HiTqgu-@W7h1wR#kV`P?OvrObl$vqUS7AFT(w$zidGOUz`f{hpR)m>$2*xJxk+&a zRV7PL@zN3!9N{}HL%6c!Vj--RZc3r{GXVfXE@l*+uy{*+EH-$36$ zlR0bNEw2SuaS5(r82WM`yah$wu%RS3BsWgiQ59ZwYEj#nUAs=+Xv1Pc(4`a#wn%AJ z;@vyLpejqkZXYfM6YG2yRH^T((kpQyWQuSvE5)wI{6RhLnwC~&5O-8{6ndU%Yg@Ev z(X_TU%$&CW`Z8uN%+s@~VAu@p(%xQG3a>1nV&JvzSrsnMO93+_^mbiRi5F~pEGaUfAng^{PXbXqE=61@ z3KJh&c|0sPq)O5AU}r~FT2k&Wr@?F+iJE_C*_t)X+>Qc+SX>~6H}cRf`@-%!ckir% z0eG2E`0(NRg(pnbGRl!vRRFsn@9 zF?C0_7Q6P8q@H=7y0hcV=^dBWJ1#@T?mBgU(bCkVJ9qEY8er4sp|8pmUCHzLrh1C0 zUeG(3^KLc7*(u)P`YN(E74ni(LXs4H#Ya=$pGiGauy3#hHtL!+=q+N|GRKzGGY{5R zrz9IH5eP7>l>hwsAJtW83m`Hu(D$m=F5%|?13_(vLTOH)G5`Po07*qoM6N<$f)G?m Ak^lez literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/character/1091.png b/src/assets/images/zzz/character/1091.png new file mode 100644 index 0000000000000000000000000000000000000000..9701a5f8875e23f1e30fc610ec1c5ccbe68c07d2 GIT binary patch literal 6146 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 UHmz=h{r~^~07*qoM6N<$f)l95)c^nh literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/character/1101.png b/src/assets/images/zzz/character/1101.png new file mode 100644 index 0000000000000000000000000000000000000000..cb6c51e39b65d3c07ec801dee25fe481bbc7c25a GIT binary patch literal 6623 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/character/1191.png b/src/assets/images/zzz/character/1191.png new file mode 100644 index 0000000000000000000000000000000000000000..6c0c842d1e76178018dc85c54a22988dc5242ddf GIT binary patch literal 6574 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 gKT0^z*zV@?|8~Sq;ApwI8vpQrlP))X}Ly~n<* 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/character/1241.png b/src/assets/images/zzz/character/1241.png new file mode 100644 index 0000000000000000000000000000000000000000..997dcd4a0ebbfee95b5da02bc8a4a68876c35e11 GIT binary patch literal 6156 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 SmhrFUk=$3;S8G(Yi~A2RmXlNf literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/weapon/14104.png b/src/assets/images/zzz/weapon/14104.png new file mode 100644 index 0000000000000000000000000000000000000000..1b956aa86e426ec2a555819c1f427380372d82e4 GIT binary patch literal 4226 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 X3RYRdWs(L100000NkvXXu0mjfr@!Ag literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/weapon/14114.png b/src/assets/images/zzz/weapon/14114.png new file mode 100644 index 0000000000000000000000000000000000000000..4487e139348b6a01ab57f639c9cf84e09a033021 GIT binary patch literal 4369 zcmc&%=QkS;*tJTlD6!SvBSb1n%pfrmBQ~}7sIB&@t@hqh#Ax}MMUC1jwkoPrsjXD4 z+N5vaKj8iR-gEA~AD$2QJRk0J&hrYbtwu@CLQX(HK&hb)*Zb!N|I7Qt|5T*)$0-2; zF#%fB0HNvPEhGYxde_H^J#le}lRA$q0@WPCsw1@e7K8C839X2F@BhJnT$nw$@In>`#Qay-gw9eEfFi+Fb=GT`hQNv_?&|s+x|T z4UCn8i`&q`hL2xBNc4$UV0g5J046J=$dx}oNN&8wz*gyTzPChRWUQ;VcUhQZee3&@ zM8n9mjL~|lzQLyWxEJHSjXoC0rff}J6_A~4pde6;PY5g|3SxQ8V(SvXFC?sp&=C*@ zIy?{jR4geWEycsf>);k51O)O43UKm?J!WHXc)Yo-r*}w1l(~RCobBxV zaw;G6%*H-7H#glKoNC7}CZ)KvyyAi446%e5nLC6U^9Jbh6uJr8Tbcz&$36v%WE2+a z$#Pi19=|XYbU+E}8rkNRmPyDXw2dqjA;74l6pTOE!#_CA@kueZ%EG~4PEC`E6IdQ8 z=jY)#`*o?SZ(wz8y`r{Z7&j^?C~jbCYN0M#{|Xi!7w@Vo>g4Iu5(~0+3ssj_v4V3C zw07_PIzTInHMg}bluP#}i-Ls3#-~54DnOiE+}f-En;n}zIXQmU(cPA=y-6cI&EL6_m}FUGM?@mL20v)So6O+vu5q(*H+SW6i~&dDsyA0sdZkS3-zv`Wcr3#$ep2PK;ty`` zJY)#(Uw$=s@(#C}d$&CQ-ftR|eF98A7(EpM!M}+Dz z0RhFh23*M?aOoi5&)}OW18$c4!Lx$k>XNouZTC=|1I|4_Ls@wMqWSIZZG7`ba+rdL6pjeepdYf-&}b7T@ysv5K8J zmH7{BeW`q1<5y* zjZ7iLpyYp3KK#<&L(_GS!3)#g4&nwkT?6LReyCOHJy^3T7oUlOIv?e9`4L}Uo3Y`< zMp{1%YaK&rgrJjVx70jnmAfa1UyY6To}+hHw?4XOh^&Tr`uObSC&t@B7|4vO1DFR# z!xxfS?X1aSnihg5gMNttD58UFR=1*eW1O>))l3bPqoehBx12YaU`izC&8tO1?u?aA z>r@f)uY3!p@m4wI0OH1@i^o&69%=5a6NHR|VTV>9fA+Zb{b`p(m{ z>~>Q~Fu^gQEc3y_8+w><7oUvFU$ggq1Yf%X!e?vm_*{kDq8(U6@FRiV@Xqe+@y(le z2{O79lEU1Eyt2^ZQb@O#tgvIQldq@G=uds=0?Mba4&)-KWN0tH*NA8)tm_Qw3(A16 zSibZ*#(Uewo2_X!nCXGvnDWljM)MiD23i5#TA%qnD=7GubG-QR_Z6HWR@Gh^o(jy` z8>!VxH}Wx@tQW4jI59&jC1c7&COT-%T*p*#GUSm;cFA zq-L3}ppSH-Ch4b_1Z?rdYU>MA6bP*Of-jH5*=DfTH+xjd*IcJ491weBHxHf@B{6w4 zV`APErGvfi01@J%(-6)eh~GGlaZF>rcqBKrc_P&OCjWf*X;$lC^L|24^+BiwB8V;$ zR;3zS#3d7}>U3{3h8IxR!X7y$Eyt>M{wEoYe!(!dDN~4nITzH-a=37yoMYYD+_63? zf|1l>xerM)91&=06yZ!09mA*~xpmSet1MOZY4LHRE!q<3@rdyW4J7M9n1kJ3Vk)@S zea=UTTD#KmgqQaLipV=QlqHLF^K&DB&5Vu{N4Rl+dxFBE;>ng0ePJUAi_^rFhd^?9 zf&*We2ysTcl4a~_f-&%Ha6w-kP=+1FbFyipN|LC5GeLkD;H8o1XzJR;m8+eO0rekr zO;8q6Jp__1YH#c18#WmMw92DRIPrl%1{C+=c#40#!QtZ6Tc)`|CAwHhO)K`DWar10 z-aC^VXzRN2QqW>vp`NhmG|?3u3U}I}$(4i{;8w*h`rV(K(kPLj{WD|zA7%Yg!%sI2 zb!Vx&Q&d1?yT^o2nd3=9B(m*9$T44IQ$@2peITVGi@FZd6SMP@Ja=ky?u_&3j3uko zH}DBpS?jOYg&$H|TH0pTn*7bA=Xv7(#`7Qda)sRmf)}En3I(wsqK*RD<3jQyA7r7b;VtnmKYt4*RGdbq7r_!gS4Q zek}dsMOk1^BuTsA;nKvbiBQvNYprOVXWqYNu?PS7g3WZ-OwibojpEgySAolkj;tz< z(BR{sQ#lI%F>*=qb2-jse)$|+=3$I7d$!b6V?asKZ!qwpBff9@NRs}tj2AXDQ@uDecC}5bY!%oV)%?64yO`#hj=rQ4WIzoSadFb+GenXv z7t_&GxE6#S67vms%oEO@xg1cxyZ9rYA%D4Y{0L+^+4%>5(z<; z*8axM7c7O@6}uv}HT$&tISyVyyD74BGo>b6ozaN`!V|#wIZjfL;d(_?)amAfPG)}I!t;_T}G_G$Jd9gH?6(TYTu^IrVlx#*_>V^M@B8?%brwJj1bC7~ojcat~GQ?C28 zQkz1Pj#>rMKcvu`?4xtOY~htnQ9;Tuhp-!c8}aA4vj@{TQB{M4qWk+m@eboHo2?+V z3Y%WTy&baO{NB7Y_qT|1$b0_cYQ-2nGJbY~QqEx~st3PT>T+Ids8z^2jGdGF*&8Yi zPNLDZ`;;T1QRw5ovVI_Qk`EXw$X7iS^oP-g>*we+c26ZMvnHE1FV%UD+C1GJvYa5V zPW(xgl(YL4SLPHsm7WU}uu|1to_yH+j>D((F8)|~?eh2ZibuV$`sbnHxY~P04*lUC zh}~B9Op4z!aQ>o6hF5TUP0{!=hbuDugyZAZ*OgAt`1-O3u~&;9TTf-z3Na75&CT`E zUc5r{jg^>})}t|A(f7eF`AWhmn`45rKR0z)H9*=^Q^B8v=KSi>x~88;;_WBYyCr8G zqurmHo!VF{LKcdCXg19OC5w0#&G~sNj{ASpa7$MyZ7d!OnJ!M1zT7+ez^&*}j4jQG zq0SoJ|ZHSKQ9vuf(WH#6H7z*1Og?jrO%ov-OSn2s5^Mz(At1B~Tb0B(% z0GYuk>C64snvYWe$-mgCqi>_5gOhq>pZ!^y=~dirLCfF5JV}W`yx&bG8I?KM--vOo zkif%}05SQAAN5?Amwv3bdxnIONwEh8#3|pYYa3S*g{UyR+}_Fi12~pSR^>&S2D<-nedMIk2nA%sQ6CYhZm5GZrgw<*073v! zkpzT|3m+@#pcu1sm)d|`@}@oG&H46JTF8vc85xfJ;`2fWu>gsTWSUc+`tH)$m4$`3 zH=g&C8uiZ~ZhLxLK7LrE<~sw2Edk?cq?eqkyHW55PmkX`p!!>RIyu=OPD{}VX~>6- z+6L?ZD#Zs2G?Z_scprG0!16-c4Lft6{fv}UySUTm9P3NgyX1SG$RLiZC7UIaI&=3j zy8d+d;dD+Pq?k$n*GBozRNmC1gG<+G%)7h+6pC_~c9`(zXqJGlukS_Z=_E#H>VQcm z{PuD_?L3rR3?Rz`6;t@Wz;^C)GSqW2ijm73x}R4ykak+70J;qt^Vz+Gy>r-^+E6i8 zyxPuU>!YHgJQxwXw%wU3*@>sJbZ1Zh8YFGG@pEsWzq~ZjNw;@ZmgUT6=;Clk(t>LF zdOLXR12I&{d#5VSF6!YlLWl2{oWk)>Mwi^S)M&E!9`%O17wezORB+Q4i>VL+Iqkif z|7iFvBo{Qc%yt0B+c$;{Kq?B;U+Vw>4NcRM*?v~eSNSaB*pShvnUw6eq%dd zx!hk|Ts6s47f%(A$<+ULJEPW-AybD15$2KyZ2Oj}mAubrxczgvfyy=SVa?2EdXhrw zb%f)CI+}K^dtA>e73yMQWvR# zl>jJ7A1#~xkuwW`$tUP=X7hJKUmZ%dC?ayc-KD@E)752OU$iedSV79lpBB%4J8s3X zXu@h-v^>`xa+t}N#MlKlH)hLZYM1odU#W^XGxXeVc~a%K$1+wa^1-RhLyDj)RU0&= zUa$H!iIK-93ASsNmRp=EKOaFFm2y8v!1v#&u!Q}J8&X?qDT3cssF%5h7R-GjJ+<^F7^;J9ej$z%I%<0%oK@+Tpx zMX~SSziZ96cCfsA$%t+`ie2bP3Uw^|6rcbjvR`mmdFx8$aRZT2kQWi7lDl=1BYf^g zzcwAL(AAHd#1Y5#d@EbF^LRLZ&vlu&uWe^%y2x0%;W_^FtquSF?B_}ah3DN1!KLCC z;>kmSq87WBmSQOS`*TrqCnr7^ar6&!JA&Hl&IZ~$J6FbIK7+>x0w+w{UPSIB#{C;I z0xh;%Z+ogSBXs^U3yvXyK-}$~7Y?_3!yLH6bXa~E-V^W~a{Z`?^{-3B(%+anGQh8` VLA;7<%fDZTKm(x-uUEE?`X9P}cd-Bf literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/weapon/14118.png b/src/assets/images/zzz/weapon/14118.png new file mode 100644 index 0000000000000000000000000000000000000000..5673f1c65a4befc2b0b6581fb36f3d0a34c66401 GIT binary patch literal 4491 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 VWSZyq{}nMTEp)RiEogt5ag)A^kDoS1 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/weapon/14121.png b/src/assets/images/zzz/weapon/14121.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2a6d361ea5d272f6ea87543d363819283baa5c GIT binary patch literal 4681 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 CH4#z( literal 0 HcmV?d00001 diff --git a/src/components/gacha/GachaItemView.tsx b/src/components/gacha/GachaItemView.tsx index 23e88bba..02cf69bf 100644 --- a/src/components/gacha/GachaItemView.tsx +++ b/src/components/gacha/GachaItemView.tsx @@ -13,7 +13,7 @@ export interface GachaItemViewProps { facet: AccountFacet name: string id: string - isWeapon: boolean + itemType: string rank: 3 | 4 | 5 | '3' | '4' | '5' size: number usedPity?: number @@ -22,9 +22,9 @@ export interface GachaItemViewProps { } export default function GachaItemView (props: GachaItemViewProps) { - const { facet, name, id, isWeapon, rank, size, usedPity, restricted, time } = props + const { facet, name, id, itemType, rank, size, usedPity, restricted, time } = props - const category = isWeapon ? 'weapon' : 'character' + const category = ItemTypeCategoryMappings[itemType] const icon = lookupAssetIcon(facet, category, id) let src = icon?.[1] @@ -42,6 +42,7 @@ export default function GachaItemView (props: GachaItemViewProps) { data-facet={facet} data-rank={rank} data-restricted={restricted} + data-category={category} title={title} > {name} @@ -51,6 +52,15 @@ export default function GachaItemView (props: GachaItemViewProps) { ) } +const ItemTypeCategoryMappings: Record = { + 角色: 'character', + 武器: 'weapon', + 光锥: 'weapon', + 代理人: 'character', + 音擎: 'weapon', + 邦布: 'bangboo' +} + function getRemoteResourceSrc (facet: AccountFacet, category: string, itemIdOrName: string) { return `https://hoyo-gacha.lgou2w.com/static/${facet}/${category}/cutted/${itemIdOrName}.png` } @@ -89,7 +99,9 @@ const GachaItemViewSx: SxProps = { bottom: 0, border: 1, borderColor: 'rgba(255, 255, 255, 0.25)' - }, + } + }, + '&[data-facet="starrail"], &[data-facet="zzz"]': { '&[data-rank="3"] > img': { backgroundImage: 'linear-gradient(#434e7e, #4d80c8)' }, '&[data-rank="4"] > img': { backgroundImage: 'linear-gradient(#4e4976, #9061d2)' }, '&[data-rank="5"] > img': { backgroundImage: 'linear-gradient(#986359, #d2ad70)' } diff --git a/src/components/gacha/analysis/GachaAnalysisHistory.tsx b/src/components/gacha/analysis/GachaAnalysisHistory.tsx index 5ece729a..0e81425b 100644 --- a/src/components/gacha/analysis/GachaAnalysisHistory.tsx +++ b/src/components/gacha/analysis/GachaAnalysisHistory.tsx @@ -66,7 +66,7 @@ function GachaAnalysisHistoryList ({ facet, value }: { key={item.id} name={item.name} id={item.item_id || item.name} - isWeapon={item.item_type === '武器' || item.item_type === '光锥' || item.item_type === '音擎'} + itemType={item.item_type} rank={5} size={GachaAnalysisHistoryItemViewSize} usedPity={item.usedPity} diff --git a/src/components/gacha/icons.tsx b/src/components/gacha/icons.tsx index 35ae086d..13516d7b 100644 --- a/src/components/gacha/icons.tsx +++ b/src/components/gacha/icons.tsx @@ -145,6 +145,31 @@ import StarRailWeapon23025 from '@/assets/images/starrail/weapon/23025.png' import StarRailWeapon23026 from '@/assets/images/starrail/weapon/23026.png' import StarRailWeapon23027 from '@/assets/images/starrail/weapon/23027.png' import StarRailWeapon23028 from '@/assets/images/starrail/weapon/23028.png' +import ZenlessCharacter1021 from '@/assets/images/zzz/character/1021.png' +import ZenlessCharacter1041 from '@/assets/images/zzz/character/1041.png' +import ZenlessCharacter1091 from '@/assets/images/zzz/character/1091.png' +import ZenlessCharacter1101 from '@/assets/images/zzz/character/1101.png' +import ZenlessCharacter1141 from '@/assets/images/zzz/character/1141.png' +import ZenlessCharacter1181 from '@/assets/images/zzz/character/1181.png' +import ZenlessCharacter1191 from '@/assets/images/zzz/character/1191.png' +import ZenlessCharacter1211 from '@/assets/images/zzz/character/1211.png' +import ZenlessCharacter1241 from '@/assets/images/zzz/character/1241.png' +import ZenlessWeapon14102 from '@/assets/images/zzz/weapon/14102.png' +import ZenlessWeapon14104 from '@/assets/images/zzz/weapon/14104.png' +import ZenlessWeapon14110 from '@/assets/images/zzz/weapon/14110.png' +import ZenlessWeapon14114 from '@/assets/images/zzz/weapon/14114.png' +import ZenlessWeapon14118 from '@/assets/images/zzz/weapon/14118.png' +import ZenlessWeapon14119 from '@/assets/images/zzz/weapon/14119.png' +import ZenlessWeapon14121 from '@/assets/images/zzz/weapon/14121.png' +import ZenlessWeapon14124 from '@/assets/images/zzz/weapon/14124.png' +import ZenlessBangboo54001 from '@/assets/images/zzz/bangboo/54001.png' +import ZenlessBangboo54002 from '@/assets/images/zzz/bangboo/54002.png' +import ZenlessBangboo54004 from '@/assets/images/zzz/bangboo/54004.png' +import ZenlessBangboo54005 from '@/assets/images/zzz/bangboo/54005.png' +import ZenlessBangboo54006 from '@/assets/images/zzz/bangboo/54006.png' +import ZenlessBangboo54008 from '@/assets/images/zzz/bangboo/54008.png' +import ZenlessBangboo54009 from '@/assets/images/zzz/bangboo/54009.png' +import ZenlessBangboo54013 from '@/assets/images/zzz/bangboo/54013.png' // HACK: These static resources only contain five-star! @@ -309,15 +334,49 @@ const StarRail = { } } as const +const Zenless = { + character: { + 1021: [1021, ZenlessCharacter1021], + 1041: [1041, ZenlessCharacter1041], + 1091: [1091, ZenlessCharacter1091], + 1101: [1101, ZenlessCharacter1101], + 1141: [1141, ZenlessCharacter1141], + 1181: [1181, ZenlessCharacter1181], + 1191: [1191, ZenlessCharacter1191], + 1211: [1211, ZenlessCharacter1211], + 1241: [1241, ZenlessCharacter1241] + }, + weapon: { + 14102: [14102, ZenlessWeapon14102], + 14104: [14104, ZenlessWeapon14104], + 14110: [14110, ZenlessWeapon14110], + 14114: [14114, ZenlessWeapon14114], + 14118: [14118, ZenlessWeapon14118], + 14119: [14119, ZenlessWeapon14119], + 14121: [14121, ZenlessWeapon14121], + 14124: [14124, ZenlessWeapon14124] + }, + bangboo: { + 54001: [54001, ZenlessBangboo54001], + 54002: [54002, ZenlessBangboo54002], + 54004: [54004, ZenlessBangboo54004], + 54005: [54005, ZenlessBangboo54005], + 54006: [54006, ZenlessBangboo54006], + 54008: [54008, ZenlessBangboo54008], + 54009: [54009, ZenlessBangboo54009], + 54013: [54013, ZenlessBangboo54013] + } +} as const + const Assets = { genshin: Genshin, starrail: StarRail, - zzz: {} // TODO: wait a minute + zzz: Zenless } export function lookupAssetIcon ( facet: keyof typeof Assets, - category: 'character' | 'weapon', + category: 'character' | 'weapon' | 'bangboo', nameOrId: string ): [number, string] | undefined { // eslint-disable-next-line @typescript-eslint/ban-ts-comment diff --git a/src/components/gacha/overview/GachaOverviewGrid.tsx b/src/components/gacha/overview/GachaOverviewGrid.tsx index 3790936e..5f906e15 100644 --- a/src/components/gacha/overview/GachaOverviewGrid.tsx +++ b/src/components/gacha/overview/GachaOverviewGrid.tsx @@ -114,7 +114,7 @@ function GachaOverviewGridCard ({ facet, value, newbie }: { key={lastGolden.id} name={lastGolden.name} id={lastGolden.item_id || lastGolden.name} - isWeapon={lastGolden.item_type === '武器' || lastGolden.item_type === '光锥' || lastGolden.item_type === '音擎'} + itemType={lastGolden.item_type} rank={5} size={72} usedPity={lastGolden.usedPity} From 25ff59fa416fc3e9616345274265abd20329735d Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 14:23:40 +0800 Subject: [PATCH 10/14] chore: change zenless icon --- src/components/Sidebar.tsx | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index 18c4727b..76f9a14d 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -9,10 +9,10 @@ import Stack from '@mui/material/Stack' import Box from '@mui/material/Box' import Button, { ButtonTypeMap } from '@mui/material/Button' import Typography from '@mui/material/Typography' -import SvgIcon from '@mui/material/SvgIcon' import HomeIcon from '@mui/icons-material/Home' import StarIcon from '@mui/icons-material/Star' import DirectionsSubwayIcon from '@mui/icons-material/DirectionsSubway' +import LiveTvIcon from '@mui/icons-material/LiveTv' import SettingsIcon from '@mui/icons-material/Settings' import LogoSrc from '@/assets/images/Logo.png' @@ -44,13 +44,7 @@ const Navs: Nav[] = [ { title: '主页', href: '/', icon: }, { title: '祈愿', href: '/genshin', icon: }, { title: '跃迁', href: '/starrail', icon: }, - { - title: '调频', - href: '/zzz', - icon: - - - } + { title: '调频', href: '/zzz', icon: } ] const NavSetting: Nav = @@ -93,10 +87,7 @@ const NavListItemButton = styled(Button, { display: 'inline-flex', flexDirection: 'column', '& .MuiSvgIcon-root': { - fontSize: '2rem', - '&.zzz': { - scale: '1.5' - } + fontSize: '2rem' }, ...(activated && { color: theme.palette.primary.main, From 4b454beca4286dfb3068d9363da77bba59212165 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 15:28:53 +0800 Subject: [PATCH 11/14] chore: add zenless proxy icons --- src/assets/images/zzz/Bangboo.png | Bin 0 -> 29659 bytes src/assets/images/zzz/Belle.png | Bin 0 -> 40224 bytes src/assets/images/zzz/Wise.png | Bin 0 -> 41199 bytes src/components/account/AccountAvatar.tsx | 3 +++ 4 files changed, 3 insertions(+) create mode 100644 src/assets/images/zzz/Bangboo.png create mode 100644 src/assets/images/zzz/Belle.png create mode 100644 src/assets/images/zzz/Wise.png diff --git a/src/assets/images/zzz/Bangboo.png b/src/assets/images/zzz/Bangboo.png new file mode 100644 index 0000000000000000000000000000000000000000..f14fdbcf9fd1909e2743da4b90140dc6814ce3b8 GIT binary patch literal 29659 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

|kmO{^M?59fb2H&vBVlH9`OWhK~Ey*s&0 zCzqF3#J)xnJxq*A95EqzdVtcydHOpBzgzY#rXD}NA8>Z;+J%OuRv2{J7(WoG*RwE6 zY8Vm&%x3{t6wkkIz^nH$p&g2WCyJRPI%$)`BT6$Ibo^e-w)XO^x!H+^hAor-5( zql(qHV0eWEDqj?Xvqj{T%aN&<6Il(yXwHCc_%$%v@?gjt45eDnqwN@A*enE@LWTWz zOls7ij|auGxX<>r3$Sm_P4F7^XmOL84UlCRlA*yXM`wthH7dYKV2h{%(Ak1mv_i!E z&jjSo&O zPUG3I`T=KWHM$&5WM`&J93kclVZrE;fIvE3hODe0)~?dvwue&j_v<>K)3KLjoJG&? zs~7xm+w1Y&mH_G-fv&DJ1VaVX=p_gQhr?=`fY}fFkRO?c?6z-V%`B(WV>T~I9I!?1 z*~-Ibv9$a;99mJ31=mCNGbdjF?aoE;*Dc4`@}XoBt07ZrsGZda%9Nnjfr~mtmp_aa zj}MJ50=V0Y>INTHuk_-B4+-=Hs#G%Lvon-X$~17gw0ztyJ1>NwhpA6dvM4#Jm%z-W z4%J->wdb~-wfN-Y4{_Rz)5(&$2aWYL)Ctt+vUicz8Gz%CJMp~v^WQ&EtWM9HDdY-S zJCV2-;e;$?A2xEs&pML5<0#4thD*F*+MS8l`SYO{voyrR} ziC+ix@TxH*(bT-?UHYA+jp&<%&`?rZGB`UshZ@hzV|?Rlz4Y8B?mrQbEHs%#)nk}Q zruq-7R`3Ky6DA$o`z}Ej_U^0aLko!sa!lm&xl(dIx5P(;x~riDz8V)~Q7`uG$V0=H zu{dVZ?@(+Dpu+hT%8gwpJ?jF<@=nB$6>-F^2(A7K5sw2Ag;rXRgU#|x%ZI;uIZUoL z2&TSCp7!rG?rjXP4+;E+K@*@hTM%{Zf}l%>DA&`bLqH^eh6Ns&?yo^o7ve<-xA{4s6}qN?QlE)U~6gJxDxA2aCZ716jvHG{jTo z#Vej=3){TC8nwH(BQt9#>g)C*Hz$|C=OMw-j;e9vNopGyZ%6<~N;!w*-p=Nl7+4E-tnh=>dYlZUT-P30qU>nYhCHVoVSv zOx1+vxTnJ3dUG}ki%a?ehb_}n-`LEvV8t87M-|(}7S$kIS>xG-G^2n4Lx*En)hQS; zd@M$f9*6RQ6_Tf~^H^IMS z3AAJ5u}|?1D2oB5@6|-~mr8_py$$-}A#iP;Pil&!LYS>-#inGC0l=ma5r{;=K&NOp z*jQ{ZOO+c6u;6+r^91vp%W2c8m6%*ygcAmo^X#enn%l6prU|R6o3N&~8M~T7#O6#e z8g($SnI1&YwHg&#+q+P`dnZO(GO=*sJGk_+8~Ef#r^A8bq7sZ5Q#JkDZ@+p7{Y#HI zPTaEj8jJ4j`f6y>9~F!y?=+xI#hx4xjD0Q>gsW9Jm*<>vD!dp@Bp z`D%=VB-bGK-u89?^gv48(F~mJ01jMl33{U+w z$jdqrwzm8!_vG%XnVq&70PuYW!4m zc61Q15GM=Mcd&cQ(phu2cfiPBIN8$jDW}MS4?yf zA)zLOE+<{r313|k&;2KcrK4EguuaBiF0irsZpZ~Y{T=1}POc;ZtThqmu|Te|5THyF zm{>)HePF94vz*W#k6W^Y=vsP19%f7~!I_g?Xlkv;_d9B_czZjR);iE&4`4%0GxNoe zgefDnwT(#e40Opl;C2TvcIeSs5g?{WKvBm5UTx8}F$WqD? zX<3TMzAaFWJXg9z>NyJhM`n zd4@>C4(JL8LkM^!^%#HO1n)_%2We9l4TLzb3el|#A-5W&xFGOb@J);|ps^(-RWaC! zoTmtACiT?F=fNv9dZ={N>vgG65SXAgA}YjkB6A5BC0^pjUJvV_O5#UlIE_FwqpB0z zNoy?pei!C%{tiz(^BO8gj)G%FCwx9He@sMv#- zK2u0~)L4A_Z_mmrD>k=a)!KUCiD$8U)kiS7x1mt$!5Kwa7<2MyVv-r~J0heySxS;1 z!qwlvbjn|dtQO&?6oL4Hz{VX&wM0I?0`e*{snf@i6d{oKy5V=b_?q6qfR7|-0HP%u zZf32qkPG5&Oa+KazD}Q{h6z~FSR{{3Pv&QvwiEB^#<7#C zP+ME~uFvlugjf~Ey`%A7A-QwWN9u@@s**FwCvloaM;IS3T!L-iFNUx7YfM(wqj3F) zID23w3iC%Js>*`HC!o0UvmxZ3&%##WfG}Zs;Q!bP?e2BU{g8-;t?WSe}UtmCkim`8JDR|2siIQ zxOFcynK=l#?LB-sRt?E2*>-wbC^i`{P0^YHUPD;WVs#um#6 zc2UoFL2TU&{q)<2z5aM!o#3Ls!t=$`2wMjs?CwUmn|OtBI5eh#P}@7GHxj2H6IY1E zI4}asLF6HzT5=#*@(}IZ2I$izwG%TM6T!Fa{a9>6paFr#tx)BW1txYSk~WD6v?L9` z#Of(ZL|SQ0hrFN?!FAiIimZI7JUQH_|Hxo3{KUW*i(-_^h`bvSCUF#Gu7mC{RGt7d zYzRZIARq~nw2!qhlX-FmAh!w~WC5KsV$66Hl@;K&0mb<8ozJlLPbZ?`H@D)Z^WeFG+LIN-i&0U!D);rkv?Of=bn^0-<;qpow%9-CF zWJH@kmCS!4d~zn4LYxc=)QAF4(LkgpL{?SA%LCF`#tTJW|Lp3?<7C}yzkv7aSK!&c zgg{e)2pgzm*#oE|#oQ4PQqswi>3|prvJl`{WFWY-G*dG=7^FKZzfSnN+E z0h)vdj17G-cdb@M*4rlHr_*`wWv>jz4~Z)aD-qbTkdK3jOpF{9Eq$>g zNTIM1sxJbCnq}r-$rF?U=ZkWAk_jmnl8`J(Prk-!)I;YxVc%PaZoL6xXADNc4;rkW z{~$iwvl2TpCL*_d$Yh15^T7>`4va0dzIsfN8C_JDSr!8a&fesQVrfFy`ruBN8y%f? zWRSJR2vZ;sR82pAa>jq&o`;&68b0pP<`45ZACi`0DoGlmSiijyAG|dib*tZlEwB?8 z4NJqZLn=s`sL$pUSxgCiD)9gk6l*w^720}!`x znMzRek8pqup4wp?Dc@fBg+S7XeMMDlxTN*nFDrjKj5$z z^!cQ5tJXF<0wxn*cDc*$6moMiNg5fkefxIq&1CC0F<*j8Z{_E%+}wbV-+mdcO>222b5M~t0d{u;dt0edWFE+krDP4{k+nh=O2i}O<%?G|Sr1GPhmB<U{Xnz@McQwKs{UZH6z%x6PjF7S8UDtnCDaM;}J~o zK?bZyh)&f)nKKlD`X3-S2?qp@7@wO()*TDS(6A}Qq<&aN4w*ulX3ax97;_Gb`yFdN z@cgz|y;B>oG%qaFBWsX>41`<^A)zot?NdG!(y#P)M_f~Lb=X5{kjn@`Udw>9r~i#a z5_xI@jGUxS7xHq_(b?HSyvKp*#~+L3D>q>C=1s^VQpiBFz21%4FFk|cws$bfP={$# z@~L-^B(WAnJ$Fz^Nsaim-8GQ;J0NJYNw%87k{k(9AL2xsc{ihS2A&EiJbOs;5CxNK zIe>gyK8JqX1vp^QrXy-BK#0_b+@eghMVL%&k@-GIdi1M50)#@T<(o#|GbJbg=4a9H ziU9lC_sJ3~LC_cG1Bg6b4o|5i^;|ir<`9wOXy_y!_Q3&?09Wtfh-9fFP{&c`4S|1S z3IqZ!>oCd984p)ws#__K5?>LZ)5v(zDE7<@ENq@uFCDjEa7b5_#8C3$vau6n%9!N_ z{*Efr0%gO^*t*6JwJ(Z$hHI1`)P$_>ZE@g)@)WYrnA(9Y$)gPb-6 zEM^6CMAXEnoO(11HE5&CA~LB?2Q(RoDokAW%A!90DQ9F=Myf+!2*Krpj3g5qBMLNZ zB(>Z~8u7rH*JY$;LOYiepUIZSwiuUT!NYnz-S0pPy7e6zV4n)urd(D0#xqsqqQdeFVl<5VK+se4l3dRfx zbS!K{jPR*BZ2Af@0^*aT($#VfCJ8JDTaHtZe&@l`(h4`y`t59{pHljStOwkoZaN~w zI|EDF6!b+ncq)dOv5mmPCM%v@YR1c(J27{A7iL!Im^W%W0}hMSW;tYMMVZ2l|f3n7b~H<@A%)!oY6@Q(R*ZDT|5rT z?BVct?1nNWljjv=8_PBk=4s#}2!^RcH8&vGx(_gqp>EqjQbE&WVfLxhgnx^;p_1N7 zNUwlr(`V3=S*~FNni>&m0*sQSqf^F~2jFpFeT?(C-JTdD6s6$^9v`KMNogH{K@&?h zsFe1{hBa99nCNY$>-1iCo(a>SHw?9rB+oDtwy$$Q<&)ut$}~Jh;91ueu0va`Gag*L zxi4^7Ve5gXq@=*z(2OpJ3uZFU-DKXfF9xYSpxmPVp#8=SuUJS&$WjR7k+mLqo>quUSFiwOC z(bO1fn1-GN@5g@!tl1cN~k7Pq2?dQ5f^hK!aUtSI+KFEZ$!#B z$ER(ik;G2rbtQ05VpuXX==XSdEH+7h73G@GHObS4ETPx z8}}`5L3z3wRT;W<$-r58phskZ*le9}=0RrU*k(2Hg-Q*iN;KI;;s0!18NFt#PQ`?z zf2{&oHqUc5VkPmxdPYpeJ3+F(h zj)b8)gXBUBLiR=k_N;?;5L>h?9wO2kK&rw~aBu#E10S&wYv$NXfC7?99O!6*XWL>J zDrcf+JV{8p7U}zpQfNyjz`f%OC^L&B2^s5}iHasNABqZS{o*B*j5q@s`DL^fpxbHZ zi?=yC+TkG(F=1x1T9KZY2Wv(aX$$7j4|BDm${j&Oc|MeE>`6Qjhl%l*h)+^G>P+ff zR+2C}E>#3JHG>b5A|{fO#`EYNQRW--?3Jz|*P?HDX;KwRZO`V^)1fm*rD740V-@xI zT#aHCZ>rca-zBv|@9WS5c)bB4$`-VBy5J8Qc)TrJlX5_=O}=oa)v>Lv-FW=)LiOG* zKdF=mpFwHK(;}P199ve|?u@Ou9UC%_&vM~3F?mcU=9FVSn=iM_2KTymb7x?btUMNK zDF*%U*KdjeN9gm|Qp0Ns$B-H~aI=?>KGV4hTS2dy33WAqdCokWW5D4~xDb*FvPhy` z5VSB1nF=R0Y8<19p{MwRll)esW)cwhz}K)D+T5XBeHhFswAqkTXv*wB=L;pRdBAKcK~SRp2w0)z^|mg?9A;@l*;hZ0fGA4=+@fTVF3 zB18_E)uzhqi3}0_F0z8iIpx;Sq%Bn#@h92pu8mP#mWsAmmNoDy-jq#D^csf`iK915O ziQ)_3@?bEzGWIgeTdPN~eJ|CKzn6|qu4sWOUYRuzfvpP=)taf%^P#X7Cf+ARk|FGB zC9^)ATSMOeSKgO^Syol&{^!nf)vb9RySs*-fu;coA|^m2h#`s~`hf)F6kZHTzGr;K zh$85dfJp>JQ6kzPDiBb@U>F4&=(%aSySl5YYv`Kiy7PFl*52pbd+x1U)zt&jdkaq2 z9nU>y?|-j(t$pA{_|EV4F%>TvQAN@aU{NPpx7(2p57D3xiN~CL2Ted3jXq5m&nU;NOLI!F-EG43SOiD* z2Vf;`)>dl&y?(_OgTLYT1dzg;S8Cwl4hSB%L)77vSCm0vcYQdB)7G{7@A~PUGtCR z3gB?=3X7*K6nNpr1qfU#He>FM$7LS1megkqOfrWw`$`ZdF`5ib!{YXHC>+Znxd^QA zv~0rcOIt{pCmoMBFDb5rwY*(~Uf7Eo8#zR`L5sp$3RmqKM8=PhUR;l+Yrc!gmmj7( zr^OkWMYL}_%$^DY4T+}6sL&maHEl*_mjMs5kD1GG+Dza6IgB5T64y3ib+r>)4o*Ln z0gjlfCEElM)51W(&p@RIp&Evh2G zv>-Ayh4}1InADKq&ZTF51mUBH;XmUdl%07A`XBligu1qp+3zC!+c2}|8Pc_C=sNtu z+y?u|NWWRSBs&|D;7{2+7R-~bI(R66V1O)Oml+$%o!BulAN>BSgD>jeGm0wq`!k|0 zU;IZDQL4*TffG|RNW|@=c8E9@PFvrJ-tHp^&Ie$(nu%p5;52bdd<)8HayWA>o=Pjz zfe2m;Mexl2sOmi!LYX~CTq&Zq7A4e8D@#-7udOrHl{n0t_Ap1>D9CA>3Ej5>A-~lW z`-KX1X34H9d&3%1h+7al&b?V+Q- z6SlG@!~;Vxc}kE`Kn(&*n8KvjgnG6~;21d4u}Dn>;i79^`Q_hc&Kd09fg?Y;5hyAV z`Ny>%z5#*W-57s%3#_C!#rxkxDlm=SpM4F9&^SyEC+W|`o=q{40S5A@PR zG;UJXo^v+td-iGN_UE>zPp@;SXEeFZr#JhQwpt&VunvUCQkxA+PQ>-H@kxCb9R`D* z-eKT8#1&YfwKz&)Z#g6LekwSM_;|PA4&vTP?z5-}(_~BF7|n5gY~n&Gw%4>Fyn8?F z-jc!=GiO4&ya@MmWl36iZTZ~GBUR``iYcLO(rSZe#c2Xe5n3c{QI0-+FOt(EPzfxt z$str<`bBs+@oat;J@@`2S)4OaV*LVyusD|m8gbcai00xEGHm)upRsV(g4HBI^M~FE zeE#_{G_73qpz%BT9l1z|FDn0Ek6)^MZ=}!iqkVfYKIu~*>77Rv ziM6&;ld`$Vg|k|H*x2Gnk%w4v$b-a;&T)8j%*YKJFp#XUmDC9lV-hi{l=xh1a37L0 z!!TFYWxj19Rv#VMtKA=&{Aw(F!$S2Uvz~M$XI&>|xBnVYjLMDn839%kEdEji4?K_H z!I$7^=jznu0!J=;HKF}>IxLdX-OXze8rVnoQjPv!--_mIZbjXdUqNK756Qq3rnWwU zz>$Mccu(?BkGu}63(7KC9j_g+X$mpRfj8%oBy-+rH)Ay|)~61S;&1*ig~k;tL#rx% zj~l<251bIK!pG?ERZGf6Ub&>Hay=H;VR2Ic&K~3*HXM#{xEyF*xk9|g+ZwV(rWhP` z%+j4=e}Ua-U9}o#Y+Q?NufB?%dv{^enpV_SRVtjaF+Cr~-tif1-8rZF_fD!Sed9Q* z&W88Z+m+SMSp|tH8YK20n~?S8=;pZ!-vytBFY$@YbEe3VoismDX<=wvC7Os!#K(I{ z={^ceQ5|yRivc5!+72>S+_IaI%=OI1is*ca>0zX3_1lY^rCGdWF!ER=$KTyRzsXi5 zEjD-a8bl`sG4l9bn0)O~vg{+G#MneyhQ%C^X|P;ga~xS={3{NZg1+t`#zJY7mD;hI zMAR?$9>rI8hSA>Hfl8Yp>$2ot2?^_=?A(aYWuD(Yzlr`dH+Qh;j|4KOg4|M*qWj1GL}s44O>bw zz!@draDkoC(Wa24lAIhyY^X~Ej)4rx!}i)$^nN8-$zf8IJvreAH8=-*$tsjwauxjN z{5egiL*yKtEIF!MVDXiS-?aIP5!nBn&||E`fozUqVKt?LVHG^mplsTFrWSi*&ch;$D@`Rg zN>22UN!umjSw=II;~XlPz_F3Tr00APIcz3lv!)0%HKZUnBhC^Auh`mhCxz-!-MiM{noNM zjRqPA>owsx4t9l5QS3yEPr=R4^x{8g_Rr{ShS$Qbl0+}f#k2XRC=ajenW0B=6@(Rabf*TLzX^(nAK69Yi*%`F8uOYGKAhVvn?+5yN4hhl0%CFqk zIVHZsTuYBwbFh#rC$03k=5nveRNju6xmokeuWVJHd+r6?cmD(G>dw{5x##^6EFDu(+(R9U6ohIjWi4#(3Q_&dX|$ zO_n$BKR{Nk&k4UfiNAYd5KoMn@xjdL?YsGMRhfb zNOUDQ(VT;%skG>bn{LF$4q#^MZ%}>tKgpJ& zDi(=59X~m$SL&=$q(P{`KK3aH%PBX=y9`nxG8`;+1^dZ@sv=!8l8)fI{~ShF%#DjT zuS8>G112UWp^i_4X&L{x&}kL}4wuZZu5&|Xi@-%Vj}Scso+46|*~;Q}XC9AR=AdZ# zvJy1e?^je*;l<~l#ckjDCjQS?ZzUyKB`!1xuh%2$ubH^?m0O%}{xi2=si~6g%_X4(@#HzyY71!=ar@L!PE}*taH~Z zyxYc%l|`*8Hc3s)j??6{!@V)zX{UoH`%0R|{o zbtj^vAHBK%0DiiE826`;-mq(j@{x6Z)5WLPptQt==|mFoBLnb%{C|;d>C!?DMp-4V zU-uR#1LGn*kV9Od=`BHgvKJ9D_gzg3%XpTi>~C>Zs0@!}r^Z#k2G)vINR4c#k(uKL zd^jOWv!!kpZR%X1B!1I1fjjq;AyQn9bDJtr)6gK?BvD$d7OOR7x7+`1u~RJtoNhYq zr{hx#lC296i!AQ=2g!r;&#uKd&n0*Hd6gS`j@W>D;_A@0Kp zZ3;G;#85bb>6uwX95w->xw!yV6R;|(Dn(9oCMv9-UF9v8lcM3H#^^)_-f5?wjx#rJ z!qJHt^X`NF=~rGkn*PbwJ@{~^SNV%GN|m<1_*>wD&uRC_wNyzg1do-hnJHTAhe;Q8 z8FV1|Hv4&!p&3MacT3wHI?X5}PJQq|0C#K~!*3@XXsjqhQ)Mw~8=J%&CiMlWs`ppbRCh0SK1)uwtA%tE z=^SjDTb9ywn54B77s|1d^Mm6FoJyq6;+xhnTW=fr~KPxJ~u8s zZ=)#`U4uP`2GX}3>`LALMjt-rwwONI*=MS)YvNm#$=wV;J>aSBzZD(WhuHXG;dRb2 z=b_<;KpGj?BVQBsE3fm7u-KfwCeG>YH1HLBpznFhEkN zBwhPWOP$kFXsbX2_0WLdODFk^QP(L19+75B7Ep|Cma8K;x|$_9a8|1ohYugd#ea4M zzIF3A5YwEbV`D=yOOIBd&1wJwL)KYi`B z<`t_qaw3aJ;u5B{cKzX=9Y}?yVDq(R737TWOybH@jL6Udp$CcVzGR5N!eT|!!x91F zSO*avI)vy@FQOAi5t|t!P8JZcJ<)Bd)FVFo_=RFq3Vfs3;FXlR)#S~?} z9Z}giHYv<)Cs{`vzseOOk~{E4e)v+!Y37OZmX`y=!vm!2IK_pF=0wDmLcyru8XYTm zKU^!CTH3LyZ3TjJV=@;hEjy3uzroFoTwXsKTQ_2O@BjfTOaQUM*gj7GEOW7$*?FM= zZdlc5-ngp4yldB<)E(dZ_tcgx55_-w`DLcheeQbeiZz=Q7E%1I#Ox4ew?9I^iGCw-JRWd;iwg-cQnBo4-;sL(7I}+ z0F3T8lk=noiJ5%;Sm$4kvtgLn*R2GeZ)qo92prZm=)VYY0WYCAnMmb)Cc9Hy8VM2| z#lJBowIfW9^$M$sTX_h9lt}`EsPQ%v zqKZqZF)@0CL|;Gv2gs@##s$kD<)`y=bAmf<*to&GW_5>o*N$E4zux(y#3PSB7X8>q zFE@YTi=VeOtXPBO&R-)katO}Gc99!XF!0T$aw0^)*$<1a98=H#2j+YBAv!xL+(s6U zA7+0wEaeOWStlp@+A`>N5*^o*>}!@6m-VWOSO;;N8Jc8P ztV&9XNo2({7h_Bs;)%3d%=nkvZo*C9xP{E}G7JpPl8!S>4_%XkacFjfI4J&gFJv zW@cJ=k6F*LShSU=pI7@5=cI%}(|BXs6XLne?p&b%6q;;NeMzEmj(t#cA7`AkSy{JX zy>0up9qI3W@2=>t9(pYGmmm3n<1cFtE9=heK;IPUI^m?I{Of0yKf{@K*2)G~j5?8U zVQ}opX2mR7KVGj^o?#$qTu3g(-9_8lR^gFf{S5Cv{}Nn%^=0Vq>lR%tE6R&SbtDfF z$xp;05!r;=;Si#QL8CF#Tw^WsSZpbe((-yzhNtQKA=wTe$M(gE&EHiMakGRtXvN{I z_nl)}yLPqf_1AZ#zWVP!#{*>+{LMv8_|$oIu$FnyGaMFx6J1gDE8r?jvU-x?F#!rk zZ4CkD2-FbWm#bc81ad-r&KMb1fYmG0JOlfss8Y;W4rtih&d!guO>Rt*$o|LQ9L5h{ z2odi5xL|#eFb=p?bMuN8lvPw9Miwa>4GSH*$`|NZRyg01KhaCjlXPsM6JM=!90n1m zO>iD^idI`yMLEKxd@i)QG*LwtO9BN=P0jEZ%W~WyGRqT*s5Z$Gl$?4ICR3b2W3$=B zIknR)LXwx5XmtkWCq>5%xyuZ)ILj-`U2q0P$tb!!u*`{_#O=;I|BuXT*RRE^dk*8X z4-Dd0uaDz~3v2M#>bpfW3qeXJ@f5wqIuwes7_VgE%e+X_Nd6M z%t*@wbS?)Hpm8n>G-87i5=)JhPB=U&ez9!`cl>@D`^Ico*V+KDLlq@WoC4F-+$6X+ zZxN8rb7N?k5pF$1pt~7o|Xkvubje zL68tiu975cz}qRs5sNO#vn6Qa)1+{{k*)Dw0yHAz8c(CL*pBil8(!&|#BE!~@c5f) z)KymC{p*~f`RDXZ5;Zl|s3p$L#_45zODjHCy#c`U(MI=l;EDS-DnNNF0`$o*LsoS~f-{l)JR(S>rD* z&4eJb3X1-~;B5smCbKS{j3EKN{6m6sA$W{U0rW4aT9|~dix-#OVMBdG9WEhG+1o#a zU%uIor@OlFnRCbR*MHK4)lD889*PJ@CC7q9e`Ic>Cb#6%z%d2PyiVZhAj_bXl#-AP z9VAJF&Fz)?%rUGd-pSbKw4i~+(!tR=eB+n>cyN1^yJh0+HC*Ko6Mc-`E*FWWR`^T& zv{?SGYzNcGw*!Jw^lk1Gmfh`6K;e_pcwI@+A5C@Df$-!N`@ehk0cy%#rLScy-b*MvX}7#xd; zJwuhWw#%9hTeg;1OwH{E+$#XCP~{RB1`WS&V!u&gzZyI7oK`Zgn_ZZovA+4qBe?hF z5GFz{bT-$)Wl=FVKPRr8xeP17tRpg)ftu&_&%M1L@SNf}$>MT4aRT)BeFKB%(PXb~ zYOE8Ezhmty&X&^f$Ph07=yhmmt`^R};gK1PjSj)%^+MZ5o=k1C03jFNdpsVog0&Er zM!A}CL9-Y+A6Zbem`~#Mbb86p=&1`~(lS}^V(Y}|cA=UZO$|)oGY?MUce|$Xl|OIB zdJq`QDuSOA93(cb7nFd4;lfwLTph{kq}GVD1vjMI7dp+%NO$RR}#0l`ForISq6AZmE)(dNikhs z*HHaBafhOGT1CG3oqcR*ZARqrNTrw?RPNaEnixw?HP!QWZB{GB#wNsP9Aw=Dh@CG4 zWtQvYs6B>vGp{ZP4HyNR{)MI8_(skt6WHQfY_3F<0y)`0DEH#YfoZ(*uZM8M`4jl! zC9Nn=x^QG9ESfK6Z$XucFY7+6=O|i9ZXTD@IZPV?W`^{_d$%3M1KUH`+NYqZv<&BT z+7StJ+nIm}^R$q~R9;>ou8*xK{aTkGuE^xVgcAzmTexN03DTi>JaH|V=?`mCGXs=d zl2a?qKUz5*>u6Ab@$nH15BCXE-0!az3bVK%Vy{8gDF{Fu8c=diqmh#NS4Cm)!1&Pu z94D7k8K0>+bC?}`b-`=mI!VuKY-$t$;=L6{XFT}lr^fK#`*z@)pICv-?G-rEN8BgI z=^%MmX|gRiH|sE7rx}g)PRui4h{ODRdl0V=m{3mo%BD8E2)9g6&j@{vo0wOVXyVrT ztju!)+_AX7_Jh~b(S;Kv%TgxlGUz{P82^c`^Jd-TE_BVha?Bxup`kwX^fr<;HH4v~ zecJn`jCYxP_HjOl$K%RXj2EH8+$Qgt!BvvsMoM054_)uc8xDQH%|gS(J{-Y)2=wJ- z&2ZCAt91y)E*st$oyTQ&9K@F{n#7Hlu0k|uMgM46WZvbI?(Ow^EU0aCU}!do@4wiO zM|OwtdOt+$@62|GXmB~lHT(4WlG0LCS67RyOAapUf!t+)hUuRn=I+Gl2LN={PmjHTcfW{~OnS<_4@=zfM+Wida%QGcgHmk4vtcNGwo{b7@IVWB6_T z!`Zpd*Nm5@C7p*Fs-*5?$BLCJXmJdYX>P*2-;JAoH;m^FY{Tu>v|;Va5_BC2fZH>% zHn${J4%YpI5Zx>|9yG{5A6zL|CkvSrNm)6xJ671f%$+K7oX3ED&jD#$FOA^ z)Z8h{1Ps#_I&Q{E(y0Ir59@XGrg(&_^>{HbIEW2v8?a+w4u5j%e%yLxEv`AY5#ytA1j0$w)i}f^uCMjY;j!mu@%X+7 zdZw*tsH(uGcAMzh6$k``KIL({QCU@m(uy+Cpo&v!m#RWpggEK^Ivm%sDNL5*``tx} z1707YgS#1Q<`;65K_1++__nkTB=Lz@+I}K z`%HLj-xwZyGlV~MComJWqltjAxzZxUAD@H69}ZeTwY9YVAa;dbL=*4=4Sl8=amItIK-*$j)pB=ayoC205P36-3^l~!GB1P& ziA{0c7S}z?#_P?x>y`q~@<`ve68i5fTbeEW6rU>;3JLJ9Y+r@pqr+qn3}bD3BYyM7 z47LsQ6GyUQ*Faj-XSGz7p~VVu?<{&4I9xJa*HDl0igMUR{aRFPfp7wVVd7n#d5gdR zP7$37QDr1H@wipiQ*?71bqhsb(d;2+?&5H{5M&litljPMWIVf^AHyDF)(_aCigOyH zu5?4q&S(x)jP}qXl&{|`LOEXLWuvh02O0drkxAgMt*a3_TTgc{nyS5srv0M5%bHfJ z=o-(}8liAfh;xq6*VWev!0;|TEdJPYeS&~t;zD)?%^Xf4ooe7Pu@i=?+Ww2?;4Ha~ zlPZeq25F_m;wds;o5iMF?DS)ufCpEA!(^73eWH}rq@_$4Otl>Ean1{Qq~<&<1e(PZ zi(U_?=E|TY#iUvvoLZ1TYdwLc{a32 zi=Ga_GpLoKD9Z5*)f1FklCddTBmvuP=nsyZec0N{VMg% z?&a#_*Ex+eWBe#;!MT&nNX_U#i@Em->OSg%2YK&jeauG3RAHZ&!D?H=Ak+0a*4>($ zo5)IX37x96v{a;zus)#bkt?zax&bp!3VV!mKfUms z#W+tE*vDc{BAG409pg`skBM(X1CRWSYBYKD_?R(oLVhf764jhP`L7ik z;e5~(2F3Bujb213YvR>Y1sJAz$S}eqcpK>L01iHMsc7=`C?RDN{e6fAY)vd07B2g& zFGUeKuzUy|$2e0Oc(N_+0liD9_U&Bpljqno{K=(dfo3T>83zDP6=0Y+%FTm(!m+30 zrMCq*B_)|a>LD`6H^Z#n9ts9OD*+;94=d2D7_x<7GM4NZ#DMPkRrFYs?xjWn+o~X7 zmgX|Y4}!N;8Z4LYrsGDOV3hkr>1_c{9)+KJ{4uV#{V%h{`eWiE6}<3xR~Ak>ViCp( zNUGLFD=Vas@#E-Ly8c||+b9bd!16(}hyt#O5>;KCv#9SJc6dun-r4rJldw(&y%WGe zN;Xt{%x1N2rGdYL6W~pn^Uo|~er}6>{ZZDTsQrc9(loQZkZSzOa(T*P>__`Wbuqvk z+md<3$K1=6|m%B zCMV*qul5|3Icuql$yXL?%^5^4;h9+!A4}I}y#>SxN%uk~UX9>gMDHfx=rrQ>`Pl3E zow%C#8f1c)Fte0`Oh*DiPtDL-kE(q^2UJGQRTe168tsw{)axD4grtT(Z+f{djAVNlZFTF`Jh z-+hoGsT=QNdN%_{r)~nxU(?^OLB?OMr=ykM(C1KBkQL2Imoq!1Ih~GcOcR>)awWkm(k-)Up0OIE17X9|E3j9-+|;z#;OHl za{W@ESS$(uB#9k%kJ9l|$Vm3dv|)eS>AeITop_4>TOKNlu0Nw!t{_=-G2z0MQD8Ly zW!#4br5M_4i$&h^f9@25hQY#x{lBJzw~0CV*6Z&Oy%&LFBp&z&Y3?7S`E}6zo=14# zJfI5+5Nl}CO$!SJjXs!y!3qN%OZPb@F&E)D66azwV0gc$`W_B?_qJthb5hrS)=S_5Qzm-zM!5s#<6N5|RG%Q}Y%_aL(rVIziiuxe; iz2LtG=$OU-C-gtwOIcn75tl~*0000D(n&-?RCt`+y$66@Rkc3;-FwgN_s*T(GcA)z@0}zNkc67hYv@QX ziejT9s3;&d?4lw*#P&cGNI)QzB&7E`lbOl%-fpk|wbtI}27muo^r=sMCmg1od&=Hx zul0Sa9pl1NFU4QG2xMZUz7AK{d9=|`uqUhQV-pKODvvg*|>Ra^S+}y4+a9| z!{sIQs3`b)#LHdJ!Rw`_~#^z1wV_!ZkPMrb!ZPpgJYOGbruS8^AQXM z3eU2?q&@-dbtjL;H5xH|qVbpQV4o?f;VC zIA~u=`{}f=AR(DQggSAqS%o7Wl+vQYv zjZL4jZdf#ZGJVE@BdyJtJ7v1uDGL@0Ay~jN86Vxl1$5{I^s5kkeTnvGXnzyX()Ta2 z{VNGhKJ7R34h-Jlv>W5yWL6klT6nxO76H%(VU3gq;a0&cNx>rt0?|qOnk2v;A@dR= zO~apMjp1^;5RXM=a&2}6z~f}fVq{TRAo=ucuK0T=fp#`yj4{oD?!*1&Wglxaq#FUJ|0q?RMjGkIU0U;P?l03f>3tFR=Y92u>aC zAGc&O*O9<@W5gPg$po>sgsgPd3_K~U23Tt_i!wD3YlyVgGW@$Z36RCg%*IfYCm2S7 zWM+Rt#>B)a<_FDaTu#LbGi>ev`Al3hIzCrC9+Mj_DJ{Xug>&(d`E}UU)PfoH4W!*h zgeCI*DXer{v9S5H(?7q*JH9QIe5`k{?|x!ctbx8p`%(N8Z~x4K!vgal&CTUB+6D`Y zVK`}`9Eh`4p*dyYiIN7%ASfn9C@EtTllJq^bYMnUsIn)_sFVh=iQuK^y!^9hEt^e! zueXdAD%KSIH~twG!a7l+*>)>wEkn*bN_dC2OK!X#>BtzaTd^3Q?O2PkP=tOIdQ0<*?#S`w+>%Ho{*6BTF#bse=$}z=%4mNm zlS*AnTEni)MMfA94>)TQgw-nvH~aU~mwN7SF@DiL(*wZN&+*X5+lY zNAaEC?ZBd`bJ0844xh(IyI0JX+zVqa`p3Q=H(AjEx{3tAL zXn&CQF8mX1|4f48ru`EmqXVDy6p!<{TrNbT5i$b`vzWdYrbTwct|iAR%*SRW21CS~ zHG?=8g;1rl4oLp2m^E=6(quyk9cvdhH6&Ste-hcxT168jMG!3(<-}21N|`)9mt0H0 zcSo6Qa@&3c*#p4B~1Yz9zfOlb|9R{wkqe?FB`UKa7mq?8#lg-SfPtYv5t zg|6GI+Pkf^j%YVBO*U=%coShsD$vbfIT8t@wrU&}FPslHOUcj}+*LKGPABllbsf0q z;qPGI(F{uR+{DO6h>dwP3!?>~0W+VIvv$Y2^w1?n>8caMgi#K!eg3533FsD!q_ZY zOUX6p-pS6vR#lIctIom0Ep7P3_kNFH*bN^sxJlz@AjT|?&Zh)0BhQu>$br4bkbCGR zlU0&mNXL5#$Hiq)Fhir~sZGQpue$8c=jdXepuO)OHF5t)!C6JK@I(4qoD%0+5~1*j z(A`KRM3a=%PB^70Qfy+Ziuv$BrnTROHA+Spi$!alv`nlBo$1R-B~>UZt%U(>@f6h- z+>%nh7#j&_Jf_T@O&oYoKwBJtNe!Me%9P3VZE~M6(vpSn7DN^Zeh#&n5tH|i5FGaQK0)T-W}0vdPrA?R6?!{7I;dlnYK2DC?-UMurw*(j7@|% zqtC-a!L zV@mY|(j-<9dJz;lpNBAAejr!8(kws&blwmNSFX=b+A5?Sk@P$?7WcG^h!N z$aFE=NhUMe3!D+5VlBepRy2=I0bSl4E~ld38YJ_^tJh{>+>nuLFm7UDQi5q!*d}S} zj!f1JDaT(*%q9~#q3CoT)*M!%=02~F4vOky3=!-UO?aA~rRL1lcy?q2%Wn8Q-raQo zRfWX_%3XBbxW0-K_8ihuYo7L8n0Xd3h2R30@iixC_Z!BWLTD0SrXrQ z?UqbY-ZHCUut)mv|JFqQZwk(8TFKAScm|XUA2Q)gXDtMV$3jE2!h)!)oJbSn5xkR^ zTa?v6%G9J~;u0AZxwh%wu>kSJ3L_FqWmU|F&aJ>Ft?tlY1IX<>uSq&z~u$d*Z3wthRt+@t2YHq_N z_kS514;;kFGiD){Q52ue9N$ll*Fy`(A;D925p?wSpg1odr3FReD^h+b8na9gyY~?W zykt7;3nwGGw`H2e8^WqL^=iy1VSZpF#!(>t_%JN|$O^}HtMB^z@R$!cioe2^y zBPW21@A(XNH@4#oKm9rCN{UchUWL(65XwA~4W|WEnqP$0uFkAiyuGIjMY*{mNG!k> z8kc%vaXT1&1@0zMn|MuF0g$ zh;=%P4|v7eN$*EvVe}5r0OgmWFt-HZv0<_0sce2sMlgs)N3D}0Fe;f#fUH$9pNw|v zn>jVC(O7sC4pvS#cDR}GEOj5s^)H%_ZdWu@hW~CCVPQdG+RYd&7K;m*HK{*83;UV^ ze$qA;C!HuNf}TpK`(~lZXgri8Q)Len;n6SLgS|%@@zRDr;@VZ03!aH5<8mjW{j3>n zrhW9RNeqpR;#gM~30Vc5&w*V>cAzU7t73$zfb!NGQQ7J{&Q7 zX(eF1nPCR;Kr?+8Y;+v+u;7H_VY*L_zdGca=~PCCCg`h0{La}hLpn4JYegM?_T-~j ze&wzB!-jWo@hPX1rb>$&fCZSI0)0d6Bt*5!(Mel7nXHQ9ViGbZnmZaXej=IhR1U_1 zb$DUtQG{-K2`_*B3=*Dch_2s*R48(dJ=a%BA3cxu;NN3%|6YQVORMHpn$Sgz5ljzm zGRb>fCem(Lz%CREeGQS|1ab<=mY0k6i6*1)B%QDetxn5lMOCNLGU0ZK87i-?X--&s z*;ML+4r->etctaajWkF)qs)-5I{f&Aem>r z&)V`@>}}eMmd=BiTsIqTxG)w85>W1e)7B5S$3irHJa+Eugwti9reXqqf3O+LZ+QcM z{N_ryJ~9i5_x2+`ICko+x}4WD!SES$`Qg9y1phq*r-=5ow3=u056NtrgG!8I6C=(u zven6q0XMDcNOTNkg_WdjT*M}#q?%g^p;U=i*d}o%Xw3noeQ4r{$RI|7nATx|R3?)( zYtXnw%pzS+04@oLsc}?j!Mq=f0AZFF2FYxag`$E2 zd2nV_Lg5)lX>*n_T>(}Vu1Jz*wfl21Y5shC?e;5h+qa&_k=9m>D=k7O5{8vD?))k9 z@Z#IQBa^n1gl9T|WVGArQ;|rF2L~cFpBfbu{TqS8@}F($JgYb zVC5Vn-`b66%g`cMd4O|$PQ%~WS@^dWoB&~yb+p=M@ed{o5Kx&&$Yfb{MA~NIyj^y< z1>tk&kjBXoZNrlmO++yq91<I&qvm{e7 z6dgiY$rSVr2IX35(u_GAsvzMRpO?V;J_lAmb_BopSRKYKpAO6BBS`cO&9>*c*O4V% zj=y34^WRc%e2GNpHJ`U;R+6c!Rig|^?zSA)22fQC77MM&6ioyoG+-VYaFuZvjfQ2_ za;ASG5zPi8Wf~ZNSgl!~hOi(SK*Or42iS@zbEPnYN##??bT;f@W(G1S=h%W!bO!-c zx~{r!6ECF%jG8_c!8N*KLIjTPJWLwGpns($#WDakjg8V8D@oWxYg|EHW(1xzmy?)M zXk0DMTebw-jV6g-^86217SK`EZ4Twj^@a$~?msoi6;+VkhC52HV?220D5dCA;yGQSM>P^H;O2zlGq? z616=Oj*Om?=dmiM83*Jf=A!7U^1dp^7-!2FWborDr!a^#2?`T*n@qX|M~*eY?Q@a3 zEUa3A?7NR6&j^A*n4ax6Xr1NABtC5v#}}(Xi8|p60&*FvGeu*KX=Z`=2EqJ{y%$Z(; zy$3ttaVgdn35Uh3)>V&3Q)?sLXDfPg%5nA+`|$Kt!#Mfe8E|ZEMDlR!Dd-MyhT)a? zEB!o%VRzzxvZY8U6b`U{CK`*aiN_=G6%R-di-IGjRovo^(;bYi(x$FIydm7G)O z*_g2{(HP=#)U{Po4wI4zH_d69qwn-9C#~v?#I=%=bCcE>DkJeKEBc4}QB;wSys{FG zY-WW_X(Wr7F2-GPGEH)ihVdc6&4}r;yWL2SpNJJp#?aW+hoAmo3r?Cg2T>Y}*%K$> z5AUqQb5DOCw|@FQj1so{+&vHAx{FW8w22kid#D3Gk19swP>NwC;i(#r*7jz2tlc=4 zD8ea^yoaYdMsVvLC(weR@ow%|^VRpd_y4SO$`_Z`S3|?Dzg%$e*KOwzp!;G-qS>Tg zi7g~Gdr>BdC)CL10rPB-s38#}O=1$>R2@^UFaheboxJc!ZLhL;=bN zl+w&AL0ZS*_ro%I2CiH=f ze-js;eF|Z$A~ZJl5J2X*ahljxM0`KBBs@o3_G8?*iHMh7gWI0@2|D{m@#rHfLDUs* zf3M|H0?Yg9LofbMC;qPyoCcz+KP47r84C@HD?G;=P$>)&J5pH0j5s?aZ-ypY{4aJ{ z@tH&fahiO)JtgMrVDmv-b^UpA^7`5ucxg2b4h_Obj7tfNI*5k}5n-vHhQqbw4DO2mv51eP?BB8We4Ee0`|0r!Df=NFF!(%8dWngT{ z7UiiBhRO*_=_D;XS4U`OW-?7HnJoT03w)AHp20Dx*$Z&@MWh{`{2}%=AH|IE<56E( zj-zD0AGz-#Jn^$%;l76+!SlcTE!MvA9?oC2LNX-VItSqOIF-iJ?(p%olL_-|L19e} zrk-#MzVPyQ5RUyGcded|L2IF9Qd!AQ=*R{59|lJMr-I{2#G=0e({H;>WH#u(UH{ zP&h-a(p0t*k|raqhnTgHXoHka15FF|No1l}dcs1vz|2{*QB_xoV;yanQ$Tc762BE? zX7i-HxCF8z4500TORR>{G7@LfGp!=)$APIylUZQwHf2JSiI~*4o0SqVGF5S+#nyl? z8-!FiN_nQ429t_HG#y2WW>oxH0l^%l*U4X!j-j1_7OjO$tzj66?u#dsWRUWfde68ePpm?^8xsj~IbY&H^l!kofTx_Wz1 zUS5KgC!feyfz4BZ1q8Ak4ECk3Iev zuDbR{Waz#FJ}(x|YQTnVO{ASeqIr0egnU{UwKbE8zW))f!~iZ?c|P9XvlA7C6@(dM ztVyRPQ`RQ}KF_Uwujell9Q@_mDx$A9%ivp7er_bfPCSqH4y&Lc|IMx^ima1R@KBrs zl#s$VyETdgccLKR>-BhWu<;;Pp1TyqHPet9?Sd_*3}>CO0zZG|7l@M3I3#tFfUw1o z0XAb)szM+G(Zo20YJl5WZJ3e(U_P6wK z9so|5I}uy=bYNg`RL0sg$vnmlwUcOkx5Ad1gw=~qMDJj)%ph$yL*+34MVW+u zso)gSD*aI`5wj?Yt>|@qS zIDhpS@)=>fiBX(!+UXcSp%(iO?#I+=(;&roDP?vH9Y)}d%}9)Fz0+Y8p=F1jnObT# z88Bm4X)SOvsU(Q3P0Zpv!5*;aNO(llzC43Y0<&;6g#`F5=o=b9AlHxa)vR&if{#QK za;=rmhfFAhfu3IU4-BBUyAK`hT^JY`A+{LC;NTdU_o$fP5K-w!G^Waw?R@`nI7wK2 z0WWegF${(V@apFGal!J_aLS@3c=Yk_;+#t^#w{QF6e4tuPu}~m=qnz_sSUN*x;rZ8 z_SjU0p+zzW2s74A#P-kM7_U-YK;A|Jj0L$^3bAJ}s);_BG;= zMWVuKh`FYTCoe|A<1id*RSOkY#c}EaDi)*`JYkTGDu}a@s${dm19s$SBO0dE5_33< zCNroLpu%wGlw#TPC3x{CFJk_jc^I*bskN;gbK(op^-d}cQzd@0Lr*1lLwjy5k|v=9 zIH`O(;$N|<uv2Y>!{I*r{L zUiC7NdJyB8glGZ=xi+g-kvbe;Vhj-wnmBgPr;_ydRD@VqQfN3o$dQ&KxbC(~Nl?mY z(7F}-&<=*xtIog+KYjth(Glq~ks|di@o(Ly#;|EnF04hZdR16=JkQwl;%3WdG;>mG zCaqltspE`D`+mZ-qAi65*$M_Txyw$bZ6q{?`PB`Qm~JqHBD}F}!$$1gy&Jtf{UQif z5?-g%MMCUSIXMy-g?Pg0W29-42nC}U84VFDB$H3SXW>#YJ*#{+lCmMkISxAxZN^~G zhVz%5hPChf0sr>Hr*Zj5Z^Ku<_B6pJE9TE#fOW6Df>+kQhBH>Kz6((`m;r zX}R)(GL#h-V`ywdG`9A`2@HrO;%n#@xq9NyD!uu01;<4X{%!V=WONrTRhVWa_7Nf# zYZE^VgJE%~S&((Yr6iV=5nG$om2h^8`Ww^ekr8?buYs%9TqGA_Av1K463J1Vx?&}& z>Z`D4&o0baxQMU^hbV-eWz9=QCzvzcm+oD56`W*&wph)G`Ej8#J;^%5OEDr1epP8s zlqTDTXe2C0+I30?Z)^&A#fIV$W)xP1q4QM&q0*BLqKp;1pe!RO7 zF?-@nJoL~vuy1b{Y2ul<@U#msZQcy5UVSc3I%zr9zWzGl!!w9=9U^>4IL+@BpOC}w z$pW!!PrN9Aj7q)dAhFZ#_%@WuivG8Plh$_pzuK&ZaTg7Gtr=~$Xg`J2I>{^?FJnoF zdbeafw|tCYNh6xH2pxAA{5PWMgl{-puxalWELc1na~7>YCfu*Ji7rbaYH#?8aq1bT z;zv(?7mF4wlzufPy*8T*9IsEZDMz8)mMz;hji=mAYFarB70^}pW@zn{5Uu4PQxgo1 z$ulxomAb1$Tud!%6c$RxKx2eS;v^K48|u+|qzSLQ`kEx1arl8#Py71@Nl-!<36cg$ zS;YNdINT_!ZNT*Txu~uxCpK1s%8DYCm*m5pp97T$#_L!yLbdVt*5muob@=orK8sh^ zZ9|!_0Eb%Ju;$7O(As(o>t0@m#V0MnAJ@H#nPk>CZrX@tix%VEO^4_{2vY?k$aoA{ z6mn+m-REcG1*f4zZGKM9U7PkF{L+6bIQZ|kGMbQkR6@8aU1cAEO&EQW=&0 zAuUSm%9N!@@||u!F{4q!4x0E`!XGHcjQS#Y`~l<_@M}TfYttmgqs;B;x*;vlDl}pdZJo>l_Z0oko;MC(`SCL-dFb=_w`X5L z|CT*u%ECC~{BuY<4QY>K(S>wSOdjOJ&M^VA;Xcfoe7)gnFmBTc=Fk?Yr*7Rna0z-B;zXaJ(JNH+Dxs7`(P*Y_{oR9jJhdP z@u^!Mz}1(35}UWZ3=f${rz?W^P&+E>CgPPBU%;}J=fLK4i@SuYG&;IlQ9OR4#K@AG z^-8%jII2(Dm5zzV)4nqnPJ8&N+s?o7zZ4w&*IOMuHOHA^-fLHr%Ds63pi zd`!ry6hDqxgDtegD%4wq2}xPSKBpghkL<@aw_XZ=VKtH?UD>E|#$0*yHAbtE(i{27LdXbYw?!xkwO4qi}0wwr{O|KSM_V;jiF8Ld?tR#mQXfbdFDOYyV z-xGxV4ND9UK5!3aFFl0@X#{B!w)iL~U=1l#Z3a~Nxpc}$R*Opew@fxKhp%M{j-;Y+ zjEv@l8xo{+t$N0i5uceEedm_6wq%cJ;$3_Hhy^E{jW0d?5I*AedXyg`z2J+`R(}rq82AkdH&1L&pA=t_SH}ul`R3 z2mkq2Pa0;8jV>aNJ6#JU!Y{@83F*D79DTYAmhM`mQZjAYSCH1AlH0;&*fzpW>T|=^ zcd>BkT+CRo9GU2#sz>?|=#_!i@gD8~VFb!>(WU3(fkz(4qJ@iTaP0_3;;KuQ6}rwT ztpk`U0?uh1oFv8=<#?Pbll3S|A7dO(5KEBIh~Gyijmfjg2! z)8s_RT!r+#XR_2ku3Z*lcC=YCSBF{RWA-03>)<){f{)`Cb;9nFN}w~uNZD*DueR-Y z#|_p*{l_qY7}ox+YjNKLU%>W_Z)48l6ObGpL?So}D`Bigu?ZKS#USo_lJYgVrM$Rl*A#{W=of|38Y-AaCr|IQR~ zQnMWhJH*(dDpikA#c9X$crCh7A{V2jvwdoy2hwS<11cllSc6u0B%VQkcmOwj^a}ZG zA{17B8yz0VnkuO75z=)w9mk!w--@Td^#g3$u>*^UhVsNmq6t;8Ag1v{R9*)|xiNs0 z>`JABE!$u+ty`5yY)J#=sMJZR+!+@E|DkXQK@#+GI|&;5c5Dtb_Ya_c;S~4_%8?lx zl4s0z!LZqM^xS~ixY8U0=+p|B3j-W_Q9)LNOs}B@i|?aLS7d36nbY;CX@3Vk_30<+cVWz4GR3ywrkn4K?%96lU!rjeQ>ip}#FEZd7VVe$ zuv3ryHfBbhUbJGaGFg9#>D5(TveFi=5f2Fy+u3*sv*yjfIp-57jtz^@e7OHiHgXKJ zq?d$otRI2m8a(*18wnhK6$@s~k_T6gKwCCdlm}i3u0`ee5{8IHI5*dp#Vu*w(9!I3 zY`PCvXat7|^#*!^gUDxJPAV?X$mU|0wBMBJ?CNl+v`roNvKuC~S6P2-veKIRr*&2! z3n_FzK(KaBDh9{#s~AldHy&teYbW!wA6Hy_zA7oE&pNelC#CD-ZCcpX^U$Im=!QKf z2lM97#puu=l7?=cN!l>Kx)#CqV~F@ZdF3*OFk9hE&MY$}rma%ys&o|a~-bGr_<|BdV6b`0xNzC>nkU_FaLY8h}Pj=f# zhjGiTH{ut+d=c;N*oo!yW=R=uGNrKt8$=!$9k7)6k4;r(NYsahR>co128q?hZvyAl(K1}>^PJjKBNIScGcdF z(Sd%1hDRiDYxo2{GAr5@5I0;>yT?AHX@zR9nPnl40#hD9(vKEGT=Qbu#PT z@|YC>7orqVm@f5J*^hMHV6F9!NJ)-2LPM<<~( zFqMQZIxa@{TU=BmnpK%M1O0E3*K`KXyt4_`@%2qkNYewz5^u`u4Z)-l^b(^B2hr2p zgBUHyLNa3A;D$g^tzqs?~5oC$|*1GE23wwt*w-w z;Uuj!cPf7M!deUuhYiu;Q2ECpB!c5Pk)r{lwf$Q&M+!dN=DK( zMrI19ZXfIQyM=i`OSGB1!uiEk5)u}MUCn!O?}K;4n@=|z=~vD-+87LS+5u}BgTSav zBGOsBBdmk95FK~%#TVjhKmQHZZFmnCpMIJoYcs==#*bRi)4JMHa&c+kI0ZCi0!v*c zlTNECF+!l7{cwh%7+N$OLvB$HrcNF&E(Eyk1eA{u6hrg= z!rc_e^Cvmp^c zCwf7IhFjmVfTRfzoxW@#e!K2HM3S*=^nHlT`oe|tl=hO^b%mQ)XbhJdk&zLCY(oh4 z^oYQ?i;7V`X#xV(HQ;_yeO=A?w{LwP1AV612i!pWTWXbbE+U$X72nh(& zy|8P7@ul0TaHxv}t7mus)0WIYaZNQ{G=pBEXjBGi3O$GTg1tekML@m}TjBV^XSZLffAXVGilvGu)*=-~( zF=yd4oJ8j6?M-CoM~CJ3wyr+ZHPqsiQ%>t;kRqw#0?j&Mtx<4_}7XH@{voLi2XZas%de_*t+O^obN;UCT&&8YMkc6 zi{I;Viqo%QB54~ZVJAlddk;0C#F`@QR*3bR4j}Cz+Fnr)FYK$w+FEI4%WDLb;F$DU zZ)cSkmwCGey5!+G=QTltHWnGfFs-I2VT^nNXl}BF;sdcDn;@M`C$-vUaH?=cjBB6x zCXFO^HyuKX#>a?z@a=CtOAi)>*XxkNd8f1vQH=onJ`eH>X&`cQP)%54Uh)XUy55N4?zvCy*|4M;k64au?LX3_K!%SDa8k;s2tU0r$@=BCyLrx5D$f zhFv>%Val{Ag#0I>fCgDG4^4KM%=g0CGx6zbF2NUn@&c+WDp6NjK!Y|+n&)^66zPuc zbeP@smHD+BI=fGS{$MahATy3O(f}tcosX4^=Ao&*1EawR99(7-BlS;%eCo>OGESmP zg?1BOpoy}ODIe}^K`ItO`SjUj|BK{eKm6v`@c#Sn;o(OfmO8Z4&N>gr=)A01a{PXI z_E8$^B#m=^`8ebi7Nek`kgy1W^OQ=schEWGA<`IR!nt@cNCK8axTdPCMCRa^FTaZ2 z2an*+k6w+%XPzclB{Dh&J858A6&UO5W3-RXfgw3>eQ`iEe0y6b#!srDv7JnIIzmh@ zh(W?|XPtdEk_DA;{b~ccyLvf%Kyn+0-5821eLpS&YN2jZ%2FVETM%w#chH6iSK~ z$nm>SRGcrhLHUKbC@d_3msS?PRnARnnjL_AFJ1Hyu|x`GrA4BB9CTc`zZZ91dLGtq z--mUZHek(ZrwPzaB=`kn4!KuhR2kK%!0euGwm&hQm+bHw9UO)=$BR2ji+SuU^rIx; zLFAAI?C$GFC9$cwME{W((OQ;-ov$@GfJj#dTwV_fCp5qyfnX5-!jFE8;h}!~_!qy% z`){qq(o;?sCYqm@D-H**6#HdRRa%46nu+wRUIFIp1LKU!mi9KmB?g%byTgYOT7>pw z2n`hl800LyWSrO;nXtGWo44=6HFtgrH`3RS-*zM1Wn_Nhw19$R7$YXe8n3T{UC8-V+ENH`|GTXX) zX!89sLA#pvN`K!(%z|S>9jL4<77AEbUxhmQT1YC_=kvkiC00TLBjIA5hALc{(^JC{ z0e;d(pVvHxLdcYOiL!p~nu~Dxy-#4{uH86k-fVD#tkJQM>Jw-)8(yp4#AdsbYy)kk z-k}H%4|d^(Pv3>bXRJi$>+8@vFf7@4{@gt5+`A8_uQ?m;oJu4I+a#FCLNnUdMwq4# z-ogS}kvXt=ybP?c>$TTVU0i_6Z@v?+zw#o^J?|0{kWysmUdGr&Kw-7=+Nmh1s1vsU zhi^E$(FTV=0G$gW&c|M2P^Cl&ii#&;#>5)b75VVS+E>xid=&Ylp=t;ZGPC^pcYc8O z_D(Ebb^^hQ6fQmIOfpp?(lM;Pw_lv0UblmUaDDH-92C0>7Xz4&?9(ZaF5 z-28w}a)Wy3L_Fam?6i!2^M(jcJeiH$t{|mM0%8}RK>x^~l%dAt%_zDtBM-FrD^fae zXk@D*rFwvH&M*PlFliJXnc}8CFsKR+L{Ce*>>A~wOP zn53RPF7-A%tImHmeL1`mL!mH^9cv?6T7pl0^5Z0N>iXUN!zAd$8fn$VNiTooRAr{X zSpc+;wznfr*d#D+94t<^XjJyy9D3_b*a(*_x%fKl-11Z1i((R*STuxSBrNaR+mdTx$phpo3PX8BQ&0I`h9C>H}Xi62T0RxI?{xx zi>9My`ZP!mt2>R|dku z1jbV_xtSCVe740skoDJ?QQ&OX2_5EO-;PbcGDw_qK0jPULq{49pE zpfJaeS~6*jcbG=owC^b`=eMf!=myx~kumHa>BYledXQFh6@ok76D-s_6oQ);P;=Wc zOq?+piaI?|A8Bnth|Jc^6PIDQw-ukh`*WzG`>U_3 z#oG5ah&JL59^**+7M0f`98`_6+%)lHq#0UTnj}EVRi1&|LX@W6*nFf7w_bZWiVKzh z=hPDy5mnwz_^%ZgU48{3WR5~3L*ldHkV1wu>TNe%jSDZm2CZ-X9#$H+{?Spg9HXcq zT*PLym#%d?<26ntO^(14iApMrpV)M=b07WMg~D7PGjuXes%BpN@)oQxD?dz(6L1)o z>6}Ku(!j0Yy9RrRDJk4yzQ!l5Gtx2^6?`<)1NdazPBr4T>y=|gX?_8of8{s0;PjQa z;V$;u(7EV_<-Je9@dAC_`N0$pvzfJ_J6@OqYrf&mVm)3LCHb?2b*zL3Jfuk;zvFtG z^~s0u*3NARoN$8FYegeLX<8t(T<1ZvXIVl6bpCBSc4E@RNx0+VcS)aO)}Vca%{saV zP)rPFWAhNHHGXV|!L6ADVJN!TJp&F;2vXrz%Z#EcxtakwG-`|J}7SAE#L30osL4GmeNxC-ohDdO;PK#|C z)Jt+ljNM1}^5+&$uc_wbU=jkN++^1+T^0e!j1w4~TCL_g5mdOrqIj+A#cirh zTSY+t2bvBOBgx>)_kB)jkKuk%<=M858mOAl>JLYb&Eza;RFpxsqo_?&XEP@`Lw4Ok z_nKE#g`?ZIW8UNjJbc6D`0Tfy!M4UG%$+bEIou5*8I{aE{XPV_CRa?fcJ|;)&-ic+%J9#=bx3z-({^t1em~*IQpsxo`dOr4j#mT(+Na*gr_p@*WiZOI} zJ7Tn$OUp~JulX1;BYGCXI`8%N;*y&#gR7_tsqR)0I4iN`>(5_>pZ(-#=ozCiwWMg# zcwmiJ zoa|dz)TA+{VZlmd-|u8s&3;HSgQWW2KeQd6U2_S>&zni&I;;x%p+KLRb!T=UmBe># z{y2vvTOC2)i$6xcgNj$Sp_>CpvQ-7i&1ustMf>kcBxJ2_Zb#FMgSfFMzdcpGT5FdpK!_lP2Xe_uel)lC31%oQo70 z?Ss=B5RIPnk%>#Ig~EH@(qyhea2XEVc;oe$bMguj@-Rkv`b5yVPhtyclN=JN{{8{jh{c|>YNf;p(<;*r zB)NF#$w!eSZMt#WPMo@Ip$JZzFm9Os%swBUG*0@X#jgZMCos&-RGx_Kefv=r?m#U8 zMGvh=_AFKw6p=Qu3AI()K{1smdr7%eg=0NL)xE?hI09ZoxMSV6^{6J0dJ|0wgR4|9 z1T*)}6c!b=NK4YXyeEO#6l)k7JPz)~Y4t{ilj8r7t`l}M!Q3LzcQ$xdemxO;fPFde z6W-_}Cf7eSg8Q$#4C_AFhEAgE3+l(|LO3W_0_PVw3><1Yik#8{eEEwHYm-T4n6A^^ z-Gw7BfiQ3^fbd+fDC=muXlBCr<#kqu8eDK>` z#1eh@?#t`YMQq6Lw&9`s9>Zyi7hv9;Y1sPuACL$Hu=LcA;EXkwOUNcgIBAqL3%``M zkJx2L?;vUl3$gv+K`c7!6jV=HjC9{om}Nm3CNsIkq!sVL+s{6SUJ^R5!-}E_lTblg zTih+&4TSNp)gnznjrn;|>^Zc1de~Wlw5Jq@xlSs=_RPS@=m4Cy1`O-Buc+E1Re3NH z3`@z0p9IE56UZGiQ;A%34)mjUqz_-9$*XD@FLYW!wa)2*&e~^Br$y(ca31kUcegz3 z5Pjvgu2Nr4=gld|rLP9!mP|HDiYqE4$(*S=sZhJClvYxXXv0ogU9%=lz-w(4P78<($$Wg&J4q{h}RxZP=Mav1> zbcujlYzkysbm@;(znp}%kB1mfguq{4Pmi><9qjAJyc3sW($wkV`7JFgm8iGBumpkX zdf0Pw;SS`JW-}16lh&9$0Ye-1OU%shIN>PHC$^LeuiZoD(++>eg_qvnisrr+96EH6 zSmgO4&{GK0G*nk&$?~P*k4cdbL6|w^lW)>=j2HMk}F|z;Dx`c0%0EC&VE&~FuOv` zPdZFm-K*RlMTAkJ$pQqYOu+aFbr>Q|m!yS0Vd8iR(WHlm!KuE{p?><@7(B#`4!5<# zNoKc$wDBx5b+b=65$U1sY&xr*v>8X+hmRb>?l;zB9Nll-+}W}iq9kzXY&C{*W00-j zV)=lPNG2w;hcYj}30i)O$QF*?#I4_6P7F!rlwL;>@Xq{rC z0JiZ~jN}v}k#C3h%o4;J`_Q+En3J0wsToN*876a8NaIjnQ-N{5G?GPr_&g5jJH#bC zE{<;v4T|P5Xnb3{dyydl7^d;P>r&QIcF7))Ze*nK2gqc1ZT$c(t!)U?f?jm`sTdm? z{?Ho+Q^>Y!k<^wX4sP5u*>F3II;Opx#LS@4ikH_tAt(BTdktdR-0?r1|5=Im0GbR zLZoH9z6=Tq@=;z@gCn811S63gCV=dd=r`wb=em3(fO#l(r7;p}B;h834iiJAXOQ;Y z+!BU!r=v;CXqbqK44tF9AGHf;(S;L;k`*vGHH8D30|OE`9!>JOq8KK#IfWMUiKm_l z1bby&swA{DdXF4|o5po>b2}ECdNM4e)hr}9rWG+$g}Lg&P8OhP>vsNZjnO$cR#RCR z!04EA+%fwI6CUvU3y?<)VPL2aOX}-UR#Smi*>=R+M-FWOUit}^v z=}XTQKR^kw52mNA&Bo})gB*Jy&^vA60vzt`$J38}9lv?;ci6M{fE4WgzZ<*K$JbWj z;`3Hx^;xH*VdiX^NLzGJ(gYYh3)ZkHk8p@4gUfI$ON#Nw{f7wT_F+MFH8GonNk!M77aBhz;9!W2n6yXI^m;W-M7q+NMWnq}A-k zu4}~%i|(2ZJpmj@b$bxnw+C%qJ-GDdn`lgYhy~4e&s)Tu-!N|>@@e%ydeub|1pfNZ ze}T4v5b|>a=#Qr89@Dt0ZWQ?m3*PKZNT229vqRWGSo8Jn9Qe`^OsuZKs)<$DxNa?e zyZ(LD)YahT>#u~j%tuk-)0MnnA#2sFco>@*ML3gh(LRm4D;v(@`Gqq0efECnq3| zHx~i2pZwri!2y?Ee=Y8P;%Pko)HkKTPgoY?4u{8Vqmm6_utRYRNjL9LeEmCEwqy}5 zCqQ`K1*;{9ml^4nyj||n!G4V~GHFqEpVKpJ+H(+oW`Ep#fJ~>CgORkVU*5VyJg|1U z#_0>^;SWE10Siu8fYZ*r5WBX$j6Fo-t4Q!xoO1?`6cQZxH0;^7vuWK|5V}eBaW$Ti z2y^$*RxCW{Tr4_aF=?@|U?*r71Y@ts^|iS8oO4h;u2Ozo+R9!{!fmkjY$xv(F{dJklZBQ>sQdWJK5Bao{lS{qZjZO8n-PbvS9p6h!I5 z;|O$f@5LaoMK=lID2?xt4>qHilt}sP*)_(LafLnaieS78+iPK7#{!3?Wo{rJ)yHyC?aeq zP1R+x3A!2!kcjd z*)6;FqIx=)0p*jH3gO^;8xW|h#N<;x0#a{9MrFRQsDPw*=g}@~Y3fBoc^)eAxcN>T zMTGu+9ydKm3hkVzP2kqSUQ(_kv?(VYYn&)e{KRpE{ElO!X{DCc)gjc=jXm$Yhno62 zys>pBTAG@qS%6oZgjRHPcF4`nn==QCmMp>6ox5;o_YSx?{**gG@|Yupn_@x20+s~w zNRt&1b7()(gnK@HAFjA+KW_Q>?F0ZTXwvpzxT75tr%c4_&%X#4U&rqumXaV^I*M&g z&A8{uFXE%i7o&664t(y)^YFXPyYN2kB#O)s){4366q~srYs`J z7KzK*Rdq{T=O3}dlKTYFg2=C_mP|u#W1`B1kM{xOc;1}plkw&|8?n2o6>qh4qmXE? zWLT1*jq}9iMXmDcMjcz@{?}Z~HI{K;I9@{%nQj3r$)ol2T*FR$OI3O zDei7+#DtkMU@I!ZGe7z{PNT71e(ow@s8f=)bPgm5kbzL&AR0O6MsJ*M!J3uxn1{%8 zw;ygq<-`UwZP|*vib~Xl<%k8cpPjq$+Q}|4~e% zNtrcu686*0a7?d9m4&(3+}VfiTXtb_?KmX3Hk|J9{R4-v z=F=a;&9{D>mRJyD1O~&cN3rIF*_be{3@^XA5$$B(`y%al@X>ovId3^q9S5?-fl}L~ zUr{9QibSB%nitMMBX8`iH`z0eAwNIzrgp5+rjJ!5~dC;*B_a>GinarmKJfl{Lt4K#CdZ zzPb+`5)EBJW4iwJcW~%f3x4+9$LU!J_X*?>8M?Nf@Cki=Ennf-&SZ4a?WKi%$TJ*-;3fL4*|9y4)=`FiM_}t z4ZzuBZX*}11aeCQ0pybw3dL0UuX>rPjReO*E5v{=kb@nh)@sU2@WG)*Jn-Z<3H;?^ zh*l)~ff#U|b=KLq^Nu@+Jyl`fp~Lv{m%fDD+!9QoNmFJ@mBSX3hGB=;kd+=BPF!~V z8JJX=k9S^s6*kg>Z@={}nwzf0O=qt_?bONm-osC#oK_XDm=MwVO?&p@g4=Jx&3Ar^ z*hG)e_NgbGgswgLXeWlZU|cZ*r=N)DejPz0fxai7`wbSXIvsXeU1DZDNTJqqG7>2yEv0 z^NES{sH%XB6^(@2XVU88z?yV{P!N~YD+EvMCrVpFYBEWK`AK3<5faJ@!W$tvS4&$v zR(Tq0KOjjOXxW@ulFYRA@L^p1vDDNL9#11Y*cv!j=)QMWf}WzCNu2I zEr8AKM+xDyT+*tNOKatmrd3iKYdRX!2KHG6L%OpE39-~Sr_j1>D{{#i6f8Iija%Nr zfx}1e$6x(`?lmdN{apVpFYaT{KcjBWtfcY2Xzo-LkT#lBP(ZlKhTQxD%w9APm5b)f z{bz`M@oSQ-(wxG9D{lQHDm{LF|4POx4Ur6GEBT!Xocif?WZ+{juB#A7+DU!!s}6H= zF+eJ}l@NA)QGrZ8r<7(0AeRzTsG2nkLwgU?gXiMT$G?U4o<35^MWRwi32Urgy$ZM7 zdaI~M{yC7Fhpk&T!=GCW4^jVUSiR|%{RiyN>Fgq#O_OIMwI4DFRQC6Z;53lk{nk&O z#m8>E5iNUnVkenD5TLts$zsXr-9_5s#?L<>y?_z!mn=9bm*IM9I&YjS5xU#a)HR9+ zfBhEjxcnS^;Jls>5+oD)pP(6-ygC!nN&hd?hR3Ad!zQt@%z|{~I z+lLAm*-X*%bZ_4--uKz(vV+f!FMs1lxZuoFFn+-@q`DiWQwVDq^|~kBQpIjV=kDF8 zATxW$m1__nT=cd52e66e_AEMn+WXt^)K6cK#QkeYYg=pqJo)H-c<;SU_{@11+6?;V zS9MVt4V!fI*{Zr|@ykZ5X?1QV)?h)tG)g=|cF#+KR!S>_%Q&1wzaus~VlFqzNEl87UGs$ZWS%bZ*}9`;1DsQF%lpjr(J%iew^ESPKmX#}Sh{!$?)&OjNWeykb*#sySDlCfrw=c`yBR(0T{!3b zRdA4LP7IA4&jr#+?kQcPF8MyXqC(sZW|E5;l;sj%PRrDvm7=+!VO9Ju?>j$UUv|7F zVMbmWlF==BWqjlXadrXZER^guk92pVhj3f{2}|Lq9FKkPy@mrcS1&#HZ6G!zRVR$P z&Fsf?f;1$ z)03Dy14A4#45ENYlpIADP!SMa1jUH%;)jR|2nZ}FNrHgH8Ir&NGsEQE6FSH0>aGq| z^{U=?&bjx#Zv0$VgjXzTu^XUPA4kuygb1xS6+H07L%*(ELeyOzIX#>5{@~L6vVyP zUWFe&`Y?WYz#>U7*AV7%2YPVSNvC5{A0mmAoJ(Mp}NQpA4 z;+{6Ngru;FHov*2AF*gu3fY-JaYJ*f@Y{zU#jQ907-wC07Q&>} z5}ZgSGgn?)gE9igH{W_E-hF2!o_ydo1WE~ykp@*sS_dT)Ckf7S$h@6)>WTPZ?MAFv z@jB+spM$#EYGl)6(Ntj!%Bg91S;OQm{Bf=>yHF;^hGz9}b7Qj{^lM03CY#e)Xf;Af z+Nbr1BsNz$SM{vrd?wkLljJJnwir1Wg_TtxTaV?BJ}yk~mwoXvxIJxRJ!BMQDkE_y z+26u){NTnL@amgyaZj5QZs0|7a2`Ng+5*?Pw?sAa~uB_}U%!pmWU{ z#QXYj>M_S)a723Yl770NTv&hDY%c5F6wOU9i}N(qBsi_~WS{N#=uVo+*Wc3Gf!eZC z3=Iw=L|sYnoMeNWIe?hus_ zwlxim6sXx_j2A+jU>RXlnRsKqa#}n2B;5niAW;Ie(gn()3(}PDtX_*Re(nOHQgIl^ zaa#*_c5(>|S8#H>QEwaWd+1S|bMEPgOkap+ZoLbu3ENDYJr4~efGj}l&p2@PyUwe6}T7^~o{)Tj)R8(2dZS;Bdc zkx_BIIY-3-qm86>iXuUz`UmjMn{UNXhia{1uOR4GQ+~Ue_hNM3JQ13ylP8j}%=2Oi z^Jh&*?dp@pvd@p~S`+V@xEpab^9=@*{E?AP?V zor+z;Rb&T3O(J9oWTr<_DyiDjixP4KO3KTmjmC_SW{*hX;!UfF^=4$UvH9}fyBsB?2A02?td}CWxfQ@hrBwZETP>6(d=vbZ(91eH&^Lij?%JkispFL!=Tja; z?@$VDJ*`YAh)b@#96hZq*iIT@C%L(W^t;|&JFs)>7U>k2HFc6?xOo6ZUMz?Ogyt9T zw?qW8tZuT}EOJ+42+K%mcPTjlyW5cH$sn@d3?%n2!e=KRi8JVd8xw7Ku04i$8ffqC zRoZbNE~gmrQ7Pr*vJS4u%cHyZoqxR=`Sp_o7;;A1Htb!}Pi;#uPfQDYFMd_bE|?>g z(E>1*F=oxHFpA=3HX6cc69Li~E6UI6&QEdQrNxIC+Jhd3R&&0Dy-AZJsQz|ds^;6) zVA=KNteZ9;4(>HH)Qd)Odi%UG5HsyYSYTCr1MhyYP6T!;J)XP;TzSSRc%MFNcPNVG z{YmsDyHIw{$)t(f(R9bXsLv}R>rsw9-R-jHdSX!APYAh()Zlc(%E>LbLW~48eANKu zVZt<3u|n)1yulhMA^=y>#WM535CP162?tDDus^2FAHseI9f-9n-^1p$>(EVFDY2&s z)hC}o8X!U^w^y~S5a_L_t;MpX2jPL|my4GbkXZxD1XKq~$xMaOT09X8^K6_}mnLkJ zz*J;VLZ@k^(bCU!c$5rG`{f&w*zW;nKAPQ$2dCLEE>fS6}Ya)CXsVZ zshg$9CUtcobhoT%LAh2{P$t?<0F8kF$b2W zu;gI^(h$ZJVXC-L__2_tzZa0OOePn5Q%i>kj;%W*IX1!T-S<}E*ptpgE-^sz5yqlr z$6)q?Iau}b3bgEL#^%+lu;8GB5$2PTab)C9ly3G>`!B}3>o#HwH^z~0a^soH@fMy+ z6JVF$kMrufu{b}8_yD>0^j@7D-6TvDBQJMJeGMl1GRP7pDXgjW=9@dZPmBX**-XC* z{|EdYm^Dp?2H?ug(aB3W)!atICOhls=`c*1WO)o2{5KXRpH6T20A@arIef_)w{KAT{5dg~c&mnXO7{*(-IVB2$q*N;Yr9rw>0EAM9?%vzvFL zjKFJ>%tUdB{`rz<8}(t3-m9d5OEG-7=MT+T-yFdCpO}Nv(tN2nl#@x`iIhA-&BM%T z+suJG(~PHrc8Wng5H_tYS}Q`5ON zV+`$nLz^~<{jk7hbNXjJT~8A~L2EW>&6ts58J5sLYn^B?jLGEXytS!UhDxaM zgf0q#`B+7QGu*ig(Xw*5@jf{*>@qUr!_>L^5cmzEc(f1c!8o#kh}8G^gcmq~qYl|0 z`%GyNu9x4f*@U!f+HioBu6wB}A>2c@`0ce#_}LR1P+7kiUpjLc4%}}x2?||DTFsG= z4Nw#2)jk+-DqW=79p#U==7PC8j5<>FrC^$RqM!W`1Cvskwr&2DNOYvgH8N~rY`GYB+-PTp)9Xq z(biNh4qdZH=ca`lOZw~U6`>1dbjyh6iTSlXKcze}a6q34ctSCiGUqZSEGLcg3CIRi*@GgG&LAW z6;D5l(dSNq5eM0-by_gt?S{CXdXQA4SW$ z_wmjfucClX;;PqQ$87Sr2I+&>OsdDySq<2@qe=Lmm~O0j;|6^G=PQwI+k+E6`AOVy z<5w_Y#!R5U6PdOab+a@p#d!LAb=cJADQ_sJsdv?^1_`>c&{%3dlo5<X_a)lfn>XK8GV6#1JZP3N(u`F zl(ocr;ER+(t ziwjKZn=as;4O?-*;Rm6f!1gOE{(w#Izl+D7cpib$V)WC-F#{N9;LFQOv9P2NM;)~< z&N%&M%v*Z6Fn*?6o0NIcA%EzZ<7(WIQu$=8MOzq(6IYW&`81_$MuSTkWo_auS^)f^ zAk4gU*$_)j80PVZqIF!wbk3UE7f@*gW#ar215@)FY_DJ4kainR9s$Ze({pBdT1yF` zB89T_FIC7uX)PgQ%ekJG5e~*&&U4SrFk2Hy6c|!fja~1*kM~xuMFp8G{i^64=oe;r z=3C@??eZ<#;MP>boi!bqr=LT9<7Cu)av89BD`GFa#%Tuf#w2&PnRhgia@@VafLj;P zETa5|toFH1r?fC8g+*Qc-KZt(!aRA7KZic@R2nKPF~5F*z-$Ytv56>+7Gu@wb=dvE z8q_aX0IRcAZkEz!v~9K`i5}_g!-4zGM-ACn&<0&Z!1(@OJb}^?5vFZjP z%$7`#AU={1)_7*{ntH+~(7baOT2{U|{FS6tzk8W>59$}ww<5Z5n?X{V7KnI!D zCr5L2g+W)^dAW6TlvLQ@=qNID6Do^KS6u7EUMD+|wlQ>UPtOxE764m8wG zLhtrCe*NUL_}aol>1MTPo1YQQ!_8uRCL^&TDKkf*WR#y>f%Tp)N zR^xZbXNOBzC+Ei1@K#PTvincihZB}kp{HXM;+;qxw5!3f3CO|A6R8pf#WKa?5Ft|=|nI&6^ z)pRqDAI*|BAluivw?`tooMzyf8SV+Mq_2E^yE@uXMc*@#;gIkG+c0AJdv8hm<7|FluQEY&|2>QcY%@ge#2|$~-6G+vPW6%;G4uEjHd# zCr$!cWevFP`!}MPUjM91&quZ|?roB-=TW(u?H$sxZ0XajrpDwfm9=KK-A7(pHWCxc zf9Z`Hr|uan`>e6LVc`>GFr72ZWbp7)&dzDgpr~v`+v&fFpgCq>tYv~|a!AcJ3z?MG z7BaP1qcf8wSBX&L5yESZ6C7p|trx6HfFHT5g7ez?clqnv1>q=y zfhbgOe~z$6HG!y@2#}l_da;UFO!a5?^$Gqerc*ya+M<%w+NTyT#8dCBq0KDC-j)_T z{_x}Y%til#T>lo8-_Z?TIi16igq|)^;#0<~7m8k9(cdd7H+WG|4#N2eS0Pe?yKlW2 zH~i>lcz5|za?{iX=_xIi+O(|32wt)fW5GDd80XRwxen$RBT!t8Ody0z&mIH|OLU#h z*j!N)OtW?6fS0Dw#ayZmM~z?P$2ggcM@k@3YFmTitfIb?aZNfPsI8ZpxTCR`Xf;<& z8FbyTgr`qWsgb&8)+%CBRXK*Mryt7*13iB|D5fon`+uuOir1D`s2+NZ4O!u9si-JM znBar&g|{&9>bv5>aaSli4#zc4!4XFt4u{_3txa3d*5Ch*2+q{%iTw2~=HV}lM(lDj zOUwhvxf~8PtEi@mL^3ls3lqn7_H=eg9S>`z#L%$R-yA(>CSKmSMK1EYx7|g8bCCcq z&KEJT)8|&5B9leQDv!Vn3$g8-N*p>_9aK}EkblAyQn@|2;o7g@+dsM$xBu|lXqx}`GUB6wr{4^3rGJO}B~);PmXp{SW_EnW=D8P5m!V-NOx=xdoFay(NM(b7DPzP0+s$WJ=~TnokT4 zcoOc@Q|BzL0=Y3hpDuD%-6S-1bYO3H7fQ)w1d={XtSH0rp*eW?jX|tgyAjX-$3s|l z_N8#!Hz`nPE481~Kvgh^trC0c`GDYEa&HdOc$Ksa?>U#%Oe!tipk)PqC+kfCUY<^8=W@&?R|13fbQ zl}U~SuP{ak_`DfVo+ky(unvVwe3lI}%RvZRe2Vpp1%f|wuyUf%n&dP_35eIEG-Xcb zvW#{ynoUlAE~f*i>Y(|wMsRdA+b>>|irJ{~kI)%%CEyvy@w_pQ7m=UGMBG}SOiIK| z)X@qYfub1Rc>ZNf>FULjV~&AJM1(=!1HSu{UkHa#Wl@RBgZX_rL8?A;a&!dUhX`RCePMv7HT}CN)y-x`2wLg6rXPtB~W*>YIe)pS)rGulUtOosb{{}}@ky=0w z5JW-n9My*MBGi@?OFd43Fv{o2z2YHqBjok&>Fkwj2nK^Mc!JZ^*=@dGK>{+gPhCwO zf6(O6h)}o7P}Z#L@uTp`^=p@xKQs@p;C#pAigFB+S?Qt;+uYKISTuqY4%{DWwrs_D z7haCvKJ_eqbko-{W$qFZpi$|y)>TQ8{e}R>e7gH_yhhsUSC2e_w_jL+DteD1`Y=vS z6@Gr-&j^#`A=}xes@ohhO;>^7PDN8Q~0aLGBR;HzK!GI~}mM_Fwh zMzR?kI%@`xgqHTDv{NM48T2bg`v8X|=yONeyOZihTZkv($&{G&tj@;kp8h1=uWX{kHFS4DfLl!><=DM`B_4hJNh~?w0P;df zHD`3;xL?h35|7HS+G|zNgtP|%Zk{RcE2ORBEmF6D880V&s8U$gjHL%;r{y{#;^b5QIwUH$i+tK zgL8afh=eFNI*RGF)%e;;pCnZ8;EtD;CU zTZX}rlroj3=2`EXq+NWLH&Mr!a04UcdlwIn7nDC9boOi{5FB#cY~BtsVcmq#x$3W+ zPIO6LSQsg?IW_E@F^>X;CWWsMdQe9%MMKet3+eJqR*lCjoQ=ch&O&onmsIZYW0_)= zi4C|&s3bokC*sYmJMhe^H4>1!>LMQa$`rLJ_&9WsCD%SNi0!1EcJ6G#^Dn-JyYGJp z6KW>lp$G5AqWumT9bA0SeI6n*yJFMk~yd-^ayo^3;U32NvtR1_8IYDHi)qXyFj z^t{!v%)PB>hb_fq&-Kt*1K@Y`|xxuukcLAbx2z{*xu2Ny>ty@pT{xvhPPl~dF0o4r2u_GOeQ3K1A z2WY^%nu)H9v~(blUrT0t1&i>7%P+y&wQIox>;i!>+6G3@F*t(4u0DYbg**=|5*2EG zQw_kc?AU75cR-h#h)1Yh^++J_JB*uEC4#f3a}WM#-CbWf>C9Muj4nDQ8F4;MEq(py zBfwl=UMz8k4#Fhj9av++!_99DJi}aOD1Fsg0b(W?C%GK9t*Nw5K9U!tOC8rVHDhxd zx!81}iyNoQsyx$Vt5xBBPO%4waPZ~^nV3lzd$X`95NVC2PXI5u$exMh;PmG<0YcuaU|E?= zJ$A{9b9h)heKsenYKoa(FK1eTwY_ppibO(3KKZIbA-eVlDud4d!c}!7?47vqifiO= zlWHb{Q%GqiqaW)^dWba%hX)vk#+kiLW~chZWCnDwmn%BcP73=rOh9FEK1Y$8$je&( z{|Jt0NgcP`h~IxvN1|f|C%ahXakNv0mC_4$CX(nPj4_>rXIf1q%9;L+8|76#QR;Ux zTCL{vm?8yCm3fdGOdqy;U!3ADurL7toxzw=`_ZXkA?UMoLBr-3BiDk;D^GEr+c zY{tUFmg2`Z{VN)$F9ZhLWnMR*a+oB`L!AG@F*}Q3{r-{ro_}vYdoSi zk<{2+O~<#KOEMx9@h)%h?I=KJxXin+1%DgnT=2GWE7mP=%-i}Q+P zq6~isR&CrCynb&RTH^`KomfpCRH2GV@TpH{y&)c)Hxl9TP@jzvCyh2Tdu;lc8H4M7 z@^wKIt79g4D#?$cvM?V7bW>8vL3AYIh?8Bu>bp1M!iz7KJL)hqxTT7x8PtjDhN)dK zrxN1=X|5L#ml0oXOhnFH=UvEmkT&1KwwM4^3p016jSx~w%w?&D3-YiG1_n@pbXdw>u_XJ z8o0~=5!Vvz!*i3SR+XqgnXWNm^A==NN6#4|*RrEGj;44&rq7>^GcP$0pE`aSf^?J6 z-y*fJ(5BD!D&NM6r5xQzXX~Ju>DRV(Cj!SxY@P2h-3Jn2bH~yv28a0c4bSM*fpN7x z?I784%iCxH^>i3~u^3Y1J#JdD0x!Mt8oqGpMfk=IUllIrG~qK_G?;k~yc*_AT5Yo5 z3liouC|1Sirb3W~CsM={oYOe#b6=FdHIiq^re>G{yA~F{?`d7>DBou?AL1`I=@8Cs z?d|Qvya|<<#w_r3sJFCr-%W4T^VbRvuK~gfSJCC)*FD^KUBn+gBcHsF{7{rIj}Jv$ za!69Tvn!4r9X;Y{#YhG646HB<5Pf*IodMk;Azc%sCMyZJaR%OT(t?lr1_sf^T@?}| zu@DW|sB4&rGmbbLpE&I^@E28cWDe<$CY2D?Gqj{O7x1FADwGc|R4*QnPN4dAEe}tk zbM(zKc{5YaAf|~=KYM)KH#RPEY&4h2W=oNKR@XRNYVt5sy7GvC;ht`^tyzs8ZvLa+ zec{@#Airj+6jY54_DK1xYpNCvP}WIgpJ{<{wa#=^tVlGX&aw;k;`a&{<6p139BbBY zz=Yyb;hRo78805Aw6Cjry-X(F2rEn>zw)G*int^i#1V66%KNU`*_{2|s?|UE&jjPY z5*)MErXAA!qa)|DatNCYP}wuK*ZAXc@v zJW#Y#E|f{3rw~SB&9tMn9SswzF{{1~RYm#o{gVCn!_vUu-qH}A(7n(xdsWP2 zsW84Ow$fb*8b=v?A%OsQtQJRgQ#zjcGG;|80<|E?_Y&v}DEHSLo5$tTwawClZRUBp zij{&Z8`&F6c6Oj`%NC6E_amI2kC{uC$^<Vr`;rFvsv#wWN4sq z-(6c1a;qSq8TI5Vs>O4UK7jB2_;%42wPh7LkUthP%IShLqqWTVCS$fl)AN8fvK&LB zNu0WLKT!(Lt=@na)~@?M^prOIC+ja29JAJwa9q=uNq@)h5B?^c2`(E>jmV7<$~VG7 z9H7f)oe#O2d@sVJskj8SFFC;3E^KUR$K{_n78jqq3`Id7rcIoHGP=pJ$qfKkrIE{? z>FQ9Yk8hj~R`JMZv++_&DSy-2L*E$V4y%G~j7uo;)o2LK(NG_}P6T6a*u#-Xu(+g_ zH}qAdQk6+j<(XtwNoz9q4Ktqh?A=S+gy$y|Vak&INyF6AXBb7QyZb{^|16DvY@G=g zp)?6jz3E2l8B-!na9JJ250z4;!&k1YfAD%brvLHKJ0$E-wAe(X5QG-VX_llKQcv#_tFA@ygb6}W;E)iq zz!;Op%a9YOGFBB~#yG8IX_INvBd&gqXpmG&4uzWKPC`>&37+75@<}IP{pPJ|1L^Y> z@{sy*ILs4DZK@ny3Txh%4=#h>1ReNe=1if_<|Cnb7fYr!(Ebb_n;$9P{a?w!Uo1Go zbhG}%atB98&>ruU56SZ%IY`!?=tbBLqNFf}eWy+$K`NBEf-1+%LqQ~nIGL=*+FCsR z#wyJF_RYBZmLI@J-c~j-=(&idRz=k%`=Qb^s=;3(z2+EctYL72t-S_=eK=|?nSIXk zkEHOz@>lUZc{)cQb_hO6!ZWpQq6~nQ7FS&q&Mtd2R;VF>vp8yG=?zE<;lgLk;)$6zh?=Gbh8>0ZLl!}VXe5>Gt$qNgE? z^9v9qO+KOrk=arK;PWEa-auULLFY*~JVHTQiZVEKMm?FS6gIc)!I1=t2S-zn%x`FT z@h_2w|59*xMm4WsF!-nb{MDkuVg$*%3gtxvH{?b0CCtx+k%OH{#K^~X{V{9^&%S51E*8~2MP(&*J0zMa2bWpanb<3U|I%^vGM;tu; z-kNLi7cReR237ngi-{ip%*t{JX)4#(XiQw$(u1AnF!?dAU-4<(>>lMf;4I?wF zba#W{tubDO!YeAC#5K4QndQeZw;}z#asFI1F64QnS=Ex0$*77tI^ChDO2e?*E`c|V z5e%(}se%-aJq@h0ItXZM?IHvSe2sp^Ualg^ijl&YFX7CnFCBG*rt6D;Kk1i5I||$P-)G^*#4%-$la7;a{%*jw*X#9y`g!D>Gs1 z$f@!=T=9yaTT^UZg=aF-yp(rmc_|M=baUzv$ZwZeEBn@-KL-*mLi$9NNZ~lgq zoqYYa`{=#~q{yL=@RyW&4kcB!UdAW)c5rw|ipw)uN4FeV$Ro{FT3AG;Dn){w!F#*A zghlqadDF4Iz2%xEQyUV0mEg#9xW9dsl}G&*r!|D|+TIkV)RhTh@9jxqVgcmF4UT3| zl^4XavJos_`#vVbmZBm*Uur|v@9jiYQHg+8o>NemA0hlR4L|(pUD(pJ3y(eWYXmAM z!|B;GmbcOBUd01_V<#36uSa!D`n&|IQZ~Ak#Ap_%&WDVi=Br94biPb$9hg*v))?@r z;cQQfINE~~{HJq2MyO03va3z4O7_Bw+5+POk*+CI9CM#pXdZj`0eta_FXQg7UXEi9 zJqYLB@I&eTj1ivfAPmWgVFu7V#h0;@cwl~2=F1a(n3W=VG<2S?JFF`)n# z9=0zDQu4ip4Rt^MYd8LHjpLZrvZ+72syh{2eA(;>wvi+c_QuJh%1IGXz#+U4R)y`S zO^YJFp%V|kvkG52_E0pI6`{F#Cx+<*MriZc1MBMVCGRGW+`_qd`ni`eZ^3?e^wEc~ z&%FI5Tt7^pnS5%k33P~F^XRcc;xqxre@rQ>WRfkFE$2EQ&ve+fm(Lm>X*K4@Z2owl z3azb-X)*yr%fya!+Jl#^1wio(`^G~3>Z(v4qIuZfv>W|{gYpWoXr8nuWk|blO%acW;;6kYkd>;-0qz1}l81<2eO7J}NT*~z z$Kv{W97CFhCmr7Y!dqAWEgSz)1t%K|`;v9}J~{<{OzP=Es9`oT2hGC94cibPq2bK< zV1`h9#KtjoK{8`aczeerG*(t&R?J1)Xg{3%3aM@858B-yCjeN4{in~v+O3_Ib3SnBYD4}lp=@ZF$pDlP_3gije2iYl%5xklHd%ZGv13yRn=->EPbA)j&|%r z*ye;qbHL085B}lZP3f%t?%%TUA60OCF<)+S9=Uh@gDIrR)h(LRh;*bL!4*oQc-Xc3g1D6?p2Y zXK?#%|Aw0S+2jTFAT>DXsd`IyCpzQ27l{n}{a!muPM9uSZxE~B6kkE(5j|VVwBwpM zj4@Xp@qlZ}Gn5H3q(>gRmlhbKp$u3bD-)H`tRB#|wCUq~S&+=~2dm%4)nEB4t~vQQ zESfP5yF0pN+A_zkxO;?WytA+{CsAG~>|K-4!EuEFSMbq$uV#(kT?j~?_a&oA@8&7|*8)r|5p>CuVuaRq6QmSft_%scZN{t30WQ&JUT2e;X zrw~s*^8#Lf;~iZ0uh-z3tG`4hunZXJP=mTmo=3-Fe10>)%lc3mr-`48PxyHPqP39` z2vwRH5U?!*sr#;s#;`RGGC3!yyVfZHk7yh4;yB*x`~9BwF?Bqg?_#0Zy7>cKPTtd( zPdo-o=g+~;_D=DXRH41&ncB3Y+L(h<%k6j$053<^dly9WGFdnGqqe@DFOvrH_tF8K zR#k?DQyTEx`>Whn)^9zZ9=`Q&-FW}$^#Oc@#g*>gEG!Iur#n)K_MHO=_cw#7W?aG| zGYhk58&;hJJeNGJju?2RWvXu%@@m7FUSZ*dtvxcFlxvl_{&j@sH)v9!tgZ!KIC(ZY z$P`|C?e+NW<4@v8H-8rgAIj~nX{5V3iL0{bevK&$8uxj)~3Y32#o+tz)Q?} zrpFp9qcHWt^vbv;fO>pf>!cXro}mmj z#T_Z37+}d^3XPnNSRjQEowP}%A(Z%r(b7MF8FV6e;{$$2_wwXC0LxkUiqcY4l$7GV zm8)?0VaMVNmtTr&zw$-Y*3Y8LAkEO*j?8FgED*?r_5wZlw7Z_WZtIwgNl_T@$i#J2 ztMFLqgV`9PH3Z~p@M}CV6WcNA4ig^0AK@eZnd3;R$chBLv>xxh|2D3=@=Lh*h=XwS z;(6HF)-mRVsi%mk%INEaj@x*g$?h1|6XnZ6PrAOMyn@TR5(9_k1<@ZFju* z`h#V$^6z}qP4|Ci?nkv&bgl8x3-j{(s_Pdw9I^BDO{gy)MULq}=mRitZW#gcA_4S` zszyNea6VHPKr~8biB8d!a2m@8hJ~mpFC3BiPdxpWp@OQTQ8grKZD!^Z0PiCZ{ga>G ziH9G092Z`C9yE!SRGo<0BK?d+Mpj@ZE3TgzHW_k<8Ol)(Vox&)>4c0rE=v6_8jAzMRlK90BRf7E zTVvypDj(jCTgW3JnN?)vmM2Dk*E5_vVq#&efa{v;Dk`wOwHJMZLx==@UdaOsP$uUP z#tC6w-Ao~M{{9bc!2|a`gwLLPIxf5TJWQUZhM^(RCN8U`+jv|Dx^TIs|(JTQgi|K^{#8X*pOOi8H z>cgpot6GL~VzcAf0BU2F9SdZih^NzCu~g=g88u~?T2TU@>%;py_sXEzP*7#R(`nUj zBp{IlsJx;KHFhQTwzcAiKe`on{OoR=e#Xf-|C}>$z@f(y2C~(7MLowdt0skc!8qdv z8?6KVd*d#fHdyIa)nM3wTER5FvB`d>g3s34$M6`N*W^0lKv^AfBXNB8;xo~_?gRYf zic2uDx>7i!O;v!o7F&C1>C7-{=gmj3xCm*|NPKM^2xL>0(QUzFg#t>ug-LUFkvl%2 zD1uivZatU;evp$jZW^6#&_l)KMiXXA z(fdRSBiN^ODw2c4xbyD&@vD1(jpI*ThO^H&4JUu*LtyG6Z6HCu(uvr;a}!QF^|Po8`SHLFS4)B0-mV^< zupNsTDGY51aRLu%Et@d|hKV3CoYbzk>w)jA2JGyPbFY75Xpr3ZBzlMJHNDByTC+jS zsQz&*|C~x2AM@&_?L5-40?%35?EaZi0)pi+baiL3Ch@-K(PLmjDHhhU+`J{%poBrO}-;Ii*l6OL({7*~>zA?Jn@w9F1QZso}0X;uFWeSEm zyS!3SUfeO8O65F(=htC8x2vlS0|bn#i_4am6_%Vt4;}pP*kFIo$>P6hamnCucEEQB z?eO_MeMy7^mTC>*A!@cC>qs9;uN&oO|H~*u8oc{^R-~} zy#o$&#-zCFC>jhb4ElKBnjVNsT7l_R@Vpvd^!}2^I zo_WPhYBj|bD329kM_Y^P<=U|WSAPCVT=$KeaN?(q$K@BDheZc2MX1mxTF6c&y^a9W zCM|q^rei^;BNSh=ClIb|x!8yk^J_QF?Kim6j3W803M(g&rhfxJX1592M&%Xce_O20|Z|F)CO zeq@*X&#jLf#Q6)BTXjq8x5*D!QCXIIB4lOClHdTKg}7s3`JOBq^Rnp61l|r8m-H9q zMHh#8?)cECX1d~z(16T}XzPuuKpr3f(5Ksf{aH1P_QMfjlhsx&Aza{8SzJZ}nMFr` z2kyM#8kubT^GBb=6Hh*gU)^&b7A#(j3&|Th_mq=RSTjX17&84Jn;>kaGB`xsV4cqJ zD}n?T1go%6Tx{O=q7x^QwGPUK#Ym9WmbeDOX9@? zQ@9&+!uD+xMXcJB^P9NTAMla?TSz`y&Xq5JR4V^dpcfSy$*Li z_7tx8;??--H@<~qjyW1s1`m1jx7V(Jsc`@>qr&!wjs@?M%-@bYVK z;@6KqiTB=KiTQOk`1zMF!?ekh#A`C(+3)4i)KadzPkT{Hkqr$Fpnmbb$g7<|%CBFS zePl5_tT1j^W@kBLsRo~K6Pde{@ey)Qf9?7o5uBM3??yGP=s2 zw1Zb>GmQm!x;NnaNp*1%M$?X(3a2|0dDA(B9wt|EbX4_01tUQb3@*;*0`!cl2D-Cp zGsH!v&uT=P@NKW)-cP4{_2!-U%wa>=+ukL>@}Rl<;K+R!NaXg3S6;)TFTR2&A5+BA zGiJ@i!TT-3#M&Cd8HFe>Ek$WbF$M;c*tUH;-g@Ufd_Vv^(c6nd=g-DZuDBQn^SGYm zFm`uzdHFMrLGd-1_zbULAf$;J9jPrEB`{x9Q$yNjflL|nMm~~oMIs7TnDmHt`R}0D zzKVYLv3pK`ZvBr4&L6Geo0k<{Mqi&>y>;lWBVNo^BvS5ik-QLQRF+-BG#&B5l&Upx z(lT7DYhVCbr%b}d#~zNu7thB`!XeCOxSIsh6xuuEQVybREFCj)E!}9Sgj{;H=tDIuIY4^5 zM&ohi*@acZK+|qjORf%6mfirD&}%-8zr*@_2o3_bO9=>lVBecgE>MmDt61mKNhQT$ z#tTEEgQ{_iPABK5`i2GwkL05-skwz+HE2T`^s=^8|8c{;kXK`T^wsZWxC8#M4j8JI z*{=8inUHSGX_$=OM8<2y86vHaAOOoCcjn}J958n_{^hh!qmw+c9@@y(?p_((&gPOy z7V4`jF@O40#Pai{AiR}?(e!7VseDF&%m^XANWo`3Q^HZ>k61uP2@p5zy99-Gbx4tk z60eIiYJj}H*PnYFum3^DC}41O_`z6S!IvR1Ge`*He|r601ZUjpv%{k{A##rnbBkjT39Vc4KAsT)|=k$sr63 z_jqXxlQIyFK+Syv!_Q-i<)QJ7t0L7Si3G|gO-9|~{g53Q(M4oAgsP^HmzTsT=SdU7 z?x~Y!e1X3H9)IWc_ZA$Suy~gF_6RyfSM6$#Uq>b-pT`-6=v1~R<9MfO`GPx4F;JeR#L<%13;%{9ZVOTW7!LTYXW!IVnC`CA`t1qFtA>exXCWRj? zy}7EHk9mO|(lQCociD=OlbPO?W`kELnDeRwZBKy4)9)L>fvrrfrNagpa-}1MF-$pR zsTwvyKl4m3U#td$eH}RN*yEDjJ$*lzK6&~r^hP822Uvf1!5Ozkwl(*Bm%iRZuJ^Y_ zGuaC^w(o9T-`aE)ZQgGS0>R51%_`1XCNC1AjZC0_uphh|+;qo;$i#wjx-rnS)|&YjW`KP_6L9lVqmxYij+q3U9ZMq!#~i#- zh>Uqya3=460Kz4uWGj;hRn*ICEr0Gw=Yoqaxp!|z&yDnBJN|*zKa${>)&Bgtm8_R< z-ZPM>J#2E}>zlh%q%A^~Y=*f0HX2c#4g;CdHDr<+$@Jv&=B1sna!@uUhNNgk%tzwyuU#wqF~ zE9bU~$nCD0Gnb@^T>e-H?<{{V`{SSd?7>H#diExI>Q4Lvu755CY4d1j0^luv7 z?j`J^$H)!$`-9|NwLL!Sq#lX{L%-&E18Fl&FQ>eefM3<>rZOpE(e!1k9GMF{=u^KJ z3`3^Jks%#p-3ms43!?!8Y#Qm@Xh%32*>1bOLwNrfbf;u&Qb>lVD$hriW{wvKE~GLw zG2@rn{H&?;8&}+Jo@;7i##5%5NUy}8NJ~|g7R%SIdzzn{2M#NrRlr&30 zBqHMnI{W(Y!rSi-zp-x9Q!7?)yk}=i7xM`JN&44+)b-CKIA-xNezm)A6lD?n8P^Jb zGLv;qBWYMhSS2cTx_<7I7$!G;;JcPT_!9l?8;0$~)Dm-YGBGl$SWm}S^o^^=Ep(wRCmkt##{j+gmy|ZENm$ zX-8|v^IiQ(p7%7`SX+*N_Vv#$IO7+GqnSyN!6p9a8eayTF;Uv(i@S8p%&c64AzbL-x1&F$;AwX}V( zyS?YluKuC7>8XjO^Jd_G+xp)mIDfoMJqlNhe`@B$Y5aYWlXGU0=BQ7*!wn4+YwF8l z1r>b*$x<>;r6f?LBq089C>RQGX^@`- wH??*&?P}}X-4P$$Ot0VnsRI|{|A+N|0jr87%=&4TJpcdz07*qoM6N<$f(#PVTmS$7 literal 0 HcmV?d00001 diff --git a/src/assets/images/zzz/Wise.png b/src/assets/images/zzz/Wise.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a34361f9f657ae810fe1f53fb86590f0438102 GIT binary patch literal 41199 zcmV)CK*GO?P)Hp-DtRRCt`+eFtEi)v@lkRnqRNYt^geUgh46ZQN~4$6%Xc2%#l` za09uiKu9AYgfvJXl$X$(Z7{fjd+(Ml7s-~@doSC|o0)TVP2RijprtzVsmetB2KWL_uy2Qk_nCyngg~{HU&PLT6Ve%8ng?#~(zjJpl=+ zsYpyt!Giho;PZH3G8)j@(h37z!)P)gDLEA}witNn8Zd;heZzXtTQGapOvJ{-VEU|C z2n2(uuBk(e)dGY<=;-P}d_p`L8e7oO-Hi-q8Zy&T5C{Yi4ESM-i$f?3xt`HrNTT0{ z+T#<7Lcw5RFc2s-Tdf&%FR4b8F_m6R4TnJ&2L0I*Z!j46I=u#iF%S-i0!E{$EsStG z!r^wK(byachpWP&P*o@tx@0n$&IND8ZRHb^nU)FiQdTfY%&^QrT6f|S5()ava$;Caj{sia2`repTUL7TI6RrF{CIT zVS3-`a~0_B?8M~B6XA9Dqpiz@jeAPb(%Fk?!*elmU^X%{GH6bk(bdx{WAa};%=n*s zB+@xmpX2Bp6$*t5cv5JBY2rdMp#TY#$p|w|0RKG{4uXV&WFss>N-xLr-{=oC;U;I0 zgu$pjDAyoiBB2O_|4v6Wou}wLM(2KgcH@8G@jpp$taQ$xa}k~MNeD*K$~XB;K3J_W z@CSk<95l%!0Pg;N#M$gL;X(Ll#hcA0(NHE{_4GRnkk{))kOaeOv4AyCn6(96!$d;H z2mh{w%MSwy8efaVselBifCO(Dzeb-6(VI%??OW;GMCTqlefS@6{HqI&jm~9s-b53+ z&~A%!_}N4SgCYcBn)Dz|Xc$Vngju^7j3Nj|G6P;u0G1dlO}K%~i=Tul6xBBTo*0Xj ztqTcNP(E+eT8V|mtOd&N^TKQ}%kOk~F-iPACZn0JVh)|IAMhI+F zSODm=U;yL~1xV{Cq44|suvo280a8Ch(QC-pvy6nrG(}Au3nX77Ko}*&!bSgPK{T6; z@>%|!KI9+)yPiIKJqc1jeSAHgFVndVB6j~e$G?)`q|kYHLtXvdBoD<5Bm*>q3^Zl6 zvoR46Y=DozriC?5h)szS3dS)8Ll_Fygq3CpL%=G3#-OK--^-Va2!og>!ZD(`7-iEN zS)f=zSyQoTNAB4f0cVzWr!V<#b9Nq=8S*SJV8zer!t zX9xZTj(-Kg89?VlqsNWEv!=S*&Ql-okvU>Ppb0e^!|?eSHiT(1XaZ>l`uh42YoW>3 zxP>R0f49)Yv3!K+cb<3_2>xj$4HK4E!Xk*QHAJnLAee@Mufj+4jv$*YB`7RNEC~D^ z7BW{MEsz${cEO<1K7@eog*HnoGPs5=OVj$2h8(F7#s(?(YPZ26~pxO8gTa z|IC8J0`u6cY139to<76e*3u&GD!aNone5Fl;AOL55Ft{SBt(MX_4{PC^F$g$1Ztr$ zkH_Ot!V?xS0+Z#kNrL*HXo>)T2WuWOFG0W7G<2x<@=u6XVeAu#Vk)EhcSyP5{M``E z6_V4U1tuauVbORB7s)e`=JNZ3cDnB`lTy2nF7XDPPvDUotaaF=^0NfAcV|-Ci@uYflj%0E&vy&G^Hn+@qq7nJM8`jq;BZvxVUO4Q z@7p%4cg&eF4Od(_4>h%QI!@x3L5+!xk;!$tJ?tYv`AP;^(JnGkDRF6N>+D9a%Y}HG zO=2-DBrI@j%6Lv$c=#}JV2<$zPq;Q|0%#39ENYUCTFde85kX{OiMa19DDsoB6}`sq zU~T6ot*1OOQ#8QG!sBBT$=Xm0QAA@gHew;;=Lm_AgWqc*vv{}5<+>$4F80TC>1XJ4 zlg(Cg*0aIu_hxeBSI4hh=yR(6`5$k zG3@FGRj^P1Z%}Csi$#HQwp1KF_60+NrT7SiG_WQwE*OS3dvbNrY~qcvMij7b0BIZ% zIJ!^r#_)YQ@1hs(hl&aPLyv#7;H1&{^Auh9id9NE4VOBOG}sBsg}+SDYvL?)9Q z=zvV1QGd)Jg1{?Oa14#Jg(j)5uTS2`6UM8YCtV4OKEjBas-S3^pt#-=ykh~P%S&XL zugeo|GHGo9t&PIsWwCiNYGD!cN8iIj8;*i&a`id6>>t{DY2vq~KiD*4F;}^sMak z`np=2J-Qz&ZnzGGLx!Qgz7BRWN&b*gyd$?3=fHJ{+L< z@2kxgqNyo*?O42H3SZM{j z2ro#WPEVM)wP6K^{d%C4mlO~IVhzCA_KvPDjEIY&2{)kM>n9N{bI7VVe3Pgz(QMqr!We<+yO~J6-UpQpd(Pnk3 z0HkvBgCX@Dg4@Ch>a*GHcf0BD7WiE4*uHrqh7K8oQ6=L@V7if*;DFt3M@L7uAw50g zzMh_*nRJ2c=`8>6n#li7!CAgy)vbT%YHm)nCnjU}_D>P)?ZAT%eHE72STr^?$WI1_ zo8og=_3JiN*c?7q@}JlH`JfRvOJoH~740JJSG7Cq#7CEKjx6RKLVo9t;j20z4 zVdedKB;u?-8VV_JEwLsxU)n^mx%1M(iH(UxOH;Gl^Y-oAaP4(B3Wz2zOQ;c?tTjvg z$3N2Nbswh7-UgM%_`4tfU4rwSTh`q9M9A$jgiRKFy#52E$H(HHuRS6I*wNMoMy8U0 zq~Y~TyiKJ6tU7Pxv+K8f8Jh8e3WauOO`{pcbM#NXG`)tNx|z7{Ix^L_lCb6*L(`+;A+-D~oC7i{EaUcgl__8_8c>;TS!scg;?~fAX=M6N z96pF$+djqo1q(58+!!>p_o16y^;DZhLi<4xPL8!0v`X+&Ls-6KZ{d4oiO>h%9Zf$L)!HpG5_eakIDUe2~N_*GsiYAyz!PP$th0k+qna6 zwN<$Jnxz;!eu6}U#lxXDO8$rjm?t4505YKPMwne;TJ;vIig|>U*JIFtR+5zBnHZ3t zlY{;H_F?zVoif{1l^4<7*AHi+4V5k3=<@|cK$up++3HB5k>4w;JEY=7lAi)ZFeNC+ z09gn7{1S{aiss=XLa_+yoRm?=bNDVfhsHQ7mVkK-$8C5qu)yh@8E5H(I$|w&$!yY$ zM1uf%PSQFOl5q0aG0d1a8hNv?gM|ce_Rt(``t(y=b=6Yw4C7*B;9;$%fxVA3GvADz z@LgI;{JfgxP9~5ornBpBJ;8qu!Eqkhziac%tF9mGa3o^wn{OyQv*vchCnce(sz%`o z9Y={ocg3|8U<#Qii$rQevQk+{IG`5h$4@!X!>82#&?;DtY~B`p?%epfHz%trKj0x~I_Cl^|U z)*@DB_=$xG3kZ+!dV)a(R>dre>kpm1_KOhnXQ7{gHHl2TzNX~H__zc2v4GJ} zFPlPxiq%N)lAc{9T8&YF&*qzj;Ly=yNQ#fc0y0Zse+LZqBrL!EF1-4|C)m4t7w))q zHJC9V+Bq2UJVSE-{rxU6)A9CL4jqj3`GZ^Nh1vKU@}K{fg5%h_d*7xx*RL$8Ja-ON zWhby~{%njJKM{>hO%gVbA@`EK8u%%hmhurbOk{CosDs-29=yJA!27pg^2Fq+^nqtb8^7-Tm;=ob#OXa{Bs z(id5crs#MuV7JD`;lSR#7(Hwd94Q6xbk&lp?mZ~Yd-!)nCEXLIM#}m&hwu+?^I;~7m1`*jK6`m^|uflL!ZI=a@gmadt&>i7(cEA zixw>smD}FYfmo(NgjL=~`6(eqIWQ`Q97~WvuTp07@gcNNofKp>?DlzOP*|O_7Zae# z;NW0?PaocS=PkVc(l6w5-+l7Ou&3lB#bLng>0_~T$1YsGY$1~3tZ3?SlQytN%UL4n z2+4-icgL7j@Qnq^sN*YUodJ*F8W@!3W785TpAl0FC4fPBPL49s@0_N9(n=gB5^v0) zqtYUnYUm>gST=)vKQ_WGpM0Y1s^6+K5@)DbD-0Sk1W!Ev1SX9eisjeehG(C767EnetX>!9E|`gFQzqcXyS|Q& zo>|CBvZJ}zgAT$v8SxhQG|?Q9JXBZ-b%fe!(Dx82r1SYgnh2&U9U@rFq^S_Xonery zNm?9(VqxO!b|mO1d909%Iq{4|Vm~otY9s)_*I=G0*T3 z%_`0n3`Mi+%qp}x;;?k#Y`pm9C%FEG8%Yxd1VhD>wqniGOXe=YX68jrzxR=&VAhOD zpJ>7;MpP_TzUpw*t6~P(2VD`-aRXk|0!A%cSQ&pv1Y_)R3MuqYX`rnEO9!V9b z3W6}3AJgRvM)@}M_gI?5E}Bq(NR^m`b;PBupt8h8N%7jO9xgB8S}ZQ?+gA^9RLMH5g6W1gZFm*Qe45p^z$l zQMg9w2Q_g90o5E+k`#nr;|d92hDA`MfR9$S*QY!`vo7vqkBv>Y!C=s)OxMJ5DTV_hSin=^FJTgsAtqX4t5lC#;hZ!S>LB8z2S0gSy3B9e2h)*$LIpLc>ey|z44;;m$k;SO) zbfclmjUgEpp>9UBfy8PI+Kg%d8xeNSU8&TEs5}9%$^$fu_rgNMLZJj)r5wWgxp_P| zof0uid<3;Njc|Wh^GX&z){NTvMiTly++&tFW*Fmul1 zFF9DnIvkFtTbo-(iit5QGL=jK4~QXj891^{4tS&d6rm76Wt9V({}R-tDyp7IMTKo- z>N-2S&`+L0dU~3yZi5bK!wvWDxgN+6)IFX6w!z9sS5)hA9 z%$Mc!c`L5+WZ`F*S~LClhcbIAp&AMVqwy*R_F+kxD6NDLeU>~bJ9(g6-g*xu!v|vE zh-v6=tK@XK8rQJWP-e5D&oY(@dfKq+)>Sz4$m1w4uMn-H@_HVjUgYOwpz>0iW+SS| zG%o_-IB8xHVayTqp{L1#xnH92e~IAWFF&p#Ky`0KyGTJC$0rzM>0nv}-$YE4qB5w7 zU>8?1;ik)`!lZojC@YS0Ni}s1NKQ#st~2~1Jc9=oW8M2}F=pgoR9vV;m&c4$XEKK5 zC1S?xC2)6E%XN9>Ghf#da^u>ibFp^w9-J(%!tjC&RJEJX(&s~NlF|+l_gub5N2tZ* zu<&ViU?_Mw-C@9Gl6j=u*B=oKKw~4*pG1ij%~b~#*%TTT?W@6UFk=V5PQxx8DGjft00+Lf>S$H}5sj!BW z5lggJ-LF5I6<3;rU$f{qNrb>9+!$u*87^nMWwGe+18Z3z6piYJG`3S!6~^cyb2t+4 z&Iju;ATJ#=<}X9AzbOjBRqc8pT8gY34izpys1Mg&vjo3;<#m;=p=)u{lZD=Fi9xT+ zix{)QRRPVnR$&N(_SPieY9Mdx_w>SW`bXP;T5y69*YwXELb477o~18xD$`^T$|fJm zE8?3_Ww1OrygI@`Q?weupb6$)jqD?Yai$;`^hEH$vM|-uH^G^fDq(w<-y@z^Rz?PX z`Rvcp+17%2DA_aHXdiF@vS5Mghx1l3evP?4rM;K&otw9^}|x)R&=J%h8C8c>*# zgqXNEbb5kFjpOLFMJ6#WE*9>tp39XHx-&&U7u$tCUuL7bUZ~iJ9w6;C1*6)@s5)6h z^Xy9FFvdejW#-wWnrMOzquVmD=7?Df304u)ZC133Nc|KqJe$piZQFMuKPwf>uU`RgSB9d-u!0;CzdAuIf+vl5v^E^7Pj#KL-BwEkrpF@1A>wdGV1~J zF@@5g_%p$X%PY-{SQx`%UaAS(WM?{+_t5V`PIeZ~mzCj@4IkpcuYU_o9bGWETk!R7 z{2RUB2v>KP{%&YSmrS71&jnD@ zxq|7YE{{qwM#%AzXAwerBtXbChM?+t5zxRssPj>ZvY`bg9HEG6qPnj2l3H_y?1^q9UG~+4TAF0VKv1Bk`Z0XeE2R9bM#x^WsTMOF><0 zCyh6Rz%K$EEei^M4o`*z=(BeAc>DSK&(T1z$@2VJ!Li5wd9RAx;;+&-6&bV{Qt=LL ze|0wqgZ46b0{ptBDc%-Cz|1PEpJ5&YG=ni5jh(2qX^_vxJ8ZaATQ4hiU{N9Zg`i|Z zS6dr4Zu|syf9WB(Xe4@DtMS-39+9YMU%R55nskanJOf<}XNaUM*tWZxan-fg;SX=F zN9l=^C>b>jevcddwqzvIK=$>y==<$jD7?{-eK3-0U{GmNn$@7A!;)Umd5~C&N#Q~k@>BxWw;LW1d*wJ85E*#V*g|qm8q*)BH z^t*-UjPWFy{?2yN&|V~x05&x?3W>~_=0s^ly-MiP{74DU=f^}B9)?uVN=&X!!4#49 z|7su{{L!Bk9Q^qsi-hHyW=-}E={loGWYrRNI}K5+(o32mfdoMkgPaWqB+kL$7ZH{n zKZtIpCR9jLwT;c~D9q0h??!mN^rn{97A(H@26~MK)zgm0zxi)6N$##rX&Rs=Lv@`{ zWwt7eE}oiEMWPvR*=!lO<+??9A)k@kWH!p`Y z*FKy(UxB%^XQR)pSOCl{oSYnd z^zkMc;EeQUhT zWI{TTsl6wk*Q>n~M7>JJR?J6c6Tt$+f*VP-u#hq6O-o6^zI_MDi!@>NZL8t$snumb zL0OEp^i=lkQCC%qGv$|1aj_Pa^_?g^bAhhm#fTw=C@C3%;l^L`aKMh##nbeXCe$y2cgb0j3-;Nb&UdG$QPDp}}lDi`f#%gChF zON5sXO|tCt?G2L)M9MLmds=O_{Ua@bw9OS6#B48SKJt;cVF z{R=$#!yh3dD;rJqb;!xe!iCBjTr4le^~=jyU8JY;cKYFv3BgleH(e%{6Ko zgm{6PAjMzj4+NqhQzGGh)kKn8m4r04R0Z3@(E>l#x(wXYl9RD_|3NsDVzKJ>+u`f1 zLVQY+fb^q>k6`omgE)8Y5?o|5d93USHY}Su7K=z|#*~Z_^W$qHQypx@dD2Gl3CXCe ztVBjy62=Z4fNeW>BXeL0X)dF#0)!4xsOr>6(m7(DBHB7ar6tQ?Ce8a8&D-sNjm8;B z6S9g!*wEAnRmNe7rWp9|oO$KgOig183bHd{x5uH6FpkN1IesBFJ{nODORJLf%xr8} zzaGy%{bSsA+wGV-YYr+a%8`|xj$#1Z#UwXQdS($9-Ksw*=gW}q{a~eO$f7+(6H9F5}rGH z_z><{wUF*B0am+L>g6|V-A9vtgcE0yQ)0k0wxk%>ESW}{qtBjZys)3y#|#RFOZ4L!r3$D2n1H(`Ct7IF^*h# z+bYO~_6tj}iDNw7-3XIc;URm`%h_|fW*p%mn=MXVn=ngiVgh*?b~us}n2jZ#7O4pI z_4L3Jc45t3Yw+TWuVC-a9hkdd0lE0?Xr<5R$EifDTbdl1BvkM7svnI(u^G>$gX z-knI#NWcwOFU1uzC$nvVn*=5hQXvc@SCod7yWUAIc&yEiiW8++I&T7IU%eQ%Z#|7m z)zyfVj$;w;2|9AGVneDtClJ-xY^J4uArtrceKY`s$G$?E^(%jg#z{*^aIE3MFhx2s zL=u%8&{LdA8Q8OAQdkQW<)ll!a|EqJN;XtXgzc-303Fx=#3!fX53jt0irpV!&b%vd z6h{xfh&I9?{T{*}{cd>OE=fI`SOaL26uCc> zF4|`b0k1S$j2UU^X&6|TL+*VJiVO1KU~|C8FeM##-f}&D@bU-fnLG(5!eyEW{d<( zX!6+MfGrUt@=~#nG}w@#^zV>IW&7cYVxFLcP*fO38dk9)h=eZa`b;k4lb&!53C{QM zAEYA8HB}Y=m(&a%Hu`Q-H4atarP_HQ5Y(=svez+WqUy*!>~r}sdT_Qv9Nsw%OYJi9kue~sL87gnxXfrh3I!b_cS5*SP) z4Z?gJ&RctEtXwXS45Zf^kO;G1QUhk0VAc{$$KZc=_xn(H>H-cOJByS=2L>1CV%(Tv zD9%hp;fPVV{nnLubL|Ff`*bUAxOo+s+9tHbI}jgllGWt)1)`-h{6yR)PVjvYQTzlQ z3NYy!Ewk!vELg_t3+OS?p#qw)yxd%D-1-@2P8g1{ljq@`H-C@qd(WVwvya9qgozV| z;p%zQF>vHikedfrV}sOOaS%_^F=mx=V9mhc3l==CqNuBDKxSGZ#*7_JH{OqlgmVt; zs}rp#8UJX))hm%|zdtCkB69@u=-5q&=7&%J3^~bWtpE6Zb_Z$D`e^0YnUBCJVFmEGD$?VX$z)bwcTX?fLmyh( zJJHnINk6;MOsAW)Qx9pWAWa!!|o=F1Sg^sv%q|j?zg&C!XFlN#rdj`KEOuBhNBucGl7XD}>C)HCKQd!BrFqO86 z@rkzwx88Io-hJ;)yu0}@9Q5~bql++q&LoT*J4y!HMM8WzV8<-QSQvE;dVhDX)Qg+w zKJ0F{OksOxJFZ_qc+FlwU)YApCByOJmLurw=|e_}S@=;BLNRKFV>Fumx#X-?3eg5q zA=L*`kjztBvO_2V zO1cy=NfM4`mBdU;OvI@ZM@eXQ3YC$CWx6TRix9>vmcmZuB;` zktw3d=ymCa1FAO;EiIV{TWlQS$SkC1r1KJ2Wwm4m{e6AtpwD!YcXzS69@TW6_O5=^ z)i=>V_tFH0(L^}MLjvUw(PYGiF{WT37K|T+jaxp!&38Y5KGJfH_ISi5m|){jz9Et{ z{an-)mx=eP*PrsP0@}k2>)e&Zt&A2C01kQO((`_}ZXJqpQ?dVSB~G0_i{)dAFp5BL z$&4xD3ima)sz^9JvyH~zXt%@H(Se!^7tq_)A=-zzH9?LAkub37?xn?(nj8;fXDwQe zeI{*uQ&UoqOCH<#rUsPc4Hvdh{a}A1%ibYNS?@mxoGWZL5HINaYnD)f222`P#JiDr3*z+QV;6hOwrhu$r!;~ zCRKIH!p7}al9Ew+stnDob+~%zO$c@O;GWszkW-KkS^?w$bV}}txyy0nsxug_IbDh> zA!s=ym{)e;5>A&_a!(v_K-@GAeWaOlhmM7}w+A0=DTOsD8-oWG!AUr8LVgnVA1jAx z`ZzI{y`-HY@f^3mpM)?r+KtR;)ZN4+kEK9ACqR39x{*TnLpbLydf%T4&i|op?DWCq zEU`Q&Fd!-btax265}L|7a;F^_nxCngA3-NPBcyCYlxNIB$1y>!RO% zis~8iD>h#qX{NlwJWQ2R1TR|Ky672dQC40>|Ma8N6~dyMZ^t`tyoC|8h#Yh;yp>TL zY0^}apM*>0!NNhcCq$$ZX@u6vBNJ&WCm1NK1jnFbI4o2#F>%PxVlfhul0^7m)KPq0Im`JqPDA(g z^$JjqBX85~axbTQBkX|wsNnQ;|4BXiQajnHl$7LX@{$LN@kEHwcXLM%sc#EL6lW7C zb}9EzCRP>ADapBPCmH=SkY!apbJ7G1$j=p?$Q$pi#rk(&!?~kdk&-h2-L(}Y3^9rd z0o8yyr1wOyk-9c95M-C0%tk*AQdfJ22JIoCQ*xq~3FxsTs9d?|C6gz$OJvfxK#sAI zga+ufBzn)x851yb)@1l;AzVCOic#@?Tr4fduFtmMnwwXnv8f)-)&Ynkpd7=#x2AAH z2lG^LPgR{p7>p8jFhm4i5sw*A4;WaCH{bmLxef#Fxalf1oiCT}$ZWm5$C%8Pw&A7a*5bzL8em+v`8ZYcKv18~*Ss3@(|0?y53axQvzK z3XJ4+)9VBp2=KsER-%f|p7wTh(!;PYum{yfCQ|CMX@cCeih^DOwDeu6aaIf{Dn!w+ z;jqOgpx>`5He<<~kc1vnF&b5ucAki#qy;^P_v35xC*ba1zK(tS_RFg6XlX!mY$37? zZ094?5E^6V|3sTUs@z*px0%&Z3Wb4aA~Ms{QGTJ41o9KCd-l7eUHYWf%AS#ln1lqx z(!{vQ9PC;5KHXCzri~wqp2S>y8Mo2}pJ#DV59_edhzKS7Y(qxl-GePS<|- zgLm-1UVjxg-?S1{7b_4$w`kAEK(WJyyaXG{jvhio%_Sj=u_pKH`{r~-e7X~_{r2a0{<{xh>8O3cQjca+gd!^pl699#11b}2lttmdD3`f1#8 zDFIqELx&D0Y?gtlT2;|-=FDmG#^&Sk?>vd!dv;>|+pnOxwhF~0d`5B>7LF~#UUCjN zO~f_kEe#E#spAt8$q#XB2PPbi>#zW^*6tuLjoZj2())Tip{#^!0hpf11#2ugCrVF7 z1ZNICup@(3Ll@cI*4B0j0&(-ji;bPgN=-qIGl_6bK-Ktg>OeQGHW*a!jaP6l-7v>m z*i7YQW=g`arK=CS_U^;muRM?Cv!~$RC!RpCqdJNgn7Ck1OhOZBl^&XOZ(A!$%gWF} z-Wp8_+$8W7GyrEVRH3W0iyqn~S!XBRQ*Lf11`a63=#hglYsNGzxr6Ji$s1}c!-@U- zQB!^%ovp1X9y?yhV)Yg0kxYOzAO#*fR6Sy zbjI0XBM&7ZMr=&HDcI1=3C z!2{9T*@5HRK7)xS@v8X?(LrGMj)%U5O`m)Uv)zF))8~NACrgi`Wb6dA)mCEfyBFam4{Y3o5g1aOgNhwz1yb;{cGCE& zpsw0xAfTInD_(U_uud#l3RU?LD^036F2{1<_4ysNShz{$ry@9JS2W2vpNUd-Qe$1T z;^WBeW&X*fhIS;8-r)IkWU7mh6{k!wJ3;n04(^X^9|uWiJcx+XNVb?AEO|M;k`uEmjK zC;#McV@8j_JdQ|TyBw3Ry9E;vi|%s=ah^00bB)t-a-|xwrMe0UwE9y>xOs5WhmXLe z#(Lbkcs4H9yoFCUZ^GhbSJCQgMr&-obo6KK~lL zEiE`pE5C!hSWdTOq$Z;vD}$hc0XYPm8H3!qa<#bm-DDZgS6-q;aRxS;7e{&$N`?)> ze$sF`gmu^}a}n6>C45*=SRf38P*6EN2A!;y00Vbz?PwQ|F`WdT>$40xqRb{X#%fs< z6`W^R&5{9s`QzPl4jpTTGb2l7aV;j)xAzDGe`tP&>cgkosYOa%q#q2a>8k1)5u$h! znB1&P)!Cc|^u(!3?AyBwJ#F>KpD_c+kDVag)T6@S%=$}DljP&2lco4<^9~#-J&&Y} zT=dqoqMlY(3<+dVN;$%?kw#*wLlOyOJ^{|k${LzTZpZH?^=d^QfpAw(C#}9RIe+%d zb6CD`4i+p~h^5OHW7754qT$$aG*w+7+>nOc!OQ}5!Q0bC*ee#+6uR!%akzB&03KMe z1P>A3IaxRWBL^1?-lBZgtm_MQ0lPo76-M;GQVTZTKo`Y1jkfj#`$CS;e4MEbx1 z7?nR6-UCN4C_f9M$BiNk7->F90~e?I`!Ih0_pd*K>K&Us#AtUmbo7@-5VD^Np%OoVk%c|=kQ+2$o z9NWoDxqJ1EsBajGTG9?&#WQ$NJ_(DHv`h~PQYp4>-G$PV=Wy~|ISEFWtdwEHhLP!V zV$a?k2+$Lz69)14LdZ_d!`>aAppabGyB_{7P8~l@05pvz(j+ZhOV6Lfu%avs&T?Ys zp1t^R^L9CZ{mid%)9RaW$DM2F^`WRbaR_G*>_t8SXl`}S0YncykC`-3yfYJdq+K4q zelC7UUQJr+ov^b**VltidfgfBC86;NNzJIL?F2uu%1=&CCbxJ$4(#56hX~+i0=qJ->p@on{Cbr`2IsD{zuc`KOu}S#!Of6R3|7Co-ZUYix<6#+;iS+Tq zk>|)qLu~`Dm^_{YkE7@PVlp{T73%ULCOIBQ4(-K>Pu>;HHfQBc7?Y8RL*${EHJP4G zQFC(>Yz~{6ZA}3Vh7@Lt2o7_gE|GwB60|5QJ44zmH`-&GBj4o7jfC1Hx7$4P-+soI znp&7-Gfo{hhLE`tb?q+l^HVUqFk65tH|k)wsiVD9{>>dOS<|qIDlRG#ngj=>*!Fk! zxp9aD;^dJ7xNhkJOrJgzn>Kxd{tMM8A_+cv>LOZScpmi^FW|`0GE(*2S%H(1Mlx|( zC_Ph-Y68)V$o7BtyN}`RO`p-gH41f-hasIj5k5NFnguuqX*C25Avn`WfQ+$-OK{?m zuRVC5uAo3xPl$tgqzRIW z2H@-`XEC3^?BO$&*!kI3+_>Uq^mVkLmkCe~W(=zQ59fhQP;FUa$h4m!S39}m0_GIN zql^S2k4$qZVJ4D31j&=*Eun+7__(vt3-7Fh-5QJHE5_mN9mg z!vs4TuYS@#-2QgpkfCtV&&V|pR-`nGN$r-y`-^f@$}}3w3c`jBwU=k-3Ku==(;F!#zi(iHM&=^2zBI)-#wr9qPcD{A6A}d*=h>Fbgg( z4UUi%O#}#Cu3psE)S{}Y8p-5JE?=?;Jy*;`IRWnTG{7g19Kq|a{sCVm;mOV`Kt{S# z2GR!=QRRY@PSOhgkZMuFbj$>D^Zn$NggF}C-hh5{KKha!aQJ#9TFe6<%lliA7P1m< z89Zbl;$3Zc>%uuqyK*VEZ#a)`GUX0?Jk2|q4Z>Laj~vCtib_2G#8WtQ?jo#ptw^%r`C?NCI*Y6=v>_ih?gJU=8

yubt)mzRk&fP7gM|Xxm|A5*VVxupGd#= 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 { facet: AccountFacet @@ -18,6 +19,8 @@ export default function AccountAvatar (props: AccountAvatarProps) { return AvatarGenshinLumine case AccountFacet.StarRail: return AvatarStarRailTrailblazer + case AccountFacet.ZenlessZoneZero: + return AvatarZenlessBelle default: return undefined } From 727e6a81ab182ae0bed908c6463f79e1388ad468 Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 15:31:40 +0800 Subject: [PATCH 12/14] chore: update readme.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0822396d..c10158b8 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ## 功能 -- [x] 支持 **`原神`** 和 **`崩坏:星穹铁道`** 游戏抽卡记录。 +- [x] 支持 **`原神`**、**`崩坏:星穹铁道`** 和 **`绝区零`** 游戏抽卡记录。 - [x] 管理游戏的多个账号。 - [x] 获取游戏的抽卡链接。 - [x] 获取抽卡记录并保存到本地数据库文件。 @@ -89,4 +89,5 @@ * [src/assets/images/Logo.png](src/assets/images/Logo.png) * [src/assets/images/genshin/*](src/assets/images/genshin) * [src/assets/images/starrail/*](src/assets/images/starrail) +* [src/assets/images/zzz/*](src/assets/images/starrail) * [src-tauri/icons/*](src-tauri/icons/) From bbeffe2ef63d4052683f11fc376fbe370080cc1d Mon Sep 17 00:00:00 2001 From: lgou2w Date: Sat, 6 Jul 2024 15:59:15 +0800 Subject: [PATCH 13/14] chore: update readme and about --- README.md | 6 ++---- src/components/setting/SettingAbout.tsx | 13 ++++++------- src/routes/index.tsx | 4 +--- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index c10158b8..f1472e44 100644 --- a/README.md +++ b/README.md @@ -67,8 +67,6 @@ ## 特别感谢 * [UIGF organization](https://uigf.org) -* [DGP-Studio/Snap.Hutao](https://github.com/DGP-Studio/Snap.Hutao) -* [YuehaiTeam/cocogoat](https://github.com/YuehaiTeam/cocogoat) * [vikiboss/gs-helper](https://github.com/vikiboss/gs-helper) ## 协议 @@ -76,7 +74,7 @@ > [!NOTE] > MIT OR Apache-2.0 **仅供个人学习交流使用。请勿用于任何商业或违法违规用途。** > -> 本软件不会收集任何用户数据。所产生的数据(包括但不限于使用数据、抽卡数据、账号信息等)均保存在用户本地。 +> 本软件不会向您索要任何关于 ©miHoYo 账户的账号密码信息,也不会收集任何用户数据。所产生的数据(包括但不限于使用数据、抽卡数据、UID 信息等)均保存在用户本地。 ### 部分资源文件 @@ -89,5 +87,5 @@ * [src/assets/images/Logo.png](src/assets/images/Logo.png) * [src/assets/images/genshin/*](src/assets/images/genshin) * [src/assets/images/starrail/*](src/assets/images/starrail) -* [src/assets/images/zzz/*](src/assets/images/starrail) +* [src/assets/images/zzz/*](src/assets/images/zzz) * [src-tauri/icons/*](src-tauri/icons/) diff --git a/src/components/setting/SettingAbout.tsx b/src/components/setting/SettingAbout.tsx index 01e453e3..c49d5d9c 100644 --- a/src/components/setting/SettingAbout.tsx +++ b/src/components/setting/SettingAbout.tsx @@ -37,14 +37,13 @@ export default function SettingAbout () { MUI {' 框架开发。'}
- {'本软件不会收集任何用户数据。所产生的数据(包括但不限于使用数据、抽卡数据、账号信息等)均保存在用户本地。'} -
- {'软件的部分图片资源来源于「原神」、「崩坏:星穹铁道」©miHoYo 上海米哈游影铁科技有限公司 版权所有。'} -
- {'软件使用的字体资源「汉仪文黑-85W」©北京汉仪创新科技股份有限公司 版权所有。'} -
- {'代码完全开源。仅供个人学习交流使用。请勿用于任何商业或违法违规用途。'}
+ + {'本软件不会向您索要任何关于 ©miHoYo 账户的账号密码信息,也不会收集任何用户数据。所产生的数据(包括但不限于使用数据、抽卡数据、UID 信息等)均保存在用户本地。'} + {'软件的部分图片资源来源于「原神」、「崩坏:星穹铁道」、「绝区零」©miHoYo 上海米哈游影铁科技有限公司 版权所有。'} + {'软件使用的字体资源「汉仪文黑-85W」©北京汉仪创新科技股份有限公司 版权所有。'} + {'代码完全开源。仅供个人学习交流使用。请勿用于任何商业或违法违规用途。'} + diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 0e42f7ff..bf5330af 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -76,7 +76,7 @@ export default function Index () { }}> 功能