From 4fdf309fe30718708efe7d8e5b532b96ca523ce9 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 18 Feb 2023 00:07:14 +0800 Subject: [PATCH] v1.0.0 --- .editorconfig | 4 - .eslintrc.js | 53 +- .flowconfig | 67 - .gitattributes | 3 - .github/workflows/beta-pack.yml | 2 +- .github/workflows/release.yml | 2 +- .gitignore | 9 +- .ncurc.js | 19 +- .node-version | 1 + .ruby-version | 2 +- .vscode/i18n-ally-custom-framework.yml | 30 + .vscode/javascript.code-snippets | 32 +- Gemfile | 4 +- Gemfile.lock | 100 - LICENSE | 201 - android/app/build.gradle | 66 +- android/app/proguard-rules.pro | 4 +- android/app/src/main/AndroidManifest.xml | 75 +- android/app/src/main/assets/fonts/icomoon.ttf | Bin 5612 -> 8060 bytes .../cn/toside/music/mobile/MainActivity.java | 34 +- .../toside/music/mobile/MainApplication.java | 17 +- .../cn/toside/music/mobile/lyric/Lyric.java | 4 +- .../music/mobile/lyric/LyricModule.java | 4 +- .../music/mobile/lyric/LyricPlayer.java | 12 +- .../music/mobile/lyric/LyricSwitchView.java | 21 +- .../music/mobile/lyric/LyricTextView.java | 6 + .../toside/music/mobile/lyric/LyricView.java | 40 +- .../MainApplicationReactNativeHost.java | 4 +- .../components/MainComponentsRegistry.java | 6 + ...ApplicationTurboModuleManagerDelegate.java | 10 +- .../music/mobile/utils/UtilsPackage.java | 1 - android/app/src/main/jni/Android.mk | 40 - android/app/src/main/jni/CMakeLists.txt | 7 + .../jni/MainApplicationModuleProvider.cpp | 14 +- .../main/jni/MainApplicationModuleProvider.h | 7 +- ...nApplicationTurboModuleManagerDelegate.cpp | 15 +- ...ainApplicationTurboModuleManagerDelegate.h | 18 +- .../src/main/jni/MainComponentsRegistry.cpp | 17 + .../app/src/main/jni/MainComponentsRegistry.h | 10 +- android/app/src/main/jni/OnLoad.cpp | 1 + .../app/src/main/res/layout/launch_screen.xml | 11 - .../app/src/main/res/values-v29/styles.xml | 16 - android/app/src/main/res/values/colors.xml | 4 - android/app/src/main/res/values/styles.xml | 6 - android/build.gradle | 15 +- android/gradle.properties | 8 +- android/gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 59821 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/settings.gradle | 9 +- babel.config.js | 6 + index.js | 174 +- ios/.xcode.env | 11 + ios/LxMusicMobile.xcodeproj/project.pbxproj | 12 +- ios/LxMusicMobile/AppDelegate.mm | 67 +- ios/LxMusicMobile/Info.plist | 2 +- ios/LxMusicMobileTests/LxMusicMobileTests.m | 12 +- ios/Podfile | 27 +- jsconfig.json | 16 - metro.config.js | 4 +- package-lock.json | 18354 ++++++---------- package.json | 109 +- publish/changeLog.md | 31 +- shim.js | 27 +- src/app.ts | 45 + src/components/ListItem/index.js | 71 - src/components/MusicAddModal.js | 201 - .../MusicAddModal/CreateUserList.tsx | 67 + src/components/MusicAddModal/List.tsx | 74 + src/components/MusicAddModal/ListItem.tsx | 57 + .../MusicAddModal/MusicAddModal.tsx | 86 + src/components/MusicAddModal/Title.tsx | 26 + src/components/MusicAddModal/index.tsx | 29 + src/components/MusicMultiAddModal.js | 199 - src/components/MusicMultiAddModal/List.tsx | 72 + .../MusicMultiAddModal/ListItem.tsx | 49 + .../MusicMultiAddModal/MusicMultiAddModal.tsx | 86 + src/components/MusicMultiAddModal/Title.tsx | 26 + src/components/MusicMultiAddModal/index.tsx | 29 + .../OnlineList/ExitMultipleModeBar.js | 142 - src/components/OnlineList/Footer.js | 26 - src/components/OnlineList/List.tsx | 278 + src/components/OnlineList/ListItem.js | 133 - src/components/OnlineList/ListItem.tsx | 151 + src/components/OnlineList/ListMenu.tsx | 81 + src/components/OnlineList/MultipleModeBar.tsx | 158 + src/components/OnlineList/index.js | 308 - src/components/OnlineList/index.tsx | 124 + src/components/OnlineList/listAction.ts | 29 + src/components/PageContent.tsx | 41 + src/components/SearchInput.js | 35 - src/components/SearchTipList/List.tsx | 36 + src/components/SearchTipList/index.tsx | 146 + src/components/SourceSelector.tsx | 77 + src/components/TimeoutExitEditModal.tsx | 258 + src/components/common/Badge.js | 46 - src/components/common/Badge.tsx | 52 + src/components/common/Button.js | 30 - src/components/common/Button.tsx | 46 + .../common/{CheckBox.js => CheckBox.tsx} | 61 +- src/components/common/ChoosePath/List.js | 128 - src/components/common/ChoosePath/List.tsx | 168 + .../common/ChoosePath/components/Footer.js | 40 - .../common/ChoosePath/components/Footer.tsx | 45 + .../common/ChoosePath/components/Header.js | 127 - .../common/ChoosePath/components/Header.tsx | 179 + .../components/{ListItem.js => ListItem.tsx} | 48 +- .../common/ChoosePath/components/Main.js | 57 - .../common/ChoosePath/components/Main.tsx | 61 + src/components/common/ChoosePath/index.js | 78 - src/components/common/ChoosePath/index.tsx | 83 + src/components/common/ConfirmAlert.js | 102 - src/components/common/ConfirmAlert.tsx | 124 + src/components/common/Dialog.js | 85 - src/components/common/Dialog.tsx | 111 + src/components/common/DorpDownMenu.js | 56 - src/components/common/DorpDownMenu.tsx | 48 + .../DorpDownPanel/{Panel.js => Panel.tsx} | 59 +- src/components/common/DorpDownPanel/index.js | 51 - src/components/common/DorpDownPanel/index.tsx | 40 + src/components/common/DrawerLayoutFixed.tsx | 73 + src/components/common/{Icon.js => Icon.tsx} | 15 +- src/components/common/{Input.js => Input.tsx} | 130 +- .../{LoadingMask.js => LoadingMask.tsx} | 43 +- src/components/common/Menu.js | 136 - src/components/common/Menu.tsx | 211 + src/components/common/Modal.js | 48 - src/components/common/Modal.tsx | 100 + src/components/common/Popup.js | 130 - src/components/common/Popup.tsx | 183 + src/components/common/ScaledImage.tsx | 48 + src/components/common/Slider.js | 37 - src/components/common/Slider.tsx | 47 + .../common/{StatusBar.js => StatusBar.tsx} | 5 +- src/components/common/Text.tsx | 28 + src/components/layout/Header.js | 52 - src/components/player/Progress.js | 88 - src/components/player/Progress.tsx | 105 + src/components/searchTipList.js | 124 - src/config/constant.js | 43 - src/config/constant.ts | 137 + src/config/defaultSetting.js | 140 - src/config/defaultSetting.ts | 67 + src/config/globalData.js | 36 - src/config/globalData.ts | 72 + src/config/index.js | 13 - src/config/migrate.ts | 185 + src/config/migrateSetting.ts | 50 + src/config/setting.js | 42 - src/config/setting.ts | 114 + src/core/apiSource.ts | 34 + src/core/common.ts | 80 + src/core/desktopLyric.ts | 91 + src/core/hotSearch.ts | 35 + src/core/init/dataInit.ts | 30 + src/core/init/i18n.ts | 21 + src/core/init/index.ts | 50 + src/core/init/player/index.ts | 17 + src/core/init/player/lyric.ts | 29 + src/core/init/player/playInfo.ts | 45 + src/core/init/player/playProgress.ts | 154 + src/core/init/player/playStatus.ts | 82 + src/core/init/player/player.ts | 60 + src/core/init/player/playerEvent.ts | 137 + src/core/init/player/watchList.ts | 42 + src/core/init/sync.ts | 17 + src/core/init/syncSetting.ts | 26 + src/core/init/theme.ts | 34 + src/core/leaderboard.ts | 183 + src/core/list.ts | 181 + src/core/lyric.ts | 97 + src/core/music/download.ts | 72 + src/core/music/index.ts | 78 + src/core/music/local.ts | 90 + src/core/music/online.ts | 104 + src/core/music/utils.ts | 417 + src/core/player/playInfo.ts | 134 + src/core/player/playStatus.ts | 14 + src/core/player/playedList.ts | 23 + src/core/player/player.ts | 460 + src/core/player/progress.ts | 14 + src/core/player/tempPlayList.ts | 26 + .../player/timeoutExit.ts} | 53 +- src/core/player/utils.ts | 81 + src/core/search/music.ts | 55 + src/core/search/search.ts | 39 + src/core/search/songlist.ts | 54 + src/core/songlist.ts | 231 + src/core/sync.ts | 10 + src/core/syncSourceList.ts | 32 + src/core/theme.ts | 20 + src/core/version.ts | 84 + src/event/Event.ts | 57 + src/event/appEvent.ts | 214 + src/event/listEvent.ts | 237 + src/event/stateEvent.ts | 125 + src/lang/en_us.json | 64 +- src/lang/i18n.ts | 98 + src/lang/index.js | 15 - src/lang/index.ts | 54 + src/lang/zh_cn.json | 67 +- src/navigation/components/ModalContent.tsx | 56 + src/navigation/components/PactModal.js | 209 - src/navigation/components/PactModal.tsx | 208 + src/navigation/components/VersionModal.js | 312 - src/navigation/components/VersionModal.tsx | 263 + src/navigation/{hooks.js => hooks.ts} | 9 +- src/navigation/{index.js => index.ts} | 24 +- .../{navigation.js => navigation.ts} | 158 +- ...registerScreens.js => registerScreens.tsx} | 7 +- .../{screenNames.js => screenNames.ts} | 2 +- src/navigation/{utils.js => utils.ts} | 24 +- src/plugins/i18n.js | 48 - src/plugins/{lyric.js => lyric.ts} | 73 +- src/plugins/player/{hook.js => hook.ts} | 66 +- src/plugins/player/{index.js => index.ts} | 35 +- src/plugins/player/playList.js | 238 - src/plugins/player/playList.ts | 283 + src/plugins/player/service.js | 266 - src/plugins/player/service.ts | 212 + src/plugins/player/{utils.js => utils.ts} | 118 +- src/plugins/storage.js | 167 - src/plugins/storage.ts | 172 + src/plugins/sync/client/auth.js | 76 - src/plugins/sync/client/auth.ts | 92 + .../sync/client/{client.js => client.ts} | 51 +- .../sync/client/{config.js => config.ts} | 6 +- .../sync/client/{index.js => index.ts} | 44 +- src/plugins/sync/client/syncList.js | 85 - src/plugins/sync/client/syncList.ts | 97 + src/plugins/sync/client/utils.js | 47 - src/plugins/sync/client/utils.ts | 102 + .../sync/modules/{index.js => index.ts} | 0 .../sync/modules/list/{index.js => index.ts} | 2 +- src/plugins/sync/modules/list/on.js | 99 - src/plugins/sync/modules/list/on.ts | 64 + src/plugins/sync/modules/list/send.js | 16 - src/plugins/sync/modules/list/send.ts | 102 + src/resources/fonts/icomoon.ttf | Bin 5612 -> 8060 bytes src/resources/fonts/selection.json | 2 +- src/screens/Comment/CommentHot.js | 196 - src/screens/Comment/CommentHot.tsx | 103 + src/screens/Comment/CommentNew.js | 196 - src/screens/Comment/CommentNew.tsx | 104 + .../Comment/components/CommentFloor.js | 129 - .../Comment/components/CommentFloor.tsx | 161 + src/screens/Comment/components/Header.js | 67 - src/screens/Comment/components/Header.tsx | 67 + src/screens/Comment/components/List.tsx | 142 + src/screens/Comment/index.js | 167 - src/screens/Comment/index.tsx | 214 + src/screens/Comment/utils.ts | 58 + src/screens/Home/Horizontal/Aside.tsx | 129 + src/screens/Home/Horizontal/Header.tsx | 138 + src/screens/Home/Horizontal/index.tsx | 35 + .../List/components/ExitMultipleModeBar.js | 142 - src/screens/Home/List/components/ListItem.js | 121 - .../Home/List/components/ListSearchBar.js | 143 - .../List/components/MusicPositionModal.js | 92 - src/screens/Home/List/components/MyList.js | 501 - src/screens/Home/List/index.js | 437 - src/screens/Home/List/utils.js | 74 - src/screens/Home/Search/components/Input.js | 82 - .../Home/Search/components/MusicList.js | 67 - .../Home/Search/components/SourceSelector.js | 47 - src/screens/Home/Search/components/TipList.js | 58 - src/screens/Home/Search/index.js | 87 - src/screens/Home/Setting/Backup/Part.js | 265 - src/screens/Home/Setting/Basic/IsAutoTheme.js | 27 - .../Home/Setting/Basic/IsStartupAutoPlay.js | 20 - src/screens/Home/Setting/Basic/Language.js | 47 - src/screens/Home/Setting/Basic/ShareType.js | 55 - src/screens/Home/Setting/Basic/SourceName.js | 59 - src/screens/Home/Setting/Basic/Theme.js | 85 - .../Home/Setting/List/AddMusicLocationType.js | 43 - .../Home/Setting/List/IsClickPlayList.js | 19 - .../Home/Setting/LyricDesktop/IsLockLyric.js | 19 - .../Home/Setting/LyricDesktop/IsShowLyric.js | 55 - .../Setting/LyricDesktop/IsShowToggleAnima.js | 19 - .../Home/Setting/LyricDesktop/IsSingleLine.js | 19 - .../Home/Setting/LyricDesktop/MaxLineNum.js | 56 - .../Home/Setting/LyricDesktop/TextOpacity.js | 56 - .../Setting/LyricDesktop/TextPositionX.js | 48 - .../Setting/LyricDesktop/TextPositionY.js | 48 - .../Home/Setting/LyricDesktop/TextSize.js | 56 - .../Home/Setting/LyricDesktop/ViewWidth.js | 56 - .../Home/Setting/Player/IsHandleAudioFocus.js | 25 - .../Home/Setting/Player/IsPlayHighQuality.js | 20 - src/screens/Home/Setting/Player/IsS2T.js | 20 - .../Home/Setting/Player/IsShowLyricRoma.js | 20 - .../Setting/Player/IsShowLyricTranslation.js | 20 - .../Setting/Player/IsShowNotificationImage.js | 19 - src/screens/Home/Setting/Player/MaxCache.js | 40 - src/screens/Home/Setting/Player/index.js | 57 - src/screens/Home/Setting/Version.js | 79 - src/screens/Home/Setting/components/Button.js | 31 - .../Home/Setting/components/CheckBoxItem.js | 22 - .../Home/Setting/components/Section.js | 32 - .../Home/Setting/components/SubTitle.js | 29 - src/screens/Home/SongList/List.js | 137 - src/screens/Home/SongList/ListItem.js | 58 - src/screens/Home/SongList/MenuBar.js | 33 - src/screens/Home/SongList/OpenList.js | 99 - src/screens/Home/SongList/SortTab.js | 79 - src/screens/Home/SongList/SourceSelector.js | 52 - src/screens/Home/SongList/Tag.js | 130 - src/screens/Home/SongList/index.js | 25 - src/screens/Home/Top/BoardsList.js | 175 - src/screens/Home/Top/LeftBar.js | 33 - src/screens/Home/Top/MusicList.js | 91 - src/screens/Home/Top/SourceSelector.js | 44 - src/screens/Home/Top/index.js | 26 - src/screens/Home/Vertical/Content.tsx | 61 + src/screens/Home/Vertical/DrawerNav.tsx | 137 + src/screens/Home/Vertical/Header.tsx | 157 + src/screens/Home/Vertical/index.tsx | 12 + .../Home/{ => Views}/Download/index.js | 0 .../Views/Leaderboard/BoardsList/List.tsx | 72 + .../Views/Leaderboard/BoardsList/ListItem.tsx | 54 + .../Views/Leaderboard/BoardsList/ListMenu.tsx | 71 + .../Views/Leaderboard/BoardsList/index.tsx | 57 + .../Home/Views/Leaderboard/LeftBar.tsx | 97 + .../Home/Views/Leaderboard/MusicList.tsx | 91 + src/screens/Home/Views/Leaderboard/index.tsx | 62 + .../Home/Views/Leaderboard/listAction.ts | 57 + .../Views/Mylist/MusicList/ActiveList.tsx | 86 + .../Home/Views/Mylist/MusicList/List.tsx | 283 + .../Home/Views/Mylist/MusicList/ListItem.tsx | 143 + .../Home/Views/Mylist/MusicList/ListMenu.tsx | 107 + .../Mylist/MusicList/ListMusicSearch.tsx | 147 + .../Views/Mylist/MusicList/ListSearchBar.tsx | 167 + .../Mylist/MusicList/MultipleModeBar.tsx | 159 + .../Mylist/MusicList/MusicPositionModal.tsx | 174 + .../Home/Views/Mylist/MusicList/index.tsx | 157 + .../Home/Views/Mylist/MusicList/listAction.ts | 71 + src/screens/Home/Views/Mylist/MyList/List.tsx | 186 + .../Views/Mylist/MyList/ListImportExport.tsx | 103 + .../Home/Views/Mylist/MyList/ListMenu.tsx | 126 + .../Home/Views/Mylist/MyList/ListNameEdit.tsx | 120 + .../Home/Views/Mylist/MyList/index.tsx | 54 + .../Home/Views/Mylist/MyList/listAction.ts | 88 + src/screens/Home/Views/Mylist/index.tsx | 64 + .../Views/Search/BlankView/HistorySearch.tsx | 96 + .../Home/Views/Search/BlankView/HotSearch.tsx | 98 + .../Home/Views/Search/BlankView/index.tsx | 81 + .../Views/Search/HeaderBar/SearchInput.tsx | 68 + .../Home/Views/Search/HeaderBar/index.tsx | 81 + src/screens/Home/Views/Search/List.tsx | 47 + src/screens/Home/Views/Search/MusicList.tsx | 87 + .../Home/Views/Search/SearchTypeSelector.tsx | 75 + .../Home/Views/Search/SonglistList.tsx | 88 + src/screens/Home/Views/Search/TipList.tsx | 136 + src/screens/Home/Views/Search/index.tsx | 117 + .../About.js => Views/Setting/About.tsx} | 84 +- .../Home/{ => Views}/Setting/Backup/All.js | 0 .../Views/Setting/Backup/ListImportExport.tsx | 97 + .../Home/Views/Setting/Backup/Part.tsx | 41 + .../Home/Views/Setting/Backup/actions.ts | 182 + .../Setting/Backup/index.tsx} | 4 +- .../Setting/Basic/DrawerLayoutPosition.tsx | 60 + .../Home/Views/Setting/Basic/FontSize.tsx | 98 + .../Setting/Basic/IsAutoHidePlayBar.js | 0 .../Home/Views/Setting/Basic/IsAutoTheme.tsx | 43 + .../Views/Setting/Basic/IsStartupAutoPlay.tsx | 31 + .../Home/Views/Setting/Basic/Language.tsx | 46 + .../Home/Views/Setting/Basic/ShareType.tsx | 64 + .../Setting/Basic/Source.tsx} | 44 +- .../Home/Views/Setting/Basic/SourceName.tsx | 64 + .../Home/Views/Setting/Basic/Theme.tsx | 123 + .../Setting/Basic/index.tsx} | 16 +- .../Setting/List/AddMusicLocationType.tsx | 49 + .../Views/Setting/List/IsClickPlayList.tsx | 32 + .../index.js => Views/Setting/List/index.tsx} | 5 +- .../Setting/LyricDesktop/IsLockLyric.tsx | 33 + .../Setting/LyricDesktop/IsShowLyric.tsx | 63 + .../LyricDesktop/IsShowToggleAnima.tsx | 33 + .../Setting/LyricDesktop/IsSingleLine.tsx | 34 + .../Views/Setting/LyricDesktop/MaxLineNum.tsx | 62 + .../Setting/LyricDesktop/TextOpacity.tsx | 63 + .../Setting/LyricDesktop/TextPositionX.tsx | 67 + .../Setting/LyricDesktop/TextPositionY.tsx | 65 + .../Views/Setting/LyricDesktop/TextSize.tsx | 62 + .../Setting/LyricDesktop/Theme.tsx} | 51 +- .../Views/Setting/LyricDesktop/ViewWidth.tsx | 63 + .../Setting/LyricDesktop/index.tsx} | 5 +- .../Setting/Other/Cache.tsx} | 28 +- .../Home/{ => Views}/Setting/Other/Log.js | 0 .../Setting/Other/index.tsx} | 8 +- .../Setting/Player/IsHandleAudioFocus.tsx | 32 + .../Setting/Player/IsPlayHighQuality.tsx | 31 + .../Home/Views/Setting/Player/IsS2T.tsx | 31 + .../Views/Setting/Player/IsSavePlayTime.tsx | 30 + .../Views/Setting/Player/IsShowLyricRoma.tsx | 30 + .../Setting/Player/IsShowLyricTranslation.tsx | 30 + .../Player/IsShowNotificationImage.tsx | 31 + .../Home/Views/Setting/Player/MaxCache.tsx | 53 + .../Home/Views/Setting/Player/index.tsx | 30 + .../Setting/Search/IsShowHistorySearch.tsx | 32 + .../Views/Setting/Search/IsShowHotSearch.tsx | 31 + .../Home/Views/Setting/Search/index.tsx | 18 + .../Setting/Sync/History.tsx} | 15 +- .../Setting/Sync/IsEnable.tsx} | 160 +- .../index.js => Views/Setting/Sync/index.tsx} | 10 +- .../Home/Views/Setting/Sync/isEnable.tsx.bak | 240 + src/screens/Home/Views/Setting/Version.tsx | 91 + .../Home/Views/Setting/components/Button.tsx | 29 + .../Views/Setting/components/CheckBoxItem.tsx | 24 + .../Setting/components/InputItem.tsx} | 40 +- .../Home/Views/Setting/components/Section.tsx | 39 + .../Setting/components/Slider.tsx} | 23 +- .../Views/Setting/components/SubTitle.tsx | 30 + .../index.js => Views/Setting/index.tsx} | 19 +- src/screens/Home/Views/SongList/Content.tsx | 72 + .../SongList/HeaderBar/OpenList/Modal.tsx | 143 + .../SongList/HeaderBar/OpenList/index.tsx | 70 + .../Home/Views/SongList/HeaderBar/SortTab.tsx | 78 + .../SongList/HeaderBar/SourceSelector.tsx | 45 + .../SongList/HeaderBar/Tag/CurrentTagBtn.tsx | 49 + .../Views/SongList/HeaderBar/Tag/index.tsx | 54 + .../Home/Views/SongList/HeaderBar/index.tsx | 69 + src/screens/Home/Views/SongList/List.tsx | 80 + .../Home/Views/SongList/TagList/List.tsx | 95 + .../Home/Views/SongList/TagList/TagGroup.tsx | 72 + .../Home/Views/SongList/TagList/index.tsx | 50 + .../SongList/components/Songlist/List.tsx | 211 + .../SongList/components/Songlist/ListItem.tsx | 83 + .../SongList/components/Songlist/index.tsx | 48 + src/screens/Home/Views/SongList/index.tsx | 53 + src/screens/Home/components/Aside.js | 172 - src/screens/Home/components/FooterPlayer.js | 11 - src/screens/Home/components/Header.js | 102 - .../Home/components/HeaderLandscape.js | 84 - src/screens/Home/components/Main.js | 216 - src/screens/Home/components/Main.tsx | 59 + .../PlayerBar/components/ControlBtn.tsx | 63 + .../components/PlayerBar/components/Pic.tsx | 83 + .../PlayerBar/components/PlayInfo.tsx | 79 + .../PlayerBar/components/Status.tsx | 23 + .../components/PlayerBar/components/Title.tsx | 66 + .../index.js => PlayerBar/index.tsx} | 59 +- .../Home/components/PlayerLandscape.js | 125 - .../PlayerPortrait/components/ControlBtn.js | 84 - .../PlayerPortrait/components/Pic.js | 56 - .../PlayerPortrait/components/PlayInfo.js | 56 - .../PlayerPortrait/components/Status.js | 25 - .../PlayerPortrait/components/Title.js | 74 - src/screens/Home/index.js | 58 - src/screens/Home/index.tsx | 30 + .../Lyric.js => Horizontal/Lyric.tsx} | 112 +- src/screens/PlayDetail/Horizontal/Pic.tsx | 80 + .../Horizontal/Player/ControlBtn.tsx | 70 + .../Horizontal/Player/MoreBtn/Btn.tsx | 34 + .../Horizontal/Player/MoreBtn/MusicAddBtn.tsx | 26 + .../Player/MoreBtn/PlayModeBtn.tsx} | 41 +- .../Player/MoreBtn/TimeoutExitBtn.tsx | 23 + .../Horizontal/Player/MoreBtn/index.tsx | 27 + .../PlayDetail/Horizontal/Player/PlayInfo.tsx | 65 + .../PlayDetail/Horizontal/Player/Progress.tsx | 104 + .../PlayDetail/Horizontal/Player/Status.tsx | 22 + .../PlayDetail/Horizontal/Player/index.tsx | 38 + .../PlayDetail/Horizontal/components/Btn.tsx | 35 + .../Horizontal/components/CommentBtn.tsx | 15 + .../Horizontal/components/Header.tsx | 143 + src/screens/PlayDetail/Horizontal/index.tsx | 93 + .../PlayDetail/Landscape/ControlBtn.js | 95 - src/screens/PlayDetail/Landscape/Lyric.js | 203 - .../Landscape/MoreBtn/MusicAddBtn.js | 47 - .../Landscape/MoreBtn/TimeoutExit.js | 184 - .../PlayDetail/Landscape/MoreBtn/index.js | 34 - src/screens/PlayDetail/Landscape/Pic.js | 49 - .../PlayDetail/Landscape/PlayBar/Progress.js | 89 - .../PlayDetail/Landscape/PlayBar/Status.js | 25 - .../PlayDetail/Landscape/PlayBar/index.js | 60 - src/screens/PlayDetail/Landscape/Title.js | 35 - .../Landscape/components/CommentBtn.js | 35 - .../PlayDetail/Landscape/components/Header.js | 137 - src/screens/PlayDetail/Landscape/index.js | 100 - src/screens/PlayDetail/Portrait/Pic.js | 46 - .../Portrait/Player/components/ControlBtn.js | 84 - .../Player/components/MoreBtn/CommentBtn.js | 35 - .../Player/components/MoreBtn/MusicAddBtn.js | 47 - .../Player/components/MoreBtn/TimeoutExit.js | 184 - .../Portrait/Player/components/PlayInfo.js | 53 - .../Portrait/Player/components/Progress.js | 87 - .../Portrait/Player/components/Status.js | 25 - .../Portrait/Player/components/Title.js | 35 - .../PlayDetail/Portrait/components/Header.js | 136 - src/screens/PlayDetail/Vertical/Lyric.tsx | 232 + src/screens/PlayDetail/Vertical/Pic.tsx | 81 + .../Vertical/Player/components/ControlBtn.tsx | 65 + .../Player/components/MoreBtn/Btn.tsx | 34 + .../Player/components/MoreBtn/CommentBtn.tsx | 15 + .../Player/components/MoreBtn/MusicAddBtn.tsx | 26 + .../components/MoreBtn/PlayModeBtn.tsx} | 43 +- .../components/MoreBtn/TimeoutExitBtn.tsx | 23 + .../Player/components/MoreBtn/index.tsx} | 13 +- .../Vertical/Player/components/PlayInfo.tsx | 66 + .../Vertical/Player/components/Progress.tsx | 104 + .../Vertical/Player/components/Status.tsx | 22 + .../index.js => Vertical/Player/index.tsx} | 26 +- .../PlayDetail/Vertical/components/Header.tsx | 143 + .../{Portrait/index.js => Vertical/index.tsx} | 91 +- src/screens/PlayDetail/index.js | 32 - src/screens/PlayDetail/index.tsx | 30 + src/screens/SonglistDetail/ActionBar.js | 90 - src/screens/SonglistDetail/ActionBar.tsx | 69 + src/screens/SonglistDetail/Failed.js | 53 - src/screens/SonglistDetail/Header.js | 84 - src/screens/SonglistDetail/Header.tsx | 125 + src/screens/SonglistDetail/List.js | 64 - src/screens/SonglistDetail/MusicList.tsx | 113 + .../SonglistDetail/PlayerBar/ControlBtn.tsx | 63 + src/screens/SonglistDetail/PlayerBar/Pic.tsx | 83 + .../SonglistDetail/PlayerBar/PlayInfo.tsx | 75 + .../SonglistDetail/PlayerBar/Status.tsx | 23 + .../SonglistDetail/PlayerBar/Title.tsx | 66 + .../SonglistDetail/PlayerBar/index.tsx | 86 + .../PlayerPortrait/components/ControlBtn.js | 84 - .../PlayerPortrait/components/Pic.js | 49 - .../PlayerPortrait/components/PlayInfo.js | 56 - .../PlayerPortrait/components/Status.js | 25 - .../PlayerPortrait/components/Title.js | 61 - .../SonglistDetail/PlayerPortrait/index.js | 88 - src/screens/SonglistDetail/index.js | 38 - src/screens/SonglistDetail/index.tsx | 49 + src/screens/SonglistDetail/listAction.ts | 54 + src/screens/{index.js => index.ts} | 0 src/store/.bak/actions/common.js | 23 - src/store/.bak/actions/counts.js | 23 - src/store/.bak/actions/search.js | 76 - src/store/.bak/reducers/common.js | 34 - src/store/.bak/reducers/count.js | 19 - src/store/.bak/reducers/index.js | 19 - src/store/.bak/reducers/search.js | 220 - src/store/Provider/Provider.js | 32 - src/store/Provider/Provider.tsx | 27 + src/store/Provider/ThemeProvider.tsx | 23 + src/store/Provider/index.js | 1 - src/store/Provider/index.ts | 1 + src/store/common/action.ts | 29 + src/store/common/hook.ts | 97 + src/store/common/state.ts | 21 + src/store/connect.js | 23 - src/store/getter.js | 30 - src/store/hotSearch/action.ts | 37 + src/store/hotSearch/state.ts | 29 + src/store/index.js | 7 - src/store/index.ts | 5 + src/store/leaderboard/action.ts | 33 + src/store/leaderboard/state.ts | 54 + src/store/list/action.ts | 37 + src/store/list/hook.ts | 88 + src/store/list/state.ts | 48 + src/store/modules/common/action.js | 517 - src/store/modules/common/common.ts | 35 + src/store/modules/common/getter.js | 93 - src/store/modules/common/index.js | 5 - src/store/modules/common/index.ts | 5 + src/store/modules/common/reducer.js | 590 - src/store/modules/index.js | 15 - src/store/modules/index.ts | 19 + src/store/modules/list/action.js | 417 - src/store/modules/list/getter.js | 25 - src/store/modules/list/index.js | 5 - src/store/modules/list/reducer.js | 338 - src/store/modules/player/action.js | 963 - src/store/modules/player/getter.js | 67 - src/store/modules/player/index.js | 7 - src/store/modules/player/reducer.js | 132 - src/store/modules/search/action.js | 4 +- src/store/modules/search/reducer.js | 2 +- src/store/modules/songList/action.js | 4 +- src/store/modules/songList/reducer.js | 2 +- src/store/modules/top/action.js | 10 +- src/store/modules/top/reducer.js | 2 +- src/store/player/action.ts | 107 + src/store/player/hook.ts | 85 + src/store/player/state.ts | 75 + src/store/reducer.js | 27 - src/store/search/action.ts | 64 + src/store/search/music/action.ts | 91 + src/store/search/music/state.ts | 58 + src/store/search/songlist/action.ts | 90 + src/store/search/songlist/state.ts | 61 + src/store/search/state.ts | 29 + src/store/setting/action.ts | 21 + src/store/setting/hook.ts | 35 + src/store/setting/state.ts | 13 + src/store/songlist/action.ts | 68 + src/store/songlist/state.ts | 137 + src/store/store.js | 48 - src/store/subscriber.js | 7 - src/store/sync/action.ts | 17 + src/store/sync/hook.ts | 15 + src/store/sync/state.ts | 8 + src/store/theme/action.ts | 16 + src/store/theme/hook.ts | 38 + src/store/theme/state.ts | 287 + src/store/useDispatch.js | 24 - src/store/version/action.ts | 26 + src/store/version/hook.ts | 80 + src/store/version/state.ts | 48 + src/theme/themes/black.js | 40 - src/theme/themes/blue.js | 40 - src/theme/themes/colorUtils.js | 73 + src/theme/themes/createThemes.js | 294 + src/theme/themes/green.js | 40 - src/theme/themes/grey.js | 40 - src/theme/themes/images/china_ink.jpg | Bin 0 -> 1142792 bytes src/theme/themes/images/jqbg.jpg | Bin 0 -> 272303 bytes src/theme/themes/images/landingMoon2.png | Bin 0 -> 180491 bytes src/theme/themes/images/myzcbg.jpg | Bin 0 -> 815898 bytes src/theme/themes/images/xnkl.png | Bin 0 -> 627318 bytes src/theme/themes/index.js | 17 - src/theme/themes/index.ts | 134 + src/theme/themes/orange.js | 40 - src/theme/themes/pink.js | 40 - src/theme/themes/red.js | 40 - src/theme/themes/themes.ts | 3785 ++++ src/theme/themes/utils.js | 75 + src/types/app.d.ts | 70 + src/types/app_setting.d.ts | 251 + src/types/common.d.ts | 16 + src/types/config_files.d.ts | 9 + src/types/download_list.d.ts | 66 + src/types/list.d.ts | 143 + src/types/music.d.ts | 122 + src/types/player.d.ts | 86 + src/types/shims.d.ts | 5 + src/types/sync.d.ts | 80 + src/types/theme.d.ts | 323 + src/types/utils.d.ts | 11 + src/utils/cache.js | 6 - src/utils/common.js | 16 - src/utils/common.ts | 235 + src/utils/data.ts | 391 + src/utils/env.js | 5 - src/utils/{errorHandle.js => errorHandle.ts} | 8 +- src/utils/{fs.js => fs.ts} | 24 +- .../hooks/{useLayout.js => useLayout.tsx} | 3 +- src/utils/index.js | 161 - src/utils/index.ts | 182 + src/utils/listData.js | 95 - src/utils/listManage.ts | 329 + src/utils/{log.js => log.ts} | 22 +- src/utils/lyric.js | 76 - src/utils/lyricDesktop.js | 231 - src/utils/{message.js => message.ts} | 2 +- .../{music => musicSdk}/api-source-info.js | 0 src/utils/{music => musicSdk}/api-source.js | 5 +- src/utils/{music => musicSdk}/bd/api-test.js | 0 src/utils/{music => musicSdk}/bd/hotSearch.js | 0 src/utils/{music => musicSdk}/bd/index.js | 0 .../{music => musicSdk}/bd/leaderboard.js | 0 src/utils/{music => musicSdk}/bd/musicInfo.js | 0 .../{music => musicSdk}/bd/musicSearch.js | 0 src/utils/{music => musicSdk}/bd/songList.js | 0 src/utils/{music => musicSdk}/index.js | 0 .../{music => musicSdk}/kg/api-direct.js | 0 src/utils/{music => musicSdk}/kg/api-test.js | 0 src/utils/{music => musicSdk}/kg/comment.js | 10 +- src/utils/{music => musicSdk}/kg/hotSearch.js | 1 + src/utils/{music => musicSdk}/kg/index.js | 0 .../{music => musicSdk}/kg/leaderboard.js | 0 src/utils/{music => musicSdk}/kg/lyric.js | 0 .../{music => musicSdk}/kg/musicSearch.js | 2 +- src/utils/{music => musicSdk}/kg/pic.js | 0 src/utils/{music => musicSdk}/kg/songList.js | 38 +- src/utils/{music => musicSdk}/kg/util.js | 0 .../kg/vendors/infSign.min.js | 0 src/utils/{music => musicSdk}/kw/album.js | 0 .../{music => musicSdk}/kw/api-direct.js | 0 src/utils/{music => musicSdk}/kw/api-temp.js | 0 src/utils/{music => musicSdk}/kw/api-test.js | 0 src/utils/{music => musicSdk}/kw/comment.js | 0 .../{music => musicSdk}/kw/decodeLyric.js | 2 +- src/utils/{music => musicSdk}/kw/hotSearch.js | 0 src/utils/{music => musicSdk}/kw/index.js | 0 .../{music => musicSdk}/kw/leaderboard.js | 0 src/utils/{music => musicSdk}/kw/lyric.js | 0 .../{music => musicSdk}/kw/musicSearch.js | 2 +- src/utils/{music => musicSdk}/kw/pic.js | 0 src/utils/{music => musicSdk}/kw/songList.js | 34 +- .../{music => musicSdk}/kw/tempSearch.js | 0 src/utils/{music => musicSdk}/kw/util.js | 38 +- src/utils/{music => musicSdk}/mg/album.js | 2 +- .../{music => musicSdk}/mg/api-direct.js | 0 src/utils/{music => musicSdk}/mg/api-test.js | 0 src/utils/{music => musicSdk}/mg/comment.js | 0 src/utils/{music => musicSdk}/mg/hotSearch.js | 0 src/utils/{music => musicSdk}/mg/index.js | 0 .../{music => musicSdk}/mg/leaderboard.js | 0 .../{music => musicSdk}/mg/leaderboard2.js | 0 src/utils/{music => musicSdk}/mg/lyric.js | 0 .../{music => musicSdk}/mg/musicSearch.js | 2 +- src/utils/{music => musicSdk}/mg/pic.js | 0 src/utils/{music => musicSdk}/mg/songList.js | 49 +- src/utils/{music => musicSdk}/options.js | 0 .../{music => musicSdk}/tx/api-direct.js | 0 src/utils/{music => musicSdk}/tx/api-test.js | 0 src/utils/{music => musicSdk}/tx/comment.js | 0 src/utils/{music => musicSdk}/tx/hotSearch.js | 0 src/utils/{music => musicSdk}/tx/index.js | 0 .../{music => musicSdk}/tx/leaderboard.js | 0 src/utils/{music => musicSdk}/tx/lyric.js | 0 src/utils/{music => musicSdk}/tx/musicInfo.js | 0 .../{music => musicSdk}/tx/musicSearch.js | 2 +- src/utils/{music => musicSdk}/tx/songList.js | 41 +- src/utils/{music => musicSdk}/tx/tipSearch.js | 0 src/utils/{music => musicSdk}/utils.js | 2 +- .../{music => musicSdk}/wy/api-direct.js | 0 src/utils/{music => musicSdk}/wy/api-test.js | 0 src/utils/{music => musicSdk}/wy/comment.js | 0 src/utils/{music => musicSdk}/wy/hotSearch.js | 0 src/utils/{music => musicSdk}/wy/index.js | 0 .../{music => musicSdk}/wy/leaderboard.js | 0 src/utils/{music => musicSdk}/wy/lyric.js | 0 .../{music => musicSdk}/wy/musicDetail.js | 0 src/utils/{music => musicSdk}/wy/musicInfo.js | 0 .../{music => musicSdk}/wy/musicSearch.js | 2 +- src/utils/{music => musicSdk}/wy/songList.js | 28 +- .../{music => musicSdk}/wy/utils/crypto.js | 2 +- .../{music => musicSdk}/wy/utils/index.js | 0 src/utils/{music => musicSdk}/xm.js | 0 src/utils/nativeModules/cache.ts | 6 + src/utils/{gzip.js => nativeModules/gzip.ts} | 4 +- src/utils/nativeModules/lyricDesktop.ts | 242 + src/utils/nativeModules/utils.ts | 36 + src/utils/permissions.js | 44 - src/utils/pixelRatio.ts | 78 + src/utils/request.js | 16 +- src/utils/tools.js | 446 - src/utils/tools.ts | 421 + src/utils/utils.js | 36 - src/utils/version.js | 7 +- tsconfig.json | 24 + yarn.lock | 6455 ++++++ 736 files changed, 46947 insertions(+), 31633 deletions(-) delete mode 100644 .flowconfig delete mode 100644 .gitattributes create mode 100644 .node-version create mode 100644 .vscode/i18n-ally-custom-framework.yml delete mode 100644 Gemfile.lock delete mode 100644 LICENSE delete mode 100644 android/app/src/main/jni/Android.mk create mode 100644 android/app/src/main/jni/CMakeLists.txt delete mode 100644 android/app/src/main/res/layout/launch_screen.xml delete mode 100644 android/app/src/main/res/values-v29/styles.xml delete mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 ios/.xcode.env delete mode 100644 jsconfig.json create mode 100644 src/app.ts delete mode 100644 src/components/ListItem/index.js delete mode 100644 src/components/MusicAddModal.js create mode 100644 src/components/MusicAddModal/CreateUserList.tsx create mode 100644 src/components/MusicAddModal/List.tsx create mode 100644 src/components/MusicAddModal/ListItem.tsx create mode 100644 src/components/MusicAddModal/MusicAddModal.tsx create mode 100644 src/components/MusicAddModal/Title.tsx create mode 100644 src/components/MusicAddModal/index.tsx delete mode 100644 src/components/MusicMultiAddModal.js create mode 100644 src/components/MusicMultiAddModal/List.tsx create mode 100644 src/components/MusicMultiAddModal/ListItem.tsx create mode 100644 src/components/MusicMultiAddModal/MusicMultiAddModal.tsx create mode 100644 src/components/MusicMultiAddModal/Title.tsx create mode 100644 src/components/MusicMultiAddModal/index.tsx delete mode 100644 src/components/OnlineList/ExitMultipleModeBar.js delete mode 100644 src/components/OnlineList/Footer.js create mode 100644 src/components/OnlineList/List.tsx delete mode 100644 src/components/OnlineList/ListItem.js create mode 100644 src/components/OnlineList/ListItem.tsx create mode 100644 src/components/OnlineList/ListMenu.tsx create mode 100644 src/components/OnlineList/MultipleModeBar.tsx delete mode 100644 src/components/OnlineList/index.js create mode 100644 src/components/OnlineList/index.tsx create mode 100644 src/components/OnlineList/listAction.ts create mode 100644 src/components/PageContent.tsx delete mode 100644 src/components/SearchInput.js create mode 100644 src/components/SearchTipList/List.tsx create mode 100644 src/components/SearchTipList/index.tsx create mode 100644 src/components/SourceSelector.tsx create mode 100644 src/components/TimeoutExitEditModal.tsx delete mode 100644 src/components/common/Badge.js create mode 100644 src/components/common/Badge.tsx delete mode 100644 src/components/common/Button.js create mode 100644 src/components/common/Button.tsx rename src/components/common/{CheckBox.js => CheckBox.tsx} (52%) delete mode 100644 src/components/common/ChoosePath/List.js create mode 100644 src/components/common/ChoosePath/List.tsx delete mode 100644 src/components/common/ChoosePath/components/Footer.js create mode 100644 src/components/common/ChoosePath/components/Footer.tsx delete mode 100644 src/components/common/ChoosePath/components/Header.js create mode 100644 src/components/common/ChoosePath/components/Header.tsx rename src/components/common/ChoosePath/components/{ListItem.js => ListItem.tsx} (54%) delete mode 100644 src/components/common/ChoosePath/components/Main.js create mode 100644 src/components/common/ChoosePath/components/Main.tsx delete mode 100644 src/components/common/ChoosePath/index.js create mode 100644 src/components/common/ChoosePath/index.tsx delete mode 100644 src/components/common/ConfirmAlert.js create mode 100644 src/components/common/ConfirmAlert.tsx delete mode 100644 src/components/common/Dialog.js create mode 100644 src/components/common/Dialog.tsx delete mode 100644 src/components/common/DorpDownMenu.js create mode 100644 src/components/common/DorpDownMenu.tsx rename src/components/common/DorpDownPanel/{Panel.js => Panel.tsx} (54%) delete mode 100644 src/components/common/DorpDownPanel/index.js create mode 100644 src/components/common/DorpDownPanel/index.tsx create mode 100644 src/components/common/DrawerLayoutFixed.tsx rename src/components/common/{Icon.js => Icon.tsx} (76%) rename src/components/common/{Input.js => Input.tsx} (60%) rename src/components/common/{LoadingMask.js => LoadingMask.tsx} (59%) delete mode 100644 src/components/common/Menu.js create mode 100644 src/components/common/Menu.tsx delete mode 100644 src/components/common/Modal.js create mode 100644 src/components/common/Modal.tsx delete mode 100644 src/components/common/Popup.js create mode 100644 src/components/common/Popup.tsx create mode 100644 src/components/common/ScaledImage.tsx delete mode 100644 src/components/common/Slider.js create mode 100644 src/components/common/Slider.tsx rename src/components/common/{StatusBar.js => StatusBar.tsx} (67%) create mode 100644 src/components/common/Text.tsx delete mode 100644 src/components/layout/Header.js delete mode 100644 src/components/player/Progress.js create mode 100644 src/components/player/Progress.tsx delete mode 100644 src/components/searchTipList.js delete mode 100644 src/config/constant.js create mode 100644 src/config/constant.ts delete mode 100644 src/config/defaultSetting.js create mode 100644 src/config/defaultSetting.ts delete mode 100644 src/config/globalData.js create mode 100644 src/config/globalData.ts create mode 100644 src/config/migrate.ts create mode 100644 src/config/migrateSetting.ts delete mode 100644 src/config/setting.js create mode 100644 src/config/setting.ts create mode 100644 src/core/apiSource.ts create mode 100644 src/core/common.ts create mode 100644 src/core/desktopLyric.ts create mode 100644 src/core/hotSearch.ts create mode 100644 src/core/init/dataInit.ts create mode 100644 src/core/init/i18n.ts create mode 100644 src/core/init/index.ts create mode 100644 src/core/init/player/index.ts create mode 100644 src/core/init/player/lyric.ts create mode 100644 src/core/init/player/playInfo.ts create mode 100644 src/core/init/player/playProgress.ts create mode 100644 src/core/init/player/playStatus.ts create mode 100644 src/core/init/player/player.ts create mode 100644 src/core/init/player/playerEvent.ts create mode 100644 src/core/init/player/watchList.ts create mode 100644 src/core/init/sync.ts create mode 100644 src/core/init/syncSetting.ts create mode 100644 src/core/init/theme.ts create mode 100644 src/core/leaderboard.ts create mode 100644 src/core/list.ts create mode 100644 src/core/lyric.ts create mode 100644 src/core/music/download.ts create mode 100644 src/core/music/index.ts create mode 100644 src/core/music/local.ts create mode 100644 src/core/music/online.ts create mode 100644 src/core/music/utils.ts create mode 100644 src/core/player/playInfo.ts create mode 100644 src/core/player/playStatus.ts create mode 100644 src/core/player/playedList.ts create mode 100644 src/core/player/player.ts create mode 100644 src/core/player/progress.ts create mode 100644 src/core/player/tempPlayList.ts rename src/{utils/timeoutExit.js => core/player/timeoutExit.ts} (57%) create mode 100644 src/core/player/utils.ts create mode 100644 src/core/search/music.ts create mode 100644 src/core/search/search.ts create mode 100644 src/core/search/songlist.ts create mode 100644 src/core/songlist.ts create mode 100644 src/core/sync.ts create mode 100644 src/core/syncSourceList.ts create mode 100644 src/core/theme.ts create mode 100644 src/core/version.ts create mode 100644 src/event/Event.ts create mode 100644 src/event/appEvent.ts create mode 100644 src/event/listEvent.ts create mode 100644 src/event/stateEvent.ts create mode 100644 src/lang/i18n.ts delete mode 100644 src/lang/index.js create mode 100644 src/lang/index.ts create mode 100644 src/navigation/components/ModalContent.tsx delete mode 100644 src/navigation/components/PactModal.js create mode 100644 src/navigation/components/PactModal.tsx delete mode 100644 src/navigation/components/VersionModal.js create mode 100644 src/navigation/components/VersionModal.tsx rename src/navigation/{hooks.js => hooks.ts} (78%) rename src/navigation/{index.js => index.ts} (59%) rename src/navigation/{navigation.js => navigation.ts} (77%) rename src/navigation/{registerScreens.js => registerScreens.tsx} (84%) rename src/navigation/{screenNames.js => screenNames.ts} (100%) rename src/navigation/{utils.js => utils.ts} (76%) delete mode 100644 src/plugins/i18n.js rename src/plugins/{lyric.js => lyric.ts} (55%) rename src/plugins/player/{hook.js => hook.ts} (60%) rename src/plugins/player/{index.js => index.ts} (59%) delete mode 100644 src/plugins/player/playList.js create mode 100644 src/plugins/player/playList.ts delete mode 100644 src/plugins/player/service.js create mode 100644 src/plugins/player/service.ts rename src/plugins/player/{utils.js => utils.ts} (68%) delete mode 100644 src/plugins/storage.js create mode 100644 src/plugins/storage.ts delete mode 100644 src/plugins/sync/client/auth.js create mode 100644 src/plugins/sync/client/auth.ts rename src/plugins/sync/client/{client.js => client.ts} (71%) rename src/plugins/sync/client/{config.js => config.ts} (75%) rename src/plugins/sync/client/{index.js => index.ts} (55%) delete mode 100644 src/plugins/sync/client/syncList.js create mode 100644 src/plugins/sync/client/syncList.ts delete mode 100644 src/plugins/sync/client/utils.js create mode 100644 src/plugins/sync/client/utils.ts rename src/plugins/sync/modules/{index.js => index.ts} (100%) rename src/plugins/sync/modules/list/{index.js => index.ts} (83%) delete mode 100644 src/plugins/sync/modules/list/on.js create mode 100644 src/plugins/sync/modules/list/on.ts delete mode 100644 src/plugins/sync/modules/list/send.js create mode 100644 src/plugins/sync/modules/list/send.ts delete mode 100644 src/screens/Comment/CommentHot.js create mode 100644 src/screens/Comment/CommentHot.tsx delete mode 100644 src/screens/Comment/CommentNew.js create mode 100644 src/screens/Comment/CommentNew.tsx delete mode 100644 src/screens/Comment/components/CommentFloor.js create mode 100644 src/screens/Comment/components/CommentFloor.tsx delete mode 100644 src/screens/Comment/components/Header.js create mode 100644 src/screens/Comment/components/Header.tsx create mode 100644 src/screens/Comment/components/List.tsx delete mode 100644 src/screens/Comment/index.js create mode 100644 src/screens/Comment/index.tsx create mode 100644 src/screens/Comment/utils.ts create mode 100644 src/screens/Home/Horizontal/Aside.tsx create mode 100644 src/screens/Home/Horizontal/Header.tsx create mode 100644 src/screens/Home/Horizontal/index.tsx delete mode 100644 src/screens/Home/List/components/ExitMultipleModeBar.js delete mode 100644 src/screens/Home/List/components/ListItem.js delete mode 100644 src/screens/Home/List/components/ListSearchBar.js delete mode 100644 src/screens/Home/List/components/MusicPositionModal.js delete mode 100644 src/screens/Home/List/components/MyList.js delete mode 100644 src/screens/Home/List/index.js delete mode 100644 src/screens/Home/List/utils.js delete mode 100644 src/screens/Home/Search/components/Input.js delete mode 100644 src/screens/Home/Search/components/MusicList.js delete mode 100644 src/screens/Home/Search/components/SourceSelector.js delete mode 100644 src/screens/Home/Search/components/TipList.js delete mode 100644 src/screens/Home/Search/index.js delete mode 100644 src/screens/Home/Setting/Backup/Part.js delete mode 100644 src/screens/Home/Setting/Basic/IsAutoTheme.js delete mode 100644 src/screens/Home/Setting/Basic/IsStartupAutoPlay.js delete mode 100644 src/screens/Home/Setting/Basic/Language.js delete mode 100644 src/screens/Home/Setting/Basic/ShareType.js delete mode 100644 src/screens/Home/Setting/Basic/SourceName.js delete mode 100644 src/screens/Home/Setting/Basic/Theme.js delete mode 100644 src/screens/Home/Setting/List/AddMusicLocationType.js delete mode 100644 src/screens/Home/Setting/List/IsClickPlayList.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/IsLockLyric.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/IsShowLyric.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/IsShowToggleAnima.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/IsSingleLine.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/MaxLineNum.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/TextOpacity.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/TextPositionX.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/TextPositionY.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/TextSize.js delete mode 100644 src/screens/Home/Setting/LyricDesktop/ViewWidth.js delete mode 100644 src/screens/Home/Setting/Player/IsHandleAudioFocus.js delete mode 100644 src/screens/Home/Setting/Player/IsPlayHighQuality.js delete mode 100644 src/screens/Home/Setting/Player/IsS2T.js delete mode 100644 src/screens/Home/Setting/Player/IsShowLyricRoma.js delete mode 100644 src/screens/Home/Setting/Player/IsShowLyricTranslation.js delete mode 100644 src/screens/Home/Setting/Player/IsShowNotificationImage.js delete mode 100644 src/screens/Home/Setting/Player/MaxCache.js delete mode 100644 src/screens/Home/Setting/Player/index.js delete mode 100644 src/screens/Home/Setting/Version.js delete mode 100644 src/screens/Home/Setting/components/Button.js delete mode 100644 src/screens/Home/Setting/components/CheckBoxItem.js delete mode 100644 src/screens/Home/Setting/components/Section.js delete mode 100644 src/screens/Home/Setting/components/SubTitle.js delete mode 100644 src/screens/Home/SongList/List.js delete mode 100644 src/screens/Home/SongList/ListItem.js delete mode 100644 src/screens/Home/SongList/MenuBar.js delete mode 100644 src/screens/Home/SongList/OpenList.js delete mode 100644 src/screens/Home/SongList/SortTab.js delete mode 100644 src/screens/Home/SongList/SourceSelector.js delete mode 100644 src/screens/Home/SongList/Tag.js delete mode 100644 src/screens/Home/SongList/index.js delete mode 100644 src/screens/Home/Top/BoardsList.js delete mode 100644 src/screens/Home/Top/LeftBar.js delete mode 100644 src/screens/Home/Top/MusicList.js delete mode 100644 src/screens/Home/Top/SourceSelector.js delete mode 100644 src/screens/Home/Top/index.js create mode 100644 src/screens/Home/Vertical/Content.tsx create mode 100644 src/screens/Home/Vertical/DrawerNav.tsx create mode 100644 src/screens/Home/Vertical/Header.tsx create mode 100644 src/screens/Home/Vertical/index.tsx rename src/screens/Home/{ => Views}/Download/index.js (100%) create mode 100644 src/screens/Home/Views/Leaderboard/BoardsList/List.tsx create mode 100644 src/screens/Home/Views/Leaderboard/BoardsList/ListItem.tsx create mode 100644 src/screens/Home/Views/Leaderboard/BoardsList/ListMenu.tsx create mode 100644 src/screens/Home/Views/Leaderboard/BoardsList/index.tsx create mode 100644 src/screens/Home/Views/Leaderboard/LeftBar.tsx create mode 100644 src/screens/Home/Views/Leaderboard/MusicList.tsx create mode 100644 src/screens/Home/Views/Leaderboard/index.tsx create mode 100644 src/screens/Home/Views/Leaderboard/listAction.ts create mode 100644 src/screens/Home/Views/Mylist/MusicList/ActiveList.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/List.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/ListItem.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/ListMenu.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/ListMusicSearch.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/ListSearchBar.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/MultipleModeBar.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/MusicPositionModal.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/index.tsx create mode 100644 src/screens/Home/Views/Mylist/MusicList/listAction.ts create mode 100644 src/screens/Home/Views/Mylist/MyList/List.tsx create mode 100644 src/screens/Home/Views/Mylist/MyList/ListImportExport.tsx create mode 100644 src/screens/Home/Views/Mylist/MyList/ListMenu.tsx create mode 100644 src/screens/Home/Views/Mylist/MyList/ListNameEdit.tsx create mode 100644 src/screens/Home/Views/Mylist/MyList/index.tsx create mode 100644 src/screens/Home/Views/Mylist/MyList/listAction.ts create mode 100644 src/screens/Home/Views/Mylist/index.tsx create mode 100644 src/screens/Home/Views/Search/BlankView/HistorySearch.tsx create mode 100644 src/screens/Home/Views/Search/BlankView/HotSearch.tsx create mode 100644 src/screens/Home/Views/Search/BlankView/index.tsx create mode 100644 src/screens/Home/Views/Search/HeaderBar/SearchInput.tsx create mode 100644 src/screens/Home/Views/Search/HeaderBar/index.tsx create mode 100644 src/screens/Home/Views/Search/List.tsx create mode 100644 src/screens/Home/Views/Search/MusicList.tsx create mode 100644 src/screens/Home/Views/Search/SearchTypeSelector.tsx create mode 100644 src/screens/Home/Views/Search/SonglistList.tsx create mode 100644 src/screens/Home/Views/Search/TipList.tsx create mode 100644 src/screens/Home/Views/Search/index.tsx rename src/screens/Home/{Setting/About.js => Views/Setting/About.tsx} (50%) rename src/screens/Home/{ => Views}/Setting/Backup/All.js (100%) create mode 100644 src/screens/Home/Views/Setting/Backup/ListImportExport.tsx create mode 100644 src/screens/Home/Views/Setting/Backup/Part.tsx create mode 100644 src/screens/Home/Views/Setting/Backup/actions.ts rename src/screens/Home/{Setting/Backup/index.js => Views/Setting/Backup/index.tsx} (78%) create mode 100644 src/screens/Home/Views/Setting/Basic/DrawerLayoutPosition.tsx create mode 100644 src/screens/Home/Views/Setting/Basic/FontSize.tsx rename src/screens/Home/{ => Views}/Setting/Basic/IsAutoHidePlayBar.js (100%) create mode 100644 src/screens/Home/Views/Setting/Basic/IsAutoTheme.tsx create mode 100644 src/screens/Home/Views/Setting/Basic/IsStartupAutoPlay.tsx create mode 100644 src/screens/Home/Views/Setting/Basic/Language.tsx create mode 100644 src/screens/Home/Views/Setting/Basic/ShareType.tsx rename src/screens/Home/{Setting/Basic/Source.js => Views/Setting/Basic/Source.tsx} (52%) create mode 100644 src/screens/Home/Views/Setting/Basic/SourceName.tsx create mode 100644 src/screens/Home/Views/Setting/Basic/Theme.tsx rename src/screens/Home/{Setting/Basic/index.js => Views/Setting/Basic/index.tsx} (68%) create mode 100644 src/screens/Home/Views/Setting/List/AddMusicLocationType.tsx create mode 100644 src/screens/Home/Views/Setting/List/IsClickPlayList.tsx rename src/screens/Home/{Setting/List/index.js => Views/Setting/List/index.tsx} (81%) create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/IsLockLyric.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/IsShowLyric.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/IsShowToggleAnima.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/IsSingleLine.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/MaxLineNum.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/TextOpacity.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/TextPositionX.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/TextPositionY.tsx create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/TextSize.tsx rename src/screens/Home/{Setting/LyricDesktop/Theme.js => Views/Setting/LyricDesktop/Theme.tsx} (50%) create mode 100644 src/screens/Home/Views/Setting/LyricDesktop/ViewWidth.tsx rename src/screens/Home/{Setting/LyricDesktop/index.js => Views/Setting/LyricDesktop/index.tsx} (89%) rename src/screens/Home/{Setting/Other/Cache.js => Views/Setting/Other/Cache.tsx} (67%) rename src/screens/Home/{ => Views}/Setting/Other/Log.js (100%) rename src/screens/Home/{Setting/Other/index.js => Views/Setting/Other/index.tsx} (71%) create mode 100644 src/screens/Home/Views/Setting/Player/IsHandleAudioFocus.tsx create mode 100644 src/screens/Home/Views/Setting/Player/IsPlayHighQuality.tsx create mode 100644 src/screens/Home/Views/Setting/Player/IsS2T.tsx create mode 100644 src/screens/Home/Views/Setting/Player/IsSavePlayTime.tsx create mode 100644 src/screens/Home/Views/Setting/Player/IsShowLyricRoma.tsx create mode 100644 src/screens/Home/Views/Setting/Player/IsShowLyricTranslation.tsx create mode 100644 src/screens/Home/Views/Setting/Player/IsShowNotificationImage.tsx create mode 100644 src/screens/Home/Views/Setting/Player/MaxCache.tsx create mode 100644 src/screens/Home/Views/Setting/Player/index.tsx create mode 100644 src/screens/Home/Views/Setting/Search/IsShowHistorySearch.tsx create mode 100644 src/screens/Home/Views/Setting/Search/IsShowHotSearch.tsx create mode 100644 src/screens/Home/Views/Setting/Search/index.tsx rename src/screens/Home/{Setting/Sync/History.js => Views/Setting/Sync/History.tsx} (85%) rename src/screens/Home/{Setting/Sync/IsEnable.js => Views/Setting/Sync/IsEnable.tsx} (51%) rename src/screens/Home/{Setting/Sync/index.js => Views/Setting/Sync/index.tsx} (64%) create mode 100644 src/screens/Home/Views/Setting/Sync/isEnable.tsx.bak create mode 100644 src/screens/Home/Views/Setting/Version.tsx create mode 100644 src/screens/Home/Views/Setting/components/Button.tsx create mode 100644 src/screens/Home/Views/Setting/components/CheckBoxItem.tsx rename src/screens/Home/{Setting/components/InputItem.js => Views/Setting/components/InputItem.tsx} (63%) create mode 100644 src/screens/Home/Views/Setting/components/Section.tsx rename src/screens/Home/{Setting/components/Slider.js => Views/Setting/components/Slider.tsx} (51%) create mode 100644 src/screens/Home/Views/Setting/components/SubTitle.tsx rename src/screens/Home/{Setting/index.js => Views/Setting/index.tsx} (67%) create mode 100644 src/screens/Home/Views/SongList/Content.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/OpenList/Modal.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/OpenList/index.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/SortTab.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/SourceSelector.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/Tag/CurrentTagBtn.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/Tag/index.tsx create mode 100644 src/screens/Home/Views/SongList/HeaderBar/index.tsx create mode 100644 src/screens/Home/Views/SongList/List.tsx create mode 100644 src/screens/Home/Views/SongList/TagList/List.tsx create mode 100644 src/screens/Home/Views/SongList/TagList/TagGroup.tsx create mode 100644 src/screens/Home/Views/SongList/TagList/index.tsx create mode 100644 src/screens/Home/Views/SongList/components/Songlist/List.tsx create mode 100644 src/screens/Home/Views/SongList/components/Songlist/ListItem.tsx create mode 100644 src/screens/Home/Views/SongList/components/Songlist/index.tsx create mode 100644 src/screens/Home/Views/SongList/index.tsx delete mode 100644 src/screens/Home/components/Aside.js delete mode 100644 src/screens/Home/components/FooterPlayer.js delete mode 100644 src/screens/Home/components/Header.js delete mode 100644 src/screens/Home/components/HeaderLandscape.js delete mode 100644 src/screens/Home/components/Main.js create mode 100644 src/screens/Home/components/Main.tsx create mode 100644 src/screens/Home/components/PlayerBar/components/ControlBtn.tsx create mode 100644 src/screens/Home/components/PlayerBar/components/Pic.tsx create mode 100644 src/screens/Home/components/PlayerBar/components/PlayInfo.tsx create mode 100644 src/screens/Home/components/PlayerBar/components/Status.tsx create mode 100644 src/screens/Home/components/PlayerBar/components/Title.tsx rename src/screens/Home/components/{PlayerPortrait/index.js => PlayerBar/index.tsx} (51%) delete mode 100644 src/screens/Home/components/PlayerLandscape.js delete mode 100644 src/screens/Home/components/PlayerPortrait/components/ControlBtn.js delete mode 100644 src/screens/Home/components/PlayerPortrait/components/Pic.js delete mode 100644 src/screens/Home/components/PlayerPortrait/components/PlayInfo.js delete mode 100644 src/screens/Home/components/PlayerPortrait/components/Status.js delete mode 100644 src/screens/Home/components/PlayerPortrait/components/Title.js delete mode 100644 src/screens/Home/index.js create mode 100644 src/screens/Home/index.tsx rename src/screens/PlayDetail/{Portrait/Lyric.js => Horizontal/Lyric.tsx} (56%) create mode 100644 src/screens/PlayDetail/Horizontal/Pic.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/ControlBtn.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/MoreBtn/Btn.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/MoreBtn/MusicAddBtn.tsx rename src/screens/PlayDetail/{Portrait/Player/components/MoreBtn/PlayModeBtn.js => Horizontal/Player/MoreBtn/PlayModeBtn.tsx} (58%) create mode 100644 src/screens/PlayDetail/Horizontal/Player/MoreBtn/TimeoutExitBtn.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/MoreBtn/index.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/PlayInfo.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/Progress.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/Status.tsx create mode 100644 src/screens/PlayDetail/Horizontal/Player/index.tsx create mode 100644 src/screens/PlayDetail/Horizontal/components/Btn.tsx create mode 100644 src/screens/PlayDetail/Horizontal/components/CommentBtn.tsx create mode 100644 src/screens/PlayDetail/Horizontal/components/Header.tsx create mode 100644 src/screens/PlayDetail/Horizontal/index.tsx delete mode 100644 src/screens/PlayDetail/Landscape/ControlBtn.js delete mode 100644 src/screens/PlayDetail/Landscape/Lyric.js delete mode 100644 src/screens/PlayDetail/Landscape/MoreBtn/MusicAddBtn.js delete mode 100644 src/screens/PlayDetail/Landscape/MoreBtn/TimeoutExit.js delete mode 100644 src/screens/PlayDetail/Landscape/MoreBtn/index.js delete mode 100644 src/screens/PlayDetail/Landscape/Pic.js delete mode 100644 src/screens/PlayDetail/Landscape/PlayBar/Progress.js delete mode 100644 src/screens/PlayDetail/Landscape/PlayBar/Status.js delete mode 100644 src/screens/PlayDetail/Landscape/PlayBar/index.js delete mode 100644 src/screens/PlayDetail/Landscape/Title.js delete mode 100644 src/screens/PlayDetail/Landscape/components/CommentBtn.js delete mode 100644 src/screens/PlayDetail/Landscape/components/Header.js delete mode 100644 src/screens/PlayDetail/Landscape/index.js delete mode 100644 src/screens/PlayDetail/Portrait/Pic.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/ControlBtn.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/MoreBtn/CommentBtn.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/MoreBtn/MusicAddBtn.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/MoreBtn/TimeoutExit.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/PlayInfo.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/Progress.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/Status.js delete mode 100644 src/screens/PlayDetail/Portrait/Player/components/Title.js delete mode 100644 src/screens/PlayDetail/Portrait/components/Header.js create mode 100644 src/screens/PlayDetail/Vertical/Lyric.tsx create mode 100644 src/screens/PlayDetail/Vertical/Pic.tsx create mode 100644 src/screens/PlayDetail/Vertical/Player/components/ControlBtn.tsx create mode 100644 src/screens/PlayDetail/Vertical/Player/components/MoreBtn/Btn.tsx create mode 100644 src/screens/PlayDetail/Vertical/Player/components/MoreBtn/CommentBtn.tsx create mode 100644 src/screens/PlayDetail/Vertical/Player/components/MoreBtn/MusicAddBtn.tsx rename src/screens/PlayDetail/{Landscape/MoreBtn/PlayModeBtn.js => Vertical/Player/components/MoreBtn/PlayModeBtn.tsx} (56%) create mode 100644 src/screens/PlayDetail/Vertical/Player/components/MoreBtn/TimeoutExitBtn.tsx rename src/screens/PlayDetail/{Portrait/Player/components/MoreBtn/index.js => Vertical/Player/components/MoreBtn/index.tsx} (66%) create mode 100644 src/screens/PlayDetail/Vertical/Player/components/PlayInfo.tsx create mode 100644 src/screens/PlayDetail/Vertical/Player/components/Progress.tsx create mode 100644 src/screens/PlayDetail/Vertical/Player/components/Status.tsx rename src/screens/PlayDetail/{Portrait/Player/index.js => Vertical/Player/index.tsx} (64%) create mode 100644 src/screens/PlayDetail/Vertical/components/Header.tsx rename src/screens/PlayDetail/{Portrait/index.js => Vertical/index.tsx} (59%) delete mode 100644 src/screens/PlayDetail/index.js create mode 100644 src/screens/PlayDetail/index.tsx delete mode 100644 src/screens/SonglistDetail/ActionBar.js create mode 100644 src/screens/SonglistDetail/ActionBar.tsx delete mode 100644 src/screens/SonglistDetail/Failed.js delete mode 100644 src/screens/SonglistDetail/Header.js create mode 100644 src/screens/SonglistDetail/Header.tsx delete mode 100644 src/screens/SonglistDetail/List.js create mode 100644 src/screens/SonglistDetail/MusicList.tsx create mode 100644 src/screens/SonglistDetail/PlayerBar/ControlBtn.tsx create mode 100644 src/screens/SonglistDetail/PlayerBar/Pic.tsx create mode 100644 src/screens/SonglistDetail/PlayerBar/PlayInfo.tsx create mode 100644 src/screens/SonglistDetail/PlayerBar/Status.tsx create mode 100644 src/screens/SonglistDetail/PlayerBar/Title.tsx create mode 100644 src/screens/SonglistDetail/PlayerBar/index.tsx delete mode 100644 src/screens/SonglistDetail/PlayerPortrait/components/ControlBtn.js delete mode 100644 src/screens/SonglistDetail/PlayerPortrait/components/Pic.js delete mode 100644 src/screens/SonglistDetail/PlayerPortrait/components/PlayInfo.js delete mode 100644 src/screens/SonglistDetail/PlayerPortrait/components/Status.js delete mode 100644 src/screens/SonglistDetail/PlayerPortrait/components/Title.js delete mode 100644 src/screens/SonglistDetail/PlayerPortrait/index.js delete mode 100644 src/screens/SonglistDetail/index.js create mode 100644 src/screens/SonglistDetail/index.tsx create mode 100644 src/screens/SonglistDetail/listAction.ts rename src/screens/{index.js => index.ts} (100%) delete mode 100644 src/store/.bak/actions/common.js delete mode 100644 src/store/.bak/actions/counts.js delete mode 100644 src/store/.bak/actions/search.js delete mode 100644 src/store/.bak/reducers/common.js delete mode 100644 src/store/.bak/reducers/count.js delete mode 100644 src/store/.bak/reducers/index.js delete mode 100644 src/store/.bak/reducers/search.js delete mode 100644 src/store/Provider/Provider.js create mode 100644 src/store/Provider/Provider.tsx create mode 100644 src/store/Provider/ThemeProvider.tsx delete mode 100644 src/store/Provider/index.js create mode 100644 src/store/Provider/index.ts create mode 100644 src/store/common/action.ts create mode 100644 src/store/common/hook.ts create mode 100644 src/store/common/state.ts delete mode 100644 src/store/connect.js delete mode 100644 src/store/getter.js create mode 100644 src/store/hotSearch/action.ts create mode 100644 src/store/hotSearch/state.ts delete mode 100644 src/store/index.js create mode 100644 src/store/index.ts create mode 100644 src/store/leaderboard/action.ts create mode 100644 src/store/leaderboard/state.ts create mode 100644 src/store/list/action.ts create mode 100644 src/store/list/hook.ts create mode 100644 src/store/list/state.ts delete mode 100644 src/store/modules/common/action.js create mode 100644 src/store/modules/common/common.ts delete mode 100644 src/store/modules/common/getter.js delete mode 100644 src/store/modules/common/index.js create mode 100644 src/store/modules/common/index.ts delete mode 100644 src/store/modules/common/reducer.js delete mode 100644 src/store/modules/index.js create mode 100644 src/store/modules/index.ts delete mode 100644 src/store/modules/list/action.js delete mode 100644 src/store/modules/list/getter.js delete mode 100644 src/store/modules/list/index.js delete mode 100644 src/store/modules/list/reducer.js delete mode 100644 src/store/modules/player/action.js delete mode 100644 src/store/modules/player/getter.js delete mode 100644 src/store/modules/player/index.js delete mode 100644 src/store/modules/player/reducer.js create mode 100644 src/store/player/action.ts create mode 100644 src/store/player/hook.ts create mode 100644 src/store/player/state.ts delete mode 100644 src/store/reducer.js create mode 100644 src/store/search/action.ts create mode 100644 src/store/search/music/action.ts create mode 100644 src/store/search/music/state.ts create mode 100644 src/store/search/songlist/action.ts create mode 100644 src/store/search/songlist/state.ts create mode 100644 src/store/search/state.ts create mode 100644 src/store/setting/action.ts create mode 100644 src/store/setting/hook.ts create mode 100644 src/store/setting/state.ts create mode 100644 src/store/songlist/action.ts create mode 100644 src/store/songlist/state.ts delete mode 100644 src/store/store.js delete mode 100644 src/store/subscriber.js create mode 100644 src/store/sync/action.ts create mode 100644 src/store/sync/hook.ts create mode 100644 src/store/sync/state.ts create mode 100644 src/store/theme/action.ts create mode 100644 src/store/theme/hook.ts create mode 100644 src/store/theme/state.ts delete mode 100644 src/store/useDispatch.js create mode 100644 src/store/version/action.ts create mode 100644 src/store/version/hook.ts create mode 100644 src/store/version/state.ts delete mode 100644 src/theme/themes/black.js delete mode 100644 src/theme/themes/blue.js create mode 100644 src/theme/themes/colorUtils.js create mode 100644 src/theme/themes/createThemes.js delete mode 100644 src/theme/themes/green.js delete mode 100644 src/theme/themes/grey.js create mode 100644 src/theme/themes/images/china_ink.jpg create mode 100644 src/theme/themes/images/jqbg.jpg create mode 100644 src/theme/themes/images/landingMoon2.png create mode 100644 src/theme/themes/images/myzcbg.jpg create mode 100644 src/theme/themes/images/xnkl.png delete mode 100644 src/theme/themes/index.js create mode 100644 src/theme/themes/index.ts delete mode 100644 src/theme/themes/orange.js delete mode 100644 src/theme/themes/pink.js delete mode 100644 src/theme/themes/red.js create mode 100644 src/theme/themes/themes.ts create mode 100644 src/theme/themes/utils.js create mode 100644 src/types/app.d.ts create mode 100644 src/types/app_setting.d.ts create mode 100644 src/types/common.d.ts create mode 100644 src/types/config_files.d.ts create mode 100644 src/types/download_list.d.ts create mode 100644 src/types/list.d.ts create mode 100644 src/types/music.d.ts create mode 100644 src/types/player.d.ts create mode 100644 src/types/shims.d.ts create mode 100644 src/types/sync.d.ts create mode 100644 src/types/theme.d.ts create mode 100644 src/types/utils.d.ts delete mode 100644 src/utils/cache.js delete mode 100644 src/utils/common.js create mode 100644 src/utils/common.ts create mode 100644 src/utils/data.ts delete mode 100644 src/utils/env.js rename src/utils/{errorHandle.js => errorHandle.ts} (64%) rename src/utils/{fs.js => fs.ts} (61%) rename src/utils/hooks/{useLayout.js => useLayout.tsx} (58%) delete mode 100644 src/utils/index.js create mode 100644 src/utils/index.ts delete mode 100644 src/utils/listData.js create mode 100644 src/utils/listManage.ts rename src/utils/{log.js => log.ts} (85%) delete mode 100644 src/utils/lyric.js delete mode 100644 src/utils/lyricDesktop.js rename src/utils/{message.js => message.ts} (97%) rename src/utils/{music => musicSdk}/api-source-info.js (100%) rename src/utils/{music => musicSdk}/api-source.js (90%) rename src/utils/{music => musicSdk}/bd/api-test.js (100%) rename src/utils/{music => musicSdk}/bd/hotSearch.js (100%) rename src/utils/{music => musicSdk}/bd/index.js (100%) rename src/utils/{music => musicSdk}/bd/leaderboard.js (100%) rename src/utils/{music => musicSdk}/bd/musicInfo.js (100%) rename src/utils/{music => musicSdk}/bd/musicSearch.js (100%) rename src/utils/{music => musicSdk}/bd/songList.js (100%) rename src/utils/{music => musicSdk}/index.js (100%) rename src/utils/{music => musicSdk}/kg/api-direct.js (100%) rename src/utils/{music => musicSdk}/kg/api-test.js (100%) rename src/utils/{music => musicSdk}/kg/comment.js (89%) rename src/utils/{music => musicSdk}/kg/hotSearch.js (98%) rename src/utils/{music => musicSdk}/kg/index.js (100%) rename src/utils/{music => musicSdk}/kg/leaderboard.js (100%) rename src/utils/{music => musicSdk}/kg/lyric.js (100%) rename src/utils/{music => musicSdk}/kg/musicSearch.js (98%) rename src/utils/{music => musicSdk}/kg/pic.js (100%) rename src/utils/{music => musicSdk}/kg/songList.js (94%) rename src/utils/{music => musicSdk}/kg/util.js (100%) rename src/utils/{music => musicSdk}/kg/vendors/infSign.min.js (100%) rename src/utils/{music => musicSdk}/kw/album.js (100%) rename src/utils/{music => musicSdk}/kw/api-direct.js (100%) rename src/utils/{music => musicSdk}/kw/api-temp.js (100%) rename src/utils/{music => musicSdk}/kw/api-test.js (100%) rename src/utils/{music => musicSdk}/kw/comment.js (100%) rename src/utils/{music => musicSdk}/kw/decodeLyric.js (98%) rename src/utils/{music => musicSdk}/kw/hotSearch.js (100%) rename src/utils/{music => musicSdk}/kw/index.js (100%) rename src/utils/{music => musicSdk}/kw/leaderboard.js (100%) rename src/utils/{music => musicSdk}/kw/lyric.js (100%) rename src/utils/{music => musicSdk}/kw/musicSearch.js (98%) rename src/utils/{music => musicSdk}/kw/pic.js (100%) rename src/utils/{music => musicSdk}/kw/songList.js (93%) rename src/utils/{music => musicSdk}/kw/tempSearch.js (100%) rename src/utils/{music => musicSdk}/kw/util.js (73%) rename src/utils/{music => musicSdk}/mg/album.js (97%) rename src/utils/{music => musicSdk}/mg/api-direct.js (100%) rename src/utils/{music => musicSdk}/mg/api-test.js (100%) rename src/utils/{music => musicSdk}/mg/comment.js (100%) rename src/utils/{music => musicSdk}/mg/hotSearch.js (100%) rename src/utils/{music => musicSdk}/mg/index.js (100%) rename src/utils/{music => musicSdk}/mg/leaderboard.js (100%) rename src/utils/{music => musicSdk}/mg/leaderboard2.js (100%) rename src/utils/{music => musicSdk}/mg/lyric.js (100%) rename src/utils/{music => musicSdk}/mg/musicSearch.js (98%) rename src/utils/{music => musicSdk}/mg/pic.js (100%) rename src/utils/{music => musicSdk}/mg/songList.js (93%) rename src/utils/{music => musicSdk}/options.js (100%) rename src/utils/{music => musicSdk}/tx/api-direct.js (100%) rename src/utils/{music => musicSdk}/tx/api-test.js (100%) rename src/utils/{music => musicSdk}/tx/comment.js (100%) rename src/utils/{music => musicSdk}/tx/hotSearch.js (100%) rename src/utils/{music => musicSdk}/tx/index.js (100%) rename src/utils/{music => musicSdk}/tx/leaderboard.js (100%) rename src/utils/{music => musicSdk}/tx/lyric.js (100%) rename src/utils/{music => musicSdk}/tx/musicInfo.js (100%) rename src/utils/{music => musicSdk}/tx/musicSearch.js (99%) rename src/utils/{music => musicSdk}/tx/songList.js (87%) rename src/utils/{music => musicSdk}/tx/tipSearch.js (100%) rename src/utils/{music => musicSdk}/utils.js (90%) rename src/utils/{music => musicSdk}/wy/api-direct.js (100%) rename src/utils/{music => musicSdk}/wy/api-test.js (100%) rename src/utils/{music => musicSdk}/wy/comment.js (100%) rename src/utils/{music => musicSdk}/wy/hotSearch.js (100%) rename src/utils/{music => musicSdk}/wy/index.js (100%) rename src/utils/{music => musicSdk}/wy/leaderboard.js (100%) rename src/utils/{music => musicSdk}/wy/lyric.js (100%) rename src/utils/{music => musicSdk}/wy/musicDetail.js (100%) rename src/utils/{music => musicSdk}/wy/musicInfo.js (100%) rename src/utils/{music => musicSdk}/wy/musicSearch.js (98%) rename src/utils/{music => musicSdk}/wy/songList.js (92%) rename src/utils/{music => musicSdk}/wy/utils/crypto.js (97%) rename src/utils/{music => musicSdk}/wy/utils/index.js (100%) rename src/utils/{music => musicSdk}/xm.js (100%) create mode 100644 src/utils/nativeModules/cache.ts rename src/utils/{gzip.js => nativeModules/gzip.ts} (63%) create mode 100644 src/utils/nativeModules/lyricDesktop.ts create mode 100644 src/utils/nativeModules/utils.ts delete mode 100644 src/utils/permissions.js create mode 100644 src/utils/pixelRatio.ts delete mode 100644 src/utils/tools.js create mode 100644 src/utils/tools.ts delete mode 100644 src/utils/utils.js create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig index ab3ba88..0f17867 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,7 +7,3 @@ indent_size = 2 indent_style = space insert_final_newline = true trim_trailing_whitespace = true - -# Windows files -[*.bat] -end_of_line = crlf diff --git a/.eslintrc.js b/.eslintrc.js index 6e83b40..b017f0a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,10 +1,10 @@ module.exports = { + root: true, + parser: '@typescript-eslint/parser', extends: [ - 'standard', + 'standard-with-typescript', 'plugin:react-hooks/recommended', ], - plugins: ['html', 'react'], - parser: '@babel/eslint-parser', rules: { 'no-new': 'off', camelcase: 'off', @@ -16,12 +16,47 @@ module.exports = { eqeqeq: 'off', 'no-multiple-empty-lines': [1, { max: 2 }], 'comma-dangle': [2, 'always-multiline'], - 'react/jsx-uses-react': 'error', - 'react/jsx-uses-vars': 'error', + 'standard/no-callback-literal': 'off', 'prefer-const': 'off', + 'no-labels': 'off', + 'node/no-callback-literal': 'off', }, - settings: { - 'html/html-extensions': ['.jsx'], - }, - ignorePatterns: ['vendors', '*.min.js'], + overrides: [ + { + files: ['*.ts', '*.tsx'], + rules: { + 'no-new': 'off', + camelcase: 'off', + 'no-return-assign': 'off', + 'space-before-function-paren': ['error', 'never'], + 'no-var': 'error', + 'no-fallthrough': 'off', + 'prefer-promise-reject-errors': 'off', + eqeqeq: 'off', + 'no-multiple-empty-lines': [1, { max: 2 }], + 'comma-dangle': [2, 'always-multiline'], + 'standard/no-callback-literal': 'off', + 'prefer-const': 'off', + 'no-labels': 'off', + 'node/no-callback-literal': 'off', + '@typescript-eslint/strict-boolean-expressions': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/space-before-function-paren': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/restrict-template-expressions': [1, { + allowBoolean: true, + }], + '@typescript-eslint/naming-convention': 'off', + '@typescript-eslint/return-await': 'off', + 'multiline-ternary': 'off', + '@typescript-eslint/comma-dangle': 'off', + '@typescript-eslint/no-dynamic-delete': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + }, + parserOptions: { + project: './tsconfig.json', + }, + }, + ], } diff --git a/.flowconfig b/.flowconfig deleted file mode 100644 index 975227d..0000000 --- a/.flowconfig +++ /dev/null @@ -1,67 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore polyfills -node_modules/react-native/Libraries/polyfills/.* - -; Flow doesn't support platforms -.*/Libraries/Utilities/LoadingView.js - -.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ - -[untyped] -.*/node_modules/@react-native-community/cli/.*/.* - -[include] - -[libs] -node_modules/react-native/interface.js -node_modules/react-native/flow/ - -[options] -emoji=true - -exact_by_default=true - -format.bracket_spacing=false - -module.file_ext=.js -module.file_ext=.json -module.file_ext=.ios.js - -munge_underscores=true - -module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' -module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -[lints] -sketchy-null-number=warn -sketchy-null-mixed=warn -sketchy-number=warn -untyped-type-import=warn -nonstrict-import=warn -deprecated-type=warn -unsafe-getters-setters=warn -unnecessary-invariant=warn -signature-verification-failure=warn - -[strict] -deprecated-type -nonstrict-import -sketchy-null -unclear-type -unsafe-getters-setters -untyped-import -untyped-type-import - -[version] -^0.170.0 diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 59b845b..0000000 --- a/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -# Windows files should use crlf line endings -# https://help.github.com/articles/dealing-with-line-endings/ -*.bat text eol=crlf \ No newline at end of file diff --git a/.github/workflows/beta-pack.yml b/.github/workflows/beta-pack.yml index 684cec4..7dbe949 100644 --- a/.github/workflows/beta-pack.yml +++ b/.github/workflows/beta-pack.yml @@ -16,7 +16,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: '16' + node-version: '18' - name: Cache Gradle Wrapper uses: actions/cache@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5cef50d..a2d9620 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: '16' + node-version: '18' - name: Cache Gradle Wrapper uses: actions/cache@v3 diff --git a/.gitignore b/.gitignore index ac9287a..6bb4d57 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ DerivedData *.hmap *.ipa *.xcuserstate +ios/.xcode.env.local # Android/IntelliJ # @@ -30,6 +31,7 @@ local.properties keystore.properties *.iml *.hprof +.cxx/ # node.js # @@ -50,9 +52,10 @@ buck-out/ # For more information about the recommended setup visit: # https://docs.fastlane.tools/best-practices/source-control/ -*/fastlane/report.xml -*/fastlane/Preview.html -*/fastlane/screenshots +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output # Bundle artifact *.jsbundle diff --git a/.ncurc.js b/.ncurc.js index 6ba15ef..85152c4 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -1,17 +1,16 @@ module.exports = { upgrade: true, - // target: 'newest', reject: [ - 'metro-react-native-babel-preset', - 'readable-stream', - 'stream-browserify', - 'url', - 'util', - 'babel-jest', - 'jest', - + // 'metro-react-native-babel-preset', + '@types/react-native', 'react-native', 'react', - 'react-test-renderer', ] + + // target: 'patch', + // filter: [ + // 'react-native', + // '@types/react-native', + // 'react' + // ], } diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..b6a7d89 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +16 diff --git a/.ruby-version b/.ruby-version index a4dd9db..a603bb5 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.7.4 +2.7.5 diff --git a/.vscode/i18n-ally-custom-framework.yml b/.vscode/i18n-ally-custom-framework.yml new file mode 100644 index 0000000..8f52ce1 --- /dev/null +++ b/.vscode/i18n-ally-custom-framework.yml @@ -0,0 +1,30 @@ +# .vscode/i18n-ally-custom-framework.yml + +# An array of strings which contain Language Ids defined by VS Code +# You can check avaliable language ids here: https://code.visualstudio.com/docs/languages/overview#_language-id +languageIds: + - javascript + - javascriptreact + - typescript + - typescriptreact + +# An array of RegExes to find the key usage. **The key should be captured in the first match group**. +# You should unescape RegEx strings in order to fit in the YAML file +# To help with this, you can use https://www.freeformatter.com/json-escape.html +usageMatchRegex: + # The following example shows how to detect `t("your.i18n.keys")` + # the `{key}` will be placed by a proper keypath matching regex, + # you can ignore it and use your own matching rules as well + - "[^\\w\\d]t\\(['\"`]({key})['\"`]" + + +# An array of strings containing refactor templates. +# The "$1" will be replaced by the keypath specified. +# Optional: uncomment the following two lines to use + +# refactorTemplates: +# - i18n.get("$1") + + +# If set to true, only enables this custom framework (will disable all built-in frameworks) +monopoly: true diff --git a/.vscode/javascript.code-snippets b/.vscode/javascript.code-snippets index 1abd323..f22c250 100644 --- a/.vscode/javascript.code-snippets +++ b/.vscode/javascript.code-snippets @@ -16,7 +16,7 @@ // "description": "Log output to console" // } "Import translation": { - "scope": "javascript,typescript", + "scope": "javascript,typescript,typescriptreact", "prefix": "imtl", "body": [ "import { useTranslation } from '@/plugins/i18n'", @@ -24,16 +24,32 @@ ], "description": "Translation Language" }, - "Import store hook": { - "scope": "javascript,typescript", - "prefix": "imsh", + "Import store setting": { + "scope": "javascript,typescript,typescriptreact", + "prefix": "imss", "body": [ - "import { useGetter, useDispatch } from '@/store'" + "import settingState from '@/store/setting/state'" ], - "description": "Import store hook" + "description": "Import store setting" + }, + "Import store player": { + "scope": "javascript,typescript,typescriptreact", + "prefix": "imsp", + "body": [ + "import playerState from '@/store/player/state'" + ], + "description": "Import store player" + }, + "Import store list": { + "scope": "javascript,typescript,typescriptreact", + "prefix": "imsl", + "body": [ + "import listState from '@/store/list/state'" + ], + "description": "Import store list" }, "Import toast": { - "scope": "javascript,typescript", + "scope": "javascript,typescript,typescriptreact", "prefix": "imts", "body": [ "import { toast } from '@/utils/tools'", @@ -42,7 +58,7 @@ "description": "Import toast" }, "Use getter theme": { - "scope": "javascript,typescript", + "scope": "javascript,typescript,typescriptreact", "prefix": "ugt", "body": [ "const theme = useGetter('common', 'theme')" diff --git a/Gemfile b/Gemfile index c72a1ae..5efda89 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,6 @@ source 'https://rubygems.org' + # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby '2.7.4' +ruby '2.7.5' + gem 'cocoapods', '~> 1.11', '>= 1.11.2' diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 5628351..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,100 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.5) - rexml - activesupport (6.1.5) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) - atomos (0.1.3) - claide (1.1.0) - cocoapods (1.11.3) - addressable (~> 2.8) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.11.3) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.8.0) - nap (~> 1.0) - ruby-macho (>= 1.0, < 3.0) - xcodeproj (>= 1.21.0, < 2.0) - cocoapods-core (1.11.3) - activesupport (>= 5.0, < 7) - addressable (~> 2.8) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix (~> 4.0) - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.5) - cocoapods-downloader (1.6.3) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.1) - cocoapods-trunk (1.6.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) - colored2 (3.1.2) - concurrent-ruby (1.1.10) - escape (0.0.4) - ethon (0.15.0) - ffi (>= 1.15.0) - ffi (1.15.5) - fourflusher (2.3.1) - fuzzy_match (2.0.4) - gh_inspector (1.1.3) - httpclient (2.8.3) - i18n (1.10.0) - concurrent-ruby (~> 1.0) - json (2.6.1) - minitest (5.15.0) - molinillo (0.8.0) - nanaimo (0.3.0) - nap (1.1.0) - netrc (0.11.0) - public_suffix (4.0.7) - rexml (3.2.5) - ruby-macho (2.5.1) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (2.0.4) - concurrent-ruby (~> 1.0) - xcodeproj (1.21.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (~> 3.2.4) - zeitwerk (2.5.4) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods (~> 1.11, >= 1.11.2) - -RUBY VERSION - ruby 2.7.4p191 - -BUNDLED WITH - 2.2.27 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/android/app/build.gradle b/android/app/build.gradle index 637d70e..9cc4df5 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -152,30 +152,17 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode verCode versionName verName - multiDexEnabled true buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() + if (isNewArchitectureEnabled()) { - // We configure the NDK build only if you decide to opt-in for the New Architecture. + // We configure the CMake build only if you decide to opt-in for the New Architecture. externalNativeBuild { - ndkBuild { - arguments "APP_PLATFORM=android-21", - "APP_STL=c++_shared", - "NDK_TOOLCHAIN_VERSION=clang", - "GENERATED_SRC_DIR=$buildDir/generated/source", - "PROJECT_BUILD_DIR=$buildDir", - "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", - "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build" - cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" - cppFlags "-std=c++17" - // Make sure this target name is the same you specify inside the - // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. - targets "lxmusicmobile_appmodules" - - - // Fix for windows limit on number of character in file paths and in command lines - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - arguments "NDK_APP_SHORT_COMMANDS=true" - } + cmake { + arguments "-DPROJECT_BUILD_DIR=$buildDir", + "-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", + "-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", + "-DNODE_MODULES_DIR=$rootDir/../node_modules", + "-DANDROID_STL=c++_shared" } } if (!enableSeparateBuildPerCPUArchitecture) { @@ -185,11 +172,12 @@ android { } } } + if (isNewArchitectureEnabled()) { // We configure the NDK build only if you decide to opt-in for the New Architecture. externalNativeBuild { - ndkBuild { - path "$projectDir/src/main/jni/Android.mk" + cmake { + path "$projectDir/src/main/jni/CMakeLists.txt" } } def reactAndroidProjectDir = project(':ReactAndroid').projectDir @@ -209,16 +197,17 @@ android { // preBuild.dependsOn("generateCodegenArtifactsFromSchema") preDebugBuild.dependsOn(packageReactNdkDebugLibs) preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) + // Due to a bug inside AGP, we have to explicitly set a dependency - // between configureNdkBuild* tasks and the preBuild tasks. + // between configureCMakeDebug* tasks and the preBuild tasks. // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 - configureNdkBuildRelease.dependsOn(preReleaseBuild) - configureNdkBuildDebug.dependsOn(preDebugBuild) + configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild) + configureCMakeDebug.dependsOn(preDebugBuild) reactNativeArchitectures().each { architecture -> - tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure { + tasks.findByName("configureCMakeDebug[${architecture}]")?.configure { dependsOn("preDebugBuild") } - tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure { + tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure { dependsOn("preReleaseBuild") } } @@ -303,11 +292,8 @@ dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" - implementation 'com.android.support:multidex:1.0.3' - - implementation 'commons-io:commons-io:2.8.0' - - implementation 'org.apache.commons:commons-compress:1.20' + implementation 'commons-io:commons-io:2.11.0' + implementation 'org.apache.commons:commons-compress:1.22' debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { exclude group:'com.facebook.fbjni' @@ -323,9 +309,10 @@ dependencies { } if (enableHermes) { - def hermesPath = "../../node_modules/hermes-engine/android/"; - debugImplementation files(hermesPath + "hermes-debug.aar") - releaseImplementation files(hermesPath + "hermes-release.aar") + //noinspection GradleDynamicVersion + implementation("com.facebook.react:hermes-engine:+") { // From node_modules + exclude group:'com.facebook.fbjni' + } } else { implementation jscFlavor } @@ -338,7 +325,11 @@ if (isNewArchitectureEnabled()) { configurations.all { resolutionStrategy.dependencySubstitution { substitute(module("com.facebook.react:react-native")) - .using(project(":ReactAndroid")).because("On New Architecture we're building React Native from source") + .using(project(":ReactAndroid")) + .because("On New Architecture we're building React Native from source") + substitute(module("com.facebook.react:hermes-engine")) + .using(project(":ReactAndroid:hermes-engine")) + .because("On New Architecture we're building Hermes from source") } } } @@ -361,4 +352,3 @@ def isNewArchitectureEnabled() { } apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" - diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 3cc0f30..889cc8b 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -9,5 +9,5 @@ # Add any project specific keep options here: --keep class com.facebook.hermes.unicode.** { *; } --keep class com.facebook.jni.** { *; } +# -keep class com.facebook.hermes.unicode.** { *; } +# -keep class com.facebook.jni.** { *; } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 8fee2af..7cc39d5 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ - + xmlns:tools="http://schemas.android.com/tools" + package="cn.toside.music.mobile"> @@ -11,42 +10,40 @@ - - - - - - - - - - - - - - - - + android:networkSecurityConfig="@xml/network_security_config" + android:requestLegacyExternalStorage="true" + android:icon="@mipmap/ic_launcher" + android:roundIcon="@mipmap/ic_launcher_round" + android:allowBackup="false" + android:theme="@style/AppTheme"> + + + + + + + + + + + + + + diff --git a/android/app/src/main/assets/fonts/icomoon.ttf b/android/app/src/main/assets/fonts/icomoon.ttf index 96df7084d5ccfdd0e418c4221ee2baf4ccc1e6f7..ad3ecd824020a2c3d4363c8d9394316b8ac895c9 100644 GIT binary patch literal 8060 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 N0n~25SN`7T{{TioQ3wD4 delta 2960 zcmZt|TWk~A^_&^o<415Z@r=iLIPrKAJBdl~*d99&#|fB6MG^vGour6;WYa7N$R>hx zp+eM_RvWFh1$Hr1?b5A6yu#xE9 zdnOLeQeQ*#5$dgb4t(P^>HAkkiOvD=NA^xld`*6HVjQ6MG0Ee5iD4Zvy$0Y46Wy|R zdhW=vQ;spBUm*JJ12dEBC(?iIdxsb|h_QKk;>awt!@B@N3(>yUC#I*qx7GG3(Hm)! z`PrF6b7Uwr@gqYHEPMaGr9Nytg*|FNajL)y44B9%AB68VmWrhkag9I2ccDyS>66l* zBr|Ej{2cDc{{V$7L+*=gj@=J7aM3)nmz^99(;j>l=VpNPiZ{lJo)8GHRof(8s zN5NPY6D&ZC&7NTH(o`I!fs-O3lj|$c$|n|>k>W)I@Z0(vK6uP1lh{6~|7DWkG>t02 zem293q^hdybC8n~2?^=Z6c;CPQH=}YwVTNsy$fT-yGceGyXQ>4HFj_8EoSYFBt2ur z7b6(ii69;g zOb75N(DDO}n}BVDCJ5!{t#bZ?HNfck{2#2{S;JW<{mgWdT>>wxhGED6wE8JD!GIP^ zP;lbWh}49VTT}(kiJV2@{T5MhM;3w!Ywywq2DJFVK%7ZFaRfbjwI^8h#B8xx z@JUtBga7gb9ZxJ4&ivW(g9mu)!GoL6s;FqFsK%EE;uT$^_+yvHn?52) zk_+*oT_nfJ8V43ILrC-<&L*Gcw$>AdK5u2@Oa+m_-;dMV0(K<$hWSZsq1cL zL+u^Ifq=hv$iXnH^M7>w8i(?ys)kX`|Gi43}{;}c1iC7mndg9cy! zsapoHthm1f60CzAFb!Eao*!AYle8?Xx|e^~c`%X?DH9YUoa89&T$Q=gq$tCoQ0K1U z;Wzx$-WVR&ZD zxeu&1M6{SWX%$up9OSQ7-{}7kzRnJ?4%&BsK^t;5lx&zlb|9@k)*q+QTK=GwNanZn zDPvCskY8xnoej|jT&4}!00~kP4RTSToW>N)cp^w~Tgh?NC8h9-6j!8#5-TUaqEbpD zjGWJy$vBBn((MZ-b{GcA!wOL5frA}r@} znOu$)GZ974D3OT5K#RI;@G|Zk`P2G;lVe6_w_6b7QP-fdnl!}CsOucO-O6a-D{TC+tE^{P(EgOaqif0*+y z9&V_gIpCH84BNIYyJ5q(wrokS676wotv$T=!1S*+ZSttBNfzC;ypJ_Cu3o!#HXN>( zT5B7Fft_t_KFMYcx&(c0^SIT6b==s-4fT@b?gzvfSYisylChgw6TyTHgE({bY7(IY z$>P;($r2&GRBX#3r~g=}&eEysF-{gumNn&zK+`!}ezXjZ>WfSvQ=nI0)M)_?Kyh?& z(ReYF8O>0&re&XkR`x7AQ9iAL@D~RMv*GMN8jzKT` zCYz>3ZH6FuOzSARc)=1vaydk0xtG#wWgk(-D|B@c6Ee@7)qjuiJDu|S`zOs#tE)zO z-`CaUWA@3N+lt@0a~K_XduRxqdf3-_(qfTn<~n_NUGD7i>EXkN@p@%)s>tk8{*q@7 zKghS%UCd_S3|*B(x@grs@K3bk2!70rvsLUqlVG}Jx@B%Or_B4zm(BMr9hQTZc~0Qk axDoCntKE9eYFx3Ab`kjD#7{1Jm+-&kmW9Ru diff --git a/android/app/src/main/java/cn/toside/music/mobile/MainActivity.java b/android/app/src/main/java/cn/toside/music/mobile/MainActivity.java index ba710df..b4fd317 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/MainActivity.java +++ b/android/app/src/main/java/cn/toside/music/mobile/MainActivity.java @@ -1,15 +1,33 @@ package cn.toside.music.mobile; -import android.os.Bundle; - import com.reactnativenavigation.NavigationActivity; - -import org.devio.rn.splashscreen.SplashScreen; +import com.facebook.react.ReactActivityDelegate; +import com.facebook.react.ReactRootView; public class MainActivity extends NavigationActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - SplashScreen.show(this, R.style.SplashScreenTheme, true); // here - super.onCreate(savedInstanceState); + + + + + + public static class MainActivityDelegate extends ReactActivityDelegate { + public MainActivityDelegate(NavigationActivity activity, String mainComponentName) { + super(activity, mainComponentName); + } + + @Override + protected ReactRootView createRootView() { + ReactRootView reactRootView = new ReactRootView(getContext()); + // If you opted-in for the New Architecture, we enable the Fabric Renderer. + reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); + return reactRootView; + } + + @Override + protected boolean isConcurrentRootEnabled() { + // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18). + // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html + return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; + } } } diff --git a/android/app/src/main/java/cn/toside/music/mobile/MainApplication.java b/android/app/src/main/java/cn/toside/music/mobile/MainApplication.java index 32588e1..d46b343 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/MainApplication.java +++ b/android/app/src/main/java/cn/toside/music/mobile/MainApplication.java @@ -1,22 +1,22 @@ package cn.toside.music.mobile; +import android.app.Application; import android.content.Context; - import com.facebook.react.PackageList; +import com.reactnativenavigation.NavigationApplication; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; +import com.reactnativenavigation.react.NavigationReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.config.ReactFeatureFlags; -import com.reactnativenavigation.NavigationApplication; -import com.reactnativenavigation.react.NavigationReactNativeHost; - +import com.facebook.soloader.SoLoader; +import cn.toside.music.mobile.newarchitecture.MainApplicationReactNativeHost; import java.lang.reflect.InvocationTargetException; import java.util.List; import cn.toside.music.mobile.cache.CachePackage; import cn.toside.music.mobile.gzip.GzipPackage; import cn.toside.music.mobile.lyric.LyricPackage; -import cn.toside.music.mobile.newarchitecture.MainApplicationReactNativeHost; import cn.toside.music.mobile.utils.UtilsPackage; public class MainApplication extends NavigationApplication { @@ -34,10 +34,10 @@ public class MainApplication extends NavigationApplication { List packages = new PackageList(this).getPackages(); // Packages that cannot be autolinked yet can be added manually here, for example: // packages.add(new MyReactNativePackage()); - packages.add(new GzipPackage()); packages.add(new CachePackage()); - packages.add(new UtilsPackage()); + packages.add(new GzipPackage()); packages.add(new LyricPackage()); + packages.add(new UtilsPackage()); return packages; } @@ -48,7 +48,8 @@ public class MainApplication extends NavigationApplication { }; private final ReactNativeHost mNewArchitectureNativeHost = - new MainApplicationReactNativeHost(this); + new MainApplicationReactNativeHost(this); + @Override public ReactNativeHost getReactNativeHost() { if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { diff --git a/android/app/src/main/java/cn/toside/music/mobile/lyric/Lyric.java b/android/app/src/main/java/cn/toside/music/mobile/lyric/Lyric.java index 7045c3f..22202aa 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/lyric/Lyric.java +++ b/android/app/src/main/java/cn/toside/music/mobile/lyric/Lyric.java @@ -196,8 +196,8 @@ public class Lyric extends LyricPlayer { refreshLyric(); } - public void setColor(String color) { - lyricView.setColor(color); + public void setPlayedColor(String unplayColor, String playedColor, String shadowColor) { + lyricView.setColor(unplayColor, playedColor, shadowColor); } public void setAlpha(float alpha) { lyricView.setAlpha(alpha); } diff --git a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricModule.java b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricModule.java index 6ce28a3..5ab1969 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricModule.java +++ b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricModule.java @@ -107,8 +107,8 @@ public class LyricModule extends ReactContextBaseJavaModule { } @ReactMethod - public void setColor(String themeColor, Promise promise) { - if (lyric != null) lyric.setColor(themeColor); + public void setColor(String unplayColor, String playedColor, String shadowColor, Promise promise) { + if (lyric != null) lyric.setPlayedColor(unplayColor, playedColor, shadowColor); promise.resolve(null); } diff --git a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricPlayer.java b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricPlayer.java index 3b2eee9..6400be1 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricPlayer.java +++ b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricPlayer.java @@ -14,6 +14,8 @@ import java.util.regex.Pattern; public class LyricPlayer { final String timeFieldExp = "^(?:\\[[\\d:.]+])+"; final String timeExp = "[\\d:.]+"; + final String timeLabelRxp = "^(\\[[\\d:]+\\.)0+(\\d+])"; + final String timeLabelFixRxp = "(?:\\.0+|0+)$"; // HashMap tagRegMap; Pattern timeFieldPattern; Pattern timePattern; @@ -124,8 +126,9 @@ public class LyricPlayer { Matcher timeMatchResult = timePattern.matcher(timeField); while (timeMatchResult.find()) { String timeStr = timeMatchResult.group(); - if (!timeStr.contains(".")) timeStr += ".0"; - timeStr = timeStr.replaceAll("(?:\\.0+|0+)$", ""); + if (timeStr.contains(".")) timeStr = timeStr.replaceAll(timeLabelRxp, "$1$2"); + else timeStr += ".0"; + timeStr = timeStr.replaceAll(timeLabelFixRxp, ""); HashMap targetLine = (HashMap) linesMap.get(timeStr); if (targetLine != null) ((ArrayList) targetLine.get("extendedLyrics")).add(text); } @@ -151,8 +154,9 @@ public class LyricPlayer { Matcher timeMatchResult = timePattern.matcher(timeField); while (timeMatchResult.find()) { String timeStr = timeMatchResult.group(); - if (!timeStr.contains(".")) timeStr += ".0"; - timeStr = timeStr.replaceAll("(?:\\.0+|0+)$", ""); + if (timeStr.contains(".")) timeStr = timeStr.replaceAll(timeLabelRxp, "$1$2"); + else timeStr += ".0"; + timeStr = timeStr.replaceAll(timeLabelFixRxp, ""); if (linesMap.containsKey(timeStr)) { ((ArrayList) ((HashMap) linesMap.get(timeStr)).get("extendedLyrics")).add(text); continue; diff --git a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricSwitchView.java b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricSwitchView.java index 802ef4e..8175cca 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricSwitchView.java +++ b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricSwitchView.java @@ -27,10 +27,13 @@ public final class LyricSwitchView extends TextSwitcher { // private final boolean isSingleLine; private boolean isShowAnima; + private boolean isSingleLine; + public LyricSwitchView(Context context, boolean isSingleLine, boolean isShowAnima) { super(context); // this.isSingleLine = isSingleLine; this.isShowAnima = isShowAnima; + this.isSingleLine = isSingleLine; if (isSingleLine) { viewArray = new ArrayList<>(2); @@ -38,9 +41,9 @@ public final class LyricSwitchView extends TextSwitcher { textView2 = new LyricTextView(context); viewArray.add(textView); viewArray.add(textView2); - for (TextView v : viewArray) { - v.setShadowLayer(0.1f, 0, 0, Color.BLACK); - } +// for (TextView v : viewArray) { +// v.setShadowLayer(0.1f, 0, 0, Color.BLACK); +// } } else { viewArray = new ArrayList<>(2); textView = new TextView(context); @@ -48,7 +51,7 @@ public final class LyricSwitchView extends TextSwitcher { viewArray.add(textView); viewArray.add(textView2); for (TextView v : viewArray) { - v.setShadowLayer(0.2f, 0, 0, Color.BLACK); +// v.setShadowLayer(0.2f, 0, 0, Color.BLACK); v.setEllipsize(TextUtils.TruncateAt.END); } } @@ -149,6 +152,16 @@ public final class LyricSwitchView extends TextSwitcher { for (TextView v : viewArray) v.setTextColor(i); } + public void setShadowColor(int i) { + float radius; + if (isSingleLine) { + radius = 0.1f; + } else { + radius = 0.2f; + } + for (TextView v : viewArray) v.setShadowLayer(radius, 0, 0, i); + } + public void setSourceText(CharSequence str) { for (TextView v : viewArray) v.setText(str); } diff --git a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricTextView.java b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricTextView.java index 62c3f95..f3c6392 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricTextView.java +++ b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricTextView.java @@ -64,6 +64,12 @@ public class LyricTextView extends TextView { postInvalidate(); } + @Override + public void setShadowLayer(float radius, float dx, float dy, int shadowColor) { + if (mPaint != null) mPaint.setShadowLayer(radius, dx, dy, shadowColor); + post(mStartScrollRunnable); + } + @Override public void setTextSize(float size) { super.setTextSize(size); diff --git a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricView.java b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricView.java index 045efd5..31624ec 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricView.java +++ b/android/app/src/main/java/cn/toside/music/mobile/lyric/LyricView.java @@ -23,6 +23,8 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.WritableMap; import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import cn.toside.music.mobile.R; @@ -51,7 +53,9 @@ public class LyricView extends Activity implements View.OnTouchListener { private boolean isLock = false; private boolean isSingleLine = false; private boolean isShowToggleAnima = false; - private String themeColor = "#07c556"; + private String unplayColor = "rgba(255, 255, 255, 1)"; + private String playedColor = "rgba(7, 197, 86, 1)"; + private String shadowColor = "rgba(0, 0, 0, 0.15)"; // private String lastText = "LX Music ^-^"; private String textX = "LEFT"; private String textY = "TOP"; @@ -204,7 +208,9 @@ public class LyricView extends Activity implements View.OnTouchListener { isLock = options.getBoolean("isLock", isLock); isSingleLine = options.getBoolean("isSingleLine", isSingleLine); isShowToggleAnima = options.getBoolean("isShowToggleAnima", isShowToggleAnima); - themeColor = options.getString("themeColor", themeColor); + unplayColor = options.getString("unplayColor", unplayColor); + playedColor = options.getString("playedColor", playedColor); + shadowColor = options.getString("shadowColor", shadowColor); prevViewPercentageX = (float) options.getDouble("lyricViewX", 0f) / 100f; prevViewPercentageY = (float) options.getDouble("lyricViewY", 0f) / 100f; textX = options.getString("textX", textX); @@ -225,13 +231,28 @@ public class LyricView extends Activity implements View.OnTouchListener { } listenOrientationEvent(); } + public static int parseColor(String input) { + if (input.startsWith("#")) return Color.parseColor(input); + Pattern c = Pattern.compile("rgba? *\\( *(\\d+), *(\\d+), *(\\d+)(?:, *([\\d.]+))? *\\)"); + Matcher m = c.matcher(input); + if (m.matches()) { + int red = Integer.parseInt(m.group(1)); + int green = Integer.parseInt(m.group(2)); + int blue = Integer.parseInt(m.group(3)); + float a = 1; + if (m.group(4) != null) a = Float.parseFloat(m.group(4)); + return Color.argb((int) (a * 255), red, green, blue); + } + return Color.parseColor("#000000"); + } private void createTextView() { textView = new LyricSwitchView(reactContext, isSingleLine, isShowToggleAnima); textView.setText(""); textView.setText(currentLyric); - textView.setTextColor(Color.parseColor(themeColor)); + textView.setTextColor(parseColor(playedColor)); + textView.setShadowColor(parseColor(shadowColor)); textView.setAlpha(alpha); textView.setTextSize(textSize); // Log.d("Lyric", "alpha: " + alpha + " text size: " + textSize); @@ -248,7 +269,7 @@ public class LyricView extends Activity implements View.OnTouchListener { case "RIGHT": textPositionX = Gravity.END; break; - case "left": + case "Left": default: textPositionX = Gravity.START; break; @@ -489,10 +510,13 @@ public class LyricView extends Activity implements View.OnTouchListener { windowManager.updateViewLayout(textView, layoutParams); } - public void setColor(String color) { - themeColor = color; + public void setColor(String unplayColor, String playedColor, String shadowColor) { + this.unplayColor = unplayColor; + this.playedColor = playedColor; + this.shadowColor = shadowColor; if (textView == null) return; - textView.setTextColor(Color.parseColor(color)); + textView.setTextColor(parseColor(playedColor)); + textView.setShadowColor(parseColor(shadowColor)); // windowManager.updateViewLayout(textView, layoutParams); } @@ -510,7 +534,7 @@ public class LyricView extends Activity implements View.OnTouchListener { case "RIGHT": textPositionX = Gravity.END; break; - case "left": + case "LEFT": default: textPositionX = Gravity.START; break; diff --git a/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/MainApplicationReactNativeHost.java b/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/MainApplicationReactNativeHost.java index e0cb50c..19f7bd4 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/MainApplicationReactNativeHost.java +++ b/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/MainApplicationReactNativeHost.java @@ -16,8 +16,8 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.UIManager; import com.facebook.react.fabric.ComponentFactory; import com.facebook.react.fabric.CoreComponentsRegistry; -import com.facebook.react.fabric.EmptyReactNativeConfig; import com.facebook.react.fabric.FabricJSIModuleProvider; +import com.facebook.react.fabric.ReactNativeConfig; import com.facebook.react.uimanager.ViewManagerRegistry; import cn.toside.music.mobile.BuildConfig; import cn.toside.music.mobile.newarchitecture.components.MainComponentsRegistry; @@ -105,7 +105,7 @@ public class MainApplicationReactNativeHost extends ReactNativeHost { return new FabricJSIModuleProvider( reactApplicationContext, componentFactory, - new EmptyReactNativeConfig(), + ReactNativeConfig.DEFAULT_CONFIG, viewManagerRegistry); } }); diff --git a/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/components/MainComponentsRegistry.java b/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/components/MainComponentsRegistry.java index 918c4a5..fe07f53 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/components/MainComponentsRegistry.java +++ b/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/components/MainComponentsRegistry.java @@ -1,8 +1,10 @@ package cn.toside.music.mobile.newarchitecture.components; + import com.facebook.jni.HybridData; import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.fabric.ComponentFactory; import com.facebook.soloader.SoLoader; + /** * Class responsible to load the custom Fabric Components. This class has native methods and needs a * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ @@ -16,13 +18,17 @@ public class MainComponentsRegistry { static { SoLoader.loadLibrary("fabricjni"); } + @DoNotStrip private final HybridData mHybridData; + @DoNotStrip private native HybridData initHybrid(ComponentFactory componentFactory); + @DoNotStrip private MainComponentsRegistry(ComponentFactory componentFactory) { mHybridData = initHybrid(componentFactory); } + @DoNotStrip public static MainComponentsRegistry register(ComponentFactory componentFactory) { return new MainComponentsRegistry(componentFactory); diff --git a/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java index 025e132..13122f0 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java +++ b/android/app/src/main/java/cn/toside/music/mobile/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java @@ -1,10 +1,12 @@ package cn.toside.music.mobile.newarchitecture.modules; + import com.facebook.jni.HybridData; import com.facebook.react.ReactPackage; import com.facebook.react.ReactPackageTurboModuleManagerDelegate; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.soloader.SoLoader; import java.util.List; + /** * Class responsible to load the TurboModules. This class has native methods and needs a * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ @@ -15,25 +17,31 @@ import java.util.List; */ public class MainApplicationTurboModuleManagerDelegate extends ReactPackageTurboModuleManagerDelegate { + private static volatile boolean sIsSoLibraryLoaded; + protected MainApplicationTurboModuleManagerDelegate( ReactApplicationContext reactApplicationContext, List packages) { super(reactApplicationContext, packages); } + protected native HybridData initHybrid(); + native boolean canCreateTurboModule(String moduleName); + public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { protected MainApplicationTurboModuleManagerDelegate build( ReactApplicationContext context, List packages) { return new MainApplicationTurboModuleManagerDelegate(context, packages); } } + @Override protected synchronized void maybeLoadOtherSoLibraries() { if (!sIsSoLibraryLoaded) { // If you change the name of your application .so file in the Android.mk file, // make sure you update the name here as well. - SoLoader.loadLibrary("lxmusic_appmodules"); + SoLoader.loadLibrary("cn_toside_music_mobile_appmodules"); sIsSoLibraryLoaded = true; } } diff --git a/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsPackage.java b/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsPackage.java index ebed47c..9080025 100644 --- a/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsPackage.java +++ b/android/app/src/main/java/cn/toside/music/mobile/utils/UtilsPackage.java @@ -4,7 +4,6 @@ import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; -import cn.toside.music.mobile.gzip.GzipModule; import java.util.Arrays; import java.util.Collections; diff --git a/android/app/src/main/jni/Android.mk b/android/app/src/main/jni/Android.mk deleted file mode 100644 index d5540a4..0000000 --- a/android/app/src/main/jni/Android.mk +++ /dev/null @@ -1,40 +0,0 @@ -THIS_DIR := $(call my-dir) -include $(REACT_ANDROID_DIR)/Android-prebuilt.mk -# If you wish to add a custom TurboModule or Fabric component in your app you -# will have to include the following autogenerated makefile. -# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk -include $(CLEAR_VARS) -LOCAL_PATH := $(THIS_DIR) -# You can customize the name of your application .so file here. -LOCAL_MODULE := lxmusic_appmodules -LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) -# If you wish to add a custom TurboModule or Fabric component in your app you -# will have to uncomment those lines to include the generated source -# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni) -# -# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni -# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) -# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni -# Here you should add any native library you wish to depend on. -LOCAL_SHARED_LIBRARIES := \ - libfabricjni \ - libfbjni \ - libfolly_futures \ - libfolly_json \ - libglog \ - libjsi \ - libreact_codegen_rncore \ - libreact_debug \ - libreact_nativemodule_core \ - libreact_render_componentregistry \ - libreact_render_core \ - libreact_render_debug \ - libreact_render_graphics \ - librrc_view \ - libruntimeexecutor \ - libturbomodulejsijni \ - libyoga -LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall -include $(BUILD_SHARED_LIBRARY) diff --git a/android/app/src/main/jni/CMakeLists.txt b/android/app/src/main/jni/CMakeLists.txt new file mode 100644 index 0000000..b3ea3d0 --- /dev/null +++ b/android/app/src/main/jni/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.13) + +# Define the library name here. +project(cn_toside_music_mobile_appmodules) + +# This file includes all the necessary to let you build your application with the New Architecture. +include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake) diff --git a/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/android/app/src/main/jni/MainApplicationModuleProvider.cpp index 640a5ba..26162dd 100644 --- a/android/app/src/main/jni/MainApplicationModuleProvider.cpp +++ b/android/app/src/main/jni/MainApplicationModuleProvider.cpp @@ -1,9 +1,13 @@ #include "MainApplicationModuleProvider.h" + +#include #include + namespace facebook { namespace react { + std::shared_ptr MainApplicationModuleProvider( - const std::string moduleName, + const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) { // Here you can provide your own module provider for TurboModules coming from // either your application or from external libraries. The approach to follow @@ -14,7 +18,15 @@ std::shared_ptr MainApplicationModuleProvider( // return module; // } // return rncore_ModuleProvider(moduleName, params); + + // Module providers autolinked by RN CLI + auto rncli_module = rncli_ModuleProvider(moduleName, params); + if (rncli_module != nullptr) { + return rncli_module; + } + return rncore_ModuleProvider(moduleName, params); } + } // namespace react } // namespace facebook diff --git a/android/app/src/main/jni/MainApplicationModuleProvider.h b/android/app/src/main/jni/MainApplicationModuleProvider.h index 522258e..b38ccf5 100644 --- a/android/app/src/main/jni/MainApplicationModuleProvider.h +++ b/android/app/src/main/jni/MainApplicationModuleProvider.h @@ -1,11 +1,16 @@ #pragma once + #include #include + #include + namespace facebook { namespace react { + std::shared_ptr MainApplicationModuleProvider( - const std::string moduleName, + const std::string &moduleName, const JavaTurboModule::InitParams ¶ms); + } // namespace react } // namespace facebook diff --git a/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp index 88e992c..5fd688c 100644 --- a/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +++ b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp @@ -1,12 +1,15 @@ #include "MainApplicationTurboModuleManagerDelegate.h" #include "MainApplicationModuleProvider.h" + namespace facebook { namespace react { + jni::local_ref MainApplicationTurboModuleManagerDelegate::initHybrid( jni::alias_ref) { return makeCxxInstance(); } + void MainApplicationTurboModuleManagerDelegate::registerNatives() { registerHybrid({ makeNativeMethod( @@ -16,23 +19,27 @@ void MainApplicationTurboModuleManagerDelegate::registerNatives() { MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), }); } + std::shared_ptr MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string name, - const std::shared_ptr jsInvoker) { + const std::string &name, + const std::shared_ptr &jsInvoker) { // Not implemented yet: provide pure-C++ NativeModules here. return nullptr; } + std::shared_ptr MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string name, + const std::string &name, const JavaTurboModule::InitParams ¶ms) { return MainApplicationModuleProvider(name, params); } + bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( - std::string name) { + const std::string &name) { return getTurboModule(name, nullptr) != nullptr || getTurboModule(name, {.moduleName = name}) != nullptr; } + } // namespace react } // namespace facebook diff --git a/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h index d870aac..5ad8072 100644 --- a/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +++ b/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h @@ -1,9 +1,12 @@ #include #include + #include #include + namespace facebook { namespace react { + class MainApplicationTurboModuleManagerDelegate : public jni::HybridClass< MainApplicationTurboModuleManagerDelegate, @@ -11,20 +14,25 @@ class MainApplicationTurboModuleManagerDelegate public: // Adapt it to the package you used for your Java class. static constexpr auto kJavaDescriptor = - "Lcom/cn/toside/music/mobile/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; + "Lcn/toside/music/mobile/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; + static jni::local_ref initHybrid(jni::alias_ref); + static void registerNatives(); + std::shared_ptr getTurboModule( - const std::string name, - const std::shared_ptr jsInvoker) override; + const std::string &name, + const std::shared_ptr &jsInvoker) override; std::shared_ptr getTurboModule( - const std::string name, + const std::string &name, const JavaTurboModule::InitParams ¶ms) override; + /** * Test-only method. Allows user to verify whether a TurboModule can be * created by instances of this class. */ - bool canCreateTurboModule(std::string name); + bool canCreateTurboModule(const std::string &name); }; + } // namespace react } // namespace facebook diff --git a/android/app/src/main/jni/MainComponentsRegistry.cpp b/android/app/src/main/jni/MainComponentsRegistry.cpp index d62dcb5..54f598a 100644 --- a/android/app/src/main/jni/MainComponentsRegistry.cpp +++ b/android/app/src/main/jni/MainComponentsRegistry.cpp @@ -1,14 +1,23 @@ #include "MainComponentsRegistry.h" + #include #include #include #include +#include + namespace facebook { namespace react { + MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} + std::shared_ptr MainComponentsRegistry::sharedProviderRegistry() { auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); + + // Autolinked providers registered by RN CLI + rncli_registerProviders(providerRegistry); + // Custom Fabric Components go here. You can register custom // components coming from your App or from 3rd party libraries here. // @@ -16,11 +25,13 @@ MainComponentsRegistry::sharedProviderRegistry() { // AocViewerComponentDescriptor>()); return providerRegistry; } + jni::local_ref MainComponentsRegistry::initHybrid( jni::alias_ref, ComponentFactory *delegate) { auto instance = makeCxxInstance(delegate); + auto buildRegistryFunction = [](EventDispatcher::Weak const &eventDispatcher, ContextContainer::Shared const &contextContainer) @@ -28,21 +39,27 @@ MainComponentsRegistry::initHybrid( auto registry = MainComponentsRegistry::sharedProviderRegistry() ->createComponentDescriptorRegistry( {eventDispatcher, contextContainer}); + auto mutableRegistry = std::const_pointer_cast(registry); + mutableRegistry->setFallbackComponentDescriptor( std::make_shared( ComponentDescriptorParameters{ eventDispatcher, contextContainer, nullptr})); + return registry; }; + delegate->buildRegistryFunction = buildRegistryFunction; return instance; } + void MainComponentsRegistry::registerNatives() { registerHybrid({ makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), }); } + } // namespace react } // namespace facebook diff --git a/android/app/src/main/jni/MainComponentsRegistry.h b/android/app/src/main/jni/MainComponentsRegistry.h index 425ee74..979f971 100644 --- a/android/app/src/main/jni/MainComponentsRegistry.h +++ b/android/app/src/main/jni/MainComponentsRegistry.h @@ -1,24 +1,32 @@ #pragma once + #include #include #include #include + namespace facebook { namespace react { + class MainComponentsRegistry : public facebook::jni::HybridClass { public: // Adapt it to the package you used for your Java class. constexpr static auto kJavaDescriptor = - "Lcom/lxmusicmobile/newarchitecture/components/MainComponentsRegistry;"; + "Lcn/toside/music/mobile/newarchitecture/components/MainComponentsRegistry;"; + static void registerNatives(); + MainComponentsRegistry(ComponentFactory *delegate); + private: static std::shared_ptr sharedProviderRegistry(); + static jni::local_ref initHybrid( jni::alias_ref, ComponentFactory *delegate); }; + } // namespace react } // namespace facebook diff --git a/android/app/src/main/jni/OnLoad.cpp b/android/app/src/main/jni/OnLoad.cpp index ddd99a4..c569b6e 100644 --- a/android/app/src/main/jni/OnLoad.cpp +++ b/android/app/src/main/jni/OnLoad.cpp @@ -1,6 +1,7 @@ #include #include "MainApplicationTurboModuleManagerDelegate.h" #include "MainComponentsRegistry.h" + JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { return facebook::jni::initialize(vm, [] { facebook::react::MainApplicationTurboModuleManagerDelegate:: diff --git a/android/app/src/main/res/layout/launch_screen.xml b/android/app/src/main/res/layout/launch_screen.xml deleted file mode 100644 index 4e32f5e..0000000 --- a/android/app/src/main/res/layout/launch_screen.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/android/app/src/main/res/values-v29/styles.xml b/android/app/src/main/res/values-v29/styles.xml deleted file mode 100644 index 5c4a13b..0000000 --- a/android/app/src/main/res/values-v29/styles.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml deleted file mode 100644 index 041821f..0000000 --- a/android/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #000000 - diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 9e26225..7ba83a2 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -6,10 +6,4 @@ @drawable/rn_edit_text_material - - diff --git a/android/build.gradle b/android/build.gradle index 74d5bfe..9554c25 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,15 +1,13 @@ -import org.apache.tools.ant.taskdefs.condition.Os - // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - buildToolsVersion = "31.0.0" + buildToolsVersion = "33.0.0" minSdkVersion = 21 - compileSdkVersion = 30 - // https://github.com/itinance/react-native-fs/issues/998#issuecomment-831337442 + compileSdkVersion = 33 targetSdkVersion = 29 - kotlinVersion = "1.5.31" // Or any version above 1.3.x + + kotlinVersion = "1.6.10" // Or any version above 1.3.x RNNKotlinVersion = kotlinVersion if (System.properties['os.arch'] == "aarch64") { @@ -19,16 +17,15 @@ buildscript { // Otherwise we default to the side-by-side NDK version from AGP. ndkVersion = "21.4.7075529" } - } repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:7.0.4") + classpath("com.android.tools.build:gradle:7.2.1") classpath("com.facebook.react:react-native-gradle-plugin") - classpath("de.undercouch:gradle-download-task:4.1.2") + classpath("de.undercouch:gradle-download-task:5.0.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/android/gradle.properties b/android/gradle.properties index eecd609..82d4783 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -31,6 +31,7 @@ FLIPPER_VERSION=0.125.0 # You can also override it from the CLI using # ./gradlew -PreactNativeArchitectures=x86_64 reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + # Use this property to enable support to the new architecture. # This will allow you to use TurboModules and the Fabric render in # your application. You should enable this flag either if you want @@ -44,10 +45,11 @@ newArchEnabled=false # AsyncStorage_dedicatedExecutor = true +# https://react-native-async-storage.github.io/async-storage/docs/advanced/next AsyncStorage_useNextStorage=true -AsyncStorage_kotlinVersion=1.4.32 +AsyncStorage_kotlinVersion=1.6.10 +# https://developer.android.com/jetpack/androidx/releases/room +AsyncStorage_next_roomVersion=2.4.2 # https://github.com/wix/react-native-navigation/issues/7403 # android.jetifier.blacklist = bcprov-jdk15on - -AsyncStorage_next_roomVersion=2.3.0 diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..41d9927a4d4fb3f96a785543079b8df6723c946b 100644 GIT binary patch delta 8958 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 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 669386b..8fad3f5 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/android/settings.gradle b/android/settings.gradle index 71469f1..02ea79b 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,12 +1,11 @@ -rootProject.name = 'LxMusicMobile' -include ':react-native-splash-screen' -project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android') -include ':react-native-vector-icons' -project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') +rootProject.name = 'cn.toside.music.mobile' apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' includeBuild('../node_modules/react-native-gradle-plugin') + if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { include(":ReactAndroid") project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') + include(":ReactAndroid:hermes-engine") + project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') } diff --git a/babel.config.js b/babel.config.js index 16958d5..4670ad1 100644 --- a/babel.config.js +++ b/babel.config.js @@ -7,6 +7,12 @@ module.exports = { { root: ['.'], extensions: [ + '.android.ts', + '.ios.ts', + '.android.tsx', + '.ios.tsx', + '.tsx', + '.ts', '.android.js', '.ios.js', '.android.jsx', diff --git a/index.js b/index.js index e34b06d..0e003f6 100644 --- a/index.js +++ b/index.js @@ -1,158 +1,26 @@ /** * @format */ - - -// import '@/utils/log' import './shim' -import '@/utils/errorHandle' -import { init as initLog, log } from '@/utils/log' -import '@/config/globalData' -import SplashScreen from 'react-native-splash-screen' -import { init as initNavigation, navigations, showPactModal } from '@/navigation' -import { registerPlaybackService } from '@/plugins/player' -import { getStore } from '@/store' -import { action as commonAction } from '@/store/modules/common' -import { action as playerAction } from '@/store/modules/player' -import { action as listAction } from '@/store/modules/list' -import { init as initMusicTools } from '@/utils/music' -import { init as initLyric, toggleTranslation, toggleRoma } from '@/utils/lyric' -import { showLyric, onPositionChange } from '@/utils/lyricDesktop' -import { init as initI18n, supportedLngs } from '@/plugins/i18n' -import { deviceLanguage, getPlayInfo, toast, onAppearanceChange, getIsSupportedAutoTheme, getAppearance } from '@/utils/tools' -import { LIST_ID_PLAY_TEMP } from '@/config/constant' -import { connect, SYNC_CODE } from '@/plugins/sync' - -console.log('starting app...') - -let store -let isInited = false -let isFirstRun = true -initLog() - -const init = () => { - if (isInited) return Promise.resolve() - isInited = true - store = getStore() - // console.log('deviceLanguage', deviceLanguage) - return Promise.all([ - store.dispatch(commonAction.initSetting()), - store.dispatch(listAction.initList()), - initLyric(), - registerPlaybackService(), - ]).then(() => { - let setting = store.getState().common.setting - - if (getIsSupportedAutoTheme()) { - onAppearanceChange(color => { - store.dispatch(commonAction.setSystemColor(color)) - }) - } - - toggleTranslation(setting.player.isShowLyricTranslation) - toggleRoma(setting.player.isShowLyricRoma) - if (setting.sync.enable) { - connect().catch(err => { - if (err.message == SYNC_CODE.unknownServiceAddress) { - store.dispatch(commonAction.setIsEnableSync(false)) - } - }) - } - if (setting.desktopLyric.enable) { - showLyric({ - isShowToggleAnima: setting.desktopLyric.showToggleAnima, - isSingleLine: setting.desktopLyric.isSingleLine, - isLock: setting.desktopLyric.isLock, - themeId: setting.desktopLyric.theme, - opacity: setting.desktopLyric.style.opacity, - textSize: setting.desktopLyric.style.fontSize, - width: setting.desktopLyric.width, - maxLineNum: setting.desktopLyric.maxLineNum, - positionX: setting.desktopLyric.position.x, - positionY: setting.desktopLyric.position.y, - textPositionX: setting.desktopLyric.textPosition.x, - textPositionY: setting.desktopLyric.textPosition.y, - }).catch(() => { - store.dispatch(commonAction.setIsShowDesktopLyric(false)) - }) - } - onPositionChange(position => { - store.dispatch(commonAction.setDesktopLyricPosition(position)) - }) - - let lang = setting.langId - let needSetLang = false - if (!supportedLngs.includes(lang)) { - if (typeof deviceLanguage == 'string' && supportedLngs.includes(deviceLanguage)) { - lang = deviceLanguage - } else { - lang = 'en_us' - } - needSetLang = true - } - console.log(lang) - return initI18n(lang).then(() => { - if (needSetLang) return store.dispatch(commonAction.setLang(lang)) - }) - // .catch(_ => _) - // StatusBar.setHidden(false) - // console.log('init') - }).then(() => { - initMusicTools() - getPlayInfo().then(info => { - if (!info) return - if (info.listId != LIST_ID_PLAY_TEMP) { - info.list = global.allList[info.listId] - if (info.list) info.list = info.list.list - } - - if (!info.list || !info.list[info.index]) { - const info2 = { ...info } - if (info2.list) { - info2.music = info2.list[info2.index]?.name - info2.list = info2.list.length - } - toast('恢复播放数据失败,请去错误日志查看', 'long') - log.warn('Restore Play Info failed: ', JSON.stringify(info2, null, 2)) - - return - } - - let setting = store.getState().common.setting - global.restorePlayInfo = { - info, - startupAutoPlay: setting.startupAutoPlay, - } - - store.dispatch(playerAction.setList({ - list: { - list: info.list, - id: info.listId, - }, - index: info.index, - })) - }) - }) -} - -initNavigation(() => { - init().then(() => { - if (getIsSupportedAutoTheme()) store.dispatch(commonAction.setSystemColor(getAppearance())) - - return navigations.pushHomeScreen().then(() => { - SplashScreen.hide() - if (store.getState().common.setting.isAgreePact) { - if (isFirstRun) { - isFirstRun = false - store.dispatch(commonAction.checkVersion()) - } - } else { - if (isFirstRun) isFirstRun = false - showPactModal() - } - }) - }).catch(err => { - toast(err.stack, 'long') - }) -}) +import './src/app' +// import './test' +// import '@/utils/errorHandle' +// import { Navigation } from 'react-native-navigation' +// import App from './App' +// Navigation.registerComponent('com.myApp.WelcomeScreen', () => App) +// Navigation.events().registerAppLaunchedListener(() => { +// Navigation.setRoot({ +// root: { +// stack: { +// children: [ +// { +// component: { +// name: 'com.myApp.WelcomeScreen', +// }, +// }, +// ], +// }, +// }, +// }) +// }) diff --git a/ios/.xcode.env b/ios/.xcode.env new file mode 100644 index 0000000..3d5782c --- /dev/null +++ b/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/ios/LxMusicMobile.xcodeproj/project.pbxproj b/ios/LxMusicMobile.xcodeproj/project.pbxproj index 84bdde7..0d1859d 100644 --- a/ios/LxMusicMobile.xcodeproj/project.pbxproj +++ b/ios/LxMusicMobile.xcodeproj/project.pbxproj @@ -256,13 +256,15 @@ files = ( ); inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", ); name = "Bundle React Native code and images"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\n\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; @@ -436,7 +438,7 @@ "$(inherited)", ); INFOPLIST_FILE = LxMusicMobileTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -460,7 +462,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; INFOPLIST_FILE = LxMusicMobileTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -576,7 +578,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -640,7 +642,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", diff --git a/ios/LxMusicMobile/AppDelegate.mm b/ios/LxMusicMobile/AppDelegate.mm index 3cfb60d..efbab26 100644 --- a/ios/LxMusicMobile/AppDelegate.mm +++ b/ios/LxMusicMobile/AppDelegate.mm @@ -1,8 +1,11 @@ #import "AppDelegate.h" +#import + #import #import -#import + #import + #if RCT_NEW_ARCH_ENABLED #import #import @@ -10,7 +13,11 @@ #import #import #import + #import + +static NSString *const kRNConcurrentRoot = @"concurrentRoot"; + @interface AppDelegate () { RCTTurboModuleManager *_turboModuleManager; RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; @@ -19,11 +26,16 @@ } @end #endif + @implementation AppDelegate + - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RCTAppSetupPrepareApp(application); + RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; +[ReactNativeNavigation bootstrapWithBridge:bridge]; + #if RCT_NEW_ARCH_ENABLED _contextContainer = std::make_shared(); _reactNativeConfig = std::make_shared(); @@ -31,19 +43,40 @@ _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; #endif - UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"LxMusicMobile", nil); - if (@available(iOS 13.0, *)) { - rootView.backgroundColor = [UIColor systemBackgroundColor]; - } else { - rootView.backgroundColor = [UIColor whiteColor]; - } - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; + + + + + return YES; } + +/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. +/// +/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html +/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). +/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. +- (BOOL)concurrentRootEnabled +{ + // Switch this bool to turn on and off the concurrent root + return true; +} + +- (NSDictionary *)prepareInitialProps +{ + NSMutableDictionary *initProps = [NSMutableDictionary new]; + +#ifdef RCT_NEW_ARCH_ENABLED + initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); +#endif + + return initProps; +} + +- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge { + return [ReactNativeNavigation extraModulesForBridge:bridge]; +} + - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { #if DEBUG @@ -52,8 +85,11 @@ return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif } + #if RCT_NEW_ARCH_ENABLED + #pragma mark - RCTCxxBridgeDelegate + - (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge { _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge @@ -61,25 +97,32 @@ jsInvoker:bridge.jsCallInvoker]; return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); } + #pragma mark RCTTurboModuleManagerDelegate + - (Class)getModuleClassFromName:(const char *)name { return RCTCoreModulesClassProvider(name); } + - (std::shared_ptr)getTurboModule:(const std::string &)name jsInvoker:(std::shared_ptr)jsInvoker { return nullptr; } + - (std::shared_ptr)getTurboModule:(const std::string &)name initParams: (const facebook::react::ObjCTurboModule::InitParams &)params { return nullptr; } + - (id)getModuleInstanceFromClass:(Class)moduleClass { return RCTAppSetupDefaultModuleFromClass(moduleClass); } + #endif + @end diff --git a/ios/LxMusicMobile/Info.plist b/ios/LxMusicMobile/Info.plist index 1b3f410..b8381eb 100644 --- a/ios/LxMusicMobile/Info.plist +++ b/ios/LxMusicMobile/Info.plist @@ -50,6 +50,6 @@ UIInterfaceOrientationLandscapeRight UIViewControllerBasedStatusBarAppearance - + diff --git a/ios/LxMusicMobileTests/LxMusicMobileTests.m b/ios/LxMusicMobileTests/LxMusicMobileTests.m index 01fc06c..a3034d1 100644 --- a/ios/LxMusicMobileTests/LxMusicMobileTests.m +++ b/ios/LxMusicMobileTests/LxMusicMobileTests.m @@ -47,12 +47,12 @@ [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; foundElement = [self findSubviewInView:vc.view - matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; + matching:^BOOL(UIView *view) { + if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { + return YES; + } + return NO; + }]; } #ifdef DEBUG diff --git a/ios/Podfile b/ios/Podfile index 17cc8f1..4f539af 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,7 +1,7 @@ require_relative '../node_modules/react-native/scripts/react_native_pods' require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' -platform :ios, '11.0' +platform :ios, '12.4' install! 'cocoapods', :deterministic_uuids => false target 'LxMusicMobile' do @@ -10,12 +10,18 @@ target 'LxMusicMobile' do # Flags change depending on the env values. flags = get_default_flags() - use_react_native!( :path => config[:reactNativePath], - # to enable hermes on iOS, change `false` to `true` and then install pods - :hermes_enabled => flags[:hermes_enabled], + # Hermes is now enabled by default. Disable by setting this flag to false. + # Upcoming versions of React Native may rely on get_default_flags(), but + # we make it explicit here to aid in the React Native upgrade process. + :hermes_enabled => true, :fabric_enabled => flags[:fabric_enabled], + # Enables Flipper. + # + # Note that if you have use_frameworks! enabled, Flipper will not work and + # you should disable the next line. + :flipper_configuration => FlipperConfiguration.enabled, # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) @@ -25,14 +31,13 @@ target 'LxMusicMobile' do # Pods for testing end - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - use_flipper!() - post_install do |installer| - react_native_post_install(installer) + react_native_post_install( + installer, + # Set `mac_catalyst_enabled` to `true` in order to apply patches + # necessary for Mac Catalyst builds + :mac_catalyst_enabled => false + ) __apply_Xcode_12_5_M1_post_install_workaround(installer) end end diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 76ec851..0000000 --- a/jsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./", - "paths": { - "@/*": ["src/*"], - // "@config": ["src/config"], - // "@store": ["src/store"], - // "@components": ["src/components"], - // "@navigation": ["src/navigation"], - // "@screens": ["src/screens"], - // "@theme": ["src/theme"], - // "@utils": ["src/utils"], - } - }, - "exclude": ["node_modules"] -} diff --git a/metro.config.js b/metro.config.js index 59103f4..db38965 100644 --- a/metro.config.js +++ b/metro.config.js @@ -16,9 +16,9 @@ module.exports = { }, resolver: { extraNodeModules: { - console: require.resolve('console-browserify'), - crypto: require.resolve('react-native-crypto'), + crypto: require.resolve('react-native-quick-crypto'), stream: require.resolve('stream-browserify'), + buffer: require.resolve('@craftzdog/react-native-buffer'), }, }, } diff --git a/package-lock.json b/package-lock.json index 2400597..6a1193c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,75 +1,50 @@ { "name": "lx-music-mobile", - "version": "0.15.5", + "version": "1.0.0-beta.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "lx-music-mobile", - "version": "0.15.5", - "hasInstallScript": true, + "version": "1.0.0-beta.1", "license": "Apache-2.0", "dependencies": { + "@craftzdog/react-native-buffer": "^6.0.5", "@react-native-async-storage/async-storage": "^1.17.11", "@react-native-clipboard/clipboard": "^1.11.1", "@react-native-community/checkbox": "^0.5.14", - "@react-native-community/slider": "^4.3.3", - "buffer": "^6.0.3", - "console-browserify": "^1.2.0", - "events": "^3.3.0", - "i18next": "^22.1.5", - "js-htmlencode": "^0.3.0", - "lrc-file-parser": "^2.2.8", + "@react-native-community/slider": "^4.4.2", + "iconv-lite": "^0.6.3", + "lrc-file-parser": "^2.3.0", "pako": "^2.1.0", - "process": "^0.11.10", - "prop-types": "^15.8.1", - "react": "17.0.2", - "react-i18next": "^12.1.1", - "react-native": "0.68.5", + "react": "18.1.0", + "react-native": "0.70.7", "react-native-background-timer": "^2.4.1", - "react-native-crypto": "^2.2.0", "react-native-exception-handler": "^2.10.10", "react-native-fs": "^2.20.0", - "react-native-navigation": "^7.30.3", - "react-native-pager-view": "^6.1.2", - "react-native-randombytes": "^3.6.1", - "react-native-splash-screen": "^3.3.0", - "react-native-track-player": "git+https://github.com/lyswhut/react-native-track-player.git#5fb0bec8694d3783f32a1e4ed1251c163e9842f7", + "react-native-navigation": "^7.32.1", + "react-native-pager-view": "^6.1.4", + "react-native-quick-base64": "^2.0.5", + "react-native-quick-crypto": "^0.5.0", + "react-native-track-player": "github:lyswhut/react-native-track-player#38027954a5ac6e3d92961745e0a9633fc647f47a", "react-native-vector-icons": "^9.2.0", - "react-redux": "^8.0.5", - "readable-stream": "1.0.33", - "redux": "^4.2.0", - "redux-subscriber": "^1.1.0", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.7", - "socket.io": "^4.5.4", - "stream-browserify": "^1.0.0", - "url": "~0.10.1", - "util": "~0.10.3" + "socket.io-client": "^4.6.0" }, "devDependencies": { - "@babel/core": "^7.20.5", - "@babel/eslint-parser": "^7.19.1", + "@babel/core": "^7.20.12", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/runtime": "^7.20.6", - "babel-jest": "^26.6.3", - "babel-plugin-module-resolver": "^4.1.0", - "changelog-parser": "^2.8.1", - "cross-env": "^7.0.3", - "eslint": "^8.29.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-html": "^7.1.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-react": "^7.31.11", + "@babel/runtime": "^7.20.13", + "@tsconfig/react-native": "^2.0.3", + "@types/react": "^18.0.28", + "@types/react-native": "^0.70.11", + "@types/react-native-background-timer": "^2.0.0", + "@types/react-native-vector-icons": "^6.4.13", + "babel-plugin-module-resolver": "^5.0.0", + "eslint-config-standard-with-typescript": "^34.0.0", + "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^26.6.3", - "metro-react-native-babel-preset": "^0.67.0", - "react-native-clean-project": "^4.0.1", - "react-test-renderer": "17.0.2", - "redux-logger": "^3.0.6", - "rn-nodeify": "^10.3.0" + "metro-react-native-babel-preset": "0.72.3", + "typescript": "^4.9.5" }, "engines": { "node": ">= 16", @@ -77,11 +52,12 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -99,32 +75,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -135,55 +111,12 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", - "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dependencies": { - "@babel/types": "^7.20.5", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -191,6 +124,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -215,13 +161,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dependencies": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -231,6 +178,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", @@ -267,14 +227,12 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -284,22 +242,6 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", @@ -365,18 +307,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -505,13 +447,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -530,66 +472,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -633,7 +519,6 @@ "version": "7.20.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", - "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.19.0", @@ -696,12 +581,12 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", - "integrity": "sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", + "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-default-from": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -898,18 +783,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -948,11 +821,11 @@ } }, "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz", - "integrity": "sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", + "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1001,22 +874,11 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1025,11 +887,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1042,6 +904,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1064,6 +927,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -1123,6 +987,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1444,7 +1309,6 @@ "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0" @@ -1471,20 +1335,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-assign": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", - "integrity": "sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", @@ -1529,11 +1379,11 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.15.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", - "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1543,15 +1393,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1561,11 +1411,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz", - "integrity": "sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1575,11 +1425,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", - "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1592,6 +1442,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "regenerator-transform": "^0.15.0" @@ -1619,15 +1470,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", "semver": "^6.3.0" }, "engines": { @@ -1844,79 +1695,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/preset-flow": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz", @@ -1984,9 +1762,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -1995,31 +1773,31 @@ } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2027,26 +1805,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -2056,26 +1818,27 @@ "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, + "node_modules/@craftzdog/react-native-buffer": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@craftzdog/react-native-buffer/-/react-native-buffer-6.0.5.tgz", + "integrity": "sha512-Av+YqfwA9e7jhgI9GFE/gTpwl/H+dRRLmZyJPOpKTy107j9Oj7oXlm3/YiMNz+C/CEGqcKAOqnXDLs4OL6AAFw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" + "ieee754": "^1.2.1", + "react-native-quick-base64": "^2.0.5" } }, "node_modules/@eslint/eslintrc": { @@ -2083,6 +1846,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2101,34 +1865,12 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -2139,48 +1881,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -2189,9 +1895,9 @@ } }, "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "node_modules/@hapi/topo": { "version": "5.1.0", @@ -2202,41 +1908,26 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", - "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, + "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "peer": true, "engines": { "node": ">=12.22" }, @@ -2249,133 +1940,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/core/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } + "peer": true }, "node_modules/@jest/create-cache-key-function": { "version": "27.5.1", @@ -2388,7 +1954,7 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/create-cache-key-function/node_modules/@jest/types": { + "node_modules/@jest/types": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", @@ -2403,249 +1969,86 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 10.14.2" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 10.14.2" + "node": ">=7.0.0" } }, - "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "node-notifier": "^8.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/source-map/node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "engines": { "node": ">=6.0.0" } @@ -2659,26 +2062,17 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -2752,403 +2146,567 @@ } }, "node_modules/@react-native-community/cli": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-7.0.3.tgz", - "integrity": "sha512-WyJOA829KAhU1pw2MDQt0YhOS9kyR2KqyqgJyTuQhzFVCBPX4F5aDEkZYYn4jdldaDHCPrLJ3ho3gxYTXy+x7w==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz", + "integrity": "sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==", "dependencies": { - "@react-native-community/cli-debugger-ui": "^7.0.3", - "@react-native-community/cli-hermes": "^6.3.0", - "@react-native-community/cli-plugin-metro": "^7.0.3", - "@react-native-community/cli-server-api": "^7.0.3", - "@react-native-community/cli-tools": "^6.2.0", - "@react-native-community/cli-types": "^6.0.0", - "appdirsjs": "^1.2.4", + "@react-native-community/cli-clean": "^9.2.1", + "@react-native-community/cli-config": "^9.2.1", + "@react-native-community/cli-debugger-ui": "^9.0.0", + "@react-native-community/cli-doctor": "^9.3.0", + "@react-native-community/cli-hermes": "^9.3.1", + "@react-native-community/cli-plugin-metro": "^9.2.1", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", + "@react-native-community/cli-types": "^9.1.0", "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "commander": "^2.19.0", - "cosmiconfig": "^5.1.0", - "deepmerge": "^3.2.0", - "envinfo": "^7.7.2", + "commander": "^9.4.0", "execa": "^1.0.0", "find-up": "^4.1.0", "fs-extra": "^8.1.0", - "glob": "^7.1.3", "graceful-fs": "^4.1.3", - "joi": "^17.2.1", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "minimist": "^1.2.0", - "node-stream-zip": "^1.9.1", - "ora": "^3.4.0", - "pretty-format": "^26.6.2", "prompts": "^2.4.0", - "semver": "^6.3.0", - "serve-static": "^1.13.1", - "strip-ansi": "^5.2.0", - "sudo-prompt": "^9.0.0", - "wcwidth": "^1.0.1" + "semver": "^6.3.0" }, "bin": { "react-native": "build/bin.js" }, "engines": { - "node": ">=12" + "node": ">=14" + } + }, + "node_modules/@react-native-community/cli-clean": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz", + "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==", + "dependencies": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "prompts": "^2.4.0" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" }, - "peerDependencies": { - "react-native": "*" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@react-native-community/cli-clean/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-config": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz", + "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==", + "dependencies": { + "@react-native-community/cli-tools": "^9.2.1", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "glob": "^7.1.3", + "joi": "^17.2.1" } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-7.0.3.tgz", - "integrity": "sha512-G4SA6jFI0j22o+j+kYP8/7sxzbCDqSp2QiHA/X5E0lsGEd2o9qN2zbIjiFr8b8k+VVAYSUONhoC0+uKuINvmkA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-9.0.0.tgz", + "integrity": "sha512-7hH05ZwU9Tp0yS6xJW0bqcZPVt0YCK7gwj7gnRu1jDNN2kughf6Lg0Ys29rAvtZ7VO1PK5c1O+zs7yFnylQDUA==", "dependencies": { "serve-static": "^1.13.1" } }, - "node_modules/@react-native-community/cli-hermes": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-6.3.0.tgz", - "integrity": "sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA==", + "node_modules/@react-native-community/cli-doctor": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz", + "integrity": "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==", "dependencies": { - "@react-native-community/cli-platform-android": "^6.3.0", - "@react-native-community/cli-tools": "^6.2.0", + "@react-native-community/cli-config": "^9.2.1", + "@react-native-community/cli-platform-ios": "^9.3.0", + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@react-native-community/cli-doctor/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-hermes": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz", + "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==", + "dependencies": { + "@react-native-community/cli-platform-android": "^9.3.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" } }, - "node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-platform-android": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.0.tgz", - "integrity": "sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ==", + "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "@react-native-community/cli-tools": "^6.2.0", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "jetifier": "^1.6.2", - "lodash": "^4.17.15", - "logkitty": "^0.7.1", - "slash": "^3.0.0", - "xmldoc": "^1.1.2" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-7.0.1.tgz", - "integrity": "sha512-nOr0aMkxAymCnbtsQwXBlyoRN2Y+IzC7Qz5T+/zyWwEbTY8SKQI8uV+8+qttUvzSvuXa2PeXsTWluuliOS8KCw==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz", + "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==", "dependencies": { - "@react-native-community/cli-tools": "^7.0.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "fs-extra": "^8.1.0", "glob": "^7.1.3", - "jetifier": "^1.6.2", - "lodash": "^4.17.15", "logkitty": "^0.7.1", - "slash": "^3.0.0", - "xmldoc": "^1.1.2" + "slash": "^3.0.0" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/@react-native-community/cli-tools": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-7.0.1.tgz", - "integrity": "sha512-0xra4hKNA5PR2zYVXsDMNiXMGaDNoNRYMY6eTP2aVIxQbqIcVMDWSyCA8wMWX5iOpMWg0cZGaQ6a77f3Rlb34g==", + "node_modules/@react-native-community/cli-platform-android/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "lodash": "^4.17.15", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^6.3.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/@react-native-community/cli-platform-android/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@react-native-community/cli-platform-android/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "mimic-fn": "^2.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@react-native-community/cli-platform-android/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@react-native-community/cli-platform-android/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, + "node_modules/@react-native-community/cli-platform-android/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/@react-native-community/cli-platform-android/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-7.0.1.tgz", - "integrity": "sha512-PLRIbzrCzSedmpjuFtQqcqUD45G8q7sEciI1lf5zUbVMXqjIBwJWS7iz8235PyWwj8J4MNHohLC+oyRueFtbGg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz", + "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==", "dependencies": { - "@react-native-community/cli-tools": "^7.0.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", - "js-yaml": "^3.13.1", - "lodash": "^4.17.15", - "ora": "^5.4.1", - "plist": "^3.0.2", - "xcode": "^3.0.0" + "ora": "^5.4.1" } }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/@react-native-community/cli-tools": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-7.0.1.tgz", - "integrity": "sha512-0xra4hKNA5PR2zYVXsDMNiXMGaDNoNRYMY6eTP2aVIxQbqIcVMDWSyCA8wMWX5iOpMWg0cZGaQ6a77f3Rlb34g==", + "node_modules/@react-native-community/cli-platform-ios/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "lodash": "^4.17.15", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^6.3.0", - "shell-quote": "^1.7.3" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/@react-native-community/cli-platform-ios/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@react-native-community/cli-platform-ios/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "mimic-fn": "^2.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/@react-native-community/cli-platform-ios/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/@react-native-community/cli-platform-ios/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-7.0.3.tgz", - "integrity": "sha512-HJrEkFbxv9DNixsGwO+Q0zCcZMghDltyzeB9yQ//D5ZR4ZUEuAIPrRDdEp9xVw0WkBxAIZs6KXLux2/yPMwLhA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz", + "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==", "dependencies": { - "@react-native-community/cli-server-api": "^7.0.3", - "@react-native-community/cli-tools": "^6.2.0", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", - "metro": "^0.67.0", - "metro-config": "^0.67.0", - "metro-core": "^0.67.0", - "metro-react-native-babel-transformer": "^0.67.0", - "metro-resolver": "^0.67.0", - "metro-runtime": "^0.67.0", + "metro": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-react-native-babel-transformer": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", "readline": "^1.3.0" } }, - "node_modules/@react-native-community/cli-server-api": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-7.0.3.tgz", - "integrity": "sha512-JDrLsrkBgNxbG2u3fouoVGL9tKrXUrTsaNwr+oCV+3XyMwbVe42r/OaQ681/iW/7mHXjuVkDnMcp7BMg7e2yJg==", + "node_modules/@react-native-community/cli-plugin-metro/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "@react-native-community/cli-debugger-ui": "^7.0.3", - "@react-native-community/cli-tools": "^6.2.0", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-server-api": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz", + "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==", + "dependencies": { + "@react-native-community/cli-debugger-ui": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.0", - "nocache": "^2.1.0", + "nocache": "^3.0.1", "pretty-format": "^26.6.2", "serve-static": "^1.13.1", "ws": "^7.5.1" } }, "node_modules/@react-native-community/cli-server-api/node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -3166,32 +2724,217 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-6.2.0.tgz", - "integrity": "sha512-08ssz4GMEnRxC/1FgTTN/Ud7mExQi5xMphItPjfHiTxpZPhrFn+IMx6mya0ncFEhhxQ207wYlJMRLPRRdBZ8oA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz", + "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==", "dependencies": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", - "lodash": "^4.17.15", + "find-up": "^5.0.0", "mime": "^2.4.1", "node-fetch": "^2.6.0", "open": "^6.2.0", + "ora": "^5.4.1", "semver": "^6.3.0", - "shell-quote": "1.6.1" + "shell-quote": "^1.7.3" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@react-native-community/cli-tools/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@react-native-community/cli-types": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-6.0.0.tgz", - "integrity": "sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz", + "integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==", "dependencies": { - "ora": "^3.4.0" + "joi": "^17.2.1" + } + }, + "node_modules/@react-native-community/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@react-native-community/cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@react-native-community/slider": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-4.3.3.tgz", - "integrity": "sha512-eVhMaVR08wWlseVWlDS7zgdhbVY0n2i7BF1qRxK+2N1VIKd7NsTIRzL57sFLgHVjbUmu/+hHfxCzLHmEaGxIQg==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-4.4.2.tgz", + "integrity": "sha512-D9bv+3Vd2gairAhnRPAghwccgEmoM7g562pm8i4qB3Esrms5mggF81G3UvCyc0w3jjtFHh8dpQkfEoKiP0NW/Q==" }, "node_modules/@react-native/assets": { "version": "1.0.0", @@ -3217,122 +2960,30 @@ } }, "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } + "node_modules/@tsconfig/react-native": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-2.0.3.tgz", + "integrity": "sha512-jE58snEKBd9DXfyR4+ssZmYJ/W2mOSnNrvljR0aLyQJL9JKX6vlWELHkRjb3HBbcM9Uy0hZGijXbqEAjOERW2A==", + "dev": true }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", @@ -3343,91 +2994,337 @@ } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dependencies": { "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true }, "node_modules/@types/node": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz", - "integrity": "sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ==" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", - "dev": true + "version": "18.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", + "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true }, "node_modules/@types/react": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.5.tgz", - "integrity": "sha512-UPxNGInDCIKlfqBrm8LDXYWNfLHwIdisWcsH5GpMyGjhEDLFgTtlRBaoWuCua9HcyuE0rMkmAeZ3FXV1pYLIYQ==", + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "node_modules/@types/react-native": { + "version": "0.70.11", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.11.tgz", + "integrity": "sha512-FobPtzoNPNHugBKMfzs4Li0Q9ei4tgU8SI1M5Ayg7+t5/+noCm2sknI8uwij22wMkcHcefv8RFx4q28nNVJtCQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-native-background-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/react-native-background-timer/-/react-native-background-timer-2.0.0.tgz", + "integrity": "sha512-y5VW82dL/ESOLg+5QQHyBdsFVA4ZklENxmOyxv8o06T+3HBG2JOSuz/CIPz1vKdB7dmWDGPZNuPosdtnp+xv2A==", + "dev": true + }, + "node_modules/@types/react-native-vector-icons": { + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz", + "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==", + "dev": true, + "dependencies": { + "@types/react": "*", + "@types/react-native": "^0.70" + } + }, "node_modules/@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true, + "peer": true }, "node_modules/@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz", + "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/type-utils": "5.51.0", + "@typescript-eslint/utils": "5.51.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", + "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", + "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz", + "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/utils": "5.51.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", + "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", + "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz", + "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", + "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.51.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, "node_modules/abort-controller": { "version": "3.0.0", @@ -3443,25 +3340,26 @@ "node_modules/absolute-path": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", - "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" + "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==" }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3469,68 +3367,22 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3547,33 +3399,6 @@ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-fragments": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", @@ -3584,7 +3409,7 @@ "strip-ansi": "^5.0.0" } }, - "node_modules/ansi-regex": { + "node_modules/ansi-fragments/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", @@ -3592,24 +3417,40 @@ "node": ">=6" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/ansi-fragments/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { - "color-convert": "^2.0.1" + "ansi-regex": "^4.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3619,22 +3460,21 @@ } }, "node_modules/appdirsjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.6.tgz", - "integrity": "sha512-D8wJNkqMCeQs3kLasatELsddox/Xqkhp+J07iXGyL54fVN7oc+nmNfYzGuCs1IEP6uBw+TfpuO3JKwc+lECy4w==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "peer": true }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "engines": { "node": ">=0.10.0" } @@ -3650,16 +3490,11 @@ "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "engines": { "node": ">=0.10.0" } }, - "node_modules/array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, "node_modules/array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -3679,33 +3514,34 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "node_modules/array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, + "peer": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3769,7 +3605,7 @@ "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "engines": { "node": ">=0.10.0" } @@ -3794,24 +3630,15 @@ } }, "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -3831,82 +3658,69 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/babel-plugin-module-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", - "integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", "dev": true, "dependencies": { - "find-babel-config": "^1.2.0", - "glob": "^7.1.6", + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", "pkg-up": "^3.1.0", - "reselect": "^4.0.0", - "resolve": "^1.13.1" + "reselect": "^4.1.7", + "resolve": "^1.22.1" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 16" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { @@ -3914,23 +3728,23 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3941,29 +3755,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/babel-preset-fbjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", @@ -4001,22 +3792,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4042,12 +3817,12 @@ "node_modules/base-64": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", - "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" + "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -4055,41 +3830,6 @@ "node": ">=0.10.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -4109,22 +3849,6 @@ } ] }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4135,65 +3859,10 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/bplist-creator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", - "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", - "dependencies": { - "stream-buffers": "2.2.x" - } - }, - "node_modules/bplist-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", - "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "dependencies": { - "big-integer": "1.6.x" - }, - "engines": { - "node": ">= 5.10.0" - } + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -4218,13 +3887,7 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "node_modules/browserify-aes": { "version": "1.2.0", @@ -4285,19 +3948,6 @@ "safe-buffer": "^5.2.0" } }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/browserify-sign/node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -4353,9 +4003,9 @@ } }, "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -4372,23 +4022,23 @@ ], "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ieee754": "^1.1.13" } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "node_modules/builtins": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.1.0.tgz", - "integrity": "sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "peer": true, "dependencies": { @@ -4396,9 +4046,9 @@ } }, "node_modules/builtins/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "peer": true, "dependencies": { @@ -4414,7 +4064,7 @@ "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "engines": { "node": ">= 0.8" } @@ -4454,7 +4104,7 @@ "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", "dependencies": { "callsites": "^2.0.0" }, @@ -4462,10 +4112,18 @@ "node": ">=4" } }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/caller-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", "dependencies": { "caller-callsite": "^2.0.0" }, @@ -4474,25 +4132,30 @@ } }, "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", "funding": [ { "type": "opencollective", @@ -4504,53 +4167,17 @@ } ] }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/changelog-parser": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.1.tgz", - "integrity": "sha512-tNUYFRCEeWTXmwLqoNtOEzx9wcytg72MmGQqsEs14ClYwIDln7sbQw7FJj/dulXgSlsxkemc9gpPQhZYZx1TPw==", - "dev": true, - "dependencies": { - "line-reader": "^0.2.4", - "remove-markdown": "^0.2.2" - }, - "bin": { - "changelog-parser": "bin/cli.js" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=4" } }, "node_modules/ci-info": { @@ -4567,12 +4194,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -4590,7 +4211,7 @@ "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -4598,21 +4219,86 @@ "node": ">=0.10.0" } }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", "dependencies": { - "restore-cursor": "^2.0.0" + "kind-of": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "engines": { "node": ">=6" }, @@ -4630,29 +4316,10 @@ "wrap-ansi": "^6.2.0" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "engines": { "node": ">=0.8" } @@ -4670,26 +4337,10 @@ "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -4699,37 +4350,22 @@ } }, "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" }, "node_modules/command-exists": { "version": "1.2.9", @@ -4737,9 +4373,12 @@ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "engines": { + "node": "^12.20.0 || >=14" + } }, "node_modules/commondir": { "version": "1.0.1", @@ -4779,10 +4418,23 @@ "node": ">= 0.8.0" } }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/connect": { "version": "3.7.0", @@ -4798,31 +4450,28 @@ "node": ">= 0.10.0" } }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "engines": { "node": ">=0.10.0" } @@ -4840,21 +4489,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cosmiconfig": { "version": "5.2.1", @@ -4870,6 +4507,46 @@ "node": ">=4" } }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "engines": { + "node": ">=4" + } + }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -4909,29 +4586,12 @@ "sha.js": "^2.4.8" } }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-env/node_modules/cross-spawn": { + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4941,185 +4601,76 @@ "node": ">= 8" } }, - "node_modules/cross-env/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-env/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dependencies": { - "shebang-regex": "^3.0.0" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/cross-env/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-env/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, "node_modules/csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true }, "node_modules/dayjs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", - "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "ms": "2.0.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "engines": { "node": ">=0.10.0" } }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "engines": { "node": ">=0.10" } }, - "node_modules/deep-diff": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", - "integrity": "sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ=", - "dev": true - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "peer": true }, "node_modules/deepmerge": { "version": "3.3.0", @@ -5130,11 +4681,14 @@ } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -5165,54 +4719,10 @@ "node": ">=0.10.0" } }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/denodeify": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" }, "node_modules/depd": { "version": "2.0.0", @@ -5222,16 +4732,6 @@ "node": ">= 0.8" } }, - "node_modules/deprecated-react-native-prop-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz", - "integrity": "sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==", - "dependencies": { - "@react-native/normalize-color": "*", - "invariant": "*", - "prop-types": "*" - } - }, "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -5250,24 +4750,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -5283,11 +4765,24 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -5295,91 +4790,15 @@ "node": ">=6.0.0" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.265", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.265.tgz", - "integrity": "sha512-38KaYBNs0oCzWCpr6j7fY/W9vF0vSp4tKFIshQTgdZMhUpkxgotkQgjJP6iGMdmlsgMs3i0/Hkko4UXLTrkYVQ==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -5400,18 +4819,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5420,7 +4827,7 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { "node": ">= 0.8" } @@ -5433,54 +4840,22 @@ "once": "^1.4.0" } }, - "node_modules/engine.io": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", - "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", + "node_modules/engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", "dependencies": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" - }, - "engines": { - "node": ">=10.0.0" + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" } }, - "node_modules/engine.io-parser": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", - "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/engine.io/node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -5497,16 +4872,12 @@ } } }, - "node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "dev": true, + "node_modules/engine.io-parser": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=10.0.0" } }, "node_modules/envinfo": { @@ -5529,11 +4900,11 @@ } }, "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dependencies": { - "stackframe": "^1.1.1" + "stackframe": "^1.3.4" } }, "node_modules/errorhandler": { @@ -5623,113 +4994,22 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, + "peer": true, "dependencies": { "@eslint/eslintrc": "^1.3.3", "@humanwhocodes/config-array": "^0.11.6", @@ -5807,14 +5087,34 @@ "eslint-plugin-promise": "^6.0.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "node_modules/eslint-config-standard-with-typescript": { + "version": "34.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-34.0.0.tgz", + "integrity": "sha512-zhCsI4/A0rJ1ma8sf3RLXYc0gc7yPmdTWRVXMh9dtqeUx3yBQyALH0wosHhk1uQ9QyItynLdNOtcHKNw8G7lQw==", "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint-config-standard": "17.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0", + "typescript": "*" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "peer": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -5822,21 +5122,27 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "peer": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, + "peer": true, "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -5844,171 +5150,12 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "peer": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-html": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz", - "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==", - "dev": true, - "dependencies": { - "htmlparser2": "^8.0.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-n": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.2.0.tgz", - "integrity": "sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==", - "dev": true, - "peer": true, - "dependencies": { - "builtins": "^4.0.0", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.3.0", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", @@ -6028,7 +5175,7 @@ "eslint": ">=4.19.1" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", @@ -6044,60 +5191,117 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "peer": true, "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz", + "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==", + "dev": true, + "peer": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": ">=5" + "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-n/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, "engines": { "node": ">=10" } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, "node_modules/eslint-plugin-promise": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", "dev": true, + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6106,9 +5310,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "dependencies": { "array-includes": "^3.1.6", @@ -6123,7 +5327,7 @@ "object.hasown": "^1.1.2", "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", + "resolve": "^2.0.0-next.4", "semver": "^6.3.0", "string.prototype.matchall": "^4.0.8" }, @@ -6158,23 +5362,18 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-react/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6185,6 +5384,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6193,106 +5393,22 @@ "node": ">=8.0.0" } }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "peer": true, "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -6306,16 +5422,17 @@ "eslint": ">=5" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "peer": true, "engines": { "node": ">=10" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", @@ -6324,36 +5441,92 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "peer": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "peer": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "peer": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -6364,137 +5537,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint/node_modules/resolve-from": { + "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "dependencies": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" @@ -6505,6 +5565,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -6512,26 +5573,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, + "peer": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -6544,27 +5591,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -6582,6 +5608,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -6589,20 +5616,12 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -6610,7 +5629,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -6619,15 +5638,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6639,7 +5649,7 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { "node": ">= 0.6" } @@ -6669,12 +5679,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, "node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -6692,19 +5696,71 @@ "node": ">=6" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -6718,10 +5774,18 @@ "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -6732,7 +5796,7 @@ "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6740,41 +5804,91 @@ "node": ">=0.10.0" } }, - "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { - "is-plain-object": "^2.0.4" + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" @@ -6801,7 +5915,7 @@ "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -6812,7 +5926,7 @@ "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6820,37 +5934,10 @@ "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "engines": { "node": ">=0.10.0" } @@ -6859,19 +5946,50 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "peer": true }, "node_modules/fastq": { "version": "1.13.0", @@ -6883,9 +6001,9 @@ } }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dependencies": { "bser": "2.1.1" } @@ -6895,6 +6013,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "peer": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -6930,35 +6049,39 @@ "node": ">= 0.8" } }, - "node_modules/find-babel-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", - "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", - "dev": true, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "json5": "^0.5.1", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" + "ms": "2.0.0" } }, - "node_modules/find-babel-config/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-babel-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz", + "integrity": "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==", "dev": true, - "bin": { - "json5": "lib/cli.js" + "dependencies": { + "json5": "^2.1.1", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" } }, "node_modules/find-babel-config/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/find-cache-dir": { @@ -6975,28 +6098,34 @@ } }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", - "integrity": "sha1-ZQnwEmr0wXhVHPqZOU4DLhOk1W4=", - "dev": true + "node_modules/find-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "peer": true, "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -7005,26 +6134,12 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, + "peer": true }, "node_modules/flow-parser": { "version": "0.121.0", @@ -7037,29 +6152,15 @@ "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "engines": { "node": ">=0.10.0" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dependencies": { "map-cache": "^0.2.2" }, @@ -7070,7 +6171,7 @@ "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } @@ -7091,7 +6192,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -7168,15 +6269,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -7207,20 +6299,20 @@ "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "engines": { "node": ">=0.10.0" } }, "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -7236,6 +6328,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -7251,6 +6344,26 @@ "node": ">=4" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -7260,14 +6373,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true, - "optional": true + "peer": true }, "node_modules/has": { "version": "1.0.3", @@ -7290,11 +6397,11 @@ } }, "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-property-descriptors": { @@ -7339,7 +6446,7 @@ "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -7352,7 +6459,7 @@ "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -7364,7 +6471,7 @@ "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dependencies": { "kind-of": "^3.0.2" }, @@ -7375,7 +6482,7 @@ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { "is-buffer": "^1.1.5" }, @@ -7386,7 +6493,7 @@ "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dependencies": { "is-buffer": "^1.1.5" }, @@ -7407,19 +6514,6 @@ "node": ">=4" } }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/hash-base/node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7448,22 +6542,17 @@ "minimalistic-assert": "^1.0.1" } }, - "node_modules/hermes-engine": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.11.0.tgz", - "integrity": "sha512-7aMUlZja2IyLYAcZ69NBnwJAR5ZOYlSllj0oMpx08a8HzxHOys0eKCzfphrf6D0vX1JGO1QQvVsQKe6TkYherw==" - }, "node_modules/hermes-estree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.5.0.tgz", - "integrity": "sha512-1h8rvG23HhIR5K6Kt0e5C7BC72J1Ath/8MmSta49vxXp/j6wl7IMHvIRFYBQr35tWnQY97dSGR2uoAJ5pHUQkg==" + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz", + "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==" }, "node_modules/hermes-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.5.0.tgz", - "integrity": "sha512-ARnJBScKAkkq8j3BHrNGBUv/4cSpZNbKDsVizEtzmsFeqC67Dopa5s4XRe+e3wN52Dh5Mj2kDB5wJvhcxwDkPg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz", + "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==", "dependencies": { - "hermes-estree": "0.5.0" + "hermes-estree": "0.8.0" } }, "node_modules/hermes-profile-transformer": { @@ -7480,7 +6569,7 @@ "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -7495,57 +6584,6 @@ "react-is": "^16.7.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html-parse-stringify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", - "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", - "dependencies": { - "void-elements": "3.1.0" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -7569,105 +6607,12 @@ "node": ">= 0.8" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/i18next": { - "version": "22.1.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.1.5.tgz", - "integrity": "sha512-Mjj45PbpZByE+c6ddLEkkj0LUyzJP1cRGeC/+O6mvp1+GAwW7rIx6aOPW9+Zxe+JO3EcJCAkibwbZrgBRF/qRA==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { - "@babel/runtime": "^7.20.6" - } - }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -7713,49 +6658,26 @@ } }, "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "peer": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" + "node": ">=6" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } @@ -7763,7 +6685,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7797,51 +6719,25 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" }, "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dependencies": { - "kind-of": "^3.0.2" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -7888,22 +6784,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -7912,32 +6796,24 @@ } }, "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -7946,54 +6822,33 @@ } }, "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { "node": ">=0.10.0" } @@ -8001,7 +6856,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8010,20 +6865,11 @@ "node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "engines": { "node": ">=4" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -8084,6 +6930,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "peer": true, "engines": { "node": ">=8" } @@ -8107,12 +6954,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -8144,7 +6985,7 @@ "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "engines": { "node": ">=0.10.0" } @@ -8179,12 +7020,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -8219,7 +7054,7 @@ "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", "engines": { "node": ">=4" } @@ -8227,424 +7062,21 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "dependencies": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-changed-files/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jest-changed-files/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", @@ -8653,401 +7085,112 @@ "node": ">= 10.14.2" } }, - "node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, "node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true, + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-resolve/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "dependencies": { "@types/node": "*", - "graceful-fs": "^4.2.4" + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/jest-validate": { @@ -9066,89 +7209,132 @@ "node": ">= 10.14.2" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { + "node_modules/jest-validate/node_modules/@jest/types": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" }, "engines": { "node": ">= 10.14.2" } }, + "node_modules/jest-validate/node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" } }, - "node_modules/jest/node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - }, - "bin": { - "jest": "bin/jest.js" - }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">= 10.14.2" + "node": ">=8" } }, - "node_modules/jetifier": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz", - "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==", - "bin": { - "jetifier": "bin/jetify", - "jetifier-standalone": "bin/jetifier-standalone", - "jetify": "bin/jetify" + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", + "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -9157,16 +7343,12 @@ "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/js-htmlencode": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/js-htmlencode/-/js-htmlencode-0.3.0.tgz", - "integrity": "sha1-sc4pPflOlviooIsfM2j5d70lVzE=" - }, "node_modules/js-sdsl": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", - "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", - "dev": true + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true, + "peer": true }, "node_modules/js-tokens": { "version": "4.0.0", @@ -9174,12 +7356,13 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "peer": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -9222,6 +7405,20 @@ "@babel/preset-env": "^7.1.6" } }, + "node_modules/jscodeshift/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jscodeshift/node_modules/braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", @@ -9253,6 +7450,37 @@ "node": ">=0.10.0" } }, + "node_modules/jscodeshift/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jscodeshift/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jscodeshift/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/jscodeshift/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -9278,6 +7506,22 @@ "node": ">=0.10.0" } }, + "node_modules/jscodeshift/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jscodeshift/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jscodeshift/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -9334,6 +7578,17 @@ "rimraf": "bin.js" } }, + "node_modules/jscodeshift/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jscodeshift/node_modules/temp": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", @@ -9357,85 +7612,6 @@ "node": ">=0.10.0" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsdom/node_modules/ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -9452,28 +7628,24 @@ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "peer": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -9484,27 +7656,19 @@ "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "node_modules/jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "engines": { - "node": "*" - } - }, "node_modules/jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "dependencies": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" }, "engines": { "node": ">=4.0" @@ -9521,7 +7685,7 @@ "node_modules/klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", "optionalDependencies": { "graceful-fs": "^4.1.9" } @@ -9547,6 +7711,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "peer": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -9555,27 +7720,18 @@ "node": ">= 0.8.0" } }, - "node_modules/line-reader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz", - "integrity": "sha1-xDkrWH3qOFgMlnhXDm6OSfzlJiI=", - "dev": true - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -9586,84 +7742,97 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" }, "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dependencies": { - "chalk": "^2.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/log-symbols/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/logkitty": { @@ -9691,9 +7860,9 @@ } }, "node_modules/lrc-file-parser": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-2.2.8.tgz", - "integrity": "sha512-Uq2boQVg4Ll4Csthq0ZJ+4Nn8sBfOJwceFsJGGfOxcpKSYpEMmDRsinuVnhNVJe4x/jD1HJr9xWzDqgo+8WMTw==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-2.3.0.tgz", + "integrity": "sha512-EX+Dnvwqgb8q3mf7WYIR4flOzwrOp9vE2MU+eyRZO0rFUF5BIZgN52SSGXFhfnHd5tUmo7VnLrpCFdURe3O2KQ==" }, "node_modules/lru-cache": { "version": "6.0.0", @@ -9728,17 +7897,17 @@ } }, "node_modules/makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dependencies": { - "tmpl": "1.0.x" + "tmpl": "1.0.5" } }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "engines": { "node": ">=0.10.0" } @@ -9746,7 +7915,7 @@ "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dependencies": { "object-visit": "^1.0.0" }, @@ -9764,6 +7933,11 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, "node_modules/merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", @@ -9780,10 +7954,19 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/metro": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.67.0.tgz", - "integrity": "sha512-DwuBGAFcAivoac/swz8Lp7Y5Bcge1tzT7T6K0nf1ubqJP8YzBUtyR4pkjEYVUzVu/NZf7O54kHSPVu1ibYzOBQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz", + "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==", "dependencies": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.14.0", @@ -9794,7 +7977,7 @@ "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "accepts": "^1.3.7", - "async": "^2.4.0", + "async": "^3.2.2", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", @@ -9802,30 +7985,29 @@ "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "fs-extra": "^1.0.0", - "graceful-fs": "^4.1.3", - "hermes-parser": "0.5.0", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.8.0", "image-size": "^0.6.0", "invariant": "^2.2.4", - "jest-haste-map": "^27.3.1", - "jest-worker": "^26.0.0", + "jest-worker": "^27.2.0", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.67.0", - "metro-cache": "0.67.0", - "metro-cache-key": "0.67.0", - "metro-config": "0.67.0", - "metro-core": "0.67.0", - "metro-hermes-compiler": "0.67.0", - "metro-inspector-proxy": "0.67.0", - "metro-minify-uglify": "0.67.0", - "metro-react-native-babel-preset": "0.67.0", - "metro-resolver": "0.67.0", - "metro-runtime": "0.67.0", - "metro-source-map": "0.67.0", - "metro-symbolicate": "0.67.0", - "metro-transform-plugins": "0.67.0", - "metro-transform-worker": "0.67.0", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-file-map": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-inspector-proxy": "0.72.3", + "metro-minify-uglify": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", + "metro-symbolicate": "0.72.3", + "metro-transform-plugins": "0.72.3", + "metro-transform-worker": "0.72.3", "mime-types": "^2.1.27", - "mkdirp": "^0.5.1", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", "rimraf": "^2.5.4", @@ -9842,179 +8024,107 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.67.0.tgz", - "integrity": "sha512-SBqc4nq/dgsPNFm+mpWcQQzJaXnh0nrfz2pSnZC4i6zMtIakrTWb8SQ78jOU1FZVEZ3nu9xCYVHS9Tbr/LoEuw==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz", + "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==", "dependencies": { "@babel/core": "^7.14.0", - "hermes-parser": "0.5.0", - "metro-source-map": "0.67.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "node_modules/metro-cache": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.67.0.tgz", - "integrity": "sha512-IY5dXiR76L75b2ue/mv+9vW8g5hdQJU6YEe81lj6gTSoUrhcONT0rzY+Gh5QOS2Kk6z9utZQMvd9PRKL9/635A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz", + "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==", "dependencies": { - "metro-core": "0.67.0", - "mkdirp": "^0.5.1", + "metro-core": "0.72.3", "rimraf": "^2.5.4" } }, "node_modules/metro-cache-key": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.67.0.tgz", - "integrity": "sha512-FNJe5Rcb2uzY6G6tsqCf0RV4t2rCeX6vSHBxmP7k+4aI4NqX4evtPI0K82r221nBzm5DqNWCURZ0RYUT6jZMGA==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz", + "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg==" + }, + "node_modules/metro-cache/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } }, "node_modules/metro-config": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.67.0.tgz", - "integrity": "sha512-ThAwUmzZwTbKyyrIn2bKIcJDPDBS0LKAbqJZQioflvBGfcgA21h3fdL3IxRmvCEl6OnkEWI0Tn1Z9w2GLAjf2g==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz", + "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==", "dependencies": { "cosmiconfig": "^5.0.5", "jest-validate": "^26.5.2", - "metro": "0.67.0", - "metro-cache": "0.67.0", - "metro-core": "0.67.0", - "metro-runtime": "0.67.0" + "metro": "0.72.3", + "metro-cache": "0.72.3", + "metro-core": "0.72.3", + "metro-runtime": "0.72.3" } }, "node_modules/metro-core": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.67.0.tgz", - "integrity": "sha512-TOa/ShE1bUq83fGNfV6rFwyfZ288M8ydmWN3g9C2OW8emOHLhJslYD/SIU4DhDkP/99yaJluIALdZ2g0+pCrvQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz", + "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==", "dependencies": { - "jest-haste-map": "^27.3.1", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.67.0" + "metro-resolver": "0.72.3" } }, - "node_modules/metro-core/node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/metro-file-map": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz", + "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro-core/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro-core/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "node_modules/metro-core/node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", + "abort-controller": "^3.0.0", "anymatch": "^3.0.3", + "debug": "^2.2.0", "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", "micromatch": "^4.0.4", "walker": "^1.0.7" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, "optionalDependencies": { - "fsevents": "^2.3.2" + "fsevents": "^2.1.2" } }, - "node_modules/metro-core/node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro-core/node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "node_modules/metro-file-map/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "ms": "2.0.0" } }, - "node_modules/metro-core/node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro-core/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/metro-core/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } + "node_modules/metro-file-map/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/metro-hermes-compiler": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.67.0.tgz", - "integrity": "sha512-X5Pr1jC8/kO6d1EBDJ6yhtuc5euHX89UDNv8qdPJHAET03xfFnlojRPwOw6il2udAH20WLBv+F5M9VY+58zspQ==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz", + "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg==" }, "node_modules/metro-inspector-proxy": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.67.0.tgz", - "integrity": "sha512-5Ubjk94qpNaU3OT2IZa4/dec09bauic1hzWms4czorBzDenkp4kYXG9/aWTmgQLtCk92H3Q8jKl1PQRxUSkrOQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz", + "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==", "dependencies": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -10025,10 +8135,23 @@ "metro-inspector-proxy": "src/cli.js" } }, + "node_modules/metro-inspector-proxy/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/metro-inspector-proxy/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/metro-inspector-proxy/node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -10046,19 +8169,20 @@ } }, "node_modules/metro-minify-uglify": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.67.0.tgz", - "integrity": "sha512-4CmM5b3MTAmQ/yFEfsHOhD2SuBObB2YF6PKzXZc4agUsQVVtkrrNElaiWa8w26vrTzA9emwcyurxMf4Nl3lYPQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz", + "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==", "dependencies": { "uglify-es": "^3.1.9" } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz", - "integrity": "sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz", + "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==", "dependencies": { "@babel/core": "^7.14.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", @@ -10078,17 +8202,15 @@ "@babel/plugin-transform-destructuring": "^7.0.0", "@babel/plugin-transform-exponentiation-operator": "^7.0.0", "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", "@babel/plugin-transform-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", "@babel/plugin-transform-parameters": "^7.0.0", "@babel/plugin-transform-react-display-name": "^7.0.0", "@babel/plugin-transform-react-jsx": "^7.0.0", "@babel/plugin-transform-react-jsx-self": "^7.0.0", "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-regenerator": "^7.0.0", "@babel/plugin-transform-runtime": "^7.0.0", "@babel/plugin-transform-shorthand-properties": "^7.0.0", "@babel/plugin-transform-spread": "^7.0.0", @@ -10104,16 +8226,16 @@ } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.67.0.tgz", - "integrity": "sha512-P0JT09n7T01epUtgL9mH6BPat3xn4JjBakl4lWHdL61cvEGcrxuIom1eoFFKkgU/K5AVLU4aCAttHS7nSFCcEQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz", + "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==", "dependencies": { "@babel/core": "^7.14.0", "babel-preset-fbjs": "^3.4.0", - "hermes-parser": "0.5.0", - "metro-babel-transformer": "0.67.0", - "metro-react-native-babel-preset": "0.67.0", - "metro-source-map": "0.67.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" }, "peerDependencies": { @@ -10121,29 +8243,33 @@ } }, "node_modules/metro-resolver": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.67.0.tgz", - "integrity": "sha512-d2KS/zAyOA/z/q4/ff41rAp+1txF4H6qItwpsls/RHStV2j6PqgRHUzq/3ga+VIeoUJntYJ8nGW3+3qSrhFlig==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz", + "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==", "dependencies": { "absolute-path": "^0.0.0" } }, "node_modules/metro-runtime": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.67.0.tgz", - "integrity": "sha512-IFtSL0JUt1xK3t9IoLflTDft82bjieSzdIJWLzrRzBMlesz8ox5bVmnpQbVQEwfYUpEOxbM3VOZauVbdCmXA7g==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } }, "node_modules/metro-source-map": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.67.0.tgz", - "integrity": "sha512-yxypInsRo3SfS00IgTuL6a2W2tfwLY//vA2E+GeqGBF5zTbJZAhwNGIEl8S87XXZhwzJcxf5/8LjJC1YDzabww==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "dependencies": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.67.0", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.67.0", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } @@ -10151,18 +8277,18 @@ "node_modules/metro-source-map/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/metro-symbolicate": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.67.0.tgz", - "integrity": "sha512-ZqVVcfa0xSz40eFzA5P8pCF3V6Tna9RU1prFzAJTa3j9dCGqwh0HTXC8AIkMtgX7hNdZrCJI1YipzUBlwkT0/A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.67.0", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -10178,15 +8304,15 @@ "node_modules/metro-symbolicate/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/metro-transform-plugins": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.67.0.tgz", - "integrity": "sha512-DQFoSDIJdTMPDTUlKaCNJjEXiHGwFNneAF9wDSJ3luO5gigM7t7MuSaPzF4hpjmfmcfPnRhP6AEn9jcza2Sh8Q==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz", + "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==", "dependencies": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", @@ -10196,190 +8322,143 @@ } }, "node_modules/metro-transform-worker": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.67.0.tgz", - "integrity": "sha512-29n+JdTb80ROiv/wDiBVlY/xRAF/nrjhp/Udv/XJl1DZb+x7JEiPxpbpthPhwwl+AYxVrostGB0W06WJ61hfiw==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz", + "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==", "dependencies": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", "@babel/parser": "^7.14.0", "@babel/types": "^7.0.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.67.0", - "metro-babel-transformer": "0.67.0", - "metro-cache": "0.67.0", - "metro-cache-key": "0.67.0", - "metro-hermes-compiler": "0.67.0", - "metro-source-map": "0.67.0", - "metro-transform-plugins": "0.67.0", + "metro": "0.72.3", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-source-map": "0.72.3", + "metro-transform-plugins": "0.72.3", "nullthrows": "^1.1.1" } }, - "node_modules/metro/node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "node_modules/metro/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "color-convert": "^2.0.1" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro/node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/metro/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/metro/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/metro/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/metro/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/metro/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" } }, "node_modules/metro/node_modules/fs-extra": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==", "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", "klaw": "^1.0.0" } }, - "node_modules/metro/node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, + "node_modules/metro/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=8" } }, - "node_modules/metro/node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/metro/node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro/node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro/node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/metro/node_modules/jest-util/node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, "node_modules/metro/node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, + "node_modules/metro/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/metro/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/metro/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } }, - "node_modules/metro/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/metro/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/metro/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/metro/node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -10397,12 +8476,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -10437,30 +8516,30 @@ } }, "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "1.47.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/minimalistic-assert": { @@ -10471,7 +8550,7 @@ "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { "version": "3.1.2", @@ -10485,9 +8564,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mixin-deep": { "version": "1.3.2", @@ -10501,17 +8583,6 @@ "node": ">=0.10.0" } }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -10552,13 +8623,21 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "peer": true }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { "node": ">= 0.6" } @@ -10574,11 +8653,11 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node_modules/nocache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", - "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", "engines": { - "node": ">=4.0.0" + "node": ">=12.0.0" } }, "node_modules/node-dir": { @@ -10611,99 +8690,10 @@ } } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-notifier/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/node-notifier/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { "version": "2.0.6", @@ -10722,27 +8712,6 @@ "url": "https://github.com/sponsors/antelle" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -10754,7 +8723,7 @@ "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dependencies": { "path-key": "^2.0.0" }, @@ -10762,26 +8731,28 @@ "node": ">=4" } }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, "node_modules/ob1": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.67.0.tgz", - "integrity": "sha512-YvZtX8HKYackQ5PwdFIuuNFVsMChRPHvnARRRT0Vk59xsBvL5t9U1Ock3M1sYrKj+Gp73+0q9xcHLAxI+xLi5g==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } @@ -10789,7 +8760,7 @@ "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -10802,7 +8773,7 @@ "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -10810,10 +8781,53 @@ "node": ">=0.10.0" } }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { "is-buffer": "^1.1.5" }, @@ -10830,22 +8844,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -10855,18 +8853,10 @@ "node": ">= 0.4" } }, - "node_modules/object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", - "engines": { - "node": ">= 10.12.0" - } - }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dependencies": { "isobject": "^3.0.0" }, @@ -10939,7 +8929,7 @@ "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dependencies": { "isobject": "^3.0.1" }, @@ -10967,7 +8957,7 @@ "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dependencies": { "ee-first": "1.1.1" }, @@ -10986,20 +8976,23 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dependencies": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/open": { @@ -11018,6 +9011,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -11031,128 +9025,133 @@ } }, "node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "engines": { "node": ">=4" } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { @@ -11173,6 +9172,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "peer": true, "dependencies": { "callsites": "^3.0.0" }, @@ -11180,15 +9180,6 @@ "node": ">=6" } }, - "node_modules/parent-module/node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", @@ -11204,7 +9195,7 @@ "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -11213,12 +9204,6 @@ "node": ">=4" } }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -11230,33 +9215,35 @@ "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "engines": { "node": ">=0.10.0" } }, "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "peer": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-parse": { @@ -11264,12 +9251,25 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/pbkdf2": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.8.tgz", - "integrity": "sha1-L4q/FuvsyCJ3lF10irodeHYfYeI=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dependencies": { - "create-hmac": "^1.1.2" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" }, "engines": { "node": ">=0.12" @@ -11281,9 +9281,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -11341,6 +9341,20 @@ "node": ">=6" } }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -11352,14 +9366,6 @@ "node": ">=6" } }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", @@ -11397,6 +9403,21 @@ "node": ">=6" } }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pkg-up/node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -11409,31 +9430,10 @@ "node": ">=6" } }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", - "dependencies": { - "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "engines": { "node": ">=0.10.0" } @@ -11443,6 +9443,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -11461,10 +9462,78 @@ "node": ">= 10" } }, - "node_modules/pretty-format/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/pretty-format/node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/pretty-format/node_modules/@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/pretty-format/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } @@ -11474,12 +9543,15 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "node_modules/pretty-format/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=8" } }, "node_modules/process-nextick-args": { @@ -11496,9 +9568,9 @@ } }, "node_modules/prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -11517,12 +9589,6 @@ "react-is": "^16.13.1" } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -11551,17 +9617,13 @@ } }, "node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "peer": true, "engines": { - "node": ">=0.4.x" + "node": ">=6" } }, "node_modules/queue-microtask": { @@ -11610,30 +9672,29 @@ } }, "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", + "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-devtools-core": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.4.tgz", - "integrity": "sha512-jbX8Yqyq4YvFEobHyXVlGaH0Cs/+EOdb3PL911bxaR5BnzbB5TE4RFHC1iOgT4vRH3VxIIrVQ7lR9vsiFFCYCA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.0.tgz", + "integrity": "sha512-Rw7FzYOOzcfyUPaAm9P3g0tFdGqGq2LLiAI+wjYcp6CsF3DeeMrRS3HZAho4s273C29G/DJhx0e8BpRE/QZNGg==", "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" } }, "node_modules/react-devtools-core/node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -11650,27 +9711,6 @@ } } }, - "node_modules/react-i18next": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-12.1.1.tgz", - "integrity": "sha512-mFdieOI0LDy84q3JuZU6Aou1DoWW2fhapcTGeBS8+vWSJuViuoCLQAMYSb0QoHhXS8B0WKUOPpx4cffAP7r/aA==", - "dependencies": { - "@babel/runtime": "^7.14.5", - "html-parse-stringify": "^3.0.1" - }, - "peerDependencies": { - "i18next": ">= 19.0.0", - "react": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -11682,40 +9722,40 @@ "integrity": "sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==" }, "node_modules/react-native": { - "version": "0.68.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.68.5.tgz", - "integrity": "sha512-t3kiQ/gumFV+0r/NRSIGtYxanjY4da0utFqHgkMcRPJVwXFWC0Fr8YiOeRGYO1dp8EfrSsOjtfWic/inqVYlbQ==", + "version": "0.70.7", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.7.tgz", + "integrity": "sha512-MvnJJXiEPuOBbf1VPY5WXIUR/n6QB/DAk5XtBz3bzinpy9YBXiiQkhGIrTpVdVt37JeHOzafhfxAMf+Rs8jpvA==", "dependencies": { "@jest/create-cache-key-function": "^27.0.1", - "@react-native-community/cli": "^7.0.3", - "@react-native-community/cli-platform-android": "^7.0.1", - "@react-native-community/cli-platform-ios": "^7.0.1", + "@react-native-community/cli": "9.3.2", + "@react-native-community/cli-platform-android": "9.3.1", + "@react-native-community/cli-platform-ios": "9.3.0", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.0.0", "@react-native/polyfills": "2.0.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "base64-js": "^1.1.2", - "deprecated-react-native-prop-types": "^2.3.0", "event-target-shim": "^5.0.1", - "hermes-engine": "~0.11.0", "invariant": "^2.2.4", "jsc-android": "^250230.2.1", - "metro-react-native-babel-transformer": "0.67.0", - "metro-runtime": "0.67.0", - "metro-source-map": "0.67.0", + "memoize-one": "^5.0.0", + "metro-react-native-babel-transformer": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", + "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", - "promise": "^8.2.0", - "react-devtools-core": "^4.23.0", - "react-native-codegen": "^0.0.18", - "react-native-gradle-plugin": "^0.0.6", + "promise": "^8.3.0", + "react-devtools-core": "4.24.0", + "react-native-codegen": "^0.70.6", + "react-native-gradle-plugin": "^0.70.3", "react-refresh": "^0.4.0", - "react-shallow-renderer": "16.14.1", + "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", - "scheduler": "^0.20.2", + "scheduler": "^0.22.0", "stacktrace-parser": "^0.1.3", - "use-subscription": ">=1.0.0 <1.6.0", + "use-sync-external-store": "^1.0.0", "whatwg-fetch": "^3.0.0", "ws": "^6.1.4" }, @@ -11726,7 +9766,7 @@ "node": ">=14" }, "peerDependencies": { - "react": "17.0.2" + "react": "18.1.0" } }, "node_modules/react-native-background-timer": { @@ -11737,22 +9777,10 @@ "react-native": ">=0.47.0" } }, - "node_modules/react-native-clean-project": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-native-clean-project/-/react-native-clean-project-4.0.1.tgz", - "integrity": "sha512-B7rXdFC4bfA+Vv7lZ9bKS6cUDgqg04OR5D69sNnhheFBJQ1V04cIfJ1Fu0sbqRsIehqlOcySQRpp8tm7r7PvLQ==", - "dev": true, - "bin": { - "react-native-clean-project": "source/index.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/react-native-codegen": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.18.tgz", - "integrity": "sha512-XPI9aVsFy3dvgDZvyGWrFnknNiyb22kg5nHgxa0vjWTH9ENLBgVRZt9A64xHZ8BYihH+gl0p/1JNOCIEUzRPBg==", + "version": "0.70.6", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz", + "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==", "dependencies": { "@babel/parser": "^7.14.0", "flow-parser": "^0.121.0", @@ -11760,29 +9788,6 @@ "nullthrows": "^1.1.1" } }, - "node_modules/react-native-crypto": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-native-crypto/-/react-native-crypto-2.2.0.tgz", - "integrity": "sha512-eZu9Y8pa8BN9FU2pIex7MLRAi+Cd1Y6bsxfiufKh7sfraAACJvjQTeW7/zcQAT93WMfM+D0OVk+bubvkrbrUkw==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.4", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "3.0.8", - "public-encrypt": "^4.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - }, - "peerDependencies": { - "react-native-randombytes": ">=2.0.0 <4.0.0" - } - }, "node_modules/react-native-exception-handler": { "version": "2.10.10", "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", @@ -11811,14 +9816,14 @@ } }, "node_modules/react-native-gradle-plugin": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.0.6.tgz", - "integrity": "sha512-eIlgtsmDp1jLC24dRn43hB3kEcZVqx6DUQbR0N1ABXGnMEafm9I3V3dUUeD1vh+Dy5WqijSoEwLNUPLgu5zDMg==" + "version": "0.70.3", + "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz", + "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==" }, "node_modules/react-native-navigation": { - "version": "7.30.3", - "resolved": "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-7.30.3.tgz", - "integrity": "sha512-4XTeq60YxAsp8zeUeIMedUduQ9blUjPlhAgxKCj5ekam5GoHwqq7iKtQr43+rYbOp0+eATGAqdZ8H/+ZXP9EFw==", + "version": "7.32.1", + "resolved": "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-7.32.1.tgz", + "integrity": "sha512-qqpccWh6MqTG0hn/XeggKonSYg+h64kOsYBot/+g2EUC/Usp8TZsKi1B2gzsUrDQy8EmsF9iTBoZMIgjxFG/WQ==", "dependencies": { "hoist-non-react-statics": "3.x.x", "lodash": "4.17.x", @@ -11846,45 +9851,53 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "node_modules/react-native-pager-view": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.1.2.tgz", - "integrity": "sha512-qs2KSFc+7N7B+UZ6SG2sTvCkppagm5fVyRclv1KFKc7lDtrhXLzN59tXJw575LDP/dRJoXsNwqUAhZJdws6ABQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.1.4.tgz", + "integrity": "sha512-fmTwgGwPxGCBusKAq7gHzm+s1Yp0qh5rKPoQszaCuxrb+76KgK4Qe82jJNPUp2xTZOKSw+FbJU2QahF8ncTl+w==", "peerDependencies": { "react": "*", "react-native": "*" } }, - "node_modules/react-native-randombytes": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/react-native-randombytes/-/react-native-randombytes-3.6.1.tgz", - "integrity": "sha512-qxkwMbOZ0Hff1V7VqpaWrR6ItkA+oF6bnI79Qp9F3Tk8WBsdKDi6m1mi3dEdFWePoRLrhJ2L03rU0yabst1tVw==", + "node_modules/react-native-quick-base64": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-native-quick-base64/-/react-native-quick-base64-2.0.5.tgz", + "integrity": "sha512-waRcIlchdLCSzpWYqRNIN5NyE5PxKyedMQ/sTgA/fcEkBzwp3EOwjhsfVuJuBtc1bHL2Mg34pxDVBxyLU3Mu2Q==", "dependencies": { - "buffer": "^4.9.1", - "sjcl": "^1.0.3" - } - }, - "node_modules/react-native-randombytes/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/react-native-splash-screen": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/react-native-splash-screen/-/react-native-splash-screen-3.3.0.tgz", - "integrity": "sha512-rGjt6HkoSXxMqH4SQUJ1gnPQlPJV8+J47+4yhgTIan4bVvAwJhEeJH7wWt9hXSdH4+VfwTS0GTaflj1Tw83IhA==", + "base64-js": "^1.5.1" + }, "peerDependencies": { - "react-native": ">=0.57.0" + "react": "*", + "react-native": "*" } }, + "node_modules/react-native-quick-crypto": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/react-native-quick-crypto/-/react-native-quick-crypto-0.5.0.tgz", + "integrity": "sha512-NYc8r97UaKOfkHj0iyM8OD+S5U+8mTKheb/BYpu7CNJ0qt1VkwFEaWkJtOUWSRbyd24d0AKrC9+97UkroBs9JA==", + "dependencies": { + "@craftzdog/react-native-buffer": "^6.0.4", + "@types/node": "^17.0.31", + "crypto-browserify": "^3.12.0", + "events": "^3.3.0", + "react-native-quick-base64": "^2.0.2", + "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-quick-crypto/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, "node_modules/react-native-track-player": { "version": "2.1.2", - "resolved": "git+ssh://git@github.com/lyswhut/react-native-track-player.git#5fb0bec8694d3783f32a1e4ed1251c163e9842f7", - "integrity": "sha512-n48QN+6YlCXRyzkBy6h5zal9jBNoTC4ti5r2sbH+9oVcYFR1r9grjKw24B9m/1tL2gdeLj/OuoPD9l5HpUF2ZA==", + "resolved": "git+ssh://git@github.com/lyswhut/react-native-track-player.git#38027954a5ac6e3d92961745e0a9633fc647f47a", + "integrity": "sha512-WLUJIbfNPTudwEhr8D70U0kwg3sQsivdFHCGjiq9ko44PmxlINFty+0g1/DmFdWZOAKUrq8y3/e6S+Uj7Uv7Bw==", "license": "Apache-2.0", "peerDependencies": { "react": ">=16.8.6", @@ -11910,12 +9923,18 @@ "generate-icon": "bin/generate-icon.js" } }, - "node_modules/react-native-vector-icons/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/react-native-vector-icons/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/react-native-vector-icons/node_modules/cliui": { @@ -11928,17 +9947,22 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/react-native-vector-icons/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/react-native-vector-icons/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, + "node_modules/react-native-vector-icons/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/react-native-vector-icons/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -11988,49 +10012,6 @@ "node": ">=10" } }, - "node_modules/react-redux": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", - "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-redux/node_modules/react-is": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.0.0.tgz", - "integrity": "sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw==" - }, "node_modules/react-refresh": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", @@ -12040,63 +10021,34 @@ } }, "node_modules/react-shallow-renderer": { - "version": "16.14.1", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz", - "integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==", + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", "dependencies": { "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0" + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" }, "peerDependencies": { - "react": "^16.0.0 || ^17.0.0" + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-test-renderer": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", - "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-test-renderer/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "node_modules/readable-stream": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "node_modules/readline": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", - "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=" + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" }, "node_modules/recast": { "version": "0.20.5", @@ -12120,39 +10072,6 @@ "node": ">=0.10.0" } }, - "node_modules/redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-logger": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", - "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", - "dev": true, - "dependencies": { - "deep-diff": "^0.3.5" - } - }, - "node_modules/redux-subscriber": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/redux-subscriber/-/redux-subscriber-1.1.0.tgz", - "integrity": "sha1-PKwopnTOwHtungFcp6q7vawVVUM=", - "dependencies": { - "object-path": "^0.11.3" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "peerDependencies": { - "redux": "^4" - } - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -12178,6 +10097,7 @@ "version": "0.15.0", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "peer": true, "dependencies": { "@babel/runtime": "^7.8.4" } @@ -12212,10 +10132,11 @@ } }, "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "peer": true, "engines": { "node": ">=8" }, @@ -12263,18 +10184,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/remove-markdown": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.2.2.tgz", - "integrity": "sha1-ZrDO66n7d8qWNrsbAwfOIaMqEqY=", - "dev": true - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "node_modules/repeat-element": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", @@ -12286,7 +10195,7 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "engines": { "node": ">=0.10" } @@ -12294,7 +10203,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } @@ -12307,14 +10216,15 @@ "node_modules/reselect": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", - "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" + "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==", + "dev": true }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -12325,31 +10235,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -12357,19 +10248,19 @@ "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "deprecated": "https://github.com/lydell/resolve-url#deprecated" }, "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dependencies": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/ret": { @@ -12391,14 +10282,19 @@ } }, "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ripemd160": { @@ -12410,64 +10306,6 @@ "inherits": "^2.0.1" } }, - "node_modules/rn-nodeify": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/rn-nodeify/-/rn-nodeify-10.3.0.tgz", - "integrity": "sha512-EZB3M4M5i8yySCWF7AAZ31xU7cpdLuIKMlVxXji9t0aY8Ojy3BAyRt1sTp0OwBgy1ejShmlIu2L4f8mToJ+uvg==", - "dev": true, - "dependencies": { - "@yarnpkg/lockfile": "^1.0.0", - "deep-equal": "^1.0.0", - "findit": "^2.0.0", - "fs-extra": "^0.22.1", - "minimist": "^1.1.2", - "object.pick": "^1.1.1", - "run-parallel": "^1.1.2", - "semver": "^5.0.1", - "xtend": "^4.0.0" - }, - "bin": { - "rn-nodeify": "cmd.js" - } - }, - "node_modules/rn-nodeify/node_modules/fs-extra": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.22.1.tgz", - "integrity": "sha1-X9b4BJ3JdsoZ6yNV1lgXPKvM4FY=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/rn-nodeify/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/rn-nodeify/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -12499,7 +10337,7 @@ "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dependencies": { "ret": "~0.1.10" } @@ -12523,197 +10361,12 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dev": true, - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", + "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "node_modules/semver": { @@ -12747,6 +10400,19 @@ "node": ">= 0.8.0" } }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -12785,7 +10451,7 @@ "node_modules/serialize-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", "engines": { "node": ">=0.10.0" } @@ -12807,7 +10473,7 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/set-value": { "version": "2.0.1", @@ -12826,7 +10492,7 @@ "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { "is-extendable": "^0.1.0" }, @@ -12834,6 +10500,14 @@ "node": ">=0.10.0" } }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -12863,42 +10537,36 @@ } }, "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "peer": true, "dependencies": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dependencies": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -12914,33 +10582,15 @@ } }, "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/simple-plist": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", - "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", - "dependencies": { - "bplist-creator": "0.1.0", - "bplist-parser": "0.3.1", - "plist": "^3.0.5" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, - "node_modules/sjcl": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.8.tgz", - "integrity": "sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ==", - "engines": { - "node": "*" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -12962,30 +10612,6 @@ "node": ">=6" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -13020,7 +10646,7 @@ "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -13028,41 +10654,6 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", @@ -13077,7 +10668,7 @@ "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { "is-buffer": "^1.1.5" }, @@ -13085,10 +10676,18 @@ "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -13099,7 +10698,7 @@ "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dependencies": { "is-extendable": "^0.1.0" }, @@ -13107,35 +10706,106 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/socket.io": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", - "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.0.tgz", + "integrity": "sha512-2XOp18xnGghUICSd5ziUIS4rB0dhr6S8OvAps8y+HhOjFQlqGcf+FIh6fCIsKKZyWFxJeFPrZRNPGsHDTsz1Ug==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io": "~6.2.1", - "socket.io-adapter": "~2.4.0", + "engine.io-client": "~6.4.0", "socket.io-parser": "~4.2.1" }, "engines": { "node": ">=10.0.0" } }, - "node_modules/socket.io-adapter": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", - "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" - }, "node_modules/socket.io-parser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", @@ -13148,42 +10818,10 @@ "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } @@ -13202,9 +10840,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13224,38 +10862,6 @@ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "deprecated": "See https://github.com/lydell/source-map-url#deprecated" }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -13270,33 +10876,12 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "node_modules/stacktrace-parser": { "version": "0.1.10", @@ -13312,7 +10897,7 @@ "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -13324,7 +10909,7 @@ "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -13332,94 +10917,128 @@ "node": ">=0.10.0" } }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "engines": { "node": ">= 0.6" } }, "node_modules/stream-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^1.0.27-1" - } - }, - "node_modules/stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", - "engines": { - "node": ">= 0.10.0" + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-length/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -13428,17 +11047,6 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -13459,49 +11067,50 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -13509,25 +11118,17 @@ "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "engines": { "node": ">=0.10.0" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "peer": true, "engines": { "node": ">=8" }, @@ -13541,27 +11142,14 @@ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -13575,16 +11163,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, "node_modules/temp": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==", "engines": [ "node >=0.8.0" ], @@ -13596,46 +11178,17 @@ "node_modules/temp/node_modules/rimraf": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==", "bin": { "rimraf": "bin.js" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "peer": true }, "node_modules/throat": { "version": "5.0.0", @@ -13665,6 +11218,14 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -13673,7 +11234,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" } @@ -13681,7 +11242,7 @@ "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dependencies": { "kind-of": "^3.0.2" }, @@ -13692,7 +11253,7 @@ "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dependencies": { "is-buffer": "^1.1.5" }, @@ -13733,55 +11294,17 @@ "node": ">=0.6" } }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tr46/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, + "peer": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", @@ -13790,10 +11313,11 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "peer": true, "dependencies": { "minimist": "^1.2.0" }, @@ -13806,11 +11330,33 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "peer": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -13818,15 +11364,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", @@ -13835,13 +11372,17 @@ "node": ">=8" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" } }, "node_modules/uglify-es": { @@ -13938,6 +11479,14 @@ "node": ">=0.10.0" } }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -13949,7 +11498,7 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } @@ -13957,7 +11506,7 @@ "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -13969,7 +11518,7 @@ "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -13982,7 +11531,7 @@ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dependencies": { "isarray": "1.0.0" }, @@ -13993,15 +11542,15 @@ "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "funding": [ { "type": "opencollective", @@ -14028,34 +11577,17 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "peer": true, "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "deprecated": "Please see https://github.com/lydell/urix#deprecated" }, - "node_modules/url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -14064,23 +11596,12 @@ "node": ">=0.10.0" } }, - "node_modules/use-subscription": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", - "dependencies": { - "object-assign": "^4.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, "node_modules/use-sync-external-store": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.0.0.tgz", - "integrity": "sha512-AFVsxg5GkFg8GDcxnl+Z0lMAz9rE8DGJCc28qnBuQF7lac57B5smLcT37aXpXIIPz75rW4g3eXHPjhHwdGskOw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0-rc" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/utf8": { @@ -14088,68 +11609,23 @@ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } @@ -14159,103 +11635,55 @@ "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dependencies": { - "makeerror": "1.0.x" + "makeerror": "1.0.12" } }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/whatwg-fetch": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "peer": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/which-boxed-primitive": { @@ -14277,13 +11705,14 @@ "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -14301,29 +11730,40 @@ "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "ansi-regex": "^5.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "2.4.3", @@ -14343,44 +11783,12 @@ "async-limiter": "~1.0.0" } }, - "node_modules/xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "dependencies": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xmldoc": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", - "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", - "dependencies": { - "sax": "^1.2.1" + "node": ">=0.4.0" } }, "node_modules/xtend": { @@ -14435,11 +11843,74 @@ "node": ">=6" } }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "engines": { "node": ">=10" }, @@ -14450,11 +11921,12 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { @@ -14466,69 +11938,52 @@ } }, "@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==" + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==" }, "@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } } }, "@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "requires": { - "@babel/types": "^7.20.5", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { @@ -14549,14 +12004,30 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "requires": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } } }, "@babel/helper-create-class-features-plugin": { @@ -14583,28 +12054,16 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - } } }, "@babel/helper-environment-visitor": { @@ -14654,18 +12113,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" } }, "@babel/helper-optimise-call-expression": { @@ -14755,13 +12214,13 @@ } }, "@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" } }, "@babel/highlight": { @@ -14772,58 +12231,12 @@ "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -14849,7 +12262,6 @@ "version": "7.20.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", - "peer": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.19.0", @@ -14888,12 +12300,12 @@ } }, "@babel/plugin-proposal-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz", - "integrity": "sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", + "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-default-from": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" } }, "@babel/plugin-proposal-export-namespace-from": { @@ -15015,15 +12427,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -15050,11 +12453,11 @@ } }, "@babel/plugin-syntax-export-default-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz", - "integrity": "sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", + "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-export-namespace-from": { @@ -15082,35 +12485,28 @@ "@babel/helper-plugin-utils": "^7.19.0" } }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "peer": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "peer": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -15127,6 +12523,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "peer": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -15168,6 +12565,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "peer": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -15363,7 +12761,6 @@ "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", - "peer": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.19.0", "@babel/helper-plugin-utils": "^7.19.0" @@ -15378,14 +12775,6 @@ "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-object-assign": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.14.5.tgz", - "integrity": "sha512-lvhjk4UN9xJJYB1mI5KC0/o1D5EcJXdbhVe+4fSk08D6ZN+iuAIs7LJC+71h8av9Ew4+uRq9452v9R93SFmQlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, "@babel/plugin-transform-object-super": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", @@ -15412,45 +12801,46 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.15.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.15.1.tgz", - "integrity": "sha512-yQZ/i/pUCJAHI/LbtZr413S3VT26qNrEm0M5RRxQJA947/YNYwbZbBaXGDrq6CG5QsZycI1VIP6d7pQaBfP+8Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.14.9.tgz", - "integrity": "sha512-Fqqu0f8zv9W+RyOnx29BX/RlEsBRANbOf5xs5oxb2aHP4FKbLXxIaVPUiCti56LAR1IixMH4EyaixhUsKqoBHw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.5.tgz", - "integrity": "sha512-1TpSDnD9XR/rQ2tzunBVPThF5poaYT9GqP+of8fAtguYuI/dm2RkrMBDemsxtY0XBzvW7nXjYM0hRyKX9QYj7Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-regenerator": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "peer": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "regenerator-transform": "^0.15.0" @@ -15466,15 +12856,15 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz", - "integrity": "sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", "semver": "^6.3.0" } }, @@ -15629,61 +13019,6 @@ "babel-plugin-polyfill-regenerator": "^0.4.1", "core-js-compat": "^3.25.1", "semver": "^6.3.0" - }, - "dependencies": { - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "peer": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "peer": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "peer": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "peer": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - } } }, "@babel/preset-flow": { @@ -15732,74 +13067,57 @@ } }, "@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "requires": { "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - } } }, "@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "requires": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, + "@craftzdog/react-native-buffer": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@craftzdog/react-native-buffer/-/react-native-buffer-6.0.5.tgz", + "integrity": "sha512-Av+YqfwA9e7jhgI9GFE/gTpwl/H+dRRLmZyJPOpKTy107j9Oj7oXlm3/YiMNz+C/CEGqcKAOqnXDLs4OL6AAFw==", "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" + "ieee754": "^1.2.1", + "react-native-quick-base64": "^2.0.5" } }, "@eslint/eslintrc": { @@ -15807,6 +13125,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, + "peer": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -15819,67 +13138,29 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, + "peer": true, "requires": { "type-fest": "^0.20.2" } }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "dev": true, + "peer": true } } }, "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "@hapi/topo": { "version": "5.1.0", @@ -15890,141 +13171,30 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", - "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, + "peer": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } + "minimatch": "^3.0.5" } }, "@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true + "dev": true, + "peer": true }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } + "peer": true }, "@jest/create-cache-key-function": { "version": "27.5.1", @@ -16032,227 +13202,78 @@ "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==", "requires": { "@jest/types": "^27.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } } }, "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, "@jridgewell/set-array": { "version": "1.1.2", @@ -16260,26 +13281,17 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@nodelib/fs.scandir": { @@ -16329,365 +13341,601 @@ "requires": {} }, "@react-native-community/cli": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-7.0.3.tgz", - "integrity": "sha512-WyJOA829KAhU1pw2MDQt0YhOS9kyR2KqyqgJyTuQhzFVCBPX4F5aDEkZYYn4jdldaDHCPrLJ3ho3gxYTXy+x7w==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz", + "integrity": "sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==", "requires": { - "@react-native-community/cli-debugger-ui": "^7.0.3", - "@react-native-community/cli-hermes": "^6.3.0", - "@react-native-community/cli-plugin-metro": "^7.0.3", - "@react-native-community/cli-server-api": "^7.0.3", - "@react-native-community/cli-tools": "^6.2.0", - "@react-native-community/cli-types": "^6.0.0", - "appdirsjs": "^1.2.4", + "@react-native-community/cli-clean": "^9.2.1", + "@react-native-community/cli-config": "^9.2.1", + "@react-native-community/cli-debugger-ui": "^9.0.0", + "@react-native-community/cli-doctor": "^9.3.0", + "@react-native-community/cli-hermes": "^9.3.1", + "@react-native-community/cli-plugin-metro": "^9.2.1", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", + "@react-native-community/cli-types": "^9.1.0", "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "commander": "^2.19.0", - "cosmiconfig": "^5.1.0", - "deepmerge": "^3.2.0", - "envinfo": "^7.7.2", + "commander": "^9.4.0", "execa": "^1.0.0", "find-up": "^4.1.0", "fs-extra": "^8.1.0", - "glob": "^7.1.3", "graceful-fs": "^4.1.3", - "joi": "^17.2.1", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "minimist": "^1.2.0", - "node-stream-zip": "^1.9.1", - "ora": "^3.4.0", - "pretty-format": "^26.6.2", "prompts": "^2.4.0", - "semver": "^6.3.0", - "serve-static": "^1.13.1", - "strip-ansi": "^5.2.0", - "sudo-prompt": "^9.0.0", - "wcwidth": "^1.0.1" + "semver": "^6.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-clean": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz", + "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==", + "requires": { + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "prompts": "^2.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-config": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz", + "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==", + "requires": { + "@react-native-community/cli-tools": "^9.2.1", + "cosmiconfig": "^5.1.0", + "deepmerge": "^3.2.0", + "glob": "^7.1.3", + "joi": "^17.2.1" } }, "@react-native-community/cli-debugger-ui": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-7.0.3.tgz", - "integrity": "sha512-G4SA6jFI0j22o+j+kYP8/7sxzbCDqSp2QiHA/X5E0lsGEd2o9qN2zbIjiFr8b8k+VVAYSUONhoC0+uKuINvmkA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-9.0.0.tgz", + "integrity": "sha512-7hH05ZwU9Tp0yS6xJW0bqcZPVt0YCK7gwj7gnRu1jDNN2kughf6Lg0Ys29rAvtZ7VO1PK5c1O+zs7yFnylQDUA==", "requires": { "serve-static": "^1.13.1" } }, - "@react-native-community/cli-hermes": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-6.3.0.tgz", - "integrity": "sha512-Uhbm9bubyZLZ12vFCIfWbE/Qi3SBTbYIN/TC08EudTLhv/KbPomCQnmFsnJ7AXQFuOZJs73mBxoEAYSbRbwyVA==", + "@react-native-community/cli-doctor": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz", + "integrity": "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==", "requires": { - "@react-native-community/cli-platform-android": "^6.3.0", - "@react-native-community/cli-tools": "^6.2.0", + "@react-native-community/cli-config": "^9.2.1", + "@react-native-community/cli-platform-ios": "^9.3.0", + "@react-native-community/cli-tools": "^9.2.1", + "chalk": "^4.1.2", + "command-exists": "^1.2.8", + "envinfo": "^7.7.2", + "execa": "^1.0.0", + "hermes-profile-transformer": "^0.0.6", + "ip": "^1.1.5", + "node-stream-zip": "^1.9.1", + "ora": "^5.4.1", + "prompts": "^2.4.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "sudo-prompt": "^9.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@react-native-community/cli-hermes": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz", + "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==", + "requires": { + "@react-native-community/cli-platform-android": "^9.3.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" }, "dependencies": { - "@react-native-community/cli-platform-android": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-6.3.0.tgz", - "integrity": "sha512-d5ufyYcvrZoHznYm5bjBXaiHIJv552t5gYtQpnUsxBhHSQ8QlaNmlLUyeSPRDfOw4ND9b0tPHqs4ufwx6vp/fQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "@react-native-community/cli-tools": "^6.2.0", - "chalk": "^4.1.2", - "execa": "^1.0.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "jetifier": "^1.6.2", - "lodash": "^4.17.15", - "logkitty": "^0.7.1", - "slash": "^3.0.0", - "xmldoc": "^1.1.2" + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" } } } }, "@react-native-community/cli-platform-android": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-7.0.1.tgz", - "integrity": "sha512-nOr0aMkxAymCnbtsQwXBlyoRN2Y+IzC7Qz5T+/zyWwEbTY8SKQI8uV+8+qttUvzSvuXa2PeXsTWluuliOS8KCw==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz", + "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==", "requires": { - "@react-native-community/cli-tools": "^7.0.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "fs-extra": "^8.1.0", "glob": "^7.1.3", - "jetifier": "^1.6.2", - "lodash": "^4.17.15", "logkitty": "^0.7.1", - "slash": "^3.0.0", - "xmldoc": "^1.1.2" + "slash": "^3.0.0" }, "dependencies": { - "@react-native-community/cli-tools": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-7.0.1.tgz", - "integrity": "sha512-0xra4hKNA5PR2zYVXsDMNiXMGaDNoNRYMY6eTP2aVIxQbqIcVMDWSyCA8wMWX5iOpMWg0cZGaQ6a77f3Rlb34g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "lodash": "^4.17.15", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^6.3.0", - "shell-quote": "^1.7.3" + "color-convert": "^2.0.1" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "restore-cursor": "^3.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "color-name": "~1.1.4" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "mimic-fn": "^2.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" } } } }, "@react-native-community/cli-platform-ios": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-7.0.1.tgz", - "integrity": "sha512-PLRIbzrCzSedmpjuFtQqcqUD45G8q7sEciI1lf5zUbVMXqjIBwJWS7iz8235PyWwj8J4MNHohLC+oyRueFtbGg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz", + "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==", "requires": { - "@react-native-community/cli-tools": "^7.0.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", "execa": "^1.0.0", "glob": "^7.1.3", - "js-yaml": "^3.13.1", - "lodash": "^4.17.15", - "ora": "^5.4.1", - "plist": "^3.0.2", - "xcode": "^3.0.0" + "ora": "^5.4.1" }, "dependencies": { - "@react-native-community/cli-tools": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-7.0.1.tgz", - "integrity": "sha512-0xra4hKNA5PR2zYVXsDMNiXMGaDNoNRYMY6eTP2aVIxQbqIcVMDWSyCA8wMWX5iOpMWg0cZGaQ6a77f3Rlb34g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "lodash": "^4.17.15", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^6.3.0", - "shell-quote": "^1.7.3" + "color-convert": "^2.0.1" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "restore-cursor": "^3.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "color-name": "~1.1.4" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "mimic-fn": "^2.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" } } } }, "@react-native-community/cli-plugin-metro": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-7.0.3.tgz", - "integrity": "sha512-HJrEkFbxv9DNixsGwO+Q0zCcZMghDltyzeB9yQ//D5ZR4ZUEuAIPrRDdEp9xVw0WkBxAIZs6KXLux2/yPMwLhA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz", + "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==", "requires": { - "@react-native-community/cli-server-api": "^7.0.3", - "@react-native-community/cli-tools": "^6.2.0", + "@react-native-community/cli-server-api": "^9.2.1", + "@react-native-community/cli-tools": "^9.2.1", "chalk": "^4.1.2", - "metro": "^0.67.0", - "metro-config": "^0.67.0", - "metro-core": "^0.67.0", - "metro-react-native-babel-transformer": "^0.67.0", - "metro-resolver": "^0.67.0", - "metro-runtime": "^0.67.0", + "metro": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-react-native-babel-transformer": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", "readline": "^1.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@react-native-community/cli-server-api": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-7.0.3.tgz", - "integrity": "sha512-JDrLsrkBgNxbG2u3fouoVGL9tKrXUrTsaNwr+oCV+3XyMwbVe42r/OaQ681/iW/7mHXjuVkDnMcp7BMg7e2yJg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz", + "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==", "requires": { - "@react-native-community/cli-debugger-ui": "^7.0.3", - "@react-native-community/cli-tools": "^6.2.0", + "@react-native-community/cli-debugger-ui": "^9.0.0", + "@react-native-community/cli-tools": "^9.2.1", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.0", - "nocache": "^2.1.0", + "nocache": "^3.0.1", "pretty-format": "^26.6.2", "serve-static": "^1.13.1", "ws": "^7.5.1" }, "dependencies": { "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "requires": {} } } }, "@react-native-community/cli-tools": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-6.2.0.tgz", - "integrity": "sha512-08ssz4GMEnRxC/1FgTTN/Ud7mExQi5xMphItPjfHiTxpZPhrFn+IMx6mya0ncFEhhxQ207wYlJMRLPRRdBZ8oA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz", + "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==", "requires": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", - "lodash": "^4.17.15", + "find-up": "^5.0.0", "mime": "^2.4.1", "node-fetch": "^2.6.0", "open": "^6.2.0", + "ora": "^5.4.1", "semver": "^6.3.0", - "shell-quote": "1.6.1" + "shell-quote": "^1.7.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@react-native-community/cli-types": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-6.0.0.tgz", - "integrity": "sha512-K493Fk2DMJC0ZM8s8gnfseKxGasIhuDaCUDeLZcoCSFlrjKEuEs1BKKEJiev0CARhKEXKOyyp/uqYM9nWhisNw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz", + "integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==", "requires": { - "ora": "^3.4.0" + "joi": "^17.2.1" } }, "@react-native-community/slider": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-4.3.3.tgz", - "integrity": "sha512-eVhMaVR08wWlseVWlDS7zgdhbVY0n2i7BF1qRxK+2N1VIKd7NsTIRzL57sFLgHVjbUmu/+hHfxCzLHmEaGxIQg==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-4.4.2.tgz", + "integrity": "sha512-D9bv+3Vd2gairAhnRPAghwccgEmoM7g562pm8i4qB3Esrms5mggF81G3UvCyc0w3jjtFHh8dpQkfEoKiP0NW/Q==" }, "@react-native/assets": { "version": "1.0.0", @@ -16713,119 +13961,30 @@ } }, "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, "@socket.io/component-emitter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "@tsconfig/react-native": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-2.0.3.tgz", + "integrity": "sha512-jE58snEKBd9DXfyR4+ssZmYJ/W2mOSnNrvljR0aLyQJL9JKX6vlWELHkRjb3HBbcM9Uy0hZGijXbqEAjOERW2A==", "dev": true }, - "@types/babel__core": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "requires": { - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "requires": { - "@types/node": "*" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" }, "@types/istanbul-lib-report": { "version": "3.0.0", @@ -16836,91 +13995,236 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "requires": { "@types/istanbul-lib-report": "*" } }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true }, "@types/node": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz", - "integrity": "sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ==" - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", - "dev": true + "version": "18.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz", + "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" }, "@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true }, "@types/react": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.5.tgz", - "integrity": "sha512-UPxNGInDCIKlfqBrm8LDXYWNfLHwIdisWcsH5GpMyGjhEDLFgTtlRBaoWuCua9HcyuE0rMkmAeZ3FXV1pYLIYQ==", + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "@types/react-native": { + "version": "0.70.11", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.11.tgz", + "integrity": "sha512-FobPtzoNPNHugBKMfzs4Li0Q9ei4tgU8SI1M5Ayg7+t5/+noCm2sknI8uwij22wMkcHcefv8RFx4q28nNVJtCQ==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-native-background-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/react-native-background-timer/-/react-native-background-timer-2.0.0.tgz", + "integrity": "sha512-y5VW82dL/ESOLg+5QQHyBdsFVA4ZklENxmOyxv8o06T+3HBG2JOSuz/CIPz1vKdB7dmWDGPZNuPosdtnp+xv2A==", + "dev": true + }, + "@types/react-native-vector-icons": { + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz", + "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==", + "dev": true, + "requires": { + "@types/react": "*", + "@types/react-native": "^0.70" + } + }, "@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", "dev": true }, - "@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true, + "peer": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "@typescript-eslint/eslint-plugin": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz", + "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==", + "dev": true, + "peer": true, + "requires": { + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/type-utils": "5.51.0", + "@typescript-eslint/utils": "5.51.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", + "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", + "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz", + "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==", + "dev": true, + "peer": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/utils": "5.51.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", + "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", "dev": true }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true + "@typescript-eslint/typescript-estree": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", + "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/visitor-keys": "5.51.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz", + "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==", + "dev": true, + "peer": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.51.0", + "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/typescript-estree": "5.51.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", + "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.51.0", + "eslint-visitor-keys": "^3.3.0" + } }, "abort-controller": { "version": "3.0.0", @@ -16933,71 +14237,38 @@ "absolute-path": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", - "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" + "integrity": "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==" }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } + "peer": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "peer": true, "requires": {} }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -17010,23 +14281,6 @@ "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, "ansi-fragments": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", @@ -17035,47 +14289,61 @@ "colorette": "^1.0.7", "slice-ansi": "^2.0.0", "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "appdirsjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.6.tgz", - "integrity": "sha512-D8wJNkqMCeQs3kLasatELsddox/Xqkhp+J07iXGyL54fVN7oc+nmNfYzGuCs1IEP6uBw+TfpuO3JKwc+lECy4w==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", + "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "peer": true }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" }, "arr-flatten": { "version": "1.1.0", @@ -17085,12 +14353,7 @@ "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" }, "array-includes": { "version": "3.1.6", @@ -17105,30 +14368,28 @@ "is-string": "^1.0.7" } }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, + "peer": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { @@ -17182,7 +14443,7 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" }, "ast-types": { "version": "0.14.2", @@ -17198,24 +14459,15 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" }, "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "requires": { - "lodash": "^4.17.14" - } + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -17227,85 +14479,77 @@ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "requires": {} }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, "babel-plugin-module-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", - "integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", "dev": true, "requires": { - "find-babel-config": "^1.2.0", - "glob": "^7.1.6", + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", "pkg-up": "^3.1.0", - "reselect": "^4.0.0", - "resolve": "^1.13.1" + "reselect": "^4.1.7", + "resolve": "^1.22.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", - "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "babel-plugin-syntax-trailing-function-commas": { @@ -17313,26 +14557,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, "babel-preset-fbjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", @@ -17367,16 +14591,6 @@ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" } }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -17399,59 +14613,23 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, "base-64": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", - "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" + "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -17460,49 +14638,12 @@ "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "bplist-creator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", - "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", - "requires": { - "stream-buffers": "2.2.x" - } - }, - "bplist-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", - "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "requires": { - "big-integer": "1.6.x" - } + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "brace-expansion": { "version": "1.1.11", @@ -17524,13 +14665,7 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "browserify-aes": { "version": "1.2.0", @@ -17591,16 +14726,6 @@ "safe-buffer": "^5.2.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -17628,28 +14753,28 @@ } }, "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ieee754": "^1.1.13" } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "builtins": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-4.1.0.tgz", - "integrity": "sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "peer": true, "requires": { @@ -17657,9 +14782,9 @@ }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "peer": true, "requires": { @@ -17671,7 +14796,7 @@ "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" }, "cache-base": { "version": "1.0.1", @@ -17702,68 +14827,53 @@ "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", "requires": { "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" + } } }, "caller-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", "requires": { "caller-callsite": "^2.0.0" } }, "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "peer": true }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { - "version": "1.0.30001412", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", - "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==" }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "changelog-parser": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/changelog-parser/-/changelog-parser-2.8.1.tgz", - "integrity": "sha512-tNUYFRCEeWTXmwLqoNtOEzx9wcytg72MmGQqsEs14ClYwIDln7sbQw7FJj/dulXgSlsxkemc9gpPQhZYZx1TPw==", - "dev": true, - "requires": { - "line-reader": "^0.2.4", - "remove-markdown": "^0.2.2" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -17778,12 +14888,6 @@ "safe-buffer": "^5.0.1" } }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -17798,25 +14902,76 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" }, "cliui": { "version": "6.0.0", @@ -17826,27 +14981,12 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, "clone-deep": { "version": "4.0.1", @@ -17858,53 +14998,32 @@ "shallow-clone": "^3.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" }, "command-exists": { "version": "1.2.9", @@ -17912,9 +15031,9 @@ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" }, "commondir": { "version": "1.0.1", @@ -17946,12 +15065,27 @@ "on-headers": "~1.0.2", "safe-buffer": "5.1.2", "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "connect": { "version": "3.7.0", @@ -17962,30 +15096,32 @@ "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } } }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" }, "core-js-compat": { "version": "3.26.0", @@ -17996,18 +15132,9 @@ } }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cosmiconfig": { "version": "5.2.1", @@ -18018,6 +15145,39 @@ "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + } } }, "create-ecdh": { @@ -18061,177 +15221,71 @@ "sha.js": "^2.4.8" } }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "peer": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "csstype": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", - "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true }, "dayjs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", - "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-diff": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", - "integrity": "sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "peer": true }, "deepmerge": { "version": "3.3.0", @@ -18239,9 +15293,9 @@ "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "requires": { "clone": "^1.0.2" } @@ -18263,62 +15317,18 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, "denodeify": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" + "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, - "deprecated-react-native-prop-types": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz", - "integrity": "sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA==", - "requires": { - "@react-native/normalize-color": "*", - "invariant": "*", - "prop-types": "*" - } - }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -18333,18 +15343,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -18362,78 +15360,34 @@ } } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "peer": true, "requires": { "esutils": "^2.0.2" } }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dev": true, - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.265", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.265.tgz", - "integrity": "sha512-38KaYBNs0oCzWCpr6j7fY/W9vF0vSp4tKFIshQTgdZMhUpkxgotkQgjJP6iGMdmlsgMs3i0/Hkko4UXLTrkYVQ==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "elliptic": { "version": "6.5.4", @@ -18456,12 +15410,6 @@ } } }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -18470,7 +15418,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "end-of-stream": { "version": "1.4.4", @@ -18480,49 +15428,30 @@ "once": "^1.4.0" } }, - "engine.io": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.1.tgz", - "integrity": "sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==", + "engine.io-client": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", + "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", - "ws": "~8.2.3" + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" }, "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "requires": {} } } }, "engine.io-parser": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", - "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" - }, - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "dev": true + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", + "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==" }, "envinfo": { "version": "7.8.1", @@ -18538,11 +15467,11 @@ } }, "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "requires": { - "stackframe": "^1.1.1" + "stackframe": "^1.3.4" } }, "errorhandler": { @@ -18614,85 +15543,19 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", - "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, + "peer": true, "requires": { "@eslint/eslintrc": "^1.3.3", "@humanwhocodes/config-array": "^0.11.6", @@ -18735,204 +15598,95 @@ "text-table": "^0.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } }, - "argparse": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "peer": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "color-name": "~1.1.4" } }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "requires": { - "ms": "2.1.2" - } + "peer": true }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "dev": true, + "peer": true }, "eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, + "peer": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, + "peer": true, "requires": { "type-fest": "^0.20.2" } }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "resolve-from": { + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } + "peer": true }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "peer": true, "requires": { - "ansi-regex": "^5.0.1" + "has-flag": "^4.0.0" } }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { - "isexe": "^2.0.0" - } + "peer": true } } }, @@ -18943,14 +15697,26 @@ "dev": true, "requires": {} }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "eslint-config-standard-with-typescript": { + "version": "34.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-34.0.0.tgz", + "integrity": "sha512-zhCsI4/A0rJ1ma8sf3RLXYc0gc7yPmdTWRVXMh9dtqeUx3yBQyALH0wosHhk1uQ9QyItynLdNOtcHKNw8G7lQw==", "dev": true, + "requires": { + "@typescript-eslint/parser": "^5.0.0", + "eslint-config-standard": "17.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "peer": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -18958,6 +15724,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "peer": true, "requires": { "ms": "^2.1.1" } @@ -18965,13 +15732,13 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, + "peer": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -18979,106 +15746,83 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "peer": true, "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true } } }, "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, + "peer": true, "requires": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" - } - }, - "eslint-plugin-html": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz", - "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==", - "dev": true, - "requires": { - "htmlparser2": "^8.0.1" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "peer": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "peer": true + } } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, + "peer": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "peer": true, "requires": { "esutils": "^2.0.2" } @@ -19086,91 +15830,46 @@ } }, "eslint-plugin-n": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.2.0.tgz", - "integrity": "sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz", + "integrity": "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==", "dev": true, "peer": true, "requires": { - "builtins": "^4.0.0", + "builtins": "^5.0.1", "eslint-plugin-es": "^4.1.0", "eslint-utils": "^3.0.0", "ignore": "^5.1.1", - "is-core-module": "^2.3.0", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.3.0" + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" }, "dependencies": { - "eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "peer": true, "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "peer": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - } - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "peer": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "peer": true - } + "lru-cache": "^6.0.0" } } } }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - } - }, "eslint-plugin-promise": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", "dev": true, + "peer": true, "requires": {} }, "eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "requires": { "array-includes": "^3.1.6", @@ -19185,7 +15884,7 @@ "object.hasown": "^1.1.2", "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", + "resolve": "^2.0.0-next.4", "semver": "^6.3.0", "string.prototype.matchall": "^4.0.8" }, @@ -19199,20 +15898,15 @@ "esutils": "^2.0.2" } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } @@ -19229,49 +15923,56 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "peer": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true + } } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "peer": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "peer": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, + "peer": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } } }, "esprima": { @@ -19284,16 +15985,9 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "peer": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "esrecurse": { @@ -19301,22 +15995,15 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "peer": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { @@ -19327,7 +16014,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "event-target-shim": { "version": "5.0.1", @@ -19348,12 +16035,6 @@ "safe-buffer": "^5.1.1" } }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -19366,18 +16047,57 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -19388,10 +16108,18 @@ "to-regex": "^3.0.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "requires": { "is-descriptor": "^0.1.0" } @@ -19399,44 +16127,81 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "requires": { "is-extendable": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "extglob": { @@ -19457,7 +16222,7 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "requires": { "is-descriptor": "^1.0.0" } @@ -19465,36 +16230,15 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "requires": { "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" } } }, @@ -19502,19 +16246,46 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "peer": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "peer": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "peer": true }, "fastq": { "version": "1.13.0", @@ -19526,9 +16297,9 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "requires": { "bser": "2.1.1" } @@ -19538,6 +16309,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "peer": true, "requires": { "flat-cache": "^3.0.4" } @@ -19562,28 +16334,37 @@ "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } } }, "find-babel-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", - "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz", + "integrity": "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==", "dev": true, "requires": { - "json5": "^0.5.1", - "path-exists": "^3.0.0" + "json5": "^2.1.1", + "path-exists": "^4.0.0" }, "dependencies": { - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } } @@ -19599,46 +16380,38 @@ } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } } }, - "findit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", - "integrity": "sha1-ZQnwEmr0wXhVHPqZOU4DLhOk1W4=", - "dev": true - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "peer": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, + "peer": true }, "flow-parser": { "version": "0.121.0", @@ -19648,23 +16421,12 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "requires": { "map-cache": "^0.2.2" } @@ -19672,7 +16434,7 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "fs-extra": { "version": "8.1.0", @@ -19687,7 +16449,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -19739,12 +16501,6 @@ "has-symbols": "^1.0.3" } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -19766,17 +16522,17 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -19786,6 +16542,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "peer": true, "requires": { "is-glob": "^4.0.3" } @@ -19795,6 +16552,20 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -19804,14 +16575,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true, - "optional": true + "peer": true }, "has": { "version": "1.0.3", @@ -19828,9 +16593,9 @@ "dev": true }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { "version": "1.0.0", @@ -19859,7 +16624,7 @@ "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -19869,7 +16634,7 @@ "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -19878,7 +16643,7 @@ "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "requires": { "kind-of": "^3.0.2" }, @@ -19886,7 +16651,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { "is-buffer": "^1.1.5" } @@ -19896,7 +16661,7 @@ "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "requires": { "is-buffer": "^1.1.5" } @@ -19913,16 +16678,6 @@ "safe-buffer": "^5.2.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -19939,22 +16694,17 @@ "minimalistic-assert": "^1.0.1" } }, - "hermes-engine": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.11.0.tgz", - "integrity": "sha512-7aMUlZja2IyLYAcZ69NBnwJAR5ZOYlSllj0oMpx08a8HzxHOys0eKCzfphrf6D0vX1JGO1QQvVsQKe6TkYherw==" - }, "hermes-estree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.5.0.tgz", - "integrity": "sha512-1h8rvG23HhIR5K6Kt0e5C7BC72J1Ath/8MmSta49vxXp/j6wl7IMHvIRFYBQr35tWnQY97dSGR2uoAJ5pHUQkg==" + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz", + "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==" }, "hermes-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.5.0.tgz", - "integrity": "sha512-ARnJBScKAkkq8j3BHrNGBUv/4cSpZNbKDsVizEtzmsFeqC67Dopa5s4XRe+e3wN52Dh5Mj2kDB5wJvhcxwDkPg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz", + "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==", "requires": { - "hermes-estree": "0.5.0" + "hermes-estree": "0.8.0" } }, "hermes-profile-transformer": { @@ -19968,7 +16718,7 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -19983,47 +16733,6 @@ "react-is": "^16.7.0" } }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "html-parse-stringify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", - "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", - "requires": { - "void-elements": "3.1.0" - } - }, - "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -20043,70 +16752,12 @@ } } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "i18next": { - "version": "22.1.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.1.5.tgz", - "integrity": "sha512-Mjj45PbpZByE+c6ddLEkkj0LUyzJP1cRGeC/+O6mvp1+GAwW7rIx6aOPW9+Zxe+JO3EcJCAkibwbZrgBRF/qRA==", - "requires": { - "@babel/runtime": "^7.20.6" - } - }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "ieee754": { @@ -20126,44 +16777,25 @@ "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" }, "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "peer": true, "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -20194,41 +16826,22 @@ } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" }, "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" + "kind-of": "^6.0.0" } }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -20260,97 +16873,64 @@ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "kind-of": "^6.0.0" } }, "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" }, "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" }, "is-glob": { "version": "4.0.3", @@ -20390,7 +16970,8 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "dev": true, + "peer": true }, "is-plain-obj": { "version": "2.1.0", @@ -20405,12 +16986,6 @@ "isobject": "^3.0.1" } }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -20433,7 +17008,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" }, "is-string": { "version": "1.0.7", @@ -20453,12 +17028,6 @@ "has-symbols": "^1.0.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -20481,663 +17050,103 @@ "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "dependencies": { - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - } - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - } - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" }, "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } - } + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" }, "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", "requires": { "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "graceful-fs": "^4.2.9" } }, "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-validate": { @@ -21153,47 +17162,100 @@ "pretty-format": "^26.6.2" }, "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } } } }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - } - }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "jetifier": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz", - "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==" - }, "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", + "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -21202,16 +17264,12 @@ "@sideway/pinpoint": "^2.0.0" } }, - "js-htmlencode": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/js-htmlencode/-/js-htmlencode-0.3.0.tgz", - "integrity": "sha1-sc4pPflOlviooIsfM2j5d70lVzE=" - }, "js-sdsl": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", - "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", - "dev": true + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true, + "peer": true }, "js-tokens": { "version": "4.0.0", @@ -21219,12 +17277,13 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "peer": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsc-android": { @@ -21258,6 +17317,14 @@ "write-file-atomic": "^2.3.0" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", @@ -21285,6 +17352,28 @@ } } }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -21306,6 +17395,16 @@ } } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -21352,6 +17451,14 @@ "glob": "^7.1.3" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, "temp": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", @@ -21371,56 +17478,6 @@ } } }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true - }, - "ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true, - "requires": {} - } - } - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -21431,50 +17488,41 @@ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "peer": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "peer": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "requires": { "graceful-fs": "^4.1.6" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "requires": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" } }, "kind-of": { @@ -21485,7 +17533,7 @@ "klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", "requires": { "graceful-fs": "^4.1.9" } @@ -21505,29 +17553,18 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "peer": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, - "line-reader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.2.4.tgz", - "integrity": "sha1-xDkrWH3qOFgMlnhXDm6OSfzlJiI=", - "dev": true - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -21538,69 +17575,70 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "peer": true }, "lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "requires": { - "chalk": "^2.0.1" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } @@ -21624,9 +17662,9 @@ } }, "lrc-file-parser": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-2.2.8.tgz", - "integrity": "sha512-Uq2boQVg4Ll4Csthq0ZJ+4Nn8sBfOJwceFsJGGfOxcpKSYpEMmDRsinuVnhNVJe4x/jD1HJr9xWzDqgo+8WMTw==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-2.3.0.tgz", + "integrity": "sha512-EX+Dnvwqgb8q3mf7WYIR4flOzwrOp9vE2MU+eyRZO0rFUF5BIZgN52SSGXFhfnHd5tUmo7VnLrpCFdURe3O2KQ==" }, "lru-cache": { "version": "6.0.0", @@ -21654,22 +17692,22 @@ } }, "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "requires": { - "tmpl": "1.0.x" + "tmpl": "1.0.5" } }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "requires": { "object-visit": "^1.0.0" } @@ -21684,6 +17722,11 @@ "safe-buffer": "^5.1.2" } }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, "merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", @@ -21697,10 +17740,16 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "metro": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.67.0.tgz", - "integrity": "sha512-DwuBGAFcAivoac/swz8Lp7Y5Bcge1tzT7T6K0nf1ubqJP8YzBUtyR4pkjEYVUzVu/NZf7O54kHSPVu1ibYzOBQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz", + "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==", "requires": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.14.0", @@ -21711,7 +17760,7 @@ "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "accepts": "^1.3.7", - "async": "^2.4.0", + "async": "^3.2.2", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", @@ -21719,30 +17768,29 @@ "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "fs-extra": "^1.0.0", - "graceful-fs": "^4.1.3", - "hermes-parser": "0.5.0", + "graceful-fs": "^4.2.4", + "hermes-parser": "0.8.0", "image-size": "^0.6.0", "invariant": "^2.2.4", - "jest-haste-map": "^27.3.1", - "jest-worker": "^26.0.0", + "jest-worker": "^27.2.0", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.67.0", - "metro-cache": "0.67.0", - "metro-cache-key": "0.67.0", - "metro-config": "0.67.0", - "metro-core": "0.67.0", - "metro-hermes-compiler": "0.67.0", - "metro-inspector-proxy": "0.67.0", - "metro-minify-uglify": "0.67.0", - "metro-react-native-babel-preset": "0.67.0", - "metro-resolver": "0.67.0", - "metro-runtime": "0.67.0", - "metro-source-map": "0.67.0", - "metro-symbolicate": "0.67.0", - "metro-transform-plugins": "0.67.0", - "metro-transform-worker": "0.67.0", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-config": "0.72.3", + "metro-core": "0.72.3", + "metro-file-map": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-inspector-proxy": "0.72.3", + "metro-minify-uglify": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-resolver": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", + "metro-symbolicate": "0.72.3", + "metro-transform-plugins": "0.72.3", + "metro-transform-worker": "0.72.3", "mime-types": "^2.1.27", - "mkdirp": "^0.5.1", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", "rimraf": "^2.5.4", @@ -21755,294 +17803,202 @@ "yargs": "^15.3.1" }, "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "color-convert": "^2.0.1" } }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "@types/yargs-parser": "*" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } }, "fs-extra": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==", "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", "klaw": "^1.0.0" } }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - } - } - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - } - } + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", "requires": { "graceful-fs": "^4.1.6" } }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" }, "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } }, "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "requires": {} } } }, "metro-babel-transformer": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.67.0.tgz", - "integrity": "sha512-SBqc4nq/dgsPNFm+mpWcQQzJaXnh0nrfz2pSnZC4i6zMtIakrTWb8SQ78jOU1FZVEZ3nu9xCYVHS9Tbr/LoEuw==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz", + "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==", "requires": { "@babel/core": "^7.14.0", - "hermes-parser": "0.5.0", - "metro-source-map": "0.67.0", + "hermes-parser": "0.8.0", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "metro-cache": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.67.0.tgz", - "integrity": "sha512-IY5dXiR76L75b2ue/mv+9vW8g5hdQJU6YEe81lj6gTSoUrhcONT0rzY+Gh5QOS2Kk6z9utZQMvd9PRKL9/635A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz", + "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==", "requires": { - "metro-core": "0.67.0", - "mkdirp": "^0.5.1", + "metro-core": "0.72.3", "rimraf": "^2.5.4" - } - }, - "metro-cache-key": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.67.0.tgz", - "integrity": "sha512-FNJe5Rcb2uzY6G6tsqCf0RV4t2rCeX6vSHBxmP7k+4aI4NqX4evtPI0K82r221nBzm5DqNWCURZ0RYUT6jZMGA==" - }, - "metro-config": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.67.0.tgz", - "integrity": "sha512-ThAwUmzZwTbKyyrIn2bKIcJDPDBS0LKAbqJZQioflvBGfcgA21h3fdL3IxRmvCEl6OnkEWI0Tn1Z9w2GLAjf2g==", - "requires": { - "cosmiconfig": "^5.0.5", - "jest-validate": "^26.5.2", - "metro": "0.67.0", - "metro-cache": "0.67.0", - "metro-core": "0.67.0", - "metro-runtime": "0.67.0" - } - }, - "metro-core": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.67.0.tgz", - "integrity": "sha512-TOa/ShE1bUq83fGNfV6rFwyfZ288M8ydmWN3g9C2OW8emOHLhJslYD/SIU4DhDkP/99yaJluIALdZ2g0+pCrvQ==", - "requires": { - "jest-haste-map": "^27.3.1", - "lodash.throttle": "^4.1.1", - "metro-resolver": "0.67.0" }, "dependencies": { - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" + "glob": "^7.1.3" } } } }, + "metro-cache-key": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz", + "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg==" + }, + "metro-config": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz", + "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==", + "requires": { + "cosmiconfig": "^5.0.5", + "jest-validate": "^26.5.2", + "metro": "0.72.3", + "metro-cache": "0.72.3", + "metro-core": "0.72.3", + "metro-runtime": "0.72.3" + } + }, + "metro-core": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz", + "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==", + "requires": { + "lodash.throttle": "^4.1.1", + "metro-resolver": "0.72.3" + } + }, + "metro-file-map": { + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz", + "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==", + "requires": { + "abort-controller": "^3.0.0", + "anymatch": "^3.0.3", + "debug": "^2.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "invariant": "^2.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.2.0", + "jest-worker": "^27.2.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, "metro-hermes-compiler": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.67.0.tgz", - "integrity": "sha512-X5Pr1jC8/kO6d1EBDJ6yhtuc5euHX89UDNv8qdPJHAET03xfFnlojRPwOw6il2udAH20WLBv+F5M9VY+58zspQ==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz", + "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg==" }, "metro-inspector-proxy": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.67.0.tgz", - "integrity": "sha512-5Ubjk94qpNaU3OT2IZa4/dec09bauic1hzWms4czorBzDenkp4kYXG9/aWTmgQLtCk92H3Q8jKl1PQRxUSkrOQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz", + "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==", "requires": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -22050,28 +18006,42 @@ "yargs": "^15.3.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "requires": {} } } }, "metro-minify-uglify": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.67.0.tgz", - "integrity": "sha512-4CmM5b3MTAmQ/yFEfsHOhD2SuBObB2YF6PKzXZc4agUsQVVtkrrNElaiWa8w26vrTzA9emwcyurxMf4Nl3lYPQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz", + "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==", "requires": { "uglify-es": "^3.1.9" } }, "metro-react-native-babel-preset": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.67.0.tgz", - "integrity": "sha512-tgTG4j0SKwLHbLRELMmgkgkjV1biYkWlGGKOmM484/fJC6bpDikdaFhfjsyE+W+qt7I5szbCPCickMTNQ+zwig==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz", + "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==", "requires": { "@babel/core": "^7.14.0", + "@babel/plugin-proposal-async-generator-functions": "^7.0.0", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", @@ -22091,17 +18061,15 @@ "@babel/plugin-transform-destructuring": "^7.0.0", "@babel/plugin-transform-exponentiation-operator": "^7.0.0", "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", "@babel/plugin-transform-function-name": "^7.0.0", "@babel/plugin-transform-literals": "^7.0.0", "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", "@babel/plugin-transform-parameters": "^7.0.0", "@babel/plugin-transform-react-display-name": "^7.0.0", "@babel/plugin-transform-react-jsx": "^7.0.0", "@babel/plugin-transform-react-jsx-self": "^7.0.0", "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-regenerator": "^7.0.0", "@babel/plugin-transform-runtime": "^7.0.0", "@babel/plugin-transform-shorthand-properties": "^7.0.0", "@babel/plugin-transform-spread": "^7.0.0", @@ -22114,43 +18082,47 @@ } }, "metro-react-native-babel-transformer": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.67.0.tgz", - "integrity": "sha512-P0JT09n7T01epUtgL9mH6BPat3xn4JjBakl4lWHdL61cvEGcrxuIom1eoFFKkgU/K5AVLU4aCAttHS7nSFCcEQ==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz", + "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==", "requires": { "@babel/core": "^7.14.0", "babel-preset-fbjs": "^3.4.0", - "hermes-parser": "0.5.0", - "metro-babel-transformer": "0.67.0", - "metro-react-native-babel-preset": "0.67.0", - "metro-source-map": "0.67.0", + "hermes-parser": "0.8.0", + "metro-babel-transformer": "0.72.3", + "metro-react-native-babel-preset": "0.72.3", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1" } }, "metro-resolver": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.67.0.tgz", - "integrity": "sha512-d2KS/zAyOA/z/q4/ff41rAp+1txF4H6qItwpsls/RHStV2j6PqgRHUzq/3ga+VIeoUJntYJ8nGW3+3qSrhFlig==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz", + "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==", "requires": { "absolute-path": "^0.0.0" } }, "metro-runtime": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.67.0.tgz", - "integrity": "sha512-IFtSL0JUt1xK3t9IoLflTDft82bjieSzdIJWLzrRzBMlesz8ox5bVmnpQbVQEwfYUpEOxbM3VOZauVbdCmXA7g==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz", + "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==", + "requires": { + "@babel/runtime": "^7.0.0", + "react-refresh": "^0.4.0" + } }, "metro-source-map": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.67.0.tgz", - "integrity": "sha512-yxypInsRo3SfS00IgTuL6a2W2tfwLY//vA2E+GeqGBF5zTbJZAhwNGIEl8S87XXZhwzJcxf5/8LjJC1YDzabww==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz", + "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==", "requires": { "@babel/traverse": "^7.14.0", "@babel/types": "^7.0.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.67.0", + "metro-symbolicate": "0.72.3", "nullthrows": "^1.1.1", - "ob1": "0.67.0", + "ob1": "0.72.3", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -22158,17 +18130,17 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, "metro-symbolicate": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.67.0.tgz", - "integrity": "sha512-ZqVVcfa0xSz40eFzA5P8pCF3V6Tna9RU1prFzAJTa3j9dCGqwh0HTXC8AIkMtgX7hNdZrCJI1YipzUBlwkT0/A==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz", + "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.67.0", + "metro-source-map": "0.72.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -22178,14 +18150,14 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, "metro-transform-plugins": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.67.0.tgz", - "integrity": "sha512-DQFoSDIJdTMPDTUlKaCNJjEXiHGwFNneAF9wDSJ3luO5gigM7t7MuSaPzF4hpjmfmcfPnRhP6AEn9jcza2Sh8Q==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz", + "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==", "requires": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", @@ -22195,32 +18167,32 @@ } }, "metro-transform-worker": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.67.0.tgz", - "integrity": "sha512-29n+JdTb80ROiv/wDiBVlY/xRAF/nrjhp/Udv/XJl1DZb+x7JEiPxpbpthPhwwl+AYxVrostGB0W06WJ61hfiw==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz", + "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==", "requires": { "@babel/core": "^7.14.0", "@babel/generator": "^7.14.0", "@babel/parser": "^7.14.0", "@babel/types": "^7.0.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.67.0", - "metro-babel-transformer": "0.67.0", - "metro-cache": "0.67.0", - "metro-cache-key": "0.67.0", - "metro-hermes-compiler": "0.67.0", - "metro-source-map": "0.67.0", - "metro-transform-plugins": "0.67.0", + "metro": "0.72.3", + "metro-babel-transformer": "0.72.3", + "metro-cache": "0.72.3", + "metro-cache-key": "0.72.3", + "metro-hermes-compiler": "0.72.3", + "metro-source-map": "0.72.3", + "metro-transform-plugins": "0.72.3", "nullthrows": "^1.1.1" } }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "miller-rabin": { @@ -22245,22 +18217,22 @@ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" }, "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.47.0" + "mime-db": "1.52.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "minimalistic-assert": { "version": "1.0.1", @@ -22270,7 +18242,7 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "minimatch": { "version": "3.1.2", @@ -22281,9 +18253,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "mixin-deep": { "version": "1.3.2", @@ -22292,16 +18264,6 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "mkdirp": { @@ -22338,13 +18300,21 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "peer": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "peer": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "neo-async": { "version": "2.6.2", @@ -22357,9 +18327,9 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "nocache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", - "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", + "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==" }, "node-dir": { "version": "0.1.17", @@ -22375,87 +18345,12 @@ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - } - } + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node-releases": { "version": "2.0.6", @@ -22467,26 +18362,6 @@ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==" }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -22495,9 +18370,16 @@ "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "requires": { "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + } } }, "nullthrows": { @@ -22505,26 +18387,20 @@ "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, "ob1": { - "version": "0.67.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.67.0.tgz", - "integrity": "sha512-YvZtX8HKYackQ5PwdFIuuNFVsMChRPHvnARRRT0Vk59xsBvL5t9U1Ock3M1sYrKj+Gp73+0q9xcHLAxI+xLi5g==" + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz", + "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -22534,15 +18410,48 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "requires": { "is-descriptor": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { "is-buffer": "^1.1.5" } @@ -22555,31 +18464,16 @@ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" - }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "requires": { "isobject": "^3.0.0" } @@ -22631,7 +18525,7 @@ "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "requires": { "isobject": "^3.0.1" } @@ -22650,7 +18544,7 @@ "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "requires": { "ee-first": "1.1.1" } @@ -22663,17 +18557,17 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "open": { @@ -22689,6 +18583,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "peer": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -22699,60 +18594,62 @@ } }, "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } @@ -22760,33 +18657,27 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "requires": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" } }, "p-try": { @@ -22804,16 +18695,9 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "peer": true, "requires": { "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } } }, "parse-asn1": { @@ -22831,18 +18715,12 @@ "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -22851,34 +18729,46 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" }, "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "peer": true }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pbkdf2": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.8.tgz", - "integrity": "sha1-L4q/FuvsyCJ3lF10irodeHYfYeI=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "requires": { - "create-hmac": "^1.1.2" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "picocolors": { @@ -22887,9 +18777,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "4.0.1", @@ -22926,6 +18816,14 @@ "path-exists": "^3.0.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -22933,11 +18831,6 @@ "requires": { "p-limit": "^2.0.0" } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" } } }, @@ -22969,6 +18862,15 @@ "path-exists": "^3.0.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -22977,34 +18879,20 @@ "requires": { "p-limit": "^2.0.0" } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true } } }, - "plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" - } - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true + "dev": true, + "peer": true }, "pretty-format": { "version": "26.6.2", @@ -23017,23 +18905,76 @@ "react-is": "^17.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } } } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -23048,9 +18989,9 @@ } }, "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -23066,12 +19007,6 @@ "react-is": "^16.13.1" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -23102,14 +19037,11 @@ } }, "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "peer": true }, "queue-microtask": { "version": "1.2.3", @@ -23140,40 +19072,30 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", + "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "react-devtools-core": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.4.tgz", - "integrity": "sha512-jbX8Yqyq4YvFEobHyXVlGaH0Cs/+EOdb3PL911bxaR5BnzbB5TE4RFHC1iOgT4vRH3VxIIrVQ7lR9vsiFFCYCA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.0.tgz", + "integrity": "sha512-Rw7FzYOOzcfyUPaAm9P3g0tFdGqGq2LLiAI+wjYcp6CsF3DeeMrRS3HZAho4s273C29G/DJhx0e8BpRE/QZNGg==", "requires": { "shell-quote": "^1.6.1", "ws": "^7" }, "dependencies": { "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "requires": {} } } }, - "react-i18next": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-12.1.1.tgz", - "integrity": "sha512-mFdieOI0LDy84q3JuZU6Aou1DoWW2fhapcTGeBS8+vWSJuViuoCLQAMYSb0QoHhXS8B0WKUOPpx4cffAP7r/aA==", - "requires": { - "@babel/runtime": "^7.14.5", - "html-parse-stringify": "^3.0.1" - } - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -23185,40 +19107,40 @@ "integrity": "sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==" }, "react-native": { - "version": "0.68.5", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.68.5.tgz", - "integrity": "sha512-t3kiQ/gumFV+0r/NRSIGtYxanjY4da0utFqHgkMcRPJVwXFWC0Fr8YiOeRGYO1dp8EfrSsOjtfWic/inqVYlbQ==", + "version": "0.70.7", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.7.tgz", + "integrity": "sha512-MvnJJXiEPuOBbf1VPY5WXIUR/n6QB/DAk5XtBz3bzinpy9YBXiiQkhGIrTpVdVt37JeHOzafhfxAMf+Rs8jpvA==", "requires": { "@jest/create-cache-key-function": "^27.0.1", - "@react-native-community/cli": "^7.0.3", - "@react-native-community/cli-platform-android": "^7.0.1", - "@react-native-community/cli-platform-ios": "^7.0.1", + "@react-native-community/cli": "9.3.2", + "@react-native-community/cli-platform-android": "9.3.1", + "@react-native-community/cli-platform-ios": "9.3.0", "@react-native/assets": "1.0.0", "@react-native/normalize-color": "2.0.0", "@react-native/polyfills": "2.0.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "base64-js": "^1.1.2", - "deprecated-react-native-prop-types": "^2.3.0", "event-target-shim": "^5.0.1", - "hermes-engine": "~0.11.0", "invariant": "^2.2.4", "jsc-android": "^250230.2.1", - "metro-react-native-babel-transformer": "0.67.0", - "metro-runtime": "0.67.0", - "metro-source-map": "0.67.0", + "memoize-one": "^5.0.0", + "metro-react-native-babel-transformer": "0.72.3", + "metro-runtime": "0.72.3", + "metro-source-map": "0.72.3", + "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", - "promise": "^8.2.0", - "react-devtools-core": "^4.23.0", - "react-native-codegen": "^0.0.18", - "react-native-gradle-plugin": "^0.0.6", + "promise": "^8.3.0", + "react-devtools-core": "4.24.0", + "react-native-codegen": "^0.70.6", + "react-native-gradle-plugin": "^0.70.3", "react-refresh": "^0.4.0", - "react-shallow-renderer": "16.14.1", + "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", - "scheduler": "^0.20.2", + "scheduler": "^0.22.0", "stacktrace-parser": "^0.1.3", - "use-subscription": ">=1.0.0 <1.6.0", + "use-sync-external-store": "^1.0.0", "whatwg-fetch": "^3.0.0", "ws": "^6.1.4" } @@ -23229,16 +19151,10 @@ "integrity": "sha512-TE4Kiy7jUyv+hugxDxitzu38sW1NqjCk4uE5IgU2WevLv7sZacaBc6PZKOShNRPGirLl1NWkaG3LDEkdb9Um5g==", "requires": {} }, - "react-native-clean-project": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-native-clean-project/-/react-native-clean-project-4.0.1.tgz", - "integrity": "sha512-B7rXdFC4bfA+Vv7lZ9bKS6cUDgqg04OR5D69sNnhheFBJQ1V04cIfJ1Fu0sbqRsIehqlOcySQRpp8tm7r7PvLQ==", - "dev": true - }, "react-native-codegen": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.0.18.tgz", - "integrity": "sha512-XPI9aVsFy3dvgDZvyGWrFnknNiyb22kg5nHgxa0vjWTH9ENLBgVRZt9A64xHZ8BYihH+gl0p/1JNOCIEUzRPBg==", + "version": "0.70.6", + "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz", + "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==", "requires": { "@babel/parser": "^7.14.0", "flow-parser": "^0.121.0", @@ -23246,23 +19162,6 @@ "nullthrows": "^1.1.1" } }, - "react-native-crypto": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-native-crypto/-/react-native-crypto-2.2.0.tgz", - "integrity": "sha512-eZu9Y8pa8BN9FU2pIex7MLRAi+Cd1Y6bsxfiufKh7sfraAACJvjQTeW7/zcQAT93WMfM+D0OVk+bubvkrbrUkw==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.4", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "3.0.8", - "public-encrypt": "^4.0.0", - "randomfill": "^1.0.3" - } - }, "react-native-exception-handler": { "version": "2.10.10", "resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz", @@ -23279,14 +19178,14 @@ } }, "react-native-gradle-plugin": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.0.6.tgz", - "integrity": "sha512-eIlgtsmDp1jLC24dRn43hB3kEcZVqx6DUQbR0N1ABXGnMEafm9I3V3dUUeD1vh+Dy5WqijSoEwLNUPLgu5zDMg==" + "version": "0.70.3", + "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz", + "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==" }, "react-native-navigation": { - "version": "7.30.3", - "resolved": "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-7.30.3.tgz", - "integrity": "sha512-4XTeq60YxAsp8zeUeIMedUduQ9blUjPlhAgxKCj5ekam5GoHwqq7iKtQr43+rYbOp0+eATGAqdZ8H/+ZXP9EFw==", + "version": "7.32.1", + "resolved": "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-7.32.1.tgz", + "integrity": "sha512-qqpccWh6MqTG0hn/XeggKonSYg+h64kOsYBot/+g2EUC/Usp8TZsKi1B2gzsUrDQy8EmsF9iTBoZMIgjxFG/WQ==", "requires": { "hoist-non-react-statics": "3.x.x", "lodash": "4.17.x", @@ -23303,42 +19202,44 @@ } }, "react-native-pager-view": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.1.2.tgz", - "integrity": "sha512-qs2KSFc+7N7B+UZ6SG2sTvCkppagm5fVyRclv1KFKc7lDtrhXLzN59tXJw575LDP/dRJoXsNwqUAhZJdws6ABQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.1.4.tgz", + "integrity": "sha512-fmTwgGwPxGCBusKAq7gHzm+s1Yp0qh5rKPoQszaCuxrb+76KgK4Qe82jJNPUp2xTZOKSw+FbJU2QahF8ncTl+w==", "requires": {} }, - "react-native-randombytes": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/react-native-randombytes/-/react-native-randombytes-3.6.1.tgz", - "integrity": "sha512-qxkwMbOZ0Hff1V7VqpaWrR6ItkA+oF6bnI79Qp9F3Tk8WBsdKDi6m1mi3dEdFWePoRLrhJ2L03rU0yabst1tVw==", + "react-native-quick-base64": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-native-quick-base64/-/react-native-quick-base64-2.0.5.tgz", + "integrity": "sha512-waRcIlchdLCSzpWYqRNIN5NyE5PxKyedMQ/sTgA/fcEkBzwp3EOwjhsfVuJuBtc1bHL2Mg34pxDVBxyLU3Mu2Q==", "requires": { - "buffer": "^4.9.1", - "sjcl": "^1.0.3" + "base64-js": "^1.5.1" + } + }, + "react-native-quick-crypto": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/react-native-quick-crypto/-/react-native-quick-crypto-0.5.0.tgz", + "integrity": "sha512-NYc8r97UaKOfkHj0iyM8OD+S5U+8mTKheb/BYpu7CNJ0qt1VkwFEaWkJtOUWSRbyd24d0AKrC9+97UkroBs9JA==", + "requires": { + "@craftzdog/react-native-buffer": "^6.0.4", + "@types/node": "^17.0.31", + "crypto-browserify": "^3.12.0", + "events": "^3.3.0", + "react-native-quick-base64": "^2.0.2", + "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0" }, "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" } } }, - "react-native-splash-screen": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/react-native-splash-screen/-/react-native-splash-screen-3.3.0.tgz", - "integrity": "sha512-rGjt6HkoSXxMqH4SQUJ1gnPQlPJV8+J47+4yhgTIan4bVvAwJhEeJH7wWt9hXSdH4+VfwTS0GTaflj1Tw83IhA==", - "requires": {} - }, "react-native-track-player": { - "version": "git+ssh://git@github.com/lyswhut/react-native-track-player.git#5fb0bec8694d3783f32a1e4ed1251c163e9842f7", - "integrity": "sha512-n48QN+6YlCXRyzkBy6h5zal9jBNoTC4ti5r2sbH+9oVcYFR1r9grjKw24B9m/1tL2gdeLj/OuoPD9l5HpUF2ZA==", - "from": "react-native-track-player@git+https://github.com/lyswhut/react-native-track-player.git#5fb0bec8694d3783f32a1e4ed1251c163e9842f7", + "version": "git+ssh://git@github.com/lyswhut/react-native-track-player.git#38027954a5ac6e3d92961745e0a9633fc647f47a", + "integrity": "sha512-WLUJIbfNPTudwEhr8D70U0kwg3sQsivdFHCGjiq9ko44PmxlINFty+0g1/DmFdWZOAKUrq8y3/e6S+Uj7Uv7Bw==", + "from": "react-native-track-player@github:lyswhut/react-native-track-player#38027954a5ac6e3d92961745e0a9633fc647f47a", "requires": {} }, "react-native-vector-icons": { @@ -23350,10 +19251,13 @@ "yargs": "^16.1.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } }, "cliui": { "version": "7.0.4", @@ -23365,14 +19269,19 @@ "wrap-ansi": "^7.0.0" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "ansi-regex": "^5.0.1" + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -23409,87 +19318,34 @@ } } }, - "react-redux": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", - "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", - "requires": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "dependencies": { - "react-is": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.0.0.tgz", - "integrity": "sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw==" - } - } - }, "react-refresh": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==" }, "react-shallow-renderer": { - "version": "16.14.1", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz", - "integrity": "sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg==", + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", "requires": { "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0" - } - }, - "react-test-renderer": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", - "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" } }, "readable-stream": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "integrity": "sha1-OjYN1mwbHX/UcFOJhg7aHQ9hEmw=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readline": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", - "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=" + "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" }, "recast": { "version": "0.20.5", @@ -23509,37 +19365,6 @@ } } }, - "redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "redux-logger": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", - "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", - "dev": true, - "requires": { - "deep-diff": "^0.3.5" - } - }, - "redux-subscriber": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/redux-subscriber/-/redux-subscriber-1.1.0.tgz", - "integrity": "sha1-PKwopnTOwHtungFcp6q7vawVVUM=", - "requires": { - "object-path": "^0.11.3" - } - }, - "redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "requires": {} - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -23562,6 +19387,7 @@ "version": "0.15.0", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "peer": true, "requires": { "@babel/runtime": "^7.8.4" } @@ -23587,10 +19413,11 @@ } }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "peer": true }, "regexpu-core": { "version": "5.2.1", @@ -23625,18 +19452,6 @@ } } }, - "remove-markdown": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/remove-markdown/-/remove-markdown-0.2.2.tgz", - "integrity": "sha1-ZrDO66n7d8qWNrsbAwfOIaMqEqY=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "repeat-element": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", @@ -23645,12 +19460,12 @@ "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "require-main-filename": { "version": "2.0.0", @@ -23660,51 +19475,37 @@ "reselect": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", - "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" + "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==", + "dev": true }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "peer": true }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, @@ -23720,9 +19521,11 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "peer": true, "requires": { "glob": "^7.1.3" } @@ -23736,57 +19539,6 @@ "inherits": "^2.0.1" } }, - "rn-nodeify": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/rn-nodeify/-/rn-nodeify-10.3.0.tgz", - "integrity": "sha512-EZB3M4M5i8yySCWF7AAZ31xU7cpdLuIKMlVxXji9t0aY8Ojy3BAyRt1sTp0OwBgy1ejShmlIu2L4f8mToJ+uvg==", - "dev": true, - "requires": { - "@yarnpkg/lockfile": "^1.0.0", - "deep-equal": "^1.0.0", - "findit": "^2.0.0", - "fs-extra": "^0.22.1", - "minimist": "^1.1.2", - "object.pick": "^1.1.1", - "run-parallel": "^1.1.2", - "semver": "^5.0.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "0.22.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.22.1.tgz", - "integrity": "sha1-X9b4BJ3JdsoZ6yNV1lgXPKvM4FY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -23804,7 +19556,7 @@ "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "requires": { "ret": "~0.1.10" } @@ -23825,168 +19577,12 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", + "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "semver": { @@ -24014,6 +19610,21 @@ "statuses": "2.0.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -24042,7 +19653,7 @@ "serialize-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" + "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==" }, "serve-static": { "version": "1.15.0", @@ -24058,7 +19669,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "set-value": { "version": "2.0.1", @@ -24074,10 +19685,15 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "requires": { "is-extendable": "^0.1.0" } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" } } }, @@ -24104,35 +19720,26 @@ } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "peer": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "peer": true }, "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" }, "side-channel": { "version": "1.0.4", @@ -24146,30 +19753,15 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-plist": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", - "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", - "requires": { - "bplist-creator": "0.1.0", - "bplist-parser": "0.3.1", - "plist": "^3.0.5" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, - "sjcl": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.8.tgz", - "integrity": "sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ==" - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -24183,29 +19775,6 @@ "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } } }, "snapdragon": { @@ -24223,10 +19792,18 @@ "use": "^3.1.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "requires": { "is-descriptor": "^0.1.0" } @@ -24234,15 +19811,76 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "requires": { "is-extendable": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, @@ -24259,36 +19897,10 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, @@ -24303,41 +19915,24 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { "is-buffer": "^1.1.5" } } } }, - "socket.io": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.4.tgz", - "integrity": "sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==", + "socket.io-client": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.0.tgz", + "integrity": "sha512-2XOp18xnGghUICSd5ziUIS4rB0dhr6S8OvAps8y+HhOjFQlqGcf+FIh6fCIsKKZyWFxJeFPrZRNPGsHDTsz1Ug==", "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io": "~6.2.1", - "socket.io-adapter": "~2.4.0", + "engine.io-client": "~6.4.0", "socket.io-parser": "~4.2.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - } } }, - "socket.io-adapter": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", - "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" - }, "socket.io-parser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", @@ -24345,22 +19940,12 @@ "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - } } }, "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" }, "source-map-resolve": { "version": "0.5.3", @@ -24375,9 +19960,9 @@ } }, "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -24395,38 +19980,6 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -24438,29 +19991,12 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "stacktrace-parser": { "version": "0.1.10", @@ -24473,7 +20009,7 @@ "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -24482,94 +20018,107 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" }, "stream-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "requires": { - "inherits": "~2.0.1", - "readable-stream": "^1.0.27-1" + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } }, - "stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" - }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "safe-buffer": "~5.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -24590,57 +20139,53 @@ } }, "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "peer": true }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "dev": true, + "peer": true }, "sudo-prompt": { "version": "9.2.1", @@ -24648,21 +20193,11 @@ "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "has-flag": "^3.0.0" } }, "supports-preserve-symlinks-flag": { @@ -24670,16 +20205,10 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, "temp": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "integrity": "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==", "requires": { "os-tmpdir": "^1.0.0", "rimraf": "~2.2.6" @@ -24688,36 +20217,16 @@ "rimraf": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + "integrity": "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==" } } }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "peer": true }, "throat": { "version": "5.0.0", @@ -24746,6 +20255,14 @@ "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, @@ -24757,12 +20274,12 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "requires": { "kind-of": "^3.0.2" }, @@ -24770,7 +20287,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { "is-buffer": "^1.1.5" } @@ -24801,47 +20318,17 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } - }, "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, + "peer": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", @@ -24850,10 +20337,11 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "peer": true, "requires": { "minimist": "^1.2.0" } @@ -24865,34 +20353,43 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "peer": true, "requires": { "prelude-ls": "^1.2.1" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, "type-fest": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true }, "uglify-es": { "version": "3.3.9", @@ -24960,6 +20457,13 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + } } }, "universalify": { @@ -24970,12 +20474,12 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -24984,7 +20488,7 @@ "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -24994,7 +20498,7 @@ "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "requires": { "isarray": "1.0.0" } @@ -25004,14 +20508,14 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" } } }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -25022,49 +20526,25 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "peer": true, "requires": { "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "use-subscription": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", - "requires": { - "object-assign": "^4.1.1" - } - }, "use-sync-external-store": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.0.0.tgz", - "integrity": "sha512-AFVsxg5GkFg8GDcxnl+Z0lMAz9rE8DGJCc28qnBuQF7lac57B5smLcT37aXpXIIPz75rW4g3eXHPjhHwdGskOw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", "requires": {} }, "utf8": { @@ -25072,147 +20552,67 @@ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - }, - "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "vlq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" }, - "void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "requires": { - "makeerror": "1.0.x" + "makeerror": "1.0.12" } }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "requires": { "defaults": "^1.0.3" } }, "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-fetch": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "peer": true, "requires": { "isexe": "^2.0.0" } @@ -25233,13 +20633,14 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true + "dev": true, + "peer": true }, "wrap-ansi": { "version": "6.2.0", @@ -25251,25 +20652,33 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "ansi-regex": "^5.0.0" + "color-convert": "^2.0.1" } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "2.4.3", @@ -25289,39 +20698,10 @@ "async-limiter": "~1.0.0" } }, - "xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "requires": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xmldoc": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", - "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", - "requires": { - "sax": "^1.2.1" - } + "xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" }, "xtend": { "version": "4.0.2", @@ -25355,6 +20735,46 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } } }, "yargs-parser": { @@ -25364,13 +20784,19 @@ "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } } }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/package.json b/package.json index 1a71bd1..a7478a7 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,24 @@ { "name": "lx-music-mobile", - "version": "0.15.5", - "versionCode": 52, + "version": "1.0.0-beta.1", + "versionCode": 53, + "private": true, "scripts": { "ar": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", "sc": "react-native start --reset-cache", "test": "jest", - "lint": "eslint .", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx", "rd": "react-devtools", "menu": "adb shell input keyevent 82", "bundle-android": "react-native bundle --platform android --dev true --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res", "pack:android:debug": "./gradlew assembleDebug", "pack": "npm run pack:android", - "pack:android": "./gradlew assembleRelease", + "pack:android": "cd android && gradlew.bat assembleRelease", "clear": "react-native clean-project", - "publish": "node publish", - "nodeify": "rn-nodeify --hack --install process,crypto,events,constant,console,stream,url,util", - "postinstall": "npm run nodeify" + "build:theme": "node src/theme/themes/createThemes.js", + "publish": "node publish" }, "engines": { "node": ">= 16", @@ -42,88 +42,41 @@ }, "homepage": "https://github.com/lyswhut/lx-music-mobile#readme", "dependencies": { + "@craftzdog/react-native-buffer": "^6.0.5", "@react-native-async-storage/async-storage": "^1.17.11", "@react-native-clipboard/clipboard": "^1.11.1", "@react-native-community/checkbox": "^0.5.14", - "@react-native-community/slider": "^4.3.3", - "buffer": "^6.0.3", - "console-browserify": "^1.2.0", - "events": "^3.3.0", - "i18next": "^22.1.5", - "js-htmlencode": "^0.3.0", - "lrc-file-parser": "^2.2.8", + "@react-native-community/slider": "^4.4.2", + "iconv-lite": "^0.6.3", + "lrc-file-parser": "^2.3.0", "pako": "^2.1.0", - "process": "^0.11.10", - "prop-types": "^15.8.1", - "react": "17.0.2", - "react-i18next": "^12.1.1", - "react-native": "0.68.5", + "react": "18.1.0", + "react-native": "0.70.7", "react-native-background-timer": "^2.4.1", - "react-native-crypto": "^2.2.0", "react-native-exception-handler": "^2.10.10", "react-native-fs": "^2.20.0", - "react-native-navigation": "^7.30.3", - "react-native-pager-view": "^6.1.2", - "react-native-randombytes": "^3.6.1", - "react-native-splash-screen": "^3.3.0", - "react-native-track-player": "git+https://github.com/lyswhut/react-native-track-player.git#5fb0bec8694d3783f32a1e4ed1251c163e9842f7", + "react-native-navigation": "^7.32.1", + "react-native-pager-view": "^6.1.4", + "react-native-quick-base64": "^2.0.5", + "react-native-quick-crypto": "^0.5.0", + "react-native-track-player": "github:lyswhut/react-native-track-player#38027954a5ac6e3d92961745e0a9633fc647f47a", "react-native-vector-icons": "^9.2.0", - "react-redux": "^8.0.5", - "readable-stream": "1.0.33", - "redux": "^4.2.0", - "redux-subscriber": "^1.1.0", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.7", - "socket.io": "^4.5.4", - "stream-browserify": "^1.0.0", - "url": "~0.10.1", - "util": "~0.10.3" + "socket.io-client": "^4.6.0" }, "devDependencies": { - "@babel/core": "^7.20.5", - "@babel/eslint-parser": "^7.19.1", + "@babel/core": "^7.20.12", "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/runtime": "^7.20.6", - "babel-jest": "^26.6.3", - "babel-plugin-module-resolver": "^4.1.0", - "changelog-parser": "^2.8.1", - "cross-env": "^7.0.3", - "eslint": "^8.29.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-html": "^7.1.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-react": "^7.31.11", + "@babel/runtime": "^7.20.13", + "@tsconfig/react-native": "^2.0.3", + "@types/react": "^18.0.28", + "@types/react-native": "^0.70.11", + "@types/react-native-background-timer": "^2.0.0", + "@types/react-native-vector-icons": "^6.4.13", + "babel-plugin-module-resolver": "^5.0.0", + "eslint-config-standard-with-typescript": "^34.0.0", + "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", - "jest": "^26.6.3", - "metro-react-native-babel-preset": "^0.67.0", - "react-native-clean-project": "^4.0.1", - "react-test-renderer": "17.0.2", - "redux-logger": "^3.0.6", - "rn-nodeify": "^10.3.0" - }, - "jest": { - "preset": "react-native" - }, - "react-native": { - "console": "console-browserify", - "crypto": "react-native-crypto", - "_stream_transform": "readable-stream/transform", - "_stream_readable": "readable-stream/readable", - "_stream_writable": "readable-stream/writable", - "_stream_duplex": "readable-stream/duplex", - "_stream_passthrough": "readable-stream/passthrough", - "stream": "stream-browserify" - }, - "browser": { - "console": "console-browserify", - "crypto": "react-native-crypto", - "_stream_transform": "readable-stream/transform", - "_stream_readable": "readable-stream/readable", - "_stream_writable": "readable-stream/writable", - "_stream_duplex": "readable-stream/duplex", - "_stream_passthrough": "readable-stream/passthrough", - "stream": "stream-browserify" + "metro-react-native-babel-preset": "0.72.3", + "typescript": "^4.9.5" } } diff --git a/publish/changeLog.md b/publish/changeLog.md index abe8838..7cad2be 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,4 +1,29 @@ -### 修复 +### 不兼容性变更说明 -- 修复导入PC端v2列表文件歌曲信息转换丢失的问题 -- 修复上面问题导致的tx源评论加载失败的问题 +- 同步功能,该功能不支持与移动端v2.0.0之前版本的使用 + +### 新增 + +- 新增聚合搜索,注:由于这个方式需要对各个源的结果进行排序,所以需要以“歌曲名 歌手”的顺序输入(例如:突然的自我 伍佰),否则排序后的结果可能不是你想要的 +- 新增歌单搜索功能 +- 新增热门搜索显示,默认关闭,需要到设置-搜索设置开启 +- 新增搜索历史记录,默认关闭,需要到设置-搜索设置开启 +- 启动软件时自动回到上次的界面,例如上次退出软件时在我的收藏,下次启动软件时会自动进入我的收藏 +- 新增PC端所拥有的内置皮肤 +- 新增界面字体大小设置 +- 添加kg源评论图片展示(感谢@helloplhm-qwq) + +### 优化(界面/交互/功能) + +- 调整了首页的界面布局 +- 优化大屏幕下的字体大小及界面布局显示 + +### 优化(程序) + +- 优化程序启动性能,优化与程序交互的流畅度 +- 重构整个程序,重新梳理了程序逻辑,使其更容易扩展及维护,将大部分代码从JavaScript迁移到TypeScript +- 重写配置管理、列表管理功能,使其与PC端同步,更容易复用PC端的代码 + +### 其他 + +- 升级React Native到v0.70.7 diff --git a/shim.js b/shim.js index 9d79f38..7835120 100644 --- a/shim.js +++ b/shim.js @@ -1,26 +1 @@ -if (typeof __dirname === 'undefined') global.__dirname = '/' -if (typeof __filename === 'undefined') global.__filename = '' -if (typeof process === 'undefined') { - global.process = require('process') -} else { - const bProcess = require('process') - for (let p in bProcess) { - if (!(p in process)) { - process[p] = bProcess[p] - } - } -} - -process.browser = false -if (typeof Buffer === 'undefined') global.Buffer = require('buffer').Buffer - -// global.location = global.location || { port: 80 } -const isDev = typeof __DEV__ === 'boolean' && __DEV__ -process.env.NODE_ENV = isDev ? 'development' : 'production' -if (typeof localStorage !== 'undefined') { - localStorage.debug = isDev ? '*' : '' -} - -// If using the crypto shim, uncomment the following line to ensure -// crypto is loaded first, so it can populate global.crypto -require('crypto') +global.Buffer = require('buffer').Buffer diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..149c3ca --- /dev/null +++ b/src/app.ts @@ -0,0 +1,45 @@ +import '@/utils/errorHandle' +// import { init as initLog, log } from '@/utils/log' +import '@/config/globalData' +import { init as initNavigation, navigations } from '@/navigation' +import { getFontSize } from '@/utils/data' +import { Alert } from 'react-native' +import { exitApp } from './utils/nativeModules/utils' + +console.log('starting app...') + +initNavigation(async() => { + global.lx.fontSize = await getFontSize() + const { default: init } = await import('@/core/init') + let handlePushedHomeScreen: () => void + try { + handlePushedHomeScreen = await init() + } catch (err: any) { + Alert.alert('初始化失败 (Init Failed)', err.stack ?? err.message, [ + { + text: 'Exit', + onPress() { + exitApp() + }, + }, + ], { + cancelable: false, + }) + return + } + navigations.pushHomeScreen().then(() => { + handlePushedHomeScreen() + }).catch((err: any) => { + Alert.alert('Error', err.message, [ + { + text: 'Exit', + onPress() { + exitApp() + }, + }, + ], { + cancelable: false, + }) + }) +}) + diff --git a/src/components/ListItem/index.js b/src/components/ListItem/index.js deleted file mode 100644 index 87d3dee..0000000 --- a/src/components/ListItem/index.js +++ /dev/null @@ -1,71 +0,0 @@ -import React from 'react' -import { View, Text, StyleSheet, TouchableOpacity } from 'react-native' -import PropTypes from 'prop-types' -import { BorderWidths } from '@/theme' -import { useGetter } from '@/store' - -const ListItem = ({ data, onPress, badge }) => { - const theme = useGetter('common', 'theme') - return ( - - - - {data.title} - {!!data.badge && {data.badge}} - - {!!data.desc && {data.desc}} - - {!!data.right && {data.right}} - - ) -} - -// class ListItem extends Component { -// state = { - -// } - -// static propTypes = { -// data: PropTypes.object.isRequired, -// onPress: PropTypes.func, -// } - -// render() { -// const { data, onPress, badge } = this.props - -// } -// } - -const styles = StyleSheet.create({ - container: { - width: '100%', - flexDirection: 'row', - flexWrap: 'nowrap', - paddingTop: 10, - paddingBottom: 10, - paddingLeft: 10, - paddingRight: 10, - }, - left: { - flex: 1, - }, - title: { - fontSize: 16, - }, - desc: { - color: '#888', - }, - badge: { - - }, - right: { - flexGrow: 0, - flexShrink: 0, - flexBasis: 'auto', - justifyContent: 'center', - }, - -}) - -export default ListItem - diff --git a/src/components/MusicAddModal.js b/src/components/MusicAddModal.js deleted file mode 100644 index 4cf8c1b..0000000 --- a/src/components/MusicAddModal.js +++ /dev/null @@ -1,201 +0,0 @@ -import React, { useCallback, useMemo, memo, useState, useRef, useEffect } from 'react' -import { View, StyleSheet, Text, ScrollView, TouchableOpacity } from 'react-native' -import Dialog from '@/components/common/Dialog' -import Button from '@/components/common/Button' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import { useDimensions } from '@/utils/hooks' -import { BorderWidths } from '@/theme' -import Input from '@/components/common/Input' -import { toast } from '@/utils/tools' - -const ListItem = ({ list, onPress, musicInfo, width }) => { - const theme = useGetter('common', 'theme') - const isExists = useMemo(() => { - return list.list.some(s => s.songmid == musicInfo.songmid) - }, [list, musicInfo]) - - return ( - - - - ) -} - -const Title = ({ musicInfo, isMove }) => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - return ( - musicInfo - ? {t(isMove ? 'list_add_title_first_move' : 'list_add_title_first_add')} {musicInfo.name} {t('list_add_title_last')} - : null - ) -} - -const CreateUserList = ({ isEdit, hideEdit }) => { - const [text, setText] = useState('') - const inputRef = useRef() - const { t } = useTranslation() - const theme = useGetter('common', 'theme') - const createUserList = useDispatch('list', 'createUserList') - - useEffect(() => { - if (isEdit) { - setText('') - global.requestAnimationFrame(() => { - inputRef.current.focus() - }) - } - }, [isEdit]) - - const handleSubmitEditing = () => { - hideEdit() - const name = text.trim() - if (!name.length) return - createUserList({ name }) - } - - return isEdit - ? ( - - - - ) - : null -} - -export default memo(({ visible, hideModal, musicInfo, listId, isMove = false }) => { - const allList = useGetter('list', 'allList') - const addMusicToList = useDispatch('list', 'listAdd') - const moveMusicToList = useDispatch('list', 'listMove') - const { window } = useDimensions() - const theme = useGetter('common', 'theme') - const [isEdit, setIsEdit] = useState(false) - const { t } = useTranslation() - - const itemWidth = useMemo(() => { - let w = window.width * 0.9 - 20 - let n = 1 - while (true) { - if (w / n < 100 + n * 30 || n > 9) return parseInt(w / n) - n++ - } - }, [window]) - - const handleSelect = useCallback((list, isExists) => { - if (isMove) { - moveMusicToList({ - fromId: listId, - toId: list.id, - musicInfo, - }) - toast(t('list_edit_action_tip_move_success')) - hideModal() - } else { - if (isExists) { - toast(t('list_edit_action_tip_exist')) - } else { - addMusicToList({ - musicInfo, - id: list.id, - }) - toast(t('list_edit_action_tip_add_success')) - hideModal() - } - } - }, [addMusicToList, hideModal, isMove, listId, moveMusicToList, musicInfo, t]) - - const hideEdit = useCallback(() => { - setIsEdit(false) - }, []) - - useEffect(() => { - if (!visible) { - hideEdit() - } - }, [hideEdit, visible]) - - return ( - - - <View style={{ flexShrink: 1 }} onStartShouldSetResponder={() => true}> - <ScrollView style={{ flexGrow: 0 }}> - <View style={{ ...styles.list }}> - { allList.map(list => <ListItem key={list.id} list={list} musicInfo={musicInfo} onPress={handleSelect} width={itemWidth} />) } - <View style={{ ...styles.listItem, width: itemWidth }}> - <TouchableOpacity - style={{ ...styles.button, borderColor: theme.secondary20, borderStyle: 'dashed' }} - onPress={() => setIsEdit(true)}> - <Text numberOfLines={1} style={{ fontSize: 12, color: theme.secondary }}>{t('list_create')}</Text> - </TouchableOpacity> - { - isEdit - ? <CreateUserList isEdit={isEdit} hideEdit={hideEdit} /> - : null - } - </View> - </View> - </ScrollView> - </View> - </Dialog> - ) -}) - -const styles = StyleSheet.create({ - title: { - textAlign: 'center', - padding: 15, - }, - list: { - paddingLeft: 15, - paddingRight: 5, - paddingBottom: 5, - flexDirection: 'row', - flexWrap: 'wrap', - // backgroundColor: 'rgba(0,0,0,0.2)' - }, - listItem: { - // width: '50%', - paddingRight: 10, - }, - button: { - paddingTop: 8, - paddingBottom: 8, - paddingLeft: 10, - paddingRight: 10, - marginRight: 10, - marginBottom: 10, - borderRadius: 4, - width: '100%', - alignItems: 'center', - borderWidth: BorderWidths.normal2, - }, - imputContainer: { - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - paddingBottom: 10, - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - input: { - flex: 1, - fontSize: 12, - borderRadius: 4, - textAlign: 'center', - }, -}) diff --git a/src/components/MusicAddModal/CreateUserList.tsx b/src/components/MusicAddModal/CreateUserList.tsx new file mode 100644 index 0000000..d0761a1 --- /dev/null +++ b/src/components/MusicAddModal/CreateUserList.tsx @@ -0,0 +1,67 @@ +import React, { useState, useRef, useEffect } from 'react' +import { View } from 'react-native' +import Input, { InputType } from '@/components/common/Input' +import { createStyle } from '@/utils/tools' +import { useI18n } from '@/lang' +import { createUserList } from '@/core/list' +import listState from '@/store/list/state' + +export default ({ isEdit, onHide }: { + isEdit: boolean + onHide: () => void +}) => { + const [text, setText] = useState('') + const inputRef = useRef<InputType>(null) + const t = useI18n() + + useEffect(() => { + if (isEdit) { + setText('') + requestAnimationFrame(() => { + inputRef.current?.focus() + }) + } + }, [isEdit]) + + const handleSubmitEditing = () => { + onHide() + const name = text.trim() + if (!name.length) return + void createUserList(listState.userList.length, [{ id: `userlist_${Date.now()}`, name, locationUpdateTime: null }]) + } + + return isEdit + ? ( + <View style={styles.imputContainer}> + <Input + placeholder={t('list_create_input_placeholder')} + value={text} + onChangeText={setText} + ref={inputRef} + onBlur={handleSubmitEditing} + onSubmitEditing={handleSubmitEditing} + style={styles.input} + /> + </View> + ) + : null +} + +const styles = createStyle({ + imputContainer: { + position: 'absolute', + top: 0, + left: 0, + width: '100%', + height: '100%', + paddingBottom: 10, + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + input: { + flex: 1, + fontSize: 14, + borderRadius: 4, + textAlign: 'center', + height: '100%', + }, +}) diff --git a/src/components/MusicAddModal/List.tsx b/src/components/MusicAddModal/List.tsx new file mode 100644 index 0000000..cc13e60 --- /dev/null +++ b/src/components/MusicAddModal/List.tsx @@ -0,0 +1,74 @@ +import React, { useMemo, useState } from 'react' +import { ScrollView, TouchableOpacity, View } from 'react-native' + +import Text from '@/components/common/Text' +import { useMyList } from '@/store/list/hook' +import ListItem, { styles as listStyles } from './ListItem' +import CreateUserList from './CreateUserList' +import { useDimensions } from '@/utils/hooks' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import { scaleSizeW } from '@/utils/pixelRatio' + +const styles = createStyle({ + list: { + paddingLeft: 15, + paddingRight: 2, + paddingBottom: 5, + flexDirection: 'row', + flexWrap: 'wrap', + // backgroundColor: 'rgba(0,0,0,0.2)' + // justifyContent: 'center', + }, +}) +const MIN_WIDTH = scaleSizeW(150) +const PADDING = styles.list.paddingLeft + styles.list.paddingRight + + +const EditListItem = ({ itemWidth }: { + itemWidth: number +}) => { + const [isEdit, setEdit] = useState(false) + const theme = useTheme() + const t = useI18n() + + return ( + <View style={{ ...listStyles.listItem, width: itemWidth }}> + <TouchableOpacity + style={{ ...listStyles.button, borderColor: theme['c-primary-light-200-alpha-700'], borderStyle: 'dashed' }} + onPress={() => { setEdit(true) }} + > + <Text style={{ opacity: isEdit ? 0 : 1 }} numberOfLines={1} size={14} color={theme['c-button-font']}>{t('list_create')}</Text> + </TouchableOpacity> + { + isEdit + ? <CreateUserList isEdit={isEdit} onHide={() => { setEdit(false) }} /> + : null + } + </View> + ) +} + +export default ({ musicInfo, onPress }: { + musicInfo: LX.Music.MusicInfo + onPress: (listInfo: LX.List.MyListInfo) => void +}) => { + const { window } = useDimensions() + const allList = useMyList() + const itemWidth = useMemo(() => { + let w = Math.floor(window.width * 0.9 - PADDING) + let n = Math.floor(w / MIN_WIDTH) + if (n > 10) n = 10 + return Math.floor((w - 1) / n) + }, [window]) + + return ( + <ScrollView style={{ flexGrow: 0 }}> + <View style={styles.list}> + { allList.map(info => <ListItem key={info.id} listInfo={info} musicInfo={musicInfo} onPress={onPress} width={itemWidth} />) } + <EditListItem itemWidth={itemWidth} /> + </View> + </ScrollView> + ) +} diff --git a/src/components/MusicAddModal/ListItem.tsx b/src/components/MusicAddModal/ListItem.tsx new file mode 100644 index 0000000..98f7177 --- /dev/null +++ b/src/components/MusicAddModal/ListItem.tsx @@ -0,0 +1,57 @@ +import React from 'react' +import { View } from 'react-native' +import Button from '@/components/common/Button' +import Text from '@/components/common/Text' +import { BorderWidths } from '@/theme' +import { createStyle, toast } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useMusicExistsList } from '@/store/list/hook' + +export default ({ listInfo, onPress, musicInfo, width }: { + listInfo: LX.List.MyListInfo + onPress: (listInfo: LX.List.MyListInfo) => void + musicInfo: LX.Music.MusicInfo + width: number +}) => { + const theme = useTheme() + const isExists = useMusicExistsList(listInfo, musicInfo) + + const handlePress = () => { + if (isExists) { + toast(global.i18n.t('list_add_tip_exists')) + return + } + onPress(listInfo) + } + + return ( + <View style={{ ...styles.listItem, width }}> + <Button + style={{ ...styles.button, backgroundColor: theme['c-button-background'], borderColor: theme['c-primary-light-400-alpha-300'], opacity: isExists ? 0.4 : 1 }} + onPress={handlePress} + > + <Text numberOfLines={1} size={14} color={theme['c-button-font']}>{listInfo.name}</Text> + </Button> + </View> + ) +} + +export const styles = createStyle({ + listItem: { + // width: '50%', + paddingRight: 13, + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + button: { + height: 34, + paddingLeft: 10, + paddingRight: 10, + marginRight: 10, + marginBottom: 10, + borderRadius: 4, + width: '100%', + alignItems: 'center', + justifyContent: 'center', + borderWidth: BorderWidths.normal2, + }, +}) diff --git a/src/components/MusicAddModal/MusicAddModal.tsx b/src/components/MusicAddModal/MusicAddModal.tsx new file mode 100644 index 0000000..a2b8e78 --- /dev/null +++ b/src/components/MusicAddModal/MusicAddModal.tsx @@ -0,0 +1,86 @@ +import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' +import Dialog, { type DialogType } from '@/components/common/Dialog' +import { toast } from '@/utils/tools' +import Title from './Title' +import List from './List' +import { useI18n } from '@/lang' +import { addListMusics, moveListMusics } from '@/core/list' +import settingState from '@/store/setting/state' + +export interface SelectInfo { + musicInfo: LX.Music.MusicInfo | null + listId: string + isMove: boolean + // single: boolean +} +const initSelectInfo = {} + +// export interface MusicAddModalProps { +// onRename: (listInfo: LX.List.UserListInfo) => void +// onImport: (listInfo: LX.List.MyListInfo, index: number) => void +// onExport: (listInfo: LX.List.MyListInfo, index: number) => void +// onSync: (listInfo: LX.List.UserListInfo) => void +// onRemove: (listInfo: LX.List.UserListInfo) => void +// } +export interface MusicAddModalType { + show: (info: SelectInfo) => void +} + +export default forwardRef<MusicAddModalType, {}>((props, ref) => { + const t = useI18n() + const dialogRef = useRef<DialogType>(null) + const [selectInfo, setSelectInfo] = useState<SelectInfo>(initSelectInfo as SelectInfo) + + useImperativeHandle(ref, () => ({ + show(selectInfo) { + setSelectInfo(selectInfo) + + requestAnimationFrame(() => { + dialogRef.current?.setVisible(true) + }) + }, + })) + + const handleHide = () => { + requestAnimationFrame(() => { + setSelectInfo({ ...selectInfo, musicInfo: null }) + }) + } + + const handleSelect = (listInfo: LX.List.MyListInfo) => { + dialogRef.current?.setVisible(false) + if (selectInfo.isMove) { + void moveListMusics(selectInfo.listId, listInfo.id, + [selectInfo.musicInfo as LX.Music.MusicInfo], + settingState.setting['list.addMusicLocationType'], + ).then(() => { + toast(t('list_edit_action_tip_move_success')) + }).catch(() => { + toast(t('list_edit_action_tip_move_failed')) + }) + } else { + void addListMusics(listInfo.id, + [selectInfo.musicInfo as LX.Music.MusicInfo], + settingState.setting['list.addMusicLocationType'], + ).then(() => { + toast(t('list_edit_action_tip_add_success')) + }).catch(() => { + toast(t('list_edit_action_tip_add_failed')) + }) + } + } + + return ( + <Dialog ref={dialogRef} onHide={handleHide}> + { + selectInfo.musicInfo + ? (<> + <Title musicInfo={selectInfo.musicInfo} isMove={selectInfo.isMove} /> + <List musicInfo={selectInfo.musicInfo} onPress={handleSelect} /> + </>) + : null + } + </Dialog> + ) +}) + diff --git a/src/components/MusicAddModal/Title.tsx b/src/components/MusicAddModal/Title.tsx new file mode 100644 index 0000000..eeefd72 --- /dev/null +++ b/src/components/MusicAddModal/Title.tsx @@ -0,0 +1,26 @@ +import React from 'react' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' + +export default ({ musicInfo, isMove }: { + musicInfo: LX.Music.MusicInfo + isMove: boolean +}) => { + const theme = useTheme() + const t = useI18n() + return ( + <Text style={styles.title}> + {t(isMove ? 'list_add_title_first_move' : 'list_add_title_first_add')} <Text color={theme['c-primary-font']}>{musicInfo.name}</Text> {t('list_add_title_last')} + </Text> + ) +} + +const styles = createStyle({ + title: { + textAlign: 'center', + paddingTop: 15, + paddingBottom: 15, + }, +}) diff --git a/src/components/MusicAddModal/index.tsx b/src/components/MusicAddModal/index.tsx new file mode 100644 index 0000000..73bf045 --- /dev/null +++ b/src/components/MusicAddModal/index.tsx @@ -0,0 +1,29 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState } from 'react' +import Modal, { type MusicAddModalType as ModalType, type SelectInfo } from './MusicAddModal' + +export interface MusicAddModalType { + show: (info: SelectInfo) => void +} + +export default forwardRef<MusicAddModalType, {}>((props, ref) => { + const musicAddModalRef = useRef<ModalType>(null) + const [visible, setVisible] = useState(false) + + useImperativeHandle(ref, () => ({ + show(listInfo) { + if (visible) musicAddModalRef.current?.show(listInfo) + else { + setVisible(true) + requestAnimationFrame(() => { + musicAddModalRef.current?.show(listInfo) + }) + } + }, + })) + + return ( + visible + ? <Modal ref={musicAddModalRef} /> + : null + ) +}) diff --git a/src/components/MusicMultiAddModal.js b/src/components/MusicMultiAddModal.js deleted file mode 100644 index 7fafdbc..0000000 --- a/src/components/MusicMultiAddModal.js +++ /dev/null @@ -1,199 +0,0 @@ -import React, { useCallback, useMemo, memo, useState, useRef, useEffect } from 'react' -import { View, StyleSheet, Text, ScrollView, TouchableOpacity } from 'react-native' -import Dialog from '@/components/common/Dialog' -import Button from '@/components/common/Button' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import { useDimensions } from '@/utils/hooks' -import { BorderWidths } from '@/theme' -import Input from '@/components/common/Input' -import { toast } from '@/utils/tools' - - -const ListItem = ({ list, onPress, width }) => { - const theme = useGetter('common', 'theme') - - return ( - <View style={{ ...styles.listItem, width: width }}> - <Button - style={{ ...styles.button, backgroundColor: theme.secondary45, borderColor: theme.secondary45 }} - onPress={() => { onPress(list) }} - > - <Text numberOfLines={1} style={{ fontSize: 12, color: theme.secondary }}>{list.name}</Text> - </Button> - </View> - ) -} - -const Title = ({ list, isMove }) => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - return ( - list.length - ? <Text style={{ ...styles.title, color: theme.normal }}>{t(isMove ? 'list_multi_add_title_first_move' : 'list_multi_add_title_first_add')} <Text style={{ color: theme.secondary }} >{list.length}</Text> {t('list_multi_add_title_last')}</Text> - : null - ) -} - -const CreateUserList = ({ isEdit, hideEdit }) => { - const [text, setText] = useState('') - const inputRef = useRef() - const { t } = useTranslation() - const theme = useGetter('common', 'theme') - const createUserList = useDispatch('list', 'createUserList') - - useEffect(() => { - if (isEdit) { - setText('') - global.requestAnimationFrame(() => { - inputRef.current.focus() - }) - } - }, [isEdit]) - - const handleSubmitEditing = () => { - hideEdit() - const name = text.trim() - if (!name.length) return - createUserList({ name }) - } - - return isEdit - ? ( - <View style={styles.imputContainer}> - <Input - placeholder={t('list_create_input_placeholder')} - value={text} - onChangeText={setText} - ref={inputRef} - onBlur={handleSubmitEditing} - onSubmitEditing={handleSubmitEditing} - style={{ ...styles.input, backgroundColor: theme.secondary45 }} - /> - </View> - ) - : null -} - -export default memo(({ visible, hideModal, list, onAdd, excludeList = [], listId, isMove = false }) => { - const allList = useGetter('list', 'allList') - const addMultiMusicToList = useDispatch('list', 'listAddMultiple') - const moveMultiMusicToList = useDispatch('list', 'listMoveMultiple') - const { window } = useDimensions() - const theme = useGetter('common', 'theme') - const [isEdit, setIsEdit] = useState(false) - const { t } = useTranslation() - - const itemWidth = useMemo(() => { - let w = window.width * 0.9 - 20 - let n = 1 - while (true) { - if (w / n < 100 + n * 30 || n > 9) return parseInt(w / n) - n++ - } - }, [window]) - - const handleSelect = useCallback(({ id }) => { - if (isMove) { - moveMultiMusicToList({ - fromId: listId, - toId: id, - list, - }) - toast(t('list_edit_action_tip_move_success')) - } else { - addMultiMusicToList({ - list, - id, - }) - toast(t('list_edit_action_tip_add_success')) - } - hideModal() - onAdd() - }, [isMove, hideModal, onAdd, moveMultiMusicToList, listId, list, t, addMultiMusicToList]) - - const filteredList = useMemo(() => { - return allList.filter(({ id }) => !excludeList.includes(id)) - }, [allList, excludeList]) - - const hideEdit = useCallback(() => { - setIsEdit(false) - }, []) - - useEffect(() => { - if (!visible) { - hideEdit() - } - }, [hideEdit, visible]) - - return ( - <Dialog visible={visible} hideDialog={hideModal}> - <Title list={list} isMove={isMove} /> - <View style={{ flexShrink: 1 }} onStartShouldSetResponder={() => true}> - <ScrollView style={{ flexGrow: 0 }}> - <View style={{ ...styles.list }}> - { filteredList.map(list => <ListItem key={list.id} list={list} onPress={handleSelect} width={itemWidth} />) } - <View style={{ ...styles.listItem, width: itemWidth }}> - <TouchableOpacity - style={{ ...styles.button, borderColor: theme.secondary20, borderStyle: 'dashed' }} - onPress={() => setIsEdit(true)}> - <Text numberOfLines={1} style={{ fontSize: 12, color: theme.secondary }}>{t('list_create')}</Text> - </TouchableOpacity> - { - isEdit - ? <CreateUserList isEdit={isEdit} hideEdit={hideEdit} /> - : null - } - </View> - </View> - </ScrollView> - </View> - </Dialog> - ) -}) - -const styles = StyleSheet.create({ - title: { - textAlign: 'center', - padding: 15, - }, - list: { - paddingLeft: 15, - paddingRight: 5, - paddingBottom: 5, - flexDirection: 'row', - flexWrap: 'wrap', - // backgroundColor: 'rgba(0,0,0,0.2)' - }, - listItem: { - // width: '50%', - paddingRight: 10, - }, - button: { - paddingTop: 8, - paddingBottom: 8, - paddingLeft: 10, - paddingRight: 10, - marginRight: 10, - marginBottom: 10, - borderRadius: 4, - width: '100%', - alignItems: 'center', - borderWidth: BorderWidths.normal2, - }, - imputContainer: { - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - paddingBottom: 10, - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - input: { - flex: 1, - fontSize: 12, - borderRadius: 4, - textAlign: 'center', - }, -}) diff --git a/src/components/MusicMultiAddModal/List.tsx b/src/components/MusicMultiAddModal/List.tsx new file mode 100644 index 0000000..559b39d --- /dev/null +++ b/src/components/MusicMultiAddModal/List.tsx @@ -0,0 +1,72 @@ +import React, { useMemo, useState } from 'react' +import { ScrollView, TouchableOpacity, View } from 'react-native' + +import Text from '@/components/common/Text' +import { useMyList } from '@/store/list/hook' +import ListItem, { styles as listStyles } from './ListItem' +import CreateUserList from '../MusicAddModal/CreateUserList' +import { useDimensions } from '@/utils/hooks' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import { scaleSizeW } from '@/utils/pixelRatio' + +const styles = createStyle({ + list: { + paddingLeft: 15, + paddingRight: 2, + paddingBottom: 5, + flexDirection: 'row', + flexWrap: 'wrap', + // backgroundColor: 'rgba(0,0,0,0.2)' + }, +}) +const MIN_WIDTH = scaleSizeW(140) +const PADDING = styles.list.paddingLeft + styles.list.paddingRight + +const EditListItem = ({ itemWidth }: { + itemWidth: number +}) => { + const [isEdit, setEdit] = useState(false) + const theme = useTheme() + const t = useI18n() + + return ( + <View style={{ ...listStyles.listItem, width: itemWidth }}> + <TouchableOpacity + style={{ ...listStyles.button, borderColor: theme['c-primary-light-200-alpha-700'], borderStyle: 'dashed' }} + onPress={() => { setEdit(true) }} + > + <Text style={{ opacity: isEdit ? 0 : 1 }} numberOfLines={1} size={14} color={theme['c-button-font']}>{t('list_create')}</Text> + </TouchableOpacity> + { + isEdit + ? <CreateUserList isEdit={isEdit} onHide={() => { setEdit(false) }} /> + : null + } + </View> + ) +} + +export default ({ listId, onPress }: { + listId: string + onPress: (listInfo: LX.List.MyListInfo) => void +}) => { + const { window } = useDimensions() + const allList = useMyList().filter(l => l.id != listId) + const itemWidth = useMemo(() => { + let w = Math.floor(window.width * 0.9 - PADDING) + let n = Math.floor(w / MIN_WIDTH) + if (n > 10) n = 10 + return Math.floor((w - 1) / n) + }, [window]) + + return ( + <ScrollView style={{ flexGrow: 0 }}> + <View style={{ ...styles.list }}> + { allList.map(info => <ListItem key={info.id} listInfo={info} onPress={onPress} width={itemWidth} />) } + <EditListItem itemWidth={itemWidth} /> + </View> + </ScrollView> + ) +} diff --git a/src/components/MusicMultiAddModal/ListItem.tsx b/src/components/MusicMultiAddModal/ListItem.tsx new file mode 100644 index 0000000..f85f525 --- /dev/null +++ b/src/components/MusicMultiAddModal/ListItem.tsx @@ -0,0 +1,49 @@ +import React from 'react' +import { View } from 'react-native' +import Button from '@/components/common/Button' +import Text from '@/components/common/Text' +import { BorderWidths } from '@/theme' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' + +export default ({ listInfo, onPress, width }: { + listInfo: LX.List.MyListInfo + onPress: (listInfo: LX.List.MyListInfo) => void + width: number +}) => { + const theme = useTheme() + + const handlePress = () => { + onPress(listInfo) + } + + return ( + <View style={{ ...styles.listItem, width }}> + <Button + style={{ ...styles.button, backgroundColor: theme['c-button-background'], borderColor: theme['c-primary-light-200-alpha-700'] }} + onPress={handlePress} + > + <Text numberOfLines={1} size={14} color={theme['c-button-font']}>{listInfo.name}</Text> + </Button> + </View> + ) +} + +export const styles = createStyle({ + listItem: { + // width: '50%', + paddingRight: 13, + }, + button: { + height: 34, + paddingLeft: 10, + paddingRight: 10, + marginRight: 10, + marginBottom: 10, + borderRadius: 4, + width: '100%', + alignItems: 'center', + justifyContent: 'center', + borderWidth: BorderWidths.normal2, + }, +}) diff --git a/src/components/MusicMultiAddModal/MusicMultiAddModal.tsx b/src/components/MusicMultiAddModal/MusicMultiAddModal.tsx new file mode 100644 index 0000000..75cbaa5 --- /dev/null +++ b/src/components/MusicMultiAddModal/MusicMultiAddModal.tsx @@ -0,0 +1,86 @@ +import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' +import Dialog, { DialogType } from '@/components/common/Dialog' +import { toast } from '@/utils/tools' +import Title from './Title' +import List from './List' +import { useI18n } from '@/lang' +import { addListMusics, moveListMusics } from '@/core/list' +import settingState from '@/store/setting/state' + +export interface SelectInfo { + selectedList: LX.Music.MusicInfo[] + listId: string + isMove: boolean + // single: boolean +} +const initSelectInfo = { selectedList: [], listId: '', isMove: false } + +// export interface MusicMultiAddModalProps { +// onRename: (listInfo: LX.List.UserListInfo) => void +// onImport: (listInfo: LX.List.MyListInfo, index: number) => void +// onExport: (listInfo: LX.List.MyListInfo, index: number) => void +// onSync: (listInfo: LX.List.UserListInfo) => void +// onRemove: (listInfo: LX.List.UserListInfo) => void +// } +export interface MusicMultiAddModalType { + show: (info: SelectInfo) => void +} + +export default forwardRef<MusicMultiAddModalType, {}>((props, ref) => { + const t = useI18n() + const dialogRef = useRef<DialogType>(null) + const [selectInfo, setSelectInfo] = useState<SelectInfo>(initSelectInfo) + + useImperativeHandle(ref, () => ({ + show(selectInfo) { + setSelectInfo(selectInfo) + + requestAnimationFrame(() => { + dialogRef.current?.setVisible(true) + }) + }, + })) + + const handleHide = () => { + requestAnimationFrame(() => { + setSelectInfo({ ...selectInfo, selectedList: [] }) + }) + } + + const handleSelect = (listInfo: LX.List.MyListInfo) => { + dialogRef.current?.setVisible(false) + if (selectInfo.isMove) { + void moveListMusics(selectInfo.listId, listInfo.id, + [...selectInfo.selectedList], + settingState.setting['list.addMusicLocationType'], + ).then(() => { + toast(t('list_edit_action_tip_move_success')) + }).catch(() => { + toast(t('list_edit_action_tip_move_failed')) + }) + } else { + void addListMusics(listInfo.id, + [...selectInfo.selectedList], + settingState.setting['list.addMusicLocationType'], + ).then(() => { + toast(t('list_edit_action_tip_add_success')) + }).catch(() => { + toast(t('list_edit_action_tip_add_failed')) + }) + } + } + + return ( + <Dialog ref={dialogRef} onHide={handleHide}> + { + selectInfo.selectedList.length + ? (<> + <Title selectedList={selectInfo.selectedList} isMove={selectInfo.isMove} /> + <List listId={selectInfo.listId} onPress={handleSelect} /> + </>) + : null + } + </Dialog> + ) +}) + diff --git a/src/components/MusicMultiAddModal/Title.tsx b/src/components/MusicMultiAddModal/Title.tsx new file mode 100644 index 0000000..0ae7a74 --- /dev/null +++ b/src/components/MusicMultiAddModal/Title.tsx @@ -0,0 +1,26 @@ +import React from 'react' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' + +export default ({ selectedList, isMove }: { + selectedList: LX.Music.MusicInfo[] + isMove: boolean +}) => { + const theme = useTheme() + const t = useI18n() + return ( + <Text style={styles.title} size={16}> + {t(isMove ? 'list_multi_add_title_first_move' : 'list_multi_add_title_first_add')} <Text color={theme['c-primary-font']} size={16}>{selectedList.length}</Text> {t('list_multi_add_title_last')} + </Text> + ) +} + +const styles = createStyle({ + title: { + textAlign: 'center', + paddingTop: 15, + paddingBottom: 15, + }, +}) diff --git a/src/components/MusicMultiAddModal/index.tsx b/src/components/MusicMultiAddModal/index.tsx new file mode 100644 index 0000000..625d3ad --- /dev/null +++ b/src/components/MusicMultiAddModal/index.tsx @@ -0,0 +1,29 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState } from 'react' +import Modal, { MusicMultiAddModalType as ModalType, SelectInfo } from './MusicMultiAddModal' + +export interface MusicMultiAddModalType { + show: (info: SelectInfo) => void +} + +export default forwardRef<MusicMultiAddModalType, {}>((props, ref) => { + const musicMultiAddModalRef = useRef<ModalType>(null) + const [visible, setVisible] = useState(false) + + useImperativeHandle(ref, () => ({ + show(listInfo) { + if (visible) musicMultiAddModalRef.current?.show(listInfo) + else { + setVisible(true) + requestAnimationFrame(() => { + musicMultiAddModalRef.current?.show(listInfo) + }) + } + }, + })) + + return ( + visible + ? <Modal ref={musicMultiAddModalRef} /> + : null + ) +}) diff --git a/src/components/OnlineList/ExitMultipleModeBar.js b/src/components/OnlineList/ExitMultipleModeBar.js deleted file mode 100644 index 57bc104..0000000 --- a/src/components/OnlineList/ExitMultipleModeBar.js +++ /dev/null @@ -1,142 +0,0 @@ -import React, { useState, useRef, useEffect, useCallback, useMemo, memo } from 'react' -import { Text, StyleSheet, Animated, View, TouchableOpacity } from 'react-native' -import { useTranslation } from '@/plugins/i18n' - -import Button from '@/components/common/Button' -import { useGetter } from '@/store' - - -export default memo(({ multipleMode, onCancel, onSelectAll, selectMode, onSwitchMode, isSelectAll }) => { - const { t } = useTranslation() - // const isGetDetailFailedRef = useRef(false) - const [visible, setVisible] = useState(false) - const [animatePlayed, setAnimatPlayed] = useState(true) - const animFade = useRef(new Animated.Value(0)).current - const animTranslateY = useRef(new Animated.Value(0)).current - - const theme = useGetter('common', 'theme') - - useEffect(() => { - setAnimatPlayed(true) - if (multipleMode) { - animFade.setValue(0.92) - animTranslateY.setValue(0) - setVisible(true) - } else { - animFade.setValue(0) - animTranslateY.setValue(20) - setVisible(false) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - const showList = useCallback(() => { - // console.log('show List') - setVisible(true) - setAnimatPlayed(false) - animTranslateY.setValue(20) - - Animated.parallel([ - Animated.timing(animFade, { - toValue: 0.92, - duration: 200, - useNativeDriver: true, - }), - Animated.timing(animTranslateY, { - toValue: 0, - duration: 200, - useNativeDriver: true, - }), - ]).start(() => { - setAnimatPlayed(true) - }) - }, [animFade, animTranslateY]) - - const hideList = useCallback(() => { - setAnimatPlayed(false) - Animated.parallel([ - Animated.timing(animFade, { - toValue: 0, - duration: 200, - useNativeDriver: true, - }), - Animated.timing(animTranslateY, { - toValue: 20, - duration: 200, - useNativeDriver: true, - }), - ]).start(finished => { - if (!finished) return - setVisible(false) - setAnimatPlayed(true) - }) - }, [animFade, animTranslateY]) - - useEffect(() => { - if (multipleMode) { - showList() - } else { - hideList() - } - }, [hideList, multipleMode, showList]) - - - const animaStyle = useMemo(() => StyleSheet.compose(styles.container, { - backgroundColor: theme.secondary45, - opacity: animFade, // Bind opacity to animated value - transform: [ - { translateY: animTranslateY }, - ], - }), [animFade, animTranslateY, theme]) - - const switchModeSingle = useCallback(() => { - onSwitchMode('single') - }, [onSwitchMode]) - const switchModeRange = useCallback(() => { - onSwitchMode('range') - }, [onSwitchMode]) - - const component = useMemo(() => ( - <Animated.View style={animaStyle}> - <View style={styles.switchBtn}> - <Button onPress={switchModeSingle} style={{ ...styles.btn, backgroundColor: selectMode == 'single' ? theme.secondary40 : 'rgba(0,0,0,0)' }}> - <Text style={{ color: theme.secondary }}>{t('list_select_single')}</Text> - </Button> - <Button onPress={switchModeRange} style={{ ...styles.btn, backgroundColor: selectMode == 'range' ? theme.secondary40 : 'rgba(0,0,0,0)' }}> - <Text style={{ color: theme.secondary }}>{t('list_select_range')}</Text> - </Button> - </View> - <TouchableOpacity onPress={onSelectAll} style={styles.btn}> - <Text style={{ color: theme.secondary }}>{t(isSelectAll ? 'list_select_unall' : 'list_select_all')}</Text> - </TouchableOpacity> - <TouchableOpacity onPress={onCancel} style={styles.btn}> - <Text style={{ color: theme.secondary }}>{t('list_select_cancel')}</Text> - </TouchableOpacity> - </Animated.View> - ), [animaStyle, isSelectAll, selectMode, onCancel, onSelectAll, switchModeRange, switchModeSingle, t, theme]) - - return !visible && animatePlayed ? null : component -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - position: 'absolute', - left: 0, - bottom: 0, - width: '100%', - height: 40, - flexDirection: 'row', - }, - switchBtn: { - flexDirection: 'row', - flex: 1, - }, - btn: { - // flex: 1, - paddingLeft: 15, - paddingRight: 15, - alignItems: 'center', - justifyContent: 'center', - }, -}) diff --git a/src/components/OnlineList/Footer.js b/src/components/OnlineList/Footer.js deleted file mode 100644 index fd58c0f..0000000 --- a/src/components/OnlineList/Footer.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { memo } from 'react' -import { View, Text } from 'react-native' -import { useGetter } from '@/store' -import { useTranslation } from '@/plugins/i18n' - -export const Loading = memo(() => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - return ( - <View style={{ alignItems: 'center', padding: 10 }}> - <Text style={{ color: theme.normal30 }}>{t('list_loading')}</Text> - </View> - ) -}) - - -export const End = memo(() => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - return ( - <View style={{ alignItems: 'center', padding: 10 }}> - <Text style={{ color: theme.normal30 }}>{t('list_end')}</Text> - </View> - ) -}) - diff --git a/src/components/OnlineList/List.tsx b/src/components/OnlineList/List.tsx new file mode 100644 index 0000000..9d11b29 --- /dev/null +++ b/src/components/OnlineList/List.tsx @@ -0,0 +1,278 @@ +import React, { useMemo, useRef, useState, forwardRef, useImperativeHandle } from 'react' +import { FlatList, type FlatListProps, RefreshControl, View } from 'react-native' + +// import { useMusicList } from '@/store/list/hook' +import ListItem, { ITEM_HEIGHT } from './ListItem' +import { createStyle } from '@/utils/tools' +import type { Position } from './ListMenu' +import type { SelectMode } from './MultipleModeBar' +import { useTheme } from '@/store/theme/hook' +import settingState from '@/store/setting/state' +import { MULTI_SELECT_BAR_HEIGHT } from './MultipleModeBar' +import { useI18n } from '@/lang' +import Text from '@/components/common/Text' +import { handlePlay } from './listAction' + +type FlatListType = FlatListProps<LX.Music.MusicInfoOnline> + +export interface ListProps { + onShowMenu: (musicInfo: LX.Music.MusicInfoOnline, index: number, position: Position) => void + onMuiltSelectMode: () => void + onSelectAll: (isAll: boolean) => void + onRefresh: () => void + onLoadMore: () => void + onPlayList?: (index: number) => void + progressViewOffset?: number + ListHeaderComponent?: FlatListType['ListEmptyComponent'] +} +export interface ListType { + setList: (list: LX.Music.MusicInfoOnline[], showSource?: boolean) => void + setIsMultiSelectMode: (isMultiSelectMode: boolean) => void + setSelectMode: (mode: SelectMode) => void + selectAll: (isAll: boolean) => void + getSelectedList: () => LX.Music.MusicInfoOnline[] + getList: () => LX.Music.MusicInfoOnline[] + setStatus: (val: Status) => void +} +export type Status = 'loading' | 'refreshing' | 'end' | 'error' | 'idle' + + +const List = forwardRef<ListType, ListProps>(({ + onShowMenu, + onMuiltSelectMode, + onSelectAll, + onRefresh, + onLoadMore, + onPlayList, + progressViewOffset, + ListHeaderComponent, +}, ref) => { + // const t = useI18n() + const theme = useTheme() + const flatListRef = useRef<FlatList>(null) + const [currentList, setList] = useState<LX.Music.MusicInfoOnline[]>([]) + const [showSource, setShowSource] = useState(false) + const isMultiSelectModeRef = useRef(false) + const selectModeRef = useRef<SelectMode>('single') + const prevSelectIndexRef = useRef(-1) + const [selectedList, setSelectedList] = useState<LX.Music.MusicInfoOnline[]>([]) + const selectedListRef = useRef<LX.Music.MusicInfoOnline[]>([]) + const [visibleMultiSelect, setVisibleMultiSelect] = useState(false) + const [status, setStatus] = useState<Status>('idle') + // const currentListIdRef = useRef('') + // console.log('render music list') + + useImperativeHandle(ref, () => ({ + setList(list, showSource = false) { + setList(list) + setShowSource(showSource) + }, + setIsMultiSelectMode(isMultiSelectMode) { + isMultiSelectModeRef.current = isMultiSelectMode + if (!isMultiSelectMode) { + prevSelectIndexRef.current = -1 + handleUpdateSelectedList([]) + } + setVisibleMultiSelect(isMultiSelectMode) + }, + setSelectMode(mode) { + selectModeRef.current = mode + }, + selectAll(isAll) { + let list: LX.Music.MusicInfoOnline[] + if (isAll) { + list = [...currentList] + } else { + list = [] + } + selectedListRef.current = list + setSelectedList(list) + }, + getSelectedList() { + return selectedListRef.current + }, + getList() { + return currentList + }, + setStatus(val) { + setStatus(val) + }, + })) + + + const handleUpdateSelectedList = (newList: LX.Music.MusicInfoOnline[]) => { + if (selectedListRef.current.length && newList.length == currentList.length) onSelectAll(true) + else if (selectedListRef.current.length == currentList.length) onSelectAll(false) + selectedListRef.current = newList + setSelectedList(newList) + } + const handleSelect = (item: LX.Music.MusicInfoOnline, pressIndex: number) => { + let newList: LX.Music.MusicInfoOnline[] + if (selectModeRef.current == 'single') { + prevSelectIndexRef.current = pressIndex + const index = selectedListRef.current.indexOf(item) + if (index < 0) { + newList = [...selectedListRef.current, item] + } else { + newList = [...selectedListRef.current] + newList.splice(index, 1) + } + } else { + if (selectedListRef.current.length) { + const prevIndex = prevSelectIndexRef.current + const currentIndex = pressIndex + if (prevIndex == currentIndex) { + newList = [] + } else if (currentIndex > prevIndex) { + newList = currentList.slice(prevIndex, currentIndex + 1) + } else { + newList = currentList.slice(currentIndex, prevIndex + 1) + newList.reverse() + } + } else { + newList = [item] + prevSelectIndexRef.current = pressIndex + } + } + + handleUpdateSelectedList(newList) + } + + const handlePress = (item: LX.Music.MusicInfoOnline, index: number) => { + if (isMultiSelectModeRef.current) { + handleSelect(item, index) + } else { + if (settingState.setting['list.isClickPlayList'] && onPlayList != null) { + onPlayList(index) + } else { + // console.log(currentList[index]) + handlePlay(currentList[index]) + } + } + } + + const handleLongPress = (item: LX.Music.MusicInfoOnline, index: number) => { + if (isMultiSelectModeRef.current) return + prevSelectIndexRef.current = index + handleUpdateSelectedList([item]) + onMuiltSelectMode() + } + + const handleLoadMore = () => { + switch (status) { + case 'end': + case 'loading': + case 'refreshing': return + } + onLoadMore() + } + + + const renderItem: FlatListType['renderItem'] = ({ item, index }) => ( + <ListItem + item={item} + index={index} + showSource={showSource} + onPress={handlePress} + onLongPress={handleLongPress} + onShowMenu={onShowMenu} + selectedList={selectedList} + /> + ) + const getkey: FlatListType['keyExtractor'] = item => item.id + const getItemLayout: FlatListType['getItemLayout'] = (data, index) => { + return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index } + } + const refreshControl = useMemo(() => ( + <RefreshControl + colors={[theme['c-primary']]} + // progressBackgroundColor={theme.primary} + refreshing={status == 'refreshing'} + onRefresh={onRefresh} /> + ), [status, onRefresh, theme]) + const footerComponent = useMemo(() => { + let label: FooterLabel + switch (status) { + case 'refreshing': return null + case 'loading': + label = 'list_loading' + break + case 'end': + label = 'list_end' + break + case 'error': + label = 'list_error' + break + case 'idle': + label = null + break + } + return ( + <View style={{ width: '100%', paddingBottom: visibleMultiSelect ? MULTI_SELECT_BAR_HEIGHT : 0 }} > + <Footer label={label} onLoadMore={onLoadMore} /> + </View> + ) + }, [onLoadMore, status, visibleMultiSelect]) + + return ( + <FlatList + ref={flatListRef} + style={styles.list} + data={currentList} + maxToRenderPerBatch={4} + // updateCellsBatchingPeriod={80} + windowSize={8} + removeClippedSubviews={true} + initialNumToRender={12} + renderItem={renderItem} + keyExtractor={getkey} + getItemLayout={getItemLayout} + // onRefresh={onRefresh} + // refreshing={refreshing} + onEndReachedThreshold={0.5} + onEndReached={handleLoadMore} + progressViewOffset={progressViewOffset} + ListHeaderComponent={ListHeaderComponent} + refreshControl={refreshControl} + ListFooterComponent={footerComponent} + /> + ) +}) + +type FooterLabel = 'list_loading' | 'list_end' | 'list_error' | null +const Footer = ({ label, onLoadMore }: { + label: FooterLabel + onLoadMore: () => void +}) => { + const theme = useTheme() + const t = useI18n() + const handlePress = () => { + if (label != 'list_error') return + onLoadMore() + } + return ( + label + ? ( + <View> + <Text onPress={handlePress} style={styles.footer} color={theme['c-font-label']}>{t(label)}</Text> + </View> + ) + : null + ) +} + +const styles = createStyle({ + container: { + flex: 1, + }, + list: { + flexGrow: 1, + flexShrink: 1, + }, + footer: { + textAlign: 'center', + padding: 10, + }, +}) + +export default List diff --git a/src/components/OnlineList/ListItem.js b/src/components/OnlineList/ListItem.js deleted file mode 100644 index beab3c4..0000000 --- a/src/components/OnlineList/ListItem.js +++ /dev/null @@ -1,133 +0,0 @@ -import React, { useCallback, memo, useRef, useMemo } from 'react' -import { StyleSheet, View, Text, TouchableOpacity } from 'react-native' -import { useGetter } from '@/store' -// import Button from '@/components/common/Button' -import Badge from '@/components/common/Badge' -import { BorderWidths } from '@/theme' -import { useTranslation } from '@/plugins/i18n' -import { Icon } from '@/components/common/Icon' - -const useQualityTag = musicInfo => { - const { t } = useTranslation() - let info = {} - if (musicInfo._types.flac32bit) { - info.type = 'secondary' - info.text = t('quality_lossless_24bit') - } else if (musicInfo._types.ape || musicInfo._types.flac) { - info.type = 'secondary' - info.text = t('quality_lossless') - } else if (musicInfo._types['320k']) { - info.type = 'tertiary' - info.text = t('quality_high_quality') - } else info = null - - return info -} - -export default memo(({ item, index, onPress, showMenu, handleLongPress, selectedList }) => { - const theme = useGetter('common', 'theme') - - const isSelected = selectedList.indexOf(item) != -1 - - const moreButtonRef = useRef() - const handleShowMenu = useCallback(() => { - if (moreButtonRef.current && moreButtonRef.current.measure) { - moreButtonRef.current.measure((fx, fy, width, height, px, py) => { - // console.log(fx, fy, width, height, px, py) - showMenu(item, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) - }) - } - }, [item, index, showMenu]) - const tagInfo = useQualityTag(item) - - return ( - <View style={{ ...styles.listItem, backgroundColor: isSelected ? theme.secondary45 : theme.primary, borderBottomColor: theme.secondary45 }}> - <TouchableOpacity style={styles.listItemLeft} onPress={ () => { onPress(item, index) }} onLongPress={() => { handleLongPress(item, index) }}> - <Text style={{ ...styles.sn, color: theme.normal50 }}>{index + 1}</Text> - <View style={styles.itemInfo}> - <View style={styles.listItemTitle}> - <Text style={{ ...styles.listItemTitleText, color: theme.normal }}>{item.name}</Text> - { tagInfo ? <Badge type={tagInfo.type}>{tagInfo.text}</Badge> : null } - </View> - <View style={styles.row2}><Text style={{ ...styles.listItemSingle, color: theme.normal40 }}>{item.singer}</Text></View> - </View> - </TouchableOpacity> - <View style={styles.listItemRight}> - <TouchableOpacity onPress={handleShowMenu} ref={moreButtonRef} style={styles.moreButton}> - <Icon name="dots-vertical" style={{ color: theme.normal35 }} size={16} /> - </TouchableOpacity> - </View> - </View> - ) -}, (prevProps, nextProps) => { - return !!(prevProps.item === nextProps.item && - prevProps.index === nextProps.index && - nextProps.selectedList.includes(nextProps.item) == prevProps.selectedList.includes(nextProps.item) - ) -}) - -const styles = StyleSheet.create({ - listItem: { - width: '100%', - flexDirection: 'row', - flexWrap: 'nowrap', - borderBottomWidth: BorderWidths.normal, - // paddingLeft: 10, - paddingRight: 10, - }, - listItemLeft: { - flex: 1, - flexGrow: 1, - flexShrink: 1, - flexDirection: 'row', - alignItems: 'center', - // backgroundColor: 'rgba(0,0,0,0.1)', - }, - sn: { - width: 32, - fontSize: 11, - textAlign: 'center', - // backgroundColor: 'rgba(0,0,0,0.2)', - paddingLeft: 3, - paddingRight: 3, - }, - itemInfo: { - flexGrow: 0, - flexShrink: 1, - paddingTop: 10, - paddingBottom: 10, - }, - listItemTitle: { - flexDirection: 'row', - alignItems: 'flex-end', - }, - listItemTitleText: { - // backgroundColor: 'rgba(0,0,0,0.2)', - flexGrow: 0, - flexShrink: 1, - fontSize: 14, - }, - listItemSingle: { - fontSize: 12, - paddingTop: 2, - }, - listItemBadge: { - fontSize: 10, - paddingLeft: 5, - paddingBottom: 2, - }, - listItemRight: { - flexGrow: 0, - flexShrink: 0, - flexBasis: 'auto', - justifyContent: 'center', - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - moreButton: { - paddingLeft: 10, - paddingRight: 10, - paddingTop: 10, - paddingBottom: 10, - }, -}) - diff --git a/src/components/OnlineList/ListItem.tsx b/src/components/OnlineList/ListItem.tsx new file mode 100644 index 0000000..836fdc0 --- /dev/null +++ b/src/components/OnlineList/ListItem.tsx @@ -0,0 +1,151 @@ +import React, { memo, useRef } from 'react' +import { StyleSheet, View, TouchableOpacity } from 'react-native' +// import Button from '@/components/common/Button' +import Text from '@/components/common/Text' +import Badge, { type BadgeType } from '@/components/common/Badge' +import { Icon } from '@/components/common/Icon' +import { useI18n } from '@/lang' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +import { LIST_ITEM_HEIGHT } from '@/config/constant' + +export const ITEM_HEIGHT = scaleSizeH(LIST_ITEM_HEIGHT) + +const useQualityTag = (musicInfo: LX.Music.MusicInfoOnline) => { + const t = useI18n() + let info: { type: BadgeType | null, text: string } = { type: null, text: '' } + if (musicInfo.meta._qualitys.flac24bit) { + info.type = 'secondary' + info.text = t('quality_lossless_24bit') + } else if (musicInfo.meta._qualitys.flac ?? musicInfo.meta._qualitys.ape) { + info.type = 'secondary' + info.text = t('quality_lossless') + } else if (musicInfo.meta._qualitys['320k']) { + info.type = 'tertiary' + info.text = t('quality_high_quality') + } + + return info +} + +export default memo(({ item, index, showSource, onPress, onLongPress, onShowMenu, selectedList }: { + item: LX.Music.MusicInfoOnline + index: number + showSource?: boolean + onPress: (item: LX.Music.MusicInfoOnline, index: number) => void + onLongPress: (item: LX.Music.MusicInfoOnline, index: number) => void + onShowMenu: (item: LX.Music.MusicInfoOnline, index: number, position: { x: number, y: number, w: number, h: number }) => void + selectedList: LX.Music.MusicInfoOnline[] +}) => { + const theme = useTheme() + + const isSelected = selectedList.includes(item) + + const moreButtonRef = useRef<TouchableOpacity>(null) + const handleShowMenu = () => { + if (moreButtonRef.current?.measure) { + moreButtonRef.current.measure((fx, fy, width, height, px, py) => { + // console.log(fx, fy, width, height, px, py) + onShowMenu(item, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) + }) + } + } + const tagInfo = useQualityTag(item) + + return ( + <View style={{ ...styles.listItem, height: ITEM_HEIGHT, backgroundColor: isSelected ? theme['c-primary-background-hover'] : 'rgba(0,0,0,0)' }}> + <TouchableOpacity style={styles.listItemLeft} onPress={() => { onPress(item, index) }} onLongPress={() => { onLongPress(item, index) }}> + <Text style={styles.sn} size={14} color={theme['c-300']}>{index + 1}</Text> + <View style={styles.itemInfo}> + <Text numberOfLines={1}>{item.name}</Text> + <View style={styles.listItemSingle}> + <Text style={styles.listItemSingleText} size={13} color={theme['c-500']} numberOfLines={1}>{item.singer}</Text> + { tagInfo.type ? <Badge type={tagInfo.type}>{tagInfo.text}</Badge> : null } + { showSource ? <Badge type="tertiary">{item.source}</Badge> : null } + </View> + </View> + </TouchableOpacity> + <TouchableOpacity onPress={handleShowMenu} ref={moreButtonRef} style={styles.moreButton}> + <Icon name="dots-vertical" style={{ color: theme['c-350'] }} size={12} /> + </TouchableOpacity> + </View> + ) +}, (prevProps, nextProps) => { + return !!(prevProps.item === nextProps.item && + prevProps.index === nextProps.index && + nextProps.selectedList.includes(nextProps.item) == prevProps.selectedList.includes(nextProps.item) + ) +}) + +const styles = StyleSheet.create({ + listItem: { + width: '100%', + flexDirection: 'row', + flexWrap: 'nowrap', + // paddingLeft: 10, + paddingRight: 2, + alignItems: 'center', + // borderBottomWidth: BorderWidths.normal, + }, + listItemLeft: { + flex: 1, + flexGrow: 1, + flexShrink: 1, + flexDirection: 'row', + alignItems: 'center', + }, + sn: { + width: 38, + // fontSize: 12, + textAlign: 'center', + // backgroundColor: 'rgba(0,0,0,0.2)', + paddingLeft: 3, + paddingRight: 3, + }, + itemInfo: { + flexGrow: 0, + flexShrink: 1, + // paddingTop: 10, + // paddingBottom: 10, + }, + // listItemTitle: { + // // backgroundColor: 'rgba(0,0,0,0.2)', + // flexGrow: 0, + // flexShrink: 1, + // // fontSize: 15, + // }, + listItemSingle: { + paddingTop: 2, + flexDirection: 'row', + // alignItems: 'flex-end', + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + listItemSingleText: { + // fontSize: 13, + // paddingTop: 2, + flexGrow: 0, + flexShrink: 1, + }, + listItemBadge: { + // fontSize: 10, + paddingLeft: 5, + paddingTop: 2, + alignSelf: 'flex-start', + }, + listItemRight: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + justifyContent: 'center', + }, + moreButton: { + height: '80%', + paddingLeft: 16, + paddingRight: 16, + // paddingTop: 10, + // paddingBottom: 10, + // backgroundColor: 'rgba(0,0,0,0.2)', + justifyContent: 'center', + }, +}) + diff --git a/src/components/OnlineList/ListMenu.tsx b/src/components/OnlineList/ListMenu.tsx new file mode 100644 index 0000000..51ce558 --- /dev/null +++ b/src/components/OnlineList/ListMenu.tsx @@ -0,0 +1,81 @@ +import React, { useMemo, useRef, useImperativeHandle, forwardRef, useState } from 'react' +import { useI18n } from '@/lang' +import Menu, { type MenuType, type Position } from '@/components/common/Menu' + +export interface SelectInfo { + musicInfo: LX.Music.MusicInfoOnline + selectedList: LX.Music.MusicInfoOnline[] + index: number + single: boolean +} +const initSelectInfo = {} + +export interface ListMenuProps { + onPlay: (selectInfo: SelectInfo) => void + onPlayLater: (selectInfo: SelectInfo) => void + onAdd: (selectInfo: SelectInfo) => void + onCopyName: (selectInfo: SelectInfo) => void +} +export interface ListMenuType { + show: (selectInfo: SelectInfo, position: Position) => void +} + +export type { + Position, +} + +export default forwardRef<ListMenuType, ListMenuProps>((props: ListMenuProps, ref) => { + const t = useI18n() + const [visible, setVisible] = useState(false) + const menuRef = useRef<MenuType>(null) + const selectInfoRef = useRef<SelectInfo>(initSelectInfo as SelectInfo) + + useImperativeHandle(ref, () => ({ + show(selectInfo, position) { + selectInfoRef.current = selectInfo + if (visible) menuRef.current?.show(position) + else { + setVisible(true) + requestAnimationFrame(() => { + menuRef.current?.show(position) + }) + } + }, + })) + + const menus = useMemo(() => { + return [ + { action: 'play', label: t('play') }, + { action: 'playLater', label: t('play_later') }, + // { action: 'download', label: '下载' }, + { action: 'add', label: t('add_to') }, + { action: 'copyName', label: t('copy_name') }, + ] as const + }, [t]) + + const handleMenuPress = ({ action }: typeof menus[number]) => { + const selectInfo = selectInfoRef.current + switch (action) { + case 'play': + props.onPlay(selectInfo) + break + case 'playLater': + props.onPlayLater(selectInfo) + break + case 'add': + props.onAdd(selectInfo) + break + case 'copyName': + props.onCopyName(selectInfo) + break + default: + break + } + } + + return ( + visible + ? <Menu ref={menuRef} menus={menus} onPress={handleMenuPress} /> + : null + ) +}) diff --git a/src/components/OnlineList/MultipleModeBar.tsx b/src/components/OnlineList/MultipleModeBar.tsx new file mode 100644 index 0000000..7cc72c7 --- /dev/null +++ b/src/components/OnlineList/MultipleModeBar.tsx @@ -0,0 +1,158 @@ +import React, { useState, useRef, useCallback, useMemo, forwardRef, useImperativeHandle } from 'react' +import { Animated, View, TouchableOpacity } from 'react-native' + +import Text from '@/components/common/Text' +import Button from '@/components/common/Button' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import { BorderWidths } from '@/theme' +import { scaleSizeH } from '@/utils/pixelRatio' + +export type SelectMode = 'single' | 'range' + +export const MULTI_SELECT_BAR_HEIGHT = scaleSizeH(40) + +export interface MultipleModeBarProps { + onSwitchMode: (mode: SelectMode) => void + onSelectAll: (isAll: boolean) => void + onExitSelectMode: () => void +} +export interface MultipleModeBarType { + show: () => void + setIsSelectAll: (isAll: boolean) => void + setSwitchMode: (mode: SelectMode) => void + exitSelectMode: () => void +} + +export default forwardRef<MultipleModeBarType, MultipleModeBarProps>(({ onSelectAll, onSwitchMode, onExitSelectMode }, ref) => { + // const isGetDetailFailedRef = useRef(false) + const [visible, setVisible] = useState(false) + const [animatePlayed, setAnimatPlayed] = useState(true) + const animFade = useRef(new Animated.Value(0)).current + const animTranslateY = useRef(new Animated.Value(0)).current + const [selectMode, setSelectMode] = useState<SelectMode>('single') + const [isSelectAll, setIsSelectAll] = useState(false) + const theme = useTheme() + + useImperativeHandle(ref, () => ({ + show() { + handleShow() + }, + setIsSelectAll(isAll) { + setIsSelectAll(isAll) + }, + setSwitchMode(mode: SelectMode) { + setSelectMode(mode) + }, + exitSelectMode() { + handleHide() + }, + })) + + const handleShow = useCallback(() => { + // console.log('show List') + setVisible(true) + setAnimatPlayed(false) + animTranslateY.setValue(20) + + Animated.parallel([ + Animated.timing(animFade, { + toValue: 0.92, + duration: 200, + useNativeDriver: true, + }), + Animated.timing(animTranslateY, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }), + ]).start(() => { + setAnimatPlayed(true) + }) + }, [animFade, animTranslateY]) + + const handleHide = useCallback(() => { + setAnimatPlayed(false) + Animated.parallel([ + Animated.timing(animFade, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }), + Animated.timing(animTranslateY, { + toValue: 20, + duration: 200, + useNativeDriver: true, + }), + ]).start(finished => { + if (!finished) return + setVisible(false) + setAnimatPlayed(true) + }) + }, [animFade, animTranslateY]) + + + const animaStyle = useMemo(() => ({ + ...styles.container, + height: MULTI_SELECT_BAR_HEIGHT, + // backgroundColor: theme['c-content-background'], + borderBottomColor: theme['c-border-background'], + opacity: animFade, // Bind opacity to animated value + transform: [ + { translateY: animTranslateY }, + ], + }), [animFade, animTranslateY, theme]) + + const handleSelectAll = useCallback(() => { + const selectAll = !isSelectAll + setIsSelectAll(selectAll) + onSelectAll(selectAll) + }, [isSelectAll, onSelectAll]) + + const component = useMemo(() => { + return ( + <Animated.View style={animaStyle}> + <View style={styles.switchBtn}> + <Button onPress={() => onSwitchMode('single')} style={{ ...styles.btn, backgroundColor: selectMode == 'single' ? theme['c-button-background'] : 'rgba(0,0,0,0)' }}> + <Text color={theme['c-button-font']}>{global.i18n.t('list_select_single')}</Text> + </Button> + <Button onPress={() => onSwitchMode('range')} style={{ ...styles.btn, backgroundColor: selectMode == 'range' ? theme['c-button-background'] : 'rgba(0,0,0,0)' }}> + <Text color={theme['c-button-font']}>{global.i18n.t('list_select_range')}</Text> + </Button> + </View> + <TouchableOpacity onPress={handleSelectAll} style={styles.btn}> + <Text color={theme['c-button-font']}>{global.i18n.t(isSelectAll ? 'list_select_unall' : 'list_select_all')}</Text> + </TouchableOpacity> + <TouchableOpacity onPress={onExitSelectMode} style={styles.btn}> + <Text color={theme['c-button-font']}>{global.i18n.t('list_select_cancel')}</Text> + </TouchableOpacity> + </Animated.View> + ) + }, [animaStyle, selectMode, theme, handleSelectAll, isSelectAll, onExitSelectMode, onSwitchMode]) + + return !visible && animatePlayed ? null : component +}) + +const styles = createStyle({ + container: { + flex: 1, + position: 'absolute', + left: 0, + bottom: 0, + width: '100%', + // height: 40, + flexDirection: 'row', + borderBottomWidth: BorderWidths.normal, + }, + switchBtn: { + flexDirection: 'row', + flex: 1, + }, + btn: { + // flex: 1, + paddingLeft: 18, + paddingRight: 18, + alignItems: 'center', + justifyContent: 'center', + }, +}) diff --git a/src/components/OnlineList/index.js b/src/components/OnlineList/index.js deleted file mode 100644 index 6a1afc9..0000000 --- a/src/components/OnlineList/index.js +++ /dev/null @@ -1,308 +0,0 @@ -import React, { useState, useCallback, memo, useMemo, useRef, useEffect } from 'react' -import { StyleSheet, FlatList, View, RefreshControl } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import Menu from '@/components/common/Menu' -import MusicAddModal from '@/components/MusicAddModal' -import MusicMultiAddModal from '@/components/MusicMultiAddModal' -import ListItem from './ListItem' -import ExitMultipleModeBar from './ExitMultipleModeBar' -import LoadingMask from '@/components/common/LoadingMask' -import { useTranslation } from '@/plugins/i18n' -import { Loading as FooterLoading, End as FooterEnd } from './Footer' -import { LIST_ID_PLAY_LATER } from '@/config/constant' -import { shareMusic } from '@/utils/tools' - -export default memo(({ - list, - isEnd, - page, - isListRefreshing, - // visibleLoadingMask, - onRefresh, - onLoadMore, - onPlayList, - isLoading, - progressViewOffset, - ListHeaderComponent, -}) => { - const defaultList = useGetter('list', 'defaultList') - const defaultListRef = useRef(defaultList) - const addMusicToList = useDispatch('list', 'listAdd') - const setPlayList = useDispatch('player', 'setList') - const setTempPlayList = useDispatch('player', 'setTempPlayList') - const isClickPlayList = useGetter('common', 'isClickPlayList') - const downloadFileName = useGetter('common', 'downloadFileName') - const shareType = useGetter('common', 'shareType') - const [buttonPosition, setButtonPosition] = useState({ w: 0, h: 0, x: 0, y: 0 }) - const selectedData = useRef({ data: null, index: -1 }) - const [visibleMenu, setVisibleMenu] = useState(false) - const [visibleLoadingMask, setVisibleLoadingMask] = useState(false) - const flatListRef = useRef() - const { t } = useTranslation() - const [visibleMusicAddModal, setVisibleMusicAddModal] = useState(false) - const [isMultiSelectMode, setIsMultiSelectMode] = useState(false) - const isMultiSelectModeRef = useRef(isMultiSelectMode) - const [selectedList, setSelectedList] = useState([]) - const selectedListRef = useRef([]) - const [visibleMusicMultiAddModal, setVisibleMusicMultiAddModal] = useState(false) - const listRef = useRef([]) - const [selectMode, setSelectMode] = useState('single') - const selectModeRef = useRef('single') - const prevSelectIndexRef = useRef(-1) - const addMultiMusicToList = useDispatch('list', 'listAddMultiple') - const theme = useGetter('common', 'theme') - - useEffect(() => { - defaultListRef.current = defaultList - }, [defaultList]) - useEffect(() => { - listRef.current = list - }, [list]) - - const handlePlay = useCallback((targetSong, index) => { - addMusicToList({ - musicInfo: targetSong, - id: defaultListRef.current.id, - }) - - const targetIndex = defaultListRef.current.list.findIndex(s => s.songmid === targetSong.songmid) - if (targetIndex > -1) { - setPlayList({ - list: defaultListRef.current, - index: targetIndex, - }) - } - }, [addMusicToList, setPlayList]) - - const handleSelect = useCallback((item, index) => { - if (selectModeRef.current == 'single') { - const index = selectedListRef.current.indexOf(item) - if (index < 0) { - selectedListRef.current.push(item) - // setSelectedItem({ item, isChecked: true }) - } else { - selectedListRef.current.splice(index, 1) - // setSelectedItem({ item, isChecked: false }) - } - } else { - if (selectedListRef.current.length) { - const prevIndex = prevSelectIndexRef.current - const currentIndex = index - if (prevIndex == currentIndex) { - selectedListRef.current = [] - } else if (currentIndex > prevIndex) { - selectedListRef.current = listRef.current.slice(prevIndex, currentIndex + 1) - } else { - selectedListRef.current = listRef.current.slice(currentIndex, prevIndex + 1) - selectedListRef.current.reverse() - } - } else { - selectedListRef.current.push(item) - prevSelectIndexRef.current = index - } - } - setSelectedList([...selectedListRef.current]) - }, []) - const handleSelectAll = useCallback(() => { - if (!listRef.current.length) return - if (selectedListRef.current.length == listRef.current.length) { - selectedListRef.current = [] - } else { - selectedListRef.current = [...listRef.current] - } - setSelectedList([...selectedListRef.current]) - }, []) - - const handleSetSelectMode = useCallback(mode => { - setSelectMode(mode) - selectModeRef.current = mode - if (mode == 'range' && selectedListRef.current.length) { - prevSelectIndexRef.current = listRef.current.indexOf(selectedListRef.current[selectedListRef.current.length - 1]) - } - }, []) - - const handleCancelMultiSelect = useCallback(() => { - setIsMultiSelectMode(false) - isMultiSelectModeRef.current = false - selectedListRef.current = [] - setSelectedList([]) - }, []) - const handlePress = useCallback((item, index) => { - if (isMultiSelectModeRef.current) { - handleSelect(item, index) - } else { - if (isClickPlayList && typeof onPlayList == 'function') { - onPlayList(index, item) - } else { - handlePlay(item, index) - } - } - }, [handlePlay, handleSelect, isClickPlayList, onPlayList]) - - const handleLongPress = useCallback((item, index) => { - setIsMultiSelectMode(true) - isMultiSelectModeRef.current = true - handleSelect(item, index) - }, [handleSelect]) - - const menus = useMemo(() => { - return [ - { action: 'play', label: t('play') }, - { action: 'playLater', label: t('play_later') }, - { action: 'copyName', label: t('copy_name') }, - // { action: 'download', label: '下载' }, - // { action: 'add', label: '添加到...' }, - // { action: 'move', label: '移动到...' }, - { action: 'add', label: t('add_to') }, - ] - }, [t]) - const showMenu = useCallback((item, index, position) => { - setButtonPosition({ ...position }) - selectedData.current.data = item - selectedData.current.index = index - setVisibleMenu(true) - }, [setButtonPosition]) - const hideMenu = useCallback(() => { - setVisibleMenu(false) - }, [setVisibleMenu]) - const handleMenuPress = useCallback(({ action }) => { - switch (action) { - case 'play': - if (selectedListRef.current.length) { - addMultiMusicToList({ id: 'default', list: [...selectedListRef.current] }) - handleCancelMultiSelect() - } - handlePlay(selectedData.current.data, selectedData.current.index) - break - case 'playLater': - if (selectedListRef.current.length) { - setTempPlayList(selectedListRef.current.map(s => ({ listId: LIST_ID_PLAY_LATER, musicInfo: s }))) - handleCancelMultiSelect() - } else { - setTempPlayList([{ listId: LIST_ID_PLAY_LATER, musicInfo: selectedData.current.data }]) - } - break - case 'copyName': - shareMusic(shareType, downloadFileName, selectedData.current.data) - break - case 'add': - // console.log(selectedListRef.current.length) - selectedListRef.current.length - ? setVisibleMusicMultiAddModal(true) - : setVisibleMusicAddModal(true) - break - default: - break - } - }, [addMultiMusicToList, downloadFileName, handleCancelMultiSelect, handlePlay, setTempPlayList, shareType]) - - useEffect(() => { - if (isLoading && page == 1) { - setVisibleLoadingMask(true) - } else { - setVisibleLoadingMask(false) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [isLoading]) - - useEffect(() => { - if (!flatListRef.current) return - if (page == 1) flatListRef.current.scrollToOffset({ offset: 0, animated: true }) - }, [list, page]) - - const hideMusicAddModal = useCallback(() => { - setVisibleMusicAddModal(false) - }, []) - - const hideMusicMultiAddModal = useCallback(() => { - setVisibleMusicMultiAddModal(false) - }, []) - - const loadingMaskmomponent = useMemo(() => ( - <LoadingMask visible={visibleLoadingMask} /> - ), [visibleLoadingMask]) - const exitMultipleModeBtn = useMemo(() => ( - <ExitMultipleModeBar - multipleMode={isMultiSelectMode} - onCancel={handleCancelMultiSelect} - onSwitchMode={handleSetSelectMode} - onSelectAll={handleSelectAll} - selectMode={selectMode} - isSelectAll={selectedList.length && list.length == selectedList.length} /> - ), [handleCancelMultiSelect, handleSelectAll, handleSetSelectMode, isMultiSelectMode, list, selectMode, selectedList]) - - const renderItem = useCallback(({ item, index }) => ( - <ListItem - item={item} - index={index} - onPress={handlePress} - showMenu={showMenu} - selectedList={selectedList} - handleLongPress={handleLongPress} /> - ), [handleLongPress, handlePress, selectedList, showMenu]) - - const refreshControl = useMemo(() => ( - <RefreshControl - colors={[theme.secondary]} - progressBackgroundColor={theme.primary} - refreshing={isListRefreshing} - onRefresh={onRefresh} /> - ), [isListRefreshing, onRefresh, theme]) - - return ( - <View style={styles.container}> - <FlatList - ref={flatListRef} - style={styles.list} - keyboardShouldPersistTaps={'always'} - data={list} - renderItem={renderItem} - keyExtractor={item => item.songmid.toString()} - onRefresh={onRefresh} - refreshing={isListRefreshing} - maxToRenderPerBatch={8} - updateCellsBatchingPeriod={80} - windowSize={18} - removeClippedSubviews={true} - initialNumToRender={15} - onEndReached={onLoadMore} - progressViewOffset={progressViewOffset} - ListHeaderComponent={ListHeaderComponent} - refreshControl={refreshControl} - ListFooterComponent={<View style={{ paddingBottom: isMultiSelectMode ? 40 : 0 }}>{isLoading ? <FooterLoading /> : isEnd ? <FooterEnd /> : null}</View>} - /> - { exitMultipleModeBtn } - <Menu - menus={menus} - buttonPosition={buttonPosition} - onPress={handleMenuPress} - visible={visibleMenu} - hideMenu={hideMenu} /> - <MusicAddModal - visible={visibleMusicAddModal} - hideModal={hideMusicAddModal} - musicInfo={selectedData.current.data} /> - <MusicMultiAddModal - visible={visibleMusicMultiAddModal} - hideModal={hideMusicMultiAddModal} - list={selectedListRef.current} - onAdd={handleCancelMultiSelect} /> - { loadingMaskmomponent } - </View> - ) -}) - - -const styles = StyleSheet.create({ - container: { - flex: 1, - overflow: 'hidden', - }, - list: { - flex: 1, - }, - exitMultipleModeBtn: { - height: 40, - }, -}) - diff --git a/src/components/OnlineList/index.tsx b/src/components/OnlineList/index.tsx new file mode 100644 index 0000000..8f9df70 --- /dev/null +++ b/src/components/OnlineList/index.tsx @@ -0,0 +1,124 @@ +import React, { useRef, forwardRef, useImperativeHandle } from 'react' +import { View } from 'react-native' +// import LoadingMask, { LoadingMaskType } from '@/components/common/LoadingMask' +import List, { type ListProps, type ListType, type Status } from './List' +import ListMenu, { type ListMenuType, type Position, type SelectInfo } from './ListMenu' +import ListMusicMultiAdd, { type MusicMultiAddModalType as ListAddMultiType } from '@/components/MusicMultiAddModal' +import ListMusicAdd, { type MusicAddModalType as ListMusicAddType } from '@/components/MusicAddModal' +import MultipleModeBar, { type MultipleModeBarType, type SelectMode } from './MultipleModeBar' +import { handlePlay, handlePlayLater, handleShare } from './listAction' +import { createStyle } from '@/utils/tools' + +export interface OnlineListProps { + onRefresh: ListProps['onRefresh'] + onLoadMore: ListProps['onLoadMore'] + onPlayList?: ListProps['onPlayList'] + progressViewOffset?: ListProps['progressViewOffset'] + ListHeaderComponent?: ListProps['ListHeaderComponent'] +} +export interface OnlineListType { + setList: (list: LX.Music.MusicInfoOnline[], showSource?: boolean) => void + setStatus: (val: Status) => void +} + +export default forwardRef<OnlineListType, OnlineListProps>(({ + onRefresh, + onLoadMore, + onPlayList, + progressViewOffset, + ListHeaderComponent, +}, ref) => { + const listRef = useRef<ListType>(null) + const multipleModeBarRef = useRef<MultipleModeBarType>(null) + const listMusicAddRef = useRef<ListMusicAddType>(null) + const listMusicMultiAddRef = useRef<ListAddMultiType>(null) + const listMenuRef = useRef<ListMenuType>(null) + // const loadingMaskRef = useRef<LoadingMaskType>(null) + + useImperativeHandle(ref, () => ({ + setList(list, showSource) { + listRef.current?.setList(list, showSource) + }, + setStatus(val) { + listRef.current?.setStatus(val) + }, + })) + + const hancelMultiSelect = () => { + multipleModeBarRef.current?.show() + listRef.current?.setIsMultiSelectMode(true) + } + const hancelSwitchSelectMode = (mode: SelectMode) => { + multipleModeBarRef.current?.setSwitchMode(mode) + listRef.current?.setSelectMode(mode) + } + const hancelExitSelect = () => { + multipleModeBarRef.current?.exitSelectMode() + listRef.current?.setIsMultiSelectMode(false) + } + + const showMenu = (musicInfo: LX.Music.MusicInfoOnline, index: number, position: Position) => { + listMenuRef.current?.show({ + musicInfo, + index, + single: false, + selectedList: listRef.current!.getSelectedList(), + }, position) + } + const handleAddMusic = (info: SelectInfo) => { + if (info.selectedList.length) { + listMusicMultiAddRef.current?.show({ selectedList: info.selectedList, listId: '', isMove: false }) + } else { + listMusicAddRef.current?.show({ musicInfo: info.musicInfo, listId: '', isMove: false }) + } + } + + return ( + <View style={styles.container}> + <View style={{ flex: 1 }}> + <List + ref={listRef} + onShowMenu={showMenu} + onMuiltSelectMode={hancelMultiSelect} + onSelectAll={isAll => multipleModeBarRef.current?.setIsSelectAll(isAll)} + onRefresh={onRefresh} + onLoadMore={onLoadMore} + onPlayList={onPlayList} + progressViewOffset={progressViewOffset} + ListHeaderComponent={ListHeaderComponent} + /> + <MultipleModeBar + ref={multipleModeBarRef} + onSwitchMode={hancelSwitchSelectMode} + onSelectAll={isAll => listRef.current?.selectAll(isAll)} + onExitSelectMode={hancelExitSelect} + /> + </View> + <ListMusicAdd ref={listMusicAddRef} /> + <ListMusicMultiAdd ref={listMusicMultiAddRef} /> + <ListMenu + ref={listMenuRef} + onPlay={info => { handlePlay(info.musicInfo) }} + onPlayLater={info => { handlePlayLater(info.musicInfo, info.selectedList, hancelExitSelect) }} + onCopyName={info => { handleShare(info.musicInfo) }} + onAdd={handleAddMusic} + /> + {/* <LoadingMask ref={loadingMaskRef} /> */} + </View> + ) +}) + + +const styles = createStyle({ + container: { + flex: 1, + overflow: 'hidden', + }, + list: { + flex: 1, + }, + exitMultipleModeBtn: { + height: 40, + }, +}) + diff --git a/src/components/OnlineList/listAction.ts b/src/components/OnlineList/listAction.ts new file mode 100644 index 0000000..8fbedd6 --- /dev/null +++ b/src/components/OnlineList/listAction.ts @@ -0,0 +1,29 @@ +import { LIST_IDS } from '@/config/constant' +import { addListMusics } from '@/core/list' +import { playList } from '@/core/player/player' +import { addTempPlayList } from '@/core/player/tempPlayList' +import settingState from '@/store/setting/state' +import { getListMusicSync } from '@/utils/listManage' +import { shareMusic } from '@/utils/tools' + +export const handlePlay = (musicInfo: LX.Music.MusicInfoOnline) => { + void addListMusics(LIST_IDS.DEFAULT, [musicInfo], settingState.setting['list.addMusicLocationType']).then(() => { + const index = getListMusicSync(LIST_IDS.DEFAULT).findIndex(m => m.id == musicInfo.id) + if (index < 0) return + void playList(LIST_IDS.DEFAULT, index) + }) +} +export const handlePlayLater = (musicInfo: LX.Music.MusicInfoOnline, selectedList: LX.Music.MusicInfoOnline[], onCancelSelect: () => void) => { + if (selectedList.length) { + addTempPlayList(selectedList.map(s => ({ listId: '', musicInfo: s }))) + onCancelSelect() + } else { + addTempPlayList([{ listId: '', musicInfo }]) + } +} + + +export const handleShare = (musicInfo: LX.Music.MusicInfoOnline) => { + shareMusic(settingState.setting['common.shareType'], settingState.setting['download.fileName'], musicInfo) +} + diff --git a/src/components/PageContent.tsx b/src/components/PageContent.tsx new file mode 100644 index 0000000..4c56383 --- /dev/null +++ b/src/components/PageContent.tsx @@ -0,0 +1,41 @@ +import React, { useEffect, useState } from 'react' +import { Dimensions, ImageBackground, type LayoutChangeEvent, View } from 'react-native' +import { useTheme } from '@/store/theme/hook' +// import { useDimensions } from '@/utils/hooks' + +interface Props { + children: React.ReactNode +} + + +export default ({ children }: Props) => { + const theme = useTheme() + // const { window } = useDimensions() + const [wh, setWH] = useState<{ width: number | string, height: number | string }>({ width: '100%', height: '100%' }) + + // 固定宽高度 防止弹窗键盘时大小改变导致背景被缩放 + useEffect(() => { + const onChange = () => { + setWH({ width: '100%', height: '100%' }) + } + + const changeEvent = Dimensions.addEventListener('change', onChange) + return () => { changeEvent.remove() } + }, []) + const handleLayout = (e: LayoutChangeEvent) => { + setWH({ width: e.nativeEvent.layout.width, height: e.nativeEvent.layout.height }) + } + + return ( + <ImageBackground + onLayout={handleLayout} + style={{ height: wh.height, width: wh.width, backgroundColor: theme['c-content-background'] }} + source={theme['bg-image']} + resizeMode="cover" + > + <View style={{ flex: 1, flexDirection: 'column', backgroundColor: theme['c-main-background'] }}> + {children} + </View> + </ImageBackground> + ) +} diff --git a/src/components/SearchInput.js b/src/components/SearchInput.js deleted file mode 100644 index 654e7c9..0000000 --- a/src/components/SearchInput.js +++ /dev/null @@ -1,35 +0,0 @@ -import React, { useRef, forwardRef, useImperativeHandle } from 'react' -import { View, StyleSheet } from 'react-native' -import Input from './common/Input' - -const SearchInput = (props, ref) => { - const textInputRef = useRef() - - useImperativeHandle(ref, () => ({ - blur() { - if (!textInputRef.current) return - textInputRef.current.blur() - }, - })) - - return ( - <View style={{ ...styles.container, ...props.styles }}> - <Input {...props} ref={textInputRef} /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - // backgroundColor: AppColors.secondary40, - paddingTop: 5, - paddingBottom: 5, - paddingLeft: 10, - paddingRight: 10, - width: '100%', - // borderBottomLeftRadius: 10, - // borderBottomRightRadius: 10, - }, -}) - -export default forwardRef(SearchInput) diff --git a/src/components/SearchTipList/List.tsx b/src/components/SearchTipList/List.tsx new file mode 100644 index 0000000..eb29955 --- /dev/null +++ b/src/components/SearchTipList/List.tsx @@ -0,0 +1,36 @@ +import React, { useState, forwardRef, useImperativeHandle, Ref } from 'react' +import { FlatList, FlatListProps } from 'react-native' + +// import InsetShadow from 'react-native-inset-shadow' + +export type ItemT<T> = FlatListProps<T>['data'] + +export type ListProps<T> = Pick<FlatListProps<T>, +| 'renderItem' +| 'maxToRenderPerBatch' +| 'windowSize' +| 'initialNumToRender' +| 'keyExtractor' +| 'getItemLayout' +| 'keyboardShouldPersistTaps' +> + +export interface ListType<T> { + setList: (list: T[]) => void +} + +const List = <T extends ItemT<T>>(props: ListProps<T>, ref: Ref<ListType<T>>) => { + const [list, setList] = useState<T[]>([]) + useImperativeHandle(ref, () => ({ + setList(list) { + setList(list) + }, + })) + + return <FlatList removeClippedSubviews={true} keyboardShouldPersistTaps={'always'} {...props} data={list} /> +} + +export default forwardRef(List) as + <M,>(p: ListProps<M> & { ref?: Ref<ListType<M>> }) => JSX.Element | null + + diff --git a/src/components/SearchTipList/index.tsx b/src/components/SearchTipList/index.tsx new file mode 100644 index 0000000..91c7a0a --- /dev/null +++ b/src/components/SearchTipList/index.tsx @@ -0,0 +1,146 @@ +import React, { useRef, useState, useCallback, useMemo, forwardRef, useImperativeHandle, type Ref } from 'react' +import { StyleSheet, View, Animated } from 'react-native' +// import PropTypes from 'prop-types' +// import { AppColors } from '@/theme' +import { useTheme } from '@/store/theme/hook' +import List, { type ItemT, type ListProps, type ListType } from './List' +// import InsetShadow from 'react-native-inset-shadow' + +export interface SearchTipListProps<T> extends ListProps<T> { + onPressBg?: () => void +} +export interface SearchTipListType<T> { + setList: (list: T[]) => void + setHeight: (height: number) => void +} + +const noop = () => {} + +const Component = <T extends ItemT<T>>({ onPressBg = noop, ...props }: SearchTipListProps<T>, ref: Ref<SearchTipListType<T>>) => { + const theme = useTheme() + const translateY = useRef(new Animated.Value(0)).current + const scaleY = useRef(new Animated.Value(0)).current + const [visible, setVisible] = useState(false) + const [animatePlayed, setAnimatPlayed] = useState(true) + const listRef = useRef<ListType<T>>(null) + const prevListRef = useRef<T[]>([]) + const heightRef = useRef(0) + + useImperativeHandle(ref, () => ({ + setList(list) { + if (prevListRef.current.length) { + if (!list.length) handleHide() + } else if (list.length) handleShow() + prevListRef.current = list + requestAnimationFrame(() => { + listRef.current?.setList(list) + }) + }, + setHeight(height) { + heightRef.current = height + }, + })) + + + const handleShow = useCallback(() => { + // console.log('handleShow', height, visible) + if (!heightRef.current) return + setVisible(true) + setAnimatPlayed(false) + + translateY.setValue(-heightRef.current / 2) + scaleY.setValue(0) + + Animated.parallel([ + // Animated.timing(fade, { + // toValue: 1, + // duration: 300, + // useNativeDriver: true, + // }), + Animated.timing(translateY, { + toValue: 0, + duration: 300, + useNativeDriver: true, + }), + Animated.timing(scaleY, { + toValue: 1, + duration: 300, + useNativeDriver: true, + }), + ]).start(() => { + setAnimatPlayed(true) + }) + }, [translateY, scaleY]) + + const handleHide = useCallback(() => { + setAnimatPlayed(false) + Animated.parallel([ + // Animated.timing(fade, { + // toValue: 0, + // duration: 200, + // useNativeDriver: true, + // }), + Animated.timing(translateY, { + toValue: -heightRef.current / 2, + duration: 300, + useNativeDriver: true, + }), + Animated.timing(scaleY, { + toValue: 0, + duration: 300, + useNativeDriver: true, + }), + ]).start((finished) => { + // console.log(finished) + if (!finished) return + setVisible(false) + setAnimatPlayed(true) + }) + }, [translateY, scaleY]) + + + const component = useMemo(() => ( + <Animated.View + style={{ + ...styles.anima, + transform: [ + { translateY }, + { scaleY }, + ], + }}> + <View style={{ ...styles.container, backgroundColor: theme['c-content-background'] }}> + <List ref={listRef} {...props} /> + </View> + <View style={styles.blank} onTouchStart={onPressBg}></View> + </Animated.View> + ), [onPressBg, props, scaleY, theme, translateY]) + + return !visible && animatePlayed ? null : component +} + +export default forwardRef(Component) as + <T,>(p: SearchTipListProps<T> & { ref?: Ref<SearchTipListType<T>> }) => JSX.Element | null + +const styles = StyleSheet.create({ + anima: { + position: 'absolute', + left: 0, + top: 0, + height: '100%', + width: '100%', + zIndex: 10, + }, + container: { + flex: 0, + // flexGrow: 0, + // borderBottomWidth: BorderWidths.normal, + elevation: 2, + maxHeight: '80%', + }, + blank: { + flex: 1, + flexGrow: 1, + // backgroundColor: 'transparent', + // backgroundColor: 'rgba(0,0,0,0.2)', + }, +}) diff --git a/src/components/SourceSelector.tsx b/src/components/SourceSelector.tsx new file mode 100644 index 0000000..7ce919c --- /dev/null +++ b/src/components/SourceSelector.tsx @@ -0,0 +1,77 @@ +import React, { forwardRef, type Ref, useImperativeHandle, useMemo, useState } from 'react' +import { View } from 'react-native' + +import DorpDownMenu, { type DorpDownMenuProps as _DorpDownMenuProps } from '@/components/common/DorpDownMenu' +import Text from '@/components/common/Text' +import { useI18n } from '@/lang' + +import { useSettingValue } from '@/store/setting/hook' +import { createStyle } from '@/utils/tools' + +type Sources = Readonly<Array<LX.OnlineSource | 'all'>> + +export interface SourceSelectorProps<S extends Sources> { + fontSize?: number + center?: _DorpDownMenuProps<any>['center'] + onSourceChange: (source: S[number]) => void +} + +export interface SourceSelectorType<S extends Sources> { + setSourceList: (list: S, activeSource: S[number]) => void +} + +const Component = <S extends Sources>({ fontSize = 15, center, onSourceChange }: SourceSelectorProps<S>, ref: Ref<SourceSelectorType<S>>) => { + const sourceNameType = useSettingValue('common.sourceNameType') + const [list, setList] = useState([] as unknown as S) + const [source, setSource] = useState<S[number]>('kw') + const t = useI18n() + + useImperativeHandle(ref, () => ({ + setSourceList(list, activeSource) { + setList(list) + setSource(activeSource) + }, + }), []) + + const sourceList_t = useMemo(() => { + return list.map(s => ({ label: t(`source_${sourceNameType}_${s}`), action: s })) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [list, sourceNameType, t]) + + type DorpDownMenuProps = _DorpDownMenuProps<typeof sourceList_t> + + const handleChangeSource: DorpDownMenuProps['onPress'] = ({ action }) => { + onSourceChange(action) + setSource(action) + } + + return ( + <DorpDownMenu + menus={sourceList_t} + center={center} + onPress={handleChangeSource} + fontSize={fontSize} + activeId={source} + > + <View style={styles.sourceMenu}> + <Text style={{ textAlign: center ? 'center' : 'left' }} numberOfLines={1} size={fontSize}>{t(`source_${sourceNameType}_${source}`)}</Text> + </View> + </DorpDownMenu> + ) +} + +export default forwardRef(Component) as <S extends Sources>(p: SourceSelectorProps<S> & { ref?: Ref<SourceSelectorType<S>> }) => JSX.Element | null + + +const styles = createStyle({ + sourceMenu: { + height: '100%', + justifyContent: 'center', + // paddingTop: 12, + // paddingBottom: 12, + paddingLeft: 15, + paddingRight: 15, + // backgroundColor: '#ccc', + + }, +}) diff --git a/src/components/TimeoutExitEditModal.tsx b/src/components/TimeoutExitEditModal.tsx new file mode 100644 index 0000000..38e3570 --- /dev/null +++ b/src/components/TimeoutExitEditModal.tsx @@ -0,0 +1,258 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState, useEffect } from 'react' +import ConfirmAlert, { ConfirmAlertType } from '@/components/common/ConfirmAlert' +import Text from '@/components/common/Text' +import { View } from 'react-native' +import Input, { InputType } from '@/components/common/Input' +import { createStyle, toast } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { cancelTimeoutExit, getTimeoutExitTime, onTimeUpdate, startTimeoutExit, stopTimeoutExit, useTimeoutExitTimeInfo } from '@/core/player/timeoutExit' +import { useI18n } from '@/lang' +import CheckBox from './common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { updateSetting } from '@/core/common' +import settingState from '@/store/setting/state' + +const MAX_MIN = 1440 +const rxp = /([1-9]\d*)/ +const formatTime = (time: number) => { + // let d = parseInt(time / 86400) + // d = d ? d.toString() + ':' : '' + // time = time % 86400 + let h = Math.trunc(time / 3600) + let hStr = h ? h.toString() + ':' : '' + time = time % 3600 + const m = Math.trunc(time / 60).toString().padStart(2, '0') + const s = Math.trunc(time % 60).toString().padStart(2, '0') + return `${hStr}${m}:${s}` +} +const Status = () => { + const theme = useTheme() + const t = useI18n() + const exitTimeInfo = useTimeoutExitTimeInfo() + return ( + <View style={styles.tip}> + { + exitTimeInfo.time < 0 + ? ( + <Text>{t('timeout_exit_tip_off')}</Text> + ) + : ( + <Text>{t('timeout_exit_tip_on', { time: formatTime(exitTimeInfo.time) })}</Text> + ) + } + {exitTimeInfo.isPlayedStop ? <Text color={theme['c-font-label']} size={13}>{t('timeout_exit_btn_wait_tip')}</Text> : null} + </View> + ) +} + + +interface TimeInputType { + setText: (text: string) => void + getText: () => string + focus: () => void +} +const TimeInput = forwardRef<TimeInputType, {}>((props, ref) => { + const theme = useTheme() + const [text, setText] = useState('') + const inputRef = useRef<InputType>(null) + const t = useI18n() + + useImperativeHandle(ref, () => ({ + getText() { + return text.trim() + }, + setText(text) { + setText(text) + }, + focus() { + inputRef.current?.focus() + }, + })) + + return ( + <Input + ref={inputRef} + placeholder={t('timeout_exit_input_tip')} + value={text} + onChangeText={setText} + style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} + /> + ) +}) + + +const Setting = () => { + const t = useI18n() + const timeoutExitPlayed = useSettingValue('player.timeoutExitPlayed') + const onCheckChange = (check: boolean) => { + updateSetting({ 'player.timeoutExitPlayed': check }) + } + + return ( + <View style={styles.checkbox}> + <CheckBox check={timeoutExitPlayed} label={t('timeout_exit_label_isPlayed')} onChange={onCheckChange} /> + </View> + ) +} + +export const useTimeInfo = () => { + const [exitTimeInfo, setExitTimeInfo] = useState({ + cancelText: '', + confirmText: '', + isPlayedStop: false, + active: false, + }) + const t = useI18n() + + useEffect(() => { + let active: boolean | null = null + const remove = onTimeUpdate((time, isPlayedStop) => { + if (time < 0) { + if (active) { + setExitTimeInfo({ + cancelText: isPlayedStop ? t('timeout_exit_btn_wait_cancel') : '', + confirmText: '', + isPlayedStop, + active: false, + }) + active = false + } + } else { + if (active !== true) { + setExitTimeInfo({ + cancelText: t('timeout_exit_btn_cancel'), + confirmText: t('timeout_exit_btn_update'), + isPlayedStop, + active: true, + }) + active = true + } + } + }) + + return () => { + remove() + } + }, [t]) + + return exitTimeInfo +} + +export interface TimeoutExitEditModalType { + show: () => void +} +interface TimeoutExitEditModalProps { + timeInfo: ReturnType<typeof useTimeInfo> +} + +export default forwardRef<TimeoutExitEditModalType, TimeoutExitEditModalProps>(({ timeInfo }, ref) => { + const alertRef = useRef<ConfirmAlertType>(null) + const timeInputRef = useRef<TimeInputType>(null) + const [visible, setVisible] = useState(false) + const t = useI18n() + + const handleShow = () => { + alertRef.current?.setVisible(true) + requestAnimationFrame(() => { + if (settingState.setting['player.timeoutExit']) timeInputRef.current?.setText(settingState.setting['player.timeoutExit']) + // setTimeout(() => { + // timeInputRef.current?.focus() + // }, 300) + }) + } + useImperativeHandle(ref, () => ({ + show() { + if (visible) handleShow() + else { + setVisible(true) + requestAnimationFrame(() => { + handleShow() + }) + } + }, + })) + + const handleCancel = () => { + if (timeInfo.isPlayedStop) { + cancelTimeoutExit() + return + } + if (!timeInfo.active) return + stopTimeoutExit() + toast(t('timeout_exit_tip_cancel')) + } + const handleConfirm = () => { + let timeStr = timeInputRef.current?.getText() ?? '' + if (rxp.test(timeStr)) { + // if (timeStr != RegExp.$1) toast(t('input_error')) + timeStr = RegExp.$1 + if (parseInt(timeStr) > MAX_MIN) { + toast(t('timeout_exit_tip_max', { num: MAX_MIN })) + // timeStr = timeStr.substring(0, timeStr.length - 1) + return + } + } else { + if (timeStr.length) toast(t('input_error')) + timeStr = '' + } + if (!timeStr) return + const time = parseInt(timeStr) + cancelTimeoutExit() + startTimeoutExit(time * 60) + toast(t('timeout_exit_tip_on', { time: formatTime(getTimeoutExitTime()) })) + updateSetting({ 'player.timeoutExit': String(time) }) + alertRef.current?.setVisible(false) + } + + return ( + visible + ? <ConfirmAlert + ref={alertRef} + cancelText={timeInfo.cancelText} + confirmText={timeInfo.confirmText} + onCancel={handleCancel} + onConfirm={handleConfirm} + > + <View style={styles.alertContent}> + <Status /> + <View style={styles.inputContent}> + <TimeInput ref={timeInputRef} /> + <Text style={styles.inputLabel}>{t('timeout_exit_min')}</Text> + </View> + <Setting /> + </View> + </ConfirmAlert> + : null + ) +}) + +const styles = createStyle({ + alertContent: { + flexShrink: 1, + flexDirection: 'column', + }, + tip: { + marginBottom: 8, + }, + checkbox: { + marginTop: 5, + }, + inputContent: { + marginTop: 8, + flex: 1, + flexDirection: 'row', + alignItems: 'center', + }, + input: { + flexGrow: 1, + flexShrink: 1, + // borderRadius: 4, + // paddingTop: 2, + // paddingBottom: 2, + }, + inputLabel: { + marginLeft: 8, + }, +}) + + diff --git a/src/components/common/Badge.js b/src/components/common/Badge.js deleted file mode 100644 index 1e02a64..0000000 --- a/src/components/common/Badge.js +++ /dev/null @@ -1,46 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { StyleSheet, Text } from 'react-native' -import { useGetter } from '@/store' -// const menuItemHeight = 42 -// const menuItemWidth = 100 - -const styles = StyleSheet.create({ - text: { - // paddingLeft: 4, - // paddingRight: 4, - fontSize: 9, - // borderRadius: 2, - // lineHeight: 12, - marginTop: 2, - marginLeft: 5, - marginBottom: 2, - alignSelf: 'flex-start', - }, -}) - - -export default memo(({ type, children }) => { - const theme = useGetter('common', 'theme') - // console.log(visible) - const colors = useMemo(() => { - const colors = {} - switch (type) { - case 'normal': - // colors.bgColor = theme.primary - colors.textColor = theme.normal10 - break - case 'secondary': - // colors.bgColor = theme.primary - colors.textColor = theme.secondary10 - break - case 'tertiary': - // colors.bgColor = theme.primary - colors.textColor = theme.tertiary10 - break - } - return colors - }, [type, theme]) - - return <Text style={{ ...styles.text, color: colors.textColor }}>{children}</Text> -}) - diff --git a/src/components/common/Badge.tsx b/src/components/common/Badge.tsx new file mode 100644 index 0000000..d80e1e2 --- /dev/null +++ b/src/components/common/Badge.tsx @@ -0,0 +1,52 @@ +import React, { memo, useMemo } from 'react' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import Text from './Text' +// const menuItemHeight = 42 +// const menuItemWidth = 100 + +const styles = createStyle({ + text: { + // paddingLeft: 4, + // paddingRight: 4, + // borderRadius: 2, + // lineHeight: 12, + // marginTop: 2, + marginLeft: 5, + // marginRight: 5, + // marginBottom: 2, + // alignSelf: 'flex-start', + alignSelf: 'center', + }, +}) + +export type BadgeType = 'normal' | 'secondary' | 'tertiary' + +export default memo(({ type = 'normal', children }: { + type?: BadgeType + children: string +}) => { + const theme = useTheme() + // console.log(visible) + const colors = useMemo(() => { + const colors = { textColor: '' } + switch (type) { + case 'normal': + // colors.bgColor = theme.primary + colors.textColor = theme['c-badge-primary'] + break + case 'secondary': + // colors.bgColor = theme.primary + colors.textColor = theme['c-badge-secondary'] + break + case 'tertiary': + // colors.bgColor = theme.primary + colors.textColor = theme['c-badge-tertiary'] + break + } + return colors + }, [type, theme]) + + return <Text style={styles.text} size={9} color={colors.textColor}>{children}</Text> +}) + diff --git a/src/components/common/Button.js b/src/components/common/Button.js deleted file mode 100644 index 94e71b2..0000000 --- a/src/components/common/Button.js +++ /dev/null @@ -1,30 +0,0 @@ -import React, { useMemo, useRef, useImperativeHandle, forwardRef } from 'react' -import { Pressable } from 'react-native' -import { useGetter } from '@/store' -// import { AppColors } from '@/theme' - -const Btn = ({ ripple: propsRipple, children, disabled, style, ...props }, ref) => { - const theme = useGetter('common', 'theme') - const btnRef = useRef() - const ripple = useMemo(() => ({ - color: theme.secondary30, - ...(propsRipple || {}), - }), [theme, propsRipple]) - - useImperativeHandle(ref, () => ({ - measure(callback) { - if (!btnRef.current) return - btnRef.current.measure(callback) - }, - })) - - return ( - <Pressable android_ripple={ripple} disabled={disabled} style={{ opacity: disabled ? 0.3 : 1, ...style }} {...props} ref={btnRef}> - {children} - </Pressable> - ) -} - - -export default forwardRef(Btn) - diff --git a/src/components/common/Button.tsx b/src/components/common/Button.tsx new file mode 100644 index 0000000..60228bf --- /dev/null +++ b/src/components/common/Button.tsx @@ -0,0 +1,46 @@ +import { useTheme } from '@/store/theme/hook' +import React, { useMemo, useRef, useImperativeHandle, forwardRef } from 'react' +import { Pressable, PressableProps, StyleSheet, View, ViewProps } from 'react-native' +// import { AppColors } from '@/theme' + + +export interface BtnProps extends PressableProps { + ripple?: PressableProps['android_ripple'] + style?: ViewProps['style'] + onChangeText?: (value: string) => void + onClearText?: () => void + children: React.ReactNode +} + + +export interface BtnType { + measure: (callback: (x: number, y: number, width: number, height: number, pageX: number, pageY: number) => void) => void +} + +export default forwardRef<BtnType, BtnProps>(({ ripple: propsRipple = {}, disabled, children, style, ...props }, ref) => { + const theme = useTheme() + const btnRef = useRef<View>(null) + const ripple = useMemo(() => ({ + color: theme['c-primary-light-200-alpha-700'], + ...propsRipple, + }), [theme, propsRipple]) + + useImperativeHandle(ref, () => ({ + measure(callback) { + btnRef.current?.measure(callback) + }, + })) + + return ( + <Pressable + android_ripple={ripple} + disabled={disabled} + style={StyleSheet.compose({ opacity: disabled ? 0.3 : 1 }, style)} + {...props} + ref={btnRef} + > + {children} + </Pressable> + ) +}) + diff --git a/src/components/common/CheckBox.js b/src/components/common/CheckBox.tsx similarity index 52% rename from src/components/common/CheckBox.js rename to src/components/common/CheckBox.tsx index 08b219f..0f28139 100644 --- a/src/components/common/CheckBox.js +++ b/src/components/common/CheckBox.tsx @@ -1,24 +1,34 @@ -import React, { useCallback, useEffect, useMemo, useState } from 'react' -import { StyleSheet, View, TouchableOpacity, Text } from 'react-native' +import React, { useCallback, useEffect, useState } from 'react' +import { View, TouchableOpacity } from 'react-native' import CheckBox from '@react-native-community/checkbox' -import { useGetter } from '@/store' +import { createStyle } from '@/utils/tools' +import { scaleSizeH, scaleSizeW } from '@/utils/pixelRatio' +import { useTheme } from '@/store/theme/hook' +import Text from './Text' -export default ({ check, label, children, onChange, disabled = false, need = false, marginRight = 0, marginBottom = 0 }) => { - const theme = useGetter('common', 'theme') +export interface CheckBoxProps { + check: boolean + label: string + children?: React.ReactNode + onChange: (check: boolean) => void + disabled?: boolean + need?: boolean + marginRight?: number + marginBottom?: number +} + +export default ({ check, label, children, onChange, disabled = false, need = false, marginRight = 0, marginBottom = 0 }: CheckBoxProps) => { + const theme = useTheme() const [isDisabled, setDisabled] = useState(false) - const tintColors = useMemo(() => { - return { - true: theme.secondary, - false: theme.normal35, - } - }, [theme]) - const disabledTintColors = useMemo(() => { - return { - true: theme.secondary30, - false: theme.normal60, - } - }, [theme]) + const tintColors = { + true: theme['c-primary'], + false: theme['c-600'], + } + const disabledTintColors = { + true: theme['c-primary-alpha-600'], + false: theme['c-400'], + } useEffect(() => { if (need) { @@ -34,33 +44,33 @@ export default ({ check, label, children, onChange, disabled = false, need = fal const handleLabelPress = useCallback(() => { if (isDisabled) return - onChange && onChange(!check) + onChange?.(!check) }, [isDisabled, onChange, check]) - const contentStyle = StyleSheet.compose(styles.content, { marginBottom }) - const labelStyle = StyleSheet.compose(styles.label, { marginRight }) + const contentStyle = { ...styles.content, marginBottom: scaleSizeH(marginBottom) } + const labelStyle = { ...styles.label, marginRight: scaleSizeW(marginRight) } return ( disabled ? ( <View style={contentStyle}> <CheckBox style={styles.checkbox} value={check} disabled={true} tintColors={disabledTintColors} /> - <View style={labelStyle}>{label ? <Text style={{ ...styles.name, color: theme.normal40 }}>{label}</Text> : children}</View> + <View style={labelStyle}>{label ? <Text style={styles.name} color={theme['c-500']}>{label}</Text> : children}</View> </View> ) : ( <View style={contentStyle}> - <CheckBox value={check} disabled={isDisabled} onValueChange={onChange} tintColors={tintColors} /> + <CheckBox value={check} disabled={isDisabled} onValueChange={onChange} tintColors={tintColors} scale={1} /> <TouchableOpacity style={labelStyle} activeOpacity={0.3} onPress={handleLabelPress}> - {label ? <Text style={{ ...styles.name, color: theme.normal }}>{label}</Text> : children} + {label ? <Text style={styles.name}>{label}</Text> : children} </TouchableOpacity> </View> ) ) } -const styles = StyleSheet.create({ +const styles = createStyle({ content: { flexGrow: 0, flexShrink: 1, @@ -79,11 +89,10 @@ const styles = StyleSheet.create({ // marginRight: 15, // alignItems: 'center', // backgroundColor: 'rgba(0,0,0,0.2)', - // paddingRight: 8, + paddingRight: 3, }, name: { marginTop: 2, - fontSize: 13, }, }) diff --git a/src/components/common/ChoosePath/List.js b/src/components/common/ChoosePath/List.js deleted file mode 100644 index 6ecf756..0000000 --- a/src/components/common/ChoosePath/List.js +++ /dev/null @@ -1,128 +0,0 @@ -import React, { useEffect, useState, useRef, useCallback } from 'react' -import { View, StyleSheet } from 'react-native' -import { readDir, externalStorageDirectoryPath } from '@/utils/fs' -import { toast } from '@/utils/tools' -// import { useTranslation } from '@/plugins/i18n' -import { useGetter, useDispatch } from '@/store' -import Modal from '@/components/common/Modal' - -import Header from './components/Header' -import Main from './components/Main' -import Footer from './components/Footer' -import { sizeFormate } from '@/utils' -// let prevPath = externalStorageDirectoryPath - -const caches = {} - -const handleReadDir = (path, dirOnly, filter, isRefresh = false) => { - const cacheKey = `${path}_${dirOnly ? 'true' : 'false'}_${filter ? filter.toString() : 'null'}` - if (!isRefresh && caches[cacheKey]) return Promise.resolve(caches[cacheKey]) - return readDir(path).then(paths => { - // console.log('read') - // prevPath = path - const list = [] - // console.log(paths) - for (const path of paths) { - // console.log(path) - const isDirectory = path.isDirectory() - if (dirOnly) { - if (!isDirectory) continue - list.push({ - name: path.name, - path: path.path, - mtime: path.mtime, - size: path.size, - isDir: true, - }) - } else { - if (filter != null && path.isFile() && !filter.test(path.name)) continue - - list.push({ - name: path.name, - path: path.path, - mtime: path.mtime, - size: path.size, - isDir: isDirectory, - sizeText: isDirectory ? '' : sizeFormate(path.size), - }) - } - } - - list.sort((a, b) => a.name.charCodeAt(0) - b.name.charCodeAt(0)) - caches[cacheKey] = list - return list - }) -} - -export default ({ dirOnly = false, filter, onConfirm, title, granted, visible, hide }) => { - const [path, setPath] = useState(externalStorageDirectoryPath) - const [list, setList] = useState([]) - const isUnmountedRef = useRef(true) - const isReadingDir = useRef(false) - const theme = useGetter('common', 'theme') - - useEffect(() => { - isUnmountedRef.current = false - return () => isUnmountedRef.current = true - }, []) - - const readDir = useCallback((path, dirOnly, filter, isRefresh) => { - if (isReadingDir.current) return - isReadingDir.current = true - return handleReadDir(path, dirOnly, filter, isRefresh).then(list => { - if (isUnmountedRef.current) return - setList(list) - setPath(path) - }).catch(err => { - toast(`Read dir error: ${err.message}`, 'long') - // console.log('prevPath', prevPath) - // if (isReadingDir.current) return - // setPath(prevPath) - }).finally(() => { - isReadingDir.current = false - }) - }, [setPath]) - - useEffect(() => { - // console.log(granted) - if (!granted) return - readDir(path, dirOnly, filter) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [granted, filter, dirOnly]) - - const onSetPath = useCallback(pathInfo => { - // console.log('onSetPath') - if (pathInfo.isDir) { - readDir(pathInfo.path, dirOnly, filter) - } else { - onConfirm(pathInfo.path) - // setPath(pathInfo.path) - } - }, [dirOnly, filter, onConfirm, readDir]) - - - const toParentDir = useCallback(() => { - const parentPath = path.substring(0, path.lastIndexOf('/')) - readDir(parentPath.length ? parentPath : externalStorageDirectoryPath, dirOnly, filter) - }, [dirOnly, filter, path, readDir]) - - // const dirList = useMemo(() => [parentDir, ...list], [list, parentDir]) - - return ( - <Modal visible={visible} hideModal={hide} bgHide={false}> - <View style={{ ...styles.container, backgroundColor: theme.primary }}> - <Header refreshDir={path => readDir(path, dirOnly, filter, true)} title={title} path={path} /> - <Main list={list} granted={granted} toParentDir={toParentDir} onSetPath={onSetPath} /> - <Footer onConfirm={() => onConfirm(path)} hide={hide} dirOnly={dirOnly} /> - </View> - </Modal> - ) -} - - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, -}) - diff --git a/src/components/common/ChoosePath/List.tsx b/src/components/common/ChoosePath/List.tsx new file mode 100644 index 0000000..54054aa --- /dev/null +++ b/src/components/common/ChoosePath/List.tsx @@ -0,0 +1,168 @@ +import React, { useEffect, useState, useRef, forwardRef, useImperativeHandle } from 'react' +import { View } from 'react-native' +import { readDir, externalStorageDirectoryPath } from '@/utils/fs' +import { createStyle, toast } from '@/utils/tools' +// import { useTranslation } from '@/plugins/i18n' +import Modal, { type ModalType } from '@/components/common/Modal' + +import Header from './components/Header' +import Main from './components/Main' +import Footer from './components/Footer' +import { sizeFormate } from '@/utils' +import { useTheme } from '@/store/theme/hook' +import { type PathItem } from './components/ListItem' +// let prevPath = externalStorageDirectoryPath + +const caches = new Map<string, PathItem[]>() + +const handleReadDir = async(path: string, dirOnly: boolean, filter?: RegExp, isRefresh = false) => { + const cacheKey = `${path}_${dirOnly ? 'true' : 'false'}_${filter ? filter.toString() : 'null'}` + if (!isRefresh && caches.has(cacheKey)) return caches.get(cacheKey) as PathItem[] + return readDir(path).then(paths => { + // console.log('read') + // prevPath = path + const list = [] as PathItem[] + // console.log(paths) + for (const path of paths) { + // console.log(path) + const isDirectory = path.isDirectory() + if (dirOnly) { + if (!isDirectory) continue + list.push({ + name: path.name, + path: path.path, + mtime: path.mtime, + size: path.size, + isDir: true, + sizeText: '', + }) + } else { + if (filter != null && path.isFile() && !filter.test(path.name)) continue + + list.push({ + name: path.name, + path: path.path, + mtime: path.mtime, + size: path.size, + isDir: isDirectory, + sizeText: isDirectory ? '' : sizeFormate(path.size), + }) + } + } + + list.sort((a, b) => a.name.charCodeAt(0) - b.name.charCodeAt(0)) + caches.set(cacheKey, list) + return list + }) +} + +interface ReadOptions { + title: string + dirOnly: boolean + filter?: RegExp +} +const initReadOptions = {} +export interface ListProps { + onConfirm: (path: string) => void + onHide?: () => void +} + +export interface ListType { + show: (title: string, dirOnly?: boolean, filter?: RegExp) => void + hide: () => void +} + +export default forwardRef<ListType, ListProps>(({ + onConfirm, + onHide = () => {}, +}: ListProps, ref) => { + const [path, setPath] = useState(externalStorageDirectoryPath) + const [list, setList] = useState<PathItem[]>([]) + const isUnmountedRef = useRef(true) + const readOptions = useRef<ReadOptions>(initReadOptions as ReadOptions) + const isReadingDir = useRef(false) + const modalRef = useRef<ModalType>(null) + const theme = useTheme() + + useImperativeHandle(ref, () => ({ + show(title, dirOnly = false, filter) { + readOptions.current = { + title, + dirOnly, + filter, + } + modalRef.current?.setVisible(true) + void readDir(path, dirOnly, filter) + }, + hide() { + modalRef.current?.setVisible(false) + }, + })) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + const readDir = async(path: string, dirOnly: boolean, filter?: RegExp, isRefresh?: boolean) => { + if (isReadingDir.current) return + isReadingDir.current = true + return handleReadDir(path, dirOnly, filter, isRefresh).then(list => { + if (isUnmountedRef.current) return + setList(list) + setPath(path) + }).catch((err: any) => { + toast(`Read dir error: ${err.message as string}`, 'long') + // console.log('prevPath', prevPath) + // if (isReadingDir.current) return + // setPath(prevPath) + }).finally(() => { + isReadingDir.current = false + }) + } + + const onSetPath = (pathInfo: PathItem) => { + // console.log('onSetPath') + if (pathInfo.isDir) { + void readDir(pathInfo.path, readOptions.current.dirOnly, readOptions.current.filter) + } else { + onConfirm(pathInfo.path) + // setPath(pathInfo.path) + } + } + + const toParentDir = () => { + const parentPath = path.substring(0, path.lastIndexOf('/')) + void readDir(parentPath.length ? parentPath : externalStorageDirectoryPath, readOptions.current.dirOnly, readOptions.current.filter) + } + + const handleHide = () => { + modalRef.current?.setVisible(false) + onHide() + } + + // const dirList = useMemo(() => [parentDir, ...list], [list, parentDir]) + + return ( + <Modal ref={modalRef} bgHide={false} statusBarPadding={false}> + <View style={{ ...styles.container, backgroundColor: theme['c-content-background'] }}> + <Header + onRefreshDir={async(path) => readDir(path, readOptions.current.dirOnly, readOptions.current.filter, true)} + title={readOptions.current.title} + path={path} /> + <Main list={list} toParentDir={toParentDir} onSetPath={onSetPath} /> + <Footer onConfirm={() => { onConfirm(path) }} onHide={handleHide} dirOnly={readOptions.current.dirOnly} /> + </View> + </Modal> + ) +}) + + +const styles = createStyle({ + container: { + flex: 1, + }, +}) + diff --git a/src/components/common/ChoosePath/components/Footer.js b/src/components/common/ChoosePath/components/Footer.js deleted file mode 100644 index bc1819e..0000000 --- a/src/components/common/ChoosePath/components/Footer.js +++ /dev/null @@ -1,40 +0,0 @@ -import React, { memo } from 'react' -import { View, StyleSheet, Text } from 'react-native' -import { useTranslation } from '@/plugins/i18n' -import { useGetter } from '@/store' -import Button from '@/components/common/Button' -import { BorderWidths } from '@/theme' - -export default memo(({ onConfirm, hide, dirOnly }) => { - const { t } = useTranslation() - const theme = useGetter('common', 'theme') - - return ( - <View style={{ ...styles.footer, borderTopColor: theme.secondary30 }} > - <Button style={{ ...styles.footerBtn, backgroundColor: theme.secondary45, width: dirOnly ? '50%' : '100%' }} onPress={hide}> - <Text style={{ color: theme.secondary_5 }}>{t('cancel')}</Text> - </Button> - {dirOnly - ? <Button style={{ ...styles.footerBtn, backgroundColor: theme.secondary45 }} onPress={onConfirm}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>{t('confirm')}</Text> - </Button> - : null - } - </View> - ) -}) - -const styles = StyleSheet.create({ - footer: { - flexGrow: 0, - flexShrink: 0, - flexDirection: 'row', - borderTopWidth: BorderWidths.normal2, - }, - footerBtn: { - width: '50%', - paddingTop: 15, - paddingBottom: 15, - alignItems: 'center', - }, -}) diff --git a/src/components/common/ChoosePath/components/Footer.tsx b/src/components/common/ChoosePath/components/Footer.tsx new file mode 100644 index 0000000..3e2b15f --- /dev/null +++ b/src/components/common/ChoosePath/components/Footer.tsx @@ -0,0 +1,45 @@ +import React, { memo } from 'react' +import { View, StyleSheet } from 'react-native' +import Button from '@/components/common/Button' +import Text from '@/components/common/Text' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' + +export default memo(({ onConfirm, onHide, dirOnly }: { + onConfirm: () => void + onHide: () => void + dirOnly: boolean +}) => { + const t = useI18n() + const theme = useTheme() + + return ( + <View style={{ ...styles.footer, backgroundColor: theme['c-content-background'] }}> + <Button style={{ ...styles.footerBtn, width: dirOnly ? '50%' : '100%' }} onPress={onHide}> + <Text color={theme['c-button-font']}>{t('cancel')}</Text> + </Button> + {dirOnly + ? <Button style={styles.footerBtn} onPress={onConfirm}> + <Text color={theme['c-button-font']}>{t('confirm')}</Text> + </Button> + : null + } + </View> + ) +}) + +const styles = StyleSheet.create({ + footer: { + flexGrow: 0, + flexShrink: 0, + flexDirection: 'row', + // borderTopWidth: BorderWidths.normal, + elevation: 8, + }, + footerBtn: { + width: '50%', + paddingTop: 16, + paddingBottom: 16, + alignItems: 'center', + }, +}) diff --git a/src/components/common/ChoosePath/components/Header.js b/src/components/common/ChoosePath/components/Header.js deleted file mode 100644 index 3bc6cb7..0000000 --- a/src/components/common/ChoosePath/components/Header.js +++ /dev/null @@ -1,127 +0,0 @@ -import React, { useCallback, memo, useRef, useState } from 'react' -import { StyleSheet, View, Text, TouchableOpacity, StatusBar, InteractionManager } from 'react-native' -import { useGetter } from '@/store' -import { Icon } from '@/components/common/Icon' -import Input from '@/components/common/Input' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import { useTranslation } from '@/plugins/i18n' -import { toast } from '@/utils/tools' -import { mkdir } from '@/utils/fs' -const filterFileName = /[\\/:*?#"<>|]/ - -export default memo(({ title, path, refreshDir }) => { - const theme = useGetter('common', 'theme') - const [visibleNewFolder, setVisibleNewFolder] = useState(false) - const { t } = useTranslation() - const [text, setText] = useState('') - // const moreButtonRef = useRef() - // const handleShowMenu = useCallback(() => { - // if (moreButtonRef.current && moreButtonRef.current.measure) { - // moreButtonRef.current.measure((fx, fy, width, height, px, py) => { - // // console.log(fx, fy, width, height, px, py) - // showMenu(item, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) - // }) - // } - // }, [item, index, showMenu]) - - const refresh = useCallback(() => { - InteractionManager.runAfterInteractions(() => { - refreshDir(path) - }) - }, [refreshDir, path]) - - const handleCancelNewFolderAlert = useCallback(() => { - setVisibleNewFolder(false) - setText('') - }, []) - const handleConfirmNewFolderAlert = useCallback(() => { - if (filterFileName.test(text)) { - toast(t('create_new_folder_error_tip'), 'long') - return - } - const newPath = `${path}/${text}` - mkdir(newPath).then(() => { - refreshDir(path).then(() => { - refreshDir(newPath) - }) - setText('') - }).catch(err => { - toast('Create failed: ' + err.message) - }) - setVisibleNewFolder(false) - }, [path, refreshDir, t, text]) - - return ( - <> - <View style={{ ...styles.header, backgroundColor: theme.secondary }} onStartShouldSetResponder={() => true}> - <View style={styles.titleContent}> - <Text style={{ ...styles.title, color: theme.primary }} numberOfLines={1}>{title}</Text> - <Text style={{ color: theme.primary, fontSize: 12 }} numberOfLines={1}>{path}</Text> - </View> - <View style={styles.actions}> - <TouchableOpacity style={styles.actionBtn} onPress={() => setVisibleNewFolder(true)}><Icon name="folder-plus" style={{ color: theme.primary, fontSize: 20 }} /></TouchableOpacity> - <TouchableOpacity style={styles.actionBtn} onPress={refresh}><Icon name="autorenew" style={{ color: theme.primary, fontSize: 20 }} /></TouchableOpacity> - </View> - </View> - <ConfirmAlert - visible={visibleNewFolder} - onHide={handleCancelNewFolderAlert} - onConfirm={handleConfirmNewFolderAlert} - > - <View style={styles.newFolderContent}> - <Text style={{ color: theme.normal, marginBottom: 5 }}>{t('create_new_folder')}</Text> - <Input - placeholder={t('create_new_folder_tip')} - value={text} - onChangeText={setText} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} - /> - </View> - </ConfirmAlert> - </> - ) -}) - -const styles = StyleSheet.create({ - header: { - flexGrow: 0, - flexShrink: 0, - flexDirection: 'row', - paddingLeft: 15, - paddingRight: 15, - paddingTop: StatusBar.currentHeight, - alignItems: 'center', - }, - titleContent: { - flexGrow: 1, - flexShrink: 1, - height: 57, - paddingRight: 5, - // paddingBottom: 10, - }, - title: { - fontSize: 16, - paddingTop: 10, - }, - actions: { - flexDirection: 'row', - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - actionBtn: { - padding: 8, - }, - newFolderContent: { - flexShrink: 1, - flexDirection: 'column', - }, - input: { - flexGrow: 1, - flexShrink: 1, - minWidth: 240, - borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, - }, -}) - diff --git a/src/components/common/ChoosePath/components/Header.tsx b/src/components/common/ChoosePath/components/Header.tsx new file mode 100644 index 0000000..debe479 --- /dev/null +++ b/src/components/common/ChoosePath/components/Header.tsx @@ -0,0 +1,179 @@ +import React, { forwardRef, memo, useImperativeHandle, useRef, useState } from 'react' +import { View, TouchableOpacity } from 'react-native' +import Input, { InputType } from '@/components/common/Input' +import Text from '@/components/common/Text' +import { Icon } from '@/components/common/Icon' +import StatusBar from '@/components/common/StatusBar' +import ConfirmAlert, { ConfirmAlertType } from '@/components/common/ConfirmAlert' +import { createStyle, toast } from '@/utils/tools' +import { mkdir } from '@/utils/fs' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +const filterFileName = /[\\/:*?#"<>|]/ + + +interface NameInputType { + setName: (text: string) => void + getText: () => string + focus: () => void +} +const NameInput = forwardRef<NameInputType, {}>((props, ref) => { + const theme = useTheme() + const [text, setText] = useState('') + const inputRef = useRef<InputType>(null) + + useImperativeHandle(ref, () => ({ + getText() { + return text.trim() + }, + setName(text) { + setText(text) + }, + focus() { + inputRef.current?.focus() + }, + })) + + return ( + <Input + ref={inputRef} + placeholder={global.i18n.t('create_new_folder_tip')} + value={text} + onChangeText={setText} + style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} + /> + ) +}) + + +export default memo(({ title, path, onRefreshDir }: { + title: string + path: string + onRefreshDir: (dir: string) => Promise<void> +}) => { + const theme = useTheme() + const confirmAlertRef = useRef<ConfirmAlertType>(null) + const nameInputRef = useRef<NameInputType>(null) + + const refresh = () => { + void onRefreshDir(path) + } + + const handleShow = () => { + confirmAlertRef.current?.setVisible(true) + requestAnimationFrame(() => { + setTimeout(() => { + nameInputRef.current?.focus() + }, 300) + }) + } + + const handleHideNewFolderAlert = () => { + nameInputRef.current?.setName('') + } + const handleConfirmNewFolderAlert = () => { + const text = nameInputRef.current?.getText() ?? '' + if (!text) return + if (filterFileName.test(text)) { + toast(global.i18n.t('create_new_folder_error_tip'), 'long') + return + } + const newPath = `${path}/${text}` + mkdir(newPath).then(() => { + void onRefreshDir(path).then(() => { + void onRefreshDir(newPath) + }) + nameInputRef.current?.setName('') + }).catch((err: any) => { + toast('Create failed: ' + (err.message as string)) + }) + confirmAlertRef.current?.setVisible(false) + } + + return ( + <> + <View style={{ + ...styles.header, + height: scaleSizeH(50) + StatusBar.currentHeight, + paddingTop: StatusBar.currentHeight, + backgroundColor: theme['c-content-background'], + }} onStartShouldSetResponder={() => true}> + <View style={styles.titleContent}> + <Text color={theme['c-primary-font']} numberOfLines={1}>{title}</Text> + <Text style={styles.subTitle} color={theme['c-primary-font']} size={13} numberOfLines={1}>{path}</Text> + </View> + <View style={styles.actions}> + <TouchableOpacity style={styles.actionBtn} onPress={handleShow}> + <Icon name="add_folder" color={theme['c-primary-font']} size={22} /> + </TouchableOpacity> + <TouchableOpacity style={styles.actionBtn} onPress={refresh}> + <Icon name="available_updates" color={theme['c-primary-font']} size={22} /> + </TouchableOpacity> + </View> + </View> + <ConfirmAlert + onHide={handleHideNewFolderAlert} + onConfirm={handleConfirmNewFolderAlert} + ref={confirmAlertRef} + > + <View style={styles.newFolderContent}> + <Text style={styles.newFolderTitle}>{global.i18n.t('create_new_folder')}</Text> + <NameInput ref={nameInputRef} /> + </View> + </ConfirmAlert> + </> + ) +}) + +const styles = createStyle({ + header: { + flexGrow: 0, + flexShrink: 0, + flexDirection: 'row', + paddingLeft: 15, + paddingRight: 15, + alignItems: 'center', + elevation: 2, + // borderBottomWidth: BorderWidths.normal, + }, + titleContent: { + flexGrow: 1, + flexShrink: 1, + // height: 57, + // paddingRight: 5, + // paddingBottom: 10, + }, + // title: { + // paddingTop: 10, + // }, + subTitle: { + paddingTop: 1, + }, + actions: { + flexDirection: 'row', + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + actionBtn: { + paddingTop: 8, + paddingBottom: 8, + paddingLeft: 6, + paddingRight: 6, + marginLeft: 10, + }, + newFolderContent: { + flexShrink: 1, + flexDirection: 'column', + }, + newFolderTitle: { + marginBottom: 5, + }, + input: { + flexGrow: 1, + flexShrink: 1, + minWidth: 240, + borderRadius: 4, + paddingTop: 2, + paddingBottom: 2, + }, +}) + diff --git a/src/components/common/ChoosePath/components/ListItem.js b/src/components/common/ChoosePath/components/ListItem.tsx similarity index 54% rename from src/components/common/ChoosePath/components/ListItem.js rename to src/components/common/ChoosePath/components/ListItem.tsx index 5daf196..3acf41c 100644 --- a/src/components/common/ChoosePath/components/ListItem.js +++ b/src/components/common/ChoosePath/components/ListItem.tsx @@ -1,12 +1,25 @@ -import React, { useCallback, memo, useRef } from 'react' -import { StyleSheet, View, Text, TouchableOpacity } from 'react-native' -import { useGetter } from '@/store' -import { BorderWidths } from '@/theme' +import React, { memo } from 'react' +import { View, TouchableOpacity } from 'react-native' import { Icon } from '@/components/common/Icon' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +export interface PathItem { + name: string + path: string + isDir: boolean + mtime?: Date + desc?: string + size?: number + sizeText?: string +} -export default memo(({ item, onPress }) => { - const theme = useGetter('common', 'theme') +export default memo(({ item, onPress }: { + item: PathItem + onPress: (item: PathItem) => void +}) => { + const theme = useTheme() // const moreButtonRef = useRef() // const handleShowMenu = useCallback(() => { @@ -19,21 +32,23 @@ export default memo(({ item, onPress }) => { // }, [item, index, showMenu]) return ( - <View style={{ ...styles.listItem, borderBottomWidth: BorderWidths.normal, borderBottomColor: theme.borderColor2 }}> + <View style={styles.listItem}> <TouchableOpacity style={styles.listItem} onPress={ () => { onPress(item) } }> <View style={styles.itemInfo}> - <View style={styles.listItemTitle}> - <Text style={{ ...styles.listItemTitleText, color: theme.normal }}>{item.name}</Text> - </View> - <View style={styles.row2}><Text style={{ ...styles.listItemDesc, color: theme.normal50 }} numberOfLines={1}>{item.mtime ? new Date(item.mtime).toLocaleString() : item.desc}</Text></View> + <Text style={styles.listItemTitleText}>{item.name}</Text> + <Text style={styles.listItemDesc} size={12} color={theme['c-font-label']} numberOfLines={1}>{item.mtime ? new Date(item.mtime).toLocaleString() : item.desc}</Text> </View> - {item.isDir ? <Icon name="chevron-right-2" style={{ color: theme.secondary20, fontSize: 18 }} /> : <Text style={{ ...styles.size, color: theme.normal40 }}>{item.sizeText}</Text>} + { + item.isDir + ? <Icon name="chevron-right" color={theme['c-primary-light-100-alpha-600']} size={18} /> + : <Text style={styles.size} size={12} color={theme['c-font-label']}>{item.sizeText}</Text> + } </TouchableOpacity> </View> ) }) -const styles = StyleSheet.create({ +const styles = createStyle({ listItem: { width: '100%', flexDirection: 'row', @@ -49,22 +64,17 @@ const styles = StyleSheet.create({ paddingTop: 10, paddingBottom: 10, }, - listItemTitle: { + listItemTitleText: { flexDirection: 'row', alignItems: 'flex-end', - }, - listItemTitleText: { // backgroundColor: 'rgba(0,0,0,0.2)', flexGrow: 0, flexShrink: 1, - fontSize: 15, }, listItemDesc: { - fontSize: 11, paddingTop: 2, }, size: { - fontSize: 11, alignSelf: 'flex-end', marginBottom: 10, }, diff --git a/src/components/common/ChoosePath/components/Main.js b/src/components/common/ChoosePath/components/Main.js deleted file mode 100644 index 5224c95..0000000 --- a/src/components/common/ChoosePath/components/Main.js +++ /dev/null @@ -1,57 +0,0 @@ -import React, { useMemo } from 'react' -import { View, StyleSheet, FlatList, Text } from 'react-native' -import { useTranslation } from '@/plugins/i18n' - -import ListItem from './ListItem' - - -export default ({ granted, list, onSetPath, toParentDir }) => { - const { t } = useTranslation() - - const ParentItemComponent = useMemo(() => ( - <ListItem style={{ flexGrow: 0, flexShrink: 0 }} item={{ - name: '..', - desc: t('parent_dir_name'), - isDir: true, - }} onPress={toParentDir} /> - ), [t, toParentDir]) - - const ListComponent = useMemo(() => ( - <FlatList - keyboardShouldPersistTaps={'always'} - style={styles.list} - data={list} - renderItem={({ item }) => <ListItem item={item} onPress={onSetPath} />} - keyExtractor={item => item.path + '/' + item.name} - removeClippedSubviews={true} - /> - ), [list, onSetPath]) - - // const dirList = useMemo(() => [parentDir, ...list], [list, parentDir]) - - return ( - <View style={styles.main}> - { - granted - ? <> - {ParentItemComponent} - {ListComponent} - </> - : null - } - </View> - ) -} - - -const styles = StyleSheet.create({ - main: { - flexGrow: 1, - flexShrink: 1, - }, - list: { - flexGrow: 1, - flexShrink: 1, - }, -}) - diff --git a/src/components/common/ChoosePath/components/Main.tsx b/src/components/common/ChoosePath/components/Main.tsx new file mode 100644 index 0000000..dbeb5dd --- /dev/null +++ b/src/components/common/ChoosePath/components/Main.tsx @@ -0,0 +1,61 @@ +import { useI18n } from '@/lang' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import React, { useMemo } from 'react' +import { View, FlatList } from 'react-native' + +import ListItem, { PathItem } from './ListItem' + + +export default ({ list, onSetPath, toParentDir }: { + list: PathItem[] + onSetPath: (item: PathItem) => void + toParentDir: () => void +}) => { + const t = useI18n() + const theme = useTheme() + + const ParentItemComponent = useMemo(() => ( + <View style={{ backgroundColor: theme['c-primary-light-700-alpha-900'] }}> + <ListItem item={{ + name: '..', + desc: t('parent_dir_name'), + isDir: true, + path: '', + }} onPress={toParentDir} /> + </View> + ), [t, theme, toParentDir]) + + const ListComponent = useMemo(() => ( + <FlatList + keyboardShouldPersistTaps={'always'} + style={styles.list} + data={list} + renderItem={({ item }) => <ListItem item={item} onPress={onSetPath} />} + keyExtractor={item => item.path + '/' + item.name} + removeClippedSubviews={true} + /> + ), [list, onSetPath]) + + // const dirList = useMemo(() => [parentDir, ...list], [list, parentDir]) + + return ( + <View style={styles.main}> + {ParentItemComponent} + {ListComponent} + </View> + ) +} + + +const styles = createStyle({ + main: { + flexGrow: 1, + flexShrink: 1, + }, + list: { + flexGrow: 1, + flexShrink: 1, + }, +}) + diff --git a/src/components/common/ChoosePath/index.js b/src/components/common/ChoosePath/index.js deleted file mode 100644 index 32df1ac..0000000 --- a/src/components/common/ChoosePath/index.js +++ /dev/null @@ -1,78 +0,0 @@ -import React, { memo, useCallback, useEffect, useState, useRef } from 'react' -// import { StyleSheet, View, Text, StatusBar, ScrollView } from 'react-native' - -// import { useGetter, useDispatch } from '@/store' -import List from './List' - -import { useTranslation } from '@/plugins/i18n' -import { checkStoragePermissions, requestStoragePermission } from '@/utils/permissions' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import { toast } from '@/utils/tools' - - -export default ({ - visible = false, - hide = () => {}, - dirOnly = false, - title = '', - filter, - onConfirm = () => {}, -}) => { - const { t } = useTranslation() - const [granted, setGranted] = useState(false) - const [visibleTips, setVisibleTips] = useState(false) - - useEffect(() => { - if (visible) { - checkStoragePermissions().then(isGranted => { - // console.log(isGranted) - if (isGranted) { - setGranted(isGranted) - } else { - setVisibleTips(true) - } - }) - } - }, [visible]) - - const handleTipsCancel = useCallback(() => { - toast(t('disagree_tip'), 'long') - setVisibleTips(false) - hide() - }, [t, hide]) - const handleTipsConfirm = useCallback(() => { - setVisibleTips(false) - if (granted === null) return hide() - requestStoragePermission().then(result => { - // console.log(result) - setGranted(result) - if (!result) { - setVisibleTips(true) - toast(t('storage_permission_tip_disagree'), 'long') - } - }) - }, [granted, t, hide]) - - return ( - <> - <List - dirOnly={dirOnly} - filter={filter} - title={title} - granted={granted} - hide={hide} - onConfirm={onConfirm} - visible={visible} /> - <ConfirmAlert - visible={visibleTips} - onHide={handleTipsCancel} - onConfirm={handleTipsConfirm} - bgHide={false} - closeBtn={false} - showCancel={granted !== null} - cancelText={t('disagree')} - confirmText={t('agree')} - text={t(granted === null ? 'storage_permission_tip_disagree_ask_again' : 'storage_permission_tip_request')} /> - </> - ) -} diff --git a/src/components/common/ChoosePath/index.tsx b/src/components/common/ChoosePath/index.tsx new file mode 100644 index 0000000..6b71099 --- /dev/null +++ b/src/components/common/ChoosePath/index.tsx @@ -0,0 +1,83 @@ +import React, { useState, useRef, forwardRef, useImperativeHandle } from 'react' +// import { StyleSheet, View, Text, StatusBar, ScrollView } from 'react-native' + +// import { useGetter, useDispatch } from '@/store' +import List, { ListType } from './List' + +import ConfirmAlert, { ConfirmAlertType } from '@/components/common/ConfirmAlert' +import { checkStoragePermissions, requestStoragePermission, toast } from '@/utils/tools' +import { useI18n } from '@/lang' + +interface ReadOptions { + title: string + dirOnly?: boolean + filter?: RegExp +} +const initReadOptions = {} + +interface ChoosePathProps { + onConfirm: (path: string) => void +} + +export interface ChoosePathType { + show: (options: ReadOptions) => void +} + +export default forwardRef<ChoosePathType, ChoosePathProps>(({ + onConfirm = () => {}, +}: ChoosePathProps, ref) => { + const t = useI18n() + const listRef = useRef<ListType>(null) + const confirmAlertRef = useRef<ConfirmAlertType>(null) + const [deny, setDeny] = useState(false) + const readOptions = useRef<ReadOptions>(initReadOptions as ReadOptions) + + useImperativeHandle(ref, () => ({ + show(options) { + void checkStoragePermissions().then(isGranted => { + readOptions.current = options + if (isGranted) { + listRef.current?.show(options.title, options.dirOnly, options.filter) + } else { + confirmAlertRef.current?.setVisible(true) + } + }) + }, + })) + + const handleTipsCancel = () => { + toast(t('disagree_tip'), 'long') + } + const handleTipsConfirm = () => { + confirmAlertRef.current?.setVisible(false) + void requestStoragePermission().then(result => { + // console.log(result) + setDeny(result == null) + if (result) { + listRef.current?.show(readOptions.current.title, readOptions.current.dirOnly, readOptions.current.filter) + } else { + toast(t('storage_permission_tip_disagree'), 'long') + } + }) + } + const onPathConfirm = (path: string) => { + listRef.current?.hide() + onConfirm(path) + } + + return ( + <> + <List ref={listRef} onConfirm={onPathConfirm} /> + <ConfirmAlert + ref={confirmAlertRef} + onCancel={handleTipsCancel} + onConfirm={handleTipsConfirm} + bgHide={false} + closeBtn={false} + showConfirm={!deny} + cancelText={t('disagree')} + confirmText={t('agree')} + text={t(deny ? 'storage_permission_tip_disagree_ask_again' : 'storage_permission_tip_request')} /> + </> + ) +}) diff --git a/src/components/common/ConfirmAlert.js b/src/components/common/ConfirmAlert.js deleted file mode 100644 index 3ae078d..0000000 --- a/src/components/common/ConfirmAlert.js +++ /dev/null @@ -1,102 +0,0 @@ -import React, { useMemo } from 'react' -import { StyleSheet, View, Text, ScrollView } from 'react-native' -import { useTranslation } from '@/plugins/i18n' -import Dialog from './Dialog' -import Button from './Button' -import { useGetter } from '@/store' - -const styles = StyleSheet.create({ - main: { - // flexGrow: 0, - flexShrink: 1, - marginTop: 15, - marginLeft: 5, - marginRight: 5, - marginBottom: 25, - }, - content: { - flexGrow: 0, - paddingLeft: 10, - paddingRight: 10, - }, - title: { - fontSize: 14, - }, - btns: { - flexDirection: 'row', - justifyContent: 'center', - paddingBottom: 15, - // paddingRight: 15, - }, - btnsDirection: { - paddingLeft: 15, - }, - btnsReversedDirection: { - paddingLeft: 15, - flexDirection: 'row-reverse', - }, - btn: { - flex: 1, - paddingTop: 10, - paddingBottom: 10, - paddingLeft: 10, - paddingRight: 10, - alignItems: 'center', - borderRadius: 4, - }, - btnDirection: { - marginRight: 15, - }, - btnReversedDirection: { - marginLeft: 15, - }, -}) - - -export default ({ - visible = false, - onHide = () => {}, - onCancel, - onConfirm = () => {}, - keyHide, - bgHide, - closeBtn, - title = '', - text = '', - cancelText = '', - confirmText = '', - showConfirm = true, - children, - reverseBtn = false, -}) => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - - const handleCancel = () => { - if (onCancel) { - onCancel() - } else { - onHide() - } - } - - return ( - <Dialog visible={visible} hideDialog={onHide} keyHide={keyHide} bgHide={bgHide} closeBtn={closeBtn} title={title}> - <View style={styles.main}> - <ScrollView style={styles.content} keyboardShouldPersistTaps={'always'}> - {children || <Text style={{ ...styles.title, color: theme.normal }}>{text}</Text>} - </ScrollView> - </View> - <View style={{ ...styles.btns, ...(reverseBtn ? styles.btnsReversedDirection : styles.btnsDirection) }}> - <Button style={{ ...styles.btn, ...(reverseBtn ? styles.btnReversedDirection : styles.btnDirection), backgroundColor: theme.secondary45 }} onPress={handleCancel}> - <Text style={{ color: theme.secondary_5 }}>{cancelText || t('cancel')}</Text> - </Button> - {showConfirm - ? <Button style={{ ...styles.btn, ...(reverseBtn ? styles.btnReversedDirection : styles.btnDirection), backgroundColor: theme.secondary45 }} onPress={onConfirm}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>{confirmText || t('confirm')}</Text> - </Button> - : null} - </View> - </Dialog> - ) -} diff --git a/src/components/common/ConfirmAlert.tsx b/src/components/common/ConfirmAlert.tsx new file mode 100644 index 0000000..4a0fd20 --- /dev/null +++ b/src/components/common/ConfirmAlert.tsx @@ -0,0 +1,124 @@ +import React, { forwardRef, useImperativeHandle, useRef } from 'react' +import { View, ScrollView } from 'react-native' +import Dialog, { type DialogType } from './Dialog' +import Button from './Button' +import { createStyle } from '@/utils/tools' +import { useI18n } from '@/lang/index' +import { useTheme } from '@/store/theme/hook' +import Text from './Text' + +const styles = createStyle({ + main: { + // flexGrow: 0, + flexShrink: 1, + marginTop: 15, + marginLeft: 5, + marginRight: 5, + marginBottom: 25, + }, + content: { + flexGrow: 0, + paddingLeft: 10, + paddingRight: 10, + }, + btns: { + flexDirection: 'row', + justifyContent: 'center', + paddingBottom: 15, + // paddingRight: 15, + }, + btnsDirection: { + paddingLeft: 15, + }, + btnsReversedDirection: { + paddingLeft: 15, + flexDirection: 'row-reverse', + }, + btn: { + flex: 1, + paddingTop: 9, + paddingBottom: 9, + paddingLeft: 10, + paddingRight: 10, + alignItems: 'center', + borderRadius: 4, + }, + btnDirection: { + marginRight: 15, + }, + btnReversedDirection: { + marginLeft: 15, + }, +}) + +export interface ConfirmAlertProps { + onCancel?: () => void + onHide?: () => void + onConfirm?: () => void + keyHide?: boolean + bgHide?: boolean + closeBtn?: boolean + title?: string + text?: string + cancelText?: string + confirmText?: string + showConfirm?: boolean + reverseBtn?: boolean + children?: React.ReactNode | React.ReactNode[] +} + +export interface ConfirmAlertType { + setVisible: (visible: boolean) => void +} + +export default forwardRef<ConfirmAlertType, ConfirmAlertProps>(({ + onHide, + onCancel, + onConfirm = () => {}, + keyHide, + bgHide, + closeBtn, + title = '', + text = '', + cancelText = '', + confirmText = '', + showConfirm = true, + children, + reverseBtn = false, +}: ConfirmAlertProps, ref) => { + const theme = useTheme() + const t = useI18n() + + const dialogRef = useRef<DialogType>(null) + + useImperativeHandle(ref, () => ({ + setVisible(visible: boolean) { + dialogRef.current?.setVisible(visible) + }, + })) + + const handleCancel = () => { + onCancel?.() + dialogRef.current?.setVisible(false) + } + + return ( + <Dialog onHide={onHide} keyHide={keyHide} bgHide={bgHide} closeBtn={closeBtn} title={title} ref={dialogRef}> + <View style={styles.main}> + <ScrollView style={styles.content} keyboardShouldPersistTaps={'always'}> + {children ?? <Text>{text}</Text>} + </ScrollView> + </View> + <View style={{ ...styles.btns, ...(reverseBtn ? styles.btnsReversedDirection : styles.btnsDirection) }}> + <Button style={{ ...styles.btn, ...(reverseBtn ? styles.btnReversedDirection : styles.btnDirection), backgroundColor: theme['c-button-background'] }} onPress={handleCancel}> + <Text color={theme['c-button-font']}>{cancelText || t('cancel')}</Text> + </Button> + {showConfirm + ? <Button style={{ ...styles.btn, ...(reverseBtn ? styles.btnReversedDirection : styles.btnDirection), backgroundColor: theme['c-button-background'] }} onPress={onConfirm}> + <Text color={theme['c-button-font']}>{confirmText || t('confirm')}</Text> + </Button> + : null} + </View> + </Dialog> + ) +}) diff --git a/src/components/common/Dialog.js b/src/components/common/Dialog.js deleted file mode 100644 index a84fb81..0000000 --- a/src/components/common/Dialog.js +++ /dev/null @@ -1,85 +0,0 @@ -import React, { useMemo } from 'react' -import { StyleSheet, View, Text, TouchableHighlight } from 'react-native' - -import Modal from './Modal' -import { Icon } from '@/components/common/Icon' -import { useGetter } from '@/store' -import { useKeyboard } from '@/utils/hooks' - -const styles = StyleSheet.create({ - centeredView: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - }, - modalView: { - maxWidth: '90%', - minWidth: '60%', - maxHeight: '78%', - // backgroundColor: 'white', - borderRadius: 4, - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 2, - // }, - // shadowOpacity: 0.25, - // shadowRadius: 4, - elevation: 3, - }, - header: { - flexGrow: 0, - flexShrink: 0, - flexDirection: 'row', - borderTopLeftRadius: 4, - borderTopRightRadius: 4, - height: 20, - }, - title: { - fontSize: 13, - paddingLeft: 5, - paddingRight: 25, - lineHeight: 20, - }, - closeBtn: { - position: 'absolute', - right: 0, - borderTopRightRadius: 4, - flexGrow: 0, - flexShrink: 0, - height: 20, - width: 20, - justifyContent: 'center', - alignItems: 'center', - }, -}) - - -export default ({ - visible = false, - hideDialog = () => {}, - keyHide = true, - bgHide = true, - closeBtn = true, - title = '', - children, -}) => { - const theme = useGetter('common', 'theme') - const { keyboardShown, keyboardHeight } = useKeyboard() - - const closeBtnComponent = useMemo(() => closeBtn ? <TouchableHighlight style={styles.closeBtn} underlayColor={theme.secondary_5} onPress={hideDialog}><Icon name="close" style={{ color: theme.secondary40, fontSize: 10 }} /></TouchableHighlight> : null, [closeBtn, hideDialog, theme]) - - return ( - <Modal visible={visible} hideModal={hideDialog} keyHide={keyHide} bgHide={bgHide} bgColor="rgba(50,50,50,.3)"> - <View style={{ ...styles.centeredView, paddingBottom: keyboardShown ? keyboardHeight : 0 }}> - <View style={{ ...styles.modalView, backgroundColor: theme.primary }} onStartShouldSetResponder={() => true}> - <View style={{ ...styles.header, backgroundColor: theme.secondary }}> - <Text style={{ ...styles.title, color: theme.primary }} numberOfLines={1}>{title}</Text> - {closeBtnComponent} - </View> - {children} - </View> - </View> - </Modal> - ) -} diff --git a/src/components/common/Dialog.tsx b/src/components/common/Dialog.tsx new file mode 100644 index 0000000..c6dece8 --- /dev/null +++ b/src/components/common/Dialog.tsx @@ -0,0 +1,111 @@ +import React, { useImperativeHandle, forwardRef, useMemo, useRef } from 'react' +import { View, TouchableHighlight } from 'react-native' + +import Modal, { type ModalType } from './Modal' +import { Icon } from '@/components/common/Icon' +import { useKeyboard } from '@/utils/hooks' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import Text from './Text' +import { scaleSizeH } from '@/utils/pixelRatio' + +const HEADER_HEIGHT = 20 +const styles = createStyle({ + centeredView: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + }, + modalView: { + maxWidth: '90%', + minWidth: '60%', + maxHeight: '78%', + // backgroundColor: 'white', + borderRadius: 4, + // shadowColor: '#000', + // shadowOffset: { + // width: 0, + // height: 2, + // }, + // shadowOpacity: 0.25, + // shadowRadius: 4, + elevation: 3, + }, + header: { + flexGrow: 0, + flexShrink: 0, + flexDirection: 'row', + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + height: HEADER_HEIGHT, + }, + title: { + paddingLeft: 5, + paddingRight: 25, + lineHeight: HEADER_HEIGHT, + }, + closeBtn: { + position: 'absolute', + right: 0, + borderTopRightRadius: 4, + flexGrow: 0, + flexShrink: 0, + height: HEADER_HEIGHT, + justifyContent: 'center', + alignItems: 'center', + }, +}) + +export interface DialogProps { + onHide?: () => void + keyHide?: boolean + bgHide?: boolean + closeBtn?: boolean + title?: string + children: React.ReactNode | React.ReactNode[] +} + +export interface DialogType { + setVisible: (visible: boolean) => void +} + +export default forwardRef<DialogType, DialogProps>(({ + onHide, + keyHide = true, + bgHide = true, + closeBtn = true, + title = '', + children, +}: DialogProps, ref) => { + const theme = useTheme() + const { keyboardShown, keyboardHeight } = useKeyboard() + const modalRef = useRef<ModalType>(null) + + useImperativeHandle(ref, () => ({ + setVisible(visible: boolean) { + modalRef.current?.setVisible(visible) + }, + })) + + const closeBtnComponent = useMemo(() => { + return closeBtn + ? <TouchableHighlight style={{ ...styles.closeBtn, width: scaleSizeH(HEADER_HEIGHT) }} underlayColor={theme['c-primary-dark-200-alpha-600']} onPress={() => modalRef.current?.setVisible(false)}> + <Icon name="close" color={theme['c-primary-dark-500-alpha-500']} size={10} /> + </TouchableHighlight> + : null + }, [closeBtn, theme]) + + return ( + <Modal onHide={onHide} keyHide={keyHide} bgHide={bgHide} bgColor="rgba(50,50,50,.3)" ref={modalRef}> + <View style={{ ...styles.centeredView, paddingBottom: keyboardShown ? keyboardHeight : 0 }}> + <View style={{ ...styles.modalView, backgroundColor: theme['c-content-background'] }} onStartShouldSetResponder={() => true}> + <View style={{ ...styles.header, backgroundColor: theme['c-primary-light-100-alpha-100'] }}> + <Text style={styles.title} size={13} color={theme['c-primary-light-1000']} numberOfLines={1}>{title}</Text> + {closeBtnComponent} + </View> + {children} + </View> + </View> + </Modal> + ) +}) diff --git a/src/components/common/DorpDownMenu.js b/src/components/common/DorpDownMenu.js deleted file mode 100644 index 29e85d5..0000000 --- a/src/components/common/DorpDownMenu.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { useState, useCallback, useRef } from 'react' -// import { View } from 'react-native' - -import Menu from './Menu' -import Button from './Button' - - -export default ({ - children, - menus = [], - onPress, - longPress, - width, - height, - center, -}) => { - const [visible, setVisible] = useState(false) - const [buttonPosition, setButtonPosition] = useState({}) - - const hideMenu = useCallback(() => { - setVisible(false) - }, [setVisible]) - - const buttonRef = useRef() - const setPosition = useCallback((callback = () => {}) => { - if (buttonRef.current && buttonRef.current.measure) { - buttonRef.current.measure((fx, fy, width, height, px, py) => { - // console.log(fx, fy, width, height, px, py) - setButtonPosition({ x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) - callback() - }) - } - }, []) - - const showMenu = useCallback(() => { - setPosition(() => { - setVisible(true) - }) - }, [setPosition, setVisible]) - - return ( - <Button ref={buttonRef} onPress={showMenu}> - {children} - <Menu menus={menus} - buttonPosition={buttonPosition} - center={center} - onPress={onPress} - longPress={longPress} - visible={visible} - hideMenu={hideMenu} - width={width} - height={height} - /> - </Button> - ) -} diff --git a/src/components/common/DorpDownMenu.tsx b/src/components/common/DorpDownMenu.tsx new file mode 100644 index 0000000..0a5dd33 --- /dev/null +++ b/src/components/common/DorpDownMenu.tsx @@ -0,0 +1,48 @@ +import React, { useRef } from 'react' +// import { View } from 'react-native' + +import Menu, { type MenuType, type MenuProps, type Menus } from './Menu' +import Button, { type BtnType } from './Button' +// import { useLayout } from '@/utils/hooks' + +export interface DorpDownMenuProps<T extends Menus> extends Omit<MenuProps<T>, 'width'> { + children: React.ReactNode +} + +export default <T extends Menus>({ + menus, + onPress, + height, + fontSize, + center, + children, + activeId, +}: DorpDownMenuProps<T>) => { + const buttonRef = useRef<BtnType>(null) + const menuRef = useRef<MenuType>(null) + + const showMenu = () => { + buttonRef.current?.measure((fx, fy, width, height, px, py) => { + // console.log(fx, fy, width, height, px, py) + menuRef.current?.show({ x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }, { + width, + height, + }) + }) + } + + return ( + <Button ref={buttonRef} onPress={showMenu}> + {children} + <Menu + ref={menuRef} + menus={menus} + center={center} + onPress={onPress} + fontSize={fontSize} + height={height} + activeId={activeId} + /> + </Button> + ) +} diff --git a/src/components/common/DorpDownPanel/Panel.js b/src/components/common/DorpDownPanel/Panel.tsx similarity index 54% rename from src/components/common/DorpDownPanel/Panel.js rename to src/components/common/DorpDownPanel/Panel.tsx index 895d4da..995c5eb 100644 --- a/src/components/common/DorpDownPanel/Panel.js +++ b/src/components/common/DorpDownPanel/Panel.tsx @@ -1,14 +1,16 @@ -import React, { useMemo, useCallback, memo } from 'react' -import { StyleSheet, View, Text, ScrollView, TouchableHighlight, TouchableWithoutFeedback } from 'react-native' +import React, { useMemo, useRef, useImperativeHandle, forwardRef, useState } from 'react' +import { View, TouchableWithoutFeedback } from 'react-native' import { useDimensions } from '@/utils/hooks' -import Modal from '@/components/common/Modal' +import Modal, { ModalType } from '@/components/common/Modal' +import { createStyle } from '@/utils/tools' // import { useGetter } from '@/store' // const menuItemHeight = 42 // const menuItemWidth = 100 +interface Position { w: number, h: number, x: number, y: number } -const styles = StyleSheet.create({ +const styles = createStyle({ menu: { position: 'absolute', // borderWidth: StyleSheet.hairlineWidth, @@ -32,9 +34,13 @@ const styles = StyleSheet.create({ const Panel = ({ buttonPosition, - panelStyle = {}, - hidePanel, + // panelStyle = {}, + onHide, children, +}: { + buttonPosition: Position + onHide: () => void + children: React.ReactNode | React.ReactNode[] }) => { // const dimensions = useDimensions() const { window: windowSize } = useDimensions() @@ -45,9 +51,9 @@ const Panel = ({ // console.log(dimensions) const style = useMemo(() => { const isBottom = buttonPosition.y > windowSize.height / 2 - let top - let height - let justifyContent + let top: number + let height: number + let justifyContent: 'flex-end' | 'flex-start' if (isBottom) { const buttonPositionY = Math.ceil(buttonPosition.y) height = buttonPositionY - windowSize.height * 0.3 @@ -69,7 +75,7 @@ const Panel = ({ }, [windowSize, buttonPosition]) return ( - <TouchableWithoutFeedback onPress={hidePanel}> + <TouchableWithoutFeedback onPress={onHide}> <View style={{ ...styles.menu, ...style }}> <View onStartShouldSetResponder={() => true}> {children} @@ -78,12 +84,39 @@ const Panel = ({ </TouchableWithoutFeedback> ) } +export interface PanelProps { + onHide?: () => void + keyHide?: boolean + bgHide?: boolean + closeBtn?: boolean + title?: string + children: React.ReactNode | React.ReactNode[] + // style: +} + +export interface PanelType { + show: (position: Position) => void + hide: () => void +} + +export default forwardRef<PanelType, PanelProps>(({ onHide, keyHide, bgHide, children }, ref) => { + const modalRef = useRef<ModalType>(null) + const [position, setPosition] = useState<Position>({ w: 0, h: 0, x: 0, y: 0 }) + + useImperativeHandle(ref, () => ({ + show(newPosition) { + setPosition(newPosition) + modalRef.current?.setVisible(true) + }, + hide() { + modalRef.current?.setVisible(false) + }, + })) -export default memo(({ visible, hidePanel, buttonPosition, children, panelStyle }) => { // console.log(visible) return ( - <Modal visible={visible} hideModal={hidePanel} onStartShouldSetResponder={() => true}> - <Panel buttonPosition={buttonPosition} panelStyle={panelStyle} visible={visible} hidePanel={hidePanel}> + <Modal ref={modalRef} onHide={onHide} onStartShouldSetResponder={() => true} keyHide={keyHide} bgHide={bgHide}> + <Panel buttonPosition={position} onHide={() => modalRef.current?.setVisible(false)}> {children} </Panel> </Modal> diff --git a/src/components/common/DorpDownPanel/index.js b/src/components/common/DorpDownPanel/index.js deleted file mode 100644 index b9f38d7..0000000 --- a/src/components/common/DorpDownPanel/index.js +++ /dev/null @@ -1,51 +0,0 @@ -import React, { useState, useCallback, useRef } from 'react' -// import { View } from 'react-native' - -import Panel from './Panel' -import Button from '@/components/common/Button' - - -export default ({ - children, - panelStyle, - PanelContent, - visible, - setVisible, -}) => { - const [buttonPosition, setButtonPosition] = useState({}) - - const hidePanel = useCallback(() => { - setVisible(false) - }, [setVisible]) - - const buttonRef = useRef() - const setPosition = useCallback((callback = () => {}) => { - if (buttonRef.current && buttonRef.current.measure) { - buttonRef.current.measure((fx, fy, width, height, px, py) => { - // console.log(fx, fy, width, height, px, py) - setButtonPosition({ x: px, y: py, w: width, h: height }) - callback() - }) - } - }, []) - - const showMenu = useCallback(() => { - setPosition(() => { - setVisible(true) - }) - }, [setPosition, setVisible]) - - return ( - <Button ref={buttonRef} onPress={showMenu}> - {children} - <Panel - buttonPosition={buttonPosition} - visible={visible} - panelStyle={panelStyle} - hidePanel={hidePanel} - > - {PanelContent} - </Panel> - </Button> - ) -} diff --git a/src/components/common/DorpDownPanel/index.tsx b/src/components/common/DorpDownPanel/index.tsx new file mode 100644 index 0000000..9f03814 --- /dev/null +++ b/src/components/common/DorpDownPanel/index.tsx @@ -0,0 +1,40 @@ +import React, { useRef, forwardRef } from 'react' +// import { View } from 'react-native' + +import Panel, { PanelType } from './Panel' +import Button, { BtnType } from '@/components/common/Button' + + +export interface DorpDownPanelProps { + onHide?: () => void + children: React.ReactNode | React.ReactNode[] + PanelContent: React.ReactNode | React.ReactNode[] +} +export interface DorpDownPanelType { + hide: () => void +} + +export default forwardRef<DorpDownPanelType, DorpDownPanelProps>(({ + children, + PanelContent, + onHide, +}) => { + const buttonRef = useRef<BtnType>(null) + const panelRef = useRef<PanelType>(null) + + const showMenu = () => { + buttonRef.current?.measure((fx, fy, width, height, px, py) => { + // console.log(fx, fy, width, height, px, py) + panelRef.current?.show({ x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) + }) + } + + return ( + <Button ref={buttonRef} onPress={showMenu}> + {children} + <Panel ref={panelRef} onHide={onHide}> + {PanelContent} + </Panel> + </Button> + ) +}) diff --git a/src/components/common/DrawerLayoutFixed.tsx b/src/components/common/DrawerLayoutFixed.tsx new file mode 100644 index 0000000..26aecaf --- /dev/null +++ b/src/components/common/DrawerLayoutFixed.tsx @@ -0,0 +1,73 @@ +import React, { forwardRef, useCallback, useRef, useState } from 'react' +import { DrawerLayoutAndroid, type DrawerLayoutAndroidProps, View, type LayoutChangeEvent } from 'react-native' +// import { getWindowSise } from '@/utils/tools' +import { usePageVisible } from '@/store/common/hook' +import { type COMPONENT_IDS } from '@/config/constant' + +interface Props extends DrawerLayoutAndroidProps { + visibleNavNames: COMPONENT_IDS[] + widthPercentage: number + widthPercentageMax?: number +} + +const DrawerLayoutFixed = forwardRef<DrawerLayoutAndroid, Props>(({ visibleNavNames, widthPercentage, widthPercentageMax, children, ...props }, ref) => { + const [w, setW] = useState<number | string>('100%') + const [drawerWidth, setDrawerWidth] = useState(0) + const changedRef = useRef({ width: 0, changed: false }) + + // 修复 DrawerLayoutAndroid 在导航到其他屏幕再返回后无法打开的问题 + usePageVisible(visibleNavNames, useCallback((visible) => { + if (!visible || !changedRef.current.width) return + changedRef.current.changed = true + // console.log('usePageVisible', visible, changedRef.current.width) + setW(changedRef.current.width - 1) + }, [])) + + const handleLayout = useCallback((e: LayoutChangeEvent) => { + // console.log('handleLayout', e.nativeEvent.layout.width, changedRef.current.width) + if (changedRef.current.changed) { + // setW(e.nativeEvent.layout.width - 1) + setW('100%') + changedRef.current.changed = false + } else { + const width = e.nativeEvent.layout.width + if (changedRef.current.width == width) return + changedRef.current.width = width + + // 重新设置面板宽度 + const wp = Math.floor(width * widthPercentage) + // console.log(wp, widthPercentageMax) + setDrawerWidth(widthPercentageMax ? Math.min(wp, widthPercentageMax) : wp) + + // 强制触发渲染以应用更改 + changedRef.current.changed = true + setW(width - 1) + } + }, [widthPercentage, widthPercentageMax]) + + return ( + <View + onLayout={handleLayout} + style={{ width: w, flex: 1 }} + > + <DrawerLayoutAndroid + ref={ref} + keyboardDismissMode="on-drag" + drawerWidth={drawerWidth} + {...props} + > + <View style={{ marginRight: w == '100%' ? 0 : -1, flex: 1 }}> + {children} + </View> + </DrawerLayoutAndroid> + </View> + ) +}) + +// const styles = createStyle({ +// container: { +// flex: 1, +// }, +// }) + +export default DrawerLayoutFixed diff --git a/src/components/common/Icon.js b/src/components/common/Icon.tsx similarity index 76% rename from src/components/common/Icon.js rename to src/components/common/Icon.tsx index fcac532..2f399d0 100644 --- a/src/components/common/Icon.js +++ b/src/components/common/Icon.tsx @@ -1,5 +1,8 @@ import { createIconSetFromIcoMoon } from 'react-native-vector-icons' import icoMoonConfig from '@/resources/fonts/selection.json' +import { scaleSizeW } from '@/utils/pixelRatio' +import { ComponentProps } from 'react' +import { useTheme } from '@/store/theme/hook' // import IconAntDesign from 'react-native-vector-icons/AntDesign' // import IconEntypo from 'react-native-vector-icons/Entypo' @@ -17,13 +20,19 @@ import icoMoonConfig from '@/resources/fonts/selection.json' // import IconSimpleLineIcons from 'react-native-vector-icons/SimpleLineIcons' -const Icon = createIconSetFromIcoMoon(icoMoonConfig) +const IcoMoon = createIconSetFromIcoMoon(icoMoonConfig) + // https://oblador.github.io/react-native-vector-icons/ -export { - Icon, +type IconType = ReturnType<typeof createIconSetFromIcoMoon> +export const Icon = ({ size = 15, color, ...props }: ComponentProps<IconType>) => { + const theme = useTheme() + return <IcoMoon size={scaleSizeW(size)} color={color ?? theme['c-font']} {...props} /> +} + +export { // IconAntDesign, // IconEntypo, // IconEvilIcons, diff --git a/src/components/common/Input.js b/src/components/common/Input.tsx similarity index 60% rename from src/components/common/Input.js rename to src/components/common/Input.tsx index 60f5ad9..5ef6ec9 100644 --- a/src/components/common/Input.js +++ b/src/components/common/Input.tsx @@ -1,27 +1,78 @@ import React, { useRef, useImperativeHandle, forwardRef, useCallback } from 'react' -import { TextInput, StyleSheet, View, TouchableOpacity } from 'react-native' +import { TextInput, View, TouchableOpacity, StyleSheet, TextInputProps } from 'react-native' import { Icon } from '@/components/common/Icon' -import { useGetter } from '@/store' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' -const Input = ({ onChangeText, onClearText, clearBtn, style, ...props }, ref) => { - const inputRef = useRef() - const theme = useGetter('common', 'theme') +const styles = createStyle({ + content: { + flexDirection: 'row', + // backgroundColor: 'rgba(0,0,0,0.1)', + flexGrow: 1, + flexShrink: 1, + // height: 38, + alignItems: 'center', + // paddingRight: 5, + }, + input: { + // backgroundColor: 'rgba(0,0,0,0.1)', + // backgroundColor: 'white', + borderRadius: 2, + paddingTop: 0, + paddingBottom: 0, + height: 32, + paddingLeft: 5, + paddingRight: 0, + flexGrow: 1, + flexShrink: 1, + // height: '100%', + // width: '100%', + fontSize: 14, + }, + clearBtnContent: { + flexGrow: 0, + flexShrink: 0, + }, + clearBtn: { + height: '70%', + paddingLeft: 5, + paddingRight: 5, + justifyContent: 'center', + // backgroundColor: 'rgba(0,0,0,0.2)', + }, +}) + +export interface InputProps extends TextInputProps { + onChangeText?: (value: string) => void + onClearText?: () => void + clearBtn?: boolean +} + + +export interface InputType { + blur: () => void + focus: () => void + clear: () => void + isFocused: () => boolean +} + +export default forwardRef<InputType, InputProps>(({ onChangeText, onClearText, clearBtn, style, ...props }, ref) => { + const inputRef = useRef<TextInput>(null) + const theme = useTheme() // const scaleClearBtn = useRef(new Animated.Value(0)).current useImperativeHandle(ref, () => ({ blur() { - if (!inputRef.current) return - inputRef.current.blur() + inputRef.current?.blur() }, focus() { - if (!inputRef.current) return - inputRef.current.focus() + inputRef.current?.focus() }, clear() { - inputRef.current.clear() + inputRef.current?.clear() }, isFocused() { - return inputRef.current.isFocused() + return inputRef.current?.isFocused() ?? false }, })) @@ -41,19 +92,19 @@ const Input = ({ onChangeText, onClearText, clearBtn, style, ...props }, ref) => // }, [scaleClearBtn]) const clearText = useCallback(() => { - inputRef.current.clear() + inputRef.current?.clear() // hideClearBtn() - onChangeText && onChangeText('') - onClearText && onClearText() + onChangeText?.('') + onClearText?.() }, [onChangeText, onClearText]) - const changeText = useCallback(text => { + const changeText = useCallback((text: string) => { // if (text.length) { // showClearBtn() // } else { // hideClearBtn() // } - onChangeText && onChangeText(text) + onChangeText?.(text) }, [onChangeText]) return ( @@ -61,17 +112,17 @@ const Input = ({ onChangeText, onClearText, clearBtn, style, ...props }, ref) => <TextInput autoCapitalize="none" onChangeText={changeText} - autoCompleteType="off" - style={{ ...styles.input, color: theme.normal, ...style }} - placeholderTextColor={theme.normal50} - selectionColor={theme.secondary10} + autoComplete="off" + style={StyleSheet.compose({ ...styles.input, color: theme['c-font'] }, style)} + placeholderTextColor={theme['c-primary-dark-100-alpha-600']} + selectionColor={theme['c-primary-light-100-alpha-300']} ref={inputRef} {...props} /> {/* <View style={styles.clearBtnContent}> <Animated.View style={{ ...styles.clearBtnContent, transform: [{ scale: scaleClearBtn }] }}> */} {clearBtn ? <View style={styles.clearBtnContent}> <TouchableOpacity style={styles.clearBtn} onPress={clearText}> - <Icon name="remove" style={{ fontSize: 14, color: theme.normal50 }} /> + <Icon name="remove" color={theme['c-primary-dark-100-alpha-500']} size={11} /> </TouchableOpacity> </View> : null @@ -80,42 +131,5 @@ const Input = ({ onChangeText, onClearText, clearBtn, style, ...props }, ref) => </View> */} </View> ) -} - -const styles = StyleSheet.create({ - content: { - flexDirection: 'row', - // backgroundColor: 'rgba(0,0,0,0.1)', - flexGrow: 1, - flexShrink: 1, - // height: 38, - alignItems: 'center', - // paddingRight: 5, - }, - input: { - // backgroundColor: 'rgba(0,0,0,0.1)', - // backgroundColor: 'white', - borderRadius: 2, - paddingTop: 2, - paddingBottom: 2, - paddingLeft: 5, - paddingRight: 0, - flexGrow: 1, - flexShrink: 1, - height: '100%', - }, - clearBtnContent: { - flexGrow: 0, - flexShrink: 0, - }, - clearBtn: { - height: '70%', - paddingLeft: 5, - paddingRight: 5, - justifyContent: 'center', - // backgroundColor: 'rgba(0,0,0,0.2)', - }, }) -export default forwardRef(Input) - diff --git a/src/components/common/LoadingMask.js b/src/components/common/LoadingMask.tsx similarity index 59% rename from src/components/common/LoadingMask.js rename to src/components/common/LoadingMask.tsx index 642a469..14e2584 100644 --- a/src/components/common/LoadingMask.js +++ b/src/components/common/LoadingMask.tsx @@ -1,13 +1,29 @@ -import React, { useState, useCallback, memo, useMemo, useRef, useEffect } from 'react' -import { StyleSheet, Animated, Text } from 'react-native' -import { useGetter } from '@/store' -import { useTranslation } from '@/plugins/i18n' +import React, { useState, useCallback, useMemo, useRef, forwardRef, useImperativeHandle } from 'react' +import { Animated } from 'react-native' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import Text from './Text' -export default memo(({ visible }) => { - const theme = useGetter('common', 'theme') +// interface LoadingMaskProps { + +// } + +export interface LoadingMaskType { + setVisible: (visible: boolean) => void +} + +export default forwardRef<LoadingMaskType, {}>((props, ref) => { + const theme = useTheme() + const t = useI18n() const animFade = useRef(new Animated.Value(0)).current const [maskVisible, setMaskVisible] = useState(false) - const { t } = useTranslation() + + useImperativeHandle(ref, () => ({ + setVisible(visible: boolean) { + visible ? handleShow() : handleHide() + }, + })) const handleShow = useCallback(() => { // console.log('handleShow') @@ -38,21 +54,17 @@ export default memo(({ visible }) => { }) }, [animFade]) - useEffect(() => { - if (visible === maskVisible) return - visible ? handleShow() : handleHide() - }, [handleHide, handleShow, maskVisible, visible]) const maskComponent = useMemo(() => ( - <Animated.View style={{ ...styles.container, backgroundColor: theme.primary, opacity: animFade }}> - <Text style={{ ...styles.text, color: theme.normal40 }}>{t('list_loading')}</Text> + <Animated.View style={{ ...styles.container, backgroundColor: theme['c-main-background'], opacity: animFade }}> + <Text size={20} color={theme['c-font-label']}>{t('list_loading')}</Text> </Animated.View> ), [animFade, t, theme]) return maskVisible ? maskComponent : null }) -const styles = StyleSheet.create({ +const styles = createStyle({ container: { position: 'absolute', left: 0, @@ -63,7 +75,4 @@ const styles = StyleSheet.create({ justifyContent: 'center', alignItems: 'center', }, - text: { - fontSize: 20, - }, }) diff --git a/src/components/common/Menu.js b/src/components/common/Menu.js deleted file mode 100644 index 9a49e22..0000000 --- a/src/components/common/Menu.js +++ /dev/null @@ -1,136 +0,0 @@ -import React, { useMemo, useCallback, memo } from 'react' -import { StyleSheet, View, Text, Animated, TouchableHighlight } from 'react-native' -import { useDimensions } from '@/utils/hooks' - -import Modal from './Modal' -import { useGetter } from '@/store' - -// const menuItemHeight = 42 -// const menuItemWidth = 100 - -const styles = StyleSheet.create({ - mask: { - position: 'absolute', - top: 0, - bottom: 0, - left: 0, - right: 0, - opacity: 0, - backgroundColor: 'black', - }, - menu: { - position: 'absolute', - // borderWidth: StyleSheet.hairlineWidth, - borderColor: 'lightgray', - borderRadius: 2, - backgroundColor: 'white', - elevation: 3, - }, - menuItem: { - paddingLeft: 10, - paddingRight: 10, - // height: menuItemHeight, - // width: menuItemWidth, - // alignItems: 'center', - justifyContent: 'center', - // backgroundColor: '#ccc', - }, - menuText: { - // textAlign: 'center', - }, -}) - -const Menu = ({ - buttonPosition, - menus, - onPress = () => {}, - longPress = () => {}, - center = false, - hideMenu, - width = 100, - height = 42, -}) => { - const theme = useGetter('common', 'theme') - const { window: windowSize } = useDimensions() - // const fadeAnim = useRef(new Animated.Value(0)).current - // console.log(buttonPosition) - - const menuStyle = useMemo(() => { - let menuHeight = menus.length * height + 1 - const topHeight = buttonPosition.y - 20 - const bottomHeight = windowSize.height - buttonPosition.y - buttonPosition.h - 20 - if (menuHeight > topHeight && menuHeight > bottomHeight) menuHeight = Math.max(topHeight, bottomHeight) - - const menuWidth = width - const bottomSpace = windowSize.height - buttonPosition.y - buttonPosition.h - 20 - const rightSpace = windowSize.width - buttonPosition.x - menuWidth - 20 - const showInBottom = bottomSpace >= menuHeight - const showInRight = rightSpace >= menuWidth - const frameStyle = { - height: menuHeight, - top: showInBottom ? buttonPosition.y + buttonPosition.h : buttonPosition.y - menuHeight, - } - if (showInRight) { - frameStyle.left = buttonPosition.x - } else { - frameStyle.right = windowSize.width - buttonPosition.x - buttonPosition.w - } - return frameStyle - }, [windowSize, buttonPosition, menus, width, height]) - - const menuPress = useCallback((menu, index) => { - // if (menu.disabled) return - onPress(menu, index) - hideMenu() - }, [onPress, hideMenu]) - - const menuLongPress = useCallback((menu, index) => { - // if (menu.disabled) return - longPress(menu, index) - // hideMenu() - }, [longPress]) - - // console.log(menuStyle) - return ( - <View style={{ ...styles.menu, ...menuStyle, backgroundColor: theme.primary }} onStartShouldSetResponder={() => true}> - <Animated.ScrollView keyboardShouldPersistTaps={'always'}> - { - menus.map((menu, index) => ( - menu.disabled - ? ( - <View - key={menu.action} - style={{ ...styles.menuItem, width: width, height: height, opacity: 0.4 }} - underlayColor={theme.secondary40} - > - <Text style={{ ...styles.menuText, textAlign: center ? 'center' : 'left', color: theme.normal }} numberOfLines={1}>{menu.label}</Text> - </View> - ) - : ( - <TouchableHighlight - key={menu.action} - style={{ ...styles.menuItem, width: width, height: height }} - underlayColor={theme.secondary40} - onPress={() => { menuPress(menu, index) }} - onLongPress={() => { menuLongPress(menu, index) }} - > - <Text style={{ ...styles.menuText, textAlign: center ? 'center' : 'left', color: theme.normal }} numberOfLines={1}>{menu.label}</Text> - </TouchableHighlight> - ) - - )) - } - </Animated.ScrollView> - </View> - ) -} - -export default memo(({ visible, hideMenu, buttonPosition, menus, longPress, onPress, width, height }) => { - // console.log(visible) - return ( - <Modal visible={visible} hideModal={hideMenu} onStartShouldSetResponder={() => true}> - <Menu menus={menus} buttonPosition={buttonPosition} longPress={longPress} onPress={onPress} visible={visible} hideMenu={hideMenu} width={width} height={height} /> - </Modal> - ) -}) - diff --git a/src/components/common/Menu.tsx b/src/components/common/Menu.tsx new file mode 100644 index 0000000..1338115 --- /dev/null +++ b/src/components/common/Menu.tsx @@ -0,0 +1,211 @@ +import React, { useImperativeHandle, forwardRef, useMemo, useRef, useState, type Ref } from 'react' +import { View, Animated, TouchableHighlight } from 'react-native' +import { useDimensions } from '@/utils/hooks' + +import Modal, { type ModalType } from './Modal' + +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import Text from './Text' +import { scaleSizeH, scaleSizeW } from '@/utils/pixelRatio' + +const menuItemHeight = scaleSizeH(38) +const menuItemWidth = scaleSizeW(100) + +export interface Position { w: number, h: number, x: number, y: number, menuWidth?: number, menuHeight?: number } +export interface MenuSize { width?: number, height?: number } +export type Menus = Readonly<Array<{ action: string, label: string, disabled?: boolean }>> + +const styles = createStyle({ + mask: { + position: 'absolute', + top: 0, + bottom: 0, + left: 0, + right: 0, + opacity: 0, + backgroundColor: 'black', + }, + menu: { + position: 'absolute', + // borderWidth: StyleSheet.hairlineWidth, + borderColor: 'lightgray', + borderRadius: 2, + backgroundColor: 'white', + elevation: 3, + }, + menuItem: { + paddingLeft: 10, + paddingRight: 10, + // height: menuItemHeight, + // width: menuItemWidth, + // alignItems: 'center', + justifyContent: 'center', + // backgroundColor: '#ccc', + }, + // menuText: { + // // textAlign: 'center', + // fontSize: 14, + // }, +}) + +interface Props<M extends Menus = Menus> { + menus: Readonly<M> + onPress?: (menu: M[number]) => void + buttonPosition: Position + menuSize: MenuSize + onHide: () => void + width?: number + height?: number + fontSize?: number + center?: boolean + activeId?: M[number]['action'] | null +} + +const Menu = ({ + buttonPosition, + menuSize, + menus, + onPress = () => {}, + onHide, + activeId, + fontSize = 15, + center = false, +}: Props) => { + const theme = useTheme() + const { window: windowSize } = useDimensions() + // const fadeAnim = useRef(new Animated.Value(0)).current + // console.log(buttonPosition) + + const menuItemStyle = useMemo(() => { + return { + width: menuSize.width ?? menuItemWidth, + height: menuSize.height ?? menuItemHeight, + } + }, [menuSize]) + + const menuStyle = useMemo(() => { + let menuHeight = menus.length * menuItemStyle.height + const topHeight = buttonPosition.y - 20 + const bottomHeight = windowSize.height - buttonPosition.y - buttonPosition.h - 20 + if (menuHeight > topHeight && menuHeight > bottomHeight) menuHeight = Math.max(topHeight, bottomHeight) + + const menuWidth = menuItemStyle.width + const bottomSpace = windowSize.height - buttonPosition.y - buttonPosition.h - 20 + const rightSpace = windowSize.width - buttonPosition.x - menuWidth + const showInBottom = bottomSpace >= menuHeight + const showInRight = rightSpace >= menuWidth + const frameStyle: { + height: number + width: number + top: number + left?: number + right?: number + } = { + height: menuHeight, + top: showInBottom ? buttonPosition.y + buttonPosition.h : buttonPosition.y - menuHeight, + width: menuWidth, + } + if (showInRight) { + frameStyle.left = buttonPosition.x + } else { + frameStyle.right = windowSize.width - buttonPosition.x - buttonPosition.w + } + return frameStyle + }, [menus.length, menuItemStyle, buttonPosition, windowSize]) + + const menuPress = (menu: Menus[number]) => { + // if (menu.disabled) return + onPress(menu) + onHide() + } + + // console.log('render menu') + // console.log(activeId) + // console.log(menuStyle) + // console.log(menuItemStyle) + return ( + <View style={{ ...styles.menu, ...menuStyle, backgroundColor: theme['c-content-background'] }} onStartShouldSetResponder={() => true}> + <Animated.ScrollView keyboardShouldPersistTaps={'always'}> + { + menus.map((menu, index) => ( + menu.disabled + ? ( + <View + key={menu.action} + style={{ ...styles.menuItem, width: menuItemStyle.width, height: menuItemStyle.height, opacity: 0.4 }} + > + <Text style={{ textAlign: center ? 'center' : 'left' }} size={fontSize} numberOfLines={1}>{menu.label}</Text> + </View> + ) + : menu.action == activeId + ? ( + <View + key={menu.action} + style={{ ...styles.menuItem, width: menuItemStyle.width, height: menuItemStyle.height }} + > + <Text style={{ textAlign: center ? 'center' : 'left' }} color={theme['c-primary-font-active']} size={fontSize} numberOfLines={1}>{menu.label}</Text> + </View> + ) + : ( + <TouchableHighlight + key={menu.action} + style={{ ...styles.menuItem, width: menuItemStyle.width, height: menuItemStyle.height }} + underlayColor={theme['c-primary-background-active']} + onPress={() => { menuPress(menu) }} + > + <Text style={{ textAlign: center ? 'center' : 'left' }} size={fontSize} numberOfLines={1}>{menu.label}</Text> + </TouchableHighlight> + ) + + )) + } + </Animated.ScrollView> + </View> + ) +} + +export interface MenuProps<M extends Menus = Menus> { + menus: M + onPress: (menu: M[number]) => void + onHide?: () => void + width?: number + height?: number + fontSize?: number + center?: boolean + activeId?: M[number]['action'] | null +} + +export interface MenuType { + show: (position: Position, menuSize?: MenuSize) => void + hide: () => void +} + +const Component = <M extends Menus>({ menus, activeId, onHide, onPress, fontSize, center }: MenuProps<M>, ref: Ref<MenuType>) => { + // console.log(visible) + const modalRef = useRef<ModalType>(null) + const [position, setPosition] = useState<Position>({ w: 0, h: 0, x: 0, y: 0 }) + const [menuSize, setMenuSize] = useState<MenuSize>({ }) + const hide = () => { + modalRef.current?.setVisible(false) + } + useImperativeHandle(ref, () => ({ + show(newPosition, menuSize) { + setPosition(newPosition) + if (menuSize) setMenuSize(menuSize) + modalRef.current?.setVisible(true) + }, + hide() { + hide() + }, + })) + + return ( + <Modal onHide={onHide} ref={modalRef}> + <Menu menus={menus} activeId={activeId} buttonPosition={position} menuSize={menuSize} onPress={onPress} onHide={hide} fontSize={fontSize} center={center} /> + </Modal> + ) +} + +// export default forwardRef(Component) as ForwardRefFn<MenuType> +export default forwardRef(Component) as <M extends Menus>(p: MenuProps<M> & { ref?: Ref<MenuType> }) => JSX.Element | null diff --git a/src/components/common/Modal.js b/src/components/common/Modal.js deleted file mode 100644 index e973153..0000000 --- a/src/components/common/Modal.js +++ /dev/null @@ -1,48 +0,0 @@ -import React, { memo, useCallback } from 'react' -import { Modal, TouchableWithoutFeedback, StyleSheet, View } from 'react-native' -// import { useDimensions } from '@/utils/hooks' - -const styles = StyleSheet.create({ - mask: { - position: 'absolute', - top: 0, - bottom: 0, - left: 0, - right: 0, - }, -}) - -export default memo(({ - visible = false, - hideModal = () => {}, - keyHide = true, - bgHide = true, - bgColor = 'rgba(0,0,0,0)', - children, -}) => { - // const { window: windowSize } = useDimensions() - const handleRequestClose = useCallback(() => { - if (keyHide) hideModal(false) - }, [hideModal, keyHide]) - const handleBgClose = useCallback(() => { - if (bgHide) hideModal(false) - }, [hideModal, bgHide]) - - return ( - <Modal - animationType="fade" - transparent={true} - hardwareAccelerated={true} - statusBarTranslucent={true} - visible={visible} - onRequestClose={handleRequestClose} - > - <> - <TouchableWithoutFeedback style={{ ...styles.mask }} onPress={handleBgClose}> - <View style={{ ...styles.mask, backgroundColor: bgColor }}></View> - </TouchableWithoutFeedback> - {children} - </> - </Modal> - ) -}) diff --git a/src/components/common/Modal.tsx b/src/components/common/Modal.tsx new file mode 100644 index 0000000..8e3d7d7 --- /dev/null +++ b/src/components/common/Modal.tsx @@ -0,0 +1,100 @@ +import { createStyle } from '@/utils/tools' +import React, { useImperativeHandle, forwardRef, useState, useMemo } from 'react' +import { Modal, TouchableWithoutFeedback, View, type ModalProps as _ModalProps } from 'react-native' +import StatusBar from './StatusBar' +// import { useDimensions } from '@/utils/hooks' + +const styles = createStyle({ + // container: { + // flex: 1, + // }, + mask: { + position: 'absolute', + top: 0, + left: 0, + bottom: 0, + right: 0, + // width: '100%', + // height: '100%', + }, +}) + +export interface ModalProps extends Omit<_ModalProps, 'visible'> { + onHide?: () => void + /** + * 按返回键是否隐藏 + */ + keyHide?: boolean + /** + * 点击背景是否隐藏 + */ + bgHide?: boolean + /** + * 背景颜色 + */ + bgColor?: string + /** + * 是否填充状态栏 + */ + statusBarPadding?: boolean +} + + +export interface ModalType { + setVisible: (visible: boolean) => void +} + +export default forwardRef<ModalType, ModalProps>(({ + onHide = () => {}, + keyHide = true, + bgHide = true, + bgColor = 'rgba(0,0,0,0)', + statusBarPadding = true, + children, + ...props +}: ModalProps, ref) => { + const [visible, setVisible] = useState(false) + // const { window: windowSize } = useDimensions() + const handleRequestClose = () => { + if (keyHide) { + setVisible(false) + onHide() + } + } + const handleBgClose = () => { + if (bgHide) { + setVisible(false) + onHide() + } + } + + useImperativeHandle(ref, () => ({ + setVisible(_visible) { + if (visible == _visible) return + setVisible(_visible) + if (!_visible) onHide() + }, + })) + + const memoChildren = useMemo(() => children, [children]) + + return ( + <Modal + animationType="fade" + transparent={true} + hardwareAccelerated={true} + statusBarTranslucent={true} + visible={visible} + onRequestClose={handleRequestClose} + {...props} + > + {/* <StatusBar /> */} + <View style={{ flex: 1, paddingTop: statusBarPadding ? StatusBar.currentHeight : 0 }}> + <TouchableWithoutFeedback style={styles.mask} onPress={handleBgClose}> + <View style={{ ...styles.mask, backgroundColor: bgColor }}></View> + </TouchableWithoutFeedback> + {memoChildren} + </View> + </Modal> + ) +}) diff --git a/src/components/common/Popup.js b/src/components/common/Popup.js deleted file mode 100644 index 8d9d357..0000000 --- a/src/components/common/Popup.js +++ /dev/null @@ -1,130 +0,0 @@ -import React, { useMemo } from 'react' -import { StyleSheet, View, Text, TouchableOpacity } from 'react-native' - -import Modal from './Modal' -import { Icon } from '@/components/common/Icon' -import { useGetter } from '@/store' -import { useKeyboard } from '@/utils/hooks' -import StatusBar from '@/components/common/StatusBar' - -const styles = StyleSheet.create({ - centeredView: { - flex: 1, - // justifyContent: 'flex-end', - // alignItems: 'center', - }, - modalView: { - elevation: 6, - flexGrow: 0, - flexShrink: 1, - }, - header: { - flex: 0, - flexDirection: 'row', - borderTopLeftRadius: 8, - borderTopRightRadius: 8, - }, - title: { - fontSize: 13, - paddingLeft: 10, - paddingRight: 25, - paddingTop: 10, - paddingBottom: 10, - // lineHeight: 20, - }, - closeBtn: { - position: 'absolute', - right: 0, - // borderTopRightRadius: 8, - flexGrow: 0, - flexShrink: 0, - height: 30, - width: 30, - justifyContent: 'center', - alignItems: 'center', - // backgroundColor: '#eee', - }, -}) - - -export default ({ - visible = false, - hide = () => {}, - keyHide = true, - bgHide = true, - closeBtn = true, - position = 'bottom', - title = '', - children, -}) => { - const theme = useGetter('common', 'theme') - const { keyboardShown, keyboardHeight } = useKeyboard() - - const closeBtnComponent = useMemo(() => closeBtn ? <TouchableOpacity style={styles.closeBtn} onPress={hide}><Icon name="close" style={{ color: theme.normal50, fontSize: 12 }} /></TouchableOpacity> : null, [closeBtn, hide, theme]) - - const [centeredViewStyle, modalViewStyle] = useMemo(() => { - switch (position) { - case 'top': - return [ - { justifyContent: 'flex-start' }, - { - width: '100%', - maxHeight: '78%', - minHeight: '20%', - backgroundColor: 'white', - paddingTop: StatusBar.currentHeight, - }, - ] - case 'left': - return [ - { flexDirection: 'row', justifyContent: 'flex-start' }, - { - minWidth: '45%', - maxWidth: '78%', - height: '100%', - backgroundColor: 'white', - paddingTop: StatusBar.currentHeight, - }, - ] - case 'right': - return [ - { flexDirection: 'row', justifyContent: 'flex-end' }, - { - minWidth: '45%', - maxWidth: '78%', - height: '100%', - backgroundColor: 'white', - paddingTop: StatusBar.currentHeight, - }, - ] - case 'bottom': - default: - return [ - { justifyContent: 'flex-end' }, - { - width: '100%', - maxHeight: '78%', - minHeight: '20%', - backgroundColor: 'white', - borderTopLeftRadius: 8, - borderTopRightRadius: 8, - }, - ] - } - }, [position]) - - return ( - <Modal visible={visible} hideModal={hide} keyHide={keyHide} bgHide={bgHide} bgColor="rgba(50,50,50,.3)"> - <StatusBar /> - <View style={{ ...styles.centeredView, ...centeredViewStyle, paddingBottom: keyboardShown ? keyboardHeight : 0 }}> - <View style={{ ...styles.modalView, ...modalViewStyle, backgroundColor: theme.primary }} onStartShouldSetResponder={() => true}> - <View style={styles.header}> - <Text style={{ ...styles.title, color: theme.normal40 }} numberOfLines={1}>{title}</Text> - {closeBtnComponent} - </View> - {children} - </View> - </View> - </Modal> - ) -} diff --git a/src/components/common/Popup.tsx b/src/components/common/Popup.tsx new file mode 100644 index 0000000..deeb5d1 --- /dev/null +++ b/src/components/common/Popup.tsx @@ -0,0 +1,183 @@ +import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react' +import { View, TouchableOpacity } from 'react-native' + +import Modal, { type ModalType } from './Modal' +import { Icon } from '@/components/common/Icon' +import { useKeyboard } from '@/utils/hooks' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import Text from './Text' +import StatusBar from './StatusBar' + +const styles = createStyle({ + centeredView: { + flex: 1, + // justifyContent: 'flex-end', + // alignItems: 'center', + }, + modalView: { + elevation: 6, + flexGrow: 0, + flexShrink: 1, + }, + header: { + flex: 0, + flexDirection: 'row', + borderTopLeftRadius: 8, + borderTopRightRadius: 8, + }, + title: { + paddingLeft: 10, + paddingRight: 25, + paddingTop: 10, + paddingBottom: 10, + // lineHeight: 20, + }, + closeBtn: { + position: 'absolute', + right: 0, + // borderTopRightRadius: 8, + flexGrow: 0, + flexShrink: 0, + height: 30, + width: 30, + justifyContent: 'center', + alignItems: 'center', + // backgroundColor: '#eee', + }, +}) + +export interface PopupProps { + onHide?: () => void + keyHide?: boolean + bgHide?: boolean + closeBtn?: boolean + position?: 'top' | 'left' | 'right' | 'bottom' + title?: string + children: React.ReactNode +} + +export interface PopupType { + setVisible: (visible: boolean) => void +} + +export default forwardRef<PopupType, PopupProps>(({ + onHide = () => {}, + keyHide = true, + bgHide = true, + closeBtn = true, + position = 'bottom', + title = '', + children, +}: PopupProps, ref) => { + const theme = useTheme() + const { keyboardShown, keyboardHeight } = useKeyboard() + + const modalRef = useRef<ModalType>(null) + + useImperativeHandle(ref, () => ({ + setVisible(visible: boolean) { + modalRef.current?.setVisible(visible) + }, + })) + + const closeBtnComponent = useMemo(() => closeBtn + ? <TouchableOpacity style={styles.closeBtn} onPress={() => modalRef.current?.setVisible(false)}> + <Icon name="close" style={{ color: theme['c-font-label'] }} size={12} /> + </TouchableOpacity> + : null, [closeBtn, theme]) + + const [centeredViewStyle, modalViewStyle] = useMemo(() => { + switch (position) { + case 'top': + return [ + { + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + top: 0, + justifyContent: 'flex-start', + }, + { + width: '100%', + maxHeight: '78%', + minHeight: '20%', + // backgroundColor: 'white', + }, + ] as const + case 'left': + return [ + { + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + top: 0, + flexDirection: 'row', + justifyContent: 'flex-start', + }, + { + minWidth: '45%', + maxWidth: '78%', + height: '100%', + paddingTop: StatusBar.currentHeight, + // backgroundColor: 'white', + }, + ] as const + case 'right': + return [ + { + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + top: 0, + flexDirection: 'row', + justifyContent: 'flex-end', + }, + { + minWidth: '45%', + maxWidth: '78%', + height: '100%', + paddingTop: StatusBar.currentHeight, + // backgroundColor: 'white', + }, + ] as const + case 'bottom': + default: + return [ + { + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + top: 0, + justifyContent: 'flex-end', + }, + { + width: '100%', + maxHeight: '78%', + minHeight: '20%', + // backgroundColor: 'white', + borderTopLeftRadius: 8, + borderTopRightRadius: 8, + }, + ] as const + } + }, [position]) + + return ( + <Modal onHide={onHide} keyHide={keyHide} bgHide={bgHide} bgColor="rgba(50,50,50,.2)" ref={modalRef}> + <View style={{ ...styles.centeredView, ...centeredViewStyle, paddingBottom: keyboardShown ? keyboardHeight : 0 }}> + <View style={{ ...styles.modalView, ...modalViewStyle, backgroundColor: theme['c-content-background'] }} onStartShouldSetResponder={() => true}> + <View style={styles.header}> + <Text size={13} style={styles.title} numberOfLines={1}>{title}</Text> + {closeBtnComponent} + </View> + {children} + </View> + </View> + </Modal> + ) +}) diff --git a/src/components/common/ScaledImage.tsx b/src/components/common/ScaledImage.tsx new file mode 100644 index 0000000..03c1040 --- /dev/null +++ b/src/components/common/ScaledImage.tsx @@ -0,0 +1,48 @@ +import React, { useEffect, useState } from 'react' +import { Image, StyleSheet, type ImageProps } from 'react-native' + +export interface ScaledImageProps extends Pick<ImageProps, 'style'> { + uri: string + width?: number + height?: number + maxWidth?: number + maxHeight?: number +} + +export default ({ uri, width, height, maxWidth, maxHeight, style }: ScaledImageProps) => { + const [wh, setWH] = useState({ width: 0, height: 0 }) + + useEffect(() => { + Image.getSize(uri, (realWidth, realHeight) => { + let w = width ?? 0 + let h = height ?? 0 + + if (w && !h) { + h = realHeight * (w / realWidth) + } else if (!w && h) { + w = realWidth * (h / realHeight) + } else { + if (maxWidth && realWidth > maxWidth) { + w = maxWidth + h = realHeight * (w / realWidth) + + if (maxHeight && h > maxHeight) { + w = realWidth * (maxHeight / realHeight) + h = maxHeight + } + } else if (maxHeight && realHeight > maxHeight) { + w = realWidth * (h / realHeight) + h = maxHeight + } + } + setWH({ width: w || realWidth, height: h || realHeight }) + }) + }, [height, maxHeight, maxWidth, uri, width]) + + return ( + <Image + source={{ uri }} + style={StyleSheet.compose({ height: wh.height, width: wh.width }, style)} + /> + ) +} diff --git a/src/components/common/Slider.js b/src/components/common/Slider.js deleted file mode 100644 index 5ef48c9..0000000 --- a/src/components/common/Slider.js +++ /dev/null @@ -1,37 +0,0 @@ -import React, { memo } from 'react' - -import Slider from '@react-native-community/slider' -import { StyleSheet } from 'react-native' -import { useGetter } from '@/store' - -export default memo(({ value, minimumValue, maximumValue, onSlidingStart, onSlidingComplete, onValueChange, step }) => { - const theme = useGetter('common', 'theme') - - return ( - <Slider - value={value} - style={styles.slider} - minimumValue={minimumValue} - maximumValue={maximumValue} - minimumTrackTintColor={theme.secondary30} - maximumTrackTintColor={theme.secondary30} - thumbTintColor={theme.secondary} - onSlidingStart={onSlidingStart} - onSlidingComplete={onSlidingComplete} - onValueChange={onValueChange} - step={step} - /> - ) -}) - - -const styles = StyleSheet.create({ - slider: { - flexShrink: 0, - flexGrow: 1, - // width: '100%', - // maxWidth: 300, - height: 40, - // backgroundColor: '#eee', - }, -}) diff --git a/src/components/common/Slider.tsx b/src/components/common/Slider.tsx new file mode 100644 index 0000000..c537e6d --- /dev/null +++ b/src/components/common/Slider.tsx @@ -0,0 +1,47 @@ +import React, { memo } from 'react' + +import Slider, { SliderProps as _SliderProps } from '@react-native-community/slider' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' + +export type SliderProps = Pick<_SliderProps, +'value' +| 'minimumValue' +| 'maximumValue' +| 'onSlidingStart' +| 'onSlidingComplete' +| 'onValueChange' +| 'step' +> + +export default memo(({ value, minimumValue, maximumValue, onSlidingStart, onSlidingComplete, onValueChange, step }: SliderProps) => { + const theme = useTheme() + + return ( + <Slider + value={value} + style={styles.slider} + minimumValue={minimumValue} + maximumValue={maximumValue} + minimumTrackTintColor={theme['c-primary-alpha-500']} + maximumTrackTintColor={theme['c-primary-alpha-500']} + thumbTintColor={theme['c-primary']} + onSlidingStart={onSlidingStart} + onSlidingComplete={onSlidingComplete} + onValueChange={onValueChange} + step={step} + /> + ) +}) + + +const styles = createStyle({ + slider: { + flexShrink: 0, + flexGrow: 1, + // width: '100%', + // maxWidth: 300, + height: 40, + // backgroundColor: '#eee', + }, +}) diff --git a/src/components/common/StatusBar.js b/src/components/common/StatusBar.tsx similarity index 67% rename from src/components/common/StatusBar.js rename to src/components/common/StatusBar.tsx index 6c200c6..b8c1ef3 100644 --- a/src/components/common/StatusBar.js +++ b/src/components/common/StatusBar.tsx @@ -1,9 +1,10 @@ +import { useTheme } from '@/store/theme/hook' import React from 'react' import { StatusBar as RNStatusBar } from 'react-native' -import { useGetter } from '@/store' const StatusBar = function() { - const statusBarStyle = useGetter('common', 'statusBarStyle') + const theme = useTheme() + const statusBarStyle = theme.isDark ? 'light-content' : 'dark-content' return <RNStatusBar backgroundColor="rgba(0,0,0,0)" barStyle={statusBarStyle} translucent={true} /> } diff --git a/src/components/common/Text.tsx b/src/components/common/Text.tsx new file mode 100644 index 0000000..70f28bd --- /dev/null +++ b/src/components/common/Text.tsx @@ -0,0 +1,28 @@ +import React from 'react' +import { Text, type TextProps as _TextProps, StyleSheet } from 'react-native' +import { useTheme } from '@/store/theme/hook' +import { setSpText } from '@/utils/pixelRatio' +// import { AppColors } from '@/theme' + +export interface TextProps extends _TextProps { + /** + * 字体大小 + */ + size?: number + /** + * 字体颜色 + */ + color?: string +} + +export default ({ style, size = 15, color, children, ...props }: TextProps) => { + const theme = useTheme() + + return ( + <Text + style={StyleSheet.compose({ fontSize: setSpText(size), color: color ?? theme['c-font'] }, style)} + {...props} + >{children}</Text> + ) +} + diff --git a/src/components/layout/Header.js b/src/components/layout/Header.js deleted file mode 100644 index ceaa429..0000000 --- a/src/components/layout/Header.js +++ /dev/null @@ -1,52 +0,0 @@ -import React from 'react' -import { View, Text, StyleSheet, SafeAreaView } from 'react-native' -import StatusBar from '@/components/common/StatusBar' - -const Header = state => { - return ( - <View style={style.header}> - <StatusBar /> - <SafeAreaView style={style.container}> - {state.menu.map((item, index) => <View style={style.btn} key={item.id}><Text style={style.btnText} onPress={() => this.handlePress(item, index)}>{item.name}</Text></View>)} - </SafeAreaView> - </View> - ) -} - - -const style = StyleSheet.create({ - header: { - backgroundColor: '#fff', - height: 50 + StatusBar.currentHeight, - paddingTop: StatusBar.currentHeight, - // Android shadow - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 2, - // }, - // shadowOpacity: 0.23, - // shadowRadius: 2.62, - // elevation: 4, - }, - container: { - // width: '100%', - flexDirection: 'row', - }, - btn: { - // flex: 1, - paddingLeft: 10, - paddingRight: 10, - backgroundColor: 'rgba(0,0,0,0);', - alignItems: 'center', - justifyContent: 'center', - height: 50, - }, - btnText: { - fontSize: 16, - color: 'white', - }, -}) - - -export default Header diff --git a/src/components/player/Progress.js b/src/components/player/Progress.js deleted file mode 100644 index 7e6e0af..0000000 --- a/src/components/player/Progress.js +++ /dev/null @@ -1,88 +0,0 @@ -import React, { memo } from 'react' -import { View, StyleSheet, TouchableOpacity, Pressable } from 'react-native' -import { useLayout } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' -// import { AppColors } from '@/theme' - - -const DefaultBar = memo(() => { - const theme = useGetter('common', 'theme') - - return <View style={{ ...styles.progressBar, backgroundColor: theme.normal75, position: 'absolute', width: '100%', left: 0, top: 0 }}></View> -}) - -const BufferedBar = memo(({ bufferedProgress }) => { - // console.log(bufferedProgress) - const theme = useGetter('common', 'theme') - return <View style={{ ...styles.progressBar, backgroundColor: theme.secondary45, position: 'absolute', width: bufferedProgress + '%', left: 0, top: 0 }}></View> -}) - -const PreassBar = memo(({ duration }) => { - const { onLayout, ...layout } = useLayout() - const setProgress = useDispatch('player', 'setProgress') - const handlePress = event => { - setProgress(event.nativeEvent.locationX / layout.width * duration) - } - - return <Pressable onPress={handlePress} onLayout={onLayout} style={styles.pressBar} /> -}) - - -const Progress = ({ progress, bufferedProgress, duration }) => { - // const { progress } = usePlayTimeBuffer() - const theme = useGetter('common', 'theme') - // console.log(progress) - const progressStr = progress + '%' - - return ( - <View style={styles.progress}> - <View> - <DefaultBar /> - <BufferedBar bufferedProgress={bufferedProgress} /> - <View style={{ ...styles.progressBar, backgroundColor: theme.secondary30, width: progressStr, position: 'absolute', left: 0, top: 0 }}> - <Pressable style={{ ...styles.progressDot, backgroundColor: theme.secondary10 }}></Pressable> - </View> - </View> - <PreassBar duration={duration} /> - {/* <View style={{ ...styles.progressBar, height: '100%', width: progressStr }}><Pressable style={styles.progressDot}></Pressable></View> */} - </View> - ) -} - - -const progressContentPadding = 9 -const progressHeight = 3 -const progressDotSize = 8 -const styles = StyleSheet.create({ - progress: { - width: '100%', - height: progressContentPadding * 2 + progressHeight, - // backgroundColor: 'rgba(0,0,0,0.5)', - paddingTop: progressContentPadding, - paddingBottom: progressContentPadding, - zIndex: 1, - }, - progressBar: { - height: progressHeight, - borderRadius: 4, - }, - progressDot: { - width: progressDotSize, - height: progressDotSize, - borderRadius: progressDotSize, - position: 'absolute', - right: -progressDotSize / 2, - top: -(progressDotSize - progressHeight) / 2, - zIndex: 9, - }, - pressBar: { - position: 'absolute', - // backgroundColor: 'rgba(0,0,0,0.5)', - left: 0, - top: 0, - height: progressContentPadding * 2 + progressHeight, - width: '100%', - }, -}) - -export default Progress diff --git a/src/components/player/Progress.tsx b/src/components/player/Progress.tsx new file mode 100644 index 0000000..1023438 --- /dev/null +++ b/src/components/player/Progress.tsx @@ -0,0 +1,105 @@ +import React, { memo, useMemo } from 'react' +import { View, Pressable, GestureResponderEvent } from 'react-native' +import { useLayout } from '@/utils/hooks' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeW } from '@/utils/pixelRatio' +// import { AppColors } from '@/theme' + + +const DefaultBar = memo(() => { + const theme = useTheme() + + return <View style={{ ...styles.progressBar, backgroundColor: theme['c-primary-light-100-alpha-800'], position: 'absolute', width: '100%', left: 0, top: 0 }}></View> +}) + +// const BufferedBar = memo(({ bufferedProgress }) => { +// // console.log(bufferedProgress) +// const theme = useTheme() +// return <View style={{ ...styles.progressBar, backgroundColor: theme.secondary45, position: 'absolute', width: bufferedProgress + '%', left: 0, top: 0 }}></View> +// }) + +const PreassBar = memo(({ duration }: { duration: number }) => { + const { onLayout, ...layout } = useLayout() + const handlePress = (event: GestureResponderEvent) => { + global.app_event.setProgress(event.nativeEvent.locationX / layout.width * duration) + } + + return <Pressable onPress={handlePress} onLayout={onLayout} style={styles.pressBar} /> +}) + + +const Progress = ({ progress, duration }: { + progress: number + duration: number +}) => { + // const { progress } = usePlayTimeBuffer() + const theme = useTheme() + // console.log(progress) + const progressStr = `${progress * 100}%` + + const progressDotStyle = useMemo(() => { + return { + width: progressDotSize, + height: progressDotSize, + borderRadius: progressDotSize, + position: 'absolute', + right: -progressDotSize / 2, + top: -(progressDotSize - progressHeight) / 2, + backgroundColor: theme['c-primary-light-100'], + zIndex: 9, + } as const + }, [theme]) + + return ( + <View style={styles.progress}> + <View> + <DefaultBar /> + {/* <BufferedBar bufferedProgress={bufferedProgress} /> */} + <View style={{ ...styles.progressBar, backgroundColor: theme['c-primary-light-100-alpha-400'], width: progressStr, position: 'absolute', left: 0, top: 0 }}> + <Pressable style={{ ...styles.progressDot, ...progressDotStyle }}></Pressable> + </View> + </View> + <PreassBar duration={duration} /> + {/* <View style={{ ...styles.progressBar, height: '100%', width: progressStr }}><Pressable style={styles.progressDot}></Pressable></View> */} + </View> + ) +} + + +const progressContentPadding = 9 +const progressHeight = 3 +const progressDotSize = scaleSizeW(8) +const styles = createStyle({ + progress: { + width: '100%', + height: progressContentPadding * 2 + progressHeight, + // backgroundColor: 'rgba(0,0,0,0.5)', + paddingTop: progressContentPadding, + paddingBottom: progressContentPadding, + zIndex: 1, + }, + progressBar: { + height: progressHeight, + borderRadius: 4, + }, + progressDot: { + width: progressDotSize, + height: progressDotSize, + borderRadius: progressDotSize, + position: 'absolute', + right: -progressDotSize / 2, + top: -(progressDotSize - progressHeight) / 2, + zIndex: 9, + }, + pressBar: { + position: 'absolute', + // backgroundColor: 'rgba(0,0,0,0.5)', + left: 0, + top: 0, + height: progressContentPadding * 2 + progressHeight, + width: '100%', + }, +}) + +export default Progress diff --git a/src/components/searchTipList.js b/src/components/searchTipList.js deleted file mode 100644 index 8cdab1e..0000000 --- a/src/components/searchTipList.js +++ /dev/null @@ -1,124 +0,0 @@ -import React, { useRef, useState, useEffect, useCallback, useMemo } from 'react' -import { StyleSheet, View, ScrollView, Animated, Text } from 'react-native' -// import PropTypes from 'prop-types' -// import { AppColors } from '@/theme' -import { useGetter } from '@/store' -// import InsetShadow from 'react-native-inset-shadow' - - -export default ({ list, visible, height, hideList, renderItem }) => { - const translateY = useRef(new Animated.Value(0)).current - const scaleY = useRef(new Animated.Value(0)).current - const theme = useGetter('common', 'theme') - // const isShowRef = useRef(false) - const [tipListVisible, setTipListVisible] = useState(false) - - - const handleShowList = useCallback(() => { - // console.log('handleShowList', height, visible) - if (!height) return - setTipListVisible(true) - - translateY.setValue(-height / 2) - scaleY.setValue(0) - - Animated.parallel([ - // Animated.timing(fade, { - // toValue: 1, - // duration: 300, - // useNativeDriver: true, - // }), - Animated.timing(translateY, { - toValue: 0, - duration: 300, - useNativeDriver: true, - }), - Animated.timing(scaleY, { - toValue: 1, - duration: 300, - useNativeDriver: true, - }), - ]).start() - }, [translateY, scaleY, height]) - - const handleHideList = useCallback(() => { - // Will change fadeAnim value to 0 in 5 seconds - // console.log('handleHideList') - Animated.parallel([ - // Animated.timing(fade, { - // toValue: 0, - // duration: 200, - // useNativeDriver: true, - // }), - Animated.timing(translateY, { - toValue: -height / 2, - duration: 300, - useNativeDriver: true, - }), - Animated.timing(scaleY, { - toValue: 0, - duration: 300, - useNativeDriver: true, - }), - ]).start((finished) => { - // console.log(finished) - if (!finished) return - setTipListVisible(false) - hideList && hideList() - }) - }, [translateY, scaleY, hideList, height]) - - const handleBlankPress = useCallback(() => { - if (!hideList) return - handleHideList() - }, [handleHideList, hideList]) - - useEffect(() => { - if (visible === tipListVisible) return - visible ? handleShowList() : handleHideList() - }, [tipListVisible, visible, handleShowList, handleHideList]) - - const listComponent = useMemo(() => ( - <Animated.View - style={{ - ...styles.anima, - transform: [ - { translateY: translateY }, - { scaleY: scaleY }, - ], - }}> - <View - style={{ - ...styles.container, - backgroundColor: theme.secondary40, - }}> - <ScrollView keyboardShouldPersistTaps={'always'}> - {list.map((item, index) => renderItem(item, index))} - </ScrollView> - </View> - <View style={styles.blank} onTouchStart={handleBlankPress}></View> - </Animated.View> - ), [handleBlankPress, list, renderItem, scaleY, theme.secondary40, translateY]) - - return tipListVisible ? listComponent : null -} - -const styles = StyleSheet.create({ - anima: { - position: 'absolute', - left: 0, - top: 0, - height: '100%', - width: '100%', - zIndex: 10, - }, - container: { - flexGrow: 0, - }, - blank: { - flex: 1, - flexGrow: 1, - backgroundColor: 'transparent', - // backgroundColor: 'rgba(0,0,0,0.2)', - }, -}) diff --git a/src/config/constant.js b/src/config/constant.js deleted file mode 100644 index 45c55d1..0000000 --- a/src/config/constant.js +++ /dev/null @@ -1,43 +0,0 @@ - -export const LIST_ID_PLAY_TEMP = null -export const LIST_ID_PLAY_LATER = '__LATER__' -export const LIST_ITEM_HEIGHT = 56 -export const LIST_SCROLL_POSITION_KEY = '__LIST_SCROLL_POSITION_KEY__' - -export const APP_PROVIDER_NAME = 'cn.toside.music.mobile.provider' - -export const VERSION_STATUS = { - checking: 'Checking', - latest: 'Latest', - downloading: 'Downloading', - downloaded: 'Downloaded', - unknown: 'Unknown', - failed: 'Failed', - available: 'Available', -} - -export const NAV_VIEW_NAMES = { - search: 0, - songList: 1, - top: 2, - list: 3, - setting: 4, -} - -export const LXM_FILE_EXT_RXP = /\.(json|lxmc)$/ - -export const MUSIC_TOGGLE_MODE = { - listLoop: 'listLoop', // 列表循环 - random: 'random', // 列表随机 - list: 'list', // 顺序播放 - singleLoop: 'singleLoop', // 单曲循环 - none: 'none', // 禁用 -} - -export const MUSIC_TOGGLE_MODE_LIST = [ - MUSIC_TOGGLE_MODE.listLoop, - MUSIC_TOGGLE_MODE.random, - MUSIC_TOGGLE_MODE.list, - MUSIC_TOGGLE_MODE.singleLoop, - MUSIC_TOGGLE_MODE.none, -] diff --git a/src/config/constant.ts b/src/config/constant.ts new file mode 100644 index 0000000..9def81f --- /dev/null +++ b/src/config/constant.ts @@ -0,0 +1,137 @@ +export const HEADER_HEIGHT = 42 +export const LIST_ITEM_HEIGHT = 54 +export const LIST_SCROLL_POSITION_KEY = '__LIST_SCROLL_POSITION_KEY__' + +export const LIST_IDS = { + DEFAULT: 'default', + LOVE: 'love', + TEMP: 'temp', + DOWNLOAD: 'download', + PLAY_LATER: null, +} as const + +// export const COMPONENT_IDS = { +// home: 'home', +// playDetail: 'playDetail', +// } as const +// export type COMPONENT_IDS_TYPE = keyof typeof COMPONENT_IDS +export enum COMPONENT_IDS { + home = 'home', + playDetail = 'playDetail', + songlistDetail = 'songlistDetail', + comment = 'comment', +} + +export enum NAV_SHEAR_NATIVE_IDS { + playDetail_pic = 'playDetail_pic', + playDetail_header = 'playDetail_header', + playDetail_pageIndicator = 'playDetail_pageIndicator', + playDetail_player = 'playDetail_player', + songlistDetail_pic = 'songlistDetail_pic', + songlistDetail_title = 'songlistDetail_title', +} + + +export const storageDataPrefix = { + setting: '@setting_v1', + userList: '@user_list', + viewPrevState: '@view_prev_state', + + list: '@list__', + listScrollPosition: '@list_scroll_position', + listPrevSelectId: '@list_prev_select_id', + + lyric: '@lyric__', + musicUrl: '@music_url__', + musicOtherSource: '@music_other_source__', + playInfo: '@play_info', + + syncAuthKey: '@sync_auth_key', + syncHost: '@sync_host', + syncHostHistory: '@sync_host_history', + + notificationTipEnable: '@notification_tip_enable', + + searchHistoryList: '@search_history_list', + listUpdateInfo: '@list_update_info', + ignoreVersion: '@ignore_version', + leaderboardSetting: '@leaderboard_setting', + songListSetting: '@songist_setting', + searchSetting: '@search_setting', + + fontSize: '@font_size', + + theme: '@theme', +} as const + +// v0.x.x 版本的 data keys +export const storageDataPrefixOld = { + setting: '@setting', + list: '@list__', + listPosition: '@listposition__', + listSort: '@listsort__', + // lyric: '@lyric__', + // musicUrl: '@music_url__', + playInfo: '@play_info', + syncAuthKey: '@sync_auth_key', + syncHost: '@sync_host', + syncHostHistory: '@sync_host_history', + notificationTipEnable: '@notification_tip_enable', +} as const + +export const APP_PROVIDER_NAME = 'cn.toside.music.mobile.provider' + + +export const NAV_MENUS = [ + { id: 'nav_search', icon: 'search-2' }, + { id: 'nav_songlist', icon: 'album' }, + { id: 'nav_top', icon: 'leaderboard' }, + { id: 'nav_love', icon: 'love' }, + // { id: 'download', icon: 'download-2' }, + { id: 'nav_setting', icon: 'setting' }, +] as const + +export type NAV_ID_Type = typeof NAV_MENUS[number]['id'] + +export const LXM_FILE_EXT_RXP = /\.(json|lxmc)$/ + +export const MUSIC_TOGGLE_MODE = { + listLoop: 'listLoop', // 列表循环 + random: 'random', // 列表随机 + list: 'list', // 顺序播放 + singleLoop: 'singleLoop', // 单曲循环 + none: 'none', // 禁用 +} as const + +export const MUSIC_TOGGLE_MODE_LIST = [ + MUSIC_TOGGLE_MODE.listLoop, + MUSIC_TOGGLE_MODE.random, + MUSIC_TOGGLE_MODE.list, + MUSIC_TOGGLE_MODE.singleLoop, + MUSIC_TOGGLE_MODE.none, +] as const + +export const DEFAULT_SETTING = { + leaderboard: { + source: 'kw' as LX.OnlineSource, + boardId: 'kw__16', + }, + + songList: { + source: 'kg' as LX.OnlineSource, + sortId: '5', + tagName: '', + tagId: '', + }, + + search: { + temp_source: 'kw' as LX.OnlineSource, + source: 'all' as LX.OnlineSource | 'all', + type: 'music' as 'music' | 'songlist', + }, + + viewPrevState: { + id: 'nav_search' as NAV_ID_Type, + // query: {}, + }, +} diff --git a/src/config/defaultSetting.js b/src/config/defaultSetting.js deleted file mode 100644 index f5aae20..0000000 --- a/src/config/defaultSetting.js +++ /dev/null @@ -1,140 +0,0 @@ -// const path = require('path') -// const os = require('os') -// const { isMac } = require('./utils') -import { MUSIC_TOGGLE_MODE } from './constant' - -const defaultSetting = { - version: '1.26', - player: { - togglePlayMethod: MUSIC_TOGGLE_MODE.listLoop, - highQuality: false, - isSavePlayTime: false, - cacheSize: 1024, // unit MB - timeoutExit: '', - timeoutExitPlayed: true, - isHandleAudioFocus: true, - isShowLyricTranslation: false, - isShowLyricRoma: false, - isShowNotificationImage: true, - isS2t: false, // 是否将歌词从简体转换为繁体 - portrait: { - style: { - lrcFontSize: 160, - }, - }, - landscape: { - style: { - lrcFontSize: 180, - }, - }, - }, - desktopLyric: { - enable: false, - isLock: false, - theme: 'green', - width: 100, - maxLineNum: 5, - isSingleLine: false, - showToggleAnima: true, - // width: 380, - // height: 420, - position: { - x: 0, - y: 0, - }, - textPosition: { - x: 'left', - y: 'top', - }, - style: { - fontSize: 180, - opacity: 100, - // isZoomActiveLrc: true, - }, - }, - list: { - isClickPlayList: false, - isShowSource: true, - prevSelectListId: 'default', - isSaveScrollLocation: true, - addMusicLocationType: 'top', - }, - download: { - enable: false, - // savePath: path.join(os.homedir(), 'Desktop'), - fileName: '歌名 - 歌手', - maxDownloadNum: 3, - isDownloadLrc: false, - isEmbedPic: true, - isEmbedLyric: false, - }, - leaderboard: { - source: 'kw', - tabId: 'kw__16', - }, - songList: { - source: 'kw', - sortId: 'new', - tagInfo: { - name: '默认', - id: null, - }, - }, - odc: { - isAutoClearSearchInput: false, - isAutoClearSearchList: false, - }, - search: { - searchSource: 'kw', - tempSearchSource: 'kw', - isShowHotSearch: false, - isShowHistorySearch: false, - isFocusSearchBox: false, - }, - sync: { - enable: false, - }, - // network: { - // proxy: { - // enable: false, - // host: '', - // port: '', - // username: '', - // password: '', - // }, - // }, - themeId: 'green', - isAutoTheme: true, - langId: null, - sourceId: 'kw', - apiSource: 'temp', - sourceNameType: 'alias', - shareType: 'system', - // randomAnimate: true, - ignoreVersion: null, - isAgreePact: false, - startupAutoPlay: false, - autoHidePlayBar: true, -} - -const overwriteSetting = { - // songList: { - // source: 'kw', - // sortId: '', - // }, - // search: { - // searchSource: 'kw', - // }, - // player: { - // cacheSize: 1024, - // }, -} - -// 使用新年皮肤 -// if (new Date().getMonth() < 2) defaultSetting.themeId = 9 - - -export { - defaultSetting, - overwriteSetting, -} diff --git a/src/config/defaultSetting.ts b/src/config/defaultSetting.ts new file mode 100644 index 0000000..f2f0cde --- /dev/null +++ b/src/config/defaultSetting.ts @@ -0,0 +1,67 @@ +const defaultSetting: LX.AppSetting = { + version: '2.0', + 'common.isAutoTheme': true, + 'common.langId': null, + 'common.apiSource': 'temp', + 'common.sourceNameType': 'alias', + 'common.shareType': 'system', + 'common.isAgreePact': false, + 'common.autoHidePlayBar': true, + 'common.drawerLayoutPosition': 'left', + + 'player.startupAutoPlay': false, + 'player.togglePlayMethod': 'listLoop', + 'player.isPlayHighQuality': false, + 'player.isSavePlayTime': false, + 'player.cacheSize': '1024', + 'player.timeoutExit': '', + 'player.timeoutExitPlayed': true, + 'player.isHandleAudioFocus': true, + 'player.isShowLyricTranslation': false, + 'player.isShowLyricRoma': false, + 'player.isShowNotificationImage': true, + 'player.isS2t': false, + 'player.vertical.style.lrcFontSize': 160, + 'player.horizontal.style.lrcFontSize': 180, + + 'desktopLyric.enable': false, + 'desktopLyric.isLock': false, + 'desktopLyric.width': 100, + 'desktopLyric.maxLineNum': 5, + 'desktopLyric.isSingleLine': false, + 'desktopLyric.showToggleAnima': true, + 'desktopLyric.position.x': 0, + 'desktopLyric.position.y': 0, + 'desktopLyric.textPosition.x': 'left', + 'desktopLyric.textPosition.y': 'top', + 'desktopLyric.style.fontSize': 180, + 'desktopLyric.style.opacity': 100, + 'desktopLyric.style.lyricUnplayColor': 'rgba(255, 255, 255, 1)', + 'desktopLyric.style.lyricPlayedColor': 'rgba(7, 197, 86, 1)', + 'desktopLyric.style.lyricShadowColor': 'rgba(0, 0, 0, 0.6)', + + 'search.isShowHotSearch': false, + 'search.isShowHistorySearch': false, + + 'list.isClickPlayList': false, + 'list.isShowSource': true, + 'list.isSaveScrollLocation': true, + 'list.addMusicLocationType': 'top', + + 'download.fileName': '歌名 - 歌手', + + 'sync.enable': false, + + 'theme.id': 'blue_plus', + 'theme.lightId': 'green', + 'theme.darkId': 'black', +} + + +// 使用新年皮肤 +if (new Date().getMonth() < 2) { + defaultSetting['theme.id'] = 'happy_new_year' + defaultSetting['desktopLyric.style.lyricPlayedColor'] = 'rgba(255, 18, 34, 1)' +} + +export default defaultSetting diff --git a/src/config/globalData.js b/src/config/globalData.js deleted file mode 100644 index 5604522..0000000 --- a/src/config/globalData.js +++ /dev/null @@ -1,36 +0,0 @@ -import { version } from '../../package.json' -process.versions.app = version - -global.i18n = null - -global.playerStatus = { - isInitialized: false, - isRegisteredService: false, - isIniting: false, -} - -global.restorePlayInfo = null -global.allList = null -global.globalObj = null -global.listScrollPosition = {} -global.listSort = {} - -global.isScreenKeepAwake = false - -// 是否播放完后退出应用 -global.isPlayedExit = false - -global.prevListPlayIndex = -1 - -global.syncKeyInfo = {} -global.isSyncEnableing = false - -global.playInfo = { - isPlaying: false, - currentPlayMusicInfo: null, - duration: 0, -} - -global.isEnableSyncLog = false - -global.playerTrackId = '' diff --git a/src/config/globalData.ts b/src/config/globalData.ts new file mode 100644 index 0000000..f8aefc1 --- /dev/null +++ b/src/config/globalData.ts @@ -0,0 +1,72 @@ +import { version } from '../../package.json' +import { createAppEventHub } from '@/event/appEvent' +import { createListEventHub } from '@/event/listEvent' +import { createStateEventHub } from '@/event/stateEvent' +if (process.versions == null) { + // @ts-expect-error + process.versions = { + app: version, + } +} else process.versions.app = version + +// global.i18n = null + +// let screenW = Dimensions.get('window').width +// let screenH = Dimensions.get('window').height +// if (screenW > screenH) { +// const temp = screenW +// screenW = screenH +// screenH = temp +// } + + +global.lx = { + fontSize: 1, + playerStatus: { + isInitialized: false, + isRegisteredService: false, + isIniting: false, + }, + + restorePlayInfo: null, + // allList: null, + // globalObj: null, + // listScrollPosition: {}, + // listSort: {}, + + isScreenKeepAwake: false, + + // 是否播放完后退出应用 + isPlayedStop: false, + + // prevListPlayIndex: -1, + + // syncKeyInfo: {}, + isSyncEnableing: false, + + + isEnableSyncLog: false, + + playerTrackId: '', + + gettingUrlId: '', + + qualityList: {}, + + jumpMyListPosition: false, + + // syncKeyInfo: initValue as LX.Sync.KeyInfo, + + // windowInfo: { + // screenW, + // screenH, + // fontScale: PixelRatio.getFontScale(), + // pixelRatio: PixelRatio.get(), + // screenPxW: PixelRatio.getPixelSizeForLayoutSize(screenW), + // screenPxH: PixelRatio.getPixelSizeForLayoutSize(screenH), + // }, +} + +global.app_event = createAppEventHub() +global.list_event = createListEventHub() +global.state_event = createStateEventHub() diff --git a/src/config/index.js b/src/config/index.js index ffaf9c2..dec3529 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -9,16 +9,3 @@ export { } // export const defaultUrl = require('@/resources/medias/Silence02s.mp3') -export const storageDataPrefix = { - setting: '@setting', - list: '@list__', - listPosition: '@listposition__', - listSort: '@listsort__', - lyric: '@lyric__', - musicUrl: '@music_url__', - playInfo: '@play_info', - syncAuthKey: '@sync_auth_key', - syncHost: '@sync_host', - syncHostHistory: '@sync_host_history', - notificationTipEnable: '@notification_tip_enable', -} diff --git a/src/config/migrate.ts b/src/config/migrate.ts new file mode 100644 index 0000000..f3de9fa --- /dev/null +++ b/src/config/migrate.ts @@ -0,0 +1,185 @@ +import { filterMusicList, toNewMusicInfo } from '@/utils' +import { LIST_IDS, storageDataPrefix, storageDataPrefixOld } from '@/config/constant' +import { getAllKeys, getData, getDataMultiple, removeData, saveData } from '@/plugins/storage' +import { allMusicList, listDataOverwrite, userLists } from '@/utils/listManage' +import { saveListMusics, saveUserList } from '@/utils/data' + + +interface OldUserListInfo { + name: string + id: string + source?: LX.OnlineSource + sourceListId?: string + locationUpdateTime?: number + list: any[] +} + + +/* export const migrateListData = async() => { + let playList = await parseDataFile<{ defaultList?: { list: any[] }, loveList?: { list: any[] }, tempList?: { list: any[] }, userList?: OldUserListInfo[] }>('playList.json') + let listDataAll: LX.List.ListDataFull = { + defaultList: [], + loveList: [], + userList: [], + tempList: [], + } + let isRequiredSave = false + if (playList) { + if (playList.defaultList) listDataAll.defaultList = filterMusicList(playList.defaultList.list.map(m => toNewMusicInfo(m))) + if (playList.loveList) listDataAll.loveList = filterMusicList(playList.loveList.list.map(m => toNewMusicInfo(m))) + if (playList.tempList) listDataAll.tempList = filterMusicList(playList.tempList.list.map(m => toNewMusicInfo(m))) + if (playList.userList) { + listDataAll.userList = playList.userList.map(l => { + return { + ...l, + locationUpdateTime: l.locationUpdateTime ?? null, + list: filterMusicList(l.list.map(m => toNewMusicInfo(m))), + } + }) + } + isRequiredSave = true + } else { + const config = await parseDataFile<{ list?: { defaultList?: any[], loveList?: any[] } }>('config.json') + if (config?.list) { + const list = config.list + if (list.defaultList) listDataAll.defaultList = filterMusicList(list.defaultList.map(m => toNewMusicInfo(m))) + if (list.loveList) listDataAll.loveList = filterMusicList(list.loveList.map(m => toNewMusicInfo(m))) + isRequiredSave = true + } + } + if (isRequiredSave) await global.lx.worker.dbService.listDataOverwrite(listDataAll) + + const lyricData = await parseDataFile<Record<string, LX.Music.LyricInfo>>('lyrics_edited.json') + if (lyricData) { + for await (const [id, info] of Object.entries(lyricData)) { + await global.lx.worker.dbService.editedLyricAdd(id, info) + } + } +} + */ +export const getAllListData = async(): Promise<{ + defaultList?: { list: any[] } + loveList?: { list: any[] } + tempList?: { list: any[] } + userList?: OldUserListInfo[] +}> => { + const defaultListKey = storageDataPrefixOld.list + 'default' + const loveListKey = storageDataPrefixOld.list + 'love' + let defaultList + let loveList + let userList = [] + let keys = await getAllKeys() + const listKeys: string[] = [] + for (const key of keys) { + if (key.startsWith(storageDataPrefixOld.list)) { + listKeys.push(key) + } + } + const listData = await getDataMultiple(listKeys) as Array<[string, any]> + for (const [key, value] of listData) { + switch (key) { + case defaultListKey: + defaultList = value + break + case loveListKey: + loveList = value + break + default: + userList.push(value) + break + } + } + + const listSort: Record<string, number> = await getData(storageDataPrefixOld.listSort) ?? {} + + userList.sort((a, b) => { + if (listSort[a.id] == null) return listSort[b.id] == null ? -1 : 1 + return listSort[b.id] == null ? 1 : listSort[a.id] - listSort[b.id] + }) + userList.forEach((list, index) => { + if (listSort[list.id] == null) { + listSort[list.id] = index + delete list.location + } + }) + + return { + defaultList, + loveList, + userList, + } +} + +/** + * 迁移 v1.0.0 之前的 list data + * @returns + */ +export const migrateListData = async() => { + const playList = await getAllListData() + let listDataAll: LX.List.ListDataFull = { + defaultList: [], + loveList: [], + userList: [], + tempList: [], + } + if (playList.defaultList) listDataAll.defaultList = filterMusicList(playList.defaultList.list.map(m => toNewMusicInfo(m))) + if (playList.loveList) listDataAll.loveList = filterMusicList(playList.loveList.list.map(m => toNewMusicInfo(m))) + if (playList.userList) { + listDataAll.userList = playList.userList.map(l => { + return { + ...l, + locationUpdateTime: l.locationUpdateTime ?? null, + list: filterMusicList(l.list.map(m => toNewMusicInfo(m))), + } + }) + } + listDataOverwrite(listDataAll) + await saveUserList(userLists) + const allListIds = [LIST_IDS.DEFAULT, LIST_IDS.LOVE, ...userLists.map(l => l.id)] + await saveListMusics([...allListIds.map(id => ({ id, musics: allMusicList.get(id) as LX.List.ListMusics }))]) + await removeData(storageDataPrefixOld.listSort) + + const listPosition = await getData(storageDataPrefixOld.listPosition) + if (listPosition != null) { + await saveData(storageDataPrefix.listScrollPosition, listPosition) + await removeData(storageDataPrefixOld.listPosition) + } +} + +const timeStr2Intv = (timeStr: string) => { + let intvArr = timeStr.split(':') + let intv = 0 + let unit = 1 + while (intvArr.length) { + intv += parseInt(intvArr.pop() as string) * unit + unit *= 60 + } + return intv +} +const migratePlayInfo = async() => { + const playInfo = await getData<any>(storageDataPrefixOld.playInfo) + if (playInfo == null) return + if (playInfo.list !== undefined) delete playInfo.list + if (playInfo.maxTime) playInfo.maxTime = timeStr2Intv(playInfo.maxTime) + await saveData(storageDataPrefix.playInfo, playInfo) +} +/** + * 迁移 v1.0.0 之前的 meta 数据 + * @returns + */ +export const migrateMetaData = async() => { + await migratePlayInfo() + // const [playInfo] = await getDataMultiple([ + // storageDataPrefixOld.listPosition, + // storageDataPrefixOld.playInfo, + // ]) + + // await saveDataMultiple([ + // // [storageDataPrefix.listScrollPosition, listPosition[1]], + // [storageDataPrefix.playInfo, migratePlayInfo(playInfo[1])], + // ]) + // await removeDataMultiple([ + // storageDataPrefix.listScrollPosition, + // ]) +} + diff --git a/src/config/migrateSetting.ts b/src/config/migrateSetting.ts new file mode 100644 index 0000000..f076b83 --- /dev/null +++ b/src/config/migrateSetting.ts @@ -0,0 +1,50 @@ +import { compareVer } from '@/utils' + +export default (setting: any): Partial<LX.AppSetting> => { + setting = { ...setting } + + // 迁移 v1 之前的配置 + if (compareVer(setting.version, '2.0') < 0) { + setting['player.startupAutoPlay'] = setting.startupAutoPlay + setting['player.togglePlayMethod'] = setting.player?.togglePlayMethod + setting['player.isPlayHighQuality'] = setting.player?.highQuality + setting['player.isSavePlayTime'] = setting.player?.isSavePlayTime + setting['player.cacheSize'] = setting.player?.cacheSize + setting['player.timeoutExit'] = setting.player?.timeoutExit + setting['player.timeoutExitPlayed'] = setting.player?.timeoutExitPlayed + setting['player.isHandleAudioFocus'] = setting.player?.isHandleAudioFocus + setting['player.isShowLyricTranslation'] = setting.player?.isShowLyricTranslation + setting['player.isShowLyricRoma'] = setting.player?.isShowLyricRoma + setting['player.isShowNotificationImage'] = setting.player?.isShowNotificationImage + setting['player.isS2t'] = setting.player?.isS2t + setting['player.portrait.style.lrcFontSize'] = setting.player?.portrait?.style?.lrcFontSize + setting['player.landscape.style.lrcFontSize'] = setting.player?.landscape?.style?.lrcFontSize + setting['desktopLyric.enable'] = setting.desktopLyric?.enable + setting['desktopLyric.isLock'] = setting.desktopLyric?.isLock + setting['desktopLyric.width'] = setting.desktopLyric?.width + setting['desktopLyric.maxLineNum'] = setting.desktopLyric?.maxLineNum + setting['desktopLyric.isSingleLine'] = setting.desktopLyric?.isSingleLine + setting['desktopLyric.showToggleAnima'] = setting.desktopLyric?.showToggleAnima + setting['desktopLyric.position.x'] = setting.desktopLyric?.position?.x + setting['desktopLyric.position.y'] = setting.desktopLyric?.position?.y + setting['desktopLyric.textPosition.x'] = setting.desktopLyric?.textPosition?.x + setting['desktopLyric.textPosition.y'] = setting.desktopLyric?.textPosition?.y + setting['desktopLyric.style.fontSize'] = setting.desktopLyric?.style?.fontSize + setting['desktopLyric.style.opacity'] = setting.desktopLyric?.style?.opacity + setting['list.isClickPlayList'] = setting.list?.isClickPlayList + setting['list.isShowSource'] = setting.list?.isShowSource + setting['list.isSaveScrollLocation'] = setting.list?.isSaveScrollLocation + setting['list.addMusicLocationType'] = setting.list?.addMusicLocationType + setting['common.themeId'] = setting.themeId + setting['common.isAutoTheme'] = setting.isAutoTheme + setting['common.langId'] = setting.langId + setting['common.apiSource'] = setting.apiSource + setting['common.sourceNameType'] = setting.sourceNameType + setting['common.shareType'] = setting.shareType + setting['common.isAgreePact'] = setting.isAgreePact + setting['sync.enable'] = setting.sync?.enable + setting['theme.id'] = setting.themeId + } + + return setting +} diff --git a/src/config/setting.js b/src/config/setting.js deleted file mode 100644 index 25c4431..0000000 --- a/src/config/setting.js +++ /dev/null @@ -1,42 +0,0 @@ -import { compareVer, objectDeepMerge } from '../utils' -import { defaultSetting, overwriteSetting } from './defaultSetting' -import apiSource from '../utils/music/api-source-info' - -export const mergeSetting = setting => { - const defaultSettingCopy = JSON.parse(JSON.stringify(defaultSetting)) - const overwriteSettingCopy = JSON.parse(JSON.stringify(overwriteSetting)) - - if (!setting) { - setting = defaultSettingCopy - } else if (compareVer(setting.version, defaultSettingCopy.version) < 0) { - objectDeepMerge(defaultSettingCopy, setting) - objectDeepMerge(defaultSettingCopy, overwriteSettingCopy) - setting = defaultSettingCopy - } - - if (!apiSource.some(api => api.id === setting.apiSource && !api.disabled)) { - const api = apiSource.find(api => !api.disabled) - if (api) setting.apiSource = api.id - } - - return setting -} - -/** - * 初始化设置 - * @param {*} setting - */ - -export const initSetting = () => { - // const { version: settingVersion, setting: newSetting } = mergeSetting(setting, electronStore_config.get('version')) - - - // newSetting.controlBtnPosition = 'right' - // electronStore_config.set('version', settingVersion) - // electronStore_config.set('setting', newSetting) - // return newSetting - return { - setting: defaultSetting, - settingVersion: defaultSetting.version, - } -} diff --git a/src/config/setting.ts b/src/config/setting.ts new file mode 100644 index 0000000..918f0ef --- /dev/null +++ b/src/config/setting.ts @@ -0,0 +1,114 @@ +import { storageDataPrefix, storageDataPrefixOld } from '@/config/constant' +import defaultSetting from '@/config/defaultSetting' +import { getData, removeData, saveData } from '@/plugins/storage' +import migrateSetting from './migrateSetting' +import settingState from '@/store/setting/state' +import { migrateMetaData, migrateListData } from './migrate' +import { Alert } from 'react-native' +import { exitApp } from '@/utils/tools' + +// 业务相关工具方法 + + +const primitiveType = ['string', 'boolean', 'number'] +const checkPrimitiveType = (val: any): boolean => val === null || primitiveType.includes(typeof val) + +const mergeSetting = (originSetting: LX.AppSetting, targetSetting?: Partial<LX.AppSetting> | null): { + setting: LX.AppSetting + updatedSettingKeys: Array<keyof LX.AppSetting> + updatedSetting: Partial<LX.AppSetting> +} => { + let originSettingCopy: LX.AppSetting = { ...originSetting } + // const defaultVersion = targetSettingCopy.version + const updatedSettingKeys: Array<keyof LX.AppSetting> = [] + const updatedSetting: Partial<LX.AppSetting> = {} + + if (targetSetting) { + const originSettingKeys = Object.keys(originSettingCopy) + const targetSettingKeys = Object.keys(targetSetting) + + if (originSettingKeys.length > targetSettingKeys.length) { + for (const key of targetSettingKeys as Array<keyof LX.AppSetting>) { + const targetValue: any = targetSetting[key] + const isPrimitive = checkPrimitiveType(targetValue) + // if (checkPrimitiveType(value)) { + if (!isPrimitive || targetValue == originSettingCopy[key] || originSettingCopy[key] === undefined) continue + updatedSettingKeys.push(key) + updatedSetting[key] = targetValue + // @ts-expect-error + originSettingCopy[key] = targetValue + // } else { + // if (!isPrimitive && currentValue != undefined) handleMergeSetting(value, currentValue) + // } + } + } else { + for (const key of originSettingKeys as Array<keyof LX.AppSetting>) { + const targetValue: any = targetSetting[key] + const isPrimitive = checkPrimitiveType(targetValue) + // if (checkPrimitiveType(value)) { + if (!isPrimitive || targetValue == originSettingCopy[key]) continue + updatedSettingKeys.push(key) + updatedSetting[key] = targetValue + // @ts-expect-error + originSettingCopy[key] = targetValue + // } else { + // if (!isPrimitive && currentValue != undefined) handleMergeSetting(value, currentValue) + // } + } + } + } + + return { + setting: originSettingCopy, + updatedSettingKeys, + updatedSetting, + } +} +export const updateSetting = (setting?: Partial<LX.AppSetting> | null, isInit: boolean = false) => { + let originSetting: LX.AppSetting + if (isInit) { + originSetting = { ...defaultSetting } + } else originSetting = settingState.setting + + const result = mergeSetting(originSetting, setting) + + result.setting.version = defaultSetting.version + + return result +} + +export const initSetting = async() => { + let setting: Partial<LX.AppSetting> | null = await getData(storageDataPrefix.setting) + + + // try migrate setting before v1 + if (!setting) { + const config = await getData<{ setting?: any }>(storageDataPrefixOld.setting) + if (config != null) { + setting = migrateSetting(config) + try { + await migrateListData() + await migrateMetaData() + } catch (err: any) { + Alert.alert('数据迁移失败 (Migrate data Failed)', `请加企鹅群(830125506)或到GitHub反馈,为了防止数据丢失,应用将停止运行,错误信息:\n${(err.stack ?? err.message) as string}`, [ + { + text: 'Exit', + onPress() { + exitApp() + }, + }, + ], { + cancelable: false, + }) + throw err + } + await removeData(storageDataPrefixOld.setting) + } + } + + // console.log(setting) + const updatedSetting = updateSetting(setting, true) + void saveData(storageDataPrefix.setting, updatedSetting.setting) + + return updatedSetting +} diff --git a/src/core/apiSource.ts b/src/core/apiSource.ts new file mode 100644 index 0000000..833283d --- /dev/null +++ b/src/core/apiSource.ts @@ -0,0 +1,34 @@ +// import { setUserApi as setUserApiAction } from '@renderer/utils/ipc' +import musicSdk from '@/utils/musicSdk' +// import apiSourceInfo from '@renderer/utils/musicSdk/api-source-info' +import { updateSetting } from './common' +import settingState from '@/store/setting/state' + + +export const setUserApi = (apiId: string) => { + if (/^user_api/.test(apiId)) { + // qualityList.value = {} + // userApi.status = false + // userApi.message = 'initing' + + // await setUserApiAction(apiId).then(() => { + // apiSource.value = apiId + // }).catch(err => { + // console.log(err) + // let api = apiSourceInfo.find(api => !api.disabled) + // if (!api) return + // apiSource.value = api.id + // if (api.id != appSetting['common.apiSource']) setApiSource(api.id) + // }) + } else { + // @ts-expect-error + global.lx.qualityList = musicSdk.supportQuality[apiId] as LX.QualityList + // apiSource.value = apiId + // void setUserApiAction(apiId) + } + + if (apiId != settingState.setting['common.apiSource']) { + updateSetting({ 'common.apiSource': apiId }) + } +} + diff --git a/src/core/common.ts b/src/core/common.ts new file mode 100644 index 0000000..4fd9835 --- /dev/null +++ b/src/core/common.ts @@ -0,0 +1,80 @@ +import { hideDesktopLyric } from './desktopLyric' +import { exitApp as utilExitApp } from '@/utils/nativeModules/utils' +import { destroy as destroyPlayer } from '@/plugins/player/utils' +import { initSetting as initAppSetting } from '@/config/setting' +import { setLanguage as applyLanguage } from '@/lang/i18n' + +import settingActions from '@/store/setting/action' +import settingState from '@/store/setting/state' +import commonActions from '@/store/common/action' +import commonState, { type InitState as CommonStateType } from '@/store/common/state' + +import { storageDataPrefix } from '@/config/constant' +import { saveData } from '@/plugins/storage' +import { throttle } from '@/utils/common' +import { saveFontSize, saveViewPrevState } from '@/utils/data' +import { showPactModal as handleShowPactModal } from '@/navigation' + + +const throttleSaveSetting = throttle(() => { + void saveData(storageDataPrefix.setting, settingState.setting) +}) + +/** + * 初始化设置 + */ +export const initSetting = async() => { + const setting = (await initAppSetting()).setting + settingActions.updateSetting(setting) + return setting +} + +/** + * 更新设置 + * @param setting 新设置 + */ +export const updateSetting = (setting: Partial<LX.AppSetting>) => { + settingActions.updateSetting(setting) + throttleSaveSetting() +} + +export const setLanguage = (locale: Parameters<typeof applyLanguage>[0]) => { + updateSetting({ 'common.langId': locale }) + applyLanguage(locale) +} + + +let isDestroying = false +export const exitApp = () => { + if (isDestroying) return + isDestroying = true + Promise.all([ + hideDesktopLyric(), + destroyPlayer(), + ]).finally(() => { + isDestroying = false + utilExitApp() + }) +} + +export const setFontSize = (size: number) => { + commonActions.setFontSize(size) + void saveFontSize(size) +} + +export const setComponentId = (name: keyof CommonStateType['componentIds'], id: string) => { + commonActions.setComponentId(name, id) +} +export const removeComponentId = (name: string) => { + commonActions.removeComponentId(name) +} + +export const setNavActiveId = (id: Parameters<typeof commonActions.setNavActiveId>['0']) => { + if (id == commonState.navActiveId) return + commonActions.setNavActiveId(id) + saveViewPrevState({ id }) +} + +export const showPactModal = () => { + handleShowPactModal() +} diff --git a/src/core/desktopLyric.ts b/src/core/desktopLyric.ts new file mode 100644 index 0000000..c6fa266 --- /dev/null +++ b/src/core/desktopLyric.ts @@ -0,0 +1,91 @@ +import { + hideLyric, + showLyric, + setLyric, + play, + pause, + toggleTranslation, + toggleRoma, + toggleLock, + setColor, + setAlpha, + setTextSize, + setShowToggleAnima, + setSingleLine, + setPosition, + setMaxLineNum, + setWidth, + setLyricTextPosition, + checkOverlayPermission, + openOverlayPermissionActivity, + onPositionChange, +} from '@/utils/nativeModules/lyricDesktop' +import settingState from '@/store/setting/state' +import playerState from '@/store/player/state' +import { tranditionalize } from '@/utils/simplify-chinese-main' +import { getPosition } from '@/plugins/player' + +export const showDesktopLyric = async() => { + const setting = settingState.setting + await showLyric({ + isShowToggleAnima: setting['desktopLyric.showToggleAnima'], + isSingleLine: setting['desktopLyric.isSingleLine'], + isLock: setting['desktopLyric.isLock'], + unplayColor: setting['desktopLyric.style.lyricUnplayColor'], + playedColor: setting['desktopLyric.style.lyricPlayedColor'], + shadowColor: setting['desktopLyric.style.lyricShadowColor'], + opacity: setting['desktopLyric.style.opacity'], + textSize: setting['desktopLyric.style.fontSize'], + width: setting['desktopLyric.width'], + maxLineNum: setting['desktopLyric.maxLineNum'], + positionX: setting['desktopLyric.position.x'], + positionY: setting['desktopLyric.position.y'], + textPositionX: setting['desktopLyric.textPosition.x'], + textPositionY: setting['desktopLyric.textPosition.y'], + }) + let lrc = playerState.musicInfo.lrc ?? '' + let tlrc = playerState.musicInfo.tlrc ?? '' + let rlrc = playerState.musicInfo.rlrc ?? '' + if (setting['player.isS2t']) { + lrc = tranditionalize(lrc) + tlrc = tranditionalize(tlrc) + } + await setLyric(lrc, tlrc, rlrc) + if (playerState.isPlay && !global.lx.gettingUrlId) { + void getPosition().then(position => { + void play(position * 1000) + }) + } +} + +export const hideDesktopLyric = async() => { + return hideLyric() +} + +export const playDesktopLyric = play +export const pauseDesktopLyric = pause +export const setDesktopLyric = setLyric +export const toggleDesktopLyricTranslation = toggleTranslation +export const toggleDesktopLyricRoma = toggleRoma +export const toggleDesktopLyricLock = toggleLock +export const setDesktopLyricColor = async(unplayColor: string | null, playedColor: string | null, shadowColor: string | null) => { + return setColor(unplayColor ?? settingState.setting['desktopLyric.style.lyricUnplayColor'], + playedColor ?? settingState.setting['desktopLyric.style.lyricPlayedColor'], + shadowColor ?? settingState.setting['desktopLyric.style.lyricShadowColor'], + ) +} +export const setDesktopLyricAlpha = setAlpha +export const setDesktopLyricTextSize = setTextSize +export const setShowDesktopLyricToggleAnima = setShowToggleAnima +export const setDesktopLyricSingleLine = setSingleLine +export const setDesktopLyricPosition = setPosition +export const setDesktopLyricMaxLineNum = setMaxLineNum +export const setDesktopLyricWidth = setWidth +export const setDesktopLyricTextPosition = async(x: LX.AppSetting['desktopLyric.textPosition.x'] | null, y: LX.AppSetting['desktopLyric.textPosition.y'] | null) => { + return setLyricTextPosition(x ?? settingState.setting['desktopLyric.textPosition.x'], y ?? settingState.setting['desktopLyric.textPosition.y']) +} +export const checkDesktopLyricOverlayPermission = checkOverlayPermission +export const openDesktopLyricOverlayPermissionActivity = openOverlayPermissionActivity +export const onDesktopLyricPositionChange = onPositionChange + + diff --git a/src/core/hotSearch.ts b/src/core/hotSearch.ts new file mode 100644 index 0000000..aa6732e --- /dev/null +++ b/src/core/hotSearch.ts @@ -0,0 +1,35 @@ +import hotSearchState, { type Source } from '@/store/hotSearch/state' +import hotSearchActions, { type Lists } from '@/store/hotSearch/action' +import musicSdk from '@/utils/musicSdk' + +export const getList = async(source: Source): Promise<string[]> => { + if (source == 'all') { + let task = [] + for (const source of hotSearchState.sources) { + if (source == 'all') continue + task.push( + hotSearchState.sourceList[source]?.length + ? Promise.resolve({ source, list: hotSearchState.sourceList[source] as Lists[number]['list'] }) + : ((musicSdk[source]?.hotSearch.getList() as Promise<Lists[number]>) ?? Promise.reject(new Error('source not found: ' + source))).catch((err: any) => { + console.log(err) + return { source, list: [] } + }), + ) + } + return Promise.all(task).then((results: Lists) => { + return hotSearchActions.setList(source, results) + }) + } else { + if (hotSearchState.sourceList[source]?.length) return hotSearchState.sourceList[source] as string[] + if (!musicSdk[source]?.hotSearch) { + hotSearchActions.setList(source, []) + return [] + } + return musicSdk[source]?.hotSearch.getList().catch((err: any) => { + console.log(err) + return { source, list: [] } + }).then(data => hotSearchActions.setList(source, data.list)) + } +} + + diff --git a/src/core/init/dataInit.ts b/src/core/init/dataInit.ts new file mode 100644 index 0000000..5d7c759 --- /dev/null +++ b/src/core/init/dataInit.ts @@ -0,0 +1,30 @@ +// import { getPlayInfo } from '@/utils/data' +// import { log } from '@/utils/log' +import { init as musicSdkInit } from '@/utils/musicSdk' +import { getUserLists, setUserList } from '@/core/list' +import { setNavActiveId } from '../common' +import { getViewPrevState } from '@/utils/data' +// import { play, playList } from '../player/player' + +// const initPrevPlayInfo = async(appSetting: LX.AppSetting) => { +// const info = await getPlayInfo() +// global.lx.restorePlayInfo = null +// if (!info?.listId || info.index < 0) return +// const list = await getListMusics(info.listId) +// if (!list[info.index]) return +// global.lx.restorePlayInfo = info +// await playList(info.listId, info.index) + +// if (appSetting['player.startupAutoPlay']) setTimeout(play) +// } + +export default async(appSetting: LX.AppSetting) => { + // await Promise.all([ + // initUserApi(), // 自定义API + // ]).catch(err => log.error(err)) + void musicSdkInit() // 初始化音乐sdk + + setUserList(await getUserLists()) // 获取用户列表 + setNavActiveId((await getViewPrevState()).id) + // await initPrevPlayInfo(appSetting).catch(err => log.error(err)) // 初始化上次的歌曲播放信息 +} diff --git a/src/core/init/i18n.ts b/src/core/init/i18n.ts new file mode 100644 index 0000000..d06f881 --- /dev/null +++ b/src/core/init/i18n.ts @@ -0,0 +1,21 @@ +import { createI18n } from '@/lang/i18n' +import type { I18n } from '@/lang/i18n' +import { deviceLanguage } from '@/utils/tools' +import { setLanguage, updateSetting } from '@/core/common' + + +export default async(setting: LX.AppSetting) => { + let lang = setting['common.langId'] + + global.i18n = createI18n() + + if (!lang || !global.i18n.availableLocales.includes(lang)) { + if (typeof deviceLanguage == 'string' && global.i18n.availableLocales.includes(deviceLanguage as I18n['locale'])) { + lang = deviceLanguage as I18n['locale'] + } else { + lang = 'en_us' + } + updateSetting({ 'common.langId': lang }) + } + setLanguage(lang) +} diff --git a/src/core/init/index.ts b/src/core/init/index.ts new file mode 100644 index 0000000..03fdcc3 --- /dev/null +++ b/src/core/init/index.ts @@ -0,0 +1,50 @@ +import { initSetting, showPactModal } from '@/core/common' +import registerPlaybackService from '@/plugins/player/service' +import initTheme from './theme' +import initI18n from './i18n' +import initPlayer from './player' +import dataInit from './dataInit' +import initSync from './sync' +// import syncSetting from './syncSetting' +import { setUserApi } from '@/core/apiSource' +import commonActions from '@/store/common/action' +import settingState from '@/store/setting/state' +import { checkUpdate } from '@/core/version' + +let isFirstPush = true +const handlePushedHomeScreen = () => { + if (settingState.setting['common.isAgreePact']) { + if (isFirstPush) { + isFirstPush = false + void checkUpdate() + } + } else { + if (isFirstPush) isFirstPush = false + showPactModal() + } +} + +let isInited = false +export default async() => { + if (isInited) return handlePushedHomeScreen + commonActions.setFontSize(global.lx.fontSize) + const setting = await initSetting() + // console.log(setting) + + await initTheme(setting) + await initI18n(setting) + + setUserApi(setting['common.apiSource']) + + registerPlaybackService() + await initPlayer(setting) + await dataInit(setting) + + void initSync(setting) + + // syncSetting() + + isInited = true + + return handlePushedHomeScreen +} diff --git a/src/core/init/player/index.ts b/src/core/init/player/index.ts new file mode 100644 index 0000000..759bdc4 --- /dev/null +++ b/src/core/init/player/index.ts @@ -0,0 +1,17 @@ +import initPlayer from './player' +import initPlayInfo from './playInfo' +import initPlayStatus from './playStatus' +import initPlayerEvent from './playerEvent' +import initWatchList from './watchList' +import initPlayProgress from './playProgress' +import initLyric from './lyric' + +export default async(setting: LX.AppSetting) => { + await initPlayer(setting) + await initPlayInfo(setting) + initPlayStatus() + initPlayerEvent() + initWatchList() + initPlayProgress() + await initLyric(setting) +} diff --git a/src/core/init/player/lyric.ts b/src/core/init/player/lyric.ts new file mode 100644 index 0000000..0dff578 --- /dev/null +++ b/src/core/init/player/lyric.ts @@ -0,0 +1,29 @@ +import { init as initLyricPlayer, toggleTranslation, toggleRoma, play, pause, stop, setLyric } from '@/core/lyric' +import { updateSetting } from '@/core/common' +import { onDesktopLyricPositionChange, showDesktopLyric } from '@/core/desktopLyric' + +export default async(setting: LX.AppSetting) => { + await initLyricPlayer() + toggleTranslation(setting['player.isShowLyricTranslation']) + toggleRoma(setting['player.isShowLyricRoma']) + + if (setting['desktopLyric.enable']) { + showDesktopLyric().catch(() => { + updateSetting({ 'desktopLyric.enable': false }) + }) + } + onDesktopLyricPositionChange(position => { + updateSetting({ + 'desktopLyric.position.x': position.x, + 'desktopLyric.position.y': position.y, + }) + }) + + + global.app_event.on('play', play) + global.app_event.on('pause', pause) + global.app_event.on('stop', stop) + global.app_event.on('error', pause) + global.app_event.on('musicToggled', stop) + global.app_event.on('lyricUpdated', setLyric) +} diff --git a/src/core/init/player/playInfo.ts b/src/core/init/player/playInfo.ts new file mode 100644 index 0000000..47656ea --- /dev/null +++ b/src/core/init/player/playInfo.ts @@ -0,0 +1,45 @@ +import { getPlayInfo } from '@/utils/data' +import { getListMusics } from '@/core/list' +import { playList, play } from '@/core/player/player' + + +export default async(setting: LX.AppSetting) => { + const info = await getPlayInfo() + global.lx.restorePlayInfo = null + if (!info?.listId || info.index < 0) return + + const list = await getListMusics(info.listId) + if (!list[info.index]) return + global.lx.restorePlayInfo = info + + await playList(info.listId, info.index) + + if (setting['player.startupAutoPlay']) setTimeout(play) + + + // if (!info.list || !info.list[info.index]) { + // const info2 = { ...info } + // if (info2.list) { + // info2.music = info2.list[info2.index]?.name + // info2.list = info2.list.length + // } + // toast('恢复播放数据失败,请去错误日志查看', 'long') + // log.warn('Restore Play Info failed: ', JSON.stringify(info2, null, 2)) + + // return + // } + + // let setting = store.getState().common.setting + // global.restorePlayInfo = { + // info, + // startupAutoPlay: setting.startupAutoPlay, + // } + + // store.dispatch(playerAction.setList({ + // list: { + // list: info.list, + // id: info.listId, + // }, + // index: info.index, + // })) +} diff --git a/src/core/init/player/playProgress.ts b/src/core/init/player/playProgress.ts new file mode 100644 index 0000000..fcfc4e2 --- /dev/null +++ b/src/core/init/player/playProgress.ts @@ -0,0 +1,154 @@ +import { updateListMusics } from '@/core/list' +import { setMaxplayTime, setNowPlayTime } from '@/core/player/progress' +import { setCurrentTime, getDuration, getPosition } from '@/plugins/player' +import { formatPlayTime2 } from '@/utils/common' +import { savePlayInfo } from '@/utils/data' +import { throttleBackgroundTimer } from '@/utils/tools' +import BackgroundTimer from 'react-native-background-timer' +import playerState from '@/store/player/state' +import settingState from '@/store/setting/state' + + +const delaySavePlayInfo = throttleBackgroundTimer(savePlayInfo, 2000) + +export default () => { + // const updateMusicInfo = useCommit('list', 'updateMusicInfo') + + let updateTimeout: number | null = null + + const getCurrentTime = () => { + void getPosition().then(position => { + if (!position || !playerState.isPlay) return + setNowPlayTime(position) + + if (settingState.setting['player.isSavePlayTime'] && !playerState.playMusicInfo.isTempPlay) { + delaySavePlayInfo({ + time: position, + maxTime: playerState.progress.maxPlayTime, + listId: playerState.playMusicInfo.listId as string, + index: playerState.playInfo.playIndex, + }) + } + }) + } + const getMaxTime = async() => { + setMaxplayTime(await getDuration()) + + if (playerState.playMusicInfo.musicInfo && 'source' in playerState.playMusicInfo.musicInfo && !playerState.playMusicInfo.musicInfo.interval) { + // console.log(formatPlayTime2(playProgress.maxPlayTime)) + + if (playerState.playMusicInfo.listId) { + void updateListMusics([{ + id: playerState.playMusicInfo.listId, + musicInfo: { + ...playerState.playMusicInfo.musicInfo, + interval: formatPlayTime2(playerState.progress.maxPlayTime), + }, + }]) + } + } + } + + const clearUpdateTimeout = () => { + if (!updateTimeout) return + BackgroundTimer.clearInterval(updateTimeout) + updateTimeout = null + } + const startUpdateTimeout = () => { + clearUpdateTimeout() + updateTimeout = BackgroundTimer.setInterval(() => { + getCurrentTime() + }, 1000) + getCurrentTime() + } + + const setProgress = (time: number, maxTime?: number) => { + if (!playerState.musicInfo.id) return + // console.log('setProgress', time, maxTime) + setNowPlayTime(time) + void setCurrentTime(time) + + if (maxTime != null) setMaxplayTime(maxTime) + + // if (!isPlay) audio.play() + } + + + const handlePlay = () => { + void getMaxTime() + // prevProgressStatus = 'normal' + // handleSetTaskBarState(playProgress.progress, prevProgressStatus) + startUpdateTimeout() + } + const handlePause = () => { + // prevProgressStatus = 'paused' + // handleSetTaskBarState(playProgress.progress, prevProgressStatus) + // clearBufferTimeout() + clearUpdateTimeout() + } + + const handleStop = () => { + clearUpdateTimeout() + setNowPlayTime(0) + setMaxplayTime(0) + // prevProgressStatus = 'none' + // handleSetTaskBarState(playProgress.progress, prevProgressStatus) + } + + const handleError = () => { + // if (!restorePlayTime) restorePlayTime = getCurrentTime() // 记录出错的播放时间 + // console.log('handleError') + // prevProgressStatus = 'error' + // handleSetTaskBarState(playProgress.progress, prevProgressStatus) + clearUpdateTimeout() + } + + + const handleSetPlayInfo = () => { + // restorePlayTime = playProgress.nowPlayTime + // void setCurrentTime(playerState.progress.nowPlayTime) + // setMaxplayTime(playProgress.maxPlayTime) + handlePause() + if (!playerState.playMusicInfo.isTempPlay) { + delaySavePlayInfo({ + time: playerState.progress.nowPlayTime, + maxTime: playerState.progress.maxPlayTime, + listId: playerState.playMusicInfo.listId as string, + index: playerState.playInfo.playIndex, + }) + } + } + + // watch(() => playerState.progress.nowPlayTime, (newValue, oldValue) => { + // if (settingState.setting['player.isSavePlayTime'] && !playMusicInfo.isTempPlay) { + // delaySavePlayInfo({ + // time: newValue, + // maxTime: playerState.progress.maxPlayTime, + // listId: playMusicInfo.listId as string, + // index: playInfo.playIndex, + // }) + // } + // }) + // watch(() => playerState.progress.maxPlayTime, maxPlayTime => { + // if (!playMusicInfo.isTempPlay) { + // delaySavePlayInfo({ + // time: playerState.progress.nowPlayTime, + // maxTime: maxPlayTime, + // listId: playMusicInfo.listId as string, + // index: playInfo.playIndex, + // }) + // } + // }) + + global.app_event.on('play', handlePlay) + global.app_event.on('pause', handlePause) + global.app_event.on('stop', handleStop) + global.app_event.on('error', handleError) + global.app_event.on('setProgress', setProgress) + // global.app_event.on(eventPlayerNames.restorePlay, handleRestorePlay) + // global.app_event.on('playerLoadeddata', handleLoadeddata) + // global.app_event.on('playerCanplay', handleCanplay) + // global.app_event.on('playerWaiting', handleWating) + // global.app_event.on('playerEmptied', handleEmpied) + global.app_event.on('musicToggled', handleSetPlayInfo) +} diff --git a/src/core/init/player/playStatus.ts b/src/core/init/player/playStatus.ts new file mode 100644 index 0000000..f88067b --- /dev/null +++ b/src/core/init/player/playStatus.ts @@ -0,0 +1,82 @@ +// import { LIST_ID_LOVE } from '@/config/constant' + +import { updateMetaData } from '@/plugins/player' +import playerState from '@/store/player/state' + +export default () => { + // const setVisibleDesktopLyric = useCommit('setVisibleDesktopLyric') + // const setLockDesktopLyric = useCommit('setLockDesktopLyric') + + const buttons = { + empty: true, + collect: false, + play: false, + prev: true, + next: true, + lrc: false, + lockLrc: false, + } + const setButtons = () => { + // setPlayerAction(buttons) + if (!playerState.playMusicInfo.musicInfo) return + void updateMetaData(playerState.musicInfo, playerState.isPlay) + } + // const updateCollectStatus = async() => { + // // let status = !!playMusicInfo.musicInfo && await checkListExistMusic(LIST_ID_LOVE, playerState.playMusicInfo.musicInfo.id) + // // if (buttons.collect == status) return false + // // buttons.collect = status + // return true + // } + + const handlePlay = () => { + // if (buttons.empty) buttons.empty = false + if (buttons.play) return + buttons.play = true + setButtons() + } + const handlePause = () => { + // if (buttons.empty) buttons.empty = false + if (!buttons.play) return + buttons.play = false + setButtons() + } + // const handleStop = () => { + // // if (playerState.playMusicInfo.musicInfo != null) return + // // if (buttons.collect) buttons.collect = false + // // buttons.empty = true + // setButtons() + // } + // const handleSetPlayInfo = () => { + // void updateCollectStatus().then(isExist => { + // if (isExist) setButtons() + // }) + // } + // const handleSetTaskbarThumbnailClip = (clip) => { + // setTaskbarThumbnailClip(clip) + // } + // const throttleListChange = throttle(async listIds => { + // if (!listIds.includes(loveList.id)) return + // if (await updateCollectStatus()) setButtons() + // }) + // const updateSetting = () => { + // const setting = store.getters.setting + // buttons.lrc = setting.desktopLyric.enable + // buttons.lockLrc = setting.desktopLyric.isLock + // setButtons() + // } + global.app_event.on('play', handlePlay) + global.app_event.on('pause', handlePause) + global.app_event.on('stop', handlePause) + // global.app_event.on('musicToggled', handleSetPlayInfo) + // window.app_event.on(eventTaskbarNames.setTaskbarThumbnailClip, handleSetTaskbarThumbnailClip) + // window.app_event.on('myListMusicUpdate', throttleListChange) + + return async() => { + // const setting = store.getters.setting + // buttons.lrc = setting.desktopLyric.enable + // buttons.lockLrc = setting.desktopLyric.isLock + // await updateCollectStatus() + // if (playMusicInfo.musicInfo != null) buttons.empty = false + setButtons() + } +} diff --git a/src/core/init/player/player.ts b/src/core/init/player/player.ts new file mode 100644 index 0000000..9fbc505 --- /dev/null +++ b/src/core/init/player/player.ts @@ -0,0 +1,60 @@ +import { addPlayedList, clearPlayedList } from '@/core/player/playedList' +import { pause, playNext } from '@/core/player/player' +import { setStatusText, setIsPlay } from '@/core/player/playStatus' +// import { resetPlayerMusicInfo } from '@/core/player/playInfo' +import { setStop } from '@/plugins/player' +import { delayUpdateMusicInfo } from '@/plugins/player/playList' +import playerState from '@/store/player/state' + + +export default async(setting: LX.AppSetting) => { + const setPlayStatus = () => { + setIsPlay(true) + } + const setPauseStatus = () => { + setIsPlay(false) + if (global.lx.isPlayedStop) void pause() + } + + const handleEnded = () => { + // setTimeout(() => { + if (global.lx.isPlayedStop) { + setStatusText(global.i18n.t('player__end')) + return + } + // resetPlayerMusicInfo() + // global.app_event.stop() + setStatusText(global.i18n.t('player__end')) + void playNext(true) + // }) + } + + const setStopStatus = () => { + setIsPlay(false) + setStatusText('') + void setStop() + } + + const updatePic = () => { + if (playerState.playMusicInfo.musicInfo) { + delayUpdateMusicInfo(playerState.musicInfo) + } + } + + const handleConfigUpdated: typeof global.state_event.configUpdated = (keys, settings) => { + if (!keys.includes('player.togglePlayMethod')) return + const newValue = settings['player.togglePlayMethod'] + if (playerState.playedList.length) clearPlayedList() + const playMusicInfo = playerState.playMusicInfo + if (newValue == 'random' && playMusicInfo.musicInfo && !playMusicInfo.isTempPlay) addPlayedList({ ...(playMusicInfo as LX.Player.PlayMusicInfo) }) + } + + + global.app_event.on('play', setPlayStatus) + global.app_event.on('pause', setPauseStatus) + global.app_event.on('error', setPauseStatus) + global.app_event.on('stop', setStopStatus) + global.app_event.on('playerEnded', handleEnded) + global.app_event.on('picUpdated', updatePic) + global.state_event.on('configUpdated', handleConfigUpdated) +} diff --git a/src/core/init/player/playerEvent.ts b/src/core/init/player/playerEvent.ts new file mode 100644 index 0000000..e97a478 --- /dev/null +++ b/src/core/init/player/playerEvent.ts @@ -0,0 +1,137 @@ +import { playNext, setMusicUrl } from '@/core/player/player' +import { setStatusText } from '@/core/player/playStatus' +import { getPosition, isEmpty, setStop } from '@/plugins/player' +import { isActive } from '@/utils/tools' +import BackgroundTimer from 'react-native-background-timer' +import playerState from '@/store/player/state' +import { setNowPlayTime } from '@/core/player/progress' + + +export default () => { + let retryNum = 0 + let prevTimeoutId: string | null = null + + let loadingTimeout: number | null = null + let delayNextTimeout: number | null = null + const startLoadingTimeout = () => { + // console.log('start load timeout') + clearLoadingTimeout() + loadingTimeout = BackgroundTimer.setTimeout(() => { + // if (global.lx.isPlayedStop) { + // prevTimeoutId = null + // setStatusText('') + // return + // } + + // 如果加载超时,则尝试刷新URL + if (prevTimeoutId == playerState.musicInfo.id) { + prevTimeoutId = null + void playNext(true) + } else { + prevTimeoutId = playerState.musicInfo.id + if (playerState.playMusicInfo.musicInfo) setMusicUrl(playerState.playMusicInfo.musicInfo, true) + } + }, 25000) + } + const clearLoadingTimeout = () => { + if (!loadingTimeout) return + // console.log('clear load timeout') + BackgroundTimer.clearTimeout(loadingTimeout) + loadingTimeout = null + } + + const clearDelayNextTimeout = () => { + // console.log(this.delayNextTimeout) + if (!delayNextTimeout) return + BackgroundTimer.clearTimeout(delayNextTimeout) + delayNextTimeout = null + } + const addDelayNextTimeout = () => { + clearDelayNextTimeout() + delayNextTimeout = BackgroundTimer.setTimeout(() => { + if (global.lx.isPlayedStop) { + setStatusText('') + return + } + void playNext(true) + }, 5000) + } + + const handleLoadstart = () => { + if (global.lx.isPlayedStop) return + startLoadingTimeout() + setStatusText(global.i18n.t('player__loading')) + } + + // const handleLoadeddata = () => { + // setStatusText(global.i18n.t('player__loading')) + // } + + // const handleCanplay = () => { + // setStatusText('') + // } + + const handlePlaying = () => { + setStatusText('') + clearLoadingTimeout() + } + + const handleEmpied = () => { + clearDelayNextTimeout() + clearLoadingTimeout() + } + + const handleWating = () => { + setStatusText(global.i18n.t('player__buffering')) + } + + const handleError = () => { + if (!playerState.musicInfo.id) return + clearLoadingTimeout() + if (global.lx.isPlayedStop) return + if (playerState.playMusicInfo.musicInfo && retryNum < 2) { // 若音频URL无效则尝试刷新2次URL + let musicInfo = playerState.playMusicInfo.musicInfo + getPosition().then((position) => { + if (position) setNowPlayTime(position) + }).finally(() => { + // console.log(this.retryNum) + if (playerState.playMusicInfo.musicInfo !== musicInfo) return + retryNum++ + setMusicUrl(playerState.playMusicInfo.musicInfo, true) + setStatusText(global.i18n.t('player__refresh_url')) + }) + return + } + if (!isEmpty()) void setStop() + + if (isActive()) { + setStatusText(global.i18n.t('player__error')) + setTimeout(addDelayNextTimeout) + } else { + console.warn('error skip to next') + void playNext(true) + } + } + + const handleSetPlayInfo = () => { + retryNum = 0 + prevTimeoutId = null + clearDelayNextTimeout() + clearLoadingTimeout() + } + + // const handlePlayedStop = () => { + // clearDelayNextTimeout() + // clearLoadingTimeout() + // } + + + global.app_event.on('playerLoadstart', handleLoadstart) + // global.app_event.on('playerLoadeddata', handleLoadeddata) + // global.app_event.on('playerCanplay', handleCanplay) + global.app_event.on('playerPlaying', handlePlaying) + global.app_event.on('playerWaiting', handleWating) + global.app_event.on('playerEmptied', handleEmpied) + global.app_event.on('playerError', handleError) + global.app_event.on('musicToggled', handleSetPlayInfo) +} diff --git a/src/core/init/player/watchList.ts b/src/core/init/player/watchList.ts new file mode 100644 index 0000000..b4c3d4b --- /dev/null +++ b/src/core/init/player/watchList.ts @@ -0,0 +1,42 @@ +import { playNext } from '@/core/player/player' +import { updatePlayIndex } from '@/core/player/playInfo' +import { throttleBackgroundTimer } from '@/utils/tools' +import playerState from '@/store/player/state' + +const changedListIds = new Set<string | null>() + +export default () => { + const throttleListChange = throttleBackgroundTimer(() => { + const isSkip = !changedListIds.has(playerState.playInfo.playerListId) && !changedListIds.has(playerState.playMusicInfo.listId) + changedListIds.clear() + if (isSkip) return + + const { playIndex } = updatePlayIndex() + if (playIndex < 0) { // 歌曲被移除 + // if (global.lx.isPlayedStop) { + // stop() + // setTimeout(() => { + // setPlayMusicInfo(null, null) + // }) + // } else + if (!playerState.playMusicInfo.isTempPlay) { + // console.log('current music removed') + void playNext(true) + } + } + }) + + const handleListChange = (listIds: string[]) => { + for (const id of listIds) { + changedListIds.add(id) + } + throttleListChange() + } + + const handleDownloadListChange = () => { + handleListChange(['download']) + } + + global.app_event.on('myListMusicUpdate', handleListChange) + global.app_event.on('downloadListUpdate', handleDownloadListChange) +} diff --git a/src/core/init/sync.ts b/src/core/init/sync.ts new file mode 100644 index 0000000..f44b390 --- /dev/null +++ b/src/core/init/sync.ts @@ -0,0 +1,17 @@ +import { connect, SYNC_CODE } from '@/plugins/sync' +import { updateSetting } from '@/core/common' + + +export default async(setting: LX.AppSetting) => { + if (!setting['sync.enable']) return + + connect().catch(err => { + switch (err.message) { + case SYNC_CODE.unknownServiceAddress: + case SYNC_CODE.missingAuthCode: + case SYNC_CODE.authFailed: + updateSetting({ 'sync.enable': false }) + break + } + }) +} diff --git a/src/core/init/syncSetting.ts b/src/core/init/syncSetting.ts new file mode 100644 index 0000000..cd3b39f --- /dev/null +++ b/src/core/init/syncSetting.ts @@ -0,0 +1,26 @@ +import musicSdk from '@/utils/musicSdk' +import commonActions from '@/store/common/action' +import settingState from '@/store/setting/state' + +const handleUpdateSourceNmaes = () => { + const prefix = settingState.setting['common.sourceNameType'] == 'real' ? 'source_' : 'source_alias_' + const sourceNames: Record<LX.OnlineSource | 'all', string> = { + kw: 'kw', + tx: 'tx', + kg: 'kg', + mg: 'mg', + wy: 'wy', + all: global.i18n.t(prefix + 'all' as any), + } + for (const { id } of musicSdk.sources) { + sourceNames[id as LX.OnlineSource] = global.i18n.t(prefix + id as any) + } + commonActions.setSourceNames(sourceNames) +} + +export default () => { + const handleConfigUpdated = (keys: Array<keyof LX.AppSetting>) => { + if (keys.includes('common.sourceNameType')) handleUpdateSourceNmaes() + } + global.state_event.on('configUpdated', handleConfigUpdated) +} diff --git a/src/core/init/theme.ts b/src/core/init/theme.ts new file mode 100644 index 0000000..8378237 --- /dev/null +++ b/src/core/init/theme.ts @@ -0,0 +1,34 @@ + +import { getAppearance, getIsSupportedAutoTheme, onAppearanceChange } from '@/utils/tools' +import { setShouldUseDarkColors, applyTheme } from '@/core/theme' +import { getTheme } from '@/theme/themes/index' +import settingState from '@/store/setting/state' +// import { Dimensions, PixelRatio } from 'react-native' + + +export default async(setting: LX.AppSetting) => { + setShouldUseDarkColors(getAppearance() == 'dark') + applyTheme(await getTheme()) + + if (getIsSupportedAutoTheme()) { + onAppearanceChange(color => { + setShouldUseDarkColors((color ?? 'light') == 'dark') + if (settingState.setting['common.isAutoTheme']) void getTheme().then(applyTheme) + }) + } + + // onDimensionChange(({ window }) => { + // let screenW = window.width + // let screenH = window.height + // if (screenW > screenH) { + // const temp = screenW + // screenW = screenH + // screenH = temp + // } + // global.lx.windowInfo.screenW = screenW + // global.lx.windowInfo.screenH = screenH + // global.lx.windowInfo.screenPxW = PixelRatio.getPixelSizeForLayoutSize(screenW) + // global.lx.windowInfo.screenPxH = PixelRatio.getPixelSizeForLayoutSize(screenH) + // console.log('change', global.lx.windowInfo) + // }) +} diff --git a/src/core/leaderboard.ts b/src/core/leaderboard.ts new file mode 100644 index 0000000..d0fc739 --- /dev/null +++ b/src/core/leaderboard.ts @@ -0,0 +1,183 @@ +import leaderboardState, { type Board, type ListDetailInfo } from '@/store/leaderboard/state' +import leaderboardActions from '@/store/leaderboard/action' +import { deduplicationList, toNewMusicInfo } from '@/utils' +import musicSdk from '@/utils/musicSdk' + +/** + * 获取排行榜内单页歌曲 + * @param id 排行榜id {souce}__{bangId} + * @param isRefresh 是否跳过缓存 + * @returns + */ +export const setListDetailInfo = (id: string) => { + clearListDetail() + const [source, bangId] = id.split('__') as [LX.OnlineSource, string] + leaderboardActions.setListDetailInfo(source, bangId) +} +export const setListDetail = (result: ListDetailInfo, id: string, page: number) => { + return leaderboardActions.setListDetail(result, id, page) +} + +export const clearListDetail = () => { + leaderboardActions.clearListDetail() +} + +const setBoard = (board: Board, source: LX.OnlineSource) => { + leaderboardActions.setBoard(board, source) +} + +interface PageCache { data: ListDetailInfo, sourcePage: number } +type CacheValue = Map<string, PageCache | ListDetailInfo['list']> + +const cache = new Map<string, CacheValue>() +const LIST_LOAD_LIMIT = 30 + +export const getBoardsList = async(source: LX.OnlineSource) => { + // const source = (await getLeaderboardSetting()).source as LX.OnlineSource + if (leaderboardState.boards[source]) return leaderboardState.boards[source]!.list + const board = await (musicSdk[source]?.leaderboard.getBoards() as Promise<Board>) + setBoard(board, source) + return leaderboardState.boards[source]!.list +} + +/** + * 获取排行榜内单页分页歌曲(用于在本地控制每页大小) + * @param source 源 + * @param bangId 排行榜id + * @param page 页数 + * @returns + */ +const getListLimit = async(source: LX.OnlineSource, bangId: string, page: number): Promise<ListDetailInfo> => { + const listKey = `${source}__${bangId}` + const prevPageKey = `${source}__${bangId}__${page - 1}` + const tempListKey = `${source}__${bangId}__temp` + + let listCache = cache.get(listKey) as CacheValue + if (!listCache) cache.set(listKey, listCache = new Map()) + let sourcePage = 0 + { + const prevPageData = listCache.get(prevPageKey) as PageCache + if (prevPageData) sourcePage = prevPageData.sourcePage + } + + return musicSdk[source]?.leaderboard.getList(bangId, sourcePage + 1).then((result: ListDetailInfo) => { + if (listCache !== cache.get(listKey)) return + result.list = deduplicationList(result.list.map(m => toNewMusicInfo(m)) as LX.Music.MusicInfoOnline[]) + let p = page + const tempList = listCache.get(tempListKey) as ListDetailInfo['list'] + if (tempList) { + listCache.delete(tempListKey) + listCache.set(`${source}__${bangId}__${p}`, { + data: { + ...result, + list: [...tempList, ...result.list.splice(0, LIST_LOAD_LIMIT - tempList.length)], + page: p, + limit: LIST_LOAD_LIMIT, + }, + sourcePage, + }) + p++ + } + sourcePage++ + do { + if (result.list.length < LIST_LOAD_LIMIT && sourcePage < Math.ceil(result.total / result.limit)) { + listCache.set(tempListKey, result.list.splice(0, LIST_LOAD_LIMIT)) + break + } + listCache.set(`${source}__${bangId}__${p}`, { + data: { + ...result, + list: result.list.splice(0, LIST_LOAD_LIMIT), + page: p, + limit: LIST_LOAD_LIMIT, + }, + sourcePage, + }) + p++ + } while (result.list.length > 0) + return (listCache.get(`${source}__${bangId}__${page}`) as PageCache).data + }) ?? Promise.reject(new Error('source not found')) +} + +/** + * 获取排行榜内单页歌曲 + * @param id 排行榜id {souce}__{bangId} + * @param isRefresh 是否跳过缓存 + * @returns + */ +export const getListDetail = async(id: string, page: number, isRefresh = false): Promise<ListDetailInfo> => { + // console.log(tabId) + const [source, bangId] = id.split('__') as [LX.OnlineSource, string] + const listKey = `${source}__${bangId}` + const pageKey = `${source}__${bangId}__${page}` + + let listCache = cache.get(listKey) + if (!listCache || isRefresh) { + cache.set(listKey, listCache = new Map()) + } + + let pageCache = listCache.get(pageKey) as PageCache + if (pageCache) return pageCache.data + + return getListLimit(source, bangId, page) +} + +/** + * 获取排行榜内全部歌曲 + * @param id 排行榜id {souce}__{id} + * @param isRefresh 是否跳过缓存 + * @returns + */ +export const getListDetailAll = async(id: string, isRefresh = false): Promise<LX.Music.MusicInfoOnline[]> => { + const [source, bangId] = id.split('__') as [LX.OnlineSource, string] + // console.log(tabId) + const listKey = `${source}__${bangId}` + let listCache = cache.get(listKey) as CacheValue + if (!listCache || isRefresh) { + cache.set(listKey, listCache = new Map()) + } + + const loadData = async(page: number): Promise<ListDetailInfo> => { + const pageKey = `${source}__${bangId}__${page}` + let pageCache = listCache.get(pageKey) as PageCache + if (pageCache) return pageCache.data + return getListLimit(source, bangId, page) + } + return loadData(1).then(result => { + if (result.total <= result.limit) return result.list + + let maxPage = Math.ceil(result.total / result.limit) + const loadDetail = async(loadPage = 2): Promise<LX.Music.MusicInfoOnline[]> => { + return loadPage == maxPage + ? loadData(loadPage).then(result => result.list) + // eslint-disable-next-line @typescript-eslint/promise-function-async + : loadData(loadPage).then(result1 => loadDetail(++loadPage).then(result2 => [...result1.list, ...result2])) + } + return loadDetail().then(result2 => [...result.list, ...result2]) + }).then(list => deduplicationList(list)) +} + +/** + * 获取并设置排行榜内单页歌曲 + * @param id 排行榜id {souce}__{id} + * @param isRefresh 是否跳过缓存 + * @returns + */ +// export const getAndSetListDetail = async(id: string, page: number, isRefresh = false) => { +// // let [source, bangId] = tabId.split('__') +// // if (!bangId) return +// let key = `${id}__${page}` + +// if (!isRefresh && leaderboardState.listDetailInfo.key == key && leaderboardState.listDetailInfo.list.length) return + +// leaderboardState.listDetailInfo.key = key + +// return getListDetail(id, page, isRefresh).then((result: ListDetailInfo) => { +// if (key != leaderboardState.listDetailInfo.key) return +// setListDetail(result, id, page) +// }).catch((error: any) => { +// clearListDetail() +// console.log(error) +// throw error +// }) +// } diff --git a/src/core/list.ts b/src/core/list.ts new file mode 100644 index 0000000..26fa7ce --- /dev/null +++ b/src/core/list.ts @@ -0,0 +1,181 @@ +import { LIST_IDS } from '@/config/constant' +import listAction from '@/store/list/action' +import listState from '@/store/list/state' +import settingState from '@/store/setting/state' +import { fixNewMusicInfoQuality } from '@/utils' +import { saveListPrevSelectId } from '@/utils/data' + +/** + * 覆盖全部列表数据 + * @param data + */ +export const overwriteListFull = async(data: LX.List.ListActionDataOverwrite) => { + await global.list_event.list_data_overwrite(data) +} + + +/** + * 添加用户列表 + */ +export const createUserList = async(position: number, listInfos: LX.List.UserListInfo[]) => { + await global.list_event.list_create(position, listInfos) +} + +/** + * 移除用户列表及列表内歌曲 + */ +export const removeUserList = async(ids: string[]) => { + await global.list_event.list_remove(ids) +} + +/** + * 更新用户列表 + */ +export const updateUserList = async(listInfos: LX.List.UserListInfo[]) => { + await global.list_event.list_update(listInfos) +} + +/** + * 批量移动用户列表位置 + */ +export const updateUserListPosition = async(position: number, ids: string[]) => { + await global.list_event.list_update_position(position, ids) +} + + +/** + * 批量添加歌曲到列表 + */ +export const addListMusics = async(id: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType) => { + await global.list_event.list_music_add(id, musicInfos, addMusicLocationType) +} + +/** + * 跨列表批量移动歌曲 + */ +export const moveListMusics = async(fromId: string, toId: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType) => { + await global.list_event.list_music_move(fromId, toId, musicInfos, addMusicLocationType) +} + +/** + * 批量删除列表内歌曲 + */ +export const removeListMusics = async(listId: string, ids: string[]) => { + await global.list_event.list_music_remove(listId, ids) +} + +/** + * 批量更新列表内歌曲 + */ +export const updateListMusics = async(infos: Array<{ id: string, musicInfo: LX.Music.MusicInfo }>) => { + await global.list_event.list_music_update(infos) +} + +/** + * 批量移动列表内歌曲的位置 + */ +export const updateListMusicPosition = async(listId: string, position: number, ids: string[]) => { + await global.list_event.list_music_update_position(listId, position, ids) +} + +/** + * 覆盖列表内的歌曲 + */ +export const overwriteListMusics = async(listId: string, musicInfos: LX.Music.MusicInfo[]) => { + await global.list_event.list_music_overwrite(listId, musicInfos) +} + +/** + * 覆盖列表内的歌曲 + */ +export const clearListMusics = async(ids: string[]) => { + await global.list_event.list_music_clear(ids) +} + +/** + * 覆盖单个列表 + * @param listInfo + * @param musics + */ +export const overwriteList = async(listInfoFull: LX.List.MyDefaultListInfoFull | LX.List.MyLoveListInfoFull | LX.List.UserListInfoFull) => { + let userListInfo + switch (listInfoFull.id) { + case LIST_IDS.DEFAULT: + case LIST_IDS.LOVE: + break + + default: + userListInfo = listInfoFull as LX.List.UserListInfo + await updateUserList([ + { + name: userListInfo.name, + id: userListInfo.id, + source: userListInfo.source, + sourceListId: userListInfo.sourceListId, + locationUpdateTime: userListInfo.locationUpdateTime, + }, + ]) + break + } + await overwriteListMusics(listInfoFull.id, listInfoFull.list.map(m => fixNewMusicInfoQuality(m))) +} +/** + * 覆盖单个列表 + * @param listInfo + * @param musics + */ +export const createList = async({ name, id = `userlist_${Date.now()}`, list = [], source, sourceListId, position = -1 }: { + name?: string + id?: string + list?: LX.Music.MusicInfo[] + source?: LX.OnlineSource + sourceListId?: string + position?: number +}) => { + await createUserList(position < 0 ? listState.userList.length : position, [ + { + id, + name: name ?? 'list', + source, + sourceListId, + locationUpdateTime: position < 0 ? null : Date.now(), + }, + ]) + if (list) await addListMusics(id, list, settingState.setting['list.addMusicLocationType']) +} + +/** + * 设置当前激活的歌曲列表 + * @param id + */ +export const setActiveList = (id: string) => { + if (listState.activeListId == id) return + listAction.setActiveList(id) + saveListPrevSelectId(id) +} + +/** + * 设置歌曲列表 + */ +export const setUserList = (lists: LX.List.UserListInfo[]) => { + listAction.setUserLists(lists) +} + +/** + * 设置临时列表内歌曲 + * @param id + * @param list + */ +export const setTempList = async(id: string, list: LX.Music.MusicInfoOnline[]) => { + await overwriteListMusics(LIST_IDS.TEMP, list) + listAction.setTempListMeta({ id }) +} + + +export const setFetchingListStatus = (id: string, status: boolean) => { + listAction.setFetchingListStatus(id, status) +} + + +export { getUserLists, getListMusics } from '@/utils/listManage' + diff --git a/src/core/lyric.ts b/src/core/lyric.ts new file mode 100644 index 0000000..2bf23bb --- /dev/null +++ b/src/core/lyric.ts @@ -0,0 +1,97 @@ +import { + play as lrcPlay, + setLyric as lrcSetLyric, + pause as lrcPause, + toggleTranslation as lrcToggleTranslation, + toggleRoma as lrcToggleRoma, + init as lrcInit, +} from '@/plugins/lyric' +import { + playDesktopLyric, + setDesktopLyric, + pauseDesktopLyric, + toggleDesktopLyricTranslation, + toggleDesktopLyricRoma, +} from '@/core/desktopLyric' +import { getPosition } from '@/plugins/player' +import playerState from '@/store/player/state' +import settingState from '@/store/setting/state' + +/** + * init lyric + */ +export const init = async() => { + return lrcInit() +} + +/** + * set lyric + * @param lyric lyric str + * @param translation lyric translation + */ +const handleSetLyric = (lyric: string, translation = '', romalrc = '') => { + void setDesktopLyric(lyric, translation, romalrc) + lrcSetLyric(lyric, translation, romalrc) +} + +/** + * play lyric + * @param time play time + */ +export const handlePlay = (time: number) => { + lrcPlay(time) + void playDesktopLyric(time) +} + +/** + * pause lyric + */ +export const pause = () => { + lrcPause() + void pauseDesktopLyric() +} + +/** + * stop lyric + */ +export const stop = () => { + handleSetLyric('') +} + +/** + * toggle show translation + * @param isShowTranslation is show translation + */ +export const toggleTranslation = (isShowTranslation: boolean) => { + lrcToggleTranslation(isShowTranslation) + void toggleDesktopLyricTranslation(isShowTranslation) +} + +/** + * toggle show roma lyric + * @param isShowLyricRoma is show roma lyric + */ +export const toggleRoma = (isShowLyricRoma: boolean) => { + lrcToggleRoma(isShowLyricRoma) + void toggleDesktopLyricRoma(isShowLyricRoma) +} + +export const play = () => { + void getPosition().then((position) => { + handlePlay(position * 1000) + }) +} + + +export const setLyric = () => { + if (!playerState.musicInfo.id) return + if (playerState.musicInfo.lrc) { + let tlrc = '' + let rlrc = '' + if (settingState.setting['player.isShowLyricTranslation'] && playerState.musicInfo.tlrc) tlrc = playerState.musicInfo.tlrc + if (settingState.setting['player.isShowLyricRoma'] && playerState.musicInfo.rlrc) rlrc = playerState.musicInfo.rlrc + handleSetLyric(playerState.musicInfo.lrc, tlrc, rlrc) + } + + if (playerState.isPlay) play() +} diff --git a/src/core/music/download.ts b/src/core/music/download.ts new file mode 100644 index 0000000..067f78d --- /dev/null +++ b/src/core/music/download.ts @@ -0,0 +1,72 @@ +// import { store } from '@/store' +// import { getDownloadFilePath } from '@renderer/utils/music' + +import { + getMusicUrl as getOnlineMusicUrl, + getPicUrl as getOnlinePicUrl, + getLyricInfo as getOnlineLyricInfo, +} from './online' +import { buildLyricInfo, getCachedLyricInfo } from './utils' + +export const getMusicUrl = async({ musicInfo, isRefresh, onToggleSource = () => {} }: { + musicInfo: LX.Download.ListItem + isRefresh: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + // if (!isRefresh) { + // const path = await getDownloadFilePath(musicInfo, appSetting['download.savePath']) + // if (path) return path + // } + + return await getOnlineMusicUrl({ musicInfo: musicInfo.metadata.musicInfo, isRefresh, onToggleSource }) +} + +export const getPicUrl = async({ musicInfo, isRefresh, listId, onToggleSource = () => {} }: { + musicInfo: LX.Download.ListItem + isRefresh: boolean + listId?: string | null + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + if (!isRefresh) { + // const path = await getDownloadFilePath(musicInfo, appSetting['download.savePath']) + // if (path) { + // const pic = await global.lx.worker.main.getMusicFilePic(path) + // if (pic) return pic + // } + + const onlineMusicInfo = musicInfo.metadata.musicInfo + if (onlineMusicInfo.meta.picUrl) return onlineMusicInfo.meta.picUrl + } + + return await getOnlinePicUrl({ musicInfo: musicInfo.metadata.musicInfo, isRefresh, onToggleSource }).then((url) => { + // TODO: when listId required save url (update downloadInfo) + + return url + }) +} + +export const getLyricInfo = async({ musicInfo, isRefresh, onToggleSource = () => {} }: { + musicInfo: LX.Download.ListItem + isRefresh: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<LX.Player.LyricInfo> => { + if (!isRefresh) { + const lyricInfo = await getCachedLyricInfo(musicInfo.metadata.musicInfo) + if (lyricInfo) return await buildLyricInfo(lyricInfo) + } + + return getOnlineLyricInfo({ + musicInfo: musicInfo.metadata.musicInfo, + isRefresh, + onToggleSource, + }).catch(async() => { + // 尝试读取文件内歌词 + // const path = await getDownloadFilePath(musicInfo, appSetting['download.savePath']) + // if (path) { + // const rawlrcInfo = await window.lx.worker.main.getMusicFileLyric(path) + // if (rawlrcInfo) return buildLyricInfo(rawlrcInfo) + // } + + throw new Error('failed') + }) +} diff --git a/src/core/music/index.ts b/src/core/music/index.ts new file mode 100644 index 0000000..45b79b5 --- /dev/null +++ b/src/core/music/index.ts @@ -0,0 +1,78 @@ +// if (targetSong.key) { // 如果是已下载的歌曲 +// const filePath = path.join(appSetting['download.savePath'], targetSong.metadata.fileName) +// // console.log(filePath) + +import { + getMusicUrl as getOnlineMusicUrl, + getPicUrl as getOnlinePicUrl, + getLyricInfo as getOnlineLyricInfo, +} from './online' +import { + getMusicUrl as getDownloadMusicUrl, + getPicUrl as getDownloadPicUrl, + getLyricInfo as getDownloadLyricInfo, +} from './download' +import { + getMusicUrl as getLocalMusicUrl, + getPicUrl as getLocalPicUrl, + getLyricInfo as getLocalLyricInfo, +} from './local' + + +export const getMusicUrl = async({ + musicInfo, + quality, + isRefresh = false, + onToggleSource, +}: { + musicInfo: LX.Music.MusicInfo | LX.Download.ListItem + isRefresh?: boolean + quality?: LX.Quality + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + if ('progress' in musicInfo) { + return await getDownloadMusicUrl({ musicInfo, isRefresh, onToggleSource }) + } else if (musicInfo.source == 'local') { + return await getLocalMusicUrl({ musicInfo, isRefresh, onToggleSource }) + } else { + return await getOnlineMusicUrl({ musicInfo, isRefresh, quality, onToggleSource }) + } +} + +export const getPicPath = async({ + musicInfo, + isRefresh = false, + listId, + onToggleSource, +}: { + musicInfo: LX.Music.MusicInfo | LX.Download.ListItem + listId?: string | null + isRefresh?: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + if ('progress' in musicInfo) { + return await getDownloadPicUrl({ musicInfo, isRefresh, listId, onToggleSource }) + } else if (musicInfo.source == 'local') { + return await getLocalPicUrl({ musicInfo, isRefresh, listId, onToggleSource }) + } else { + return await getOnlinePicUrl({ musicInfo, isRefresh, listId, onToggleSource }) + } +} + +export const getLyricInfo = async({ + musicInfo, + isRefresh = false, + onToggleSource, +}: { + musicInfo: LX.Music.MusicInfo | LX.Download.ListItem + isRefresh?: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<LX.Player.LyricInfo> => { + if ('progress' in musicInfo) { + return await getDownloadLyricInfo({ musicInfo, isRefresh, onToggleSource }) + } else if (musicInfo.source == 'local') { + return await getLocalLyricInfo({ musicInfo, isRefresh, onToggleSource }) + } else { + return await getOnlineLyricInfo({ musicInfo, isRefresh, onToggleSource }) + } +} diff --git a/src/core/music/local.ts b/src/core/music/local.ts new file mode 100644 index 0000000..a628ce1 --- /dev/null +++ b/src/core/music/local.ts @@ -0,0 +1,90 @@ + +import { saveLyric, saveMusicUrl } from '@/utils/data' +import { updateListMusics } from '@/core/list' +import { + buildLyricInfo, + getCachedLyricInfo, + getOnlineOtherSourceLyricInfo, + getOnlineOtherSourceMusicUrl, + getOnlineOtherSourcePicUrl, + getOtherSource, +} from './utils' + + +export const getMusicUrl = async({ musicInfo, isRefresh, onToggleSource = () => {} }: { + musicInfo: LX.Music.MusicInfoLocal + isRefresh: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + // if (!isRefresh) { + // const path = await getLocalFilePath(musicInfo) + // if (path) return encodePath(path) + // } + onToggleSource() + const otherSource = await getOtherSource(musicInfo) + if (!otherSource.length) throw new Error('source not found') + return await getOnlineOtherSourceMusicUrl({ musicInfos: [...otherSource], onToggleSource, isRefresh }).then(({ url, quality: targetQuality, musicInfo: targetMusicInfo, isFromCache }) => { + // saveLyric(musicInfo, data.lyricInfo) + if (!isFromCache) void saveMusicUrl(targetMusicInfo, targetQuality, url) + + // TODO: save url ? + return url + }) +} + +export const getPicUrl = async({ musicInfo, listId, isRefresh, onToggleSource = () => {} }: { + musicInfo: LX.Music.MusicInfoLocal + listId?: string | null + isRefresh: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + if (!isRefresh) { + // const pic = await window.lx.worker.main.getMusicFilePic(musicInfo.meta.filePath) + // if (pic) return pic + + if (musicInfo.meta.picUrl) return musicInfo.meta.picUrl + } + + onToggleSource() + const otherSource = await getOtherSource(musicInfo) + if (!otherSource.length) throw new Error('source not found') + return await getOnlineOtherSourcePicUrl({ musicInfos: [...otherSource], onToggleSource, isRefresh }).then(({ url, musicInfo: targetMusicInfo, isFromCache }) => { + if (listId) { + // musicInfo.meta.picUrl = url + void updateListMusics([{ id: listId, musicInfo }]) + } + + return url + }) +} + +export const getLyricInfo = async({ musicInfo, isRefresh, onToggleSource = () => {} }: { + musicInfo: LX.Music.MusicInfoLocal + isRefresh: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<LX.Player.LyricInfo> => { + if (!isRefresh) { + const lyricInfo = await getCachedLyricInfo(musicInfo) + if (lyricInfo) { + // 存在已编辑、原始歌词 + if (lyricInfo.rawlrcInfo.lyric) return await buildLyricInfo(lyricInfo) + } + + // 尝试读取文件内歌词 + // const rawlrcInfo = await window.lx.worker.main.getMusicFileLyric(musicInfo.meta.filePath) + // if (rawlrcInfo) return buildLyricInfo(lyricInfo ? { ...lyricInfo, rawlrcInfo } : rawlrcInfo) + } + + onToggleSource() + const otherSource = await getOtherSource(musicInfo) + if (!otherSource.length) throw new Error('source not found') + // eslint-disable-next-line @typescript-eslint/promise-function-async + return await getOnlineOtherSourceLyricInfo({ musicInfos: [...otherSource], onToggleSource, isRefresh }).then(({ lyricInfo, musicInfo: targetMusicInfo, isFromCache }) => { + void saveLyric(musicInfo, lyricInfo) + + if (isFromCache) return buildLyricInfo(lyricInfo) + void saveLyric(targetMusicInfo, lyricInfo) + + return buildLyricInfo(lyricInfo) + }) +} diff --git a/src/core/music/online.ts b/src/core/music/online.ts new file mode 100644 index 0000000..5b82d64 --- /dev/null +++ b/src/core/music/online.ts @@ -0,0 +1,104 @@ +import { + saveLyric, + saveMusicUrl, + getMusicUrl as getStoreMusicUrl, +} from '@/utils/data' +import { updateListMusics } from '@/core/list' +import settingState from '@/store/setting/state' + +import { + buildLyricInfo, + getPlayQuality, + handleGetOnlineLyricInfo, + handleGetOnlineMusicUrl, + handleGetOnlinePicUrl, + getCachedLyricInfo, +} from './utils' + +/* export const setMusicUrl = ({ musicInfo, type, url }: { + musicInfo: LX.Music.MusicInfo + type: LX.Quality + url: string +}) => { + saveMusicUrl(musicInfo, type, url) +} + +export const setPic = (datas: { + listId: string + musicInfo: LX.Music.MusicInfo + url: string +}) => { + datas.musicInfo.img = datas.url + updateMusicInfo({ + listId: datas.listId, + id: datas.musicInfo.songmid, + data: { img: datas.url }, + musicInfo: datas.musicInfo, + }) +} + */ + + +export const getMusicUrl = async({ musicInfo, quality, isRefresh, allowToggleSource = true, onToggleSource = () => {} }: { + musicInfo: LX.Music.MusicInfoOnline + quality?: LX.Quality + isRefresh: boolean + allowToggleSource?: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + // if (!musicInfo._types[type]) { + // // 兼容旧版酷我源搜索列表过滤128k音质的bug + // if (!(musicInfo.source == 'kw' && type == '128k')) throw new Error('该歌曲没有可播放的音频') + + // // return Promise.reject(new Error('该歌曲没有可播放的音频')) + // } + const targetQuality = quality ?? getPlayQuality(settingState.setting['player.highQuality'], musicInfo) + const cachedUrl = await getStoreMusicUrl(musicInfo, targetQuality) + if (cachedUrl && !isRefresh) return cachedUrl + + return await handleGetOnlineMusicUrl({ musicInfo, quality, onToggleSource, isRefresh, allowToggleSource }).then(({ url, quality: targetQuality, musicInfo: targetMusicInfo, isFromCache }) => { + if (targetMusicInfo.id != musicInfo.id && !isFromCache) void saveMusicUrl(targetMusicInfo, targetQuality, url) + void saveMusicUrl(musicInfo, targetQuality, url) + return url + }) +} + +export const getPicUrl = async({ musicInfo, listId, isRefresh, allowToggleSource = true, onToggleSource = () => {} }: { + musicInfo: LX.Music.MusicInfoOnline + listId?: string | null + isRefresh: boolean + allowToggleSource?: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<string> => { + if (musicInfo.meta.picUrl && !isRefresh) return musicInfo.meta.picUrl + return await handleGetOnlinePicUrl({ musicInfo, onToggleSource, isRefresh, allowToggleSource }).then(({ url, musicInfo: targetMusicInfo, isFromCache }) => { + // picRequest = null + if (listId) { + // musicInfo.meta.picUrl = url + void updateListMusics([{ id: listId, musicInfo }]) + } + // savePic({ musicInfo, url, listId }) + return url + }) +} +export const getLyricInfo = async({ musicInfo, isRefresh, allowToggleSource = true, onToggleSource = () => {} }: { + musicInfo: LX.Music.MusicInfoOnline + isRefresh: boolean + allowToggleSource?: boolean + onToggleSource?: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<LX.Player.LyricInfo> => { + if (!isRefresh) { + const lyricInfo = await getCachedLyricInfo(musicInfo) + if (lyricInfo) return await buildLyricInfo(lyricInfo) + } + + // lrcRequest = music[musicInfo.source].getLyric(musicInfo) + return await handleGetOnlineLyricInfo({ musicInfo, onToggleSource, isRefresh, allowToggleSource }).then(async({ lyricInfo, musicInfo: targetMusicInfo, isFromCache }) => { + // lrcRequest = null + if (isFromCache) return await buildLyricInfo(lyricInfo) + if (targetMusicInfo.id == musicInfo.id) void saveLyric(musicInfo, lyricInfo) + else void saveLyric(targetMusicInfo, lyricInfo) + + return await buildLyricInfo(lyricInfo) + }) +} diff --git a/src/core/music/utils.ts b/src/core/music/utils.ts new file mode 100644 index 0000000..fe65ed2 --- /dev/null +++ b/src/core/music/utils.ts @@ -0,0 +1,417 @@ +import musicSdk, { findMusic } from '@/utils/musicSdk' +import { + getOtherSource as getOtherSourceFromStore, + saveOtherSource as saveOtherSourceFromStore, + getMusicUrl as getStoreMusicUrl, + getPlayerLyric as getStoreLyric, +} from '@/utils/data' +import { langS2T, toNewMusicInfo, toOldMusicInfo } from '@/utils' +import { assertApiSupport } from '@/utils/tools' +import settingState from '@/store/setting/state' + + +const getOtherSourcePromises = new Map() +export const existTimeExp = /\[\d{1,2}:.*\d{1,4}\]/ + +export const getOtherSource = async(musicInfo: LX.Music.MusicInfo | LX.Download.ListItem, isRefresh = false): Promise<LX.Music.MusicInfoOnline[]> => { + if (!isRefresh) { + const cachedInfo = await getOtherSourceFromStore(musicInfo.id) + if (cachedInfo.length) return cachedInfo + } + let key: string + let searchMusicInfo: { + name: string + singer: string + source: string + albumName: string + interval: string + } + if ('progress' in musicInfo) { + key = `local_${musicInfo.id}` + searchMusicInfo = { + name: musicInfo.metadata.musicInfo.name, + singer: musicInfo.metadata.musicInfo.singer, + source: musicInfo.metadata.musicInfo.source, + albumName: musicInfo.metadata.musicInfo.meta.albumName, + interval: musicInfo.metadata.musicInfo.interval ?? '', + } + } else { + key = `${musicInfo.source}_${musicInfo.id}` + searchMusicInfo = { + name: musicInfo.name, + singer: musicInfo.singer, + source: musicInfo.source, + albumName: musicInfo.meta.albumName, + interval: musicInfo.interval ?? '', + } + } + if (getOtherSourcePromises.has(key)) return getOtherSourcePromises.get(key) + + const promise = findMusic(searchMusicInfo).then((otherSource) => { + const sources: LX.Music.MusicInfoOnline[] = otherSource.map(toNewMusicInfo) as LX.Music.MusicInfoOnline[] + if (sources.length) void saveOtherSourceFromStore(musicInfo.id, sources) + return sources + }).finally(() => { + if (getOtherSourcePromises.has(key)) getOtherSourcePromises.delete(key) + }) + getOtherSourcePromises.set(key, promise) + return promise +} + + +export const buildLyricInfo = async(lyricInfo: MakeOptional<LX.Player.LyricInfo, 'rawlrcInfo'>): Promise<LX.Player.LyricInfo> => { + if (!settingState.setting['player.isS2t']) { + // @ts-expect-error + if (lyricInfo.rawlrcInfo) return lyricInfo + return { ...lyricInfo, rawlrcInfo: { ...lyricInfo } } + } + + if (settingState.setting['player.isS2t']) { + const tasks = [ + lyricInfo.lyric ? langS2T(lyricInfo.lyric) : Promise.resolve(''), + lyricInfo.tlyric ? langS2T(lyricInfo.tlyric) : Promise.resolve(''), + lyricInfo.rlyric ? langS2T(lyricInfo.rlyric) : Promise.resolve(''), + lyricInfo.lxlyric ? langS2T(lyricInfo.lxlyric) : Promise.resolve(''), + ] + if (lyricInfo.rawlrcInfo) { + tasks.push(lyricInfo.lyric ? langS2T(lyricInfo.lyric) : Promise.resolve('')) + tasks.push(lyricInfo.tlyric ? langS2T(lyricInfo.tlyric) : Promise.resolve('')) + tasks.push(lyricInfo.rlyric ? langS2T(lyricInfo.rlyric) : Promise.resolve('')) + tasks.push(lyricInfo.lxlyric ? langS2T(lyricInfo.lxlyric) : Promise.resolve('')) + } + return await Promise.all(tasks).then(([lyric, tlyric, rlyric, lxlyric, lyric_raw, tlyric_raw, rlyric_raw, lxlyric_raw]) => { + const rawlrcInfo = lyric_raw ? { + lyric: lyric_raw, + tlyric: tlyric_raw, + rlyric: rlyric_raw, + lxlyric: lxlyric_raw, + } : { + lyric, + tlyric, + rlyric, + lxlyric, + } + return { + lyric, + tlyric, + rlyric, + lxlyric, + rawlrcInfo, + } + }) + } + + // @ts-expect-error + return lyricInfo.rawlrcInfo ? lyricInfo : { ...lyricInfo, rawlrcInfo: { ...lyricInfo } } +} + +export const getCachedLyricInfo = async(musicInfo: LX.Music.MusicInfo): Promise<LX.Player.LyricInfo | null> => { + let lrcInfo = await getStoreLyric(musicInfo) + // lrcInfo = {} + if (existTimeExp.test(lrcInfo.lyric) && lrcInfo.tlyric != null) { + // if (musicInfo.lrc.startsWith('\ufeff[id:$00000000]')) { + // let str = musicInfo.lrc.replace('\ufeff[id:$00000000]\n', '') + // commit('setLrc', { musicInfo, lyric: str, tlyric: musicInfo.tlrc, lxlyric: musicInfo.tlrc }) + // } else if (musicInfo.lrc.startsWith('[id:$00000000]')) { + // let str = musicInfo.lrc.replace('[id:$00000000]\n', '') + // commit('setLrc', { musicInfo, lyric: str, tlyric: musicInfo.tlrc, lxlyric: musicInfo.tlrc }) + // } + + // if (lrcInfo.lxlyric == null) { + // switch (musicInfo.source) { + // case 'kg': + // case 'kw': + // case 'mg': + // break + // default: + // return lrcInfo + // } + // } else + if (lrcInfo.rlyric == null) { + if (!['wy', 'kg'].includes(musicInfo.source)) return lrcInfo + } else return lrcInfo + } + return null +} + +export const getPlayQuality = (highQuality: boolean, musicInfo: LX.Music.MusicInfoOnline): LX.Quality => { + let type: LX.Quality = '128k' + let list = global.lx.qualityList[musicInfo.source] + if (highQuality && musicInfo.meta._qualitys['320k'] && list && list.includes('320k')) type = '320k' + return type +} + +export const getOnlineOtherSourceMusicUrl = async({ musicInfos, quality, onToggleSource, isRefresh, retryedSource = [] }: { + musicInfos: LX.Music.MusicInfoOnline[] + quality?: LX.Quality + onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void + isRefresh: boolean + retryedSource?: LX.OnlineSource[] +}): Promise<{ + url: string + musicInfo: LX.Music.MusicInfoOnline + quality: LX.Quality + isFromCache: boolean +}> => { + let musicInfo: LX.Music.MusicInfoOnline | null = null + let itemQuality: LX.Quality | null = null + // eslint-disable-next-line no-cond-assign + while (musicInfo = (musicInfos.shift() as LX.Music.MusicInfoOnline)) { + if (retryedSource.includes(musicInfo.source)) continue + retryedSource.push(musicInfo.source) + if (!assertApiSupport(musicInfo.source)) continue + itemQuality = quality ?? getPlayQuality(settingState.setting['player.highQuality'], musicInfo) + if (!musicInfo.meta._qualitys[itemQuality]) continue + + console.log('try toggle to: ', musicInfo.source, musicInfo.name, musicInfo.singer, musicInfo.interval) + onToggleSource(musicInfo) + break + } + if (!musicInfo || !itemQuality) throw new Error(global.i18n.t('toggle_source_failed')) + + const cachedUrl = await getStoreMusicUrl(musicInfo, itemQuality) + if (cachedUrl && !isRefresh) return { url: cachedUrl, musicInfo, quality: itemQuality, isFromCache: true } + + let reqPromise + try { + reqPromise = musicSdk[musicInfo.source].getMusicUrl(toOldMusicInfo(musicInfo), itemQuality).promise + } catch (err: any) { + reqPromise = Promise.reject(err) + } + retryedSource.includes(musicInfo.source) + // eslint-disable-next-line @typescript-eslint/promise-function-async + return reqPromise.then(({ url, type }: { url: string, type: LX.Quality }) => { + return { musicInfo, url, quality: type, isFromCache: false } + // eslint-disable-next-line @typescript-eslint/promise-function-async + }).catch((err: any) => { + console.log(err) + return getOnlineOtherSourceMusicUrl({ musicInfos, quality, onToggleSource, isRefresh, retryedSource }) + }) +} + +/** + * 获取在线音乐URL + */ +export const handleGetOnlineMusicUrl = async({ musicInfo, quality, onToggleSource, isRefresh, allowToggleSource }: { + musicInfo: LX.Music.MusicInfoOnline + quality?: LX.Quality + isRefresh: boolean + allowToggleSource: boolean + onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void +}): Promise<{ + url: string + musicInfo: LX.Music.MusicInfoOnline + quality: LX.Quality + isFromCache: boolean +}> => { + // console.log(musicInfo.source) + const targetQuality = quality ?? getPlayQuality(settingState.setting['player.highQuality'], musicInfo) + + let reqPromise + try { + reqPromise = musicSdk[musicInfo.source].getMusicUrl(toOldMusicInfo(musicInfo), targetQuality).promise + } catch (err: any) { + reqPromise = Promise.reject(err) + } + return reqPromise.then(({ url, type }: { url: string, type: LX.Quality }) => { + return { musicInfo, url, quality: type, isFromCache: false } + }).catch(async(err: any) => { + console.log(err) + if (!allowToggleSource) throw err + onToggleSource() + // eslint-disable-next-line @typescript-eslint/promise-function-async + return await getOtherSource(musicInfo).then(otherSource => { + // console.log('find otherSource', otherSource.length) + if (otherSource.length) { + return getOnlineOtherSourceMusicUrl({ + musicInfos: [...otherSource], + onToggleSource, + quality, + isRefresh, + retryedSource: [musicInfo.source], + }) + } + throw err + }) + }) +} + + +export const getOnlineOtherSourcePicUrl = async({ musicInfos, onToggleSource, isRefresh, retryedSource = [] }: { + musicInfos: LX.Music.MusicInfoOnline[] + onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void + isRefresh: boolean + retryedSource?: LX.OnlineSource[] +}): Promise<{ + url: string + musicInfo: LX.Music.MusicInfoOnline + isFromCache: boolean +}> => { + let musicInfo: LX.Music.MusicInfoOnline | null = null + // eslint-disable-next-line no-cond-assign + while (musicInfo = (musicInfos.shift() as LX.Music.MusicInfoOnline)) { + if (retryedSource.includes(musicInfo.source)) continue + retryedSource.push(musicInfo.source) + // if (!assertApiSupport(musicInfo.source)) continue + console.log('try toggle to: ', musicInfo.source, musicInfo.name, musicInfo.singer, musicInfo.interval) + onToggleSource(musicInfo) + break + } + if (!musicInfo) throw new Error(global.i18n.t('toggle_source_failed')) + + if (musicInfo.meta.picUrl && !isRefresh) return { musicInfo, url: musicInfo.meta.picUrl, isFromCache: true } + + let reqPromise + try { + reqPromise = musicSdk[musicInfo.source].getPic(toOldMusicInfo(musicInfo)).promise + } catch (err: any) { + reqPromise = Promise.reject(err) + } + retryedSource.includes(musicInfo.source) + return reqPromise.then((url: string) => { + return { musicInfo, url, isFromCache: false } + // eslint-disable-next-line @typescript-eslint/promise-function-async + }).catch((err: any) => { + console.log(err) + return getOnlineOtherSourcePicUrl({ musicInfos, onToggleSource, isRefresh, retryedSource }) + }) +} + +/** + * 获取在线歌曲封面 + */ +export const handleGetOnlinePicUrl = async({ musicInfo, isRefresh, onToggleSource, allowToggleSource }: { + musicInfo: LX.Music.MusicInfoOnline + onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void + isRefresh: boolean + allowToggleSource: boolean +}): Promise<{ + url: string + musicInfo: LX.Music.MusicInfoOnline + isFromCache: boolean +}> => { + // console.log(musicInfo.source) + let reqPromise + try { + reqPromise = musicSdk[musicInfo.source].getPic(toOldMusicInfo(musicInfo)).promise + } catch (err) { + reqPromise = Promise.reject(err) + } + return reqPromise.then((url: string) => { + return { musicInfo, url, isFromCache: false } + }).catch(async(err: any) => { + console.log(err) + if (!allowToggleSource) throw err + onToggleSource() + // eslint-disable-next-line @typescript-eslint/promise-function-async + return await getOtherSource(musicInfo).then(otherSource => { + // console.log('find otherSource', otherSource.length) + if (otherSource.length) { + return getOnlineOtherSourcePicUrl({ + musicInfos: [...otherSource], + onToggleSource, + isRefresh, + retryedSource: [musicInfo.source], + }) + } + throw err + }) + }) +} + + +export const getOnlineOtherSourceLyricInfo = async({ musicInfos, onToggleSource, isRefresh, retryedSource = [] }: { + musicInfos: LX.Music.MusicInfoOnline[] + onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void + isRefresh: boolean + retryedSource?: LX.OnlineSource[] +}): Promise<{ + lyricInfo: LX.Music.LyricInfo | LX.Player.LyricInfo + musicInfo: LX.Music.MusicInfoOnline + isFromCache: boolean +}> => { + let musicInfo: LX.Music.MusicInfoOnline | null = null + // eslint-disable-next-line no-cond-assign + while (musicInfo = (musicInfos.shift() as LX.Music.MusicInfoOnline)) { + if (retryedSource.includes(musicInfo.source)) continue + retryedSource.push(musicInfo.source) + // if (!assertApiSupport(musicInfo.source)) continue + console.log('try toggle to: ', musicInfo.source, musicInfo.name, musicInfo.singer, musicInfo.interval) + onToggleSource(musicInfo) + break + } + if (!musicInfo) throw new Error(global.i18n.t('toggle_source_failed')) + + if (!isRefresh) { + const lyricInfo = await getCachedLyricInfo(musicInfo) + if (lyricInfo) return { musicInfo, lyricInfo, isFromCache: true } + } + + let reqPromise + try { + // TODO: remove any type + reqPromise = (musicSdk[musicInfo.source].getLyric(toOldMusicInfo(musicInfo)) as any).promise + } catch (err: any) { + reqPromise = Promise.reject(err) + } + retryedSource.includes(musicInfo.source) + return reqPromise.then((lyricInfo: LX.Music.LyricInfo) => { + return existTimeExp.test(lyricInfo.lyric) ? { + lyricInfo, + musicInfo, + isFromCache: false, + } : Promise.reject(new Error('failed')) + // eslint-disable-next-line @typescript-eslint/promise-function-async + }).catch((err: any) => { + console.log(err) + return getOnlineOtherSourceLyricInfo({ musicInfos, onToggleSource, isRefresh, retryedSource }) + }) +} + +/** + * 获取在线歌词信息 + */ +export const handleGetOnlineLyricInfo = async({ musicInfo, onToggleSource, isRefresh, allowToggleSource }: { + musicInfo: LX.Music.MusicInfoOnline + onToggleSource: (musicInfo?: LX.Music.MusicInfoOnline) => void + isRefresh: boolean + allowToggleSource: boolean +}): Promise<{ + musicInfo: LX.Music.MusicInfoOnline + lyricInfo: LX.Music.LyricInfo | LX.Player.LyricInfo + isFromCache: boolean +}> => { + // console.log(musicInfo.source) + let reqPromise + try { + // TODO: remove any type + reqPromise = (musicSdk[musicInfo.source].getLyric(toOldMusicInfo(musicInfo)) as any).promise + } catch (err) { + reqPromise = Promise.reject(err) + } + return reqPromise.then((lyricInfo: LX.Music.LyricInfo) => { + return existTimeExp.test(lyricInfo.lyric) ? { + musicInfo, + lyricInfo, + isFromCache: false, + } : Promise.reject(new Error('failed')) + }).catch(async(err: any) => { + console.log(err) + if (!allowToggleSource) throw err + + onToggleSource() + // eslint-disable-next-line @typescript-eslint/promise-function-async + return await getOtherSource(musicInfo).then(otherSource => { + // console.log('find otherSource', otherSource.length) + if (otherSource.length) { + return getOnlineOtherSourceLyricInfo({ + musicInfos: [...otherSource], + onToggleSource, + isRefresh, + retryedSource: [musicInfo.source], + }) + } + throw err + }) + }) +} diff --git a/src/core/player/playInfo.ts b/src/core/player/playInfo.ts new file mode 100644 index 0000000..66a3f70 --- /dev/null +++ b/src/core/player/playInfo.ts @@ -0,0 +1,134 @@ +import playerActions from '@/store/player/action' +import playerState from '@/store/player/state' + +import { getListMusicSync } from '@/utils/listManage' +import { setProgress } from '@/core/player/progress' +import { LIST_IDS } from '@/config/constant' + + +export const setMusicInfo = (musicInfo: Partial<LX.Player.MusicInfo>) => { + playerActions.setMusicInfo(musicInfo) +} + +export const setPlayListId = (listId: string | null) => { + playerActions.setPlayListId(listId) +} + + +/** + * 更新播放位置 + * @returns 播放位置 + */ +export const updatePlayIndex = () => { + const indexInfo = getPlayIndex(playerState.playMusicInfo.listId, playerState.playMusicInfo.musicInfo, playerState.playMusicInfo.isTempPlay) + // console.log('indexInfo', indexInfo) + playerActions.updatePlayIndex(indexInfo.playIndex, indexInfo.playerPlayIndex) + return indexInfo +} + + +export const getPlayIndex = (listId: string | null, musicInfo: LX.Download.ListItem | LX.Music.MusicInfo | null, isTempPlay: boolean): { + playIndex: number + playerPlayIndex: number +} => { + const { playInfo } = playerState + const playerList = getListMusicSync(playInfo.playerListId) + + // if (listIndex < 0) throw new Error('music info not found') + // playInfo.playIndex = listIndex + + let playIndex = -1 + let playerPlayIndex = -1 + if (playerList.length) { + playerPlayIndex = Math.min(playInfo.playerPlayIndex, playerList.length - 1) + } + + const list = getListMusicSync(listId) + if (list.length && musicInfo) { + const currentId = musicInfo.id + playIndex = list.findIndex(m => m.id == currentId) + if (!isTempPlay) { + if (playIndex < 0) { + playerPlayIndex = playerPlayIndex < 1 ? (list.length - 1) : (playerPlayIndex - 1) + } else { + playerPlayIndex = playIndex + } + } + } + + return { + playIndex, + playerPlayIndex, + } +} + +export const resetPlayerMusicInfo = () => { + setMusicInfo({ + id: null, + pic: null, + lrc: null, + tlrc: null, + rlrc: null, + lxlrc: null, + rawlrc: null, + name: '', + singer: '', + album: '', + }) +} + +const setPlayerMusicInfo = (musicInfo: LX.Music.MusicInfo | LX.Download.ListItem | null) => { + if (musicInfo) { + setMusicInfo('progress' in musicInfo ? { + id: musicInfo.id, + pic: musicInfo.metadata.musicInfo.meta.picUrl, + name: musicInfo.metadata.musicInfo.name, + singer: musicInfo.metadata.musicInfo.singer, + album: musicInfo.metadata.musicInfo.meta.albumName, + lrc: null, + tlrc: null, + rlrc: null, + lxlrc: null, + rawlrc: null, + } : { + id: musicInfo.id, + pic: musicInfo.meta.picUrl, + name: musicInfo.name, + singer: musicInfo.singer, + album: musicInfo.meta.albumName, + lrc: null, + tlrc: null, + rlrc: null, + lxlrc: null, + rawlrc: null, + }) + } else resetPlayerMusicInfo() +} + +/** + * 设置当前播放歌曲的信息 + * @param listId 歌曲所属的列表id + * @param musicInfo 歌曲信息 + * @param isTempPlay 是否临时播放 + */ +export const setPlayMusicInfo = (listId: string | null, musicInfo: LX.Download.ListItem | LX.Music.MusicInfo | null, isTempPlay: boolean = false) => { + playerActions.setPlayMusicInfo(listId, musicInfo, isTempPlay) + setPlayerMusicInfo(musicInfo) + + setProgress(0, 0) + + if (musicInfo == null) { + playerActions.updatePlayIndex(-1, -1) + setPlayListId(null) + } else { + const { playIndex, playerPlayIndex } = getPlayIndex(listId, musicInfo, isTempPlay) + + playerActions.updatePlayIndex(playIndex, playerPlayIndex) + global.app_event.musicToggled() + } +} + +export const getList = (listId: string | null): LX.Music.MusicInfo[] | LX.Download.ListItem[] => { + // return listId == LIST_ID_DOWNLOAD ? downloadList : getListMusicSync(listId) + return listId == LIST_IDS.DOWNLOAD ? [] : getListMusicSync(listId) +} diff --git a/src/core/player/playStatus.ts b/src/core/player/playStatus.ts new file mode 100644 index 0000000..e8a6865 --- /dev/null +++ b/src/core/player/playStatus.ts @@ -0,0 +1,14 @@ +import playerActions from '@/store/player/action' +import playerState from '@/store/player/state' + + +export const setIsPlay = (val: boolean) => { + if (playerState.isPlay == val) return + playerActions.setIsPlay(val) +} + + +export const setStatusText = (val: string) => { + if (playerState.statusText == val) return + playerActions.setStatusText(val) +} diff --git a/src/core/player/playedList.ts b/src/core/player/playedList.ts new file mode 100644 index 0000000..3c04161 --- /dev/null +++ b/src/core/player/playedList.ts @@ -0,0 +1,23 @@ +import playerActions from '@/store/player/action' + + +/** + * 将歌曲添加到已播放列表 + * @param playMusicInfo playMusicInfo对象 + */ +export const addPlayedList = (playMusicInfo: LX.Player.PlayMusicInfo) => { + playerActions.addPlayedList(playMusicInfo) +} +/** + * 将歌曲从已播放列表移除 + * @param index 歌曲位置 + */ +export const removePlayedList = (index: number) => { + playerActions.removePlayedList(index) +} +/** + * 清空已播放列表 + */ +export const clearPlayedList = () => { + playerActions.clearPlayedList() +} diff --git a/src/core/player/player.ts b/src/core/player/player.ts new file mode 100644 index 0000000..af66d15 --- /dev/null +++ b/src/core/player/player.ts @@ -0,0 +1,460 @@ +import { isInitialized, initial as playerInitial, isEmpty, setPause, setPlay, setResource, setStop } from '@/plugins/player' +import { + setStatusText, +} from '@/core/player/playStatus' +import playerState from '@/store/player/state' +import settingState from '@/store/setting/state' +import { + getList, + setPlayMusicInfo, + setMusicInfo, + setPlayListId, +} from '@/core/player/playInfo' +import { + clearPlayedList, + addPlayedList, + removePlayedList, +} from '@/core/player/playedList' +import { + clearTempPlayeList, + removeTempPlayList, +} from '@/core/player/tempPlayList' +import { getMusicUrl, getPicPath, getLyricInfo } from '@/core/music' +import { requestMsg } from '@/utils/message' +import { getRandom } from '@/utils/common' +import { filterList } from './utils' +import BackgroundTimer from 'react-native-background-timer' +import { checkNotificationPermission } from '@/utils/tools' + +// import { checkMusicFileAvailable } from '@renderer/utils/music' + +const createDelayNextTimeout = (delay: number) => { + let timeout: number | null + const clearDelayNextTimeout = () => { + // console.log(this.timeout) + if (timeout) { + BackgroundTimer.clearTimeout(timeout) + timeout = null + } + } + + const addDelayNextTimeout = () => { + clearDelayNextTimeout() + timeout = BackgroundTimer.setTimeout(() => { + timeout = null + if (global.lx.isPlayedStop) return + console.log('delay next timeout timeout', delay) + void playNext(true) + }, delay) + } + + return { + clearDelayNextTimeout, + addDelayNextTimeout, + } +} +const { addDelayNextTimeout, clearDelayNextTimeout } = createDelayNextTimeout(5000) +const { addDelayNextTimeout: addLoadTimeout, clearDelayNextTimeout: clearLoadTimeout } = createDelayNextTimeout(100000) + +/** + * 检查音乐信息是否已更改 + */ +const diffCurrentMusicInfo = (curMusicInfo: LX.Music.MusicInfo | LX.Download.ListItem): boolean => { + return curMusicInfo !== playerState.playMusicInfo.musicInfo || playerState.isPlay +} + +const getMusicPlayUrl = async(musicInfo: LX.Music.MusicInfo | LX.Download.ListItem, isRefresh = false, isRetryed = false): Promise<string | null> => { + // this.musicInfo.url = await getMusicPlayUrl(targetSong, type) + setStatusText(global.i18n.t('player__geting_url')) + + // const type = getPlayType(settingState.setting['player.highQuality'], musicInfo) + + return getMusicUrl({ + musicInfo, + isRefresh, + onToggleSource(mInfo) { + if (diffCurrentMusicInfo(musicInfo)) return + setStatusText(global.i18n.t('toggle_source_try')) + }, + }).then(url => { + if (global.lx.isPlayedStop || diffCurrentMusicInfo(musicInfo)) return null + + return url + }).catch(err => { + // console.log('err', err.message) + if (global.lx.isPlayedStop || + diffCurrentMusicInfo(musicInfo) || + err.message == requestMsg.cancelRequest) return null + + if (!isRetryed) return getMusicPlayUrl(musicInfo, isRefresh, true) + + throw err + }) +} + +export const setMusicUrl = (musicInfo: LX.Music.MusicInfo | LX.Download.ListItem, isRefresh?: boolean) => { + addLoadTimeout() + global.lx.gettingUrlId = musicInfo.id + void getMusicPlayUrl(musicInfo, isRefresh).then((url) => { + if (!url) return + setResource(musicInfo, url, playerState.progress.nowPlayTime) + }).catch((err: any) => { + console.log(err) + setStatusText(err.message) + global.app_event.error() + addDelayNextTimeout() + }).finally(() => { + if (musicInfo === playerState.playMusicInfo.musicInfo) { + global.lx.gettingUrlId = '' + clearLoadTimeout() + } + }) +} + +// 恢复上次播放的状态 +const handleRestorePlay = async(restorePlayInfo: LX.Player.SavedPlayInfo) => { + const musicInfo = playerState.playMusicInfo.musicInfo + if (!musicInfo) return + + setTimeout(() => { + global.app_event.setProgress(settingState.setting['player.isSavePlayTime'] ? restorePlayInfo.time : 0, restorePlayInfo.maxTime) + }) + + const playMusicInfo = playerState.playMusicInfo + + void getPicPath({ musicInfo, listId: playMusicInfo.listId }).then((url: string) => { + if (musicInfo.id != playMusicInfo.musicInfo?.id) return + setMusicInfo({ pic: url }) + global.app_event.picUpdated() + }) + + void getLyricInfo({ musicInfo }).then((lyricInfo) => { + if (musicInfo.id != playMusicInfo.musicInfo?.id) return + setMusicInfo({ + lrc: lyricInfo.lyric, + tlrc: lyricInfo.tlyric, + lxlrc: lyricInfo.lxlyric, + rlrc: lyricInfo.rlyric, + rawlrc: lyricInfo.rawlrcInfo.lyric, + }) + global.app_event.lyricUpdated() + }).catch((err) => { + console.log(err) + if (musicInfo.id != playMusicInfo.musicInfo?.id) return + setStatusText(global.i18n.t('lyric__load_error')) + }) + + if (settingState.setting['player.togglePlayMethod'] == 'random' && !playMusicInfo.isTempPlay) addPlayedList(playMusicInfo as LX.Player.PlayMusicInfo) +} + + +// 处理音乐播放 +const handlePlay = async() => { + if (!isInitialized()) { + await checkNotificationPermission() + await playerInitial({ + cacheSize: settingState.setting['player.cacheSize'] ? parseInt(settingState.setting['player.cacheSize']) : 0, + isHandleAudioFocus: settingState.setting['player.isHandleAudioFocus'], + }) + } + + global.lx.isPlayedStop &&= false + + if (global.lx.restorePlayInfo) { + void handleRestorePlay(global.lx.restorePlayInfo) + global.lx.restorePlayInfo = null + return + } + + const playMusicInfo = playerState.playMusicInfo + const musicInfo = playMusicInfo.musicInfo + + if (!musicInfo || global.lx.gettingUrlId == musicInfo.id) return + global.lx.gettingUrlId &&= '' + + await setStop() + global.app_event.pause() + + clearDelayNextTimeout() + clearLoadTimeout() + + + if (settingState.setting['player.togglePlayMethod'] == 'random' && !playMusicInfo.isTempPlay) addPlayedList(playMusicInfo as LX.Player.PlayMusicInfo) + + setMusicUrl(musicInfo) + + void getPicPath({ musicInfo, listId: playMusicInfo.listId }).then((url: string) => { + if (musicInfo.id != playMusicInfo.musicInfo?.id) return + setMusicInfo({ pic: url }) + global.app_event.picUpdated() + }) + + void getLyricInfo({ musicInfo }).then((lyricInfo) => { + if (musicInfo.id != playMusicInfo.musicInfo?.id) return + setMusicInfo({ + lrc: lyricInfo.lyric, + tlrc: lyricInfo.tlyric, + lxlrc: lyricInfo.lxlyric, + rlrc: lyricInfo.rlyric, + rawlrc: lyricInfo.rawlrcInfo.lyric, + }) + global.app_event.lyricUpdated() + }).catch((err) => { + console.log(err) + if (musicInfo.id != playMusicInfo.musicInfo?.id) return + setStatusText(global.i18n.t('lyric__load_error')) + }) +} + +/** + * 播放列表内歌曲 + * @param listId 列表id + * @param index 播放的歌曲位置 + */ +export const playList = async(listId: string, index: number) => { + setPlayListId(listId) + setPlayMusicInfo(listId, getList(listId)[index]) + clearPlayedList() + clearTempPlayeList() + await handlePlay() +} + +const handleToggleStop = async() => { + await stop() + setTimeout(() => { + setPlayMusicInfo(null, null) + }) +} + +/** + * 下一曲 + * @param isAutoToggle 是否自动切换 + * @returns + */ +export const playNext = async(isAutoToggle = false): Promise<void> => { + if (playerState.tempPlayList.length) { // 如果稍后播放列表存在歌曲则直接播放改列表的歌曲 + const playMusicInfo = playerState.tempPlayList[0] + removeTempPlayList(0) + setPlayMusicInfo(playMusicInfo.listId, playMusicInfo.musicInfo, playMusicInfo.isTempPlay) + await handlePlay() + return + } + + const playMusicInfo = playerState.playMusicInfo + const playInfo = playerState.playInfo + if (playMusicInfo.musicInfo == null) return handleToggleStop() + + // console.log(playInfo.playerListId) + const currentListId = playInfo.playerListId + if (!currentListId) return handleToggleStop() + const currentList = getList(currentListId) + + const playedList = playerState.playedList + + if (playedList.length) { // 移除已播放列表内不存在原列表的歌曲 + let currentId: string + if (playMusicInfo.isTempPlay) { + const musicInfo = currentList[playInfo.playerPlayIndex] + if (musicInfo) currentId = musicInfo.id + } else { + currentId = playMusicInfo.musicInfo.id + } + // 从已播放列表移除播放列表已删除的歌曲 + let index + for (index = playedList.findIndex(m => m.musicInfo.id === currentId) + 1; index < playedList.length; index++) { + const playMusicInfo = playedList[index] + const currentId = playMusicInfo.musicInfo.id + if (playMusicInfo.listId == currentListId && !currentList.some(m => m.id === currentId)) { + removePlayedList(index) + continue + } + break + } + + if (index < playedList.length) { + const playMusicInfo = playedList[index] + setPlayMusicInfo(playMusicInfo.listId, playMusicInfo.musicInfo, playMusicInfo.isTempPlay) + await handlePlay() + return + } + } + // const isCheckFile = findNum > 2 // 针对下载列表,如果超过两次都碰到无效歌曲,则过滤整个列表内的无效歌曲 + let { filteredList, playerIndex } = filterList({ // 过滤已播放歌曲 + listId: currentListId, + list: currentList, + playedList, + playerMusicInfo: currentList[playInfo.playerPlayIndex], + }) + + if (!filteredList.length) return handleToggleStop() + // let currentIndex: number = filteredList.indexOf(currentList[playInfo.playerPlayIndex]) + if (playerIndex == -1 && filteredList.length) playerIndex = 0 + let nextIndex = playerIndex + + let togglePlayMethod = settingState.setting['player.togglePlayMethod'] + if (!isAutoToggle) { + switch (togglePlayMethod) { + case 'list': + case 'singleLoop': + case 'none': + togglePlayMethod = 'listLoop' + } + } + switch (togglePlayMethod) { + case 'listLoop': + nextIndex = playerIndex === filteredList.length - 1 ? 0 : playerIndex + 1 + break + case 'random': + nextIndex = getRandom(0, filteredList.length) + break + case 'list': + nextIndex = playerIndex === filteredList.length - 1 ? -1 : playerIndex + 1 + break + case 'singleLoop': + break + default: + nextIndex = -1 + return + } + if (nextIndex < 0) return + + const nextPlayMusicInfo = { + musicInfo: filteredList[nextIndex], + listId: currentListId, + isTempPlay: false, + } + + setPlayMusicInfo(nextPlayMusicInfo.listId, nextPlayMusicInfo.musicInfo) + await handlePlay() +} + +/** + * 上一曲 + */ +export const playPrev = async(isAutoToggle = false): Promise<void> => { + const playMusicInfo = playerState.playMusicInfo + if (playMusicInfo.musicInfo == null) return handleToggleStop() + const playInfo = playerState.playInfo + + const currentListId = playInfo.playerListId + if (!currentListId) return handleToggleStop() + const currentList = getList(currentListId) + + const playedList = playerState.playedList + if (playedList.length) { + let currentId: string + if (playMusicInfo.isTempPlay) { + const musicInfo = currentList[playInfo.playerPlayIndex] + if (musicInfo) currentId = musicInfo.id + } else { + currentId = playMusicInfo.musicInfo.id + } + // 从已播放列表移除播放列表已删除的歌曲 + let index + for (index = playedList.findIndex(m => m.musicInfo.id === currentId) - 1; index > -1; index--) { + const playMusicInfo = playedList[index] + const currentId = playMusicInfo.musicInfo.id + if (playMusicInfo.listId == currentListId && !currentList.some(m => m.id === currentId)) { + removePlayedList(index) + continue + } + break + } + + if (index > -1) { + const playMusicInfo = playedList[index] + setPlayMusicInfo(playMusicInfo.listId, playMusicInfo.musicInfo, playMusicInfo.isTempPlay) + await handlePlay() + return + } + } + + // const isCheckFile = findNum > 2 + let { filteredList, playerIndex } = filterList({ // 过滤已播放歌曲 + listId: currentListId, + list: currentList, + playedList, + playerMusicInfo: currentList[playInfo.playerPlayIndex], + }) + if (!filteredList.length) return handleToggleStop() + + // let currentIndex = filteredList.indexOf(currentList[playInfo.playerPlayIndex]) + if (playerIndex == -1 && filteredList.length) playerIndex = 0 + let nextIndex = playerIndex + if (!playMusicInfo.isTempPlay) { + let togglePlayMethod = settingState.setting['player.togglePlayMethod'] + if (!isAutoToggle) { + switch (togglePlayMethod) { + case 'list': + case 'singleLoop': + case 'none': + togglePlayMethod = 'listLoop' + } + } + switch (togglePlayMethod) { + case 'random': + nextIndex = getRandom(0, filteredList.length) + break + case 'listLoop': + case 'list': + nextIndex = playerIndex === 0 ? filteredList.length - 1 : playerIndex - 1 + break + case 'singleLoop': + break + default: + nextIndex = -1 + return + } + if (nextIndex < 0) return + } + + const nextPlayMusicInfo = { + musicInfo: filteredList[nextIndex], + listId: currentListId, + isTempPlay: false, + } + + setPlayMusicInfo(nextPlayMusicInfo.listId, nextPlayMusicInfo.musicInfo) + await handlePlay() +} + +/** + * 恢复播放 + */ +export const play = () => { + if (playerState.playMusicInfo.musicInfo == null) return + if (isEmpty()) { + if (playerState.playMusicInfo.musicInfo.id != global.lx.gettingUrlId) setMusicUrl(playerState.playMusicInfo.musicInfo) + return + } + void setPlay() +} + +/** + * 暂停播放 + */ +export const pause = async() => { + await setPause() +} + +/** + * 停止播放 + */ +export const stop = async() => { + await setStop() + setTimeout(() => { + global.app_event.stop() + }) +} + +/** + * 播放、暂停播放切换 + */ +export const togglePlay = () => { + global.lx.isPlayedStop &&= false + if (playerState.isPlay) { + void pause() + } else { + play() + } +} diff --git a/src/core/player/progress.ts b/src/core/player/progress.ts new file mode 100644 index 0000000..30b2485 --- /dev/null +++ b/src/core/player/progress.ts @@ -0,0 +1,14 @@ +import playerActions from '@/store/player/action' + +export const setNowPlayTime = (time: number) => { + playerActions.setNowPlayTime(time) +} + +export const setMaxplayTime = (time: number) => { + playerActions.setMaxplayTime(time) +} + +export const setProgress = (currentTime: number, totalTime: number) => { + playerActions.setProgress(currentTime, totalTime) +} + diff --git a/src/core/player/tempPlayList.ts b/src/core/player/tempPlayList.ts new file mode 100644 index 0000000..002b34c --- /dev/null +++ b/src/core/player/tempPlayList.ts @@ -0,0 +1,26 @@ +import playerActions from '@/store/player/action' +import playerState from '@/store/player/state' +import { playNext } from './player' + + +/** + * 添加歌曲到稍后播放列表 + * @param list 歌曲列表 + */ +export const addTempPlayList = (list: LX.Player.TempPlayListItem[]) => { + playerActions.addTempPlayList(list) + if (!playerState.playMusicInfo.musicInfo) void playNext() +} +/** + * 从稍后播放列表移除歌曲 + * @param index 歌曲位置 + */ +export const removeTempPlayList = (index: number) => { + playerActions.removeTempPlayList(index) +} +/** + * 清空稍后播放列表 + */ +export const clearTempPlayeList = () => { + playerActions.clearTempPlayeList() +} diff --git a/src/utils/timeoutExit.js b/src/core/player/timeoutExit.ts similarity index 57% rename from src/utils/timeoutExit.js rename to src/core/player/timeoutExit.ts index e66665e..1a11b0e 100644 --- a/src/utils/timeoutExit.js +++ b/src/core/player/timeoutExit.ts @@ -1,18 +1,18 @@ import { useEffect, useState } from 'react' import BackgroundTimer from 'react-native-background-timer' -import { getStore } from '@/store' -import { STATUS } from '@/store/modules/player' -import { exitApp } from '@/utils/common' +import { exitApp } from '@/core/common' +import playerState from '@/store/player/state' +import settingState from '@/store/setting/state' + +type Hook = (time: number, isPlayedStop: boolean) => void const timeoutTools = { - timeout: null, + timeout: null as number | null, time: -1, - timeHooks: [], + timeHooks: [] as Hook[], exit() { - const store = getStore() - const state = store.getState() - if (state.common.setting.player.timeoutExitPlayed && state.player.status == STATUS.playing) { - global.isPlayedExit = true + if (settingState.setting['player.timeoutExitPlayed'] && playerState.isPlay) { + global.lx.isPlayedStop = true this.callHooks() } else { exitApp() @@ -20,10 +20,7 @@ const timeoutTools = { }, callHooks() { for (const hook of this.timeHooks) { - hook({ - time: this.time, - isPlayedExit: global.isPlayedExit, - }) + hook(this.time, global.lx.isPlayedStop) } }, clearTimeout() { @@ -33,7 +30,7 @@ const timeoutTools = { this.time = -1 this.callHooks() }, - start(time) { + start(time: number) { this.clearTimeout() this.time = time this.timeout = BackgroundTimer.setInterval(() => { @@ -46,20 +43,17 @@ const timeoutTools = { } }, 1000) }, - addTimeHook(hook) { + addTimeHook(hook: Hook) { this.timeHooks.push(hook) - hook({ - time: this.time, - isPlayedExit: global.isPlayedExit, - }) + hook(this.time, global.lx.isPlayedStop) }, - removeTimeHook(hook) { + removeTimeHook(hook: Hook) { this.timeHooks.splice(this.timeHooks.indexOf(hook), 1) }, } -export const startTimeoutExit = time => { +export const startTimeoutExit = (time: number) => { timeoutTools.start(time) } export const stopTimeoutExit = () => { @@ -71,10 +65,10 @@ export const getTimeoutExitTime = () => { } export const useTimeoutExitTimeInfo = () => { - const [info, setInfo] = useState({ time: 0, isPlayedExit: false }) + const [info, setInfo] = useState({ time: 0, isPlayedStop: false }) useEffect(() => { - const hook = ({ time, isPlayedExit }) => { - setInfo({ time, isPlayedExit }) + const hook: Hook = (time, isPlayedStop) => { + setInfo({ time, isPlayedStop }) } timeoutTools.addTimeHook(hook) return () => { timeoutTools.removeTimeHook(hook) } @@ -83,7 +77,16 @@ export const useTimeoutExitTimeInfo = () => { return info } +export const onTimeUpdate = (handler: Hook) => { + timeoutTools.addTimeHook(handler) + + return () => { + timeoutTools.removeTimeHook(handler) + } +} + + export const cancelTimeoutExit = () => { - global.isPlayedExit = false + global.lx.isPlayedStop = false timeoutTools.callHooks() } diff --git a/src/core/player/utils.ts b/src/core/player/utils.ts new file mode 100644 index 0000000..e232da4 --- /dev/null +++ b/src/core/player/utils.ts @@ -0,0 +1,81 @@ +import { clearPlayedList } from './playedList' + +/** + * 过滤列表中已播放的歌曲 + */ +export const filterMusicList = ({ playedList, listId, list, playerMusicInfo }: { + /** + * 已播放列表 + */ + playedList: LX.Player.PlayMusicInfo[] | readonly LX.Player.PlayMusicInfo[] + /** + * 列表id + */ + listId: string + /** + * 播放列表 + */ + list: Array<LX.Music.MusicInfo | LX.Download.ListItem> + /** + * 下载目录 + */ + // savePath: string + /** + * 播放器内当前歌曲(`playInfo.playerPlayIndex`指向的歌曲) + */ + playerMusicInfo?: LX.Music.MusicInfo | LX.Download.ListItem +}) => { + let playerIndex = -1 + + let canPlayList: Array<LX.Music.MusicInfo | LX.Download.ListItem> = [] + const filteredPlayedList = playedList.filter(pmInfo => pmInfo.listId == listId && !pmInfo.isTempPlay).map(({ musicInfo }) => musicInfo) + + const filteredList: Array<LX.Music.MusicInfo | LX.Download.ListItem> = list.filter(s => { + // if (!assertApiSupport(s.source)) return false + if ('progress' in s && !s.isComplate) return false + + canPlayList.push(s) + + let index = filteredPlayedList.findIndex(m => m.id == s.id) + if (index > -1) { + filteredPlayedList.splice(index, 1) + return false + } + return true + }) + if (playerMusicInfo) { + playerIndex = (filteredList.length ? filteredList : canPlayList).findIndex(m => m.id == playerMusicInfo.id) + } + return { + filteredList, + canPlayList, + playerIndex, + } +} + +/** + * 过滤列表中已播放的歌曲 + */ +export const filterList = ({ playedList, listId, list, playerMusicInfo }: { + playedList: LX.Player.PlayMusicInfo[] | readonly LX.Player.PlayMusicInfo[] + listId: string + list: Array<LX.Music.MusicInfo | LX.Download.ListItem> + playerMusicInfo?: LX.Music.MusicInfo | LX.Download.ListItem +}) => { + // if (this.list.listName === null) return + // console.log(isCheckFile) + let { filteredList, canPlayList, playerIndex } = filterMusicList({ + listId, + list, + playedList, + // savePath: global.lx.setting['download.savePath'], + playerMusicInfo, + }) + + if (!filteredList.length && playedList.length) { + clearPlayedList() + return { filteredList: canPlayList, playerIndex } + } + return { filteredList, playerIndex } +} + diff --git a/src/core/search/music.ts b/src/core/search/music.ts new file mode 100644 index 0000000..25dbe40 --- /dev/null +++ b/src/core/search/music.ts @@ -0,0 +1,55 @@ +import searchMusicState, { type ListInfo, type Source } from '@/store/search/music/state' +import searchMusicActions, { type SearchResult } from '@/store/search/music/action' +import musicSdk from '@/utils/musicSdk' + +export const setSource: typeof searchMusicActions['setSource'] = (source) => { + searchMusicActions.setSource(source) +} +export const setSearchText: typeof searchMusicActions['setSearchText'] = (text) => { + searchMusicActions.setSearchText(text) +} +export const setListInfo: typeof searchMusicActions.setListInfo = (result, id, page) => { + return searchMusicActions.setListInfo(result, id, page) +} + +export const clearListInfo: typeof searchMusicActions.clearListInfo = (source) => { + searchMusicActions.clearListInfo(source) +} + + +export const search = async(text: string, page: number, sourceId: Source): Promise<LX.Music.MusicInfoOnline[]> => { + const listInfo = searchMusicState.listInfos[sourceId] as ListInfo + if (!text) return [] + const key = `${page}__${text}` + if (sourceId == 'all') { + listInfo.key = key + let task = [] + for (const source of searchMusicState.sources) { + if (source == 'all') continue + task.push(((musicSdk[source]?.musicSearch.search(text, page, searchMusicState.listInfos.all.limit) as Promise<SearchResult>) ?? Promise.reject(new Error('source not found: ' + source))).catch((error: any) => { + console.log(error) + return { + allPage: 1, + limit: 30, + list: [], + source, + total: 0, + } + })) + } + return Promise.all(task).then((results: SearchResult[]) => { + if (key != listInfo.key) return [] + setSearchText(text) + setSource(sourceId) + return setListInfo(results, page, text) + }) + } else { + if (listInfo?.key == key && listInfo?.list.length) return listInfo?.list + listInfo.key = key + return (musicSdk[sourceId]?.musicSearch.search(text, page, listInfo.limit).then((data: SearchResult) => { + if (key != listInfo.key) return [] + return setListInfo(data, page, text) + }) ?? Promise.reject(new Error('source not found: ' + sourceId))) + } +} + diff --git a/src/core/search/search.ts b/src/core/search/search.ts new file mode 100644 index 0000000..ecc9ebf --- /dev/null +++ b/src/core/search/search.ts @@ -0,0 +1,39 @@ +import searchState from '@/store/search/state' +import searchActions from '@/store/search/action' +import { getSearchHistory as getSearchHistoryFromStore, saveSearchHistory } from '@/utils/data' +import settingState from '@/store/setting/state' + + +export const setSearchType: typeof searchActions['setSearchType'] = (type) => { + searchActions.setSearchType(type) +} +export const setSearchText: typeof searchActions['setSearchText'] = (text) => { + searchActions.setSearchText(text) +} +export const setTipListInfo: typeof searchActions['setTipListInfo'] = (text, source) => { + searchActions.setTipListInfo(text, source) +} +export const setTipList: typeof searchActions['setTipList'] = (list) => { + searchActions.setTipList(list) +} + +export const getSearchHistory = async() => { + if (!searchState.historyList.length) searchActions.setHistoryWord(await getSearchHistoryFromStore()) + return searchState.historyList +} +export const addHistoryWord = async(word: string) => { + if (!settingState.setting['search.isShowHistorySearch'] || !word) return + if (!searchState.historyList.length) searchActions.setHistoryWord(await getSearchHistoryFromStore()) + const list = searchActions.addHistoryWord(word) + if (!list) return + void saveSearchHistory(list) +} +export const removeHistoryWord = (index: number) => { + const list = searchActions.removeHistoryWord(index) + void saveSearchHistory(list) +} +export const clearHistoryList = () => { + const list = searchActions.clearHistoryList() + void saveSearchHistory(list) +} + diff --git a/src/core/search/songlist.ts b/src/core/search/songlist.ts new file mode 100644 index 0000000..9322c99 --- /dev/null +++ b/src/core/search/songlist.ts @@ -0,0 +1,54 @@ +import searchSonglistState, { type SearchListInfo, type Source, type ListInfoItem } from '@/store/search/songlist/state' +import searchSonglistActions, { type SearchResult } from '@/store/search/songlist/action' +import musicSdk from '@/utils/musicSdk' + +export const setSource: typeof searchSonglistActions['setSource'] = (source) => { + searchSonglistActions.setSource(source) +} +export const setSearchText: typeof searchSonglistActions['setSearchText'] = (text) => { + searchSonglistActions.setSearchText(text) +} +const setListInfo: typeof searchSonglistActions.setListInfo = (result, page, text) => { + return searchSonglistActions.setListInfo(result, page, text) +} + +export const clearListInfo: typeof searchSonglistActions.clearListInfo = (source) => { + searchSonglistActions.clearListInfo(source) +} + + +export const search = async(text: string, page: number, sourceId: Source): Promise<ListInfoItem[]> => { + const listInfo = searchSonglistState.listInfos[sourceId] as SearchListInfo + // if (!text) return [] + const key = `${page}__${sourceId}__${text}` + if (listInfo.key == key && listInfo.list.length) return listInfo.list + if (sourceId == 'all') { + listInfo.key = key + let task = [] + for (const source of searchSonglistState.sources) { + if (source == 'all' || (page > 1 && page > (searchSonglistState.maxPages[source] as number))) continue + task.push(((musicSdk[source]?.songList.search(text, page, searchSonglistState.listInfos.all.limit) as Promise<SearchResult>) ?? Promise.reject(new Error('source not found: ' + source))).catch((error: any) => { + console.log(error) + return { + list: [], + total: 0, + limit: searchSonglistState.listInfos.all.limit, + source, + } + })) + } + return await Promise.all(task).then((results: SearchResult[]) => { + if (key != listInfo.key) return [] + setSearchText(text) + setSource(sourceId) + return setListInfo(results, page, text) + }) + } else { + if (listInfo?.key == key && listInfo?.list.length) return listInfo?.list + listInfo.key = key + return ((musicSdk[sourceId]?.songList.search(text, page, listInfo.limit) as Promise<SearchResult>).then((data: SearchResult) => { + if (key != listInfo.key) return [] + return setListInfo(data, page, text) + }) ?? Promise.reject(new Error('source not found: ' + sourceId))) + } +} diff --git a/src/core/songlist.ts b/src/core/songlist.ts new file mode 100644 index 0000000..057ef74 --- /dev/null +++ b/src/core/songlist.ts @@ -0,0 +1,231 @@ +import songlistState, { type TagInfo, type ListDetailInfo, type ListInfo, type SortInfo, type ListInfoItem } from '@/store/songlist/state' +import songlistActions from '@/store/songlist/action' +import { deduplicationList, toNewMusicInfo } from '@/utils' +import musicSdk from '@/utils/musicSdk' + + +interface DetailPageCache { data: ListDetailInfo, sourcePage: number } +type LimitDetailCache = Map<string, DetailPageCache | ListDetailInfo['list']> +type CacheValue = LimitDetailCache | ListInfo + +const cache = new Map<string, CacheValue>() +const LIST_LOAD_LIMIT = 30 + + +/** + * 设置要打开的歌单详情信息 + * @param source + * @returns + */ +export const setSelectListInfo = (info: ListInfoItem) => { + songlistActions.clearListDetail() + songlistActions.setSelectListInfo(info) +} + +/** + * 获取排序列表 + * @param source + * @returns + */ +export const getSortList = (source: LX.OnlineSource) => { + return songlistState.sortList[source] as SortInfo[] +} + +/** + * 获取标签列表 + * @param source + * @returns + */ +export const getTags = async<T extends LX.OnlineSource>(source: T) => { + if (songlistState.tags[source]) return songlistState.tags[source] as TagInfo<T> + const info = await (musicSdk[source]?.songList.getTags() as Promise<TagInfo<T>>) + songlistActions.setTags(info, source) + return info +} + +/** + * 设置列表加载加载前的基本信息(用于加载失败后的重新加载) + * @param source + * @param tagId + * @param sortId + */ +export const setListInfo: typeof songlistActions.setListInfo = (source, tagId, sortId) => { + clearList() + songlistActions.setListInfo(source, tagId, sortId) +} +/** + * 设置列表信息 + * @param result + * @param tagId + * @param sortId + * @param page + * @returns + */ +export const setList: typeof songlistActions.setList = (result, tagId, sortId, page) => { + return songlistActions.setList(result, tagId, sortId, page) +} + +export const clearList = () => { + songlistActions.clearList() +} + +/** + * 获取歌单列表 + * @param source 歌单源 + * @param tabId 类型id + * @param sortId 排序 + * @param page 页数 + * @param isRefresh 是否跳过缓存 + * @returns + */ +export const getList = async(source: LX.OnlineSource, tabId: string, sortId: string, page: number, isRefresh = false): Promise<ListInfo> => { + let pageKey = `slist__${source}__${sortId}__${tabId}__${page}` + + let listCache = cache.get(pageKey) as ListInfo + if (listCache) { + if (isRefresh) cache.delete(pageKey) + else return listCache + } + + return musicSdk[source]?.songList.getList(sortId, tabId, page).then((result: ListInfo) => { + cache.set(pageKey, result) + return result + // if (pageKey != listInfo.key) return + // setList(result, tabId, sortId, page) + }) +} + + +/** + * 获取歌单详情内单页分页歌曲(用于在本地控制每页大小) + * @param source 源 + * @param id 歌单id + * @param page 页数 + * @returns + */ +const getListDetailLimit = async(source: LX.OnlineSource, id: string, page: number): Promise<ListDetailInfo> => { + const listKey = `sdetail__${source}__${id}` + const prevPageKey = `sdetail__${source}__${id}__${page - 1}` + const tempListKey = `sdetail__${source}__${id}__temp` + + let listCache = cache.get(listKey) as LimitDetailCache + if (!listCache) cache.set(listKey, listCache = new Map()) + let sourcePage = 0 + { + const prevPageData = listCache.get(prevPageKey) as DetailPageCache + if (prevPageData) sourcePage = prevPageData.sourcePage + } + + return musicSdk[source]?.songList.getListDetail(id, sourcePage + 1).then((result: ListDetailInfo) => { + if (listCache !== cache.get(listKey)) return + result.list = deduplicationList(result.list.map(m => toNewMusicInfo(m)) as LX.Music.MusicInfoOnline[]) + let p = page + const tempList = listCache.get(tempListKey) as ListDetailInfo['list'] + if (tempList) { + listCache.delete(tempListKey) + listCache.set(`sdetail__${source}__${id}__${p}`, { + data: { + ...result, + list: [...tempList, ...result.list.splice(0, LIST_LOAD_LIMIT - tempList.length)], + page: p, + limit: LIST_LOAD_LIMIT, + }, + sourcePage, + }) + p++ + } + sourcePage++ + do { + if (result.list.length < LIST_LOAD_LIMIT && sourcePage < Math.ceil(result.total / result.limit)) { + listCache.set(tempListKey, result.list.splice(0, LIST_LOAD_LIMIT)) + break + } + listCache.set(`sdetail__${source}__${id}__${p}`, { + data: { + ...result, + list: result.list.splice(0, LIST_LOAD_LIMIT), + page: p, + limit: LIST_LOAD_LIMIT, + }, + sourcePage, + }) + p++ + } while (result.list.length > 0) + return (listCache.get(`sdetail__${source}__${id}__${page}`) as DetailPageCache).data + }) ?? Promise.reject(new Error('source not found')) +} + +/** + * 设置列表加载加载前的基本信息(用于加载失败后的重新加载) + * @param source + * @param tagId + * @param sortId + */ +export const setListDetailInfo: typeof songlistActions.setListDetailInfo = (source, id) => { + clearListDetail() + songlistActions.setListDetailInfo(source, id) +} +export const setListDetail: typeof songlistActions.setListDetail = (result, id, page) => { + return songlistActions.setListDetail(result, id, page) +} + +export const clearListDetail = () => { + songlistActions.clearListDetail() +} + +/** + * 获取歌单内单页歌曲 + * @param id 歌单id + * @param source 歌单源 + * @param isRefresh 是否跳过缓存 + * @returns + */ +export const getListDetail = async(id: string, source: LX.OnlineSource, page: number, isRefresh = false): Promise<ListDetailInfo> => { + const listKey = `sdetail__${source}__${id}` + const pageKey = `sdetail__${source}__${id}__${page}` + + let listCache = cache.get(listKey) as LimitDetailCache + if (!listCache || isRefresh) { + cache.set(listKey, listCache = new Map()) + } + + let pageCache = listCache.get(pageKey) as DetailPageCache + if (pageCache) return pageCache.data + + return getListDetailLimit(source, id, page) +} + +/** + * 获取歌单内全部歌曲 + * @param id 歌单id + * @param source 歌单源 + * @param isRefresh 是否跳过缓存 + * @returns + */ +export const getListDetailAll = async(source: LX.OnlineSource, id: string, isRefresh = false): Promise<LX.Music.MusicInfoOnline[]> => { + // console.log(tabId) + const listKey = `sdetail__${source}__${id}` + let listCache = cache.get(listKey) as LimitDetailCache + if (!listCache || isRefresh) { + cache.set(listKey, listCache = new Map()) + } + + const loadData = async(page: number): Promise<ListDetailInfo> => { + const pageKey = `sdetail__${source}__${id}__${page}` + let pageCache = listCache.get(pageKey) as DetailPageCache + if (pageCache) return pageCache.data + return getListDetailLimit(source, id, page) + } + return loadData(1).then(result => { + if (result.total <= result.limit) return result.list + + let maxPage = Math.ceil(result.total / result.limit) + const loadDetail = async(loadPage = 2): Promise<LX.Music.MusicInfoOnline[]> => { + return loadPage == maxPage + ? loadData(loadPage).then(result => result.list) + // eslint-disable-next-line @typescript-eslint/promise-function-async + : loadData(loadPage).then(result1 => loadDetail(++loadPage).then(result2 => [...result1.list, ...result2])) + } + return loadDetail().then(result2 => [...result.list, ...result2]) + }).then(list => deduplicationList(list)) +} diff --git a/src/core/sync.ts b/src/core/sync.ts new file mode 100644 index 0000000..78a342b --- /dev/null +++ b/src/core/sync.ts @@ -0,0 +1,10 @@ +import syncActions from '@/store/sync/action' + + +export const setSyncStatus = (status: LX.Sync.Status) => { + syncActions.setStatus(status) +} + +export const setSyncMessage = (message: LX.Sync.Status['message']) => { + syncActions.setMessage(message) +} diff --git a/src/core/syncSourceList.ts b/src/core/syncSourceList.ts new file mode 100644 index 0000000..e95ab3b --- /dev/null +++ b/src/core/syncSourceList.ts @@ -0,0 +1,32 @@ +// import { dateFormat } from '@/utils/common' +import { setListUpdateTime } from '@/utils/data' +import { overwriteListMusics, setFetchingListStatus } from './list' +import { getListDetailAll } from '@/core/songlist' +import { getListDetailAll as getBoardListAll } from '@/core/leaderboard' + +const fetchList = async(id: string, source: LX.OnlineSource, sourceListId: string) => { + setFetchingListStatus(id, true) + + let promise + if (/^board__/.test(sourceListId)) { + const id = sourceListId.replace(/^board__/, '') + promise = id ? getBoardListAll(id, true) : Promise.reject(new Error('id not defined: ' + sourceListId)) + } else { + promise = getListDetailAll(source, sourceListId, true) + } + return promise.finally(() => { + setFetchingListStatus(id, false) + }) +} + +export default async(targetListInfo: LX.List.UserListInfo) => { + // console.log(targetListInfo) + if (!targetListInfo.source || !targetListInfo.sourceListId) return + const list = await fetchList(targetListInfo.id, targetListInfo.source, targetListInfo.sourceListId) + // console.log(list) + void overwriteListMusics(targetListInfo.id, list) + const now = Date.now() + void setListUpdateTime(targetListInfo.id, now) + // TODO + // setUpdateTime(targetListInfo.id, dateFormat(now)) +} diff --git a/src/core/theme.ts b/src/core/theme.ts new file mode 100644 index 0000000..bb6de58 --- /dev/null +++ b/src/core/theme.ts @@ -0,0 +1,20 @@ +import themeActions from '@/store/theme/action' +import { getTheme } from '@/theme/themes' +import { updateSetting } from './common' +import themeState from '@/store/theme/state' + +export const setShouldUseDarkColors = (shouldUseDarkColors: boolean) => { + themeActions.setShouldUseDarkColors(shouldUseDarkColors) +} + +export const applyTheme = (theme: LX.Theme) => { + themeActions.setTheme(theme) +} + +export const setTheme = (id: string) => { + updateSetting({ 'theme.id': id }) + void getTheme().then(theme => { + if (theme.id == themeState.theme.id) return + applyTheme(theme) + }) +} diff --git a/src/core/version.ts b/src/core/version.ts new file mode 100644 index 0000000..a8b7cf5 --- /dev/null +++ b/src/core/version.ts @@ -0,0 +1,84 @@ +import { compareVer } from '@/utils' +import { downloadNewVersion, getVersionInfo } from '@/utils/version' +import versionActions from '@/store/version/action' +import versionState, { type InitState } from '@/store/version/state' +import { getIgnoreVersion, saveIgnoreVersion } from '@/utils/data' +import { showVersionModal } from '@/navigation' +import { Navigation } from 'react-native-navigation' + +export const showModal = () => { + if (versionState.showModal) return + versionActions.setVisibleModal(true) + showVersionModal() +} + +export const hideModal = (componentId: string) => { + if (!versionState.showModal) return + versionActions.setVisibleModal(false) + void Navigation.dismissOverlay(componentId) +} + +export const checkUpdate = async() => { + versionActions.setVersionInfo({ status: 'checking' }) + let versionInfo: InitState['versionInfo'] = { ...versionState.versionInfo } + try { + const { version, desc, history } = await getVersionInfo() + versionInfo.newVersion = { + version, + desc, + history, + } + } catch (err) { + versionInfo.newVersion = { + version: '0.0.0', + desc: '', + history: [], + } + } + // const versionInfo = { + // version: '1.9.0', + // desc: '- 更新xxx\n- 修复xxx123的萨达修复xxx123的萨达修复xxx123的萨达修复xxx123的萨达修复xxx123的萨达', + // history: [{ version: '1.8.0', desc: '- 更新xxx22\n- 修复xxx22' }, { version: '1.7.0', desc: '- 更新xxx22\n- 修复xxx22' }], + // } + if (versionInfo.version == '0.0.0') { + versionInfo.isUnknown = true + versionInfo.status = 'error' + } else { + versionInfo.status = 'idle' + } + versionInfo.isUnknown = false + if (compareVer(versionInfo.version, versionInfo.newVersion.version) != -1) { + versionInfo.isLatest = true + } + + versionActions.setVersionInfo(versionInfo) + + if (!versionInfo.isLatest) { + if (versionInfo.newVersion.version != await getIgnoreVersion()) { + showModal() + } + } + // console.log(compareVer(process.versions.app, versionInfo.version)) + // console.log(process.versions.app, versionInfo.version) +} + +export const downloadUpdate = () => { + versionActions.setVersionInfo({ status: 'downloading' }) + versionActions.setProgress({ total: 0, current: 0 }) + + downloadNewVersion(versionState.versionInfo.newVersion!.version, (total: number, current: number) => { + // console.log(total, current) + versionActions.setProgress({ total, current }) + }).then(() => { + versionActions.setVersionInfo({ status: 'downloaded' }) + }).catch(() => { + versionActions.setVersionInfo({ status: 'error' }) + // console.log(err) + }) +} + + +export const setIgnoreVersion = (version: InitState['ignoreVersion']) => { + versionActions.setIgnoreVersion(version) + saveIgnoreVersion(version) +} diff --git a/src/event/Event.ts b/src/event/Event.ts new file mode 100644 index 0000000..85abbdc --- /dev/null +++ b/src/event/Event.ts @@ -0,0 +1,57 @@ +// import mitt from 'mitt' +// import type { Emitter } from 'mitt' + +export default class Event { + listeners: Map<string, Array<(...args: any[]) => any>> + constructor() { + this.listeners = new Map() + } + + on(eventName: string, listener: (...args: any[]) => any) { + let targetListeners = this.listeners.get(eventName) + if (!targetListeners) this.listeners.set(eventName, targetListeners = []) + targetListeners.push(listener) + } + + off(eventName: string, listener: (...args: any[]) => any) { + let targetListeners = this.listeners.get(eventName) + if (!targetListeners) return + const index = targetListeners.indexOf(listener) + if (index < 0) return + targetListeners.splice(index, 1) + } + + emit(eventName: string, ...args: any[]) { + setImmediate(() => { + let targetListeners = this.listeners.get(eventName) + if (!targetListeners) return + for (const listener of targetListeners) { + listener(...args) + } + }) + } + + offAll(eventName: string) { + let targetListeners = this.listeners.get(eventName) + if (!targetListeners) return + this.listeners.delete(eventName) + } +} + +// export class App_EVENT { +// listeners: Map<string, Array<() => void>> +// constructor() { +// this.listeners = new Map() +// } + +// on(eventName: string, listener: () => void) { +// let targetListeners = this.listeners.get(eventName) +// if (targetListeners) this.listeners.set(eventName, targetListeners = []) +// targetListeners!.push(listener) +// } + +// off(eventName: string, listener: () => void) { + +// } +// } + diff --git a/src/event/appEvent.ts b/src/event/appEvent.ts new file mode 100644 index 0000000..2df6d80 --- /dev/null +++ b/src/event/appEvent.ts @@ -0,0 +1,214 @@ +import { setNavActiveId } from '@/core/common' +import Event from './Event' +import commonState from '@/store/common/state' +import { type Source as SonglistSource } from '@/store/songlist/state' +import { type SearchType } from '@/store/search/state' + + +// { +// // sync: { +// // send_action_list: 'send_action_list', +// // handle_action_list: 'handle_action_list', +// // send_sync_list: 'send_sync_list', +// // handle_sync_list: 'handle_sync_list', +// // }, +// } + +export class AppEvent extends Event { + // configUpdate() { + // this.emit('configUpdate') + // } + + focus() { + this.emit('focus') + } + + /** + * 我的列表更新 + */ + mylistUpdated(lists: Array<LX.List.MyDefaultListInfo | LX.List.MyLoveListInfo | LX.List.UserListInfo>) { + this.emit('mylistUpdated', lists) + } + + /** + * 我的列表切换 + */ + mylistToggled(id: string) { + this.emit('listToggled', id) + } + + /** + * 音乐信息切换 + */ + musicToggled() { + this.emit('musicToggled') + } + + /** + * 手动改变进度 + * @param progress 进度 + */ + setProgress(progress: number, maxPlayTime?: number) { + this.emit('setProgress', progress, maxPlayTime) + } + + /** + * 设置音量大小 + * @param volume 音量大小 + */ + setVolume(volume: number) { + this.emit('setVolume', volume) + } + + /** + * 设置是否静音 + * @param isMute 是否静音 + */ + setVolumeIsMute(isMute: boolean) { + this.emit('setVolumeIsMute', isMute) + } + + // 播放器事件 + play() { + this.emit('play') + } + + pause() { + this.emit('pause') + } + + stop() { + this.emit('stop') + } + + error() { + this.emit('error') + } + + // 播放器原始事件 + playerPlaying() { + this.emit('playerPlaying') + } + + playerPause() { + this.emit('playerPause') + } + + // playerStop() { + // this.emit('playerStop') + // } + + playerEnded() { + this.emit('playerEnded') + } + + playerError() { + this.emit('playerError') + } + + // playerLoadeddata() { + // this.emit('playerLoadeddata') + // } + + playerLoadstart() { + this.emit('playerLoadstart') + } + + // playerCanplay() { + // this.emit('playerCanplay') + // } + + playerEmptied() { + this.emit('playerEmptied') + } + + playerWaiting() { + this.emit('playerWaiting') + } + + + // 更新图片事件 + picUpdated() { + this.emit('picUpdated') + } + + // 更新歌词事件 + lyricUpdated() { + this.emit('lyricUpdated') + } + + // 更新歌词偏移 + lyricOffsetUpdate() { + this.emit('lyricOffsetUpdate') + } + + // 我的列表内歌曲改变事件 + myListMusicUpdate(ids: string[]) { + if (!ids.length) return + this.emit('myListMusicUpdate', ids) + } + + // 下载列表改变事件 + downloadListUpdate() { + this.emit('downloadListUpdate') + } + + // 列表里的音乐信息改变事件 + musicInfoUpdate(musicInfo: LX.Music.MusicInfo) { + this.emit('musicInfoUpdate', musicInfo) + } + + changeMenuVisible(visible: boolean) { + this.emit('changeMenuVisible', visible) + } + + /** + * 搜索类型改变事件 + * @param type + */ + searchTypeChanged(type: SearchType) { + this.emit('searchTypeChanged', type) + } + + jumpListPosition() { + if (commonState.navActiveId == 'nav_love') { + this.emit('jumpListPosition') + } else { + global.lx.jumpMyListPosition = true + setNavActiveId('nav_love') + setTimeout(() => { + this.emit('jumpListPosition') + }, 200) + } + } + + changeLoveListVisible(visible: boolean) { + this.emit('changeLoveListVisible', visible) + } + + showSonglistTagList(source: SonglistSource, activeId: string) { + this.emit('showSonglistTagList', source, activeId) + } + + hideSonglistTagList() { + this.emit('hideSonglistTagList') + } + + songlistTagInfoChange(name: string, id: string) { + this.emit('songlistTagInfoChange', name, id) + } +} + + +type EventMethods = Omit<EventType, keyof Event> + + +declare class EventType extends AppEvent { + on<K extends keyof EventMethods>(event: K, listener: EventMethods[K]): any + off<K extends keyof EventMethods>(event: K, listener: EventMethods[K]): any +} + +export type AppEventTypes = Omit<EventType, keyof Omit<Event, 'on' | 'off'>> +export const createAppEventHub = (): AppEventTypes => { + return new AppEvent() +} diff --git a/src/event/listEvent.ts b/src/event/listEvent.ts new file mode 100644 index 0000000..27d4668 --- /dev/null +++ b/src/event/listEvent.ts @@ -0,0 +1,237 @@ +import Event from './Event' + +import { saveUserList, removeListMusics, saveListMusics } from '@/utils/data' +import { + userLists, + userListCreate, + userListsUpdate, + userListsRemove, + userListsUpdatePosition, + listDataOverwrite, + listMusicOverwrite, + listMusicAdd, + listMusicMove, + listMusicRemove, + listMusicUpdateInfo, + listMusicUpdatePosition, + listMusicClear, + allMusicList, +} from '@/utils/listManage' +import { LIST_IDS } from '@/config/constant' +import { setActiveList, setUserList } from '@/core/list' +import listState from '@/store/list/state' + +const updateUserList = async(userLists: LX.List.UserListInfo[]) => { + await saveUserList(userLists) + setUserList(userLists) +} + +const checkListExist = (changedIds: string[]) => { + const index = changedIds.indexOf(listState.activeListId) + if (index < 0) return + setActiveList(LIST_IDS.DEFAULT) +} + +export const checkUpdateList = async(changedIds: string[]) => { + if (!changedIds.length) return + await saveListMusics(changedIds.map(id => ({ id, musics: allMusicList.get(id) as LX.List.ListMusics }))) + global.app_event.myListMusicUpdate(changedIds) +} + + +// { +// // sync: { +// // send_action_list: 'send_action_list', +// // handle_action_list: 'handle_action_list', +// // send_sync_list: 'send_sync_list', +// // handle_sync_list: 'handle_sync_list', +// // }, +// } + +export class ListEvent extends Event { + /** + * 现有歌曲列表更改时触发的事件 + * @param ids + */ + // list_music_changed(ids: string[]) { + // this.emit('list_music_changed', ids) + // } + + /** + * 覆盖整个列表数据 + * @param listData 列表数据 + * @param isRemote 是否属于远程操作 + */ + async list_data_overwrite(listData: MakeOptional<LX.List.ListDataFull, 'tempList'>, isRemote: boolean = false) { + const oldIds = userLists.map(l => l.id) + const changedIds = listDataOverwrite(listData) + await updateUserList(userLists) + // await checkUpdateList(changedIds) + const removedList = oldIds.filter(id => !allMusicList.has(id)) + if (removedList.length) await removeListMusics(removedList) + const allListIds = [LIST_IDS.DEFAULT, LIST_IDS.LOVE, ...userLists.map(l => l.id)] + if (changedIds.includes(LIST_IDS.TEMP)) allListIds.push(LIST_IDS.TEMP) + await saveListMusics([...allListIds.map(id => ({ id, musics: allMusicList.get(id) as LX.List.ListMusics }))]) + + global.app_event.myListMusicUpdate(changedIds) + this.emit('list_data_overwrite', listData, isRemote) + checkListExist(changedIds) + } + + /** + * 批量创建列表 + * @param position 列表位置 + * @param lists 列表信息 + * @param isRemote 是否属于远程操作 + */ + async list_create(position: number, lists: LX.List.UserListInfo[], isRemote: boolean = false) { + // const changedIds: string[] = [] + for (const list of lists) { + userListCreate({ ...list, position }) + // changedIds.push(list.id) + } + await updateUserList(userLists) + this.emit('list_create', position, lists, isRemote) + } + + /** + * 批量删除列表及列表内歌曲 + * @param ids 列表ids + * @param isRemote 是否属于远程操作 + */ + async list_remove(ids: string[], isRemote: boolean = false) { + const changedIds = userListsRemove(ids) + await updateUserList(userLists) + await removeListMusics(ids) + this.emit('list_remove', ids, isRemote) + global.app_event.myListMusicUpdate(changedIds) + + checkListExist(changedIds) + } + + /** + * 批量更新列表信息 + * @param lists 列表信息 + * @param isRemote 是否属于远程操作 + */ + async list_update(lists: LX.List.UserListInfo[], isRemote: boolean = false) { + userListsUpdate(lists) + await updateUserList(userLists) + this.emit('list_update', lists, isRemote) + } + + /** + * 批量更新列表位置 + * @param position 列表位置 + * @param ids 列表ids + * @param isRemote 是否属于远程操作 + */ + async list_update_position(position: number, ids: string[], isRemote: boolean = false) { + userListsUpdatePosition(position, ids) + await updateUserList(userLists) + this.emit('list_update_position', position, ids, isRemote) + } + + /** + * 覆盖列表内歌曲 + * @param listId 列表id + * @param musicInfos 音乐信息 + * @param isRemote 是否属于远程操作 + */ + async list_music_overwrite(listId: string, musicInfos: LX.Music.MusicInfo[], isRemote: boolean = false) { + const changedIds = await listMusicOverwrite(listId, musicInfos) + await checkUpdateList(changedIds) + this.emit('list_music_overwrite', listId, musicInfos, isRemote) + } + + /** + * 批量添加歌曲到列表 + * @param listId 列表id + * @param musicInfos 添加的歌曲信息 + * @param addMusicLocationType 添加在到列表的位置 + * @param isRemote 是否属于远程操作 + */ + async list_music_add(listId: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType, isRemote: boolean = false) { + const changedIds = await listMusicAdd(listId, musicInfos, addMusicLocationType) + await checkUpdateList(changedIds) + this.emit('list_music_add', listId, musicInfos, addMusicLocationType, isRemote) + } + + /** + * 批量移动歌曲 + * @param fromId 源列表id + * @param toId 目标列表id + * @param musicInfos 移动的歌曲信息 + * @param addMusicLocationType 添加在到列表的位置 + * @param isRemote 是否属于远程操作 + */ + async list_music_move(fromId: string, toId: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType, isRemote: boolean = false) { + const changedIds = await listMusicMove(fromId, toId, musicInfos, addMusicLocationType) + await checkUpdateList(changedIds) + this.emit('list_music_move', fromId, toId, musicInfos, addMusicLocationType, isRemote) + } + + /** + * 批量移除歌曲 + * @param listId + * @param listId 列表Id + * @param ids 要删除歌曲的id + * @param isRemote 是否属于远程操作 + */ + async list_music_remove(listId: string, ids: string[], isRemote: boolean = false) { + const changedIds = await listMusicRemove(listId, ids) + // console.log(changedIds) + await checkUpdateList(changedIds) + this.emit('list_music_remove', listId, ids, isRemote) + } + + /** + * 批量更新歌曲信息 + * @param musicInfos 歌曲&列表信息 + * @param isRemote 是否属于远程操作 + */ + async list_music_update(musicInfos: LX.List.ListActionMusicUpdate, isRemote: boolean = false) { + const changedIds = await listMusicUpdateInfo(musicInfos) + await checkUpdateList(changedIds) + this.emit('list_music_update', musicInfos, isRemote) + } + + /** + * 清空列表内的歌曲 + * @param ids 列表Id + * @param isRemote 是否属于远程操作 + */ + async list_music_clear(ids: string[], isRemote: boolean = false) { + const changedIds = await listMusicClear(ids) + await checkUpdateList(changedIds) + this.emit('list_music_clear', ids, isRemote) + } + + /** + * 批量更新歌曲位置 + * @param listId 列表ID + * @param position 新位置 + * @param ids 歌曲id + * @param isRemote 是否属于远程操作 + */ + async list_music_update_position(listId: string, position: number, ids: string[], isRemote: boolean = false) { + const changedIds = await listMusicUpdatePosition(listId, position, ids) + await checkUpdateList(changedIds) + this.emit('list_music_update_position', listId, position, ids, isRemote) + } +} + + +type EventMethods = Omit<EventType, keyof Event> + + +declare class EventType extends ListEvent { + on<K extends keyof EventMethods>(event: K, listener: EventMethods[K]): any + off<K extends keyof EventMethods>(event: K, listener: EventMethods[K]): any +} + +export type ListEventTypes = Omit<EventType, keyof Omit<Event, 'on' | 'off'>> +export const createListEventHub = (): ListEventTypes => { + return new ListEvent() +} + diff --git a/src/event/stateEvent.ts b/src/event/stateEvent.ts new file mode 100644 index 0000000..8721c7d --- /dev/null +++ b/src/event/stateEvent.ts @@ -0,0 +1,125 @@ +import Event from './Event' +import type { InitState as CommonState } from '@/store/common/state' +import type { InitState as ListState } from '@/store/list/state' +import type { InitState as PlayerState } from '@/store/player/state' +import type { InitState as VersionState } from '@/store/version/state' + + +// { +// // sync: { +// // send_action_list: 'send_action_list', +// // handle_action_list: 'handle_action_list', +// // send_sync_list: 'send_sync_list', +// // handle_sync_list: 'handle_sync_list', +// // }, +// } + +export class StateEvent extends Event { + configUpdated(keys: Array<keyof LX.AppSetting>, setting: Partial<LX.AppSetting>) { + this.emit('configUpdated', keys, setting) + } + + fontSizeUpdated(size: number) { + this.emit('fontSizeUpdated', size) + } + + apiSourceUpdated(source: LX.AppSetting['common.apiSource']) { + this.emit('apiSourceUpdated', source) + } + + themeUpdated(theme: LX.ActiveTheme) { + this.emit('themeUpdated', theme) + } + + playerMusicInfoChanged(musicInfo: PlayerState['musicInfo']) { + this.emit('playerMusicInfoChanged', musicInfo) + } + + playMusicInfoChanged(playMusicInfo: PlayerState['playMusicInfo']) { + this.emit('playMusicInfoChanged', playMusicInfo) + } + + playInfoChanged(playInfo: PlayerState['playInfo']) { + this.emit('playInfoChanged', playInfo) + } + + playStateTextChanged(text: PlayerState['statusText']) { + this.emit('playStateTextChanged', text) + } + + playStateChanged(state: PlayerState['isPlay']) { + this.emit('playStateChanged', state) + } + + playProgressChanged(progress: PlayerState['progress']) { + this.emit('playProgressChanged', progress) + } + + playPlayedListChanged(playedList: PlayerState['playedList']) { + this.emit('playPlayedListChanged', playedList) + } + + playTempPlayListChanged(tempPlayList: PlayerState['tempPlayList']) { + this.emit('playTempPlayListChanged', tempPlayList) + } + + /** + * 我的列表更新 + */ + mylistUpdated(lists: Array<LX.List.MyDefaultListInfo | LX.List.MyLoveListInfo | LX.List.UserListInfo>) { + this.emit('mylistUpdated', lists) + } + + /** + * 我的列表切换 + */ + mylistToggled(id: string) { + this.emit('mylistToggled', id) + } + + fetchingListStatusUpdated(fetchingListStatus: ListState['fetchingListStatus']) { + this.emit('fetchingListStatusUpdated', fetchingListStatus) + } + + syncStatusUpdated(status: LX.Sync.Status) { + this.emit('syncStatusUpdated', status) + } + + versionInfoUpdated(info: VersionState['versionInfo']) { + this.emit('versionInfoUpdated', info) + } + + versionInfoIgnoreVersionUpdated(version: VersionState['ignoreVersion']) { + this.emit('versionInfoIgnoreVersionUpdated', version) + } + + versionDownloadProgressUpdated(progress: VersionState['progress']) { + this.emit('versionDownloadProgressUpdated', progress) + } + + componentIdsUpdated(ids: CommonState['componentIds']) { + this.emit('componentIdsUpdated', ids) + } + + navActiveIdUpdated(index: CommonState['navActiveId']) { + this.emit('navActiveIdUpdated', index) + } + + sourceNamesUpdated(names: CommonState['sourceNames']) { + this.emit('sourceNamesUpdated', names) + } +} + + +type EventMethods = Omit<EventType, keyof Event> + + +declare class EventType extends StateEvent { + on<K extends keyof EventMethods>(event: K, listener: EventMethods[K]): any + off<K extends keyof EventMethods>(event: K, listener: EventMethods[K]): any +} + +export type StateEventTypes = Omit<EventType, keyof Omit<Event, 'on' | 'off'>> +export const createStateEventHub = (): StateEventTypes => { + return new StateEvent() +} diff --git a/src/lang/en_us.json b/src/lang/en_us.json index 4a25130..2e40785 100644 --- a/src/lang/en_us.json +++ b/src/lang/en_us.json @@ -13,11 +13,13 @@ "collect_songlist": "Collection Songlist", "collect_success": "Collection success", "collect_toplist": "Collection Toplist", + "comment_not support": "This song does not support getting comments", "comment_refresh": "This is already {{name}}'s comment", "comment_tab_hot": "Hot {{total}}", "comment_tab_new": "New {{total}}", "comment_title": "{{name}}-{{singer}}'s comment", "confirm": "Confirm", + "confirm_button_text": "Yes", "confirm_tip": "Just to double check, do you really want to do this?", "copy_name": "Share song", "copy_name_tip": "Copied", @@ -32,19 +34,23 @@ "dialog_confirm": "OK", "disagree": "Disagree", "disagree_tip": "Cancelled...", + "duplicate_list_tip": "You have previously favorited the list [{{name}}], do you want to update the songs?", "input_error": "Don't input indiscriminately 😡", "list_add_btn_title": "Add the song(s) to {{name}}", + "list_add_tip_exists": "This song already exists in the list, don't click me again~😡", "list_add_title_first_add": "Add", "list_add_title_first_move": "Move", "list_add_title_last": "to...", "list_create": "Create a new list", "list_create_input_placeholder": "What name do you think of...", + "list_edit_action_tip_add_failed": "add failed", "list_edit_action_tip_add_success": "Added successfully", "list_edit_action_tip_exist": "This song already exists in this list", + "list_edit_action_tip_move_failed": "failed to move", "list_edit_action_tip_move_success": "Moved successfully", "list_edit_action_tip_remove_success": "Removed successfully", "list_end": "In The End", - "list_error": "Loading failed 😥", + "list_error": "Loading failed😥, click to try to reload", "list_export": "Export", "list_export_part_desc": "Choose where to save the list file", "list_import": "Import", @@ -63,24 +69,35 @@ "list_multi_add_title_first_move": "Move the selected one", "list_multi_add_title_last": "First song to...", "list_remove": "Remove", + "list_remove_music_multi_tip": "Do you really want to remove the selected {{num}} songs?", + "list_remove_tip": "Do you really want to remove {{name}}?", "list_remove_tip_button": "Yes, that's right", "list_rename": "Rename", "list_rename_title": "Rename List", "list_select_all": "Select All", "list_select_cancel": "Cancel", + "list_select_local_file": "add local songs", "list_select_range": "range", "list_select_single": "Single Select", "list_select_unall": "Reverse Selection", "list_sync": "Update", "list_sync_confirm_tip": "This will replace the songs in {{name}} with the songs in the online list, are you sure you want to update?", - "list_update_error": "Update failed", - "list_update_success": "Update completed", + "list_temp": "Temp list", + "list_update_error": "{{name}} failed to update", + "list_update_success": "{{name}} updated successfully", "load_failed": "Ah, loading failed 😥", "loading": "Loading...", + "lyric__load_error": "Failed to get lyrics", "move_to": "Move to...", "name": "Name: {{name}}", - "nav_my_list": "My list", + "nav_exit": "Exit application", + "nav_love": "Collection", + "nav_search": "Search", + "nav_setting": "Setting", + "nav_songlist": "Song list", + "nav_top": "Leaderboard", "never_show": "Never show again", + "no_item": "The list is empty...", "notifications_check_tip": "You have not allowed LX Music to display notifications, or the Music Service in the LX Music notification settings has been disabled, which will prevent you from using the notification bar to pause, switch songs, etc. Do you want to enable it?", "notifications_check_title": "Notification permission reminder", "ok": "OK", @@ -97,10 +114,21 @@ "play_prev": "Previous song", "play_single": "Disable song switching", "play_single_loop": "Single loop playback", + "player__buffering": "buffering...", + "player__end": "finished playing", + "player__error": "Audio loading error, switch to next track after 5 seconds", + "player__geting_url": "Acquiring the song link...", + "player__loading": "Music loading...", + "player__refresh_url": "The URL has expired, refreshing the URL...", "player_setting_lrc_font_size": "Lyric font size setting", "quality_high_quality": "HQ", "quality_lossless": "SQ", "quality_lossless_24bit": "Hires", + "search__welcome": "Search what I want~~😉", + "search_history_search": "History search", + "search_hot_search": "popular searches", + "search_type_music": "Music", + "search_type_songlist": "Song list", "setting_about": "About LX Music", "setting_backup": "Backup and Recovery", "setting_backup_all": "All data (list data and setting data)", @@ -118,6 +146,7 @@ "setting_backup_part_export_setting_desc": "Save the list to...", "setting_backup_part_import_list": "Import List", "setting_backup_part_import_list_desc": "Select the list of backup files", + "setting_backup_part_import_list_tip_error": "List import failed 😕", "setting_backup_part_import_list_tip_runing": "🚀I am trying to import...\nIf the list is too big, it may take some time⏳", "setting_backup_part_import_list_tip_success": "Import successful 🎉", "setting_backup_part_import_list_tip_unzip": "📦File parsing...\nIf the file is too large, it may take some time⏳", @@ -126,6 +155,17 @@ "setting_basic": "General", "setting_basic_animation": "Random pop-up animation", "setting_basic_auto_hide_play_bar": "Auto hide playbar when keyboard pops up", + "setting_basic_drawer_layout_position": "Navigation, favorite list pop-up direction", + "setting_basic_drawer_layout_position_left": "Left side", + "setting_basic_drawer_layout_position_right": "Right side", + "setting_basic_font_size": "Font size setting [effective after restart]", + "setting_basic_font_size_100": "standard", + "setting_basic_font_size_110": "Big", + "setting_basic_font_size_120": "bigger", + "setting_basic_font_size_130": "Very big", + "setting_basic_font_size_80": "smaller", + "setting_basic_font_size_90": "Small", + "setting_basic_font_size_preview": "LX Music Font Size Preview", "setting_basic_lang": "Language", "setting_basic_share_type": "Share", "setting_basic_share_type_clipboard": "copy to clipboard", @@ -171,6 +211,7 @@ "setting_other_cache": "Cache management (including the cache of songs, lyrics, error logs, etc., it is not recommended to clean up if there is no problem related to song playback)", "setting_other_cache_clear_btn": "Clear Cache", "setting_other_cache_clear_success_tip": "Cache clearing completed", + "setting_other_cache_getting": "Statistics cached...", "setting_other_cache_size": "Currently used cache size: ", "setting_other_log": "Error log (log when abnormal operation occurs)", "setting_other_log_btn_clean": "Clear", @@ -192,8 +233,13 @@ "setting_play_show_notification_image": "Show song picture in notification bar", "setting_play_show_roma": "Show lyrics roman (if available)", "setting_play_show_translation": "Show lyrics translation (if available)", + "setting_player_save_play_time": "Remember playback progress", + "setting_search": "Search settings", + "setting_search_show_history_search": "show search history", + "setting_search_show_hot_search": "show popular searches", "setting_sync": "Synchronization [It is recommended to back up the playlist before using it for the first time]", "setting_sync_address": "Local IP address: {{address}}", + "setting_sync_code_blocked_ip": "The IP of the current device has been blocked by the server!", "setting_sync_code_fail": "Invalid connection code", "setting_sync_code_input_tip": "Please enter the connection code", "setting_sync_code_label": "You need to enter the connection code for the first connection", @@ -219,6 +265,8 @@ "songlist_open_input_tip": "1. Cross-source opening of the playlist is not supported. Please confirm whether the playlist to be opened corresponds to the current playlist source\n2. If you encounter a playlist link that cannot be opened, feedback is welcome\n3, Kugou source Open with playlist ID is not supported, but Kugou code is supported", "songlist_recommend": "Recommend", "songlist_rise": "Rise", + "songlist_tag_default": "Default", + "songlist_tag_hot": "Hot", "songlist_tags": "Playlist category", "source_alias_all": "Aggregated", "source_alias_bd": "BD Music", @@ -243,8 +291,11 @@ "theme_black": "Black", "theme_blue": "Blue", "theme_blue2": "Purple Blue", + "theme_blue_plus": "Blue Plus", + "theme_china_ink": "China Ink", "theme_green": "Green", "theme_grey": "Grey", + "theme_happy_new_year": "New Year", "theme_mid_autumn": "Mid-Autumn", "theme_ming": "Ming", "theme_naruto": "Naruto", @@ -252,21 +303,24 @@ "theme_pink": "Pink", "theme_purple": "Purple", "theme_red": "Red", - "theme_yellow": "Yellow", "timeout_exit_btn_cancel": "Cancel timing", "timeout_exit_btn_update": "Update timing", "timeout_exit_btn_wait_cancel": "Cancel exit", "timeout_exit_btn_wait_tip": "Timeout expired, waiting to exit...", + "timeout_exit_input_tip": "Enter countdown minutes", "timeout_exit_label_isPlayed": "Wait for the song to finish playing and then stop playing", "timeout_exit_min": "Minutes", "timeout_exit_tip_cancel": "Timeout stop playing has been cancelled", "timeout_exit_tip_max": "You can only set up to {{num}} minutes", "timeout_exit_tip_off": "Set timer to stop playing", "timeout_exit_tip_on": "Stop playing after {{time}}", + "toggle_source_failed": "Failed to change the source, please try to manually search for the song in other sources to play", + "toggle_source_try": "Try switching to another source...", "version_btn_close": "Close", "version_btn_downloading": "I am trying to download...{{total}}/{{current}} ({{progress}}%)", "version_btn_failed": "Retry", "version_btn_ignore": "Ignore", + "version_btn_ignore_cancel": "Cancel ignore", "version_btn_min": "Background download", "version_btn_new": "Update", "version_btn_unknown": "Project Homepage", diff --git a/src/lang/i18n.ts b/src/lang/i18n.ts new file mode 100644 index 0000000..5b0047e --- /dev/null +++ b/src/lang/i18n.ts @@ -0,0 +1,98 @@ +import { useState, useEffect, useCallback } from 'react' +import type { Messages, Message } from './index' +import { messages } from './index' + + +type TranslateValues = Record<string, string | number | boolean> + +type Langs = keyof Messages + +type Hook = (locale: Langs) => void + +export declare interface I18n { + locale: Langs + fallbackLocale: Langs + availableLocales: Langs[] + messages: Messages + message: Message + setLanguage: (locale: Langs) => void + fillMessage: (message: string, val: TranslateValues) => string + getMessage: (key: keyof Message, val?: TranslateValues) => string + t: (key: keyof Message, val?: TranslateValues) => string +} + +let locale: Langs = 'zh_cn' + +let i18n: I18n + + +const hookTools = { + hooks: [] as Hook[], + add(hook: Hook) { + this.hooks.push(hook) + }, + remove(hook: Hook) { + this.hooks.splice(this.hooks.indexOf(hook), 1) + }, + update(locale: Parameters<Hook>[0]) { + for (const hook of this.hooks) hook(locale) + }, +} + +const useI18n = () => { + const [locale, updateLocale] = useState(i18n.locale) + // console.log('hook run') + useEffect(() => { + const hook: Hook = (locale) => { + updateLocale(locale) + } + hookTools.add(hook) + return () => { hookTools.remove(hook) } + }, []) + + return useCallback((key: keyof Message, val?: TranslateValues): string => { + return i18n.getMessage(key, val) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [locale]) +} + +const setLanguage = (lang: Langs) => { + i18n.setLanguage(lang) +} + +const createI18n = (_locale: Langs = locale): I18n => { + locale = _locale + + return i18n = { + locale, + fallbackLocale: 'zh_cn', + availableLocales: Object.keys(messages) as Langs[], + messages, + message: messages[locale], + setLanguage(_locale: Langs) { + this.locale = _locale + this.message = messages[_locale] + hookTools.update(_locale) + }, + fillMessage(message: string, vals: TranslateValues): string { + for (const [key, val] of Object.entries(vals)) { + message = message.replace(new RegExp('{{' + key + '}}', 'g'), String(val)) + } + return message + }, + getMessage(key: keyof Message, val?: TranslateValues): string { + let targetMessage = this.message[key] ?? this.messages[this.fallbackLocale][key] ?? '' + return val ? this.fillMessage(targetMessage, val) : targetMessage + }, + t(key: keyof Message, val?: TranslateValues): string { + return this.getMessage(key, val) + }, + } +} + + +export { + setLanguage, + useI18n, + createI18n, +} diff --git a/src/lang/index.js b/src/lang/index.js deleted file mode 100644 index 8700adc..0000000 --- a/src/lang/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import zh_cn from './zh_cn.json' -import en_us from './en_us.json' - -export default [ - { - id: 'zh_cn', - name: '简体中文', - translation: zh_cn, - }, - { - id: 'en_us', - name: 'English', - translation: en_us, - }, -] diff --git a/src/lang/index.ts b/src/lang/index.ts new file mode 100644 index 0000000..6cd88df --- /dev/null +++ b/src/lang/index.ts @@ -0,0 +1,54 @@ +import zh_cn from './zh_cn.json' +import en_us from './en_us.json' + +type Message = Record<keyof typeof zh_cn, string> +| Record<keyof typeof en_us, string> + + +const langs = [ + { + name: '简体中文', + locale: 'zh_cn', + // alternate: 'zh-hans', + country: 'cn', + fallback: true, + message: zh_cn, + }, + { + name: 'English', + locale: 'en_us', + country: 'us', + message: en_us, + }, +] as const + +const langList: Array<{ + name: string + locale: (typeof langs)[number]['locale'] + // alternate?: string +}> = [] +type Messages = Record<(typeof langs)[number]['locale'], Message> + +// @ts-expect-error +const messages: Messages = {} + +langs.forEach(item => { + langList.push({ + name: item.name, + locale: item.locale, + // alternate: item.alternate, + }) + messages[item.locale] = item.message +}) + +export { + langList, + messages, +} + +export type { + Messages, + Message, +} + +export * from './i18n' diff --git a/src/lang/zh_cn.json b/src/lang/zh_cn.json index 124f92d..89edaf4 100644 --- a/src/lang/zh_cn.json +++ b/src/lang/zh_cn.json @@ -13,11 +13,13 @@ "collect_songlist": "收藏歌单", "collect_success": "收藏成功", "collect_toplist": "收藏排行榜", + "comment_not support": "该歌曲不支持获取评论", "comment_refresh": "这已经是 {{name}} 的评论啦", "comment_tab_hot": "热门 {{total}}", "comment_tab_new": "最新 {{total}}", "comment_title": "{{name}} - {{singer}} 的评论", "confirm": "确认", + "confirm_button_text": "是的", "confirm_tip": "再确认一下,你真的要这样做吗?", "copy_name": "分享歌曲", "copy_name_tip": "已复制", @@ -32,19 +34,23 @@ "dialog_confirm": "好的", "disagree": "我就不", "disagree_tip": "那算了... 🙄", + "duplicate_list_tip": "你之前已收藏过该列表 [{{name}}],是否需要更新里面的歌曲?", "input_error": "不要乱输好吧😡", "list_add_btn_title": "把该歌曲添加到 {{name}}", + "list_add_tip_exists": "列表已经存在这首歌啦,不要再点我啦~😡", "list_add_title_first_add": "添加", "list_add_title_first_move": "移动", "list_add_title_last": "到...", "list_create": "新建列表", "list_create_input_placeholder": "你想起啥名...", + "list_edit_action_tip_add_failed": "添加失败", "list_edit_action_tip_add_success": "添加成功", "list_edit_action_tip_exist": "该列表已经有这首歌啦", + "list_edit_action_tip_move_failed": "移动失败", "list_edit_action_tip_move_success": "移动成功", "list_edit_action_tip_remove_success": "移除成功", "list_end": "到底啦~", - "list_error": "加载失败😥", + "list_error": "加载失败😥,点击尝试重新加载", "list_export": "导出", "list_export_part_desc": "选择列表文件保存位置", "list_import": "导入", @@ -63,25 +69,35 @@ "list_multi_add_title_first_move": "移动已选的", "list_multi_add_title_last": "首歌曲到...", "list_remove": "移除", + "list_remove_music_multi_tip": "你真的想要移除所选的 {{num}} 首歌曲吗?", "list_remove_tip": "你真的想要移除 {{name}} 吗?", "list_remove_tip_button": "是的 没错", "list_rename": "重命名", "list_rename_title": "重命名列表", "list_select_all": "全选", "list_select_cancel": "取消", + "list_select_local_file": "添加本地歌曲", "list_select_range": "区间", "list_select_single": "单选", "list_select_unall": "反选", "list_sync": "更新", "list_sync_confirm_tip": "这将会把 {{name}} 内的歌曲替换成在线列表的歌曲,你确认要更新吗?", - "list_update_error": "更新失败", - "list_update_success": "更新成功", + "list_temp": "临时列表", + "list_update_error": "{{name}} 更新失败", + "list_update_success": "{{name}} 更新成功", "load_failed": "啊 加载失败了 😥", "loading": "加载中...", + "lyric__load_error": "歌词获取失败", "move_to": "移动到...", "name": "歌曲名:{{name}}", - "nav_my_list": "我的列表", + "nav_exit": "退出应用", + "nav_love": "我的收藏", + "nav_search": "搜索", + "nav_setting": "设置", + "nav_songlist": "歌单", + "nav_top": "排行榜", "never_show": "不再提醒", + "no_item": "列表竟然是空的...", "notifications_check_tip": "你没有允许LX Music显示通知,或LX Music通知设置里的Music Service通知被禁用,这将无法使用通知栏进行暂停、切歌等操作,是否去开启?", "notifications_check_title": "通知权限提醒", "ok": "我知道了", @@ -98,10 +114,21 @@ "play_prev": "上一曲", "play_single": "禁用歌曲切换", "play_single_loop": "单曲循环播放", + "player__buffering": "缓冲中...", + "player__end": "播放完毕", + "player__error": "音频加载出错,5 秒后切换下一首", + "player__geting_url": "歌曲链接获取中...", + "player__loading": "音乐加载中...", + "player__refresh_url": "URL过期,正在刷新URL...", "player_setting_lrc_font_size": "歌词字体大小设置", - "quality_high_quality": "高品质", - "quality_lossless": "无损", + "quality_high_quality": "HQ", + "quality_lossless": "SQ", "quality_lossless_24bit": "Hires", + "search__welcome": "搜我所想~~😉", + "search_history_search": "历史搜索", + "search_hot_search": "热门搜索", + "search_type_music": "歌曲", + "search_type_songlist": "歌单", "setting_about": "关于洛雪音乐", "setting_backup": "备份与恢复", "setting_backup_all": "所有数据(列表数据与设置数据)", @@ -119,6 +146,7 @@ "setting_backup_part_export_setting_desc": "选择设置保存位置", "setting_backup_part_import_list": "导入列表", "setting_backup_part_import_list_desc": "选择列表备份文件", + "setting_backup_part_import_list_tip_error": "列表导入失败😕", "setting_backup_part_import_list_tip_runing": "🚀正在努力导入中...\n若列表太大可能需要一些时间⏳", "setting_backup_part_import_list_tip_success": "导入成功🎉", "setting_backup_part_import_list_tip_unzip": "📦文件解析中...\n若文件太大可能需要一些时间⏳", @@ -127,6 +155,17 @@ "setting_basic": "基本设置", "setting_basic_animation": "弹出层随机动画", "setting_basic_auto_hide_play_bar": "弹出键盘时自动隐藏播放栏", + "setting_basic_drawer_layout_position": "导航、收藏列表弹出方向", + "setting_basic_drawer_layout_position_left": "左侧", + "setting_basic_drawer_layout_position_right": "右侧", + "setting_basic_font_size": "字体大小设置 [重启后生效]", + "setting_basic_font_size_100": "标准", + "setting_basic_font_size_110": "大", + "setting_basic_font_size_120": "较大", + "setting_basic_font_size_130": "非常大", + "setting_basic_font_size_80": "较小", + "setting_basic_font_size_90": "小", + "setting_basic_font_size_preview": "LX Music 字体大小预览", "setting_basic_lang": "语言", "setting_basic_share_type": "分享方式", "setting_basic_share_type_clipboard": "复制到剪贴板", @@ -172,6 +211,7 @@ "setting_other_cache": "缓存管理(包括歌曲、歌词、错误日志等缓存,没有歌曲播放相关的问题不建议清理)", "setting_other_cache_clear_btn": "清理缓存", "setting_other_cache_clear_success_tip": "缓存清理完成", + "setting_other_cache_getting": "统计缓存中...", "setting_other_cache_size": "当前已用缓存大小:", "setting_other_log": "错误日志(运行发生异常时的日志)", "setting_other_log_btn_clean": "清空", @@ -193,8 +233,13 @@ "setting_play_show_notification_image": "在通知栏显示歌曲图片", "setting_play_show_roma": "显示歌词罗马音(如果可用)", "setting_play_show_translation": "显示歌词翻译(如果可用)", + "setting_player_save_play_time": "记住播放进度", + "setting_search": "搜索设置", + "setting_search_show_history_search": "显示历史搜索记录", + "setting_search_show_hot_search": "显示热门搜索", "setting_sync": "同步 [首次使用前建议先备份一次歌单]", "setting_sync_address": "本机IP地址:{{address}}", + "setting_sync_code_blocked_ip": "当前设备的IP已被服务端封禁!", "setting_sync_code_fail": "连接码无效", "setting_sync_code_input_tip": "请输入连接码", "setting_sync_code_label": "首次连接需要输入连接码", @@ -221,6 +266,8 @@ "songlist_open_input_tip": "1、不支持跨源打开歌单,请确认要打开的歌单与当前歌单源是否对应\n2、若遇到无法打开的歌单链接,欢迎反馈\n3、酷狗源不支持用歌单ID打开,但支持酷狗码打开", "songlist_recommend": "推荐", "songlist_rise": "飙升", + "songlist_tag_default": "默认", + "songlist_tag_hot": "热门", "songlist_tags": "歌单类别", "source_alias_all": "聚合大会", "source_alias_bd": "小杜音乐", @@ -245,8 +292,11 @@ "theme_black": "黑灯瞎火", "theme_blue": "蓝田生玉", "theme_blue2": "清热版蓝", + "theme_blue_plus": "蛋雅深蓝", + "theme_china_ink": "近墨者黑", "theme_green": "绿意盎然", "theme_grey": "灰常美丽", + "theme_happy_new_year": "新年快乐", "theme_mid_autumn": "月里嫦娥", "theme_ming": "青出于黑", "theme_naruto": "木叶之村", @@ -254,21 +304,24 @@ "theme_pink": "粉装玉琢", "theme_purple": "重斤球紫", "theme_red": "热情似火", - "theme_yellow": "信口雌黄", "timeout_exit_btn_cancel": "取消定时", "timeout_exit_btn_update": "更新定时", "timeout_exit_btn_wait_cancel": "取消退出", "timeout_exit_btn_wait_tip": "计时已结束,正在等待退出...", + "timeout_exit_input_tip": "输入倒计时分钟数", "timeout_exit_label_isPlayed": "等待歌曲播放完毕再停止播放", "timeout_exit_min": "分钟", "timeout_exit_tip_cancel": "已取消定时停止播放", "timeout_exit_tip_max": "最多只能设置{{num}}分钟哦", "timeout_exit_tip_off": "设置定时停止播放", "timeout_exit_tip_on": "{{time}} 后停止播放", + "toggle_source_failed": "换源失败,请尝试手动在其他源搜索该歌曲播放", + "toggle_source_try": "尝试切换到其他源...", "version_btn_close": "关闭", "version_btn_downloading": "正在努力下载中...{{total}}/{{current}} ({{progress}}%)", "version_btn_failed": "重试", "version_btn_ignore": "忽略", + "version_btn_ignore_cancel": "取消忽略", "version_btn_min": "后台下载", "version_btn_new": "更新", "version_btn_unknown": "项目首页", diff --git a/src/navigation/components/ModalContent.tsx b/src/navigation/components/ModalContent.tsx new file mode 100644 index 0000000..da30617 --- /dev/null +++ b/src/navigation/components/ModalContent.tsx @@ -0,0 +1,56 @@ +import React from 'react' +import { View } from 'react-native' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +// import { useDimensions } from '@/utils/hooks' +const HEADER_HEIGHT = 20 + +interface Props { + children: React.ReactNode +} + + +export default ({ children }: Props) => { + const theme = useTheme() + + return ( + <View style={{ ...styles.centeredView, backgroundColor: 'rgba(50,50,50,.3)' }}> + <View style={{ ...styles.modalView, backgroundColor: theme['c-content-background'] }}> + <View style={{ ...styles.header, backgroundColor: theme['c-primary-light-100-alpha-100'] }}></View> + {children} + </View> + </View> + ) +} + + +const styles = createStyle({ + centeredView: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + }, + modalView: { + maxWidth: '90%', + minWidth: '60%', + maxHeight: '78%', + // backgroundColor: 'white', + borderRadius: 4, + // shadowColor: '#000', + // shadowOffset: { + // width: 0, + // height: 2, + // }, + // shadowOpacity: 0.25, + // shadowRadius: 4, + elevation: 3, + }, + header: { + flexGrow: 0, + flexShrink: 0, + flexDirection: 'row', + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + height: HEADER_HEIGHT, + }, +}) diff --git a/src/navigation/components/PactModal.js b/src/navigation/components/PactModal.js deleted file mode 100644 index beeab4a..0000000 --- a/src/navigation/components/PactModal.js +++ /dev/null @@ -1,209 +0,0 @@ -import React, { useMemo, useState, useEffect } from 'react' -import { StyleSheet, View, Text, ScrollView, Alert } from 'react-native' -import { Navigation } from 'react-native-navigation' - -import Button from '@/components/common/Button' -import { useGetter, useDispatch } from '@/store' -import { openUrl } from '@/utils/tools' -import { exitApp } from '@/utils/common' - -const VersionModal = ({ componentId }) => { - const theme = useGetter('common', 'theme') - const isAgreePact = useGetter('common', 'isAgreePact') - const setAgreePact = useDispatch('common', 'setAgreePact') - const checkVersion = useDispatch('common', 'checkVersion') - const [time, setTime] = useState(20) - - const handleRejct = () => { - exitApp() - // Navigation.dismissOverlay(componentId) - } - - const handleConfirm = () => { - let _isAgreePact = isAgreePact - if (!isAgreePact) setAgreePact(true) - Navigation.dismissOverlay(componentId) - setTimeout(() => { - Alert.alert( - '', - Buffer.from('e69cace8bdafe4bbb6e5ae8ce585a8e5858de8b4b9e4b894e5bc80e6ba90efbc8ce5a682e69e9ce4bda0e698afe88ab1e992b1e8b4ade4b9b0e79a84efbc8ce8afb7e79bb4e68ea5e7bb99e5b7aee8af84efbc810a0a5468697320736f667477617265206973206672656520616e64206f70656e20736f757263652e', 'hex').toString(), - [{ - text: Buffer.from('e5a5bde79a8420284f4b29', 'hex').toString(), - onPress: () => { - if (!_isAgreePact) checkVersion() - }, - }], - ) - }, 2e3) - } - - const openHomePage = () => { - openUrl('https://github.com/lyswhut/lx-music-mobile#readme') - } - const openLicensePage = () => { - openUrl('http://www.apache.org/licenses/LICENSE-2.0') - } - - const textStyle = StyleSheet.compose(styles.text, { - color: theme.normal, - marginBottom: 10, - }) - const textLinkStyle = StyleSheet.compose(styles.text, { - textDecorationLine: 'underline', - color: theme.secondary, - fontSize: 15, - }) - - const confirmBtn = useMemo(() => { - if (isAgreePact) return { disabled: false, text: '关闭' } - return time ? { disabled: true, text: `同意(${time})` } : { disabled: false, text: '同意' } - }, [isAgreePact, time]) - - useEffect(() => { - if (isAgreePact) return - const timeoutTools = { - timeout: null, - start() { - this.timeout = setTimeout(() => { - setTime(time => { - time-- - if (time > 0) this.start() - return time - }) - }, 1000) - }, - clear() { - clearTimeout(this.timeout) - }, - } - timeoutTools.start() - return () => timeoutTools.clear() - }, []) - - return ( - <View style={{ ...styles.centeredView }}> - <View style={{ ...styles.modalView, backgroundColor: theme.primary }}> - <View style={{ ...styles.header, backgroundColor: theme.secondary }}></View> - <View style={styles.main}> - <Text style={{ ...styles.title, color: theme.normal }}>许可协议</Text> - <ScrollView style={styles.content} keyboardShouldPersistTaps={'always'}> - <Text selectable style={textStyle} >本项目(软件)基于 <Text onPress={openLicensePage} style={textLinkStyle}>Apache License 2.0</Text> 许可证发行,在使用本软件前,你(使用者)需签署本协议才可继续使用,以下协议是对于 Apache License 2.0 的补充,如有冲突,以以下协议为准。</Text> - <Text selectable style={textStyle} >词语约定:本协议中的“本软件”指洛雪音乐移动版项目;“使用者”指签署本协议的使用者;“官方音乐平台”指对本软件内置的包括酷我、酷狗、咪咕等音乐源的官方平台统称;“版权数据”指包括但不限于图像、音频、名字等在内的他人拥有所属版权的数据。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>1.</Text> 本软件的数据来源原理是从各官方音乐平台的公开服务器中拉取数据,经过对数据简单地筛选与合并后进行展示,因此本软件不对数据的准确性负责。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>2.</Text> 使用本软件的过程中可能会产生版权数据,对于这些版权数据,本软件不拥有它们的所有权,为了避免造成侵权,使用者务必在 <Text style={styles.bold}>24小时内</Text> 清除使用本软件的过程中所产生的版权数据。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>3.</Text> 本软件内的官方音乐平台别名为本软件内对官方音乐平台的一个称呼,不包含恶意,如果官方音乐平台觉得不妥,可联系本软件更改或移除。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>4.</Text> 本软件内使用的部分包括但不限于字体、图片等资源来源于互联网,如果出现侵权可联系本软件移除。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>5.</Text> 由于使用本软件产生的包括由于本协议或由于使用或无法使用本软件而引起的任何性质的任何直接、间接、特殊、偶然或结果性损害(包括但不限于因商誉损失、停工、计算机故障或故障引起的损害赔偿,或任何及所有其他商业损害或损失)由使用者负责。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>6.</Text> 本项目完全免费,且开源发布于 <Text onPress={openHomePage} style={textLinkStyle}>GitHub</Text> 面向全世界人用作对技术的学习交流,本软件不对项目内的技术可能存在违反当地法律法规的行为作保证,<Text style={styles.bold}>禁止在违反当地法律法规的情况下使用本软件</Text>,对于使用者在明知或不知当地法律法规不允许的情况下使用本软件所造成的任何违法违规行为由使用者承担,本软件不承担由此造成的任何直接、间接、特殊、偶然或结果性责任。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>*</Text> 若协议更新,恕不另行通知,可到开源地址查看。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>*</Text> 本软件的初衷是帮助官方音乐平台简化数据后代为展示,帮助使用者根据歌曲名、艺术家等关键字快速地定位所需内容所在的音乐平台。</Text> - <Text selectable style={textStyle} ><Text style={styles.bold}>*</Text> 音乐平台不易,建议到对应音乐平台支持正版资源。</Text> - { - isAgreePact - ? null - : ( - <Text selectable style={{ ...styles.text, ...styles.bold, color: theme.normal }} >若你(使用者)接受以上协议,请点击下面的“接受”按钮签署本协议,若不接受,请点击“不接受”后退出软件并清除本软件的所有数据。</Text> - ) - } - </ScrollView> - </View> - <View style={styles.btns}> - { - isAgreePact - ? null - : ( - <Button style={{ ...styles.btn, backgroundColor: theme.secondary45 }} onPress={handleRejct}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>不同意</Text> - </Button> - ) - } - <Button disabled={confirmBtn.disabled} style={{ ...styles.btn, backgroundColor: theme.secondary45 }} onPress={handleConfirm}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>{confirmBtn.text}</Text> - </Button> - </View> - </View> - </View> - ) -} - -const styles = StyleSheet.create({ - centeredView: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: 'rgba(50,50,50,.3)', - }, - modalView: { - maxWidth: '90%', - minWidth: '75%', - // minHeight: '36%', - maxHeight: '78%', - backgroundColor: 'white', - borderRadius: 4, - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 2, - // }, - // shadowOpacity: 0.25, - // shadowRadius: 4, - elevation: 3, - }, - header: { - flexGrow: 0, - flexShrink: 0, - flexDirection: 'row', - borderTopLeftRadius: 4, - borderTopRightRadius: 4, - height: 20, - }, - - main: { - // flexGrow: 0, - flexShrink: 1, - marginTop: 15, - marginBottom: 20, - }, - content: { - flexGrow: 0, - marginLeft: 5, - marginRight: 5, - paddingLeft: 10, - paddingRight: 10, - }, - title: { - fontSize: 18, - textAlign: 'center', - marginBottom: 15, - }, - part: { - marginBottom: 10, - }, - text: { - fontSize: 14, - textAlignVertical: 'bottom', - }, - bold: { - fontWeight: 'bold', - }, - btns: { - flexDirection: 'row', - justifyContent: 'center', - paddingBottom: 15, - paddingLeft: 15, - // paddingRight: 15, - }, - btn: { - flex: 1, - paddingTop: 10, - paddingBottom: 10, - paddingLeft: 10, - paddingRight: 10, - alignItems: 'center', - borderRadius: 4, - marginRight: 15, - }, -}) - -export default VersionModal - diff --git a/src/navigation/components/PactModal.tsx b/src/navigation/components/PactModal.tsx new file mode 100644 index 0000000..a915d7b --- /dev/null +++ b/src/navigation/components/PactModal.tsx @@ -0,0 +1,208 @@ +import React, { useMemo, useState, useEffect } from 'react' +import { View, ScrollView, Alert } from 'react-native' +import { Navigation } from 'react-native-navigation' + +import Button from '@/components/common/Button' +import { createStyle, openUrl } from '@/utils/tools' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' +import ModalContent from './ModalContent' +import { exitApp } from '@/utils/nativeModules/utils' +import { updateSetting } from '@/core/common' +import { checkUpdate } from '@/core/version' + +const Content = () => { + const theme = useTheme() + + const openHomePage = () => { + void openUrl('https://github.com/lyswhut/lx-music-mobile#readme') + } + const openLicensePage = () => { + void openUrl('http://www.apache.org/licenses/LICENSE-2.0') + } + + const textLinkStyle = { + ...styles.text, + textDecorationLine: 'underline', + color: theme['c-primary-font'], + // fontSize: 15, + } as const + + return ( + <View style={styles.main}> + <Text style={styles.title} size={18} >许可协议</Text> + <ScrollView style={styles.content} keyboardShouldPersistTaps={'always'}> + <Text selectable style={styles.text} >本项目(软件)基于 <Text onPress={openLicensePage} style={textLinkStyle}>Apache License 2.0</Text> 许可证发行,在使用本软件前,你(使用者)需签署本协议才可继续使用,以下协议是对于 Apache License 2.0 的补充,如有冲突,以以下协议为准。</Text> + <Text selectable style={styles.text} >词语约定:本协议中的“本软件”指洛雪音乐移动版项目;“使用者”指签署本协议的使用者;“官方音乐平台”指对本软件内置的包括酷我、酷狗、咪咕等音乐源的官方平台统称;“版权数据”指包括但不限于图像、音频、名字等在内的他人拥有所属版权的数据。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>1.</Text> 本软件的数据来源原理是从各官方音乐平台的公开服务器中拉取数据,经过对数据简单地筛选与合并后进行展示,因此本软件不对数据的准确性负责。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>2.</Text> 使用本软件的过程中可能会产生版权数据,对于这些版权数据,本软件不拥有它们的所有权,为了避免造成侵权,使用者务必在 <Text style={styles.bold}>24小时内</Text> 清除使用本软件的过程中所产生的版权数据。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>3.</Text> 本软件内的官方音乐平台别名为本软件内对官方音乐平台的一个称呼,不包含恶意,如果官方音乐平台觉得不妥,可联系本软件更改或移除。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>4.</Text> 本软件内使用的部分包括但不限于字体、图片等资源来源于互联网,如果出现侵权可联系本软件移除。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>5.</Text> 由于使用本软件产生的包括由于本协议或由于使用或无法使用本软件而引起的任何性质的任何直接、间接、特殊、偶然或结果性损害(包括但不限于因商誉损失、停工、计算机故障或故障引起的损害赔偿,或任何及所有其他商业损害或损失)由使用者负责。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>6.</Text> 本项目完全免费,且开源发布于 <Text onPress={openHomePage} style={textLinkStyle}>GitHub</Text> 面向全世界人用作对技术的学习交流,本软件不对项目内的技术可能存在违反当地法律法规的行为作保证,<Text style={styles.bold}>禁止在违反当地法律法规的情况下使用本软件</Text>,对于使用者在明知或不知当地法律法规不允许的情况下使用本软件所造成的任何违法违规行为由使用者承担,本软件不承担由此造成的任何直接、间接、特殊、偶然或结果性责任。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>*</Text> 若协议更新,恕不另行通知,可到开源地址查看。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>*</Text> 本软件的初衷是帮助官方音乐平台简化数据后代为展示,帮助使用者根据歌曲名、艺术家等关键字快速地定位所需内容所在的音乐平台。</Text> + <Text selectable style={styles.text} ><Text style={styles.bold}>*</Text> 音乐平台不易,建议到对应音乐平台支持正版资源。</Text> + </ScrollView> + </View> + ) +} + +const Footer = ({ componentId }: { componentId: string }) => { + const theme = useTheme() + const isAgreePact = useSettingValue('common.isAgreePact') + // const checkUpdate = useDispatch('common', 'checkUpdate') + const [time, setTime] = useState(20) + + const handleRejct = () => { + exitApp() + // Navigation.dismissOverlay(componentId) + } + + const handleConfirm = () => { + let _isAgreePact = isAgreePact + if (!isAgreePact) updateSetting({ 'common.isAgreePact': true }) + void Navigation.dismissOverlay(componentId) + if (!_isAgreePact) { + setTimeout(() => { + Alert.alert( + '', + Buffer.from('e69cace8bdafe4bbb6e5ae8ce585a8e5858de8b4b9e4b894e5bc80e6ba90efbc8ce5a682e69e9ce4bda0e698afe88ab1e992b1e8b4ade4b9b0e79a84efbc8ce8afb7e79bb4e68ea5e7bb99e5b7aee8af84efbc810a0a5468697320736f667477617265206973206672656520616e64206f70656e20736f757263652e', 'hex').toString(), + [{ + text: Buffer.from('e5a5bde79a8420284f4b29', 'hex').toString(), + onPress: () => { + void checkUpdate() + }, + }], + ) + }, 2e3) + } + } + + + const confirmBtn = useMemo(() => { + if (isAgreePact) return { disabled: false, text: '关闭' } + return time ? { disabled: true, text: `同意(${time})` } : { disabled: false, text: '同意' } + }, [isAgreePact, time]) + + useEffect(() => { + if (isAgreePact) return + const timeoutTools = { + timeout: null as NodeJS.Timeout | null, + start() { + this.timeout = setTimeout(() => { + setTime(time => { + time-- + if (time > 0) this.start() + return time + }) + }, 1000) + }, + clear() { + if (!this.timeout) return + clearTimeout(this.timeout) + }, + } + timeoutTools.start() + return () => { + timeoutTools.clear() + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + return ( + <> + { + isAgreePact + ? null + : ( + <Text selectable style={styles.tip} size={13}>若你(使用者)接受以上协议,请点击下面的“接受”按钮签署本协议,若不接受,请点击“不接受”后退出软件并清除本软件的所有数据。</Text> + ) + } + <View style={styles.btns}> + { + isAgreePact + ? null + : ( + <Button style={{ ...styles.btn, backgroundColor: theme['c-button-background'] }} onPress={handleRejct}> + <Text color={theme['c-button-font']}>不同意</Text> + </Button> + ) + } + <Button disabled={confirmBtn.disabled} style={{ ...styles.btn, backgroundColor: theme['c-button-background'] }} onPress={handleConfirm}> + <Text color={theme['c-button-font']}>{confirmBtn.text}</Text> + </Button> + </View> + </> + ) +} + +const PactModal = ({ componentId }: { componentId: string }) => { + return ( + <ModalContent> + <Content /> + <Footer componentId={componentId} /> + </ModalContent> + ) +} + +const styles = createStyle({ + main: { + // flexGrow: 0, + flexShrink: 1, + marginTop: 15, + marginBottom: 10, + }, + content: { + flexGrow: 0, + marginLeft: 5, + marginRight: 5, + paddingLeft: 10, + paddingRight: 10, + }, + title: { + textAlign: 'center', + marginBottom: 15, + }, + part: { + marginBottom: 10, + }, + text: { + fontSize: 14, + textAlignVertical: 'bottom', + marginBottom: 5, + }, + bold: { + fontSize: 14, + textAlignVertical: 'bottom', + fontWeight: 'bold', + }, + tip: { + textAlignVertical: 'bottom', + fontWeight: 'bold', + paddingLeft: 15, + paddingRight: 15, + paddingBottom: 15, + }, + btns: { + flexDirection: 'row', + justifyContent: 'center', + paddingBottom: 15, + paddingLeft: 15, + // paddingRight: 15, + }, + btn: { + flex: 1, + paddingTop: 10, + paddingBottom: 10, + paddingLeft: 10, + paddingRight: 10, + alignItems: 'center', + borderRadius: 4, + marginRight: 15, + }, +}) + +export default PactModal + diff --git a/src/navigation/components/VersionModal.js b/src/navigation/components/VersionModal.js deleted file mode 100644 index 02d34a1..0000000 --- a/src/navigation/components/VersionModal.js +++ /dev/null @@ -1,312 +0,0 @@ -import React, { useMemo, useState, useEffect } from 'react' -import { StyleSheet, View, Text, ScrollView } from 'react-native' -import { Navigation } from 'react-native-navigation' - -import { compareVer, sizeFormate } from '@/utils' - -import Button from '@/components/common/Button' -import { useTranslation } from '@/plugins/i18n' -import { useGetter, useDispatch } from '@/store' -import { VERSION_STATUS } from '@/config/constant' -import { downloadNewVersion, updateApp } from '@/utils/version' -import { openUrl } from '@/utils/tools' - -const VersionItem = ({ version, desc }) => { - const theme = useGetter('common', 'theme') - return ( - <View style={{ marginBottom: 10 }}> - <Text style={{ ...styles.label, color: theme.normal, marginBottom: 2 }}>v{version}</Text> - <Text selectable style={{ ...styles.desc, color: theme.normal }}>{desc}</Text> - </View> - ) -} - -const currentVer = process.versions.app -const VersionModal = ({ componentId }) => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - const versionInfo = useGetter('common', 'versionInfo') - const setVersionInfo = useDispatch('common', 'setVersionInfo') - const setIgnoreVersion = useDispatch('common', 'setIgnoreVersion') - const [ignoreBtn, setIgnoreBtn] = useState({ text: t('version_btn_ignore'), show: true, disabled: false }) - const [closeBtnText, setCloseBtnText] = useState(t('version_btn_close')) - const [confirmBtn, setConfirmBtn] = useState({ text: t('version_btn_confirm'), show: true, disabled: false }) - const [title, setTitle] = useState('') - const [tip, setTip] = useState('') - - const history = useMemo(() => { - if (!versionInfo.history) return [] - let arr = [] - for (const ver of versionInfo.history) { - if (compareVer(currentVer, ver.version) < 0) arr.push(ver) - } - return arr - }, [versionInfo]) - - const handleCancel = () => { - setVersionInfo({ showModal: false }) - Navigation.dismissOverlay(componentId) - } - - const handleIgnore = () => { - setIgnoreVersion(versionInfo.version) - handleCancel() - } - - const handleDownload = () => { - setVersionInfo({ - status: VERSION_STATUS.downloading, - downloadProgress: { - total: 0, - current: 0, - }, - }) - downloadNewVersion(versionInfo.version, (total, current) => { - // console.log(total, current) - setVersionInfo({ - status: VERSION_STATUS.downloading, - downloadProgress: { - total, - current, - }, - }) - }).then(() => { - setVersionInfo({ - status: VERSION_STATUS.downloaded, - }) - }).catch(err => { - console.log(err) - setVersionInfo({ - status: VERSION_STATUS.failed, - }) - }) - } - const handleConfirm = () => { - switch (versionInfo.status) { - case VERSION_STATUS.available: - handleDownload() - break - case VERSION_STATUS.downloaded: - updateApp().catch(() => { - setVersionInfo({ - status: VERSION_STATUS.failed, - }) - }) - break - case VERSION_STATUS.failed: - handleDownload() - break - - case VERSION_STATUS.unknown: - default: - openUrl('https://github.com/lyswhut/lx-music-mobile#readme') - break - } - // setVersionInfo({ showModal: false }) - // Navigation.dismissOverlay(componentId) - } - - useEffect(() => { - switch (versionInfo.status) { - case VERSION_STATUS.available: - setTitle(t('version_title_new')) - setTip('') - setIgnoreBtn({ text: t('version_btn_ignore'), show: true, disabled: false }) - setConfirmBtn({ text: t('version_btn_new'), show: true, disabled: false }) - // setTip(t('version_btn_new')) - setCloseBtnText(t('version_btn_close')) - break - case VERSION_STATUS.downloading: - setTitle(t('version_title_new')) - setTip(t('version_btn_downloading', { - total: sizeFormate(versionInfo.downloadProgress.total), - current: sizeFormate(versionInfo.downloadProgress.current), - progress: versionInfo.downloadProgress.total ? (versionInfo.downloadProgress.current / versionInfo.downloadProgress.total * 100).toFixed(2) : '0', - })) - if (ignoreBtn.show) setIgnoreBtn({ text: t('version_btn_ignore'), show: false, disabled: true }) - if (!confirmBtn.disabled) setConfirmBtn({ text: t('version_btn_update'), show: true, disabled: true }) - setCloseBtnText(t('version_btn_min')) - break - case VERSION_STATUS.downloaded: - setTitle(t('version_title_update')) - setTip('') - if (ignoreBtn.show) setIgnoreBtn({ text: t('version_btn_ignore'), show: false, disabled: true }) - setConfirmBtn({ text: t('version_btn_update'), show: true, disabled: false }) - setCloseBtnText(t('version_btn_close')) - break - case VERSION_STATUS.checking: - setTitle(t('version_title_checking')) - setTip(t('')) - setIgnoreBtn({ text: t('version_btn_ignore'), show: false, disabled: true }) - setConfirmBtn({ text: t('version_btn_new'), show: false, disabled: true }) - setCloseBtnText(t('version_btn_close')) - break - case VERSION_STATUS.failed: - setTitle(t('version_title_failed')) - setTip(t('version_tip_failed')) - setIgnoreBtn({ text: t('version_btn_ignore'), show: true, disabled: false }) - setConfirmBtn({ text: t('version_btn_failed'), show: true, disabled: false }) - setCloseBtnText(t('version_btn_close')) - break - case VERSION_STATUS.unknown: - setTitle(t('version_title_unknown')) - setTip(t('version_tip_unknown')) - setIgnoreBtn({ text: t('version_btn_ignore'), show: false, disabled: true }) - setConfirmBtn({ text: t('version_btn_unknown'), show: true, disabled: false }) - setCloseBtnText(t('version_btn_close')) - break - case VERSION_STATUS.latest: - default: - setTitle(t('version_title_latest')) - setTip('') - setIgnoreBtn({ text: t('version_btn_ignore'), show: false, disabled: true }) - setConfirmBtn({ text: t('version_btn_new'), show: false, disabled: true }) - setCloseBtnText(t('version_btn_close')) - break - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [t, versionInfo]) - - return ( - <View style={{ ...styles.centeredView }}> - <View style={{ ...styles.modalView, backgroundColor: theme.primary }}> - <View style={{ ...styles.header, backgroundColor: theme.secondary }}></View> - <View style={styles.main}> - <Text style={{ ...styles.title, color: theme.normal }}>{title}</Text> - <ScrollView style={styles.content} keyboardShouldPersistTaps={'always'}> - <Text style={{ ...styles.label, color: theme.normal }}>{t('version_label_latest_ver')}{versionInfo.version}</Text> - <Text style={{ ...styles.label, color: theme.normal }}>{t('version_label_current_ver')}{currentVer}</Text> - { - versionInfo.desc - ? ( - <View> - <Text style={{ ...styles.label, color: theme.normal }}>{t('version_label_change_log')}</Text> - <View style={{ paddingLeft: 10, marginTop: 5 }}> - <Text selectable style={{ ...styles.desc, color: theme.normal }}>{versionInfo.desc}</Text> - </View> - </View> - ) - : null - } - { - history.length - ? ( - <View style={styles.history}> - <Text style={{ ...styles.label, color: theme.normal }}>{t('version_label_history')}</Text> - <View style={{ paddingLeft: 10, marginTop: 5 }}> - {history.map((item, index) => <VersionItem key={index} version={item.version} desc={item.desc} />)} - </View> - </View> - ) - : null - } - </ScrollView> - { tip.length ? <Text style={{ marginTop: 10, fontSize: 14, color: theme.secondary }}>{tip}</Text> : null } - </View> - <View style={styles.btns}> - { - ignoreBtn.show - ? ( - <Button disabled={ignoreBtn.disabled} style={{ ...styles.btn, backgroundColor: theme.secondary45 }} onPress={handleIgnore}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>{ignoreBtn.text}</Text> - </Button> - ) - : null - } - <Button style={{ ...styles.btn, backgroundColor: theme.secondary45 }} onPress={handleCancel}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>{closeBtnText}</Text> - </Button> - { - confirmBtn.show - ? ( - <Button disabled={confirmBtn.disabled} style={{ ...styles.btn, backgroundColor: theme.secondary45 }} onPress={handleConfirm}> - <Text style={{ fontSize: 14, color: theme.secondary_5 }}>{confirmBtn.text}</Text> - </Button> - ) - : null - } - </View> - </View> - </View> - ) -} - -const styles = StyleSheet.create({ - centeredView: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: 'rgba(50,50,50,.3)', - }, - modalView: { - maxWidth: '90%', - minWidth: '75%', - // minHeight: '36%', - maxHeight: '78%', - backgroundColor: 'white', - borderRadius: 4, - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 2, - // }, - // shadowOpacity: 0.25, - // shadowRadius: 4, - elevation: 3, - }, - header: { - flexGrow: 0, - flexShrink: 0, - flexDirection: 'row', - borderTopLeftRadius: 4, - borderTopRightRadius: 4, - height: 20, - }, - - main: { - // flexGrow: 0, - flexShrink: 1, - marginTop: 15, - marginLeft: 15, - marginRight: 15, - marginBottom: 20, - }, - content: { - flexGrow: 0, - }, - title: { - fontSize: 18, - textAlign: 'center', - marginBottom: 15, - }, - history: { - marginTop: 15, - }, - label: { - fontSize: 14, - }, - desc: { - fontSize: 13, - lineHeight: 18, - }, - btns: { - flexDirection: 'row', - justifyContent: 'center', - paddingBottom: 15, - paddingLeft: 15, - // paddingRight: 15, - }, - btn: { - flex: 1, - paddingTop: 10, - paddingBottom: 10, - paddingLeft: 10, - paddingRight: 10, - alignItems: 'center', - borderRadius: 4, - marginRight: 15, - }, -}) - -export default VersionModal - diff --git a/src/navigation/components/VersionModal.tsx b/src/navigation/components/VersionModal.tsx new file mode 100644 index 0000000..2706854 --- /dev/null +++ b/src/navigation/components/VersionModal.tsx @@ -0,0 +1,263 @@ +import React, { useMemo, useState, useEffect, memo } from 'react' +import { View, ScrollView } from 'react-native' + +import { compareVer, sizeFormate } from '@/utils' + +import Button from '@/components/common/Button' +import { updateApp } from '@/utils/version' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { type VersionInfo } from '@/store/version/state' +import Text from '@/components/common/Text' +import { useI18n } from '@/lang' +import { useVersionDownloadProgressUpdated, useVersionInfo, useVersionInfoIgnoreVersionUpdated } from '@/store/version/hook' +import ModalContent from './ModalContent' +import { checkUpdate, downloadUpdate, hideModal, setIgnoreVersion } from '@/core/version' + +const VersionItem = ({ version, desc }: VersionInfo) => { + return ( + <View style={styles.versionItem}> + <Text style={styles.label}>v{version}</Text> + <Text selectable style={styles.desc}>{desc}</Text> + </View> + ) +} + +const Content = memo(({ title, newVersionInfo }: { + title: string + newVersionInfo: VersionInfo | null +}) => { + const t = useI18n() + + const history = useMemo(() => { + if (!newVersionInfo?.history) return [] + let arr = [] + for (const ver of newVersionInfo?.history) { + if (compareVer(currentVer, ver.version) < 0) arr.push(ver) + } + return arr + }, [newVersionInfo]) + + return ( + <View style={styles.main}> + <Text style={styles.title}>{title}</Text> + <ScrollView style={styles.content} keyboardShouldPersistTaps={'always'}> + <Text style={styles.label}>{t('version_label_latest_ver')}{newVersionInfo?.version}</Text> + <Text style={styles.label}>{t('version_label_current_ver')}{currentVer}</Text> + { + newVersionInfo?.desc + ? ( + <View> + <Text style={styles.label}>{t('version_label_change_log')}</Text> + <View style={{ paddingLeft: 10, marginTop: 5 }}> + <Text selectable style={styles.desc}>{newVersionInfo.desc}</Text> + </View> + </View> + ) + : null + } + { + history.length + ? ( + <View style={styles.history}> + <Text style={styles.label}>{t('version_label_history')}</Text> + <View style={{ paddingLeft: 10, marginTop: 5 }}> + {history.map((item, index) => <VersionItem key={index} version={item.version} desc={item.desc} />)} + </View> + </View> + ) + : null + } + </ScrollView> + </View> + ) +}) + +const currentVer = process.versions.app +const VersionModal = ({ componentId }: { componentId: string }) => { + const theme = useTheme() + const t = useI18n() + const versionInfo = useVersionInfo() + const progress = useVersionDownloadProgressUpdated() + const ignoreVersion = useVersionInfoIgnoreVersionUpdated() + const [ignoreBtn, setIgnoreBtn] = useState({ text: t('version_btn_ignore'), show: true, disabled: false }) + const [closeBtnText, setCloseBtnText] = useState(t('version_btn_close')) + const [confirmBtn, setConfirmBtn] = useState({ text: '', show: true, disabled: false }) + const [title, setTitle] = useState('') + const [tip, setTip] = useState('') + + + useEffect(() => { + let ignoreBtnConfig = { ...ignoreBtn } + if (versionInfo.isLatest) { + setTitle(t('version_title_latest')) + setTip('') + ignoreBtnConfig.show = false + setConfirmBtn({ text: t('version_btn_new'), show: false, disabled: true }) + setCloseBtnText(t('version_btn_close')) + } else if (versionInfo.isUnknown) { + setTitle(t('version_title_unknown')) + setTip(t('version_tip_unknown')) + ignoreBtnConfig.show = false + setConfirmBtn({ text: t('version_btn_failed'), show: true, disabled: false }) + setCloseBtnText(t('version_btn_close')) + } else { + switch (versionInfo.status) { + case 'downloading': + setTitle(t('version_title_new')) + setTip(t('version_btn_downloading', { + total: sizeFormate(progress.total), + current: sizeFormate(progress.current), + progress: progress.total ? (progress.current / progress.total * 100).toFixed(2) : '0', + })) + if (ignoreBtnConfig.show) ignoreBtnConfig.show = false + if (!confirmBtn.disabled) setConfirmBtn({ text: t('version_btn_update'), show: true, disabled: true }) + setCloseBtnText(t('version_btn_min')) + break + case 'downloaded': + setTitle(t('version_title_update')) + setTip('') + if (ignoreBtnConfig.show) ignoreBtnConfig.show = false + setConfirmBtn({ text: t('version_btn_update'), show: true, disabled: false }) + setCloseBtnText(t('version_btn_close')) + break + case 'checking': + setTitle(t('version_title_checking')) + setTip('') + ignoreBtnConfig.show = false + setConfirmBtn({ text: t('version_btn_new'), show: false, disabled: true }) + setCloseBtnText(t('version_btn_close')) + break + case 'error': + setTitle(t('version_title_failed')) + setTip(t('version_tip_failed')) + ignoreBtnConfig.show = true + ignoreBtnConfig.disabled = false + setConfirmBtn({ text: t('version_btn_failed'), show: true, disabled: false }) + setCloseBtnText(t('version_btn_close')) + break + // case 'idle': + // break + default: + setTitle(t('version_title_new')) + setTip('') + ignoreBtnConfig.show = true + ignoreBtnConfig.disabled = false + setConfirmBtn({ text: t('version_btn_new'), show: true, disabled: false }) + // setTip(t('version_btn_new')) + setCloseBtnText(t('version_btn_close')) + break + } + } + ignoreBtnConfig.text = t(ignoreVersion == versionInfo.newVersion?.version ? 'version_btn_ignore_cancel' : 'version_btn_ignore') + setIgnoreBtn(ignoreBtnConfig) + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [t, versionInfo, ignoreVersion, progress]) + + const handleCancel = () => { + hideModal(componentId) + } + const handleIgnore = () => { + setIgnoreVersion(ignoreVersion != versionInfo.newVersion!.version ? versionInfo.newVersion!.version : null) + // handleCancel() + } + + const handleConfirm = () => { + if (versionInfo.isLatest || versionInfo.isUnknown) { + void checkUpdate() + } else if (versionInfo.status == 'downloaded') { + void updateApp() + } else if (versionInfo.status == 'idle' || versionInfo.status == 'error') { + downloadUpdate() + } + } + + return ( + <ModalContent> + <Content title={title} newVersionInfo={versionInfo.newVersion} /> + { tip.length ? <Text style={styles.tip} color={theme['c-primary-font']}>{tip}</Text> : null } + <View style={styles.btns}> + { + ignoreBtn.show + ? ( + <Button disabled={ignoreBtn.disabled} style={{ ...styles.btn, backgroundColor: theme['c-button-background'] }} onPress={handleIgnore}> + <Text color={theme['c-button-font']}>{ignoreBtn.text}</Text> + </Button> + ) + : null + } + <Button style={{ ...styles.btn, backgroundColor: theme['c-button-background'] }} onPress={handleCancel}> + <Text color={theme['c-button-font']}>{closeBtnText}</Text> + </Button> + { + confirmBtn.show + ? ( + <Button disabled={confirmBtn.disabled} style={{ ...styles.btn, backgroundColor: theme['c-button-background'] }} onPress={handleConfirm}> + <Text color={theme['c-button-font']}>{confirmBtn.text}</Text> + </Button> + ) + : null + } + </View> + </ModalContent> + ) +} + +const styles = createStyle({ + main: { + // flexGrow: 0, + flexShrink: 1, + marginTop: 15, + marginLeft: 15, + marginRight: 15, + marginBottom: 20, + }, + content: { + flexGrow: 0, + }, + title: { + fontSize: 18, + textAlign: 'center', + marginBottom: 15, + }, + history: { + marginTop: 15, + }, + versionItem: { + marginBottom: 10, + }, + label: { + fontSize: 14, + marginBottom: 2, + }, + desc: { + fontSize: 13, + lineHeight: 18, + }, + tip: { + paddingLeft: 15, + paddingRight: 15, + paddingBottom: 10, + }, + btns: { + flexDirection: 'row', + justifyContent: 'center', + paddingBottom: 15, + paddingLeft: 15, + // paddingRight: 15, + }, + btn: { + flex: 1, + paddingTop: 10, + paddingBottom: 10, + paddingLeft: 10, + paddingRight: 10, + alignItems: 'center', + borderRadius: 4, + marginRight: 15, + }, +}) + +export default VersionModal + diff --git a/src/navigation/hooks.js b/src/navigation/hooks.ts similarity index 78% rename from src/navigation/hooks.js rename to src/navigation/hooks.ts index 15a92fb..80a22df 100644 --- a/src/navigation/hooks.js +++ b/src/navigation/hooks.ts @@ -1,10 +1,11 @@ import { useEffect } from 'react' +import { EmitterSubscription } from 'react-native' import { Navigation } from 'react-native-navigation' export const useNavigationCommandComplete = (callback = () => {}) => { useEffect(() => { // Register the listener to all events related to our component - let commandCompletedListener = Navigation.events().registerCommandCompletedListener(({ commandId }) => { + let commandCompletedListener: EmitterSubscription | null = Navigation.events().registerCommandCompletedListener(({ commandId }) => { callback() if (!commandCompletedListener) return commandCompletedListener.remove() @@ -18,7 +19,7 @@ export const useNavigationCommandComplete = (callback = () => {}) => { } }, [callback]) } -export const useNavigationComponentDidAppear = (componentId, callback = () => {}) => { +export const useNavigationComponentDidAppear = (componentId: string, callback = () => {}) => { useEffect(() => { const listener = { componentDidAppear: () => { @@ -34,7 +35,7 @@ export const useNavigationComponentDidAppear = (componentId, callback = () => {} }, [callback, componentId]) } -export const onNavigationComponentDidDisappearEvent = (componentId, callback = () => {}) => { +export const onNavigationComponentDidDisappearEvent = (componentId: string, callback = () => {}) => { const listener = { componentDidDisappear: () => { callback() @@ -44,7 +45,7 @@ export const onNavigationComponentDidDisappearEvent = (componentId, callback = ( return unsubscribe } -export const useNavigationComponentDidDisappear = (componentId, callback = () => {}) => { +export const useNavigationComponentDidDisappear = (componentId: string, callback = () => {}) => { useEffect(() => { const unsubscribe = onNavigationComponentDidDisappearEvent(componentId, callback) return () => { diff --git a/src/navigation/index.js b/src/navigation/index.ts similarity index 59% rename from src/navigation/index.js rename to src/navigation/index.ts index 870554e..e75d44d 100644 --- a/src/navigation/index.js +++ b/src/navigation/index.ts @@ -3,31 +3,29 @@ import * as screenNames from './screenNames' import * as navigations from './navigation' import registerScreens from './registerScreens' -import { getStore } from '@/store' -import { action as commonAction } from '@/store/modules/common' +import { removeComponentId } from '@/core/common' -let unRegisterEvent +let unRegisterEvent: ReturnType<ReturnType<typeof Navigation.events>['registerScreenPoppedListener']> -const init = callback => { +const init = (callback: () => void | Promise<void>) => { // Register all screens on launch registerScreens() - if (unRegisterEvent) unRegisterEvent() + if (unRegisterEvent) unRegisterEvent.remove() Navigation.setDefaultOptions({ - animations: { - setRoot: { - waitForRender: true, - }, - }, + // animations: { + // setRoot: { + // waitForRender: true, + // }, + // }, }) unRegisterEvent = Navigation.events().registerScreenPoppedListener(({ componentId }) => { - const store = getStore() - store.dispatch(commonAction.removeComponentId(componentId)) + removeComponentId(componentId) }) Navigation.events().registerAppLaunchedListener(() => { console.log('Register app launched listener') - callback() + void callback() }) } diff --git a/src/navigation/navigation.js b/src/navigation/navigation.ts similarity index 77% rename from src/navigation/navigation.js rename to src/navigation/navigation.ts index 26b8df5..d8553c0 100644 --- a/src/navigation/navigation.js +++ b/src/navigation/navigation.ts @@ -9,13 +9,14 @@ import { // SETTING_SCREEN, } from './screenNames' -import { getter, getStore } from '@/store' +import themeState from '@/store/theme/state' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' -const store = getStore() -const getTheme = () => getter('common', 'theme')(store.getState()) -const getStatusBarStyle = () => getter('common', 'isDarkTheme')(store.getState()) ? 'light' : 'dark' +// const store = getStore() +// const getTheme = () => getter('common', 'theme')(store.getState()) +const getStatusBarStyle = (isDark: boolean) => isDark ? 'light' : 'dark' -export function pushHomeScreen() { +export async function pushHomeScreen() { /* Navigation.setDefaultOptions({ topBar: { @@ -49,7 +50,7 @@ export function pushHomeScreen() { }) */ - const theme = getTheme() + const theme = themeState.theme return Navigation.setRoot({ root: { stack: { @@ -65,15 +66,15 @@ export function pushHomeScreen() { statusBar: { drawBehind: true, visible: true, - style: getStatusBarStyle(), + style: getStatusBarStyle(theme.isDark), backgroundColor: 'transparent', }, navigationBar: { // visible: false, - backgroundColor: theme.primary, + backgroundColor: theme.isDark ? '#000' : '#fff', }, layout: { - componentBackgroundColor: theme.primary, + // componentBackgroundColor: theme.isDark ? '#000' : '#fff', }, }, }, @@ -82,7 +83,7 @@ export function pushHomeScreen() { }, }) } -export function pushPlayDetailScreen(componentId, id) { +export function pushPlayDetailScreen(componentId: string) { /* Navigation.setDefaultOptions({ topBar: { @@ -115,10 +116,10 @@ export function pushPlayDetailScreen(componentId, id) { }, }) */ - InteractionManager.runAfterInteractions(() => { - const theme = getTheme() + void InteractionManager.runAfterInteractions(() => { + const theme = themeState.theme - Navigation.push(componentId, { + void Navigation.push(componentId, { component: { name: PLAY_DETAIL_SCREEN, options: { @@ -130,28 +131,28 @@ export function pushPlayDetailScreen(componentId, id) { statusBar: { drawBehind: true, visible: true, - style: getStatusBarStyle(), + style: getStatusBarStyle(theme.isDark), backgroundColor: 'transparent', }, navigationBar: { // visible: false, - backgroundColor: theme.primary, + backgroundColor: theme.isDark ? '#000' : '#fff', }, layout: { - componentBackgroundColor: theme.primary, + componentBackgroundColor: theme.isDark ? '#000' : '#fff', }, animations: { push: { sharedElementTransitions: [ { - fromId: `pic${id}`, - toId: `pic${id}Dest`, + fromId: NAV_SHEAR_NATIVE_IDS.playDetail_pic, + toId: NAV_SHEAR_NATIVE_IDS.playDetail_pic, interpolation: { type: 'spring' }, }, ], elementTransitions: [ { - id: 'header', + id: NAV_SHEAR_NATIVE_IDS.playDetail_header, alpha: { from: 0, // We don't declare 'to' value as that is the element's current alpha value, here we're essentially animating from 0 to 1 duration: 300, @@ -162,7 +163,7 @@ export function pushPlayDetailScreen(componentId, id) { }, }, { - id: 'pageIndicator', + id: NAV_SHEAR_NATIVE_IDS.playDetail_pageIndicator, alpha: { from: 0, // We don't declare 'to' value as that is the element's current alpha value, here we're essentially animating from 0 to 1 duration: 300, @@ -173,7 +174,7 @@ export function pushPlayDetailScreen(componentId, id) { }, }, { - id: 'player', + id: NAV_SHEAR_NATIVE_IDS.playDetail_player, alpha: { from: 0, // We don't declare 'to' value as that is the element's current alpha value, here we're essentially animating from 0 to 1 duration: 300, @@ -207,10 +208,11 @@ export function pushPlayDetailScreen(componentId, id) { }) }) } -export function pushSonglistDetailScreen(componentId, id) { - const theme = getTheme() - InteractionManager.runAfterInteractions(() => { - Navigation.push(componentId, { +export function pushSonglistDetailScreen(componentId: string, id: string) { + const theme = themeState.theme + + void InteractionManager.runAfterInteractions(() => { + void Navigation.push(componentId, { component: { name: SONGLIST_DETAIL_SCREEN, options: { @@ -222,28 +224,28 @@ export function pushSonglistDetailScreen(componentId, id) { statusBar: { drawBehind: true, visible: true, - style: getStatusBarStyle(), + style: getStatusBarStyle(theme.isDark), backgroundColor: 'transparent', }, navigationBar: { // visible: false, - backgroundColor: theme.primary, + backgroundColor: theme.isDark ? '#000' : '#fff', }, layout: { - componentBackgroundColor: theme.primary, + componentBackgroundColor: theme.isDark ? '#000' : '#fff', }, animations: { push: { sharedElementTransitions: [ { - fromId: `pic${id}`, - toId: `pic${id}Dest`, + fromId: `${NAV_SHEAR_NATIVE_IDS.songlistDetail_pic}_from_${id}`, + toId: `${NAV_SHEAR_NATIVE_IDS.songlistDetail_pic}_to_${id}`, interpolation: { type: 'spring' }, }, ], elementTransitions: [ { - id: 'title', + id: NAV_SHEAR_NATIVE_IDS.songlistDetail_title, alpha: { from: 0, // We don't declare 'to' value as that is the element's current alpha value, here we're essentially animating from 0 to 1 duration: 300, @@ -275,14 +277,14 @@ export function pushSonglistDetailScreen(componentId, id) { pop: { sharedElementTransitions: [ { - fromId: `pic${id}Dest`, - toId: `pic${id}`, + fromId: `${NAV_SHEAR_NATIVE_IDS.songlistDetail_pic}_to_${id}`, + toId: `${NAV_SHEAR_NATIVE_IDS.songlistDetail_pic}_from_${id}`, interpolation: { type: 'spring' }, }, ], elementTransitions: [ { - id: 'title', + id: NAV_SHEAR_NATIVE_IDS.songlistDetail_title, alpha: { to: 0, // We don't declare 'to' value as that is the element's current alpha value, here we're essentially animating from 0 to 1 duration: 300, @@ -307,7 +309,7 @@ export function pushSonglistDetailScreen(componentId, id) { }) }) } -export function pushCommentScreen(componentId) { +export function pushCommentScreen(componentId: string) { /* Navigation.setDefaultOptions({ topBar: { @@ -340,9 +342,10 @@ export function pushCommentScreen(componentId) { }, }) */ - InteractionManager.runAfterInteractions(() => { - const theme = getTheme() - Navigation.push(componentId, { + void InteractionManager.runAfterInteractions(() => { + const theme = themeState.theme + + void Navigation.push(componentId, { component: { name: COMMENT_SCREEN, options: { @@ -354,15 +357,15 @@ export function pushCommentScreen(componentId) { statusBar: { drawBehind: true, visible: true, - style: getStatusBarStyle(), + style: getStatusBarStyle(theme.isDark), backgroundColor: 'transparent', }, navigationBar: { // visible: false, - backgroundColor: theme.primary, + backgroundColor: theme.isDark ? '#000' : '#fff', }, layout: { - componentBackgroundColor: theme.primary, + componentBackgroundColor: theme.isDark ? '#000' : '#fff', }, animations: { push: { @@ -390,7 +393,7 @@ export function pushCommentScreen(componentId) { }) } -// export function pushSettingScreen(componentId) { +// export function pushSettingScreen(componentId: string) { // /* // Navigation.setDefaultOptions({ // topBar: { @@ -423,46 +426,57 @@ export function pushCommentScreen(componentId) { // }, // }) // */ +// void InteractionManager.runAfterInteractions(() => { +// const theme = themeState.theme -// Navigation.push(componentId, { -// component: { -// name: SETTING_SCREEN, -// options: { -// topBar: { -// visible: false, -// height: 0, -// drawBehind: false, -// }, -// statusBar: { -// drawBehind: true, -// visible: true, -// style: getStatusBarStyle(), -// backgroundColor: 'transparent', -// }, -// animations: { -// push: { -// content: { -// translationX: { -// from: Dimensions.get('window').width, -// to: 0, -// duration: 300, +// void Navigation.push(componentId, { +// component: { +// name: SETTING_SCREEN, +// options: { +// topBar: { +// visible: false, +// height: 0, +// drawBehind: false, +// }, +// statusBar: { +// drawBehind: true, +// visible: true, +// style: getStatusBarStyle(theme.isDark), +// backgroundColor: 'transparent', +// }, +// navigationBar: { +// // visible: false, +// backgroundColor: theme.isDark ? '#000' : '#fff', +// }, +// layout: { +// componentBackgroundColor: theme.isDark ? '#000' : '#fff', +// }, +// animations: { +// push: { +// content: { +// translationX: { +// from: Dimensions.get('window').width, +// to: 0, +// duration: 300, +// }, // }, // }, -// }, -// pop: { -// content: { -// translationX: { -// from: 0, -// to: Dimensions.get('window').width, -// duration: 300, +// pop: { +// content: { +// translationX: { +// from: 0, +// to: Dimensions.get('window').width, +// duration: 300, +// }, // }, // }, // }, // }, // }, -// }, +// }) // }) // } + /* export function pushSingleScreenApp() { Navigation.setRoot({ diff --git a/src/navigation/registerScreens.js b/src/navigation/registerScreens.tsx similarity index 84% rename from src/navigation/registerScreens.js rename to src/navigation/registerScreens.tsx index b7988a5..907ac33 100644 --- a/src/navigation/registerScreens.js +++ b/src/navigation/registerScreens.tsx @@ -10,7 +10,7 @@ import { Comment, // Setting, } from '@/screens' -import { Provider } from '@/store' +import { Provider } from '@/store/Provider' import { HOME_SCREEN, @@ -24,8 +24,8 @@ import { import VersionModal from './components/VersionModal' import PactModal from './components/PactModal' -function WrappedComponent(Component) { - return function inject(props) { +function WrappedComponent(Component: any) { + return function inject(props: Record<string, any>) { const EnhancedComponent = () => ( <Provider> <Component @@ -45,6 +45,7 @@ export default () => { Navigation.registerComponent(COMMENT_SCREEN, () => WrappedComponent(Comment)) Navigation.registerComponent(VERSION_MODAL, () => WrappedComponent(VersionModal)) Navigation.registerComponent(PACT_MODAL, () => WrappedComponent(PactModal)) + // Navigation.registerComponent(SETTING_SCREEN, () => WrappedComponent(Setting)) console.info('All screens have been registered...') } diff --git a/src/navigation/screenNames.js b/src/navigation/screenNames.ts similarity index 100% rename from src/navigation/screenNames.js rename to src/navigation/screenNames.ts index 8899781..20e3ddf 100644 --- a/src/navigation/screenNames.js +++ b/src/navigation/screenNames.ts @@ -4,6 +4,6 @@ export const SONGLIST_DETAIL_SCREEN = 'lxm.SonglistDetailScreen' export const COMMENT_SCREEN = 'lxm.CommentScreen' export const VERSION_MODAL = 'lxm.VersionModal' export const PACT_MODAL = 'lxm.PactModal' -// export const TOAST_SCREEN = 'lxm.ToastScreen' // export const SETTING_SCREEN = 'lxm.SettingScreen' +// export const TOAST_SCREEN = 'lxm.ToastScreen' diff --git a/src/navigation/utils.js b/src/navigation/utils.ts similarity index 76% rename from src/navigation/utils.js rename to src/navigation/utils.ts index cd38868..10293ab 100644 --- a/src/navigation/utils.js +++ b/src/navigation/utils.ts @@ -1,19 +1,18 @@ import { Navigation } from 'react-native-navigation' import { VERSION_MODAL, PACT_MODAL } from './screenNames' +import themeState from '@/store/theme/state' -import { getter, getStore } from '@/store' -const store = getStore() -const getStatusBarStyle = () => getter('common', 'isDarkTheme')(store.getState()) ? 'light' : 'dark' +export const getStatusBarStyle = (isDark: boolean) => isDark ? 'light' : 'dark' -export const dismissOverlay = compId => Navigation.dismissOverlay(compId) +export const dismissOverlay = async(compId: string) => Navigation.dismissOverlay(compId) -export const pop = compId => Navigation.pop(compId) -export const popToRoot = compId => Navigation.popToRoot(compId) -export const popTo = compId => Navigation.popTo(compId) +export const pop = async(compId: string) => Navigation.pop(compId) +export const popToRoot = async(compId: string) => Navigation.popToRoot(compId) +export const popTo = async(compId: string) => Navigation.popTo(compId) export const showPactModal = () => { - Navigation.showOverlay({ + void Navigation.showOverlay({ component: { name: PACT_MODAL, options: { @@ -26,9 +25,8 @@ export const showPactModal = () => { statusBar: { drawBehind: true, visible: true, - style: getStatusBarStyle(), + style: getStatusBarStyle(themeState.theme.isDark), backgroundColor: 'transparent', - animate: true, }, // animations: { @@ -57,7 +55,7 @@ export const showPactModal = () => { } export const showVersionModal = () => { - Navigation.showOverlay({ + void Navigation.showOverlay({ component: { name: VERSION_MODAL, options: { @@ -70,9 +68,9 @@ export const showVersionModal = () => { statusBar: { drawBehind: true, visible: true, - style: getStatusBarStyle(), + style: getStatusBarStyle(themeState.theme.isDark), backgroundColor: 'transparent', - animate: true, + // animate: true, }, // animations: { diff --git a/src/plugins/i18n.js b/src/plugins/i18n.js deleted file mode 100644 index d0186f8..0000000 --- a/src/plugins/i18n.js +++ /dev/null @@ -1,48 +0,0 @@ -import i18n from 'i18next' -import { useTranslation, initReactI18next } from 'react-i18next' -import langs from '@/lang' - -const resources = {} -const supportedLngs = [] -const langList = [] -for (const { id, name, translation } of langs) { - resources[id] = { - id, - name, - translation, - } - langList.push({ - id, - name, - }) - supportedLngs.push(id) -} - -global.i18n = i18n - -// console.log(resources) -export const init = (lang = 'zh_cn') => { - return i18n - .use(initReactI18next) // passes i18n down to react-i18next - .init({ - compatibilityJSON: 'v3', // https://www.i18next.com/misc/json-format - // debug: true, - resources, - lng: lang, - fallbackLng: 'en_us', - keySeparator: false, - lowerCaseLng: true, - interpolation: { - escapeValue: false, - }, - }) -} - -export const changeLanguage = lang => i18n.changeLanguage(lang) - -export { - useTranslation, - langList, - i18n, - supportedLngs, -} diff --git a/src/plugins/lyric.js b/src/plugins/lyric.ts similarity index 55% rename from src/plugins/lyric.js rename to src/plugins/lyric.ts index 89a4c9c..bbac42c 100644 --- a/src/plugins/lyric.js +++ b/src/plugins/lyric.ts @@ -1,20 +1,24 @@ import { useEffect, useState } from 'react' import Lyric from 'lrc-file-parser' // import { getStore, subscribe } from '@/store' +type Lines = Parameters<ConstructorParameters<typeof Lyric>[0]['onSetLyric']>['0'] +export type Line = Lines[number] +type PlayHook = (line: number, text: string) => void +type SetLyricHook = (lines: Lines) => void const lrcTools = { isInited: false, - lrc: null, + lrc: null as Lyric | null, currentLineData: { line: 0, text: '' }, - currentLines: [], - playHooks: [], - setLyricHooks: [], + currentLines: [] as Lines, + playHooks: [] as PlayHook[], + setLyricHooks: [] as SetLyricHook[], isPlay: false, isShowTranslation: false, isShowRoma: false, lyricText: '', - translationText: '', - romaText: '', + translationText: '' as string | null | undefined, + romaText: '' as string | null | undefined, init() { if (this.isInited) return this.isInited = true @@ -24,36 +28,36 @@ const lrcTools = { offset: 100, // offset time(ms), default is 150 ms }) }, - onPlay(line, text) { + onPlay(line: number, text: string) { this.currentLineData.line = line // console.log(line) this.currentLineData.text = text for (const hook of this.playHooks) hook(line, text) }, - onSetLyric(lines) { + onSetLyric(lines: Lines) { this.currentLines = lines for (const hook of this.playHooks) hook(-1, '') for (const hook of this.setLyricHooks) hook(lines) }, - addPlayHook(callback) { - this.playHooks.push(callback) - callback(this.currentLineData.line, this.currentLineData.text) + addPlayHook(hook: PlayHook) { + this.playHooks.push(hook) + hook(this.currentLineData.line, this.currentLineData.text) }, - removePlayHook(callback) { - this.playHooks.splice(this.playHooks.indexOf(callback), 1) + removePlayHook(hook: PlayHook) { + this.playHooks.splice(this.playHooks.indexOf(hook), 1) }, - addSetLyricHook(callback) { - this.setLyricHooks.push(callback) - callback(this.currentLines) + addSetLyricHook(hook: SetLyricHook) { + this.setLyricHooks.push(hook) + hook(this.currentLines) }, - removeSetLyricHook(callback) { - this.setLyricHooks.splice(this.setLyricHooks.indexOf(callback), 1) + removeSetLyricHook(hook: SetLyricHook) { + this.setLyricHooks.splice(this.setLyricHooks.indexOf(hook), 1) }, setLyric() { - const extendedLyrics = [] + const extendedLyrics = [] as string[] if (this.isShowTranslation && this.translationText) extendedLyrics.push(this.translationText) if (this.isShowRoma && this.romaText) extendedLyrics.push(this.romaText) - this.lrc.setLyric(this.lyricText, extendedLyrics) + this.lrc!.setLyric(this.lyricText, extendedLyrics) }, } @@ -62,42 +66,43 @@ export const init = async() => { lrcTools.init() } -export const setLyric = (lyric, translation, romalrc) => { +export const setLyric = (lyric: string, translation?: string, romalrc?: string) => { lrcTools.isPlay = false lrcTools.lyricText = lyric lrcTools.translationText = translation lrcTools.romaText = romalrc lrcTools.setLyric() } -export const toggleTranslation = isShow => { +export const toggleTranslation = (isShow: boolean) => { lrcTools.isShowTranslation = isShow if (!lrcTools.lyricText) return lrcTools.setLyric() } -export const toggleRoma = isShow => { +export const toggleRoma = (isShow: boolean) => { lrcTools.isShowRoma = isShow if (!lrcTools.lyricText) return lrcTools.setLyric() } -export const play = time => { +export const play = (time: number) => { // console.log(time) lrcTools.isPlay = true - lrcTools.lrc.play(time) + lrcTools.lrc!.play(time) } export const pause = () => { // console.log('pause') lrcTools.isPlay = false - lrcTools.lrc.pause() + lrcTools.lrc!.pause() } // on lyric play hook -export const useLrcPlay = () => { - const [lrcInfo, setLrcInfo] = useState({ line: 0, text: '' }) +export const useLrcPlay = (autoUpdate = true) => { + const [lrcInfo, setLrcInfo] = useState(lrcTools.currentLineData) useEffect(() => { - const setLrcCallback = () => { + if (!autoUpdate) return + const setLrcCallback: SetLyricHook = () => { setLrcInfo({ line: 0, text: '' }) } - const playCallback = (line, text) => { + const playCallback: PlayHook = (line, text) => { setLrcInfo({ line, text }) } lrcTools.addSetLyricHook(setLrcCallback) @@ -106,21 +111,21 @@ export const useLrcPlay = () => { lrcTools.removeSetLyricHook(setLrcCallback) lrcTools.removePlayHook(playCallback) } - }, [setLrcInfo]) + }, [autoUpdate]) return lrcInfo } // on lyric set hook export const useLrcSet = () => { - const [lines, setLines] = useState([]) + const [lines, setLines] = useState<Lines>(lrcTools.currentLines) useEffect(() => { - const callback = lines => { + const callback = (lines: Lines) => { setLines(lines) } lrcTools.addSetLyricHook(callback) return () => lrcTools.removeSetLyricHook(callback) - }, [setLines]) + }, []) return lines } diff --git a/src/plugins/player/hook.js b/src/plugins/player/hook.ts similarity index 60% rename from src/plugins/player/hook.js rename to src/plugins/player/hook.ts index 7b22089..9088b13 100644 --- a/src/plugins/player/hook.js +++ b/src/plugins/player/hook.ts @@ -11,13 +11,13 @@ export const usePlaybackState = () => { setState(playerState) } - setPlayerState() + void setPlayerState() const sub = TrackPlayer.addEventListener(Event.PlaybackState, data => { setState(data.state) }) - return () => sub.remove() + return () => { sub.remove() } }, []) return state @@ -28,45 +28,45 @@ export const usePlaybackState = () => { * @param events - TrackPlayer events to subscribe to * @param handler - callback invoked when the event fires */ -export const useTrackPlayerEvents = (events, handler) => { - const savedHandler = useRef() +// export const useTrackPlayerEvents = (events, handler) => { +// const savedHandler = useRef() - useEffect(() => { - savedHandler.current = handler - }, [handler]) +// useEffect(() => { +// savedHandler.current = handler +// }, [handler]) - useEffect(() => { - // eslint-disable-next-line no-undef - if (__DEV__) { - const allowedTypes = Object.values(Event) - const invalidTypes = events.filter(type => !allowedTypes.includes(type)) - if (invalidTypes.length) { - console.warn( - 'One or more of the events provided to useTrackPlayerEvents is ' + - `not a valid TrackPlayer event: ${invalidTypes.join("', '")}. ` + - 'A list of available events can be found at ' + - 'https://react-native-kit.github.io/react-native-track-player/documentation/#events', - ) - } - } +// useEffect(() => { +// // eslint-disable-next-line no-undef +// if (__DEV__) { +// const allowedTypes = Object.values(Event) +// const invalidTypes = events.filter(type => !allowedTypes.includes(type)) +// if (invalidTypes.length) { +// console.warn( +// 'One or more of the events provided to useTrackPlayerEvents is ' + +// `not a valid TrackPlayer event: ${invalidTypes.join("', '")}. ` + +// 'A list of available events can be found at ' + +// 'https://react-native-kit.github.io/react-native-track-player/documentation/#events', +// ) +// } +// } - const subs = events.map(event => - TrackPlayer.addEventListener(event, payload => savedHandler.current({ ...payload, type: event })), - ) +// const subs = events.map(event => +// TrackPlayer.addEventListener(event, payload => savedHandler.current({ ...payload, type: event })), +// ) - return () => subs.forEach(sub => sub.remove()) - }, [events]) -} +// return () => subs.forEach(sub => sub.remove()) +// }, [events]) +// } const pollTrackPlayerStates = [ State.Playing, State.Buffering, -] +] as const /** * Poll for track progress for the given interval (in miliseconds) - * @param interval - ms interval + * @param updateInterval - ms interval */ -export function useProgress(updateInterval) { +export function useProgress(updateInterval: number) { const [state, setState] = useState({ position: 0, duration: 0, buffered: 0 }) const playerState = usePlaybackState() const stateRef = useRef(state) @@ -94,7 +94,6 @@ export function useProgress(updateInterval) { ) return const state = { position, duration, buffered } - // @ts-ignore stateRef.current = state setState(state) } @@ -102,10 +101,11 @@ export function useProgress(updateInterval) { useEffect(() => { if (!pollTrackPlayerStates.includes(playerState)) return - getProgress() + void getProgress() + // eslint-disable-next-line @typescript-eslint/no-misused-promises const poll = setInterval(getProgress, updateInterval || 1000) - return () => clearInterval(poll) + return () => { clearInterval(poll) } }, [playerState, updateInterval]) return state diff --git a/src/plugins/player/index.js b/src/plugins/player/index.ts similarity index 59% rename from src/plugins/player/index.js rename to src/plugins/player/index.ts index 3b966e9..e2dd121 100644 --- a/src/plugins/player/index.js +++ b/src/plugins/player/index.ts @@ -1,5 +1,4 @@ import TrackPlayer from 'react-native-track-player' -import service from './service' import { updateOptions } from './utils' // const listenEvent = () => { @@ -17,9 +16,9 @@ import { updateOptions } from './utils' // }) // } -const initial = async({ cacheSize, isHandleAudioFocus }) => { - if (global.playerStatus.isIniting || global.playerStatus.isInitialized) return - global.playerStatus.isIniting = true +const initial = async({ cacheSize, isHandleAudioFocus }: { cacheSize: number, isHandleAudioFocus: boolean }) => { + if (global.lx.playerStatus.isIniting || global.lx.playerStatus.isInitialized) return + global.lx.playerStatus.isIniting = true console.log('Cache Size', cacheSize * 1024) await TrackPlayer.setupPlayer({ maxCacheSize: cacheSize * 1024, @@ -28,25 +27,31 @@ const initial = async({ cacheSize, isHandleAudioFocus }) => { handleAudioFocus: isHandleAudioFocus, autoUpdateMetadata: false, }) - global.playerStatus.isInitialized = true - global.playerStatus.isIniting = false + global.lx.playerStatus.isInitialized = true + global.lx.playerStatus.isIniting = false await updateOptions() // listenEvent() } -const registerPlaybackService = async() => { - if (global.playerStatus.isRegisteredService) return - console.log('handle registerPlaybackService...') - await TrackPlayer.registerPlaybackService(() => service) - global.playerStatus.isRegisteredService = true -} - -const isInitialized = () => global.playerStatus.isInitialized +const isInitialized = () => global.lx.playerStatus.isInitialized export { - registerPlaybackService, initial, isInitialized, } + +export { + setResource, + setPause, + setPlay, + setCurrentTime, + getDuration, + setStop, + resetPlay, + getPosition, + updateMetaData, + onStateChange, + isEmpty, +} from './utils' diff --git a/src/plugins/player/playList.js b/src/plugins/player/playList.js deleted file mode 100644 index a0592ed..0000000 --- a/src/plugins/player/playList.js +++ /dev/null @@ -1,238 +0,0 @@ -import TrackPlayer, { State } from 'react-native-track-player' -import BackgroundTimer from 'react-native-background-timer' -import { defaultUrl } from '@/config' -import { getStore } from '@/store' -import { action as playerAction } from '@/store/modules/player' - -const store = getStore() -const list = [] - -const defaultUserAgent = 'Mozilla/5.0 (Linux; Android 10; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Mobile Safari/537.36' -const httpRxp = /^(https?:\/\/.+|\/.+)/ - -export const buildTracks = ({ musicInfo, type, url, duration }) => { - const track = [] - const isShowNotificationImage = store.getState().common.setting.player.isShowNotificationImage - if (url) { - track.push({ - id: `${musicInfo.source}__//${musicInfo.songmid}__//${type}__//${Math.random()}__//${url}`, - url, - title: musicInfo.name || 'Unknow', - artist: musicInfo.singer || 'Unknow', - album: musicInfo.albumName || null, - artwork: isShowNotificationImage && httpRxp.test(musicInfo.img) ? musicInfo.img : null, - userAgent: defaultUserAgent, - musicId: `${musicInfo.source}__//${musicInfo.songmid}__//${type}`, - original: { ...musicInfo }, - duration, - type, - }) - } - track.push({ - id: `${musicInfo.source}__//${musicInfo.songmid}__//${type}__//${Math.random()}__//default`, - url: defaultUrl, - title: musicInfo.name || 'Unknow', - artist: musicInfo.singer || 'Unknow', - album: musicInfo.albumName || null, - artwork: isShowNotificationImage && httpRxp.test(musicInfo.img) ? musicInfo.img : null, - musicId: `${musicInfo.source}__//${musicInfo.songmid}__//${type}`, - original: { ...musicInfo }, - duration: 0, - type, - }) - return track - // console.log('buildTrack', musicInfo.name, url) -} -export const buildTrack = ({ musicInfo, type, url, duration }) => { - const isShowNotificationImage = store.getState().common.setting.player.isShowNotificationImage - return url - ? { - id: `${musicInfo.source}__//${musicInfo.songmid}__//${type}__//${Math.random()}__//${url}`, - url, - title: musicInfo.name || 'Unknow', - artist: musicInfo.singer || 'Unknow', - album: musicInfo.albumName || null, - artwork: isShowNotificationImage && httpRxp.test(musicInfo.img) ? musicInfo.img : null, - userAgent: defaultUserAgent, - musicId: `${musicInfo.source}__//${musicInfo.songmid}__//${type}`, - original: { ...musicInfo }, - duration, - type, - } - : { - id: `${musicInfo.source}__//${musicInfo.songmid}__//${type}__//${Math.random()}__//default`, - url: defaultUrl, - title: musicInfo.name || 'Unknow', - artist: musicInfo.singer || 'Unknow', - album: musicInfo.albumName || null, - artwork: isShowNotificationImage && httpRxp.test(musicInfo.img) ? musicInfo.img : null, - musicId: `${musicInfo.source}__//${musicInfo.songmid}__//${type}`, - original: { ...musicInfo }, - duration: 0, - type, - } -} - -export const isTempTrack = trackId => /\/\/default$/.test(trackId) - - -export const getCurrentTrackId = async() => { - const currentTrackIndex = await TrackPlayer.getCurrentTrack() - return list[currentTrackIndex]?.id -} -export const getCurrentTrack = async() => { - const currentTrackIndex = await TrackPlayer.getCurrentTrack() - return list[currentTrackIndex] -} - -export const playMusic = async(tracks, time) => { - // console.log(tracks, time) - const track = tracks[0] - // await updateMusicInfo(track) - const currentTrackIndex = await TrackPlayer.getCurrentTrack() - await TrackPlayer.add(tracks).then(() => list.push(...tracks)) - const queue = await TrackPlayer.getQueue() - await TrackPlayer.skip(queue.findIndex(t => t.id == track.id)) - - if (currentTrackIndex == null) { - if (!isTempTrack(track.id)) { - if (time) await TrackPlayer.seekTo(time) - if (global.restorePlayInfo) { - await TrackPlayer.pause() - let startupAutoPlay = global.restorePlayInfo.startupAutoPlay - global.restorePlayInfo = null - - if (startupAutoPlay) store.dispatch(playerAction.playMusic()) - } else { - await TrackPlayer.play() - } - } - } else { - await TrackPlayer.pause() - if (!isTempTrack(track.id)) { - await TrackPlayer.seekTo(time) - await TrackPlayer.play() - } - } - - if (queue.length > 2) { - TrackPlayer.remove(Array(queue.length - 2).fill(null).map((_, i) => i)).then(() => list.splice(0, list.length - 2)) - } -} - -// let musicId = null -// let duration = 0 -// let artwork = null -export const updateMetaInfo = async track => { - const isShowNotificationImage = store.getState().common.setting.player.isShowNotificationImage - // console.log('+++++updateMusicPic+++++', track.artwork, track.duration) - - // if (track.musicId == musicId) { - // if (global.playInfo.musicInfo.img != null) artwork = global.playInfo.musicInfo.img - // if (track.duration != null) duration = global.playInfo.duration - // } else { - // musicId = track.musicId - // artwork = global.playInfo.musicInfo.img - // duration = global.playInfo.duration || 0 - // } - // console.log(global.playInfo) - global.playInfo.isPlaying = await TrackPlayer.getState() == State.Playing - await TrackPlayer.updateNowPlayingMetadata({ - title: track.title || 'Unknow', - artist: track.artist || 'Unknow', - album: track.album || null, - artwork: isShowNotificationImage ? global.playInfo?.currentPlayMusicInfo?.img ?? null : null, - duration: global.playInfo?.duration || 0, - }, global.playInfo?.isPlaying) -} - - -// 解决快速切歌导致的通知栏歌曲信息与当前播放歌曲对不上的问题 -const debounceUpdateMetaInfoTools = { - updateMetaPromise: Promise.resolve(), - track: null, - debounce(fn) { - // let delayTimer = null - let isDelayRun = false - let timer = null - let _track = null - return track => { - // console.log('debounceUpdateMetaInfoTools', track.duration, track.artwork) - if (timer) { - BackgroundTimer.clearTimeout(timer) - timer = null - } - // if (delayTimer) { - // BackgroundTimer.clearTimeout(delayTimer) - // delayTimer = null - // } - if (isDelayRun) { - _track = track - timer = BackgroundTimer.setTimeout(() => { - timer = null - let track = _track - _track = null - // isDelayRun = false - fn(track) - }, 1200) - } else { - isDelayRun = true - fn(track) - BackgroundTimer.setTimeout(() => { - // delayTimer = null - isDelayRun = false - }, 1200) - } - } - }, - init() { - return this.debounce(track => { - this.track = track - return this.updateMetaPromise.then(() => { - // console.log('run') - if (this.track.id === track.id) { - this.updateMetaPromise = updateMetaInfo(track) - } - }) - }) - }, -} - -export const delayUpdateMusicInfo = debounceUpdateMetaInfoTools.init() - -// export const delayUpdateMusicInfo = ((fn, delay = 800) => { -// let delayTimer = null -// let isDelayRun = false -// let timer = null -// let _track = null -// return track => { -// _track = track -// if (timer) { -// BackgroundTimer.clearTimeout(timer) -// timer = null -// } -// if (isDelayRun) { -// if (delayTimer) { -// BackgroundTimer.clearTimeout(delayTimer) -// delayTimer = null -// } -// timer = BackgroundTimer.setTimeout(() => { -// timer = null -// let track = _track -// _track = null -// isDelayRun = false -// fn(track) -// }, delay) -// } else { -// isDelayRun = true -// fn(track) -// delayTimer = BackgroundTimer.setTimeout(() => { -// delayTimer = null -// isDelayRun = false -// }, 500) -// } -// } -// })(track => { -// console.log('+++++delayUpdateMusicPic+++++', track.artwork) -// updateMetaInfo(track) -// }) diff --git a/src/plugins/player/playList.ts b/src/plugins/player/playList.ts new file mode 100644 index 0000000..fbb9cb7 --- /dev/null +++ b/src/plugins/player/playList.ts @@ -0,0 +1,283 @@ +import TrackPlayer, { State } from 'react-native-track-player' +import BackgroundTimer from 'react-native-background-timer' +import { defaultUrl } from '@/config' +// import { action as playerAction } from '@/store/modules/player' +import settingState from '@/store/setting/state' + + +const list: LX.Player.Track[] = [] + +const defaultUserAgent = 'Mozilla/5.0 (Linux; Android 10; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Mobile Safari/537.36' +const httpRxp = /^(https?:\/\/.+|\/.+)/ + +let isPlaying = false +let prevDuration = -1 + +const formatMusicInfo = (musicInfo: LX.Player.PlayMusic) => { + return 'progress' in musicInfo ? { + id: musicInfo.id, + pic: musicInfo.metadata.musicInfo.meta.picUrl, + name: musicInfo.metadata.musicInfo.name, + singer: musicInfo.metadata.musicInfo.singer, + album: musicInfo.metadata.musicInfo.meta.albumName, + } : { + id: musicInfo.id, + pic: musicInfo.meta.picUrl, + name: musicInfo.name, + singer: musicInfo.singer, + album: musicInfo.meta.albumName, + } +} + +const buildTracks = (musicInfo: LX.Player.PlayMusic, url: LX.Player.Track['url'], duration?: LX.Player.Track['duration']): LX.Player.Track[] => { + const mInfo = formatMusicInfo(musicInfo) + const track = [] as LX.Player.Track[] + const isShowNotificationImage = settingState.setting['player.isShowNotificationImage'] + const album = mInfo.album || undefined + const artwork = isShowNotificationImage && mInfo.pic && httpRxp.test(mInfo.pic) ? mInfo.pic : undefined + if (url) { + track.push({ + id: `${mInfo.id}__//${Math.random()}__//${url}`, + url, + title: mInfo.name || 'Unknow', + artist: mInfo.singer || 'Unknow', + album, + artwork, + userAgent: defaultUserAgent, + musicId: mInfo.id, + original: { ...musicInfo }, + duration, + }) + } + track.push({ + id: `${mInfo.id}__//${Math.random()}__//default`, + url: defaultUrl, + title: mInfo.name || 'Unknow', + artist: mInfo.singer || 'Unknow', + album, + artwork, + musicId: mInfo.id, + original: { ...musicInfo }, + duration: 0, + }) + return track + // console.log('buildTrack', musicInfo.name, url) +} +// const buildTrack = (musicInfo: LX.Player.PlayMusic, url: LX.Player.Track['url'], duration?: LX.Player.Track['duration']): LX.Player.Track => { +// const mInfo = formatMusicInfo(musicInfo) +// const isShowNotificationImage = settingState.setting['player.isShowNotificationImage'] +// const album = mInfo.album || undefined +// const artwork = isShowNotificationImage && mInfo.pic && httpRxp.test(mInfo.pic) ? mInfo.pic : undefined +// return url +// ? { +// id: `${mInfo.id}__//${Math.random()}__//${url}`, +// url, +// title: mInfo.name || 'Unknow', +// artist: mInfo.singer || 'Unknow', +// album, +// artwork, +// userAgent: defaultUserAgent, +// musicId: `${mInfo.id}`, +// original: { ...musicInfo }, +// duration, +// } +// : { +// id: `${mInfo.id}__//${Math.random()}__//default`, +// url: defaultUrl, +// title: mInfo.name || 'Unknow', +// artist: mInfo.singer || 'Unknow', +// album, +// artwork, +// musicId: `${mInfo.id}`, +// original: { ...musicInfo }, +// duration: 0, +// } +// } + +export const isTempTrack = (trackId: string) => /\/\/default$/.test(trackId) + + +export const getCurrentTrackId = async() => { + const currentTrackIndex = await TrackPlayer.getCurrentTrack() + return list[currentTrackIndex]?.id +} +export const getCurrentTrack = async() => { + const currentTrackIndex = await TrackPlayer.getCurrentTrack() + return list[currentTrackIndex] +} + +export const updateMetaData = async(musicInfo: LX.Player.MusicInfo, isPlay: boolean) => { + if (isPlay == isPlaying) { + const duration = await TrackPlayer.getDuration() + // console.log('currentIsPlaying', prevDuration, duration) + if (prevDuration != duration) { + prevDuration = duration + const trackInfo = await getCurrentTrack() + if (trackInfo && musicInfo) { + delayUpdateMusicInfo(musicInfo) + } + } + } else { + const [duration, trackInfo] = await Promise.all([TrackPlayer.getDuration(), getCurrentTrack()]) + prevDuration = duration + if (trackInfo && musicInfo) { + delayUpdateMusicInfo(musicInfo) + } + } +} + +export const playMusic = async(musicInfo: LX.Player.PlayMusic, url: string, time: number) => { + // console.log(tracks, time) + const tracks = buildTracks(musicInfo, url) + const track = tracks[0] + // await updateMusicInfo(track) + const currentTrackIndex = await TrackPlayer.getCurrentTrack() + await TrackPlayer.add(tracks).then(() => list.push(...tracks)) + const queue = await TrackPlayer.getQueue() as LX.Player.Track[] + await TrackPlayer.skip(queue.findIndex(t => t.id == track.id)) + + if (currentTrackIndex == null) { + if (!isTempTrack(track.id)) { + if (time) await TrackPlayer.seekTo(time) + if (global.lx.restorePlayInfo) { + await TrackPlayer.pause() + // let startupAutoPlay = settingState.setting['player.startupAutoPlay'] + global.lx.restorePlayInfo = null + + // TODO startupAutoPlay + // if (startupAutoPlay) store.dispatch(playerAction.playMusic()) + } else { + await TrackPlayer.play() + } + } + } else { + await TrackPlayer.pause() + if (!isTempTrack(track.id)) { + await TrackPlayer.seekTo(time) + await TrackPlayer.play() + } + } + + if (queue.length > 2) { + void TrackPlayer.remove(Array(queue.length - 2).fill(null).map((_, i) => i)).then(() => list.splice(0, list.length - 2)) + } +} + +// let musicId = null +// let duration = 0 +// let artwork = null +const updateMetaInfo = async(mInfo: LX.Player.MusicInfo) => { + const isShowNotificationImage = settingState.setting['player.isShowNotificationImage'] + // const mInfo = formatMusicInfo(musicInfo) + // console.log('+++++updateMusicPic+++++', track.artwork, track.duration) + + // if (track.musicId == musicId) { + // if (global.playInfo.musicInfo.img != null) artwork = global.playInfo.musicInfo.img + // if (track.duration != null) duration = global.playInfo.duration + // } else { + // musicId = track.musicId + // artwork = global.playInfo.musicInfo.img + // duration = global.playInfo.duration || 0 + // } + // console.log('+++++updateMetaInfo+++++', mInfo.name) + isPlaying = await TrackPlayer.getState() == State.Playing + await TrackPlayer.updateNowPlayingMetadata({ + title: mInfo.name ?? 'Unknow', + artist: mInfo.singer ?? 'Unknow', + album: mInfo.album ?? undefined, + artwork: isShowNotificationImage ? mInfo.pic ?? undefined : undefined, + duration: prevDuration || 0, + }, isPlaying) +} + + +// 解决快速切歌导致的通知栏歌曲信息与当前播放歌曲对不上的问题 +const debounceUpdateMetaInfoTools = { + updateMetaPromise: Promise.resolve(), + musicInfo: null as LX.Player.MusicInfo | null, + debounce(fn: (musicInfo: LX.Player.MusicInfo) => void | Promise<void>) { + // let delayTimer = null + let isDelayRun = false + let timer: number | null = null + let _musicInfo: LX.Player.MusicInfo | null = null + return (musicInfo: LX.Player.MusicInfo) => { + // console.log('debounceUpdateMetaInfoTools', musicInfo) + if (timer) { + BackgroundTimer.clearTimeout(timer) + timer = null + } + // if (delayTimer) { + // BackgroundTimer.clearTimeout(delayTimer) + // delayTimer = null + // } + if (isDelayRun) { + _musicInfo = musicInfo + timer = BackgroundTimer.setTimeout(() => { + timer = null + let musicInfo = _musicInfo + _musicInfo = null + if (!musicInfo) return + // isDelayRun = false + void fn(musicInfo) + }, 1200) + } else { + isDelayRun = true + void fn(musicInfo) + BackgroundTimer.setTimeout(() => { + // delayTimer = null + isDelayRun = false + }, 1200) + } + } + }, + init() { + return this.debounce(async(musicInfo: LX.Player.MusicInfo) => { + this.musicInfo = musicInfo + return this.updateMetaPromise.then(() => { + // console.log('run') + if (this.musicInfo?.id === musicInfo.id) { + this.updateMetaPromise = updateMetaInfo(musicInfo) + } + }) + }) + }, +} + +export const delayUpdateMusicInfo = debounceUpdateMetaInfoTools.init() + +// export const delayUpdateMusicInfo = ((fn, delay = 800) => { +// let delayTimer = null +// let isDelayRun = false +// let timer = null +// let _track = null +// return track => { +// _track = track +// if (timer) { +// BackgroundTimer.clearTimeout(timer) +// timer = null +// } +// if (isDelayRun) { +// if (delayTimer) { +// BackgroundTimer.clearTimeout(delayTimer) +// delayTimer = null +// } +// timer = BackgroundTimer.setTimeout(() => { +// timer = null +// let track = _track +// _track = null +// isDelayRun = false +// fn(track) +// }, delay) +// } else { +// isDelayRun = true +// fn(track) +// delayTimer = BackgroundTimer.setTimeout(() => { +// delayTimer = null +// isDelayRun = false +// }, 500) +// } +// } +// })(track => { +// console.log('+++++delayUpdateMusicPic+++++', track.artwork) +// updateMetaInfo(track) +// }) diff --git a/src/plugins/player/service.js b/src/plugins/player/service.js deleted file mode 100644 index d48dff2..0000000 --- a/src/plugins/player/service.js +++ /dev/null @@ -1,266 +0,0 @@ -import TrackPlayer, { State as TPState, Event as TPEvent } from 'react-native-track-player' -import { getStore } from '@/store' -import { action as playerAction, STATUS } from '@/store/modules/player' -import { isTempId, isEmpty } from './utils' -import { play as lrcPlay, pause as lrcPause } from '@/utils/lyric' -import { exitApp } from '@/utils/common' -import { getCurrentTrackId, getCurrentTrack, delayUpdateMusicInfo, buildTrack } from './playList' - -const store = getStore() - -let isInitialized = false - -let retryTrack = null -let retryGetUrlId = null -let retryGetUrlNum = 0 -let errorTime = 0 -// let prevDuration = 0 -// let isPlaying = false - -// 销毁播放器并退出 -const handleExitApp = async() => { - global.isPlayedExit = false - exitApp() -} - -const updateMetaData = async isPlaying => { - if (isPlaying == global.playInfo.isPlaying) { - const duration = await TrackPlayer.getDuration() - // console.log('currentIsPlaying', global.playInfo.duration, duration) - if (global.playInfo.duration != duration) { - global.playInfo.duration = duration - const trackInfo = await getCurrentTrack() - if (trackInfo && global.playInfo.currentPlayMusicInfo) { - delayUpdateMusicInfo(buildTrack({ musicInfo: global.playInfo.currentPlayMusicInfo, type: trackInfo.type, url: trackInfo.url, duration })) - } - } - } else { - const [duration, trackInfo] = await Promise.all([TrackPlayer.getDuration(), getCurrentTrack()]) - global.playInfo.duration = duration - if (trackInfo && global.playInfo.currentPlayMusicInfo) { - delayUpdateMusicInfo(buildTrack({ musicInfo: global.playInfo.currentPlayMusicInfo, type: trackInfo.type, url: trackInfo.url, duration })) - } - } -} - -export default async() => { - if (isInitialized) return - - console.log('reg services...') - TrackPlayer.addEventListener(TPEvent.RemotePlay, () => { - // console.log('remote-play') - // TrackPlayer.play() - store.dispatch(playerAction.playMusic()) - }) - - TrackPlayer.addEventListener(TPEvent.RemotePause, () => { - console.log('remote-pause') - store.dispatch(playerAction.pauseMusic()) - // TrackPlayer.pause() - }) - - TrackPlayer.addEventListener(TPEvent.RemoteNext, () => { - console.log('remote-next') - store.dispatch(playerAction.playNext()) - // TrackPlayer.skipToNext() - }) - - TrackPlayer.addEventListener(TPEvent.RemotePrevious, () => { - console.log('remote-previous') - store.dispatch(playerAction.playPrev()) - // TrackPlayer.skipToPrevious() - }) - - TrackPlayer.addEventListener(TPEvent.RemoteStop, async() => { - console.log('remote-stop') - handleExitApp() - }) - - // TrackPlayer.addEventListener(TPEvent.RemoteDuck, async({ permanent, paused, ducking }) => { - // console.log('remote-duck') - // if (paused) { - // store.dispatch(playerAction.setStatus({ status: STATUS.pause, text: '已暂停' })) - // lrcPause() - // } else { - // store.dispatch(playerAction.setStatus({ status: STATUS.playing, text: '播放中...' })) - // TrackPlayer.getPosition().then(position => { - // lrcPlay(position * 1000) - // }) - // } - // }) - - TrackPlayer.addEventListener(TPEvent.PlaybackError, async err => { - console.log('playback-error', err) - // console.log((await TrackPlayer.getQueue())) - lrcPause() - if (!retryTrack) errorTime = await TrackPlayer.getPosition() - retryTrack = await getCurrentTrack() - await TrackPlayer.skipToNext() - }) - - TrackPlayer.addEventListener(TPEvent.RemoteSeek, async({ position }) => { - // console.log(position) - store.dispatch(playerAction.setProgress(position)) - }) - - TrackPlayer.addEventListener(TPEvent.PlaybackState, async info => { - const state = store.getState() - // console.log('playback-state', TPState[info.state]) - - // console.log((await getCurrentTrack())?.id) - if (state.player.isGettingUrl) return - if (isTempId()) return - let currentIsPlaying = false - - switch (info.state) { - case TPState.None: - // console.log('state', 'State.NONE') - break - case TPState.Ready: - // console.log('state', 'State.READY') - // store.dispatch(playerAction.setStatus({ status: STATUS.pause, text: '已暂停' })) - lrcPause() - break - case TPState.Playing: - retryTrack = null - // console.log('state', 'State.PLAYING') - store.dispatch(playerAction.setStatus({ status: STATUS.playing, text: '播放中...' })) - TrackPlayer.getPosition().then(position => { - lrcPlay(position * 1000) - }) - currentIsPlaying = true - break - case TPState.Paused: - // console.log('state', 'State.PAUSED') - store.dispatch(playerAction.setStatus({ status: STATUS.pause, text: '已暂停' })) - lrcPause() - break - case TPState.Stopped: - switch (state.player.status) { - case STATUS.none: - break - - default: - store.dispatch(playerAction.setStatus({ status: STATUS.stop, text: '已停止' })) - break - } - // console.log('state', 'State.STOPPED') - lrcPause() - break - case TPState.Buffering: - store.dispatch(playerAction.setStatus({ status: STATUS.buffering, text: '缓冲中...' })) - // console.log('state', 'State.BUFFERING') - lrcPause() - break - case TPState.Connecting: - switch (state.player.status) { - case STATUS.none: - case STATUS.pause: - case STATUS.stop: - break - - default: - store.dispatch(playerAction.setStatus({ text: '加载中...' })) - break - } - lrcPause() - // console.log('state', 'State.CONNECTING') - break - - default: - console.log('playback-state', info) - break - } - if (global.isPlayedExit) return handleExitApp() - - // console.log('currentIsPlaying', currentIsPlaying, global.playInfo.isPlaying) - await updateMetaData(currentIsPlaying) - }) - TrackPlayer.addEventListener(TPEvent.PlaybackTrackChanged, async info => { - // console.log('nextTrack====>', info) - if (global.isPlayedExit) return handleExitApp() - - global.playerTrackId = await getCurrentTrackId() - if (isEmpty()) { - console.log('====TEMP PAUSE====') - TrackPlayer.pause() - if (retryTrack) { - if (retryTrack.musicId == retryGetUrlId) { - if (++retryGetUrlNum > 1) { - store.dispatch(playerAction.playNext(true)) - retryGetUrlId = null - retryTrack = null - return - } - } else { - retryGetUrlId = retryTrack.musicId - retryGetUrlNum = 0 - } - store.dispatch(playerAction.refreshMusicUrl(global.playInfo.currentPlayMusicInfo, errorTime)) - } else { - store.dispatch(playerAction.playNext(true)) - } - } - // // if (!info.nextTrack) return - // // if (info.track) { - // // const track = info.track.substring(0, info.track.lastIndexOf('__//')) - // // const nextTrack = info.track.substring(0, info.nextTrack.lastIndexOf('__//')) - // // console.log(nextTrack, track) - // // if (nextTrack == track) return - // // } - // // const track = await TrackPlayer.getTrack(info.nextTrack) - // // if (!track) return - // // let newTrack - // // if (track.url == defaultUrl) { - // // TrackPlayer.pause().then(async() => { - // // isRefreshUrl = true - // // retryGetUrlId = track.id - // // retryGetUrlNum = 0 - // // try { - // // newTrack = await updateTrackUrl(track) - // // console.log('++++newTrack++++', newTrack) - // // } catch (error) { - // // console.log('error', error) - // // if (error.message != '跳过播放') TrackPlayer.skipToNext() - // // isRefreshUrl = false - // // retryGetUrlId = null - // // return - // // } - // // retryGetUrlId = null - // // isRefreshUrl = false - // // console.log(await TrackPlayer.getQueue(), null, 2) - // // await TrackPlayer.play() - // // }) - // // } - // // store.dispatch(playerAction.playNext()) - }) - // TrackPlayer.addEventListener('playback-queue-ended', async info => { - // // console.log('playback-queue-ended', info) - // store.dispatch(playerAction.playNext()) - // // if (!info.nextTrack) return - // // const track = await TrackPlayer.getTrack(info.nextTrack) - // // if (!track) return - // // // if (track.url == defaultUrl) { - // // // TrackPlayer.pause() - // // // getMusicUrl(track.original).then(url => { - // // // TrackPlayer.updateMetadataForTrack(info.nextTrack, { - // // // url, - // // // }) - // // // TrackPlayer.play() - // // // }) - // // // } - // // if (!track.artwork) { - // // getMusicPic(track.original).then(url => { - // // console.log(url) - // // TrackPlayer.updateMetadataForTrack(info.nextTrack, { - // // artwork: url, - // // }) - // // }) - // // } - // }) - // TrackPlayer.addEventListener('playback-destroy', async() => { - // console.log('playback-destroy') - // store.dispatch(playerAction.destroy()) - // }) - isInitialized = true -} diff --git a/src/plugins/player/service.ts b/src/plugins/player/service.ts new file mode 100644 index 0000000..461b1af --- /dev/null +++ b/src/plugins/player/service.ts @@ -0,0 +1,212 @@ +/* eslint-disable @typescript-eslint/no-misused-promises */ +import TrackPlayer, { State as TPState, Event as TPEvent } from 'react-native-track-player' +// import { store } from '@/store' +// import { action as playerAction, STATUS } from '@/store/modules/player' +import { isTempId, isEmpty } from './utils' +// import { play as lrcPlay, pause as lrcPause } from '@/core/lyric' +import { exitApp } from '@/core/common' +import { getCurrentTrackId } from './playList' +import { pause, play, playNext, playPrev } from '@/core/player/player' + +let isInitialized = false + +// let retryTrack: LX.Player.Track | null = null +// let retryGetUrlId: string | null = null +// let retryGetUrlNum = 0 +// let errorTime = 0 +// let prevDuration = 0 +// let isPlaying = false + +// 销毁播放器并退出 +const handleExitApp = async() => { + global.lx.isPlayedStop = false + exitApp() +} + + +const registerPlaybackService = async() => { + if (isInitialized) return + + console.log('reg services...') + TrackPlayer.addEventListener(TPEvent.RemotePlay, () => { + // console.log('remote-play') + play() + }) + + TrackPlayer.addEventListener(TPEvent.RemotePause, () => { + // console.log('remote-pause') + void pause() + }) + + TrackPlayer.addEventListener(TPEvent.RemoteNext, () => { + // console.log('remote-next') + void playNext() + }) + + TrackPlayer.addEventListener(TPEvent.RemotePrevious, () => { + // console.log('remote-previous') + void playPrev() + }) + + TrackPlayer.addEventListener(TPEvent.RemoteStop, () => { + // console.log('remote-stop') + void handleExitApp() + }) + + // TrackPlayer.addEventListener(TPEvent.RemoteDuck, async({ permanent, paused, ducking }) => { + // console.log('remote-duck') + // if (paused) { + // store.dispatch(playerAction.setStatus({ status: STATUS.pause, text: '已暂停' })) + // lrcPause() + // } else { + // store.dispatch(playerAction.setStatus({ status: STATUS.playing, text: '播放中...' })) + // TrackPlayer.getPosition().then(position => { + // lrcPlay(position * 1000) + // }) + // } + // }) + + TrackPlayer.addEventListener(TPEvent.PlaybackError, async(err: any) => { + console.log('playback-error', err) + global.app_event.error() + global.app_event.playerError() + }) + + TrackPlayer.addEventListener(TPEvent.RemoteSeek, async({ position }) => { + global.app_event.setProgress(position) + }) + + TrackPlayer.addEventListener(TPEvent.PlaybackState, info => { + if (global.lx.gettingUrlId || isTempId()) return + // let currentIsPlaying = false + + switch (info.state) { + case TPState.None: + // console.log('state', 'State.NONE') + break + case TPState.Ready: + case TPState.Stopped: + case TPState.Paused: + global.app_event.playerPause() + global.app_event.pause() + break + case TPState.Playing: + global.app_event.playerPlaying() + global.app_event.play() + break + case TPState.Buffering: + global.app_event.pause() + global.app_event.playerWaiting() + break + case TPState.Connecting: + global.app_event.playerLoadstart() + break + default: + // console.log('playback-state', info) + break + } + if (global.lx.isPlayedStop) return handleExitApp() + + // console.log('currentIsPlaying', currentIsPlaying, global.lx.playInfo.isPlaying) + // void updateMetaData(global.lx.store_playMusicInfo.musicInfo, currentIsPlaying) + }) + TrackPlayer.addEventListener(TPEvent.PlaybackTrackChanged, async info => { + // console.log('PlaybackTrackChanged====>', info) + global.lx.playerTrackId = await getCurrentTrackId() + if (info.track == null) return + if (global.lx.isPlayedStop) return handleExitApp() + + // console.log('global.lx.playerTrackId====>', global.lx.playerTrackId) + if (isEmpty()) { + // console.log('====TEMP PAUSE====') + await TrackPlayer.pause() + global.app_event.playerEnded() + global.app_event.playerEmptied() + // if (retryTrack) { + // if (retryTrack.musicId == retryGetUrlId) { + // if (++retryGetUrlNum > 1) { + // store.dispatch(playerAction.playNext(true)) + // retryGetUrlId = null + // retryTrack = null + // return + // } + // } else { + // retryGetUrlId = retryTrack.musicId + // retryGetUrlNum = 0 + // } + // store.dispatch(playerAction.refreshMusicUrl(global.lx.playInfo.currentPlayMusicInfo, errorTime)) + // } else { + // store.dispatch(playerAction.playNext(true)) + // } + } + // // if (!info.nextTrack) return + // // if (info.track) { + // // const track = info.track.substring(0, info.track.lastIndexOf('__//')) + // // const nextTrack = info.track.substring(0, info.nextTrack.lastIndexOf('__//')) + // // console.log(nextTrack, track) + // // if (nextTrack == track) return + // // } + // // const track = await TrackPlayer.getTrack(info.nextTrack) + // // if (!track) return + // // let newTrack + // // if (track.url == defaultUrl) { + // // TrackPlayer.pause().then(async() => { + // // isRefreshUrl = true + // // retryGetUrlId = track.id + // // retryGetUrlNum = 0 + // // try { + // // newTrack = await updateTrackUrl(track) + // // console.log('++++newTrack++++', newTrack) + // // } catch (error) { + // // console.log('error', error) + // // if (error.message != '跳过播放') TrackPlayer.skipToNext() + // // isRefreshUrl = false + // // retryGetUrlId = null + // // return + // // } + // // retryGetUrlId = null + // // isRefreshUrl = false + // // console.log(await TrackPlayer.getQueue(), null, 2) + // // await TrackPlayer.play() + // // }) + // // } + // // store.dispatch(playerAction.playNext()) + }) + // TrackPlayer.addEventListener('playback-queue-ended', async info => { + // // console.log('playback-queue-ended', info) + // store.dispatch(playerAction.playNext()) + // // if (!info.nextTrack) return + // // const track = await TrackPlayer.getTrack(info.nextTrack) + // // if (!track) return + // // // if (track.url == defaultUrl) { + // // // TrackPlayer.pause() + // // // getMusicUrl(track.original).then(url => { + // // // TrackPlayer.updateMetadataForTrack(info.nextTrack, { + // // // url, + // // // }) + // // // TrackPlayer.play() + // // // }) + // // // } + // // if (!track.artwork) { + // // getMusicPic(track.original).then(url => { + // // console.log(url) + // // TrackPlayer.updateMetadataForTrack(info.nextTrack, { + // // artwork: url, + // // }) + // // }) + // // } + // }) + // TrackPlayer.addEventListener('playback-destroy', async() => { + // console.log('playback-destroy') + // store.dispatch(playerAction.destroy()) + // }) + isInitialized = true +} + + +export default () => { + if (global.lx.playerStatus.isRegisteredService) return + console.log('handle registerPlaybackService...') + TrackPlayer.registerPlaybackService(() => registerPlaybackService) + global.lx.playerStatus.isRegisteredService = true +} diff --git a/src/plugins/player/utils.js b/src/plugins/player/utils.ts similarity index 68% rename from src/plugins/player/utils.js rename to src/plugins/player/utils.ts index 29e00e8..77fe199 100644 --- a/src/plugins/player/utils.js +++ b/src/plugins/player/utils.ts @@ -1,14 +1,18 @@ -import TrackPlayer, { Capability } from 'react-native-track-player' +import TrackPlayer, { Capability, Event, State } from 'react-native-track-player' import BackgroundTimer from 'react-native-background-timer' import { playMusic as handlePlayMusic } from './playList' +// import { PlayerMusicInfo } from '@/store/modules/player/playInfo' export { useProgress } from './hook' const emptyIdRxp = /\/\/default$/ const tempIdRxp = /\/\/default$|\/\/default\/\/restorePlay$/ -export const isEmpty = (trackId = global.playerTrackId) => emptyIdRxp.test(trackId) -export const isTempId = (trackId = global.playerTrackId) => tempIdRxp.test(trackId) +export const isEmpty = (trackId = global.lx.playerTrackId) => { + console.log(trackId) + return !trackId || emptyIdRxp.test(trackId) +} +export const isTempId = (trackId = global.lx.playerTrackId) => !trackId || tempIdRxp.test(trackId) // export const replacePlayTrack = async(newTrack, oldTrack) => { // console.log('replaceTrack') @@ -100,14 +104,16 @@ export const isTempId = (trackId = global.playerTrackId) => tempIdRxp.test(track // }, // } -export const playMusic = ((fn, delay = 800) => { - let delayTimer = null +const playMusic = ((fn: (musicInfo: LX.Player.PlayMusic, url: string, time: number) => void, delay = 800) => { + let delayTimer: number | null = null let isDelayRun = false - let timer = null - let _tracks = null - let _time = null - return (tracks, time) => { - _tracks = tracks + let timer: number | null = null + let _musicInfo: LX.Player.PlayMusic | null = null + let _url = '' + let _time = 0 + return (musicInfo: LX.Player.PlayMusic, url: string, time: number) => { + _musicInfo = musicInfo + _url = url _time = time if (timer) { BackgroundTimer.clearTimeout(timer) @@ -120,50 +126,96 @@ export const playMusic = ((fn, delay = 800) => { } timer = BackgroundTimer.setTimeout(() => { timer = null - let tracks = _tracks + let musicInfo = _musicInfo + let url = _url let time = _time - _tracks = null - _time = null + _musicInfo = null + _url = '' + _time = 0 isDelayRun = false - fn(tracks, time) + fn(musicInfo as LX.Player.PlayMusic, url, time) }, delay) } else { isDelayRun = true - fn(tracks, time) + fn(musicInfo, url, time) delayTimer = BackgroundTimer.setTimeout(() => { delayTimer = null isDelayRun = false }, 500) } } -})((tracks, time) => { - handlePlayMusic(tracks, time) +})((musicInfo, url, time) => { + void handlePlayMusic(musicInfo, url, time) }) -export const play = () => TrackPlayer.play() -export const getPosition = () => TrackPlayer.getPosition() -export const stop = () => TrackPlayer.stop() -export const pause = () => TrackPlayer.pause() -// export const skipToNext = () => TrackPlayer.skipToNext() -export const seekTo = time => TrackPlayer.seekTo(time) - -export const resetPlay = async() => Promise.all([pause(), seekTo(0)]) - -export const destroy = async() => { - if (global.playerStatus.isIniting || !global.playerStatus.isInitialized) return - await TrackPlayer.destroy() - global.playerStatus.isInitialized = false +export const setResource = (musicInfo: LX.Player.PlayMusic, url: string, duration?: number) => { + playMusic(musicInfo, url, duration ?? 0) } +export const setPlay = async() => TrackPlayer.play() +export const getPosition = async() => TrackPlayer.getPosition() +export const getDuration = async() => TrackPlayer.getDuration() +export const setStop = async() => { + await TrackPlayer.stop() + if (!isEmpty()) await TrackPlayer.skipToNext() +} +export const setPause = async() => TrackPlayer.pause() +// export const skipToNext = () => TrackPlayer.skipToNext() +export const setCurrentTime = async(time: number) => TrackPlayer.seekTo(time) + +export const resetPlay = async() => Promise.all([setPause(), setCurrentTime(0)]) + +export const destroy = async() => { + if (global.lx.playerStatus.isIniting || !global.lx.playerStatus.isInitialized) return + await TrackPlayer.destroy() + global.lx.playerStatus.isInitialized = false +} + +type PlayStatus = 'None' | 'Ready' | 'Playing' | 'Paused' | 'Stopped' | 'Buffering' | 'Connecting' + +export const onStateChange = async(listener: (state: PlayStatus) => void) => { + const sub = TrackPlayer.addEventListener(Event.PlaybackState, state => { + let _state: PlayStatus + switch (state) { + case State.Ready: + _state = 'Ready' + break + case State.Playing: + _state = 'Playing' + break + case State.Paused: + _state = 'Paused' + break + case State.Stopped: + _state = 'Stopped' + break + case State.Buffering: + _state = 'Buffering' + break + case State.Connecting: + _state = 'Connecting' + break + case State.None: + default: + _state = 'None' + break + } + listener(_state) + }) + + return () => { + sub.remove() + } +} /** * Subscription player state chuange event - * @param {*} callback state change event + * @param options state change event * @returns remove event function */ // export const playState = callback => TrackPlayer.addEventListener('playback-state', callback) -export const updateOptions = (options = { +export const updateOptions = async(options = { // Whether the player should stop running when the app is closed on Android // stopWithApp: true, @@ -230,3 +282,5 @@ export const updateOptions = (options = { // export { // useProgress, // } + +export { updateMetaData } from './playList' diff --git a/src/plugins/storage.js b/src/plugins/storage.js deleted file mode 100644 index 9d8b567..0000000 --- a/src/plugins/storage.js +++ /dev/null @@ -1,167 +0,0 @@ -import AsyncStorage from '@react-native-async-storage/async-storage' - -const partKeyPrefix = '@___PART___' -const partKeyPrefixRxp = /^@___PART___/ -const keySplit = ',' -const limit = 500000 - -const buildData = (key, value, datas) => { - let valueStr = JSON.stringify(value) - if (valueStr.length <= limit) return datas.push([key, valueStr]) - - const partKeys = [] - for (let i = 0, len = Math.floor(valueStr.length / limit); i <= len; i++) { - let partKey = `${partKeyPrefix}${key}${i}` - partKeys.push(partKey) - datas.push([partKey, valueStr.substring(i * limit, (i + 1) * limit)]) - } - datas.push([key, `${partKeyPrefix}${partKeys.join(keySplit)}`]) - return datas -} - -const handleGetData = partKeys => { - partKeys = partKeys.replace(partKeyPrefixRxp, '').split(keySplit) - - return AsyncStorage.multiGet(partKeys).then(datas => { - return JSON.parse(datas.map(data => data[1]).join('')) - }) -} - -export const setData = async(key, value) => { - const datas = [] - buildData(key, value, datas) - - try { - await AsyncStorage.multiSet(datas) - } catch (e) { - // saving error - console.log(e.message) - throw e - } -} - -export const getData = async key => { - let value - try { - value = await AsyncStorage.getItem(key) - } catch (e) { - // error reading value - console.log(e.message) - throw e - } - if (partKeyPrefixRxp.test(value)) { - return handleGetData(value) - } else if (value) value = JSON.parse(value) - return value -} - -export const removeData = async key => { - let value - try { - value = await AsyncStorage.getItem(key) - } catch (e) { - // error reading value - console.log(e.message) - throw e - } - if (partKeyPrefixRxp.test(value)) { - let partKeys = value.replace(partKeyPrefixRxp, '').split(keySplit) - partKeys.push(key) - try { - await AsyncStorage.multiRemove(partKeys) - } catch (e) { - // remove error - console.log(e.message) - throw e - } - } else { - try { - await AsyncStorage.removeItem(key) - } catch (e) { - // remove error - console.log(e.message) - throw e - } - } -} - -export const getAllKeys = async() => { - let keys - try { - keys = await AsyncStorage.getAllKeys() - } catch (e) { - // read key error - console.log(e.message) - throw e - } - - return keys -} - -export const getDataMultiple = async keys => { - let datas - try { - datas = await AsyncStorage.multiGet(keys) - } catch (e) { - // read error - console.log(e.message) - throw e - } - const promises = [] - for (const data of datas) { - if (partKeyPrefixRxp.test(data[1])) { - promises.push(handleGetData(data[1])) - } else { - promises.push(Promise.resolve(data[1] ? JSON.parse(data[1]) : data[1])) - } - } - return Promise.all(promises).then(values => { - return datas.map(([key], index) => ({ key, value: values[index] })) - }) -} - -export const setDataMultiple = async datas => { - const allData = [] - for (const { key, value } of datas) { - buildData(key, value, allData) - } - try { - await AsyncStorage.multiSet(allData) - } catch (e) { - // save error - console.log(e.message) - throw e - } -} - - -export const removeDataMultiple = async keys => { - if (!keys.length) return - const datas = await AsyncStorage.multiGet(keys) - let allKeys = [] - for (const [key, value] of datas) { - allKeys.push(key) - if (partKeyPrefixRxp.test(value)) { - allKeys.push(...value.replace(partKeyPrefixRxp, '').split(keySplit)) - } - } - try { - await AsyncStorage.multiRemove(allKeys) - } catch (e) { - // remove error - console.log(e.message) - throw e - } -} - -export const clearAll = async() => { - try { - await AsyncStorage.clear() - } catch (e) { - // clear error - console.log(e.message) - throw e - } -} - -export const useAsyncStorage = AsyncStorage.useAsyncStorage diff --git a/src/plugins/storage.ts b/src/plugins/storage.ts new file mode 100644 index 0000000..6146ce3 --- /dev/null +++ b/src/plugins/storage.ts @@ -0,0 +1,172 @@ +import AsyncStorage from '@react-native-async-storage/async-storage' +import { log } from '@/utils/log' + +const partKeyPrefix = '@___PART___' +const partKeyPrefixRxp = /^@___PART___/ +const keySplit = ',' +const limit = 500000 + +const buildData = (key: string, value: any, datas: Array<[string, string]>) => { + let valueStr = JSON.stringify(value) + if (valueStr.length <= limit) { + datas.push([key, valueStr]) + return + } + + const partKeys = [] + for (let i = 0, len = Math.floor(valueStr.length / limit); i <= len; i++) { + let partKey = `${partKeyPrefix}${key}${i}` + partKeys.push(partKey) + datas.push([partKey, valueStr.substring(i * limit, (i + 1) * limit)]) + } + datas.push([key, `${partKeyPrefix}${partKeys.join(keySplit)}`]) +} + +const handleGetData = async<T>(partKeys: string): Promise<T> => { + const keys = partKeys.replace(partKeyPrefixRxp, '').split(keySplit) + + return AsyncStorage.multiGet(keys).then(datas => { + return JSON.parse(datas.map(data => data[1]).join('')) + }) +} + +export const saveData = async(key: string, value: any) => { + const datas: Array<[string, string]> = [] + buildData(key, value, datas) + + try { + await AsyncStorage.multiSet(datas) + } catch (e: any) { + // saving error + log.error('storage error[saveData]:', key, e.message) + throw e + } +} + +export const getData = async<T = unknown>(key: string): Promise<T | null> => { + let value: string | null + try { + value = await AsyncStorage.getItem(key) + } catch (e: any) { + // error reading value + log.error('storage error[getData]:', key, e.message) + throw e + } + if (value && partKeyPrefixRxp.test(value)) { + return handleGetData<T>(value) + } else if (value == null) return value + return JSON.parse(value) +} + +export const removeData = async(key: string) => { + let value: string | null + try { + value = await AsyncStorage.getItem(key) + } catch (e: any) { + // error reading value + log.error('storage error[removeData]:', key, e.message) + throw e + } + if (value && partKeyPrefixRxp.test(value)) { + let partKeys = value.replace(partKeyPrefixRxp, '').split(keySplit) + partKeys.push(key) + try { + await AsyncStorage.multiRemove(partKeys) + } catch (e: any) { + // remove error + log.error('storage error[removeData]:', key, e.message) + throw e + } + } else { + try { + await AsyncStorage.removeItem(key) + } catch (e: any) { + // remove error + log.error('storage error[removeData]:', key, e.message) + throw e + } + } +} + +export const getAllKeys = async() => { + let keys + try { + keys = await AsyncStorage.getAllKeys() + } catch (e: any) { + // read key error + log.error('storage error[getAllKeys]:', e.message) + throw e + } + + return keys +} + + +export const getDataMultiple = async<T extends readonly string[]>(keys: T) => { + type RawData = { [K in keyof T]: [T[K], string | null] } + let datas: RawData + try { + datas = await AsyncStorage.multiGet(keys) as RawData + } catch (e: any) { + // read error + log.error('storage error[getDataMultiple]:', e.message) + throw e + } + const promises: Array<Promise<ReadonlyArray<[unknown | null]>>> = [] + for (const [, value] of datas) { + if (value && partKeyPrefixRxp.test(value)) { + promises.push(handleGetData(value)) + } else { + promises.push(Promise.resolve(value ? JSON.parse(value) : value)) + } + } + return Promise.all(promises).then(values => { + return datas.map(([key], index) => ([key, values[index]])) as { [K in keyof T]: [T[K], unknown] } + }) +} + +export const saveDataMultiple = async(datas: Array<[string, any]>) => { + const allData: Array<[string, string]> = [] + for (const [key, value] of datas) { + buildData(key, value, allData) + } + try { + await AsyncStorage.multiSet(allData) + } catch (e: any) { + // save error + log.error('storage error[saveDataMultiple]:', e.message) + throw e + } +} + + +export const removeDataMultiple = async(keys: string[]) => { + if (!keys.length) return + const datas = await AsyncStorage.multiGet(keys) + let allKeys = [] + for (const [key, value] of datas) { + allKeys.push(key) + if (value && partKeyPrefixRxp.test(value)) { + allKeys.push(...value.replace(partKeyPrefixRxp, '').split(keySplit)) + } + } + try { + await AsyncStorage.multiRemove(allKeys) + } catch (e: any) { + // remove error + log.error('storage error[removeDataMultiple]:', e.message) + throw e + } +} + +export const clearAll = async() => { + try { + await AsyncStorage.clear() + } catch (e: any) { + // clear error + log.error('storage error[clearAll]:', e.message) + throw e + } +} + +export { useAsyncStorage } from '@react-native-async-storage/async-storage' diff --git a/src/plugins/sync/client/auth.js b/src/plugins/sync/client/auth.js deleted file mode 100644 index 9a77b82..0000000 --- a/src/plugins/sync/client/auth.js +++ /dev/null @@ -1,76 +0,0 @@ -import { getSyncAuthKey, setSyncAuthKey } from '@/utils/tools' -import { request, aesEncrypt, aesDecrypt } from './utils' -import { getDeviceName } from '@/utils/utils' -import { SYNC_CODE } from './config' -import log from '../log' - - -const hello = (host, port) => request(`http://${host}:${port}/hello`) - .then(text => text == SYNC_CODE.helloMsg) - .catch(err => { - log.error('[auth] hello', err.message) - console.log(err) - return false - }) - -const getServerId = (host, port) => request(`http://${host}:${port}/id`) - .then(text => { - if (!text.startsWith(SYNC_CODE.idPrefix)) return '' - return text.replace(SYNC_CODE.idPrefix, '') - }) - .catch(err => { - log.error('[auth] getServerId', err.message) - console.log(err) - return false - }) - -const codeAuth = async(host, port, serverId, authCode) => { - let key = ''.padStart(16, Buffer.from(authCode).toString('hex')) - const iv = Buffer.from(key.split('').reverse().join('')).toString('base64') - key = Buffer.from(key).toString('base64') - const msg = aesEncrypt(SYNC_CODE.authMsg + await getDeviceName(), key, iv) - return request(`http://${host}:${port}/ah`, { headers: { m: msg } }).then(text => { - // console.log(text) - let msg - try { - msg = aesDecrypt(text, key, iv) - } catch (err) { - log.error('[auth] codeAuth decryptMsg error', err.message) - throw new Error(SYNC_CODE.authFailed) - } - if (!msg) return Promise.reject(new Error(SYNC_CODE.authFailed)) - const info = JSON.parse(msg) - setSyncAuthKey(serverId, info) - return info - }) -} - -const keyAuth = async(host, port, keyInfo) => { - const msg = aesEncrypt(SYNC_CODE.authMsg + await getDeviceName(), keyInfo.key, keyInfo.iv) - return request(`http://${host}:${port}/ah`, { headers: { i: keyInfo.clientId, m: msg } }).then(text => { - let msg - try { - msg = aesDecrypt(text, keyInfo.key, keyInfo.iv) - } catch (err) { - log.error('[auth] keyAuth decryptMsg error', err.message) - throw new Error(SYNC_CODE.authFailed) - } - if (msg != SYNC_CODE.helloMsg) return Promise.reject(new Error(SYNC_CODE.authFailed)) - }) -} - -const auth = async(host, port, serverId, authCode) => { - if (authCode) return codeAuth(host, port, serverId, authCode) - const keyInfo = await getSyncAuthKey(serverId) - if (!keyInfo) throw new Error(SYNC_CODE.missingAuthCode) - await keyAuth(host, port, keyInfo) - return keyInfo -} - -export default async(host, port, authCode) => { - console.log('connect: ', host, port, authCode) - if (!await hello(host, port)) throw new Error(SYNC_CODE.connectServiceFailed) - const serverId = await getServerId(host, port) - if (!serverId) throw new Error(SYNC_CODE.getServiceIdFailed) - return auth(host, port, serverId, authCode) -} diff --git a/src/plugins/sync/client/auth.ts b/src/plugins/sync/client/auth.ts new file mode 100644 index 0000000..cb0a6cb --- /dev/null +++ b/src/plugins/sync/client/auth.ts @@ -0,0 +1,92 @@ +import { getSyncAuthKey, setSyncAuthKey } from '@/utils/data' +import { request, aesEncrypt, aesDecrypt, generateRsaKey, rsaDecrypt } from './utils' +import { getDeviceName } from '@/utils/nativeModules/utils' +import { SYNC_CODE } from './config' +import log from '../log' + + +const hello = async(host: string, port: string) => request(`http://${host}:${port}/hello`) + .then(({ text }) => text == SYNC_CODE.helloMsg) + .catch((err: any) => { + log.error('[auth] hello', err.message) + console.log(err) + return false + }) + +const getServerId = async(host: string, port: string) => request(`http://${host}:${port}/id`) + .then(({ text }) => { + if (!text.startsWith(SYNC_CODE.idPrefix)) return '' + return text.replace(SYNC_CODE.idPrefix, '') + }) + .catch((err: any) => { + log.error('[auth] getServerId', err.message) + console.log(err) + throw err + }) + +const codeAuth = async(host: string, port: string, serverId: string, authCode: string) => { + let key = ''.padStart(16, Buffer.from(authCode).toString('hex')) + // const iv = Buffer.from(key.split('').reverse().join('')).toString('base64') + key = Buffer.from(key).toString('base64') + let { publicKey, privateKey } = await generateRsaKey() + publicKey = publicKey.replace(/\n/g, '') + .replace('-----BEGIN PUBLIC KEY-----', '') + .replace('-----END PUBLIC KEY-----', '') + const msg = aesEncrypt(`${SYNC_CODE.authMsg}\n${publicKey}\n${await getDeviceName()}`, key) + // console.log(msg, key) + return request(`http://${host}:${port}/ah`, { headers: { m: msg } }).then(async({ text, code }) => { + // console.log(text) + switch (text) { + case SYNC_CODE.msgBlockedIp: + throw new Error(SYNC_CODE.msgBlockedIp) + case SYNC_CODE.authFailed: + throw new Error(SYNC_CODE.authFailed) + default: + if (code != 200) throw new Error(SYNC_CODE.authFailed) + } + let msg + try { + msg = rsaDecrypt(Buffer.from(text, 'base64'), privateKey).toString() + } catch (err: any) { + log.error('[auth] codeAuth decryptMsg error', err.message) + throw new Error(SYNC_CODE.authFailed) + } + // console.log(msg) + if (!msg) return Promise.reject(new Error(SYNC_CODE.authFailed)) + const info = JSON.parse(msg) + void setSyncAuthKey(serverId, info) + return info + }) +} + +const keyAuth = async(host: string, port: string, keyInfo: LX.Sync.KeyInfo) => { + const msg = aesEncrypt(SYNC_CODE.authMsg + await getDeviceName(), keyInfo.key) + return request(`http://${host}:${port}/ah`, { headers: { i: keyInfo.clientId, m: msg } }).then(({ text, code }) => { + if (code != 200) throw new Error(SYNC_CODE.authFailed) + + let msg + try { + msg = aesDecrypt(text, keyInfo.key) + } catch (err: any) { + log.error('[auth] keyAuth decryptMsg error', err.message) + throw new Error(SYNC_CODE.authFailed) + } + if (msg != SYNC_CODE.helloMsg) return Promise.reject(new Error(SYNC_CODE.authFailed)) + }) +} + +const auth = async(host: string, port: string, serverId: string, authCode?: string) => { + if (authCode) return codeAuth(host, port, serverId, authCode) + const keyInfo = await getSyncAuthKey(serverId) + if (!keyInfo) throw new Error(SYNC_CODE.missingAuthCode) + await keyAuth(host, port, keyInfo) + return keyInfo +} + +export default async(host: string, port: string, authCode?: string) => { + console.log('connect: ', host, port, authCode) + if (!await hello(host, port)) throw new Error(SYNC_CODE.connectServiceFailed) + const serverId = await getServerId(host, port) + if (!serverId) throw new Error(SYNC_CODE.getServiceIdFailed) + return auth(host, port, serverId, authCode) +} diff --git a/src/plugins/sync/client/client.js b/src/plugins/sync/client/client.ts similarity index 71% rename from src/plugins/sync/client/client.js rename to src/plugins/sync/client/client.ts index c719284..44398dc 100644 --- a/src/plugins/sync/client/client.js +++ b/src/plugins/sync/client/client.ts @@ -1,27 +1,29 @@ -import { io } from 'socket.io/client-dist/socket.io' +import { io } from 'socket.io-client' import { aesEncrypt } from './utils' import * as modules from '../modules' -import { action as commonAction } from '@/store/modules/common' -import { getStore } from '@/store' +// import { action as commonAction } from '@/store/modules/common' +// import { getStore } from '@/store' import registerSyncListHandler from './syncList' import log from '../log' +import { setSyncStatus } from '@/core/sync' +import { SYNC_CODE } from './config' -const handleConnection = (socket) => { +const handleConnection = (socket: LX.Sync.Socket) => { for (const module of Object.values(modules)) { module.registerListHandler(socket) } } -let socket -let listSyncPromise -export const connect = (host, port, keyInfo) => { +let socket: LX.Sync.Socket | null +let listSyncPromise: Promise<void> +export const connect = (host: string, port: string, keyInfo: LX.Sync.KeyInfo) => { socket = io(`ws://${host}:${port}`, { path: '/sync', reconnectionAttempts: 5, transports: ['websocket'], query: { i: keyInfo.clientId, - t: aesEncrypt('lx-music connect', keyInfo.key, keyInfo.iv), + t: aesEncrypt(SYNC_CODE.msgConnect, keyInfo.key), }, }) @@ -30,39 +32,38 @@ export const connect = (host, port, keyInfo) => { socket.on('connect', async() => { console.log('connect') log.info('connect') - const store = getStore() - global.syncKeyInfo = keyInfo - store.dispatch(commonAction.setSyncStatus({ + // const store = getStore() + // global.lx.syncKeyInfo = keyInfo + setSyncStatus({ status: false, message: 'Wait syncing...', - })) + }) try { await listSyncPromise - } catch (err) { + } catch (err: any) { console.log(err) log.r_error(err.stack) - store.dispatch(commonAction.setSyncStatus({ + setSyncStatus({ status: false, message: err.message, - })) + }) return } log.info('sync list success') - handleConnection(socket) + handleConnection(socket as LX.Sync.Socket) log.info('register list sync service success') - store.dispatch(commonAction.setSyncStatus({ + setSyncStatus({ status: true, message: '', - })) + }) }) socket.on('connect_error', (err) => { console.log(err.message) log.error('connect error: ', err.stack) - const store = getStore() - store.dispatch(commonAction.setSyncStatus({ + setSyncStatus({ status: false, message: err.message, - })) + }) // if (err.message === 'invalid credentials') { // socket.auth.token = 'efgh' // socket.connect() @@ -71,11 +72,10 @@ export const connect = (host, port, keyInfo) => { socket.on('disconnect', (reason) => { console.log('disconnect', reason) log.warn('disconnect: ', reason) - const store = getStore() - store.dispatch(commonAction.setSyncStatus({ + setSyncStatus({ status: false, message: reason, - })) + }) // if (reason === 'io server disconnect') { // // the disconnection was initiated by the server, you need to reconnect manually // socket.connect() @@ -107,6 +107,7 @@ export const connect = (host, port, keyInfo) => { export const disconnect = async() => { if (!socket) return log.info('disconnecting...') - await socket.close() + socket.close() socket = null } + diff --git a/src/plugins/sync/client/config.js b/src/plugins/sync/client/config.ts similarity index 75% rename from src/plugins/sync/client/config.js rename to src/plugins/sync/client/config.ts index c63defd..ebd2036 100644 --- a/src/plugins/sync/client/config.js +++ b/src/plugins/sync/client/config.ts @@ -1,5 +1,5 @@ export const SYNC_CODE = { - helloMsg: 'Hello~::^-^::', + helloMsg: 'Hello~::^-^::~v2~', idPrefix: 'OjppZDo6', authMsg: 'lx-music auth::', authFailed: 'Auth failed', @@ -8,4 +8,6 @@ export const SYNC_CODE = { connectServiceFailed: 'Connect service failed', connecting: 'Connecting...', unknownServiceAddress: 'Unknown service address', -} + msgBlockedIp: 'Blocked IP', + msgConnect: 'lx-music connect', +} as const diff --git a/src/plugins/sync/client/index.js b/src/plugins/sync/client/index.ts similarity index 55% rename from src/plugins/sync/client/index.js rename to src/plugins/sync/client/index.ts index 34c0f6a..37692de 100644 --- a/src/plugins/sync/client/index.js +++ b/src/plugins/sync/client/index.ts @@ -1,41 +1,37 @@ import handleAuth from './auth' import { connect as socketConnect, disconnect as socketDisconnect } from './client' -import { getSyncHost } from '@/utils/tools' -import { action as commonAction } from '@/store/modules/common' -import { getStore } from '@/store' +import { getSyncHost } from '@/utils/data' import { SYNC_CODE } from './config' import log from '../log' +import { setSyncMessage, setSyncStatus } from '@/core/sync' -const handleConnect = async authCode => { +const handleConnect = async(authCode?: string) => { const hostInfo = await getSyncHost() // console.log(hostInfo) if (!hostInfo || !hostInfo.host || !hostInfo.port) throw new Error(SYNC_CODE.unknownServiceAddress) await disconnect(false) const keyInfo = await handleAuth(hostInfo.host, hostInfo.port, authCode) - await socketConnect(hostInfo.host, hostInfo.port, keyInfo) + socketConnect(hostInfo.host, hostInfo.port, keyInfo) } const handleDisconnect = async() => { await socketDisconnect() } -const connect = authCode => { - const store = getStore() - store.dispatch(commonAction.setSyncStatus({ +const connect = async(authCode?: string) => { + setSyncStatus({ status: false, message: SYNC_CODE.connecting, - })) + }) return handleConnect(authCode).then(() => { - const store = getStore() - store.dispatch(commonAction.setSyncStatus({ + setSyncStatus({ status: true, message: '', - })) - }).catch(err => { - const store = getStore() - store.dispatch(commonAction.setSyncStatus({ + }) + }).catch(async err => { + setSyncStatus({ status: false, message: err.message, - })) + }) switch (err.message) { case SYNC_CODE.connectServiceFailed: case SYNC_CODE.missingAuthCode: @@ -49,21 +45,17 @@ const connect = authCode => { }) } -const disconnect = (isResetStatus = true) => handleDisconnect().then(() => { +const disconnect = async(isResetStatus = true) => handleDisconnect().then(() => { log.info('disconnect...') if (isResetStatus) { - const store = getStore() - store.dispatch(commonAction.setSyncStatus({ + setSyncStatus({ status: false, message: '', - })) + }) } -}).catch(err => { - const store = getStore() - log.error('disconnect error: ' + err.message) - store.dispatch(commonAction.setSyncStatus({ - message: err.message, - })) +}).catch((err: any) => { + log.error(`disconnect error: ${err.message as string}`) + setSyncMessage(err.message) }) export { diff --git a/src/plugins/sync/client/syncList.js b/src/plugins/sync/client/syncList.js deleted file mode 100644 index cdb435c..0000000 --- a/src/plugins/sync/client/syncList.js +++ /dev/null @@ -1,85 +0,0 @@ -import { getStore } from '@/store' -// import { action as commonAction } from '@/store/modules/common' -import { action as listAction } from '@/store/modules/list' -import { toast } from '@/utils/tools' - -import { decryptMsg, encryptMsg } from './utils' -import log from '../log' - -let socket -let syncAction - -const wait = () => new Promise((resolve, reject) => { - syncAction = [resolve, reject] -}) - -const sendListData = type => { - const store = getStore() - const state = store.getState() - let listData - switch (type) { - case 'all': - listData = { - defaultList: state.list.defaultList, - loveList: state.list.loveList, - userList: state.list.userList, - } - break - - default: - break - } - // console.log('sendListData') - socket.emit('list:sync', encryptMsg(JSON.stringify({ - action: 'getData', - data: listData, - })), () => { - log.info('[syncList]send data success') - }) - // console.log('sendListData', 'encryptMsg') -} - -const saveList = ({ defaultList, loveList, userList }) => { - const store = getStore() - store.dispatch(listAction.setSyncList({ defaultList, loveList, userList })) -} - -const handleListSync = enMsg => { - // console.log('handleListSync', enMsg.length) - const { action, data } = JSON.parse(decryptMsg(enMsg)) - // console.log('handleListSync', action) - switch (action) { - case 'getData': - log.info('[syncList]get data') - sendListData(data) - break - case 'setData': - log.info('[syncList]set data') - saveList(data) - log.info('[syncList]set data success') - break - case 'finished': - if (!syncAction) return - log.info('[syncList]finished') - syncAction[0]() - syncAction = null - toast('Sync successfully') - break - default: - break - } -} - -const handleDisconnect = err => { - if (!syncAction) return - syncAction[1](err.message ? err : new Error(err)) - syncAction = null -} - -export default _socket => { - socket = _socket - socket.on('list:sync', handleListSync) - socket.on('connect_error', handleDisconnect) - socket.on('disconnect', handleDisconnect) - return wait() -} diff --git a/src/plugins/sync/client/syncList.ts b/src/plugins/sync/client/syncList.ts new file mode 100644 index 0000000..b473b1e --- /dev/null +++ b/src/plugins/sync/client/syncList.ts @@ -0,0 +1,97 @@ +// import { getStore } from '@/store' +// import { action as commonAction } from '@/store/modules/common' +// import { action as listAction } from '@/store/modules/list' +import { toast } from '@/utils/tools' + +import { decryptMsg, encryptMsg } from './utils' +import log from '../log' +import { LIST_IDS } from '@/config/constant' +import { getListMusics, userLists } from '@/utils/listManage' + +let socket: LX.Sync.Socket | null +let syncAction: [() => void, (err: any) => void] | null + +const wait = async(): Promise<void> => new Promise((resolve, reject) => { + syncAction = [resolve, reject] +}) + +const getListDataFull = async(): Promise<LX.Sync.ListData> => { + return Promise.all([ + getListMusics(LIST_IDS.DEFAULT), + getListMusics(LIST_IDS.LOVE), + // eslint-disable-next-line @typescript-eslint/promise-function-async + ...userLists.map(l => getListMusics(l.id)), + ]).then(([defaultList, loveList, ...userList]) => { + return { + defaultList, + loveList, + userList: userLists.map((l, i) => ({ ...l, list: userList[i] })), + } + }) +} +const sendListData = async(type: LX.Sync.SyncClientActionGetData) => { + // const state = store.getState() + + let listData + switch (type) { + case 'all': + listData = await getListDataFull() + break + + default: + break + } + // console.log('sendListData') + socket!.emit('list:sync', encryptMsg(JSON.stringify({ + action: 'getData', + data: listData, + })), () => { + log.info('[syncList]send data success') + }) + // console.log('sendListData', 'encryptMsg') +} + +const saveList = ({ defaultList, loveList, userList }: LX.Sync.ListData) => { + // const store = getStore() + void global.list_event.list_data_overwrite({ defaultList, loveList, userList }, true) +} + +const handleListSync = (enMsg: string) => { + // console.log('handleListSync', enMsg.length) + const msg = JSON.parse(decryptMsg(enMsg)) as LX.Sync.SyncClientAction + // console.log('handleListSync', action) + switch (msg.action) { + case 'getData': + log.info('[syncList]get data') + void sendListData(msg.data) + break + case 'setData': + log.info('[syncList]set data') + saveList(msg.data) + log.info('[syncList]set data success') + break + case 'finished': + if (!syncAction) return + log.info('[syncList]finished') + syncAction[0]() + syncAction = null + toast('Sync successfully') + break + default: + break + } +} + +const handleDisconnect = (err: any) => { + if (!syncAction) return + syncAction[1](err.message ? err : new Error(err)) + syncAction = null +} + +export default async(_socket: LX.Sync.Socket) => { + socket = _socket + socket.on('list:sync', handleListSync) + socket.on('connect_error', handleDisconnect) + socket.on('disconnect', handleDisconnect) + return wait() +} diff --git a/src/plugins/sync/client/utils.js b/src/plugins/sync/client/utils.js deleted file mode 100644 index 118f0dd..0000000 --- a/src/plugins/sync/client/utils.js +++ /dev/null @@ -1,47 +0,0 @@ -import { createCipheriv, createDecipheriv } from 'crypto' -import BackgroundTimer from 'react-native-background-timer' - -export const request = (url, { timeout = 10000, ...options } = {}) => { - const controller = new global.AbortController() - const id = BackgroundTimer.setTimeout(() => controller.abort(), timeout) - return global.fetch(url, { - ...options, - signal: controller.signal, - }).then(response => { - BackgroundTimer.clearTimeout(id) - return response.text() - }).catch(err => { - // console.log(err, err.code, err.message) - return Promise.reject(err) - }) -} - -export const aesEncrypt = (text, key, iv) => { - const cipher = createCipheriv('aes-128-cbc', Buffer.from(key, 'base64'), Buffer.from(iv, 'base64')) - return Buffer.concat([cipher.update(Buffer.from(text)), cipher.final()]).toString('base64') -} - -export const aesDecrypt = (text, key, iv) => { - const decipher = createDecipheriv('aes-128-cbc', Buffer.from(key, 'base64'), Buffer.from(iv, 'base64')) - return Buffer.concat([decipher.update(Buffer.from(text, 'base64')), decipher.final()]).toString() -} - -export const encryptMsg = msg => { - return msg - // const keyInfo = global.syncKeyInfo - // if (!keyInfo) return '' - // return aesEncrypt(msg, keyInfo.key, keyInfo.iv) -} - -export const decryptMsg = enMsg => { - return enMsg - // const keyInfo = global.syncKeyInfo - // if (!keyInfo) return '' - // let msg = '' - // try { - // msg = aesDecrypt(enMsg, keyInfo.key, keyInfo.iv) - // } catch (err) { - // console.log(err) - // } - // return msg -} diff --git a/src/plugins/sync/client/utils.ts b/src/plugins/sync/client/utils.ts new file mode 100644 index 0000000..e1e42e3 --- /dev/null +++ b/src/plugins/sync/client/utils.ts @@ -0,0 +1,102 @@ +import { createCipheriv, createDecipheriv, generateKeyPair, publicEncrypt, privateDecrypt, constants } from 'crypto' +import BackgroundTimer from 'react-native-background-timer' + +export const request = async(url: string, { timeout = 10000, ...options }: RequestInit & { timeout?: number } = {}) => { + const controller = new AbortController() + let id: number | null = BackgroundTimer.setTimeout(() => { + id = null + controller.abort() + }, timeout) + return fetch(url, { + ...options, + signal: controller.signal, + // eslint-disable-next-line @typescript-eslint/promise-function-async + }).then(async(response) => { + const text = await response.text() + return { + text, + code: response.status, + } + }).catch(err => { + // console.log(err, err.code, err.message) + throw err + }).finally(() => { + if (id == null) return + BackgroundTimer.clearTimeout(id) + }) +} + +// export const aesEncrypt = (text: string, key: string, iv: string) => { +// const cipher = createCipheriv('aes-128-cbc', Buffer.from(key, 'base64'), Buffer.from(iv, 'base64')) +// return Buffer.concat([cipher.update(Buffer.from(text)), cipher.final()]).toString('base64') +// } + +// export const aesDecrypt = (text: string, key: string, iv: string) => { +// const decipher = createDecipheriv('aes-128-cbc', Buffer.from(key, 'base64'), Buffer.from(iv, 'base64')) +// return Buffer.concat([decipher.update(Buffer.from(text, 'base64')), decipher.final()]).toString() +// } + +export const aesEncrypt = (text: string, key: string) => { + const cipher = createCipheriv('aes-128-ecb', Buffer.from(key, 'base64'), '') + return Buffer.concat([cipher.update(Buffer.from(text)), cipher.final()]).toString('base64') +} + +export const aesDecrypt = (text: string, key: string) => { + const decipher = createDecipheriv('aes-128-ecb', Buffer.from(key, 'base64'), '') + return Buffer.concat([decipher.update(Buffer.from(text, 'base64')), decipher.final()]).toString() +} + +export const generateRsaKey = async() => new Promise<{ publicKey: string, privateKey: string }>((resolve, reject) => { + generateKeyPair( + 'rsa', + { + modulusLength: 2048, // It holds a number. It is the key size in bits and is applicable for RSA, and DSA algorithm only. + publicKeyEncoding: { + type: 'spki', // Note the type is pkcs1 not spki + format: 'pem', + }, + privateKeyEncoding: { + type: 'pkcs8', // Note again the type is set to pkcs1 + format: 'pem', + // cipher: "aes-256-cbc", //Optional + // passphrase: "", //Optional + }, + }, + (err, publicKey, privateKey) => { + if (err) return reject(err) + resolve({ + publicKey, + privateKey, + }) + }, + ) +}) + +export const rsaEncrypt = (buffer: Buffer, key: string): string => { + return publicEncrypt({ key, padding: constants.RSA_PKCS1_OAEP_PADDING }, buffer).toString('base64') +} +export const rsaDecrypt = (buffer: Buffer, key: string): Buffer => { + return privateDecrypt({ key, padding: constants.RSA_PKCS1_OAEP_PADDING }, buffer) +} + + +export const encryptMsg = (msg: string) => { + return msg + // return `${createHash('md5').update(msg).digest('hex')}${msg}` + // const keyInfo = global.lx.syncKeyInfo + // if (!keyInfo) return '' + // return aesEncrypt(msg, keyInfo.key) +} + +export const decryptMsg = (enMsg: string) => { + return enMsg + // const keyInfo = global.lx.syncKeyInfo + // if (!keyInfo) return '' + // let msg = '' + // try { + // msg = aesDecrypt(enMsg, keyInfo.key, keyInfo.iv) + // } catch (err) { + // console.log(err) + // } + // return msg +} diff --git a/src/plugins/sync/modules/index.js b/src/plugins/sync/modules/index.ts similarity index 100% rename from src/plugins/sync/modules/index.js rename to src/plugins/sync/modules/index.ts diff --git a/src/plugins/sync/modules/list/index.js b/src/plugins/sync/modules/list/index.ts similarity index 83% rename from src/plugins/sync/modules/list/index.js rename to src/plugins/sync/modules/list/index.ts index 6a73b8a..0e2bf5d 100644 --- a/src/plugins/sync/modules/list/index.js +++ b/src/plugins/sync/modules/list/index.ts @@ -4,7 +4,7 @@ import { unregister as unregisterSend, } from './send' -export const registerListHandler = _socket => { +export const registerListHandler = (_socket: LX.Sync.Socket) => { unregisterListHandler() registerOn(_socket) registerSend(_socket) diff --git a/src/plugins/sync/modules/list/on.js b/src/plugins/sync/modules/list/on.js deleted file mode 100644 index 45969f8..0000000 --- a/src/plugins/sync/modules/list/on.js +++ /dev/null @@ -1,99 +0,0 @@ -import { getStore } from '@/store' -import { decryptMsg } from '../../client/utils' -import log from '../../log' -import { - setList, - listAdd, - listMove, - listAddMultiple, - listMoveMultiple, - listRemove, - listRemoveMultiple, - listClear, - updateMusicInfo, - createUserList, - removeUserList, - setUserListName, - setMusicPosition, - setUserListPosition, -} from '@/store/modules/list/action' - -const store = getStore() - -let socket - -const handleListAction = enMsg => { - const { action, data } = JSON.parse(decryptMsg(enMsg)) - if (typeof data == 'object') data.isSync = true - console.log(action) - log.info(action) - - switch (action) { - // case 'init_list': - // store.dispatch(initList(data)) - // break - case 'set_list': - store.dispatch(setList(data)) - break - case 'list_add': - store.dispatch(listAdd(data)) - break - case 'list_move': - store.dispatch(listMove(data)) - break - case 'list_add_multiple': - store.dispatch(listAddMultiple(data)) - break - case 'list_move_multiple': - store.dispatch(listMoveMultiple(data)) - break - case 'list_remove': - store.dispatch(listRemove(data)) - break - case 'list_remove_multiple': - store.dispatch(listRemoveMultiple(data)) - break - case 'list_clear': - store.dispatch(listClear(data)) - break - case 'update_music_info': - store.dispatch(updateMusicInfo(data)) - break - case 'create_user_list': - store.dispatch(createUserList(data)) - break - case 'remove_user_list': - store.dispatch(removeUserList(data)) - break - case 'set_user_list_name': - store.dispatch(setUserListName(data)) - break - case 'set_user_list_position': - store.dispatch(setUserListPosition(data)) - break - case 'set_music_position': - store.dispatch(setMusicPosition(data)) - break - // case 'moveup_user_list': - // store.dispatch(moveupUserList(data)) - // break - // case 'movedown_user_list': - // store.dispatch(movedownUserList(data)) - // break - default: - break - } -} - -export const register = _socket => { - unregister() - socket = _socket - socket.on('list:action', handleListAction) - // socket.on('list:add', addMusic) -} - -export const unregister = () => { - if (!socket) return - socket.off('list:action', handleListAction) - socket = null -} diff --git a/src/plugins/sync/modules/list/on.ts b/src/plugins/sync/modules/list/on.ts new file mode 100644 index 0000000..4faebae --- /dev/null +++ b/src/plugins/sync/modules/list/on.ts @@ -0,0 +1,64 @@ +import { decryptMsg } from '../../client/utils' +import log from '../../log' + + +let socket: LX.Sync.Socket | null +const handleRemoteListAction = (enMsg: string) => { + const { action, data } = JSON.parse(decryptMsg(enMsg)) as LX.Sync.ActionList + // console.log('handleRemoteListAction', action) + log.info(action) + + switch (action) { + case 'list_data_overwrite': + void global.list_event.list_data_overwrite(data, true) + break + case 'list_create': + void global.list_event.list_create(data.position, data.listInfos, true) + break + case 'list_remove': + void global.list_event.list_remove(data, true) + break + case 'list_update': + void global.list_event.list_update(data, true) + break + case 'list_update_position': + void global.list_event.list_update_position(data.position, data.ids, true) + break + case 'list_music_add': + void global.list_event.list_music_add(data.id, data.musicInfos, data.addMusicLocationType, true) + break + case 'list_music_move': + void global.list_event.list_music_move(data.fromId, data.toId, data.musicInfos, data.addMusicLocationType, true) + break + case 'list_music_remove': + void global.list_event.list_music_remove(data.listId, data.ids, true) + break + case 'list_music_update': + void global.list_event.list_music_update(data, true) + break + case 'list_music_update_position': + void global.list_event.list_music_update_position(data.listId, data.position, data.ids, true) + break + case 'list_music_overwrite': + void global.list_event.list_music_overwrite(data.listId, data.musicInfos, true) + break + case 'list_music_clear': + void global.list_event.list_music_clear(data, true) + break + default: + break + } +} + +export const register = (_socket: LX.Sync.Socket) => { + unregister() + socket = _socket + socket.on('list:action', handleRemoteListAction) + // socket.on('list:add', addMusic) +} + +export const unregister = () => { + if (!socket) return + socket.off('list:action', handleRemoteListAction) + socket = null +} diff --git a/src/plugins/sync/modules/list/send.js b/src/plugins/sync/modules/list/send.js deleted file mode 100644 index 36ac733..0000000 --- a/src/plugins/sync/modules/list/send.js +++ /dev/null @@ -1,16 +0,0 @@ -import { encryptMsg } from '../../client/utils' - -let socket - -export const sendListAction = (action, data) => { - if (!socket) return - socket.emit('list:action', encryptMsg(JSON.stringify({ action, data }))) -} - -export const register = _socket => { - socket = _socket -} - -export const unregister = () => { - socket = null -} diff --git a/src/plugins/sync/modules/list/send.ts b/src/plugins/sync/modules/list/send.ts new file mode 100644 index 0000000..e60580d --- /dev/null +++ b/src/plugins/sync/modules/list/send.ts @@ -0,0 +1,102 @@ +import { encryptMsg } from '../../client/utils' + +let socket: LX.Sync.Socket | null +let unregisterLocalListAction: (() => void) | null + +const handleLocalListAction = () => { + const list_data_overwrite = async(listData: MakeOptional<LX.List.ListDataFull, 'tempList'>, isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_data_overwrite', data: listData }) + } + const list_create = async(position: number, listInfos: LX.List.UserListInfo[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_create', data: { position, listInfos } }) + } + const list_remove = async(ids: string[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_remove', data: ids }) + } + const list_update = async(lists: LX.List.UserListInfo[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_update', data: lists }) + } + const list_update_position = async(position: number, ids: string[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_update_position', data: { position, ids } }) + } + const list_music_overwrite = async(listId: string, musicInfos: LX.Music.MusicInfo[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_overwrite', data: { listId, musicInfos } }) + } + const list_music_add = async(id: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType, isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_add', data: { id, musicInfos, addMusicLocationType } }) + } + const list_music_move = async(fromId: string, toId: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType, isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_move', data: { fromId, toId, musicInfos, addMusicLocationType } }) + } + const list_music_remove = async(listId: string, ids: string[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_remove', data: { listId, ids } }) + } + const list_music_update = async(musicInfos: LX.List.ListActionMusicUpdate, isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_update', data: musicInfos }) + } + const list_music_clear = async(ids: string[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_clear', data: ids }) + } + const list_music_update_position = async(listId: string, position: number, ids: string[], isRemote: boolean = false) => { + if (isRemote) return + sendListAction({ action: 'list_music_update_position', data: { listId, position, ids } }) + } + global.list_event.on('list_data_overwrite', list_data_overwrite) + global.list_event.on('list_create', list_create) + global.list_event.on('list_remove', list_remove) + global.list_event.on('list_update', list_update) + global.list_event.on('list_update_position', list_update_position) + global.list_event.on('list_music_overwrite', list_music_overwrite) + global.list_event.on('list_music_add', list_music_add) + global.list_event.on('list_music_move', list_music_move) + global.list_event.on('list_music_remove', list_music_remove) + global.list_event.on('list_music_update', list_music_update) + global.list_event.on('list_music_clear', list_music_clear) + global.list_event.on('list_music_update_position', list_music_update_position) + return () => { + global.list_event.off('list_data_overwrite', list_data_overwrite) + global.list_event.off('list_create', list_create) + global.list_event.off('list_remove', list_remove) + global.list_event.off('list_update', list_update) + global.list_event.off('list_update_position', list_update_position) + global.list_event.off('list_music_overwrite', list_music_overwrite) + global.list_event.off('list_music_add', list_music_add) + global.list_event.off('list_music_move', list_music_move) + global.list_event.off('list_music_remove', list_music_remove) + global.list_event.off('list_music_update', list_music_update) + global.list_event.off('list_music_clear', list_music_clear) + global.list_event.off('list_music_update_position', list_music_update_position) + } +} + + +export const sendListAction = (action: LX.Sync.ActionList) => { + // console.log('sendListAction', action.action) + if (!socket) return + socket.emit('list:action', encryptMsg(JSON.stringify(action))) +} + +export const register = (_socket: LX.Sync.Socket) => { + unregister() + socket = _socket + unregisterLocalListAction = handleLocalListAction() +} + +export const unregister = () => { + socket = null + if (unregisterLocalListAction) { + unregisterLocalListAction() + unregisterLocalListAction = null + } +} diff --git a/src/resources/fonts/icomoon.ttf b/src/resources/fonts/icomoon.ttf index 96df7084d5ccfdd0e418c4221ee2baf4ccc1e6f7..ad3ecd824020a2c3d4363c8d9394316b8ac895c9 100644 GIT binary patch literal 8060 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 N0n~25SN`7T{{TioQ3wD4 delta 2960 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 axDoCntKE9eYFx3Ab`kjD#7{1Jm+-&kmW9Ru diff --git a/src/resources/fonts/selection.json b/src/resources/fonts/selection.json index bea56e7..44d3227 100644 --- a/src/resources/fonts/selection.json +++ b/src/resources/fonts/selection.json @@ -1 +1 @@ -{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M666.587 719.627l-207.627-207.627 207.627-208.080-63.92-63.92-272 272 272 272 63.92-64.373z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-chevron-left"]},"attrs":[{}],"properties":{"order":845,"id":23,"name":"chevron-left","prevSize":32,"code":59669},"setIdx":0,"setId":3,"iconIdx":0},{"icon":{"paths":["M366.507 707.413l195.413-195.413-195.413-195.84 60.16-60.16 256 256-256 256-60.16-60.587z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-chevron-right"]},"attrs":[{}],"properties":{"order":853,"id":31,"name":"chevron-right","prevSize":32,"code":59671},"setIdx":0,"setId":3,"iconIdx":1},{"icon":{"paths":["M842.667 247.937l-66.604-66.604-264.063 264.063-264.063-264.063-66.604 66.604 264.063 264.063-264.063 264.063 66.604 66.604 264.063-264.063 264.063 264.063 66.604-66.604-264.063-264.063 264.063-264.063z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-remove"]},"attrs":[{}],"properties":{"order":828,"id":17,"prevSize":32,"code":59663,"name":"remove"},"setIdx":0,"setId":3,"iconIdx":2},{"icon":{"paths":["M85.333 170.667v128h213.333v512h128v-512h213.333v-128h-554.667zM896 384h-384v128h128v298.667h128v-298.667h128v-128z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-font-size"]},"attrs":[{}],"properties":{"order":852,"id":30,"name":"font-size","prevSize":32,"code":59676},"setIdx":0,"setId":3,"iconIdx":3},{"icon":{"paths":["M932.54 573.38c17.54-29.7 27.46-61.38 27.46-99.68 0-88.030-74.436-171.16-171.64-171.16h-72.96c9.84-25.62 17.7-56.26 17.7-93.080 0-145.588-75.38-209.46-190.54-209.46-123.214 0-116.186 189.866-143.52 217.2-45.494 45.494-99.23 132.894-137.52 166.8h-197.52c-35.346 0-64 28.654-64 64v480c0 35.346 28.654 64 64 64h128c29.786 0 54.816-20.348 61.956-47.9 89.018 2.002 150.12 79.88 355.604 79.88 14.44 0 30.44 0.020 44.44 0.020 154.234 0 223.972-78.846 225.88-190.66 26.638-36.85 40.598-86.244 34.68-133.98 19.708-36.904 27.328-80.686 17.98-125.98zM809.040 681.040c25.12 42.26 2.52 98.82-27.88 115.14 15.4 97.56-35.216 131.8-106.24 131.8h-75.64c-143.278 0-236.058-75.64-343.28-75.64v-372.34h21.84c56.72 0 135.96-141.78 189.080-194.92 56.72-56.72 37.82-151.26 75.64-189.080 94.54 0 94.54 65.96 94.54 113.46 0 78.34-56.72 113.44-56.72 189.080h207.98c42.22 0 75.46 37.82 75.64 75.64 0.18 37.8-25.64 75.62-44.54 75.62 26.978 29.11 32.742 90.472-10.42 131.24zM176 864c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-thumbs-up"]},"attrs":[{}],"properties":{"order":851,"id":29,"name":"thumbs-up","prevSize":32,"code":59675},"setIdx":0,"setId":3,"iconIdx":4},{"icon":{"paths":["M666.667 473.333h-309.333v-77.333h309.333v77.333zM898.667 202.667v464c0 42.92-34.413 77.333-77.333 77.333h-235.867l-143.067 143.453c-7.733 7.347-17.4 11.213-27.067 11.213h-19.333c-21.267 0-38.667-17.4-38.667-38.667v-116h-154.667c-42.533 0-77.333-34.413-77.333-77.333v-464c0-42.92 34.8-77.333 77.333-77.333h618.667c42.92 0 77.333 34.8 77.333 77.333zM821.333 202.667h-618.667v464h232v119.093l119.093-119.093h267.573v-464z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-comment"]},"attrs":[{}],"properties":{"order":850,"id":28,"name":"comment","prevSize":32,"code":59674},"setIdx":0,"setId":3,"iconIdx":5},{"icon":{"paths":["M342.759 158.32l-52.579-62.85-188.959 158.149 52.99 62.85 188.548-158.149zM922.779 254.031l-188.959-158.559-52.99 62.85 188.959 158.559 52.99-62.85zM512 183.378c-204.179 0-369.7 165.521-369.7 369.7v0c0 204.179 165.521 369.7 369.7 369.7v0c204.179 0 369.7-165.521 369.7-369.7v0c0-204.179-165.521-369.7-369.7-369.7v0zM512 840.622c-158.807 0-287.545-128.738-287.545-287.545v0c0-158.807 128.738-287.545 287.545-287.545v0c158.807 0 287.545 128.738 287.545 287.545v0c0 158.807-128.738 287.545-287.545 287.545v0zM388.766 470.921h149.112l-149.112 172.526v73.94h246.466v-82.155h-149.112l149.112-172.526v-73.94h-246.466v82.155z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-alarm-snooze"]},"attrs":[{}],"properties":{"order":849,"id":27,"name":"alarm-snooze","prevSize":32,"code":59673},"setIdx":0,"setId":3,"iconIdx":6},{"icon":{"paths":["M85.333 682.667h341.333v-85.333h-341.333zM768 597.333v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333zM597.333 256h-512v85.333h512zM597.333 426.667h-512v85.333h512v-85.333z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-playlist-plus"]},"attrs":[{}],"properties":{"order":847,"id":26,"name":"playlist-plus","prevSize":32,"code":59672},"setIdx":0,"setId":3,"iconIdx":7},{"icon":{"paths":["M512 340s-124.938-153.616-282-48c-140.476 153.648-60.182 358.16 282 538 42.678-16.722 88-34 88-34 38-12.784 56.31 41.484 32 52-55.178 23.87 11.948-8.282-120 56-583.048-276.3-424.014-605.938-322-670 173.6-131.78 324 20 324 20s116.316-121.046 280-46c208.064 117.056 128 323.8 90 392-18.304 30.308-79.118-8.318-64-32 40.68-75.776 91.044-214.698-50-300-140.162-60.16-258 72-258 72z","M766 736c-16.2 0.020-49.54-0.31-80 0-31.426 0.32-30.564 69.928 0 70 30.2 0.070 80 0 80 0s-0.136 85.6 0 96c0.416 31.922 64.522 31.582 64-2-0.144-9.298 0-94 0-94s76.016-0.062 86 0c31.464 0.092 29.894-67.96-2-68-9.768 0.186-84 0-84 0s-0.106-56.682 0-92c0.092-30.378-64.056-31.024-64 0 0.054 29.48-0.436 84.278 0 90z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-add-music"]},"attrs":[{},{}],"properties":{"order":843,"id":25,"name":"add-music","prevSize":32,"code":59670},"setIdx":0,"setId":3,"iconIdx":8},{"icon":{"paths":["M512 682.667c47.128 0 85.333 38.205 85.333 85.333v0c0 47.128-38.205 85.333-85.333 85.333v0c-47.128 0-85.333-38.205-85.333-85.333v0c0-47.128 38.205-85.333 85.333-85.333v0zM512 426.667c47.128 0 85.333 38.205 85.333 85.333v0c0 47.128-38.205 85.333-85.333 85.333v0c-47.128 0-85.333-38.205-85.333-85.333v0c0-47.128 38.205-85.333 85.333-85.333v0zM512 170.667c47.128 0 85.333 38.205 85.333 85.333v0c0 47.128-38.205 85.333-85.333 85.333v0c-47.128 0-85.333-38.205-85.333-85.333v0c0-47.128 38.205-85.333 85.333-85.333v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-dots-vertical"]},"attrs":[{}],"properties":{"order":833,"id":21,"name":"dots-vertical","prevSize":32,"code":59667},"setIdx":0,"setId":3,"iconIdx":9},{"icon":{"paths":["M256 512h128l-170.667-170.667-170.667 170.667h128c0 188.513 152.82 341.333 341.333 341.333v0c66.987 0 129.28-19.627 181.76-52.907l-62.293-62.293c-35.413 19.2-76.8 29.867-119.467 29.867-141.385 0-256-114.615-256-256v0zM330.24 223.573l62.293 62.293c35.84-18.773 76.8-29.867 119.467-29.867 141.385 0 256 114.615 256 256v0h-128l170.667 170.667 170.667-170.667-128 0c0-188.513-152.82-341.333-341.333-341.333v0c-66.987 0-129.28 19.627-181.76 52.907z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-autorenew"]},"attrs":[{}],"properties":{"order":832,"id":20,"name":"autorenew","prevSize":32,"code":59665},"setIdx":0,"setId":3,"iconIdx":10},{"icon":{"paths":["M426.667 170.667l85.333 85.333h341.333c47.128 0 85.333 38.205 85.333 85.333v0 426.667c0 47.128-38.205 85.333-85.333 85.333v0h-682.667c-47.36 0-85.333-38.4-85.333-85.333v-512c0-47.36 37.973-85.333 85.333-85.333h256zM640 384v128h-128v85.333h128v128h85.333v-128h128v-85.333h-128v-128h-85.333z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-folder-plus"]},"attrs":[{}],"properties":{"order":831,"id":19,"name":"folder-plus","prevSize":32,"code":59666},"setIdx":0,"setId":3,"iconIdx":11},{"icon":{"paths":["M570.952 545.942l-388.688 388.686c-18.746 18.746-49.138 18.746-67.882 0l-45.334-45.334c-18.714-18.714-18.75-49.044-0.080-67.802l308.042-309.492-308.042-309.49c-18.67-18.758-18.634-49.088 0.080-67.802l45.334-45.334c18.746-18.746 49.138-18.746 67.882 0l388.686 388.686c18.746 18.744 18.746 49.136 0.002 67.882z"],"attrs":[{}],"width":640,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-chevron-right"]},"attrs":[{}],"properties":{"order":854,"id":18,"name":"chevron-right-2","prevSize":32,"code":59664},"setIdx":0,"setId":3,"iconIdx":12},{"icon":{"paths":["M633.703 512l365.094-365.094c33.607-33.607 33.607-88.095 0-121.698-33.607-33.607-88.091-33.607-121.698 0l-365.099 365.099-365.099-365.104c-33.607-33.607-88.091-33.607-121.698 0-33.603 33.607-33.603 88.095 0 121.698l365.099 365.094-365.099 365.099c-33.603 33.607-33.603 88.095 0 121.698 33.607 33.607 88.091 33.607 121.698 0l365.099-365.099 365.099 365.099c33.603 33.607 88.091 33.607 121.698 0s33.607-88.091 0-121.698l-365.094-365.094z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-close"]},"attrs":[{}],"properties":{"order":826,"id":15,"name":"close","prevSize":32,"code":59662},"setIdx":0,"setId":3,"iconIdx":13},{"icon":{"paths":["M298.667 298.667h426.667v128l170.667-170.667-170.667-170.667v128h-512v256h85.333v-170.667zM725.333 725.333h-426.667v-128l-170.667 170.667 170.667 170.667v-128h512v-256h-85.333v170.667z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-list-loop"],"defaultCode":59648},"attrs":[{}],"properties":{"order":809,"id":2,"name":"list-loop","prevSize":32,"code":59648},"setIdx":0,"setId":3,"iconIdx":14},{"icon":{"paths":["M856 213.862v567.6h-120.4v-303.862c0-45.862 0-68.8 0-80.262s-5.738-17.2-17.2-22.938c-5.738-5.738-28.662-5.738-57.338-5.738h-11.462v-63.062c57.338-17.2 103.2-45.862 131.862-91.738h74.538z","M168 856l487.338-344-487.338-344z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-single"],"defaultCode":59649},"attrs":[{},{}],"properties":{"order":810,"id":3,"name":"single","prevSize":32,"code":59649},"setIdx":0,"setId":3,"iconIdx":15},{"icon":{"paths":["M298.667 298.667h426.667v128l170.667-170.667-170.667-170.667v128h-512v256h85.333v-170.667zM725.333 725.333h-426.667v-128l-170.667 170.667 170.667 170.667v-128h512v-256h-85.333v170.667zM554.667 640v-256h-42.667l-85.333 42.667v42.667h64v170.667h64z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-single-loop"],"defaultCode":59650},"attrs":[{}],"properties":{"order":811,"id":4,"name":"single-loop","prevSize":32,"code":59650},"setIdx":0,"setId":3,"iconIdx":16},{"icon":{"paths":["M167.065 412.951h594.284v99.049h-594.284zM167.065 214.858h594.284v99.049h-594.284zM167.065 611.049h396.191v99.049h-396.191zM662.301 611.049v297.142l247.617-148.574z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-list-order"],"defaultCode":59651},"attrs":[{}],"properties":{"order":812,"id":5,"name":"list-order","prevSize":32,"code":59651},"setIdx":0,"setId":3,"iconIdx":17},{"icon":{"paths":["M451.84 391.253l-221.013-220.587-60.16 60.16 220.587 220.587 60.587-60.16zM618.667 170.667l87.040 87.040-535.040 535.467 60.16 60.16 535.467-535.040 87.040 87.040v-234.667h-234.667zM632.747 572.16l-60.16 60.16 133.547 133.547-87.467 87.467h234.667v-234.667l-87.040 87.040-133.547-133.547z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-list-random"],"defaultCode":59652},"attrs":[{}],"properties":{"order":813,"id":6,"name":"list-random","prevSize":32,"code":59652},"setIdx":0,"setId":3,"iconIdx":18},{"icon":{"paths":["M52.504 168.606v686.806c0 93.13 61.701 168.588 137.82 168.588 76.127 0 137.865-75.462 137.865-168.588v-686.806c0-93.085-61.738-168.577-137.865-168.577-76.119-0.030-137.82 75.492-137.82 168.577z","M833.635 0c-76.112 0-137.813 75.492-137.813 168.577v686.806c0 93.13 61.701 168.558 137.813 168.558s137.861-75.433 137.861-168.558v-686.776c-0.033-93.085-61.749-168.606-137.861-168.606z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-pause"]},"attrs":[{},{}],"properties":{"order":808,"id":1,"name":"pause","prevSize":32,"code":59661},"setIdx":0,"setId":3,"iconIdx":19},{"icon":{"paths":["M209.962 21.763c-88.986-51.043-161.129-9.228-161.129 93.323v756.778c0 102.653 72.144 144.414 161.129 93.419l661.462-379.344c89.016-51.061 89.016-133.789 0-184.838l-661.462-379.338z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-play"],"defaultCode":59653},"attrs":[{}],"properties":{"order":814,"id":7,"name":"play","prevSize":32,"code":59653},"setIdx":0,"setId":3,"iconIdx":20},{"icon":{"paths":["M96.902 152.172c-53.489 0-96.898 64.037-96.898 143.005v433.651c0 78.944 43.432 143 96.898 143 53.545 0 96.902-64.056 96.902-143v-119.627l352.203 201.97c67.023 38.471 121.477 8.351 123.795-67l-225.149-129.123c-44.415-25.451-69.917-63.036-69.917-103.083 0-40.084 25.502-77.637 69.917-103.134l225.149-129.072c-2.318-75.295-56.772-105.452-123.795-66.986l-352.203 201.919v-119.515c0.023-78.995-43.358-143.005-96.902-143.005z","M502.256 583.092l397.712 228.079c68.475 39.291 124.032 7.103 124.032-71.883v-454.684c0-78.94-55.557-111.137-124.032-71.832l-397.74 228.019c-68.452 39.301-68.452 103.009 0.028 142.3z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-prevMusic"],"defaultCode":59654},"attrs":[{},{}],"properties":{"order":838,"id":22,"prevSize":32,"code":59668,"name":"prevMusic"},"setIdx":0,"setId":3,"iconIdx":21},{"icon":{"paths":["M927.098 871.828c53.489 0 96.898-64.037 96.898-143.005v-433.651c0-78.944-43.432-143-96.898-143-53.545 0-96.902 64.056-96.902 143v119.627l-352.203-201.97c-67.023-38.471-121.477-8.351-123.795 67l225.149 129.123c44.415 25.451 69.917 63.036 69.917 103.083 0 40.084-25.502 77.637-69.917 103.134l-225.149 129.072c2.318 75.295 56.772 105.452 123.795 66.986l352.203-201.919v119.515c-0.023 78.995 43.358 143.005 96.902 143.005z","M521.744 440.908l-397.712-228.079c-68.475-39.291-124.032-7.103-124.032 71.883v454.684c0 78.94 55.557 111.137 124.032 71.832l397.74-228.019c68.452-39.301 68.452-103.009-0.028-142.3z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-nextMusic"],"defaultCode":59654},"attrs":[{},{}],"properties":{"order":836,"id":8,"name":"nextMusic","prevSize":32,"code":59654},"setIdx":0,"setId":3,"iconIdx":22},{"icon":{"paths":["M583.263 738.762c-122.639 0-222.058-99.419-222.058-222.058s99.419-222.058 222.058-222.058c122.639 0 222.058 99.419 222.058 222.058v-0c-0.147 122.58-99.478 221.911-222.044 222.058l-0.014 0zM583.263 387.95c-71.109 0-128.754 57.645-128.754 128.754s57.645 128.754 128.754 128.754c71.109 0 128.754-57.645 128.754-128.754v0c-0.080-71.076-57.677-128.674-128.746-128.754l-0.008-0z","M1155.053 473.653l-248.686-430.602c-15.186-25.863-42.83-42.97-74.477-43.051l-0.012-0h-497.208c-31.693 0.050-59.378 17.165-74.362 42.646l-0.22 0.405-248.592 430.602c-7.228 12.356-11.496 27.205-11.496 43.051s4.268 30.695 11.717 43.461l-0.221-0.41 248.686 430.602c15.201 25.879 42.875 42.992 74.55 43.051l0.009 0h497.137c31.685-0.054 59.362-17.168 74.339-42.646l0.22-0.405 248.686-430.602c7.206-12.341 11.461-27.168 11.461-42.99 0-15.871-4.281-30.742-11.752-43.521l0.221 0.409zM344.242 930.696l-239.020-413.992 239.020-414.015h478.064l239.020 414.015-239.020 413.992z"],"attrs":[{},{}],"width":1157,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-setting"],"defaultCode":59655},"attrs":[{},{}],"properties":{"order":816,"id":9,"name":"setting","prevSize":32,"code":59655},"setIdx":0,"setId":3,"iconIdx":23},{"icon":{"paths":["M974.751 1024h-925.525c-27.228-0.19-49.226-22.307-49.226-49.561 0-0.119 0-0.238 0.001-0.357l-0 0.018v-414.489c-0.001-0.1-0.001-0.219-0.001-0.338 0-27.254 21.999-49.371 49.208-49.561l0.018-0c27.228 0.19 49.226 22.307 49.226 49.561 0 0.119-0 0.238-0.001 0.357l0-0.018v364.613h827.075v-365.504c0-27.193 22.044-49.237 49.237-49.237s49.237 22.044 49.237 49.237v0 415.38c0 0.007 0 0.016 0 0.025 0 13.741-5.516 26.193-14.456 35.262l0.006-0.006c-8.86 9.010-21.175 14.599-34.796 14.618l-0.004 0z","M512 582.803c-25.964-0.191-46.938-21.283-46.938-47.273 0-0.102 0-0.204 0.001-0.306l-0 0.016v-487.676c0-25.936 21.025-46.961 46.961-46.961s46.961 21.025 46.961 46.961v0 487.58c0.001 0.115 0.002 0.25 0.002 0.386 0 26.008-21.002 47.111-46.972 47.274l-0.016 0z","M512 658.929c-0.024 0-0.052 0-0.080 0-13.966 0-26.633-5.558-35.912-14.582l0.012 0.012-193.361-186.497c-8.999-8.738-14.582-20.95-14.582-34.466 0-12.694 4.925-24.238 12.969-32.824l-0.025 0.027c8.515-9.098 20.596-14.768 34.002-14.768 12.587 0 24.006 4.998 32.382 13.118l164.57 158.742 164.582-158.754c8.364-8.108 19.783-13.106 32.37-13.106 13.406 0 25.487 5.67 33.978 14.742l0.024 0.026c8.019 8.56 12.945 20.104 12.945 32.798 0 13.516-5.584 25.728-14.571 34.454l-0.012 0.011-193.385 186.521c-9.268 8.998-21.928 14.546-35.885 14.546-0.008 0-0.016-0-0.024-0l0.001 0zM540.755 575.41v0z"],"attrs":[{},{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-download-2"],"defaultCode":59656},"attrs":[{},{},{}],"properties":{"order":817,"id":10,"name":"download-2","prevSize":32,"code":59656},"setIdx":0,"setId":3,"iconIdx":24},{"icon":{"paths":["M582.103 1024c-0.017 0-0.037 0-0.057 0-9.91 0-19.136-2.929-26.859-7.969l0.189 0.116-0.366-0.236c-37.015-20.471-322.346-182.272-474.148-387.423-50.493-68.213-80.822-154.009-80.822-246.889 0-19.705 1.365-39.091 4.006-58.069l-0.25 2.192c14.345-104.709 67.040-196.329 148.372-258.055 92.563-70.286 201.617-86.228 315.357-45.862 43.793 16.084 81.686 36.311 116.214 60.949l-1.48-1.003c33.049-23.635 70.942-43.862 111.376-58.855l3.359-1.091c113.792-40.339 222.847-24.423 315.383 45.862 81.333 61.831 134.027 153.477 148.372 258.055 2.401 16.819 3.771 36.243 3.771 55.988 0 92.855-30.315 178.629-81.587 247.965l0.802-1.136c-152.718 206.198-440.432 368.811-474.802 387.658-7.598 4.896-16.87 7.819-26.822 7.853l-0.009 0zM347.581 105.677c-43.428 0-89.997 12.46-135.598 47.119-59.056 44.894-97.353 111.593-107.798 187.821-1.757 12.365-2.76 26.647-2.76 41.162 0 68.642 22.432 132.045 60.365 183.279l-0.591-0.835c123.426 166.67 348.157 304.781 421.087 347.031 73.008-42.171 297.661-180.361 421.087-347.031 37.343-50.395 59.775-113.796 59.775-182.436 0-14.518-1.004-28.802-2.945-42.786l0.184 1.616c-10.471-76.202-48.742-142.901-107.824-187.821-159.131-120.939-330.121 28.271-337.398 34.685-8.691 7.859-20.269 12.668-32.97 12.668s-24.279-4.809-33.013-12.706l0.043 0.038c-5.052-4.555-93.557-81.804-201.643-81.804z"],"attrs":[{}],"width":1165,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-love"],"defaultCode":59657},"attrs":[{}],"properties":{"order":818,"id":11,"name":"love","prevSize":32,"code":59657},"setIdx":0,"setId":3,"iconIdx":25},{"icon":{"paths":["M968.321 913.171h-912.93c-30.591 0-55.39 24.799-55.39 55.39s24.799 55.39 55.39 55.39v0h912.93c30.591 0 55.39-24.799 55.39-55.39s-24.799-55.39-55.39-55.39v0z","M931.065 848.942c30.591 0 55.39-24.799 55.39-55.39v0-738.161c0-30.591-24.799-55.39-55.39-55.39s-55.39 24.799-55.39 55.39v0 738.137c-0 0.007-0 0.016-0 0.024 0 30.591 24.799 55.39 55.39 55.39l0-0z","M511.735 848.942c30.591 0 55.39-24.799 55.39-55.39v0-504.896c0-30.591-24.799-55.39-55.39-55.39s-55.39 24.799-55.39 55.39v0 504.871c-0 0.007-0 0.016-0 0.024 0 30.591 24.799 55.39 55.39 55.39l0-0z","M92.406 848.942c30.591 0 55.39-24.799 55.39-55.39v0-331.62c0-30.591-24.799-55.39-55.39-55.39s-55.39 24.799-55.39 55.39v0 331.596c-0 0.007-0 0.016-0 0.024 0 30.591 24.799 55.39 55.39 55.39l0-0z"],"attrs":[{},{},{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-leaderboard"],"defaultCode":59658},"attrs":[{},{},{},{}],"properties":{"order":819,"id":12,"name":"leaderboard","prevSize":32,"code":59658},"setIdx":0,"setId":3,"iconIdx":26},{"icon":{"paths":["M48.166 895.663c-26.601 0-48.166-21.564-48.166-48.166v0-799.332c0-26.601 21.564-48.166 48.166-48.166v0h755.983c26.601 0 48.166 21.564 48.166 48.166s-21.564 48.166-48.166 48.166v0h-707.817v751.166c0 26.601-21.564 48.166-48.166 48.166v0z","M975.834 1024h-736.933c-26.601 0-48.166-21.564-48.166-48.166v0-354.499c0-26.601 21.564-48.166 48.166-48.166s48.166 21.564 48.166 48.166v0 306.333h640.602v-633.859h-515.372c-26.601 0-48.166-21.564-48.166-48.166s21.564-48.166 48.166-48.166v0h563.537c26.601 0 48.166 21.564 48.166 48.166v0 730.19c0 26.601-21.564 48.166-48.166 48.166v0z","M623.744 786.76c-23.941 0-43.349-19.408-43.349-43.349v0-346.046c0-23.941 19.408-43.349 43.349-43.349s43.349 19.408 43.349 43.349v0 345.829c0 0.064 0.001 0.141 0.001 0.217 0 23.941-19.408 43.349-43.349 43.349-0 0-0-0-0.001-0l0 0z","M764.002 581.238c-0.010 0-0.022 0-0.034 0-11.992 0-22.847-4.869-30.695-12.739l-0.001-0.001-140.306-140.306c-7.864-7.864-12.729-18.729-12.729-30.73 0-24.001 19.457-43.458 43.458-43.458 12.001 0 22.865 4.864 30.73 12.729l140.306 140.33c7.964 7.864 12.896 18.781 12.896 30.851 0 23.941-19.408 43.349-43.349 43.349-0.097 0-0.195-0-0.292-0.001l0.015 0z","M537.239 867.414c-0.021 0-0.047 0-0.072 0-71.756 0-129.927-58.17-129.927-129.927s58.17-129.927 129.927-129.927c71.756 0 129.927 58.17 129.927 129.927l-0-0c-0.068 71.704-58.157 129.817-129.844 129.927l-0.010 0zM537.239 694.499c-23.741 0-42.988 19.246-42.988 42.988s19.246 42.988 42.988 42.988c23.741 0 42.988-19.246 42.988-42.988h0c-0.027-23.73-19.257-42.96-42.985-42.988l-0.003-0z"],"attrs":[{},{},{},{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-album"],"defaultCode":59659},"attrs":[{},{},{},{},{}],"properties":{"order":820,"id":13,"name":"album","prevSize":32,"code":59659},"setIdx":0,"setId":3,"iconIdx":27},{"icon":{"paths":["M743.965 130.818c-78.798-80.684-188.672-130.72-310.232-130.72-239.41 0-433.49 194.080-433.49 433.49s194.080 433.49 433.49 433.49c117.777 0 224.584-46.97 302.71-123.199l-0.089 0.086c81.075-78.661 131.39-188.632 131.39-310.355 0-117.951-47.245-224.867-123.843-302.857l0.063 0.064zM669.092 675.089c-60.675 59.106-143.667 95.56-235.173 95.56-186.208 0-337.159-150.951-337.159-337.159 0-186.057 150.707-336.914 336.707-337.159l0.023-0c0.077-0 0.168-0 0.258-0 186.208 0 337.159 150.951 337.159 337.159 0 94.665-39.014 180.218-101.841 241.457l-0.071 0.069z","M1007.214 928.873l-159.5-163.763c-10.070-10.316-24.114-16.714-39.652-16.714-30.592 0-55.391 24.8-55.391 55.391 0 15.053 6.005 28.704 15.75 38.688l-0.011-0.011 160.536 164.823c10.025 10.268 24.006 16.636 39.474 16.636 2.35 0 4.666-0.147 6.939-0.432l-0.271 0.028c10.465-1.218 19.813-5.231 27.5-11.264l-0.118 0.089c13.151-10.191 21.535-25.989 21.535-43.745 0-0.259-0.002-0.517-0.005-0.775l0 0.039c-0.431-15.266-6.763-28.973-16.785-38.99l-0-0z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-search-2"],"defaultCode":59660},"attrs":[{},{}],"properties":{"order":821,"id":14,"name":"search-2","prevSize":32,"code":59660},"setIdx":0,"setId":3,"iconIdx":28}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon","majorVersion":1,"minorVersion":0},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false,"autoHost":false,"noie8":true,"ie7":false,"showSelector":false,"showMetrics":false,"showMetadata":false,"showVersion":false},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon","name":"icomoon"},"historySize":50,"showCodes":true,"gridSize":16,"showGrid":false,"quickUsageToken":{"UntitledProject":"N2VjNTI2ODAzZWI0N2M1NzhlMjNhYzY3OTEwMWRiMDEjMSMxNjA0MzkyNDUxIyMj"},"showLiga":false}} \ No newline at end of file +{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M512 141.505c-124.939 0-235.61 62.225-302.634 157.148-3.539 4.956-5.656 11.137-5.656 17.81 0 17.056 13.823 30.878 30.878 30.878 10.383 0 19.568-5.121 25.167-12.98l0.066-0.095c55.935-79.215 147.706-131.016 252.185-131.016 166.341 0 300.996 130.715 308.062 295.278l-49.532-49.532c-5.619-5.779-13.464-9.368-22.152-9.368v0c-17.051 0.004-30.866 13.823-30.866 30.876 0 8.685 3.587 16.53 9.355 22.141l92.631 92.631c5.585 5.583 13.307 9.041 21.831 9.041s16.24-3.452 21.831-9.041l7.154-7.154c2.263-1.729 4.223-3.683 5.897-5.874l0.056-0.072 79.519-79.519c5.857-5.628 9.492-13.526 9.492-22.273 0-17.055-13.823-30.876-30.876-30.876-8.746 0-16.648 3.637-22.262 9.481l-0.011 0.012-31.239 31.239c-16.193-189.427-175.348-338.737-368.888-338.737zM182.23 429.669c-8.362 0.125-15.906 3.557-21.386 9.047l-7.035 7.035c-2.334 1.766-4.344 3.777-6.053 6.036l-0.057 0.075-79.479 79.479c-5.857 5.628-9.492 13.526-9.492 22.273 0 17.055 13.823 30.876 30.876 30.876 8.746 0 16.648-3.637 22.262-9.481l0.011-0.012 31.239-31.239c16.193 189.427 175.348 338.737 368.888 338.737 124.939 0 235.61-62.225 302.634-157.148 3.539-4.956 5.656-11.137 5.656-17.81 0-17.056-13.823-30.878-30.878-30.878-10.383 0-19.568 5.121-25.167 12.98l-0.066 0.095c-55.935 79.215-147.706 131.016-252.185 131.016-166.341 0-300.996-130.715-308.062-295.278l49.532 49.532c5.628 5.857 13.526 9.492 22.273 9.492 17.055 0 30.876-13.823 30.876-30.876 0-8.746-3.637-16.648-9.481-22.262l-0.012-0.011-92.624-92.624c-5.586-5.588-13.312-9.050-21.835-9.050-0.154 0-0.3 0.001-0.455 0.003h0.022z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["available_updates"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":882,"id":46,"name":"available_updates","prevSize":32,"code":59665},"setIdx":0,"setId":3,"iconIdx":0},{"icon":{"paths":["M311.416 63.632c-54.276 0-101.956 28.312-129.33 71.024 3.775-0.236 7.564-0.23 11.339-0.23h542.761c97.696 0 176.986 79.29 176.986 176.986v377.57c0 3.775 0.006 7.564-0.23 11.339 42.712-27.374 71.024-75.054 71.024-129.33v-259.58c0-136.633-111.147-247.78-247.78-247.78h-424.77zM193.425 181.626c-84.29 0-153.388 69.097-153.388 153.388v353.972c0 84.29 69.097 153.388 153.388 153.388h11.799v107.021c0 46.048 56.464 74.845 93.702 47.751l212.798-154.773h200.863c84.29 0 153.388-69.097 153.388-153.388v-353.972c0-84.29-69.097-153.388-153.388-153.388h-519.162zM193.425 252.42h519.162c46.018 0 82.594 36.575 82.594 82.594v353.972c0 46.018-36.575 82.594-82.594 82.594h-212.383c-0.001 0-0.004 0-0.006 0-7.828 0-15.066 2.542-20.925 6.845l0.097-0.070-203.349 147.903v-119.28c-0.002-19.549-15.848-35.395-35.397-35.397h-47.197c-46.018 0-82.594-36.575-82.594-82.594v-353.972c0-5.752 0.568-11.372 1.66-16.779 7.632-37.831 40.671-65.815 80.934-65.815z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-comment"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":885,"id":45,"name":"comment","prevSize":32,"code":59672},"setIdx":0,"setId":3,"iconIdx":1},{"icon":{"paths":["M512 92.955c-231.063 0-419.045 187.982-419.045 419.045s187.982 419.045 419.045 419.045c11.039 0 21.862-0.797 32.697-1.634-17.366-18.376-32.24-39.139-43.99-61.792-191.152-6.030-344.891-163.022-344.891-355.611 0-196.407 159.784-356.19 356.19-356.19 192.588 0 349.581 153.752 355.611 344.891 22.674 11.75 43.422 26.596 61.792 43.99 0.841-10.832 1.634-21.651 1.634-32.697 0-231.063-187.982-419.045-419.045-419.045zM521.982 260.128c-17.144 0.276-30.937 14.239-30.937 31.432 0 0.156 0.001 0.314 0.005 0.469v-0.027 219.998h-136.192c-0.137-0.002-0.291-0.003-0.447-0.003-17.354 0-31.432 14.070-31.432 31.432s14.070 31.432 31.432 31.432c0.154 0 0.307-0.001 0.467-0.003h167.597c17.352-0.002 31.432-14.070 31.432-31.432v0-251.432c0.002-0.137 0.003-0.298 0.003-0.454 0-17.354-14.070-31.432-31.432-31.432-0.175 0-0.348 0.001-0.522 0.005h0.027zM742.477 512c-127.289 0-230.477 103.192-230.477 230.477s103.192 230.477 230.477 230.477c127.289 0 230.477-103.192 230.477-230.477s-103.192-230.477-230.477-230.477zM742.477 574.855c0.299 0 0.507 0.164 0.78 0.164 2.368 0.103 4.736 0.412 7.001 1.306l78.402 31.382c24.007 9.615 39.527 32.498 39.527 58.356v10.477c0 6.957-3.467 13.449-9.212 17.352-3.52 2.392-7.617 3.602-11.742 3.602-2.614 0-5.243-0.485-7.781-1.512l-76.037-30.403v171.184c0 3.416-0.432 5.887-1.107 7.893-5.362 25.145-35.518 44.479-72.232 44.479-40.506 0-73.338-23.449-73.338-52.386s32.832-52.386 73.338-52.386c11.299 0 21.87 1.966 31.432 5.241v-193.804c0-2.557 0.591-4.977 1.432-7.287 0.192-0.479 0.358-0.928 0.577-1.396 0.983-2.117 2.253-4.073 3.882-5.768 0.299-0.31 0.632-0.57 0.943-0.854 0.777-0.712 1.496-1.457 2.376-2.049 0.88-0.608 1.858-0.966 2.829-1.432 0.414-0.192 0.768-0.448 1.182-0.616 2.265-0.906 4.631-1.304 7.039-1.396 0.247-0.026 0.445-0.164 0.69-0.164z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["music_time"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":874,"id":42,"name":"music_time","prevSize":32,"code":59648},"setIdx":0,"setId":3,"iconIdx":2},{"icon":{"paths":["M769.011 64.070c-18.539 0.005-33.566 15.036-33.566 33.572 0 9.438 3.894 17.972 10.168 24.072l76.976 76.976h-612.718c-67.808 0-123.084 55.277-123.084 123.084v361.214l67.136-67.136v-294.078c0-30.884 25.061-55.948 55.948-55.948h612.718l-76.972 76.972c-6.363 6.121-10.323 14.703-10.323 24.22 0 18.542 15.034 33.572 33.572 33.572 9.509 0 18.099-3.952 24.208-10.311l0.012-0.013 134.273-134.273c6.076-6.076 9.828-14.469 9.828-23.733s-3.756-17.662-9.828-23.733l-134.273-134.273c-6.108-6.286-14.644-10.183-24.084-10.183v0zM937.202 341.006l-67.136 67.136v294.078c0 30.884-25.061 55.948-55.948 55.948h-612.718l76.972-76.972c6.263-6.105 10.151-14.626 10.151-24.052 0-18.542-15.034-33.572-33.572-33.572-0.34 0-0.68 0.006-1.018 0.017l0.048-0.001c-9.070 0.272-17.196 4.104-23.071 10.133l-134.281 134.281c-6.076 6.076-9.828 14.469-9.828 23.733s3.756 17.662 9.828 23.733l134.273 134.273c6.121 6.363 14.703 10.323 24.22 10.323 18.542 0 33.572-15.034 33.572-33.572 0-9.509-3.952-18.099-10.311-24.208l-0.013-0.012-76.972-76.972h612.718c67.808 0 123.084-55.277 123.084-123.084v-361.214z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-list-loop"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":878,"id":38,"name":"list-loop","prevSize":32,"code":59649},"setIdx":0,"setId":3,"iconIdx":3},{"icon":{"paths":["M812.371 117.66c-17.181 0.004-31.101 13.928-31.101 31.11 0 8.751 3.613 16.654 9.426 22.308l71.333 71.333h-127.421c-45.011 0-87.849 19.533-117.378 53.466l-340.347 391.422c-17.747 20.41-43.393 32.077-70.433 32.077h-119.567c-0.129-0.002-0.283-0.003-0.44-0.003-17.181 0-31.11 13.927-31.11 31.11s13.927 31.11 31.11 31.11c0.155 0 0.311-0.001 0.466-0.003h119.541c44.998 0 87.844-19.498 117.378-53.466l340.347-391.422c17.754-20.399 43.406-32.077 70.433-32.077h127.421l-71.325 71.325c-5.896 5.67-9.563 13.63-9.563 22.442 0 17.181 13.927 31.11 31.11 31.11 8.811 0 16.771-3.667 22.431-9.552l0.011-0.012 124.425-124.425c5.628-5.63 9.106-13.404 9.106-21.994s-3.478-16.364-9.106-21.994l-124.425-124.425c-5.658-5.825-13.567-9.439-22.315-9.439v0zM86.876 242.408c-17.213 0-31.106 13.893-31.106 31.106s13.893 31.106 31.106 31.106h119.646c26.958 0 52.685 11.628 70.315 32.161l111.143 127.952 41.274-47.509-105.349-121.305c-29.654-34.009-72.379-53.507-117.378-53.507h-119.646zM553.071 559.266l-41.274 47.509 105.349 121.305c29.654 34.009 72.379 53.507 117.378 53.507h127.507l-71.325 71.325c-5.896 5.67-9.563 13.63-9.563 22.442 0 17.181 13.927 31.11 31.11 31.11 8.811 0 16.771-3.667 22.431-9.552l0.011-0.012 124.425-124.425c5.628-5.63 9.106-13.404 9.106-21.994s-3.478-16.364-9.106-21.994l-124.425-124.425c-5.658-5.825-13.567-9.439-22.315-9.439v0c-17.181 0.004-31.101 13.928-31.101 31.11 0 8.751 3.613 16.654 9.426 22.308l71.333 71.333h-127.507c-26.958 0-52.685-11.628-70.315-32.161l-111.143-127.952z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-list-random"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":873,"id":43,"name":"list-random","prevSize":32,"code":59650},"setIdx":0,"setId":3,"iconIdx":4},{"icon":{"paths":["M713.492 83.628c-19.45 0.31-35.103 16.154-35.103 35.656 0 0.182 0.001 0.358 0.005 0.536v-0.028 722.111l-105.523-105.523c-6.501-6.76-15.62-10.964-25.719-10.964-19.695 0-35.662 15.967-35.662 35.662 0 10.099 4.204 19.223 10.951 25.713l0.014 0.013 166.393 166.393c6.455 6.453 15.368 10.437 25.212 10.437s18.757-3.988 25.212-10.437l166.393-166.393c6.76-6.501 10.964-15.62 10.964-25.719 0-19.695-15.967-35.662-35.662-35.662-10.099 0-19.223 4.204-25.713 10.951l-0.013 0.014-105.523 105.523v-722.111c0.003-0.149 0.004-0.332 0.004-0.514 0-19.695-15.967-35.662-35.662-35.662-0.193 0-0.392 0.001-0.583 0.005h0.028zM283.215 131.815c-2.79 0.238-5.592 0.761-8.311 1.675l-71.308 23.771c-18.681 6.229-28.793 26.441-22.565 45.128s26.487 28.86 45.128 22.565l24.375-8.168v212.028c0 19.707 15.95 35.658 35.658 35.658s35.658-15.95 35.658-35.658v-261.472c0-11.46-5.518-22.22-14.813-28.922-6.989-5.031-15.439-7.295-23.817-6.592zM274.301 583.308c-63.132 0-109.64 39.984-118.48 101.903-2.778 19.495 10.733 37.562 30.223 40.343 19.467 2.804 37.562-10.705 40.343-30.223 2.665-18.563 13.134-40.719 47.913-40.719 26.216 0 47.544 21.319 47.544 47.544s-21.319 47.544-47.544 47.544c-57.236 0-118.85 40.907-118.85 130.735 0 19.707 15.977 35.658 35.658 35.658h166.393c19.707 0 35.658-15.95 35.658-35.658s-15.95-35.658-35.658-35.658h-123.397c11.247-21.559 32.216-23.771 40.204-23.771 65.533 0 118.85-53.32 118.85-118.85s-53.32-118.85-118.85-118.85z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-list-order"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":875,"id":41,"name":"list-order","prevSize":32,"code":59651},"setIdx":0,"setId":3,"iconIdx":5},{"icon":{"paths":["M782.78 40.073c-19.532 0.005-35.363 15.841-35.363 35.37 0 9.945 4.104 18.935 10.714 25.362l81.101 81.101h-645.541c-71.441 0-129.678 58.238-129.678 129.678v380.564l70.733-70.733v-309.831c0-32.538 26.405-58.945 58.945-58.945h645.541l-81.095 81.095c-6.705 6.448-10.875 15.492-10.875 25.516 0 19.535 15.838 35.37 35.37 35.37 10.019 0 19.068-4.165 25.504-10.863l0.012-0.013 141.467-141.467c6.4-6.401 10.354-15.243 10.354-25.005s-3.957-18.607-10.354-25.005l-141.467-141.467c-6.435-6.622-15.427-10.729-25.374-10.729v0zM959.981 331.847l-70.733 70.733v309.831c0 32.538-26.405 58.945-58.945 58.945h-645.541l81.095-81.095c6.599-6.432 10.694-15.409 10.694-25.34 0-19.535-15.838-35.37-35.37-35.37-0.358 0-0.716 0.006-1.072 0.017l0.051-0.001c-9.556 0.287-18.117 4.323-24.307 10.676l-141.475 141.475c-6.4 6.401-10.354 15.243-10.354 25.005s3.957 18.607 10.354 25.005l141.467 141.467c6.448 6.705 15.492 10.875 25.516 10.875 19.535 0 35.37-15.838 35.37-35.37 0-10.019-4.165-19.068-10.863-25.504l-0.013-0.012-81.095-81.095h645.541c71.441 0 129.678-58.238 129.678-129.678v-380.564zM527.334 347.002c-2.311 0.196-4.617 0.675-6.863 1.429l-70.733 23.576c-15.442 5.162-23.792 21.859-18.651 37.302 5.162 15.422 21.834 23.746 37.302 18.651l31.913-10.639v230.251c0 16.268 13.203 29.471 29.471 29.471s29.471-13.202 29.471-29.52v-271.145c0-9.477-4.565-18.361-12.247-23.901-5.763-4.158-12.735-6.061-19.665-5.479z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-single-loop"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":879,"id":44,"name":"single-loop","prevSize":32,"code":59652},"setIdx":0,"setId":3,"iconIdx":6},{"icon":{"paths":["M512 72c-242.617 0-440 197.383-440 440s197.383 440 440 440c242.617 0 440-197.383 440-440s-197.383-440-440-440zM512 138c91.519 0 174.114 33.962 239.037 88.303l-524.727 524.689c-54.329-64.918-88.303-147.483-88.303-238.997 0-206.939 167.060-374 374-374zM797.697 272.963c54.347 64.922 88.303 147.518 88.303 239.037 0 206.939-167.060 374-374 374-91.503 0-174.078-33.963-238.997-88.303l524.689-524.728z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-single"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":876,"id":40,"name":"single","prevSize":32,"code":59673},"setIdx":0,"setId":3,"iconIdx":7},{"icon":{"paths":["M197.733 16.079c-57.158 2.263-109.626 48.892-109.626 111.719v768.402c0 83.768 93.326 138.729 166.607 98.131l693.403-384.201c75.389-41.772 75.389-154.491 0-196.264l-693.403-384.201c-18.321-10.148-37.927-14.342-56.98-13.588zM198.61 89.763c6.448-0.029 13.207 1.643 19.82 5.308l693.452 384.201c27.392 15.178 27.392 50.275 0 65.453l-693.452 384.201c-26.458 14.659-55.52-2.494-55.52-32.727v-768.402c0-15.116 7.249-26.935 17.825-33.165 5.288-3.117 11.426-4.843 17.874-4.87z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-play-outline"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":872,"id":37,"name":"play-outline","prevSize":32,"code":59681},"setIdx":0,"setId":3,"iconIdx":8},{"icon":{"paths":["M469.685 572.65v-572.65h84.628v572.65zM511.999 1023.998q-104.374 0-196.76-40.198t-161.498-109.312-109.312-161.498-40.198-196.76q0-112.837 47.956-210.865t135.405-174.192l59.24 59.24q-74.754 60.651-116.364 144.573t-41.609 181.246q0 176.308 123.416 299.724t299.724 123.416 299.724-123.416 123.416-299.724q0-97.322-41.609-182.655t-113.543-143.163l60.651-59.24q84.628 71.934 131.878 172.077t47.25 212.981q0 104.374-40.198 196.76t-108.606 161.498-160.793 109.312-198.171 40.198z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-exit"]},"attrs":[{}],"properties":{"order":868,"id":35,"name":"exit2","prevSize":32,"code":59679},"setIdx":0,"setId":3,"iconIdx":9},{"icon":{"paths":["M86.515 1024.001q-34.039 0-59.568-25.529t-25.529-59.568v-297.839h85.097v297.839h850.97v-853.806h-850.97v300.676h-85.097v-300.676q0-34.039 25.529-59.568t59.568-25.529h850.97q34.039 0 59.568 25.529t25.529 59.568v853.806q0 34.039-25.529 59.568t-59.568 25.529zM416.975 787.148l-63.823-63.823 167.358-167.358h-519.092v-85.097h519.092l-167.358-167.358 63.823-63.823 273.729 273.729z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-exit"]},"attrs":[{}],"properties":{"order":867,"id":34,"name":"exit","prevSize":32,"code":59678},"setIdx":0,"setId":3,"iconIdx":10},{"icon":{"paths":["M465.902 1.102c-44.961-7.649-81.748 25.464-81.748 71.063v471.297c-26.614-9.764-55.241-15.373-85.225-15.373-136.943 0-247.961 111.022-247.961 247.97 0 136.939 111.018 247.942 247.961 247.942 78.047 0 147.539-36.165 192.953-92.542l-113.518-113.532c-34.555-34.546-26.765-66.068-21.813-78.044 4.951-11.963 21.749-39.776 70.599-39.776h41.336v-130.039c0-48.308 33.415-88.839 78.332-100.001 0.073-101.437 0.073-187.014 0.073-187.014 320.377 0 301.122 191.965 263.634 302.201-14.676 43.169-5.946 50.406 24.901 16.811 390.955-425.798-153.327-564.193-369.524-600.961z","M688.227 511.782h-116.573c-8.941 0-17.314 2.172-24.892 5.768-19.696 9.35-33.41 29.256-33.41 52.516v174.902h-86.201c-32.192 0-39.84 18.45-17.067 41.214l178.635 178.638c11.393 11.396 26.319 17.086 41.224 17.086 14.912 0 29.837-5.678 41.214-17.086l178.656-178.64c22.748-22.764 15.106-41.214-17.076-41.214h-86.205v-174.902c0.002-32.182-26.106-58.282-58.305-58.282z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-logo"]},"attrs":[{},{}],"properties":{"order":865,"id":33,"name":"logo","prevSize":32,"code":59669},"setIdx":0,"setId":3,"iconIdx":11},{"icon":{"paths":["M56.89 113.778h910.221c31.418 0 56.89 25.471 56.89 56.89s-25.471 56.89-56.89 56.89v0h-910.221c-31.418 0-56.89-25.471-56.89-56.89s25.471-56.89 56.89-56.89v0zM56.89 455.11h910.221c31.418 0 56.89 25.471 56.89 56.89s-25.471 56.89-56.89 56.89v0h-910.221c-31.418 0-56.89-25.471-56.89-56.89s25.471-56.89 56.89-56.89v0zM56.89 796.443h910.221c31.418 0 56.89 25.471 56.89 56.89s-25.471 56.89-56.89 56.89v0h-910.221c-31.418 0-56.89-25.471-56.89-56.89s25.471-56.89 56.89-56.89v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-menu"]},"attrs":[{}],"properties":{"order":866,"id":32,"name":"menu","prevSize":32,"code":59677},"setIdx":0,"setId":3,"iconIdx":12},{"icon":{"paths":["M181.333 170.667c-52.928 0-96 43.072-96 96v490.667c0 52.928 43.072 96 96 96h309.417c-8.448-20.203-14.314-41.707-17.792-64h-291.625c-17.643 0-32-14.357-32-32v-490.667c0-17.643 14.357-32 32-32h161.125c12.459 0 24.567 4.376 34.167 12.333l104.25 86.917c5.739 4.8 12.97 7.417 20.458 7.417h341.333c17.643 0 32 14.357 32 32v127.542c23.531 12.309 45.035 27.885 64 46.125v-173.667c0-52.928-43.072-96-96-96h-329.75l-95.375-79.5c-21.056-17.515-47.713-27.167-75.083-27.167h-161.125zM746.667 512c-129.6 0-234.667 105.067-234.667 234.667s105.067 234.667 234.667 234.667c129.6 0 234.667-105.067 234.667-234.667s-105.067-234.667-234.667-234.667zM746.667 576c11.776 0 21.333 9.557 21.333 21.333v128h128c11.776 0 21.333 9.557 21.333 21.333s-9.557 21.333-21.333 21.333h-128v128c0 11.776-9.557 21.333-21.333 21.333s-21.333-9.557-21.333-21.333v-128h-128c-11.776 0-21.333-9.557-21.333-21.333s9.557-21.333 21.333-21.333h128v-128c0-11.776 9.557-21.333 21.333-21.333z"],"attrs":[{"fill":"rgb(91, 91, 91)"}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["iocn-add_folder"]},"attrs":[{"fill":"rgb(91, 91, 91)"}],"properties":{"order":884,"id":47,"name":"add_folder","prevSize":32,"code":59666},"setIdx":0,"setId":3,"iconIdx":13},{"icon":{"paths":["M1024 103.129l-103.129-103.129-408.871 408.871-408.871-408.871-103.129 103.129 408.871 408.871-408.871 408.871 103.129 103.129 408.871-408.871 408.871 408.871 103.129-103.129-408.871-408.871 408.871-408.871z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-remove"]},"attrs":[{}],"properties":{"order":828,"id":17,"prevSize":32,"code":59663,"name":"remove"},"setIdx":0,"setId":3,"iconIdx":14},{"icon":{"paths":["M0.001 107.79v161.684h269.473v646.736h161.684v-646.736h269.473v-161.684h-700.631zM1024 377.263h-485.052v161.684h161.684v377.263h161.684v-377.263h161.684v-161.684z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-font-size"]},"attrs":[{}],"properties":{"order":852,"id":30,"name":"font-size","prevSize":32,"code":59676},"setIdx":0,"setId":3,"iconIdx":15},{"icon":{"paths":["M964.54 573.38c17.54-29.7 27.46-61.38 27.46-99.68 0-88.030-74.436-171.16-171.64-171.16h-72.96c9.84-25.62 17.7-56.26 17.7-93.080 0-145.588-75.38-209.46-190.54-209.46-123.214 0-116.186 189.866-143.52 217.2-45.494 45.494-99.23 132.894-137.52 166.8h-197.52c-35.346 0-64 28.654-64 64v480c0 35.346 28.654 64 64 64h128c29.786 0 54.816-20.348 61.956-47.9 89.018 2.002 150.12 79.88 355.604 79.88 14.44 0 30.44 0.020 44.44 0.020 154.234 0 223.972-78.846 225.88-190.66 26.638-36.85 40.598-86.244 34.68-133.98 19.708-36.904 27.328-80.686 17.98-125.98zM841.040 681.040c25.12 42.26 2.52 98.82-27.88 115.14 15.4 97.56-35.216 131.8-106.24 131.8h-75.64c-143.278 0-236.058-75.64-343.28-75.64v-372.34h21.84c56.72 0 135.96-141.78 189.080-194.92 56.72-56.72 37.82-151.26 75.64-189.080 94.54 0 94.54 65.96 94.54 113.46 0 78.34-56.72 113.44-56.72 189.080h207.98c42.22 0 75.46 37.82 75.64 75.64 0.18 37.8-25.64 75.62-44.54 75.62 26.978 29.11 32.742 90.472-10.42 131.24zM208 864c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-thumbs-up"]},"attrs":[{}],"properties":{"order":851,"id":29,"name":"thumbs-up","prevSize":32,"code":59675},"setIdx":0,"setId":3,"iconIdx":16},{"icon":{"paths":["M509.38 291.64s-129.324-159.008-291.904-49.688c-145.41 159.044-62.294 370.737 291.904 556.885 44.177-17.309 91.090-35.192 91.090-35.192 39.332-13.236 58.285 42.941 33.123 53.828-57.118 24.711 12.369-8.571-124.212 57.967-603.515-286.001-438.9-627.212-333.305-693.525 179.695-136.405 335.375 20.705 335.375 20.705s120.398-125.299 289.831-47.618c215.371 121.163 132.491 335.166 93.159 405.759-18.946 31.369-81.899-8.607-66.246-33.123 42.11-78.433 94.243-222.233-51.758-310.531-145.081-62.275-267.060 74.525-267.060 74.525z","M772.301 701.539c-16.767 0.024-51.283-0.318-82.811 0-32.526 0.33-31.638 72.384 0 72.455 31.262 0.072 82.811 0 82.811 0s-0.14 88.606 0 99.368c0.43 33.045 66.788 32.69 66.246-2.070-0.15-9.621 0-97.299 0-97.299s78.683-0.067 89.020 0c32.572 0.095 30.941-70.345-2.070-70.385-10.108 0.192-86.95 0-86.95 0s-0.112-58.67 0-95.229c0.095-31.445-66.305-32.113-66.246 0 0.057 30.514-0.454 87.238 0 93.159z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-add-music"]},"attrs":[{},{}],"properties":{"order":843,"id":25,"name":"add-music","prevSize":32,"code":59670},"setIdx":0,"setId":3,"iconIdx":17},{"icon":{"paths":["M512 768.001c70.692 0 128 57.308 128 128v0c0 70.692-57.308 128-128 128v0c-70.692 0-128-57.308-128-128v0c0-70.692 57.308-128 128-128v0zM512 384c70.692 0 128 57.308 128 128v0c0 70.692-57.308 128-128 128v0c-70.692 0-128-57.308-128-128v0c0-70.692 57.308-128 128-128v0zM512 0c70.692 0 128 57.308 128 128v0c0 70.692-57.308 128-128 128v0c-70.692 0-128-57.308-128-128v0c0-70.692 57.308-128 128-128v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-dots-vertical"]},"attrs":[{}],"properties":{"order":833,"id":21,"name":"dots-vertical","prevSize":32,"code":59667},"setIdx":0,"setId":3,"iconIdx":18},{"icon":{"paths":["M69.048 478.058l388.688-388.686c18.746-18.746 49.138-18.746 67.882 0l45.334 45.334c18.714 18.714 18.75 49.044 0.080 67.802l-308.042 309.492 308.042 309.49c18.67 18.758 18.634 49.088-0.080 67.802l-45.334 45.334c-18.746 18.746-49.138 18.746-67.882 0l-388.686-388.686c-18.746-18.744-18.746-49.136-0.002-67.882z"],"attrs":[{}],"width":640,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-chevron-left"]},"attrs":[{}],"properties":{"order":854,"id":18,"name":"chevron-left","prevSize":32,"code":59664},"setIdx":0,"setId":3,"iconIdx":19},{"icon":{"paths":["M570.952 545.942l-388.688 388.686c-18.746 18.746-49.138 18.746-67.882 0l-45.334-45.334c-18.714-18.714-18.75-49.044-0.080-67.802l308.042-309.492-308.042-309.49c-18.67-18.758-18.634-49.088 0.080-67.802l45.334-45.334c18.746-18.746 49.138-18.746 67.882 0l388.686 388.686c18.746 18.744 18.746 49.136 0.002 67.882z"],"attrs":[{}],"width":640,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-chevron-right"]},"attrs":[{}],"properties":{"order":869,"id":36,"prevSize":32,"code":59680,"name":"chevron-right"},"setIdx":0,"setId":3,"iconIdx":20},{"icon":{"paths":["M633.703 512l365.094-365.094c33.607-33.607 33.607-88.095 0-121.698-33.607-33.607-88.091-33.607-121.698 0l-365.099 365.099-365.099-365.104c-33.607-33.607-88.091-33.607-121.698 0-33.603 33.607-33.603 88.095 0 121.698l365.099 365.094-365.099 365.099c-33.603 33.607-33.603 88.095 0 121.698 33.607 33.607 88.091 33.607 121.698 0l365.099-365.099 365.099 365.099c33.603 33.607 88.091 33.607 121.698 0s33.607-88.091 0-121.698l-365.094-365.094z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-close"]},"attrs":[{}],"properties":{"order":826,"id":15,"name":"close","prevSize":32,"code":59662},"setIdx":0,"setId":3,"iconIdx":21},{"icon":{"paths":["M52.504 168.606v686.806c0 93.13 61.701 168.588 137.82 168.588 76.127 0 137.865-75.462 137.865-168.588v-686.806c0-93.085-61.738-168.577-137.865-168.577-76.119-0.030-137.82 75.492-137.82 168.577z","M833.635 0c-76.112 0-137.813 75.492-137.813 168.577v686.806c0 93.13 61.701 168.558 137.813 168.558s137.861-75.433 137.861-168.558v-686.776c-0.033-93.085-61.749-168.606-137.861-168.606z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-pause"]},"attrs":[{},{}],"properties":{"order":808,"id":1,"name":"pause","prevSize":32,"code":59661},"setIdx":0,"setId":3,"iconIdx":22},{"icon":{"paths":["M217.83 22.578c-92.32-52.955-167.165-9.574-167.165 96.819v785.129c0 106.499 74.847 149.824 167.165 96.919l686.242-393.555c92.351-52.974 92.351-138.801 0-191.763l-686.242-393.549z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-play"],"defaultCode":59653},"attrs":[{}],"properties":{"order":814,"id":7,"name":"play","prevSize":32,"code":59653},"setIdx":0,"setId":3,"iconIdx":23},{"icon":{"paths":["M96.898 152.171c-53.489 0-96.898 64.037-96.898 143.006v433.653c0 78.944 43.432 143.001 96.898 143.001 53.545 0 96.902-64.056 96.902-143.001v-119.627l352.204 201.971c67.023 38.471 121.477 8.351 123.795-67l-225.15-129.124c-44.415-25.451-69.917-63.036-69.917-103.083 0-40.084 25.502-77.637 69.917-103.134l225.15-129.073c-2.318-75.295-56.772-105.452-123.795-66.986l-352.204 201.92v-119.515c0.023-78.995-43.358-143.006-96.902-143.006z","M502.254 583.092l397.714 228.080c68.475 39.291 124.032 7.103 124.032-71.883v-454.686c0-78.94-55.557-111.137-124.032-71.832l-397.742 228.020c-68.452 39.301-68.452 103.009 0.028 142.301z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-prevMusic"],"defaultCode":59654},"attrs":[{},{}],"properties":{"order":860,"id":22,"prevSize":32,"code":59668,"name":"prevMusic"},"setIdx":0,"setId":3,"iconIdx":24},{"icon":{"paths":["M927.102 871.83c53.489 0 96.898-64.037 96.898-143.006v-433.653c0-78.944-43.432-143.001-96.898-143.001-53.545 0-96.902 64.056-96.902 143.001v119.627l-352.204-201.971c-67.023-38.471-121.477-8.351-123.795 67l225.15 129.123c44.415 25.451 69.917 63.036 69.917 103.083 0 40.084-25.502 77.637-69.917 103.134l-225.15 129.072c2.318 75.295 56.772 105.452 123.795 66.986l352.204-201.92v119.515c-0.023 78.995 43.358 143.006 96.902 143.006z","M521.746 440.909l-397.714-228.080c-68.475-39.291-124.032-7.103-124.032 71.883v454.686c0 78.94 55.557 111.137 124.032 71.832l397.742-228.020c68.452-39.301 68.452-103.009-0.028-142.301z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-nextMusic"],"defaultCode":59654},"attrs":[{},{}],"properties":{"order":836,"id":8,"name":"nextMusic","prevSize":32,"code":59654},"setIdx":0,"setId":3,"iconIdx":25},{"icon":{"paths":["M578.472 732.037c-121.522 0-220.036-98.514-220.036-220.036s98.514-220.036 220.036-220.036c121.522 0 220.036 98.514 220.036 220.036v0c-0.146 121.464-98.572 219.891-220.023 220.036h-0.014zM578.472 384.418c-70.462 0-127.583 57.121-127.583 127.583s57.12 127.583 127.583 127.583c70.462 0 127.583-57.12 127.583-127.583v0c-0.079-70.43-57.152-127.503-127.574-127.583h-0.008z","M1145.056 469.341l-246.423-426.682c-15.048-25.628-42.44-42.579-73.799-42.659h-492.694c-31.404 0.050-58.837 17.009-73.685 42.258l-0.218 0.401-246.329 426.682c-7.162 12.244-11.391 26.957-11.391 42.659s4.229 30.416 11.61 43.065l-0.219-0.406 246.423 426.682c15.063 25.643 42.485 42.601 73.871 42.659h492.621c31.397-0.054 58.822-17.012 73.662-42.258l0.218-0.401 246.423-426.682c7.14-12.229 11.357-26.921 11.357-42.599 0-15.727-4.242-30.462-11.645-43.125l0.219 0.405zM341.627 922.223l-236.844-410.223 236.844-410.247h473.712l236.844 410.247-236.844 410.223z"],"attrs":[{},{}],"width":1157,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-setting"],"defaultCode":59655},"attrs":[{},{}],"properties":{"order":816,"id":9,"name":"setting","prevSize":32,"code":59655},"setIdx":0,"setId":3,"iconIdx":26},{"icon":{"paths":["M974.751 1023.699h-925.525c-27.228-0.19-49.226-22.307-49.226-49.561 0-0.119 0-0.238 0.001-0.357v0.018-414.489c-0.001-0.1-0.001-0.219-0.001-0.338 0-27.254 21.999-49.371 49.208-49.561h0.018c27.228 0.19 49.226 22.307 49.226 49.561 0 0.119 0 0.238-0.001 0.357v-0.018 364.613h827.075v-365.504c0-27.193 22.044-49.237 49.237-49.237s49.237 22.044 49.237 49.237v0 415.38c0 0.007 0 0.016 0 0.025 0 13.741-5.516 26.193-14.456 35.262l0.006-0.006c-8.86 9.010-21.175 14.599-34.796 14.618h-0.004z","M512 582.502c-25.964-0.191-46.938-21.283-46.938-47.273 0-0.102 0-0.204 0.001-0.306v0.016-487.676c0-25.936 21.025-46.961 46.961-46.961s46.961 21.025 46.961 46.961v0 487.58c0.001 0.115 0.002 0.25 0.002 0.386 0 26.008-21.002 47.111-46.972 47.274h-0.016z","M512 658.628c-0.024 0-0.052 0-0.080 0-13.966 0-26.633-5.558-35.912-14.582l0.012 0.012-193.361-186.497c-8.999-8.738-14.582-20.95-14.582-34.466 0-12.694 4.925-24.238 12.969-32.824l-0.025 0.027c8.515-9.098 20.596-14.768 34.002-14.768 12.587 0 24.006 4.998 32.382 13.118l164.57 158.742 164.582-158.754c8.364-8.108 19.783-13.106 32.37-13.106 13.406 0 25.487 5.67 33.978 14.742l0.024 0.026c8.019 8.56 12.945 20.104 12.945 32.798 0 13.516-5.584 25.728-14.571 34.454l-0.012 0.011-193.385 186.521c-9.268 8.998-21.928 14.546-35.885 14.546-0.008 0-0.016 0-0.024 0h0.001zM540.755 575.109v0z"],"attrs":[{},{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-download-2"],"defaultCode":59656},"attrs":[{},{},{}],"properties":{"order":817,"id":10,"name":"download-2","prevSize":32,"code":59656},"setIdx":0,"setId":3,"iconIdx":27},{"icon":{"paths":["M582.103 1023.979c-0.017 0-0.037 0-0.057 0-9.91 0-19.135-2.929-26.858-7.969l0.189 0.116-0.366-0.236c-37.014-20.47-322.334-182.265-474.13-387.408-50.491-68.21-80.819-154.003-80.819-246.879 0-19.704 1.365-39.089 4.006-58.067l-0.25 2.192c14.344-104.705 67.037-196.32 148.366-258.045 92.559-70.283 201.609-86.225 315.345-45.86 43.791 16.083 81.683 36.31 116.21 60.947l-1.48-1.003c33.048-23.634 70.939-43.86 111.372-58.853l3.359-1.091c113.788-40.337 222.838-24.422 315.37 45.86 81.33 61.829 134.022 153.471 148.366 258.045 2.401 16.818 3.771 36.242 3.771 55.986 0 92.851-30.314 178.622-81.584 247.955l0.802-1.136c-152.712 206.19-440.415 368.797-474.783 387.643-7.598 4.895-16.869 7.819-26.821 7.853h-0.009zM347.59 105.694c-43.425 0-89.994 12.46-135.593 47.117-59.054 44.892-97.349 111.588-107.794 187.813-1.757 12.365-2.76 26.646-2.76 41.16 0 68.639 22.431 132.040 60.363 183.271l-0.591-0.835c123.421 166.664 348.143 304.769 421.071 347.018 73.005-42.169 297.65-180.354 421.071-347.018 37.342-50.393 59.773-113.792 59.773-182.429 0-14.517-1.004-28.801-2.945-42.783l0.184 1.616c-10.471-76.199-48.74-142.895-107.82-187.813-159.125-120.933-330.108 28.27-337.384 34.684-8.691 7.859-20.268 12.668-32.969 12.668s-24.278-4.809-33.012-12.706l0.043 0.038c-5.052-4.555-93.553-81.801-201.634-81.801z"],"attrs":[{}],"width":1165,"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-love"],"defaultCode":59657},"attrs":[{}],"properties":{"order":818,"id":11,"name":"love","prevSize":32,"code":59657},"setIdx":0,"setId":3,"iconIdx":28},{"icon":{"paths":["M968.343 913.191h-912.975c-30.592 0-55.393 24.8-55.393 55.393s24.8 55.393 55.393 55.393v0h912.975c30.592 0 55.393-24.8 55.393-55.393s-24.8-55.393-55.393-55.393v0z","M931.085 848.958c30.592 0 55.393-24.8 55.393-55.393v0-738.197c0-30.592-24.8-55.393-55.393-55.393s-55.393 24.8-55.393 55.393v0 738.173c0 0.007 0 0.016 0 0.024 0 30.592 24.8 55.393 55.393 55.393v0z","M511.735 848.958c30.592 0 55.393-24.8 55.393-55.393v0-504.921c0-30.592-24.8-55.393-55.393-55.393s-55.393 24.8-55.393 55.393v0 504.896c0 0.007 0 0.016 0 0.024 0 30.592 24.8 55.393 55.393 55.393v0z","M92.386 848.958c30.592 0 55.393-24.8 55.393-55.393v0-331.636c0-30.592-24.8-55.393-55.393-55.393s-55.393 24.8-55.393 55.393v0 331.612c0 0.007 0 0.016 0 0.024 0 30.592 24.8 55.393 55.393 55.393v0z"],"attrs":[{},{},{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-leaderboard"],"defaultCode":59658},"attrs":[{},{},{},{}],"properties":{"order":819,"id":12,"name":"leaderboard","prevSize":32,"code":59658},"setIdx":0,"setId":3,"iconIdx":29},{"icon":{"paths":["M48.166 895.662c-26.601 0-48.166-21.564-48.166-48.166v0-799.331c0-26.601 21.564-48.166 48.166-48.166v0h755.983c26.601 0 48.166 21.564 48.166 48.166s-21.564 48.166-48.166 48.166v0h-707.816v751.165c0 26.601-21.564 48.166-48.166 48.166v0z","M975.834 1024h-736.932c-26.601 0-48.166-21.564-48.166-48.166v0-354.499c0-26.601 21.564-48.166 48.166-48.166s48.166 21.564 48.166 48.166v0 306.333h640.602v-633.858h-515.371c-26.601 0-48.166-21.564-48.166-48.166s21.564-48.166 48.166-48.166v0h563.537c26.601 0 48.166 21.564 48.166 48.166v0 730.19c0 26.601-21.564 48.166-48.166 48.166v0z","M623.744 786.76c-23.941 0-43.349-19.408-43.349-43.349v0-346.046c0-23.941 19.408-43.349 43.349-43.349s43.349 19.408 43.349 43.349v0 345.828c0 0.064 0.001 0.141 0.001 0.217 0 23.941-19.408 43.349-43.349 43.349 0 0 0 0-0.001 0v0z","M764.001 581.238c-0.010 0-0.022 0-0.034 0-11.992 0-22.847-4.869-30.695-12.739l-140.307-140.307c-7.864-7.864-12.729-18.729-12.729-30.73 0-24.001 19.457-43.458 43.458-43.458 12 0 22.865 4.864 30.73 12.729l140.306 140.33c7.964 7.864 12.896 18.781 12.896 30.851 0 23.941-19.408 43.349-43.349 43.349-0.097 0-0.195 0-0.292-0.001h0.015z","M537.239 867.414c-0.021 0-0.047 0-0.072 0-71.756 0-129.927-58.17-129.927-129.927s58.17-129.927 129.927-129.927c71.756 0 129.927 58.17 129.927 129.927v0c-0.068 71.704-58.157 129.817-129.844 129.927h-0.010zM537.239 694.498c-23.741 0-42.988 19.246-42.988 42.988s19.246 42.988 42.988 42.988c23.741 0 42.988-19.246 42.988-42.988v0c-0.027-23.73-19.257-42.96-42.985-42.988h-0.003z"],"attrs":[{},{},{},{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-album"],"defaultCode":59659},"attrs":[{},{},{},{},{}],"properties":{"order":820,"id":13,"name":"album","prevSize":32,"code":59659},"setIdx":0,"setId":3,"iconIdx":30},{"icon":{"paths":["M744.005 130.752c-78.812-80.698-188.704-130.742-310.286-130.742-239.452 0-433.565 194.114-433.565 433.565s194.114 433.565 433.565 433.565c117.797 0 224.623-46.978 302.762-123.221l-0.089 0.086c81.089-78.675 131.413-188.664 131.413-310.409 0-117.972-47.254-224.906-123.865-302.909l0.063 0.064zM669.119 675.117c-60.686 59.116-143.692 95.577-235.214 95.577-186.24 0-337.217-150.977-337.217-337.217 0-186.089 150.733-336.972 336.765-337.217h0.023c0.077 0 0.168 0 0.258 0 186.24 0 337.217 150.977 337.217 337.217 0 94.682-39.020 180.25-101.858 241.499l-0.071 0.069z","M1007.3 928.945l-159.527-163.792c-10.072-10.318-24.118-16.717-39.659-16.717-30.597 0-55.4 24.804-55.4 55.4 0 15.056 6.006 28.709 15.753 38.694l-0.011-0.011 160.564 164.851c10.026 10.27 24.010 16.639 39.481 16.639 2.35 0 4.667-0.147 6.941-0.432l-0.271 0.028c10.466-1.218 19.816-5.232 27.505-11.266l-0.118 0.089c13.153-10.193 21.538-25.994 21.538-43.752 0-0.259-0.002-0.517-0.005-0.775v0.039c-0.431-15.268-6.764-28.978-16.788-38.997v0z"],"attrs":[{},{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["icon-search-2"],"defaultCode":59660},"attrs":[{},{}],"properties":{"order":821,"id":14,"name":"search-2","prevSize":32,"code":59660},"setIdx":0,"setId":3,"iconIdx":31}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon","majorVersion":1,"minorVersion":0},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false,"autoHost":false,"noie8":true,"ie7":false,"showSelector":false,"showMetrics":false,"showMetadata":false,"showVersion":false},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon","name":"icomoon"},"historySize":50,"showCodes":true,"gridSize":16,"showGrid":false,"quickUsageToken":{"UntitledProject":"N2VjNTI2ODAzZWI0N2M1NzhlMjNhYzY3OTEwMWRiMDEjMSMxNjA0MzkyNDUxIyMj"},"showLiga":false}} \ No newline at end of file diff --git a/src/screens/Comment/CommentHot.js b/src/screens/Comment/CommentHot.js deleted file mode 100644 index b75a02c..0000000 --- a/src/screens/Comment/CommentHot.js +++ /dev/null @@ -1,196 +0,0 @@ -import React, { memo, useState, useMemo, useCallback, useEffect, useRef } from 'react' -import { View, Text, StyleSheet, FlatList, RefreshControl } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import music from '@/utils/music' -import CommentFloor from './components/CommentFloor' -import { useTranslation } from '@/plugins/i18n' -const limit = 15 - -const getComment = async(musicInfo, page, limit, retryNum = 0) => { - let resp - try { - resp = await music[musicInfo.source].comment.getHotComment(musicInfo, page, limit) - } catch (error) { - console.log(error.message) - if (error.message == '取消请求' || ++retryNum > 2) throw error - resp = await getComment(musicInfo, page, limit, retryNum) - } - return resp -} -const filterList = list => { - let keys = [] - return list.filter(c => { - let id = String(c.id) - if (keys.includes(id)) return false - keys.push(id) - return true - }) -} - -export default memo(({ musicInfo, setTotal }) => { - const [isListRefreshing, setIsListRefreshing] = useState(false) - const [isLoadError, setIsLoadError] = useState(false) - // const [isLoading, setIsLoading] = useState(false) - const [isEnd, setIsEnd] = useState(false) - const [commentList, setCommentList] = useState([]) - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - const scrollViewRef = useRef() - const listInfo = useRef({ page: 1, total: 0, maxPage: 1, isEnd: false, isLoading: false, isLoadError: false }) - const handleGetComment = (musicInfo, page) => { - // setIsLoading(true) - listInfo.current.isLoading = true - return getComment(musicInfo, page, limit).then(commentInfo => { - listInfo.current.page = page - listInfo.current.isLoading = false - // setIsLoading(false) - if (listInfo.current.isLoadError) { - listInfo.current.isLoadError = false - setIsLoadError(false) - } - return commentInfo - }).catch(err => { - console.log(err) - if (err.message != '取消请求') { - listInfo.current.isLoading = false - // setIsLoading(false) - listInfo.current.isLoadError = true - setIsLoadError(true) - } - return Promise.reject(err) - }) - } - const handleListLoadMore = useCallback(() => { - if (listInfo.current.isLoading || listInfo.current.isEnd) return - const page = listInfo.current.page + 1 - handleGetComment(musicInfo, page).then(({ comments }) => { - let isEnd = page >= listInfo.current.maxPage - if (listInfo.current.isEnd != isEnd) { - listInfo.current.isEnd = isEnd - setIsEnd(isEnd) - } - setCommentList(commentList => { - return filterList([...commentList, ...comments]) - }) - }) - }, [musicInfo]) - - const handleListRefresh = useCallback(() => { - setIsListRefreshing(true) - handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { - listInfo.current.total = total - listInfo.current.maxPage = maxPage - setTotal(total) - let isEnd = maxPage === 1 - if (listInfo.current.isEnd != isEnd) { - listInfo.current.isEnd = isEnd - setIsEnd(isEnd) - } - setCommentList(filterList(comments)) - }).finally(() => { - setIsListRefreshing(false) - }) - }, [musicInfo, setTotal]) - - const handleShowComment = useCallback(musicInfo => { - listInfo.current.page = 1 - listInfo.current.total = 0 - listInfo.current.maxPage = 1 - listInfo.current.isEnd = false - listInfo.current.isLoading = false - listInfo.current.isLoadError = false - setCommentList([]) - if (!musicInfo.songmid || !music[musicInfo.source]?.comment) return setIsEnd(true) - handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { - listInfo.current.total = total - listInfo.current.maxPage = maxPage - setTotal(total) - let isEnd = maxPage === 1 - if (listInfo.current.isEnd != isEnd) { - listInfo.current.isEnd = isEnd - setIsEnd(isEnd) - } - setCommentList(filterList(comments)) - }) - }, []) - - useEffect(() => { - handleShowComment(musicInfo) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [handleShowComment, musicInfo.songmid]) - - - const footerStatus = isEnd - ? 'list_end' - : isLoadError - ? 'list_error' - : 'list_loading' - - const handleRenderItem = ({ item }) => { - return ( - <CommentFloor comment={item} /> - ) - } - - const refreshControl = useMemo(() => ( - <RefreshControl - colors={[theme.secondary]} - progressBackgroundColor={theme.primary} - refreshing={isListRefreshing} - onRefresh={handleListRefresh} /> - ), [isListRefreshing, handleListRefresh, theme]) - - return ( - <FlatList - data={commentList} - renderItem={handleRenderItem} - keyExtractor={item => item.id} - style={styles.container} - ref={scrollViewRef} - onEndReached={handleListLoadMore} - onEndReachedThreshold={0.6} - refreshControl={refreshControl} - ListFooterComponent={ - footerStatus ? <View style={{ alignItems: 'center', padding: 10 }}><Text style={{ color: theme.normal30 }}>{t(footerStatus)}</Text></View> : null - } - // Fix Text in FlatList is not selectable on Android - // https://github.com/facebook/react-native/issues/26264#issuecomment-559986861 - removeClippedSubviews={false} - maxToRenderPerBatch={8} - updateCellsBatchingPeriod={80} - windowSize={16} - /> - ) -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - paddingLeft: 15, - paddingRight: 15, - // backgroundColor: 'rgba(0,0,0,0.1)', - }, - space: { - paddingTop: '80%', - }, - line: { - paddingTop: 8, - paddingBottom: 8, - // opacity: 0, - }, - lineText: { - // textAlign: 'center', - fontSize: 16, - lineHeight: 20, - // paddingTop: 5, - // paddingBottom: 5, - // opacity: 0, - }, - lineTranslationText: { - textAlign: 'center', - fontSize: 13, - lineHeight: 17, - paddingTop: 5, - // paddingBottom: 5, - }, -}) diff --git a/src/screens/Comment/CommentHot.tsx b/src/screens/Comment/CommentHot.tsx new file mode 100644 index 0000000..c4ba8c7 --- /dev/null +++ b/src/screens/Comment/CommentHot.tsx @@ -0,0 +1,103 @@ +import React, { useEffect, useRef } from 'react' +import { filterList, getHotComment } from './utils' +import music from '@/utils/musicSdk' +import List, { ListType } from './components/List' +const limit = 15 + +export default ({ musicInfo, onUpdateTotal }: { + musicInfo: LX.Music.MusicInfoOnline + onUpdateTotal: (total: number) => void +}) => { + // const [isLoading, setIsLoading] = useState(false) + const listRef = useRef<ListType>(null) + const listInfo = useRef({ page: 1, total: 0, maxPage: 1, isEnd: false, isLoading: false, isLoadError: false }) + const handleGetComment = async(musicInfo: LX.Music.MusicInfoOnline, page: number) => { + // setIsLoading(true) + listInfo.current.isLoading = true + return getHotComment(musicInfo, page, limit).then(commentInfo => { + listInfo.current.page = page + listInfo.current.isLoading = false + // setIsLoading(false) + if (listInfo.current.isLoadError) { + listInfo.current.isLoadError = false + } + return commentInfo + }).catch(async err => { + console.log(err) + if (err.message != '取消请求') { + listInfo.current.isLoading = false + // setIsLoading(false) + listInfo.current.isLoadError = true + } + throw err + }) + } + const updateStatus = () => { + if (listInfo.current.isLoadError) { + listRef.current?.setStatus('error') + } else if (listInfo.current.isEnd) { + listRef.current?.setStatus('end') + } else if (!listInfo.current.isLoading) { + listRef.current?.setStatus('idle') + } + } + const handleListLoadMore = () => { + if (listInfo.current.isLoading || listInfo.current.isEnd) return + const page = listInfo.current.page + 1 + listRef.current?.setStatus('loading') + void handleGetComment(musicInfo, page).then(({ comments }) => { + let isEnd = page >= listInfo.current.maxPage + if (listInfo.current.isEnd != isEnd) listInfo.current.isEnd = isEnd + listRef.current?.setList(filterList([...listRef.current.getList(), ...comments])) + }).finally(updateStatus) + } + + const handleListRefresh = () => { + listRef.current?.setStatus('refreshing') + void handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { + listInfo.current.total = total + listInfo.current.maxPage = maxPage + onUpdateTotal(total) + let isEnd = maxPage === 1 + if (listInfo.current.isEnd != isEnd) listInfo.current.isEnd = isEnd + listRef.current?.setList(filterList(comments)) + }).finally(updateStatus) + } + + const handleShowComment = (musicInfo: LX.Music.MusicInfoOnline) => { + if (!musicInfo.id || !music[musicInfo.source].comment) return + listInfo.current.page = 1 + listInfo.current.total = 0 + listInfo.current.maxPage = 1 + listInfo.current.isEnd = false + listInfo.current.isLoading = false + listInfo.current.isLoadError = false + listRef.current?.setList([]) + listRef.current?.setStatus('loading') + void handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { + listInfo.current.total = total + listInfo.current.maxPage = maxPage + onUpdateTotal(total) + let isEnd = maxPage === 1 + if (listInfo.current.isEnd != isEnd) listInfo.current.isEnd = isEnd + setTimeout(() => { + listRef.current?.setList(filterList(comments)) + setTimeout(updateStatus, 300) + }, 300) + }) + } + + useEffect(() => { + handleShowComment(musicInfo) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [musicInfo.id]) + + + return ( + <List + ref={listRef} + onLoadMore={handleListLoadMore} + onRefresh={handleListRefresh} + /> + ) +} diff --git a/src/screens/Comment/CommentNew.js b/src/screens/Comment/CommentNew.js deleted file mode 100644 index 6170b28..0000000 --- a/src/screens/Comment/CommentNew.js +++ /dev/null @@ -1,196 +0,0 @@ -import React, { memo, useState, useMemo, useCallback, useEffect, useRef } from 'react' -import { View, Text, StyleSheet, FlatList, RefreshControl } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import music from '@/utils/music' -import CommentFloor from './components/CommentFloor' -import { useTranslation } from '@/plugins/i18n' -const limit = 15 - -const getComment = async(musicInfo, page, limit, retryNum = 0) => { - let resp - try { - resp = await music[musicInfo.source].comment.getComment(musicInfo, page, limit) - } catch (error) { - console.log(error.message) - if (error.message == '取消请求' || ++retryNum > 2) throw error - resp = await getComment(musicInfo, page, limit, retryNum) - } - return resp -} -const filterList = list => { - let keys = [] - return list.filter(c => { - let id = String(c.id) - if (keys.includes(id)) return false - keys.push(id) - return true - }) -} - -export default memo(({ musicInfo, setTotal }) => { - const [isListRefreshing, setIsListRefreshing] = useState(false) - const [isLoadError, setIsLoadError] = useState(false) - // const [isLoading, setIsLoading] = useState(false) - const [isEnd, setIsEnd] = useState(false) - const [commentList, setCommentList] = useState([]) - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - const scrollViewRef = useRef() - const listInfo = useRef({ page: 1, total: 0, maxPage: 1, isEnd: false, isLoading: false, isLoadError: false }) - const handleGetComment = (musicInfo, page) => { - // setIsLoading(true) - listInfo.current.isLoading = true - return getComment(musicInfo, page, limit).then(commentInfo => { - listInfo.current.page = page - listInfo.current.isLoading = false - // setIsLoading(false) - if (listInfo.current.isLoadError) { - listInfo.current.isLoadError = false - setIsLoadError(false) - } - return commentInfo - }).catch(err => { - console.log(err) - if (err.message != '取消请求') { - listInfo.current.isLoading = false - // setIsLoading(false) - listInfo.current.isLoadError = true - setIsLoadError(true) - } - return Promise.reject(err) - }) - } - const handleListLoadMore = useCallback(() => { - if (listInfo.current.isLoading || listInfo.current.isEnd) return - const page = listInfo.current.page + 1 - handleGetComment(musicInfo, page).then(({ comments }) => { - let isEnd = page >= listInfo.current.maxPage - if (listInfo.current.isEnd != isEnd) { - listInfo.current.isEnd = isEnd - setIsEnd(isEnd) - } - setCommentList(commentList => { - return filterList([...commentList, ...comments]) - }) - }) - }, [musicInfo]) - - const handleListRefresh = useCallback(() => { - setIsListRefreshing(true) - handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { - listInfo.current.total = total - listInfo.current.maxPage = maxPage - setTotal(total) - let isEnd = maxPage === 1 - if (listInfo.current.isEnd != isEnd) { - listInfo.current.isEnd = isEnd - setIsEnd(isEnd) - } - setCommentList(filterList(comments)) - }).finally(() => { - setIsListRefreshing(false) - }) - }, [musicInfo, setTotal]) - - const handleShowComment = useCallback(musicInfo => { - listInfo.current.page = 1 - listInfo.current.total = 0 - listInfo.current.maxPage = 1 - listInfo.current.isEnd = false - listInfo.current.isLoading = false - listInfo.current.isLoadError = false - setCommentList([]) - if (!musicInfo.songmid || !music[musicInfo.source]?.comment) return setIsEnd(true) - handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { - listInfo.current.total = total - listInfo.current.maxPage = maxPage - setTotal(total) - let isEnd = maxPage === 1 - if (listInfo.current.isEnd != isEnd) { - listInfo.current.isEnd = isEnd - setIsEnd(isEnd) - } - setCommentList(filterList(comments)) - }) - }, []) - - useEffect(() => { - handleShowComment(musicInfo) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [handleShowComment, musicInfo.songmid]) - - - const footerStatus = isEnd - ? 'list_end' - : isLoadError - ? 'list_error' - : 'list_loading' - - const handleRenderItem = ({ item }) => { - return ( - <CommentFloor comment={item} /> - ) - } - - const refreshControl = useMemo(() => ( - <RefreshControl - colors={[theme.secondary]} - progressBackgroundColor={theme.primary} - refreshing={isListRefreshing} - onRefresh={handleListRefresh} /> - ), [isListRefreshing, handleListRefresh, theme]) - - return ( - <FlatList - data={commentList} - renderItem={handleRenderItem} - keyExtractor={item => item.id} - style={styles.container} - ref={scrollViewRef} - onEndReached={handleListLoadMore} - onEndReachedThreshold={0.6} - refreshControl={refreshControl} - ListFooterComponent={ - footerStatus ? <View style={{ alignItems: 'center', padding: 10 }}><Text style={{ color: theme.normal30 }}>{t(footerStatus)}</Text></View> : null - } - // Fix Text in FlatList is not selectable on Android - // https://github.com/facebook/react-native/issues/26264#issuecomment-559986861 - removeClippedSubviews={false} - maxToRenderPerBatch={8} - updateCellsBatchingPeriod={80} - windowSize={16} - /> - ) -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - paddingLeft: 15, - paddingRight: 15, - // backgroundColor: 'rgba(0,0,0,0.1)', - }, - space: { - paddingTop: '80%', - }, - line: { - paddingTop: 8, - paddingBottom: 8, - // opacity: 0, - }, - lineText: { - // textAlign: 'center', - fontSize: 16, - lineHeight: 20, - // paddingTop: 5, - // paddingBottom: 5, - // opacity: 0, - }, - lineTranslationText: { - textAlign: 'center', - fontSize: 13, - lineHeight: 17, - paddingTop: 5, - // paddingBottom: 5, - }, -}) diff --git a/src/screens/Comment/CommentNew.tsx b/src/screens/Comment/CommentNew.tsx new file mode 100644 index 0000000..9130b65 --- /dev/null +++ b/src/screens/Comment/CommentNew.tsx @@ -0,0 +1,104 @@ +import React, { useEffect, useRef } from 'react' +import { filterList, getNewComment } from './utils' +import music from '@/utils/musicSdk' +import List, { ListType } from './components/List' +const limit = 15 + +export default ({ musicInfo, onUpdateTotal }: { + musicInfo: LX.Music.MusicInfoOnline + onUpdateTotal: (total: number) => void +}) => { + // const [isLoading, setIsLoading] = useState(false) + const listRef = useRef<ListType>(null) + const listInfo = useRef({ page: 1, total: 0, maxPage: 1, isEnd: false, isLoading: false, isLoadError: false }) + const handleGetComment = async(musicInfo: LX.Music.MusicInfoOnline, page: number) => { + // setIsLoading(true) + listInfo.current.isLoading = true + return getNewComment(musicInfo, page, limit).then(commentInfo => { + listInfo.current.page = page + listInfo.current.isLoading = false + // setIsLoading(false) + if (listInfo.current.isLoadError) { + listInfo.current.isLoadError = false + } + return commentInfo + }).catch(async err => { + console.log(err) + if (err.message != '取消请求') { + listInfo.current.isLoading = false + // setIsLoading(false) + listInfo.current.isLoadError = true + } + throw err + }) + } + const updateStatus = () => { + if (listInfo.current.isLoadError) { + listRef.current?.setStatus('error') + } else if (listInfo.current.isEnd) { + listRef.current?.setStatus('end') + } else if (!listInfo.current.isLoading) { + listRef.current?.setStatus('idle') + } + } + const handleListLoadMore = () => { + console.log('load') + if (listInfo.current.isLoading || listInfo.current.isEnd) return + const page = listInfo.current.page + 1 + listRef.current?.setStatus('loading') + void handleGetComment(musicInfo, page).then(({ comments }) => { + let isEnd = page >= listInfo.current.maxPage + if (listInfo.current.isEnd != isEnd) listInfo.current.isEnd = isEnd + listRef.current?.setList(filterList([...listRef.current.getList(), ...comments])) + }).finally(updateStatus) + } + + const handleListRefresh = () => { + listRef.current?.setStatus('refreshing') + void handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { + listInfo.current.total = total + listInfo.current.maxPage = maxPage + onUpdateTotal(total) + let isEnd = maxPage === 1 + if (listInfo.current.isEnd != isEnd) listInfo.current.isEnd = isEnd + listRef.current?.setList(filterList(comments)) + }).finally(updateStatus) + } + + const handleShowComment = (musicInfo: LX.Music.MusicInfoOnline) => { + if (!musicInfo.id || !music[musicInfo.source].comment) return + listInfo.current.page = 1 + listInfo.current.total = 0 + listInfo.current.maxPage = 1 + listInfo.current.isEnd = false + listInfo.current.isLoading = false + listInfo.current.isLoadError = false + listRef.current?.setList([]) + listRef.current?.setStatus('loading') + void handleGetComment(musicInfo, 1).then(({ comments, maxPage, total }) => { + listInfo.current.total = total + listInfo.current.maxPage = maxPage + onUpdateTotal(total) + let isEnd = maxPage === 1 + if (listInfo.current.isEnd != isEnd) listInfo.current.isEnd = isEnd + setTimeout(() => { + listRef.current?.setList(filterList(comments)) + setTimeout(updateStatus, 300) + }, 300) + }) + } + + useEffect(() => { + handleShowComment(musicInfo) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [musicInfo.id]) + + + return ( + <List + ref={listRef} + onLoadMore={handleListLoadMore} + onRefresh={handleListRefresh} + /> + ) +} diff --git a/src/screens/Comment/components/CommentFloor.js b/src/screens/Comment/components/CommentFloor.js deleted file mode 100644 index 2436c9b..0000000 --- a/src/screens/Comment/components/CommentFloor.js +++ /dev/null @@ -1,129 +0,0 @@ -import React, { memo, useState, useMemo, useCallback } from 'react' -import { View, Text, StyleSheet, Image } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { BorderWidths } from '@/theme' -import defaultUser from '@/resources/images/defaultUser.jpg' -import { Icon } from '@/components/common/Icon' - -const GAP = 12 - -const CommentFloor = memo(({ comment, isLast }) => { - const theme = useGetter('common', 'theme') - const [isAvatarError, setIsAvatarError] = useState(false) - - const handleAvatarError = useCallback(() => { - setIsAvatarError(true) - }, []) - - const replyComments = useMemo(() => { - if (!comment.reply || !comment.reply.length) return null - const endIndex = comment.reply.length - 1 - return ( - <View style={{ ...styles.replyFloor, borderTopColor: theme.borderColor }}> - { - comment.reply.map((c, index) => ( - <CommentFloor comment={c} isLast={index === endIndex} key={`${comment.id}_${c.id}`} /> - )) - } - </View> - ) - - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - const likedCount = useMemo(() => { - if (comment.likedCount == null) return null - return ( - <View style={styles.like}> - <Icon name="thumbs-up" style={{ color: theme.normal50 }} size={12} /> - <Text style={{ ...styles.likedCount, color: theme.normal50 }}>{comment.likedCount}</Text> - </View> - ) - }, []) - - return ( - <View style={{ ...styles.container, borderBottomColor: theme.borderColor, borderBottomWidth: isLast ? 0 : BorderWidths.normal, paddingBottom: isLast ? 0 : GAP }}> - <View style={styles.comment}> - <View style={styles.left}> - <Image source={comment.avatar && !isAvatarError ? { uri: comment.avatar } : defaultUser} onError={handleAvatarError} progressiveRenderingEnabled={true} borderRadius={4} style={styles.avatar} /> - </View> - <View style={styles.right}> - <View style={styles.info}> - <View> - <Text selectable numberOfLines={1} style={{ ...styles.userName, color: theme.normal }}>{comment.userName}</Text> - <Text numberOfLines={1} style={{ ...styles.time, color: theme.normal30 }}>{comment.timeStr}</Text> - </View> - {likedCount} - </View> - <Text selectable style={{ ...styles.text, color: theme.normal }}>{comment.text}</Text> - </View> - </View> - {replyComments} - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - // backgroundColor: 'rgba(0,0,0,0.1)', - marginTop: GAP, - paddingBottom: GAP, - borderBottomWidth: BorderWidths.normal, - borderStyle: 'dashed', - }, - comment: { - flex: 1, - // backgroundColor: 'rgba(0,0,0,0.1)', - flexDirection: 'row', - }, - avatar: { - width: 36, - height: 36, - }, - right: { - flex: 1, - paddingLeft: 10, - }, - info: { - flex: 1, - flexDirection: 'row', - // backgroundColor: 'rgba(0,0,0,0.1)', - justifyContent: 'space-between', - alignItems: 'center', - }, - userName: { - fontSize: 14, - // lineHeight: 16, - }, - time: { - fontSize: 12, - marginTop: 2, - }, - like: { - flexDirection: 'row', - alignItems: 'center', - }, - likedCount: { - marginLeft: 2, - fontSize: 12, - }, - text: { - // textAlign: 'center', - marginTop: 5, - fontSize: 14, - lineHeight: 20, - // paddingTop: 5, - // paddingBottom: 5, - // opacity: 0, - }, - replyFloor: { - marginTop: GAP, - marginLeft: 20, - borderTopWidth: BorderWidths.normal, - // backgroundColor: 'rgba(0,0,0,0.1)', - borderStyle: 'dashed', - }, -}) - -export default CommentFloor diff --git a/src/screens/Comment/components/CommentFloor.tsx b/src/screens/Comment/components/CommentFloor.tsx new file mode 100644 index 0000000..fc0e4e9 --- /dev/null +++ b/src/screens/Comment/components/CommentFloor.tsx @@ -0,0 +1,161 @@ +import React, { memo, useState, useMemo, useCallback } from 'react' +import { View, Image } from 'react-native' +import { BorderWidths } from '@/theme' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { type Comment } from '../utils' +import Text from '@/components/common/Text' +import { scaleSizeH, scaleSizeW } from '@/utils/pixelRatio' +import ScaledImage from '@/components/common/ScaledImage' +import { useLayout } from '@/utils/hooks' +// eslint-disable-next-line @typescript-eslint/no-var-requires +const defaultUser = require('@/resources/images/defaultUser.jpg') + +const GAP = 12 +const avatarWidth = scaleSizeW(36) +const MAX_IMAGE_HEIGHT = scaleSizeH(260) + +const CommentFloor = memo(({ comment, isLast }: { + comment: Comment + isLast?: boolean +}) => { + const theme = useTheme() + const [isAvatarError, setIsAvatarError] = useState(false) + const { onLayout, width } = useLayout() + + const handleAvatarError = useCallback(() => { + setIsAvatarError(true) + }, []) + + const replyComments = useMemo(() => { + if (!comment.reply?.length) return null + const endIndex = comment.reply.length - 1 + return ( + <View style={{ ...styles.replyFloor, borderTopColor: theme['c-list-header-border-bottom'] }}> + { + comment.reply.map((c, index) => ( + <CommentFloor comment={c} isLast={index === endIndex} key={`${comment.id}_${c.id}`} /> + )) + } + </View> + ) + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + const likedCount = useMemo(() => { + if (comment.likedCount == null) return null + return ( + <View style={styles.like}> + <Icon name="thumbs-up" style={{ color: theme['c-450'] }} size={12} /> + <Text style={styles.likedCount} size={12} color={ theme['c-450'] }>{comment.likedCount}</Text> + </View> + ) + }, []) + + return ( + <View style={{ ...styles.container, borderBottomColor: theme['c-list-header-border-bottom'], borderBottomWidth: isLast ? 0 : BorderWidths.normal, paddingBottom: isLast ? 0 : GAP }}> + <View style={styles.comment}> + <View> + <Image + source={comment.avatar && !isAvatarError ? { uri: comment.avatar } : defaultUser} + onError={handleAvatarError} + progressiveRenderingEnabled={true} + borderRadius={4} + style={{ height: avatarWidth, width: avatarWidth }} /> + </View> + <View style={styles.right}> + <View style={styles.info}> + <View> + <Text selectable numberOfLines={1} size={14}> + {comment.userName} + </Text> + <View style={styles.metaInfo}> + <Text numberOfLines={1} size={12} color={theme['c-450']}>{comment.timeStr}</Text> + { comment.location ? <Text numberOfLines={1} style={styles.location} size={12} color={theme['c-450']}>{comment.location}</Text> : null } + </View> + </View> + {likedCount} + </View> + <Text selectable style={styles.text}>{comment.text}</Text> + { + comment.images?.length + ? ( + <View style={styles.images} onLayout={onLayout}> + { + comment.images.map((url, index) => <ScaledImage key={String(index)} uri={url} maxWidth={width} maxHeight={MAX_IMAGE_HEIGHT} />) + } + </View> + ) + : null + } + </View> + </View> + {replyComments} + </View> + ) +}) + +const styles = createStyle({ + container: { + flex: 1, + // backgroundColor: 'rgba(0,0,0,0.1)', + marginTop: GAP, + paddingBottom: GAP, + borderBottomWidth: BorderWidths.normal, + borderStyle: 'dashed', + }, + comment: { + flex: 1, + // backgroundColor: 'rgba(0,0,0,0.1)', + flexDirection: 'row', + }, + right: { + flex: 1, + paddingLeft: 10, + }, + info: { + flex: 1, + flexDirection: 'row', + // backgroundColor: 'rgba(0,0,0,0.1)', + justifyContent: 'space-between', + alignItems: 'center', + }, + metaInfo: { + marginTop: 2, + flexDirection: 'row', + }, + location: { + marginLeft: 10, + }, + like: { + flexDirection: 'row', + alignItems: 'center', + }, + likedCount: { + marginLeft: 2, + }, + text: { + // textAlign: 'center', + marginTop: 5, + lineHeight: 19, + // paddingTop: 5, + // paddingBottom: 5, + // opacity: 0, + }, + images: { + paddingTop: 5, + width: '100%', + flexDirection: 'row', + }, + replyFloor: { + marginTop: GAP, + marginLeft: 20, + borderTopWidth: BorderWidths.normal, + // backgroundColor: 'rgba(0,0,0,0.1)', + borderStyle: 'dashed', + }, +}) + +export default CommentFloor diff --git a/src/screens/Comment/components/Header.js b/src/screens/Comment/components/Header.js deleted file mode 100644 index cab77c9..0000000 --- a/src/screens/Comment/components/Header.js +++ /dev/null @@ -1,67 +0,0 @@ -import React, { memo } from 'react' - -import { View, StyleSheet, TouchableOpacity, Text } from 'react-native' - -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { pop } from '@/navigation' -import { useTranslation } from '@/plugins/i18n' -// import { AppColors } from '@/theme' -import StatusBar from '@/components/common/StatusBar' - - -export default memo(({ musicInfo }) => { - const theme = useGetter('common', 'theme') - const componentIds = useGetter('common', 'componentIds') - const { t } = useTranslation() - - const back = () => { - pop(componentIds.comment) - } - - return ( - <View style={{ ...styles.header, backgroundColor: theme.primary }} nativeID="header"> - <StatusBar /> - <View style={{ ...styles.container }}> - <TouchableOpacity onPress={back} style={{ ...styles.button }}> - <Icon name="chevron-left" style={{ color: theme.normal }} size={24} /> - </TouchableOpacity> - <Text numberOfLines={1} style={{ ...styles.title, color: theme.normal }}>{t('comment_title', { name: musicInfo.name, singer: musicInfo.singer })}</Text> - {/* <TouchableOpacity onPress={back} style={{ ...styles.button }}> - <Icon name="autorenew" style={{ color: theme.normal }} size={24} /> - </TouchableOpacity> */} - </View> - </View> - ) -}) - - -const styles = StyleSheet.create({ - header: { - height: 40 + StatusBar.currentHeight, - paddingTop: StatusBar.currentHeight, - }, - container: { - flexDirection: 'row', - // justifyContent: 'center', - height: 40, - paddingRight: 40, - }, - button: { - // paddingLeft: 10, - // paddingRight: 10, - width: 40, - justifyContent: 'center', - alignItems: 'center', - }, - title: { - flex: 1, - lineHeight: 40, - textAlign: 'center', - fontSize: 16, - }, - icon: { - paddingLeft: 4, - paddingRight: 4, - }, -}) diff --git a/src/screens/Comment/components/Header.tsx b/src/screens/Comment/components/Header.tsx new file mode 100644 index 0000000..2a0d406 --- /dev/null +++ b/src/screens/Comment/components/Header.tsx @@ -0,0 +1,67 @@ +import React, { memo } from 'react' +import { View, TouchableOpacity } from 'react-native' + +import { Icon } from '@/components/common/Icon' +import { pop } from '@/navigation' +// import { AppColors } from '@/theme' +import StatusBar from '@/components/common/StatusBar' +import { useComponentIds } from '@/store/common/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { HEADER_HEIGHT as _HEADER_HEIGHT } from '@/config/constant' +import { scaleSizeH } from '@/utils/pixelRatio' + +const HEADER_HEIGHT = scaleSizeH(_HEADER_HEIGHT) + +export default memo(({ musicInfo }: { + musicInfo: LX.Music.MusicInfo +}) => { + const componentIds = useComponentIds() + const t = useI18n() + + const back = () => { + void pop(componentIds.comment as string) + } + + return ( + <View style={{ height: HEADER_HEIGHT + StatusBar.currentHeight, paddingTop: StatusBar.currentHeight }}> + <StatusBar /> + <View style={{ ...styles.container }}> + <TouchableOpacity onPress={back} style={{ ...styles.button, width: HEADER_HEIGHT }}> + <Icon name="chevron-left" size={18} /> + </TouchableOpacity> + <Text numberOfLines={1} size={16} style={styles.title}>{t('comment_title', { name: musicInfo.name, singer: musicInfo.singer })}</Text> + {/* <TouchableOpacity onPress={back} style={{ ...styles.button }}> + <Icon name="available_updates" style={{ color: theme.normal }} size={24} /> + </TouchableOpacity> */} + </View> + </View> + ) +}) + + +const styles = createStyle({ + container: { + flexDirection: 'row', + alignItems: 'center', + height: '100%', + paddingRight: 40, + // backgroundColor: 'rgba(255, 255, 255, 0.5)', + }, + button: { + // paddingLeft: 10, + // paddingRight: 10, + width: '100%', + justifyContent: 'center', + alignItems: 'center', + }, + title: { + flex: 1, + textAlign: 'center', + }, + icon: { + paddingLeft: 4, + paddingRight: 4, + }, +}) diff --git a/src/screens/Comment/components/List.tsx b/src/screens/Comment/components/List.tsx new file mode 100644 index 0000000..ea2b711 --- /dev/null +++ b/src/screens/Comment/components/List.tsx @@ -0,0 +1,142 @@ +import React, { useMemo, useRef, useState, forwardRef, useImperativeHandle } from 'react' +import { FlatList, type FlatListProps, RefreshControl, View } from 'react-native' + +// import { useMusicList } from '@/store/list/hook' +import CommentFloor from './CommentFloor' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { type Comment } from '../utils' +import { useI18n } from '@/lang' +import Text from '@/components/common/Text' + +type FlatListType = FlatListProps<Comment> + +export interface ListProps { + onRefresh: () => void + onLoadMore: () => void +} +export interface ListType { + setList: (list: Comment[]) => void + getList: () => Comment[] + setStatus: (val: Status) => void +} +export type Status = 'loading' | 'refreshing' | 'end' | 'error' | 'idle' + +const List = forwardRef<ListType, ListProps>(({ + onRefresh, + onLoadMore, +}, ref) => { + // const t = useI18n() + const theme = useTheme() + const flatListRef = useRef<FlatList>(null) + const [currentList, setList] = useState<Comment[]>([]) + const [status, setStatus] = useState<Status>('idle') + // const currentListIdRef = useRef('') + // console.log('render comment list') + + useImperativeHandle(ref, () => ({ + setList(list) { + setList(list) + }, + getList() { + return currentList + }, + setStatus(val) { + setStatus(val) + }, + })) + + const handleLoadMore = () => { + switch (status) { + case 'loading': + case 'refreshing': return + } + onLoadMore() + } + + const renderItem: FlatListType['renderItem'] = ({ item }) => <CommentFloor comment={item} /> + + const getkey: FlatListType['keyExtractor'] = item => item.id + + const refreshControl = useMemo(() => ( + <RefreshControl + colors={[theme['c-primary']]} + // progressBackgroundColor={theme.primary} + refreshing={status == 'refreshing'} + onRefresh={onRefresh} /> + ), [status, onRefresh, theme]) + const footerComponent = useMemo(() => { + let label: FooterLabel + switch (status) { + case 'refreshing': return null + case 'idle': + case 'loading': + label = 'list_loading' + break + case 'end': + label = 'list_end' + break + case 'error': + label = 'list_error' + break + } + return <Footer label={label} onLoadMore={onLoadMore} /> + }, [onLoadMore, status]) + + return ( + <FlatList + ref={flatListRef} + style={styles.list} + data={currentList} + onEndReachedThreshold={0.6} + maxToRenderPerBatch={4} + // updateCellsBatchingPeriod={80} + windowSize={8} + removeClippedSubviews={true} + initialNumToRender={12} + renderItem={renderItem} + keyExtractor={getkey} + // onRefresh={onRefresh} + // refreshing={refreshing} + onEndReached={handleLoadMore} + refreshControl={refreshControl} + ListFooterComponent={footerComponent} + /> + ) +}) + +type FooterLabel = 'list_loading' | 'list_end' | 'list_error' +const Footer = ({ label, onLoadMore }: { + label: FooterLabel + onLoadMore: () => void +}) => { + const theme = useTheme() + const t = useI18n() + const handlePress = () => { + if (label != 'list_error') return + onLoadMore() + } + return ( + <View> + <Text onPress={handlePress} style={styles.footer} color={theme['c-font-label']}>{t(label)}</Text> + </View> + ) +} + +const styles = createStyle({ + container: { + flex: 1, + }, + list: { + flexGrow: 1, + flexShrink: 1, + paddingLeft: 15, + paddingRight: 15, + }, + footer: { + textAlign: 'center', + padding: 10, + }, +}) + +export default List diff --git a/src/screens/Comment/index.js b/src/screens/Comment/index.js deleted file mode 100644 index ba950d3..0000000 --- a/src/screens/Comment/index.js +++ /dev/null @@ -1,167 +0,0 @@ -import React, { memo, useMemo, useCallback, useEffect, useRef, useState } from 'react' -import { View, Text, StyleSheet, TouchableOpacity } from 'react-native' -import PagerView from 'react-native-pager-view' -import Header from './components/Header' -import { useTranslation } from '@/plugins/i18n' -import { useGetter, useDispatch } from '@/store' -import { Icon } from '@/components/common/Icon' -import CommentHot from './CommentHot' -import CommentNew from './CommentNew' -import { toast } from '@/utils/tools' - -const HeaderItem = ({ id, label, isActive, onPress }) => { - const theme = useGetter('common', 'theme') - // console.log(theme) - const components = useMemo(() => ( - <TouchableOpacity style={styles.btn} onPress={() => !isActive && onPress(id)}> - <Text style={{ ...styles.btnText, color: isActive ? theme.secondary : theme.normal10 }}>{label}</Text> - </TouchableOpacity> - ), [isActive, theme, label, onPress, id]) - - return components -} - -const HotCommentPage = ({ activeId, musicInfo, setTotal }) => { - const initedRef = useRef(false) - const comment = useMemo(() => <CommentHot musicInfo={musicInfo} setTotal={setTotal} />, [musicInfo, setTotal]) - switch (activeId) { - // case 3: - case 'hot': - if (!initedRef.current) initedRef.current = true - return comment - default: - return initedRef.current ? comment : null - } - // return activeId == 0 || activeId == 1 ? setting : null -} -const NewCommentPage = ({ activeId, musicInfo, setTotal }) => { - const initedRef = useRef(false) - const comment = useMemo(() => <CommentNew musicInfo={musicInfo} setTotal={setTotal} />, [musicInfo, setTotal]) - switch (activeId) { - // case 3: - case 'new': - if (!initedRef.current) initedRef.current = true - return comment - default: - return initedRef.current ? comment : null - } - // return activeId == 0 || activeId == 1 ? setting : null -} - -export default memo(({ componentId, animated }) => { - const pagerViewRef = useRef() - const [activeId, setActiveId] = useState('hot') - const [musicInfo, setMusicInfo] = useState({}) - const { t } = useTranslation() - const theme = useGetter('common', 'theme') - const [total, setTotal] = useState({ hot: 0, new: 0 }) - const setComponentId = useDispatch('common', 'setComponentId') - - useEffect(() => { - setComponentId({ name: 'comment', id: componentId }) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - const tabs = useMemo(() => { - return [ - { id: 'hot', label: t('comment_tab_hot', { total: total.hot ? `(${total.hot})` : '' }) }, - { id: 'new', label: t('comment_tab_new', { total: total.new ? `(${total.new})` : '' }) }, - ] - }, [total, t]) - - const toggleTab = useCallback(id => { - setActiveId(id) - pagerViewRef.current.setPage(tabs.findIndex(tab => tab.id == id)) - }, [tabs]) - - const onPageSelected = useCallback(({ nativeEvent }) => { - setActiveId(tabs[nativeEvent.position].id) - }, [tabs]) - - const refreshComment = useCallback(() => { - setMusicInfo(musicInfo => { - if (musicInfo.songmid == global.playInfo.currentPlayMusicInfo.songmid) { - toast(t('comment_refresh', { name: musicInfo.name })) - } - return global.playInfo.currentPlayMusicInfo - }) - }, [t]) - - const setHotTotal = useCallback(total => { - setTotal(totalInfo => ({ ...totalInfo, hot: total })) - }, []) - const setNewTotal = useCallback(total => { - setTotal(totalInfo => ({ ...totalInfo, new: total })) - }, []) - - useEffect(() => { - setMusicInfo(global.playInfo.currentPlayMusicInfo) - }, []) - - return ( - <View style={{ flex: 1 }}> - <Header musicInfo={musicInfo} /> - <View style={{ ...styles.container, backgroundColor: theme.primary }}> - <View style={styles.tabHeader}> - <View style={styles.left}> - {tabs.map(({ id, label }) => <HeaderItem id={id} label={label} key={id} isActive={activeId == id} onPress={toggleTab} />)} - </View> - <View style={styles.right}> - <TouchableOpacity onPress={refreshComment} style={{ ...styles.button }}> - <Icon name="autorenew" style={{ color: theme.normal20 }} size={24} /> - </TouchableOpacity> - </View> - </View> - <PagerView - ref={pagerViewRef} - onPageSelected={onPageSelected} - // onPageScrollStateChanged={onPageScrollStateChanged} - style={styles.pagerView} - > - <View collapsable={false} style={styles.pageStyle}> - <HotCommentPage activeId={activeId} musicInfo={musicInfo} setTotal={setHotTotal} /> - </View> - <View collapsable={false} style={styles.pageStyle}> - <NewCommentPage activeId={activeId} musicInfo={musicInfo} setTotal={setNewTotal} /> - </View> - </PagerView> - </View> - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - tabHeader: { - flexDirection: 'row', - // paddingLeft: 10, - paddingRight: 10, - // justifyContent: 'center', - }, - left: { - flex: 1, - flexDirection: 'row', - paddingLeft: 5, - }, - btn: { - // flex: 1, - paddingLeft: 10, - paddingRight: 10, - backgroundColor: 'rgba(0,0,0,0)', - alignItems: 'center', - justifyContent: 'center', - height: 36, - }, - btnText: { - fontSize: 16, - // color: 'white', - }, - pagerView: { - flex: 1, - }, - pageStyle: { - overflow: 'hidden', - }, -}) diff --git a/src/screens/Comment/index.tsx b/src/screens/Comment/index.tsx new file mode 100644 index 0000000..3e24129 --- /dev/null +++ b/src/screens/Comment/index.tsx @@ -0,0 +1,214 @@ +import React, { memo, useMemo, useEffect, useRef, useState, useCallback } from 'react' +import { View, TouchableOpacity } from 'react-native' +import PagerView, { type PagerViewOnPageSelectedEvent } from 'react-native-pager-view' +import Header from './components/Header' +import { Icon } from '@/components/common/Icon' +import CommentHot from './CommentHot' +import CommentNew from './CommentNew' +import { createStyle, toast } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' +import { useI18n } from '@/lang' +import { COMPONENT_IDS } from '@/config/constant' +import { setComponentId } from '@/core/common' +import PageContent from '@/components/PageContent' +import playerState from '@/store/player/state' +import { scaleSizeH } from '@/utils/pixelRatio' +import { BorderWidths } from '@/theme' + +type ActiveId = 'hot' | 'new' + +const BAR_HEIGHT = scaleSizeH(34) + +const HeaderItem = ({ id, label, isActive, onPress }: { + id: ActiveId + label: string + isActive: boolean + onPress: (id: ActiveId) => void +}) => { + const theme = useTheme() + // console.log(theme) + const components = useMemo(() => ( + <TouchableOpacity style={styles.tabBtn} onPress={() => { !isActive && onPress(id) }}> + <Text color={isActive ? theme['c-primary-font-active'] : theme['c-font']}>{label}</Text> + </TouchableOpacity> + ), [isActive, theme, label, onPress, id]) + + return components +} + +const HotCommentPage = memo(({ activeId, musicInfo, onUpdateTotal }: { + activeId: ActiveId + musicInfo: LX.Music.MusicInfoOnline + onUpdateTotal: (total: number) => void +}) => { + const initedRef = useRef(false) + const comment = useMemo(() => <CommentHot musicInfo={musicInfo} onUpdateTotal={onUpdateTotal} />, [musicInfo, onUpdateTotal]) + switch (activeId) { + case 'hot': + if (!initedRef.current) initedRef.current = true + return comment + default: + return initedRef.current ? comment : null + } +}) + +const NewCommentPage = memo(({ activeId, musicInfo, onUpdateTotal }: { + activeId: ActiveId + musicInfo: LX.Music.MusicInfoOnline + onUpdateTotal: (total: number) => void +}) => { + const initedRef = useRef(false) + const comment = useMemo(() => <CommentNew musicInfo={musicInfo} onUpdateTotal={onUpdateTotal} />, [musicInfo, onUpdateTotal]) + switch (activeId) { + case 'new': + if (!initedRef.current) initedRef.current = true + return comment + default: + return initedRef.current ? comment : null + } +}) + +export default memo(({ componentId }: { + componentId: string +}) => { + const pagerViewRef = useRef<PagerView>(null) + const [activeId, setActiveId] = useState<ActiveId>('hot') + const [musicInfo, setMusicInfo] = useState<LX.Music.MusicInfo | null>(null) + const t = useI18n() + const theme = useTheme() + const [total, setTotal] = useState({ hot: 0, new: 0 }) + + useEffect(() => { + setComponentId(COMPONENT_IDS.comment, componentId) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + const tabs = useMemo(() => { + return [ + { id: 'hot', label: t('comment_tab_hot', { total: total.hot ? `(${total.hot})` : '' }) }, + { id: 'new', label: t('comment_tab_new', { total: total.new ? `(${total.new})` : '' }) }, + ] as const + }, [total, t]) + + const toggleTab = (id: ActiveId) => { + setActiveId(id) + pagerViewRef.current?.setPage(tabs.findIndex(tab => tab.id == id)) + } + + const onPageSelected = ({ nativeEvent }: PagerViewOnPageSelectedEvent) => { + setActiveId(tabs[nativeEvent.position].id) + } + + const refreshComment = () => { + if (!playerState.playMusicInfo.musicInfo) return + let playerMusicInfo = playerState.playMusicInfo.musicInfo + if ('progress' in playerMusicInfo) playerMusicInfo = playerMusicInfo.metadata.musicInfo + + if (musicInfo && musicInfo.id == playerMusicInfo.id) { + toast(t('comment_refresh', { name: musicInfo.name })) + return + } + setMusicInfo(playerMusicInfo) + } + + const setHotTotal = useCallback((total: number) => { + setTotal(totalInfo => ({ ...totalInfo, hot: total })) + }, []) + const setNewTotal = useCallback((total: number) => { + setTotal(totalInfo => ({ ...totalInfo, new: total })) + }, []) + + useEffect(() => { + if (!playerState.playMusicInfo.musicInfo) return + let playerMusicInfo = playerState.playMusicInfo.musicInfo + if ('progress' in playerMusicInfo) playerMusicInfo = playerMusicInfo.metadata.musicInfo + setMusicInfo(playerMusicInfo) + }, []) + + return ( + <PageContent> + { + musicInfo == null + ? null + : <> + <Header musicInfo={musicInfo} /> + { + musicInfo.source == 'local' + ? ( + <View style={{ ...styles.container, alignItems: 'center', justifyContent: 'center' }}> + <Text>{t('comment_not support')}</Text> + </View> + ) + : ( + <View style={styles.container}> + <View style={{ ...styles.tabHeader, borderBottomColor: theme['c-border-background'], height: BAR_HEIGHT }}> + <View style={styles.left}> + {tabs.map(({ id, label }) => <HeaderItem id={id} label={label} key={id} isActive={activeId == id} onPress={toggleTab} />)} + </View> + <View> + <TouchableOpacity onPress={refreshComment} style={{ ...styles.btn, width: BAR_HEIGHT }}> + <Icon name="available_updates" size={20} color={theme['c-600']} /> + </TouchableOpacity> + </View> + </View> + <PagerView + ref={pagerViewRef} + onPageSelected={onPageSelected} + // onPageScrollStateChanged={onPageScrollStateChanged} + style={styles.pagerView} + > + <View collapsable={false} style={styles.pageStyle}> + <HotCommentPage activeId={activeId} musicInfo={musicInfo} onUpdateTotal={setHotTotal} /> + </View> + <View collapsable={false} style={styles.pageStyle}> + <NewCommentPage activeId={activeId} musicInfo={musicInfo} onUpdateTotal={setNewTotal} /> + </View> + </PagerView> + </View> + ) + } + </> + } + + </PageContent> + ) +}) + +const styles = createStyle({ + container: { + flex: 1, + }, + tabHeader: { + flexDirection: 'row', + // paddingLeft: 10, + paddingRight: 10, + // justifyContent: 'center', + borderBottomWidth: BorderWidths.normal, + }, + left: { + flex: 1, + flexDirection: 'row', + paddingLeft: 5, + }, + tabBtn: { + // flex: 1, + paddingLeft: 10, + paddingRight: 10, + alignItems: 'center', + justifyContent: 'center', + height: '100%', + }, + btn: { + // flex: 1, + alignItems: 'center', + justifyContent: 'center', + height: '100%', + }, + pagerView: { + flex: 1, + }, + pageStyle: { + overflow: 'hidden', + }, +}) diff --git a/src/screens/Comment/utils.ts b/src/screens/Comment/utils.ts new file mode 100644 index 0000000..fe6ff81 --- /dev/null +++ b/src/screens/Comment/utils.ts @@ -0,0 +1,58 @@ +import { toOldMusicInfo } from '@/utils' +import music from '@/utils/musicSdk' + +export interface Comment { + id: string + text: string + images?: string[] + location?: string + timeStr?: string + userName: string + avatar?: string + userId?: string + likedCount?: number + replyNum?: number + reply: Comment[] +} +export interface CommentInfo { + source: LX.OnlineSource + comments: Comment[] + total: number + page: number + limit: number + maxPage: number +} + +export const getNewComment = async(musicInfo: LX.Music.MusicInfoOnline, page: number, limit: number, retryNum = 0): Promise<CommentInfo> => { + let resp + try { + resp = await (music[musicInfo.source].comment.getComment(toOldMusicInfo(musicInfo), page, limit) as Promise<CommentInfo>) + } catch (error: any) { + console.log(error.message) + if (error.message == '取消请求' || ++retryNum > 2) throw error + resp = await getNewComment(musicInfo, page, limit, retryNum) + } + return resp +} + +export const getHotComment = async(musicInfo: LX.Music.MusicInfoOnline, page: number, limit: number, retryNum = 0): Promise<CommentInfo> => { + let resp + try { + resp = await (music[musicInfo.source].comment.getHotComment(toOldMusicInfo(musicInfo), page, limit) as Promise<CommentInfo>) + } catch (error: any) { + console.log(error.message) + if (error.message == '取消请求' || ++retryNum > 2) throw error + resp = await getHotComment(musicInfo, page, limit, retryNum) + } + return resp +} + +export const filterList = (list: Comment[]) => { + const set = new Set() + return list.filter(c => { + let id = String(c.id) + if (set.has(id)) return false + set.add(id) + return true + }) +} diff --git a/src/screens/Home/Horizontal/Aside.tsx b/src/screens/Home/Horizontal/Aside.tsx new file mode 100644 index 0000000..3dd3077 --- /dev/null +++ b/src/screens/Home/Horizontal/Aside.tsx @@ -0,0 +1,129 @@ +import React, { memo } from 'react' +import { ScrollView, StatusBar, TouchableOpacity, View } from 'react-native' +import { useNavActiveId } from '@/store/common/hook' +import { useTheme } from '@/store/theme/hook' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { NAV_MENUS } from '@/config/constant' +import type { InitState } from '@/store/common/state' +// import commonState from '@/store/common/state' +import { exitApp, setNavActiveId } from '@/core/common' +import { BorderWidths } from '@/theme' + +const NAV_WIDTH = 68 + +const styles = createStyle({ + container: { + flexGrow: 0, + // flex: 1, + // alignItems: 'center', + // justifyContent: 'center', + // padding: 10, + borderRightWidth: BorderWidths.normal, + paddingBottom: 10, + width: NAV_WIDTH, + }, + header: { + paddingTop: 15, + paddingBottom: 15, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + }, + headerText: { + textAlign: 'center', + marginLeft: 16, + }, + menus: { + flex: 1, + }, + list: { + // paddingTop: 10, + paddingBottom: 15, + }, + menuItem: { + flexDirection: 'row', + paddingTop: 15, + paddingBottom: 15, + // paddingLeft: 25, + // paddingRight: 25, + justifyContent: 'center', + alignItems: 'center', + // backgroundColor: 'rgba(0, 0, 0, 0.2)', + }, + iconContent: { + // width: 24, + // backgroundColor: 'rgba(0, 0, 0, 0.2)', + alignItems: 'center', + }, + text: { + paddingLeft: 15, + // fontWeight: '500', + }, +}) + +const Header = () => { + const theme = useTheme() + return ( + <View style={{ paddingTop: StatusBar.currentHeight }}> + <View style={styles.header}> + <Icon name="logo" color={theme['c-primary-dark-100-alpha-300']} size={22} /> + {/* <Text style={styles.headerText} size={16} color={theme['c-primary-dark-100-alpha-300']}>LX Music</Text> */} + </View> + </View> + ) +} + +type IdType = InitState['navActiveId'] | 'nav_exit' + +const MenuItem = ({ id, icon, onPress }: { + id: IdType + icon: string + onPress: (id: IdType) => void +}) => { + // const t = useI18n() + const activeId = useNavActiveId() + const theme = useTheme() + + return activeId == id + ? <View style={styles.menuItem}> + <View style={styles.iconContent}> + <Icon name={icon} size={20} color={theme['c-primary-font-active']} /> + </View> + {/* <Text style={styles.text} size={14} color={theme['c-primary-font']}>{t(id)}</Text> */} + </View> + : <TouchableOpacity style={styles.menuItem} onPress={() => { onPress(id) }}> + <View style={styles.iconContent}> + <Icon name={icon} size={20} color={theme['c-font-label']} /> + </View> + {/* <Text style={styles.text} size={14}>{t(id)}</Text> */} + </TouchableOpacity> +} + +export default memo(() => { + const theme = useTheme() + // console.log('render drawer nav') + + const handlePress = (id: IdType) => { + if (id == 'nav_exit') { + exitApp() + return + } + + global.app_event.changeMenuVisible(false) + setNavActiveId(id) + } + + return ( + <View style={{ ...styles.container, borderRightColor: theme['c-border-background'] }}> + <Header /> + <ScrollView style={styles.menus}> + <View style={styles.list}> + {NAV_MENUS.map(menu => <MenuItem key={menu.id} id={menu.id} icon={menu.icon} onPress={handlePress} />)} + </View> + </ScrollView> + <MenuItem id="nav_exit" icon="exit2" onPress={handlePress} /> + </View> + ) +}) + diff --git a/src/screens/Home/Horizontal/Header.tsx b/src/screens/Home/Horizontal/Header.tsx new file mode 100644 index 0000000..7c11721 --- /dev/null +++ b/src/screens/Home/Horizontal/Header.tsx @@ -0,0 +1,138 @@ +import React from 'react' +import { View } from 'react-native' +// import Button from '@/components/common/Button' +// import { navigations } from '@/navigation' +// import { BorderWidths } from '@/theme' +import { useNavActiveId } from '@/store/common/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import StatusBar from '@/components/common/StatusBar' +import { useSettingValue } from '@/store/setting/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +import { HEADER_HEIGHT as _HEADER_HEIGHT } from '@/config/constant' +import { type InitState as CommonState } from '@/store/common/state' +import SearchTypeSelector from '@/screens/Home/Views/Search/SearchTypeSelector' + +const headerComponents: Partial<Record<CommonState['navActiveId'], React.ReactNode>> = { + nav_search: <SearchTypeSelector />, +} + +const HEADER_HEIGHT = _HEADER_HEIGHT * 0.8 + + +// const LeftTitle = () => { +// const id = useNavActiveId() +// const t = useI18n() + +// return <Text style={styles.leftTitle} size={18}>{t(id)}</Text> +// } +const LeftHeader = () => { + const id = useNavActiveId() + const t = useI18n() + + return ( + <View style={{ + ...styles.container, + height: scaleSizeH(HEADER_HEIGHT) + StatusBar.currentHeight, + paddingTop: StatusBar.currentHeight, + }}> + <View style={styles.left}> + <Text style={styles.leftTitle} size={18}>{t(id)}</Text> + </View> + {headerComponents[id] ?? null} + + {/* <TouchableOpacity style={styles.btn} onPress={openSetting}> + <Icon style={{ ...styles.btnText, color: theme['c-font'] }} name="setting" size={styles.btnText.fontSize} /> + </TouchableOpacity> */} + </View> + ) +} + + +// const RightTitle = () => { +// const id = useNavActiveId() +// const t = useI18n() + +// return <Text style={styles.rightTitle} size={18}>{t(id)}</Text> +// } +const RightHeader = () => { + const t = useI18n() + const id = useNavActiveId() + + return ( + <View style={{ + ...styles.container, + height: scaleSizeH(HEADER_HEIGHT) + StatusBar.currentHeight, + paddingTop: StatusBar.currentHeight, + }}> + <View style={styles.left}> + <Text style={styles.rightTitle} size={18}>{t(id)}</Text> + </View> + {headerComponents[id] ?? null} + {/* <TouchableOpacity style={styles.btn} onPress={openSetting}> + <Icon style={{ ...styles.btnText, color: theme['c-font'] }} name="setting" size={styles.btnText.fontSize} /> + </TouchableOpacity> */} + </View> + ) +} + +const Header = () => { + const drawerLayoutPosition = useSettingValue('common.drawerLayoutPosition') + + return ( + <> + <StatusBar /> + { + drawerLayoutPosition == 'left' + ? <LeftHeader /> + : <RightHeader /> + } + + </> + ) +} + + +const styles = createStyle({ + container: { + // width: '100%', + paddingRight: 5, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + // backgroundColor: 'rgba(0,0,0,0.1)', + zIndex: 10, + }, + left: { + flex: 1, + flexDirection: 'row', + paddingLeft: 5, + alignItems: 'center', + height: '100%', + }, + btn: { + // flex: 1, + width: HEADER_HEIGHT, + // backgroundColor: 'rgba(0,0,0,0.1)', + alignItems: 'center', + justifyContent: 'center', + height: '100%', + }, + titleBtn: { + flex: 1, + // backgroundColor: 'rgba(0,0,0,0.1)', + height: '100%', + justifyContent: 'center', + }, + leftTitle: { + paddingLeft: 14, + paddingRight: 16, + }, + rightTitle: { + paddingLeft: 16, + paddingRight: 16, + }, +}) + +export default Header diff --git a/src/screens/Home/Horizontal/index.tsx b/src/screens/Home/Horizontal/index.tsx new file mode 100644 index 0000000..b430362 --- /dev/null +++ b/src/screens/Home/Horizontal/index.tsx @@ -0,0 +1,35 @@ +import React from 'react' +import { View } from 'react-native' +import Aside from './Aside' +import PlayerBar from '../components/PlayerBar' +import StatusBar from '@/components/common/StatusBar' +import Header from './Header' +import Main from '../components/Main' +import { createStyle } from '@/utils/tools' + +const styles = createStyle({ + container: { + flex: 1, + flexDirection: 'row', + }, + content: { + flex: 1, + overflow: 'hidden', + }, +}) + +export default () => { + return ( + <> + <StatusBar /> + <View style={styles.container}> + <Aside /> + <View style={styles.content}> + <Header /> + <Main /> + <PlayerBar /> + </View> + </View> + </> + ) +} diff --git a/src/screens/Home/List/components/ExitMultipleModeBar.js b/src/screens/Home/List/components/ExitMultipleModeBar.js deleted file mode 100644 index 3e011d8..0000000 --- a/src/screens/Home/List/components/ExitMultipleModeBar.js +++ /dev/null @@ -1,142 +0,0 @@ -import React, { useState, useRef, useEffect, useCallback, useMemo, memo } from 'react' -import { Text, StyleSheet, Animated, View, TouchableOpacity } from 'react-native' -import { useTranslation } from '@/plugins/i18n' - -import Button from '@/components/common/Button' -import { useGetter } from '@/store' - - -export default memo(({ multipleMode, onCancel, onSelectAll, selectMode, onSwitchMode, isSelectAll }) => { - const { t } = useTranslation() - // const isGetDetailFailedRef = useRef(false) - const [visible, setVisible] = useState(false) - const [animatePlayed, setAnimatPlayed] = useState(true) - const animFade = useRef(new Animated.Value(0)).current - const animTranslateY = useRef(new Animated.Value(0)).current - - const theme = useGetter('common', 'theme') - - useEffect(() => { - setAnimatPlayed(true) - if (multipleMode) { - animFade.setValue(0.92) - animTranslateY.setValue(0) - setVisible(true) - } else { - animFade.setValue(0) - animTranslateY.setValue(-20) - setVisible(false) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - const showList = useCallback(() => { - // console.log('show List') - setVisible(true) - setAnimatPlayed(false) - animTranslateY.setValue(-20) - - Animated.parallel([ - Animated.timing(animFade, { - toValue: 0.92, - duration: 200, - useNativeDriver: true, - }), - Animated.timing(animTranslateY, { - toValue: 0, - duration: 200, - useNativeDriver: true, - }), - ]).start(() => { - setAnimatPlayed(true) - }) - }, [animFade, animTranslateY]) - - const hideList = useCallback(() => { - setAnimatPlayed(false) - Animated.parallel([ - Animated.timing(animFade, { - toValue: 0, - duration: 200, - useNativeDriver: true, - }), - Animated.timing(animTranslateY, { - toValue: -20, - duration: 200, - useNativeDriver: true, - }), - ]).start(finished => { - if (!finished) return - setVisible(false) - setAnimatPlayed(true) - }) - }, [animFade, animTranslateY]) - - useEffect(() => { - if (multipleMode) { - showList() - } else { - hideList() - } - }, [hideList, multipleMode, showList]) - - - const animaStyle = useMemo(() => StyleSheet.compose(styles.container, { - backgroundColor: theme.secondary45, - opacity: animFade, // Bind opacity to animated value - transform: [ - { translateY: animTranslateY }, - ], - }), [animFade, animTranslateY, theme]) - - const switchModeSingle = useCallback(() => { - onSwitchMode('single') - }, [onSwitchMode]) - const switchModeRange = useCallback(() => { - onSwitchMode('range') - }, [onSwitchMode]) - - const component = useMemo(() => ( - <Animated.View style={animaStyle}> - <View style={styles.switchBtn}> - <Button onPress={switchModeSingle} style={{ ...styles.btn, backgroundColor: selectMode == 'single' ? theme.secondary40 : 'rgba(0,0,0,0)' }}> - <Text style={{ color: theme.secondary }}>{t('list_select_single')}</Text> - </Button> - <Button onPress={switchModeRange} style={{ ...styles.btn, backgroundColor: selectMode == 'range' ? theme.secondary40 : 'rgba(0,0,0,0)' }}> - <Text style={{ color: theme.secondary }}>{t('list_select_range')}</Text> - </Button> - </View> - <TouchableOpacity onPress={onSelectAll} style={styles.btn}> - <Text style={{ color: theme.secondary }}>{t(isSelectAll ? 'list_select_unall' : 'list_select_all')}</Text> - </TouchableOpacity> - <TouchableOpacity onPress={onCancel} style={styles.btn}> - <Text style={{ color: theme.secondary }}>{t('list_select_cancel')}</Text> - </TouchableOpacity> - </Animated.View> - ), [animaStyle, isSelectAll, selectMode, onCancel, onSelectAll, switchModeRange, switchModeSingle, t, theme]) - - return !visible && animatePlayed ? null : component -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - position: 'absolute', - left: 0, - top: 0, - width: '100%', - height: '100%', - flexDirection: 'row', - }, - switchBtn: { - flexDirection: 'row', - flex: 1, - }, - btn: { - // flex: 1, - paddingLeft: 15, - paddingRight: 15, - alignItems: 'center', - justifyContent: 'center', - }, -}) diff --git a/src/screens/Home/List/components/ListItem.js b/src/screens/Home/List/components/ListItem.js deleted file mode 100644 index d2ab8fc..0000000 --- a/src/screens/Home/List/components/ListItem.js +++ /dev/null @@ -1,121 +0,0 @@ -import React, { useMemo, useCallback, memo, useRef, useState, useEffect } from 'react' -import { View, Text, StyleSheet, TouchableOpacity } from 'react-native' -import { LIST_ITEM_HEIGHT } from '@/config/constant' -import { BorderWidths } from '@/theme' -import { useAssertApiSupport } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' -import Button from '@/components/common/Button' -import { Icon } from '@/components/common/Icon' - -export default memo(({ item, index, activeIndex, onPress, showMenu, handleLongPress, selectedList }) => { - const theme = useGetter('common', 'theme') - - const isSelected = selectedList.indexOf(item) != -1 - // console.log(item.name, selectedList, selectedList.includes(item)) - const isSupported = useAssertApiSupport(item.source) - const moreButtonRef = useRef() - const handleShowMenu = useCallback(() => { - if (moreButtonRef.current && moreButtonRef.current.measure) { - moreButtonRef.current.measure((fx, fy, width, height, px, py) => { - // console.log(fx, fy, width, height, px, py) - showMenu(item, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) - }) - } - }, [item, index, showMenu]) - - return ( - <View style={{ ...styles.listItem, backgroundColor: isSelected ? theme.secondary45 : theme.primary, borderBottomColor: theme.secondary45, opacity: isSupported ? 1 : 0.5 }}> - <TouchableOpacity style={styles.listItemLeft} onPress={() => { onPress(item, index) }} onLongPress={() => { handleLongPress(item, index) }}> - <Text style={{ ...styles.sn, color: theme.normal50 }}>{index + 1}</Text> - <View style={styles.itemInfo}> - <View style={styles.listItemTitle}> - <Text style={{ ...styles.listItemTitleText, color: activeIndex == index ? theme.secondary : theme.normal }} numberOfLines={1}>{item.name}</Text> - <Text style={{ ...styles.listItemBadge, color: theme.secondary20 }}>{item.source}</Text> - </View> - <View style={styles.row2}> - <Text style={{ ...styles.listItemSingle, color: activeIndex == index ? theme.secondary20 : theme.normal40 }} numberOfLines={1}>{item.singer}</Text> - </View> - </View> - </TouchableOpacity> - <View style={styles.listItemRight}> - <TouchableOpacity onPress={handleShowMenu} ref={moreButtonRef} style={styles.moreButton}> - <Icon name="dots-vertical" style={{ color: theme.normal35 }} size={16} /> - </TouchableOpacity> - </View> - </View> - ) -}, (prevProps, nextProps) => { - return !!(prevProps.item === nextProps.item && - prevProps.index === nextProps.index && - prevProps.activeIndex != nextProps.index && - nextProps.activeIndex != nextProps.index && - nextProps.selectedList.includes(nextProps.item) == prevProps.selectedList.includes(nextProps.item) - ) -}) - - -const styles = StyleSheet.create({ - listItem: { - width: '100%', - flexDirection: 'row', - flexWrap: 'nowrap', - // paddingLeft: 10, - paddingRight: 10, - height: LIST_ITEM_HEIGHT, - borderBottomWidth: BorderWidths.normal, - }, - listItemLeft: { - flex: 1, - flexGrow: 1, - flexShrink: 1, - flexDirection: 'row', - alignItems: 'center', - }, - sn: { - width: 32, - fontSize: 11, - textAlign: 'center', - // backgroundColor: 'rgba(0,0,0,0.2)', - paddingLeft: 3, - paddingRight: 3, - }, - itemInfo: { - flexGrow: 0, - flexShrink: 1, - paddingTop: 10, - paddingBottom: 10, - }, - listItemTitle: { - flexDirection: 'row', - alignItems: 'flex-end', - }, - listItemTitleText: { - // backgroundColor: 'rgba(0,0,0,0.2)', - flexGrow: 0, - flexShrink: 1, - fontSize: 14, - }, - listItemSingle: { - fontSize: 12, - paddingTop: 2, - }, - listItemBadge: { - fontSize: 10, - paddingLeft: 5, - paddingTop: 2, - alignSelf: 'flex-start', - }, - listItemRight: { - flexGrow: 0, - flexShrink: 0, - flexBasis: 'auto', - justifyContent: 'center', - }, - - moreButton: { - paddingLeft: 10, - paddingRight: 10, - paddingTop: 10, - paddingBottom: 10, - }, -}) diff --git a/src/screens/Home/List/components/ListSearchBar.js b/src/screens/Home/List/components/ListSearchBar.js deleted file mode 100644 index 550e42b..0000000 --- a/src/screens/Home/List/components/ListSearchBar.js +++ /dev/null @@ -1,143 +0,0 @@ -import React, { useState, useRef, useEffect, useCallback, useMemo, memo } from 'react' -import { Text, StyleSheet, Animated, View, TouchableOpacity } from 'react-native' -import { useTranslation } from '@/plugins/i18n' - -import Input from '@/components/common/Input' - -import { useGetter } from '@/store' - -const Bar = memo(({ visible, onHide, children }) => { - const { t } = useTranslation() - // const isGetDetailFailedRef = useRef(false) - const [show, setShow] = useState(false) - const [animatePlayed, setAnimatPlayed] = useState(true) - const animFade = useRef(new Animated.Value(0)).current - const animTranslateY = useRef(new Animated.Value(0)).current - - const theme = useGetter('common', 'theme') - - useEffect(() => { - setAnimatPlayed(true) - if (visible) { - animFade.setValue(0.92) - animTranslateY.setValue(0) - setShow(true) - } else { - animFade.setValue(0) - animTranslateY.setValue(-20) - setShow(false) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - const showList = useCallback(() => { - // console.log('show List') - setShow(true) - setAnimatPlayed(false) - animTranslateY.setValue(-20) - - Animated.parallel([ - Animated.timing(animFade, { - toValue: 0.92, - duration: 200, - useNativeDriver: true, - }), - Animated.timing(animTranslateY, { - toValue: 0, - duration: 200, - useNativeDriver: true, - }), - ]).start(() => { - setAnimatPlayed(true) - }) - }, [animFade, animTranslateY]) - - const hideList = useCallback(() => { - setAnimatPlayed(false) - Animated.parallel([ - Animated.timing(animFade, { - toValue: 0, - duration: 200, - useNativeDriver: true, - }), - Animated.timing(animTranslateY, { - toValue: -20, - duration: 200, - useNativeDriver: true, - }), - ]).start(finished => { - if (!finished) return - setShow(false) - setAnimatPlayed(true) - }) - }, [animFade, animTranslateY]) - - useEffect(() => { - if (visible) { - showList() - } else { - hideList() - } - }, [hideList, visible, showList]) - - - const animaStyle = useMemo(() => StyleSheet.compose(styles.container, { - backgroundColor: theme.secondary45, - opacity: animFade, // Bind opacity to animated value - transform: [ - { translateY: animTranslateY }, - ], - }), [animFade, animTranslateY, theme]) - - const component = useMemo(() => ( - <Animated.View style={animaStyle}> - <View style={styles.content}> - {children} - </View> - <TouchableOpacity onPress={onHide} style={styles.btn}> - <Text style={{ color: theme.secondary }}>{t('list_select_cancel')}</Text> - </TouchableOpacity> - </Animated.View> - ), [animaStyle, children, onHide, t, theme]) - - return !show && animatePlayed ? null : component -}) - - -export default memo(({ visible, onHide, text, onChangeText }) => { - return ( - <Bar visible={visible} onHide={onHide}> - <Input - onChangeText={onChangeText} - placeholder="Find for something..." - value={text} - // onFocus={showTipList} - clearBtn - // ref={searchInputRef} - /> - </Bar> - ) -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - position: 'absolute', - left: 0, - top: 0, - width: '100%', - height: '100%', - flexDirection: 'row', - }, - content: { - flexDirection: 'row', - flex: 1, - }, - btn: { - // flex: 1, - paddingLeft: 15, - paddingRight: 15, - alignItems: 'center', - justifyContent: 'center', - }, -}) diff --git a/src/screens/Home/List/components/MusicPositionModal.js b/src/screens/Home/List/components/MusicPositionModal.js deleted file mode 100644 index 02c6bdd..0000000 --- a/src/screens/Home/List/components/MusicPositionModal.js +++ /dev/null @@ -1,92 +0,0 @@ -import React, { memo, useMemo, useEffect, useCallback, useState, useRef } from 'react' -import { StyleSheet, Text, View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import Input from '@/components/common/Input' - -export default memo(({ visible, hideModal, onConfirm, selectedList, selectedData }) => { - const [text, setText] = useState('') - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - const inputRef = useRef() - - const title = useMemo(() => { - return selectedList.length - ? t('change_position_music_multi_title', { num: selectedList.length }) - : t('change_position_music_title', { name: selectedData ? selectedData.name : '' }) - }, [selectedData, selectedList, t]) - - const verify = useCallback(() => { - let num = /^[1-9]\d*/.exec(text) - num = num ? parseInt(num[0]) : '' - setText(num.toString()) - return num - }, [text]) - const handleSetMusicPosition = useCallback(() => { - let num = verify() - if (num == '') return - onConfirm(num) - }, [onConfirm, verify]) - useEffect(() => { - if (!visible) return - - setText('') - // inputRef.current.focus() - }, [visible]) - - - return ( - <ConfirmAlert - visible={visible} - onHide={hideModal} - onConfirm={handleSetMusicPosition} - > - <View style={styles.content}> - <Text style={{ color: theme.normal, marginBottom: 5 }}>{title}</Text> - <Input - placeholder={t('change_position_tip')} - value={text} - onChangeText={setText} - ref={inputRef} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} - /> - </View> - </ConfirmAlert> - ) -}) - -const styles = StyleSheet.create({ - content: { - flexGrow: 1, - flexShrink: 1, - flexDirection: 'column', - }, - input: { - flexGrow: 1, - flexShrink: 1, - minWidth: 240, - borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, - }, - - // tagTypeList: { - // flexDirection: 'row', - // flexWrap: 'wrap', - // }, - // tagButton: { - // // marginRight: 10, - // borderRadius: 4, - // marginRight: 10, - // marginBottom: 10, - // }, - // tagButtonText: { - // paddingLeft: 12, - // paddingRight: 12, - // paddingTop: 8, - // paddingBottom: 8, - // }, -}) diff --git a/src/screens/Home/List/components/MyList.js b/src/screens/Home/List/components/MyList.js deleted file mode 100644 index 497326b..0000000 --- a/src/screens/Home/List/components/MyList.js +++ /dev/null @@ -1,501 +0,0 @@ -import React, { memo, useMemo, useEffect, useCallback, useState, useRef } from 'react' -import { StyleSheet, Text, View, TouchableOpacity, ScrollView, InteractionManager } from 'react-native' - -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -// import DorpDownPanel from '@/components/common/DorpDownPanel' -import { Icon } from '@/components/common/Icon' -// import Button from '@/components/common/Button' -import { BorderWidths } from '@/theme' -import Menu from '@/components/common/Menu' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import Input from '@/components/common/Input' -import { filterFileName } from '@/utils' -import { getListScrollPosition, saveListScrollPosition, toast, handleSaveFile, handleReadFile, confirmDialog, showImportTip } from '@/utils/tools' -import { LIST_SCROLL_POSITION_KEY, LXM_FILE_EXT_RXP } from '@/config/constant' -import musicSdk from '@/utils/music' -import ChoosePath from '@/components/common/ChoosePath' -import { log } from '@/utils/log' -import Popup from '@/components/common/Popup' -import { toOldMusicInfo } from '@/utils/listData' - -const exportList = async(list, path) => { - const data = JSON.parse(JSON.stringify({ - type: 'playListPart', - data: list, - })) - for (const item of data.data.list) { - if (item.otherSource) delete item.otherSource - if (item.lrc) delete item.lrc - } - try { - await handleSaveFile(path + `/lx_list_part_${filterFileName(list.name)}.lxmc`, data) - } catch (error) { - log.error(error.stack) - } -} -const importList = async path => { - let listData - try { - listData = await handleReadFile(path) - } catch (error) { - log.error(error.stack) - return - } - console.log(listData.type) - return listData -} - -const ListItem = ({ onPress, name, id, showMenu, activeId, loading, index }) => { - const theme = useGetter('common', 'theme') - const moreButtonRef = useRef() - const handleShowMenu = useCallback(() => { - if (moreButtonRef.current && moreButtonRef.current.measure) { - moreButtonRef.current.measure((fx, fy, width, height, px, py) => { - // console.log(fx, fy, width, height, px, py) - showMenu(id, name, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) - }) - } - }, [showMenu, id, name, index]) - - return ( - <View style={{ ...styles.listItem, borderBottomColor: theme.secondary45, opacity: loading ? 0.5 : 1 }}> - <TouchableOpacity style={styles.listName} onPress={onPress}> - <Text numberOfLines={1} style={{ color: theme.normal }}>{name}</Text> - </TouchableOpacity> - <TouchableOpacity onPress={handleShowMenu} ref={moreButtonRef} style={styles.listMoreBtn}> - <Icon name="dots-vertical" style={{ color: theme.normal35 }} size={16} /> - </TouchableOpacity> - </View> - ) -} - -const ImportExport = ({ actionType, visible, hide, selectedListRef }) => { - const [title, setTitle] = useState('') - const [dirOnly, setDirOnly] = useState(false) - const setList = useDispatch('list', 'setList') - const createUserList = useDispatch('list', 'createUserList') - const { t } = useTranslation() - useEffect(() => { - switch (actionType) { - case 'import': - setTitle(t('list_import_part_desc')) - setDirOnly(false) - break - case 'export': - default: - setTitle(t('list_export_part_desc')) - setDirOnly(true) - break - } - }, [actionType, t]) - - const onConfirmPath = useCallback(path => { - hide() - switch (actionType) { - case 'import': - toast(t('setting_backup_part_import_list_tip_unzip')) - importList(path).then(async listData => { - switch (listData.type) { - case 'playListPart': - case 'playListPart_v2': - break - default: return showImportTip(listData.type) - } - const isV2 = listData.type == 'playListPart_v2' - const targetList = global.allList[listData.data.id] - if (targetList) { - const confirm = await confirmDialog({ - message: t('list_import_part_confirm', { importName: listData.data.name, localName: targetList.name }), - cancelButtonText: t('list_import_part_button_cancel'), - confirmButtonText: t('list_import_part_button_confirm'), - bgClose: false, - }) - if (confirm) { - listData.data.name = targetList.name - setList({ - name: listData.data.name, - id: listData.data.id, - list: isV2 ? listData.data.list.map(m => toOldMusicInfo(m)) : listData.data.list, - source: listData.data.source, - sourceListId: listData.data.sourceListId, - }) - toast(t('setting_backup_part_import_list_tip_success')) - return - } - listData.data.id += `__${Date.now()}` - } - createUserList({ - name: listData.data.name, - id: listData.data.id, - list: isV2 ? listData.data.list.map(m => toOldMusicInfo(m)) : listData.data.list, - source: listData.data.source, - sourceListId: listData.data.sourceListId, - position: Math.max(selectedListRef.current.index, -1), - }) - toast(t('setting_backup_part_import_list_tip_success')) - }) - break - case 'export': - InteractionManager.runAfterInteractions(() => { - toast(t('setting_backup_part_export_list_tip_zip')) - exportList(selectedListRef.current.listInfo, path).then(() => { - toast(t('setting_backup_part_export_list_tip_success')) - }).catch(err => { - log.error(err.message) - toast(t('setting_backup_part_export_list_tip_failed') + ': ' + err.message) - }) - }) - break - } - }, [actionType, createUserList, hide, selectedListRef, setList, t]) - - return ( - <ChoosePath - visible={visible} - hide={hide} - title={title} - dirOnly={dirOnly} - filter={LXM_FILE_EXT_RXP} - onConfirm={onConfirmPath} /> - ) -} - -const List = memo(({ setVisiblePanel, currentList, handleCancelMultiSelect }) => { - const theme = useGetter('common', 'theme') - const defaultList = useGetter('list', 'defaultList') - const loveList = useGetter('list', 'loveList') - const userListRef = useRef([]) - const userList = useGetter('list', 'userList') - const setPrevSelectListId = useDispatch('common', 'setPrevSelectListId') - const setUserListName = useDispatch('list', 'setUserListName') - // const setUserListPosition = useDispatch('list', 'setUserListPosition') - const removeUserList = useDispatch('list', 'removeUserList') - const [visibleMenu, setVisibleMenu] = useState(false) - // const activeListId = useGetter('common', 'prevSelectListId') - const [selectedListIndex, setSelectedListIndex] = useState(-1) - const selectedListRef = useRef({}) - const { t } = useTranslation() - const [buttonPosition, setButtonPosition] = useState({ w: 0, h: 0, x: 0, y: 0 }) - const [visibleRename, setVisibleRename] = useState(false) - const [listNameText, setListNameText] = useState('') - const scrollViewRef = useRef() - const setList = useDispatch('list', 'setList') - const getBoardListAll = useDispatch('top', 'getListAll') - const getListDetailAll = useDispatch('songList', 'getListDetailAll') - const [fetchingListStatus, setFetchingListStatus] = useState({}) - const [isShowChoosePath, setShowChoosePath] = useState(false) - const [actionType, setActionType] = useState('') - - useEffect(() => { - userListRef.current = userList - }, [userList]) - - const handleToggleList = useCallback(({ id }) => { - setVisiblePanel(false) - setPrevSelectListId(id) - }, [setPrevSelectListId, setVisiblePanel]) - - const handleRemoveList = useCallback(id => { - removeUserList({ id }) - }, [removeUserList]) - - const getTargetListInfo = useCallback(index => { - let list - switch (index) { - case -2: - list = defaultList - break - case -1: - list = loveList - break - default: - list = userListRef.current[index] - break - } - return list - }, [defaultList, loveList]) - - const handleImportAndExportList = useCallback((type, index) => { - const list = getTargetListInfo(index) - if (!list) return - selectedListRef.current.listInfo = list - setActionType(type) - setShowChoosePath(true) - }, [getTargetListInfo]) - - const hideMenu = useCallback(() => { - setVisibleMenu(false) - }, [setVisibleMenu]) - const fetchList = useCallback((id, source, sourceListId) => { - setFetchingListStatus(fetchingListStatus => ({ ...fetchingListStatus, [id]: true })) - // console.log(sourceListId) - let promise - if (/board__/.test(sourceListId)) { - const id = sourceListId.replace(/board__/, '') - promise = getBoardListAll({ id, isRefresh: true }) - } else { - promise = getListDetailAll({ source, id: sourceListId, isRefresh: true }) - } - return promise.finally(() => { - setFetchingListStatus(fetchingListStatus => ({ ...fetchingListStatus, [id]: false })) - }) - }, [getBoardListAll, getListDetailAll]) - const handleSyncSourceList = useCallback(async index => { - const targetListInfo = userList[index] - const list = await fetchList(targetListInfo.id, targetListInfo.source, targetListInfo.sourceListId).catch(err => { - toast(t('list_update_error')) - return Promise.reject(err) - }) - // console.log(targetListInfo.list.length, list.length) - handleCancelMultiSelect() - setList({ - ...targetListInfo, - list, - }) - toast(t('list_update_success')) - }, [fetchList, handleCancelMultiSelect, setList, t, userList]) - const handleMenuPress = useCallback(({ action }) => { - switch (action) { - case 'rename': - setListNameText(selectedListRef.current.name) - setVisibleRename(true) - break - case 'import': - handleImportAndExportList('import', selectedListRef.current.index) - break - case 'export': - handleImportAndExportList('export', selectedListRef.current.index) - break - case 'sync': - confirmDialog({ - message: t('list_sync_confirm_tip', { name: selectedListRef.current.name }), - confirmButtonText: t('list_remove_tip_button'), - }).then(isSync => { - if (!isSync) return - handleSyncSourceList(selectedListRef.current.index) - }) - break - // case 'changePosition': - - // break - case 'remove': - confirmDialog({ - message: t('list_remove_tip', { name: selectedListRef.current.name }), - confirmButtonText: t('list_remove_tip_button'), - }).then(isRemove => { - if (!isRemove) return - handleRemoveList(selectedListRef.current.id) - }) - break - - default: - break - } - }, [handleImportAndExportList, handleRemoveList, handleSyncSourceList, t]) - - const menus = useMemo(() => { - let list - let rename = false - let sync = false - let remove = false - switch (selectedListIndex) { - case -2: - list = defaultList - break - case -1: - list = loveList - break - default: - list = userList[selectedListIndex] - if (!list) return [] - rename = true - remove = true - sync = list.source && !!musicSdk[list.source]?.songList - break - } - - return [ - { action: 'rename', disabled: !rename, label: t('list_rename') }, - { action: 'sync', disabled: !sync, label: t('list_sync') }, - { action: 'import', label: t('list_import') }, - { action: 'export', label: t('list_export') }, - // { action: 'changePosition', label: t('change_position') }, - { action: 'remove', disabled: !remove, label: t('list_remove') }, - ] - }, [selectedListIndex, t, defaultList, loveList, userList]) - - const handleCancelRename = useCallback(() => { - setVisibleRename(false) - }, []) - const handleRename = useCallback(() => { - if (!listNameText.length) return - setUserListName({ id: selectedListRef.current.id, name: listNameText }) - setVisibleRename(false) - }, [listNameText, setUserListName]) - - const handleScroll = useCallback(({ nativeEvent }) => { - saveListScrollPosition(LIST_SCROLL_POSITION_KEY, nativeEvent.contentOffset.y) - }, []) - - useEffect(() => { - const offset = getListScrollPosition(LIST_SCROLL_POSITION_KEY) - scrollViewRef.current.scrollTo({ x: 0, y: offset, animated: false }) - }) - const showMenu = useCallback((id, name, index, position) => { - // console.log(position) - // if (id == 'default' || id == 'love') return - setButtonPosition({ ...position }) - selectedListRef.current.id = id - selectedListRef.current.name = name - selectedListRef.current.index = index - setSelectedListIndex(index) - setVisibleMenu(true) - }, []) - return ( - <> - <ScrollView style={{ flexShrink: 1, flexGrow: 0 }} onScroll={handleScroll} ref={scrollViewRef} keyboardShouldPersistTaps={'always'}> - <View style={{ ...styles.listContainer, backgroundColor: theme.primary }} onStartShouldSetResponder={() => true}> - <ListItem name={defaultList.name} id={defaultList.id} index={-2} loading={false} onPress={() => handleToggleList(defaultList)} activeId={currentList.id} showMenu={showMenu} /> - <ListItem name={loveList.name} id={loveList.id} index={-1} loading={false} onPress={() => handleToggleList(loveList)} activeId={currentList.id} showMenu={showMenu} /> - {userList.map(({ id, name }, index) => <ListItem key={id} name={name} id={id} index={index} loading={fetchingListStatus[id]} onPress={() => handleToggleList({ id, name })} activeId={currentList.id} showMenu={showMenu} />)} - </View> - </ScrollView> - <Menu menus={menus} buttonPosition={buttonPosition} onPress={handleMenuPress} visible={visibleMenu} hideMenu={hideMenu} /> - <ConfirmAlert - visible={visibleRename} - onHide={handleCancelRename} - onConfirm={handleRename} - > - <View style={styles.renameContent}> - <Text style={{ color: theme.normal, marginBottom: 5 }}>{t('list_rename_title')}</Text> - <Input - placeholder={selectedListRef.current.name} - value={listNameText} - onChangeText={setListNameText} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} - /> - </View> - </ConfirmAlert> - <ImportExport actionType={actionType} visible={isShowChoosePath} hide={() => setShowChoosePath(false)} selectedListRef={selectedListRef} /> - </> - ) -}) - - -export default memo(({ currentList, handleCancelMultiSelect, showListSearchBar }) => { - const theme = useGetter('common', 'theme') - const [visiblePanel, setVisiblePanel] = useState(false) - const { t } = useTranslation() - const showPopup = () => { - setVisiblePanel(true) - } - const hidePopup = () => { - setVisiblePanel(false) - } - - return ( - <View> - <TouchableOpacity onPress={showPopup} style={{ ...styles.currentList, borderBottomWidth: BorderWidths.normal, borderBottomColor: theme.borderColor }}> - <Icon style={{ ...styles.sourceMenuIcon, color: theme.secondary30, fontSize: 18 }} name="chevron-right" /> - <Text numberOfLines={1} style={{ ...styles.sourceMenu, color: theme.secondary, flex: 1 }}>{currentList.name}</Text> - <TouchableOpacity style={styles.btns} onPress={showListSearchBar}> - <Icon style={{ color: theme.secondary30, fontSize: 16 }} name="search-2" /> - </TouchableOpacity> - </TouchableOpacity> - <Popup visible={visiblePanel} hide={hidePopup} title={t('nav_my_list')}> - <List setVisiblePanel={setVisiblePanel} currentList={currentList} handleCancelMultiSelect={handleCancelMultiSelect} /> - </Popup> - </View> - ) -}) - - -const styles = StyleSheet.create({ - sourceMenuIcon: { - paddingLeft: 8, - paddingRight: 3, - paddingTop: 10, - paddingBottom: 0, - }, - sourceMenu: { - minWidth: 70, - // paddingLeft: 10, - paddingRight: 10, - paddingTop: 10, - paddingBottom: 10, - }, - - // container: { - // borderBottomWidth: BorderWidths.normal2, - // }, - listContainer: { - // borderBottomWidth: BorderWidths.normal2, - }, - listItem: { - flexDirection: 'row', - alignItems: 'center', - borderBottomWidth: BorderWidths.normal, - }, - listName: { - // height: 46, - paddingTop: 12, - paddingBottom: 12, - justifyContent: 'center', - flexGrow: 1, - flexShrink: 1, - paddingLeft: 10, - }, - listMoreBtn: { - width: 50, - // height: 46, - paddingTop: 12, - paddingBottom: 12, - justifyContent: 'center', - alignItems: 'center', - }, - - currentList: { - flexDirection: 'row', - paddingRight: 2, - }, - btns: { - width: 38, - justifyContent: 'center', - alignItems: 'center', - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - - - renameContent: { - flexGrow: 1, - flexShrink: 1, - flexDirection: 'column', - }, - input: { - flexGrow: 1, - flexShrink: 1, - minWidth: 240, - borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, - }, - - // tagTypeList: { - // flexDirection: 'row', - // flexWrap: 'wrap', - // }, - // tagButton: { - // // marginRight: 10, - // borderRadius: 4, - // marginRight: 10, - // marginBottom: 10, - // }, - // tagButtonText: { - // paddingLeft: 12, - // paddingRight: 12, - // paddingTop: 8, - // paddingBottom: 8, - // }, -}) diff --git a/src/screens/Home/List/index.js b/src/screens/Home/List/index.js deleted file mode 100644 index 7912792..0000000 --- a/src/screens/Home/List/index.js +++ /dev/null @@ -1,437 +0,0 @@ -import React, { useMemo, useCallback, useRef, useState, useEffect } from 'react' -import { View, Text, StyleSheet, FlatList } from 'react-native' - -import { useGetter, useDispatch } from '@/store' -import Menu from '@/components/common/Menu' -import MusicAddModal from '@/components/MusicAddModal' -import MusicMultiAddModal from '@/components/MusicMultiAddModal' -import SearchTipList from '@/components/searchTipList' -import Button from '@/components/common/Button' -import ExitMultipleModeBar from './components/ExitMultipleModeBar' -import MyList from './components/MyList' -import ListItem from './components/ListItem' -import { getListScrollPosition, saveListScrollPosition, shareMusic } from '@/utils/tools' -import { useTranslation } from '@/plugins/i18n' -import { LIST_ITEM_HEIGHT } from '@/config/constant' -import MusicPositionModal from './components/MusicPositionModal' -// import { BorderWidths } from '@/theme' -import ListSearchBar from './components/ListSearchBar' -import { debounceSearchList } from './utils' -import { useLayout } from '@/utils/hooks' -// const shadow = { -// shadowOffset: 2, -// shadowOpacity: 0.23, -// shadowRadius: 0, -// elevation: 4, -// } - - -const List = () => { - const allList = useGetter('list', 'allList') - const isJumpPosition = useGetter('list', 'isJumpPosition') - const playInfo = useGetter('player', 'playInfo') - const playListInfo = useGetter('player', 'listInfo') - const playListInfoRef = useRef(playListInfo) - const activeListId = useGetter('common', 'prevSelectListId') - const activeListIdRef = useRef(activeListId) - const downloadFileName = useGetter('common', 'downloadFileName') - const shareType = useGetter('common', 'shareType') - const [buttonPosition, setButtonPosition] = useState({ w: 0, h: 0, x: 0, y: 0 }) - const selectedDataRef = useRef({ data: null, index: -1 }) - const flatListRef = useRef() - const isMoveRef = useRef(false) - const [visibleMenu, setVisibleMenu] = useState(false) - const [isMultiSelectMode, setIsMultiSelectMode] = useState(false) - const isMultiSelectModeRef = useRef(false) - const [selectedList, setSelectedList] = useState([]) - const selectedListRef = useRef([]) - const [selectMode, setSelectMode] = useState('single') - const selectModeRef = useRef('single') - const prevSelectIndexRef = useRef(-1) - const activeIndexRef = useRef(-1) - const activeIndex = useMemo(() => { - const index = playInfo.listId === activeListId ? playInfo.playIndex : -1 - activeIndexRef.current = index - return index - }, [playInfo.listId, activeListId, playInfo.playIndex]) - const currentListRef = useRef({}) - const currentList = useMemo(() => currentListRef.current = (allList.find(l => l.id == activeListId) || allList[0]), [allList, activeListId]) - const activeItemId = useMemo(() => currentList.list && activeIndex > -1 && currentList.list[activeIndex] ? String(currentList.list[activeIndex].songmid) : null, [currentList, activeIndex]) - const setPlayList = useDispatch('player', 'setList') - // const playMusic = useDispatch('player', 'playMusic') - const setTempPlayList = useDispatch('player', 'setTempPlayList') - const removeListItem = useDispatch('list', 'listRemove') - const removeListMultiItem = useDispatch('list', 'listRemoveMultiple') - const setJumpPosition = useDispatch('list', 'setJumpPosition') - const { t } = useTranslation() - const [visibleMusicAddModal, setVisibleMusicAddModal] = useState(false) - const [visibleMusicMultiAddModal, setVisibleMusicMultiAddModal] = useState(false) - const [visibleMusicPosition, setVIsibleMusicPosition] = useState(false) - const setMusicPosition = useDispatch('list', 'setMusicPosition') - const [listSearchBarVisible, setListSearchBarVisible] = useState(false) - const [listSearchListVisible, setListSearchListVisible] = useState(false) - const [listSearchBarText, setListSearchBarText] = useState('') - const [listSearchList, setListSearchList] = useState([]) - const theme = useGetter('common', 'theme') - const { onLayout, ...listLayout } = useLayout() - - useEffect(() => { - activeListIdRef.current = activeListId - }, [activeListId]) - useEffect(() => { - playListInfoRef.current = playListInfo - }, [playListInfo]) - - const handlePlay = useCallback(async(data, index) => { - // if (playListInfoRef.current.id != activeListIdRef.current) { - setPlayList({ - list: currentListRef.current, - index, - }) - // } else { - // playMusic({ - // musicInfo: data, - // listId: activeListIdRef.current, - // }) - // } - }, [setPlayList]) - - const handleSelect = useCallback((item, index) => { - if (selectModeRef.current == 'single') { - const index = selectedListRef.current.indexOf(item) - if (index < 0) { - selectedListRef.current.push(item) - // setSelectedItem({ item, isChecked: true }) - } else { - selectedListRef.current.splice(index, 1) - // setSelectedItem({ item, isChecked: false }) - } - } else { - if (selectedListRef.current.length) { - const prevIndex = prevSelectIndexRef.current - const currentIndex = index - if (prevIndex == currentIndex) { - selectedListRef.current = [] - } else if (currentIndex > prevIndex) { - selectedListRef.current = currentListRef.current.list.slice(prevIndex, currentIndex + 1) - } else { - selectedListRef.current = currentListRef.current.list.slice(currentIndex, prevIndex + 1) - selectedListRef.current.reverse() - } - } else { - selectedListRef.current.push(item) - prevSelectIndexRef.current = index - } - } - setSelectedList([...selectedListRef.current]) - }, []) - const handleSelectAll = useCallback(() => { - if (!currentListRef.current.list.length) return - if (selectedListRef.current.length == currentListRef.current.list.length) { - selectedListRef.current = [] - } else { - selectedListRef.current = [...currentListRef.current.list] - } - setSelectedList([...selectedListRef.current]) - }, []) - - const handleSetSelectMode = useCallback(mode => { - setSelectMode(mode) - selectModeRef.current = mode - if (mode == 'range' && selectedListRef.current.length) { - prevSelectIndexRef.current = currentListRef.current.list.indexOf(selectedListRef.current[selectedListRef.current.length - 1]) - } - }, []) - - const handleCancelMultiSelect = useCallback(() => { - setIsMultiSelectMode(false) - isMultiSelectModeRef.current = false - selectedListRef.current = [] - setSelectedList([]) - }, []) - - const handlePress = useCallback((item, index) => { - if (isMultiSelectModeRef.current) { - handleSelect(item, index) - } else { - handlePlay(item, index) - } - }, [handlePlay, handleSelect]) - - const handleLongPress = useCallback((item, index) => { - setIsMultiSelectMode(true) - isMultiSelectModeRef.current = true - handleSelect(item, index) - }, [handleSelect]) - - const menus = useMemo(() => { - return [ - { action: 'play', label: t('play') }, - { action: 'playLater', label: t('play_later') }, - // { action: 'download', label: '下载' }, - { action: 'add', label: t('add_to') }, - { action: 'move', label: t('move_to') }, - { action: 'copyName', label: t('copy_name') }, - { action: 'changePosition', label: t('change_position') }, - { action: 'remove', label: t('delete') }, - ] - }, [t]) - - const showMenu = useCallback((item, index, position) => { - // console.log(position) - setButtonPosition({ ...position }) - selectedDataRef.current.data = item - selectedDataRef.current.index = index - setVisibleMenu(true) - }, [setButtonPosition]) - - const hideMenu = useCallback(() => { - setVisibleMenu(false) - }, [setVisibleMenu]) - - const handleMenuPress = useCallback(({ action }) => { - switch (action) { - case 'play': - handlePlay(selectedDataRef.current.data, selectedDataRef.current.index) - break - case 'playLater': - if (selectedListRef.current.length) { - setTempPlayList(selectedListRef.current.map(s => ({ listId: activeListIdRef.current, musicInfo: s }))) - handleCancelMultiSelect() - } else { - setTempPlayList([{ listId: activeListIdRef.current, musicInfo: selectedDataRef.current.data }]) - } - break - case 'add': - isMoveRef.current = false - selectedListRef.current.length - ? setVisibleMusicMultiAddModal(true) - : setVisibleMusicAddModal(true) - break - case 'move': - isMoveRef.current = true - selectedListRef.current.length - ? setVisibleMusicMultiAddModal(true) - : setVisibleMusicAddModal(true) - break - case 'copyName': - shareMusic(shareType, downloadFileName, selectedDataRef.current.data) - break - case 'changePosition': - setVIsibleMusicPosition(true) - break - case 'remove': - if (selectedListRef.current.length) { - removeListMultiItem({ listId: activeListIdRef.current, ids: selectedListRef.current.map(s => s.songmid) }) - handleCancelMultiSelect() - } else { - removeListItem({ listId: activeListIdRef.current, id: selectedDataRef.current.data.songmid }) - } - break - default: - break - } - }, [handlePlay, shareType, setTempPlayList, handleCancelMultiSelect, downloadFileName, removeListMultiItem, removeListItem]) - - const handleScroll = useCallback(({ nativeEvent }) => { - saveListScrollPosition(currentListRef.current.id, nativeEvent.contentOffset.y) - }, []) - - const hideMusicAddModal = useCallback(() => { - setVisibleMusicAddModal(false) - }, []) - - const hideMusicMultiAddModal = useCallback(() => { - setVisibleMusicMultiAddModal(false) - }, []) - - const jumpPosition = useCallback(() => { - if (activeIndexRef.current < 0) return - global.requestAnimationFrame(() => { - flatListRef.current.scrollToIndex({ index: activeIndexRef.current, viewPosition: 0.3, animated: true }) - setJumpPosition(false) - }) - }, [setJumpPosition]) - - const hideMusicPositionModal = useCallback(() => { - setVIsibleMusicPosition(false) - }, []) - const handleSetMusicPosition = useCallback(num => { - num = Math.min(parseInt(num), currentListRef.current.list.length) - setMusicPosition({ - id: activeListIdRef.current, - position: num, - list: selectedListRef.current.length ? [...selectedListRef.current] : [selectedDataRef.current.data], - }) - setVIsibleMusicPosition(false) - handleCancelMultiSelect() - }, [handleCancelMultiSelect, setMusicPosition]) - - const handleHideSearchBar = useCallback(() => { - setListSearchBarVisible(false) - setListSearchListVisible(false) - }, []) - - const handleSearchBarTextChange = useCallback(text => { - setListSearchBarText(text) - if (!text.length) setListSearchList([]) - debounceSearchList(text, currentList.list, list => { - setListSearchList(list) - }) - }, [currentList]) - const showListSearchBar = useCallback(() => { - setListSearchBarVisible(true) - }, []) - const handleSearchListItemPress = useCallback(item => { - const index = currentList.list.findIndex(s => s.songmid == item.songmid) - if (index < 0) return - flatListRef.current.scrollToIndex({ index, viewPosition: 0.3, animated: true }) - handleHideSearchBar() - }, [currentList, handleHideSearchBar]) - const handleRenderSearchListItem = useCallback((item, index) => { - return ( - <Button style={styles.searchListItem} onPress={() => handleSearchListItemPress(item)} key={index}> - <View style={styles.searchListItemName}> - <Text numberOfLines={1} style={{ ...styles.searchListItemNameText, color: theme.normal, fontSize: 14 }}>{item.name}</Text> - <Text numberOfLines={1} style={{ ...styles.searchListItemNameText, color: theme.normal30, fontSize: 11 }}>{item.singer} ({item.albumName})</Text> - </View> - <Text style={{ ...styles.searchListItemSource, color: theme.normal40 }}>{item.source}</Text> - </Button> - ) - }, [handleSearchListItemPress, theme]) - - useEffect(() => { - if (listSearchList.length && listSearchBarVisible) { - if (listSearchListVisible) return - setListSearchListVisible(true) - } else { - if (!listSearchListVisible) return - setListSearchListVisible(false) - } - }, [listSearchList.length, listSearchListVisible, listSearchBarVisible]) - - - useEffect(() => { - const offset = getListScrollPosition(currentList.id) - flatListRef.current.scrollToOffset({ offset, animated: false }) - // global.requestAnimationFrame(() => { - // flatListRef.current.scrollToOffset({ offset, animated: false }) - // }) - }, [currentList.id]) - useEffect(() => { - if (!isJumpPosition) return - jumpPosition() - }, [isJumpPosition, jumpPosition]) - - const renderItem = useCallback(({ item, index }) => ( - <ListItem - item={item} - index={index} - activeIndex={activeIndex} - onPress={handlePress} - showMenu={showMenu} - selectedList={selectedList} - handleLongPress={handleLongPress} /> - ), [activeIndex, handleLongPress, handlePress, selectedList, showMenu]) - - const listComponent = useMemo(() => ( - <FlatList - ref={flatListRef} - onScroll={handleScroll} - style={styles.list} - data={currentList.list} - maxToRenderPerBatch={8} - updateCellsBatchingPeriod={80} - windowSize={18} - removeClippedSubviews={true} - initialNumToRender={12} - renderItem={renderItem} - keyExtractor={item => String(item.songmid)} - extraData={activeItemId} - getItemLayout={(data, index) => ({ length: LIST_ITEM_HEIGHT, offset: LIST_ITEM_HEIGHT * index, index })} /> - ), [activeItemId, currentList.list, handleScroll, renderItem]) - - return ( - <View style={styles.container}> - <View> - <MyList - currentList={currentList} - activeListIdRef={activeListIdRef} - handleCancelMultiSelect={handleCancelMultiSelect} - showListSearchBar={showListSearchBar} /> - <ExitMultipleModeBar - multipleMode={isMultiSelectMode} - onCancel={handleCancelMultiSelect} - onSwitchMode={handleSetSelectMode} - onSelectAll={handleSelectAll} - selectMode={selectMode} - isSelectAll={selectedList.length && currentList.list.length == selectedList.length} /> - <ListSearchBar - visible={listSearchBarVisible} - onHide={handleHideSearchBar} - text={listSearchBarText} - onChangeText={handleSearchBarTextChange} - /> - </View> - <View style={{ flex: 1 }} onLayout={onLayout}> - {listComponent} - <SearchTipList - list={listSearchList} - renderItem={handleRenderSearchListItem} - visible={listSearchListVisible} - height={listLayout.height} - /> - </View> - <Menu menus={menus} buttonPosition={buttonPosition} onPress={handleMenuPress} visible={visibleMenu} hideMenu={hideMenu} /> - <MusicPositionModal - selectedList={selectedListRef.current} - selectedData={selectedDataRef.current.data} - visible={visibleMusicPosition} - hideModal={hideMusicPositionModal} - onConfirm={handleSetMusicPosition} /> - <MusicAddModal - visible={visibleMusicAddModal} - listId={activeListIdRef.current} - isMove={isMoveRef.current} - hideModal={hideMusicAddModal} - musicInfo={selectedDataRef.current.data} /> - <MusicMultiAddModal - visible={visibleMusicMultiAddModal} - hideModal={hideMusicMultiAddModal} - list={selectedListRef.current} - listId={activeListIdRef.current} - isMove={isMoveRef.current} - excludeList={[activeListIdRef.current]} - onAdd={handleCancelMultiSelect} /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - list: { - flexGrow: 1, - flexShrink: 1, - }, - searchListItem: { - padding: 10, - flexDirection: 'row', - alignItems: 'center', - }, - searchListItemName: { - flexGrow: 1, - flexShrink: 1, - }, - searchListItemNameText: { - fontSize: 14, - }, - searchListItemSource: { - flexGrow: 0, - flexShrink: 0, - fontSize: 11, - }, -}) - -export default List diff --git a/src/screens/Home/List/utils.js b/src/screens/Home/List/utils.js deleted file mode 100644 index b3b4f55..0000000 --- a/src/screens/Home/List/utils.js +++ /dev/null @@ -1,74 +0,0 @@ -import { debounce } from '@/utils' - - -// https://blog.csdn.net/xcxy2015/article/details/77164126#comments -const similar = (a, b) => { - if (!a || !b) return 0 - if (a.length > b.length) { // 保证 a <= b - let t = b - b = a - a = t - } - let al = a.length - let bl = b.length - let mp = [] // 一个表 - let i, j, ai, lt, tmp // ai:字符串a的第i个字符。 lt:左上角的值。 tmp:暂存新的值。 - for (i = 0; i <= bl; i++) mp[i] = i - for (i = 1; i <= al; i++) { - ai = a.charAt(i - 1) - lt = mp[0] - mp[0] = mp[0] + 1 - for (j = 1; j <= bl; j++) { - tmp = Math.min(mp[j] + 1, mp[j - 1] + 1, lt + (ai == b.charAt(j - 1) ? 0 : 1)) - lt = mp[j] - mp[j] = tmp - } - } - return 1 - (mp[bl] / bl) -} - -const sortInsert = (arr, data) => { - let key = data.num - let left = 0 - let right = arr.length - 1 - - while (left <= right) { - let middle = parseInt((left + right) / 2) - if (key == arr[middle]) { - left = middle - break - } else if (key < arr[middle].num) { - right = middle - 1 - } else { - left = middle + 1 - } - } - while (left > 0) { - if (arr[left - 1].num != key) break - left-- - } - - arr.splice(left, 0, data) -} - -const handleSortList = (list, keyword) => { - let arr = [] - for (const item of list) { - sortInsert(arr, { - num: similar(keyword, `${item.name} ${item.singer} ${item.albumName || ''}`), - data: item, - }) - } - return arr.map(item => item.data).reverse() -} - -export const debounceSearchList = debounce((text, list, callback) => { - const reslutList = [] - if (!text.length) return - let rxp = new RegExp(text.split('').map(s => s.replace(/[.*+?^${}()|[\]\\]/, '\\$&')).join('.*') + '.*', 'i') - for (const item of list) { - if (rxp.test(`${item.name}${item.singer}${item.albumName ? item.albumName : ''}`)) reslutList.push(item) - } - // console.log(reslutList) - callback(handleSortList(reslutList, text)) -}, 200) diff --git a/src/screens/Home/Search/components/Input.js b/src/screens/Home/Search/components/Input.js deleted file mode 100644 index b7cabe1..0000000 --- a/src/screens/Home/Search/components/Input.js +++ /dev/null @@ -1,82 +0,0 @@ -import React, { useCallback, useRef, forwardRef, useImperativeHandle } from 'react' -// import { StyleSheet } from 'react-native' -import Input from '@/components/common/Input' - -import music from '@/utils/music' -import { useGetter, useDispatch } from '@/store' -import { debounce } from '@/utils' - -const debounceTipSearch = debounce((str, tempSearchSource, callback) => { - return music[tempSearchSource]?.tempSearch.search(str).then(callback) ?? Promise.reject(new Error('source not found')) -}, 200) - -export default forwardRef(({ onSetTipList, setPage }, ref) => { - const searchInputRef = useRef() - const text = useGetter('search', 'text') - - const tempSearchSource = useGetter('search', 'tempSearchSource') - // const searchSource = useGetter('search', 'searchSource') - const listInfo = useGetter('search', 'listInfo') - const setText = useDispatch('search', 'setText') - const search = useDispatch('search', 'search') - - const tipListVisible = useGetter('search', 'tipListVisible') - const setVisibleTipList = useDispatch('search', 'setVisibleTipList') - - - useImperativeHandle(ref, () => { - return { - blur() { - searchInputRef.current.blur() - }, - isFocused() { - return searchInputRef.current.isFocused() - }, - } - }) - - const showTipList = useCallback(() => { - if (tipListVisible || !text.length) return - setVisibleTipList(true) - }, [tipListVisible, setVisibleTipList, text]) - - const hideTipList = useCallback(() => { - if (!tipListVisible) return - setVisibleTipList(false) - }, [tipListVisible, setVisibleTipList]) - - const handleSearchInput = useCallback(str => { - setText(str) - if (str.length) { - debounceTipSearch(str, tempSearchSource, onSetTipList) - } else { - music[tempSearchSource]?.tempSearch.search('') - hideTipList() - } - }, [setText, hideTipList, tempSearchSource, onSetTipList]) - - const handleSearch = useCallback((text) => { - setText(text.trim()) - setPage(1) - return search({ page: 1, limit: listInfo.limit }) - }, [setText, setPage, search, listInfo.limit]) - - const onClearText = useCallback(() => { - handleSearchInput('') - handleSearch('') - }, [handleSearchInput, handleSearch]) - - return ( - <Input - onChangeText={handleSearchInput} - placeholder="Search for something..." - value={text} - // onFocus={showTipList} - clearBtn - ref={searchInputRef} - onBlur={hideTipList} - onSubmitEditing={ ({ nativeEvent: { text } }) => handleSearch(text) } - onClearText={onClearText} - onTouchStart={showTipList} /> - ) -}) diff --git a/src/screens/Home/Search/components/MusicList.js b/src/screens/Home/Search/components/MusicList.js deleted file mode 100644 index b3b8b05..0000000 --- a/src/screens/Home/Search/components/MusicList.js +++ /dev/null @@ -1,67 +0,0 @@ -import React, { useState, useCallback, memo, useEffect, useRef } from 'react' -import { InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import OnlineList from '@/components/OnlineList' - -export default memo(({ page, setPage }) => { - const [isListRefreshing, setIsListRefreshing] = useState(false) - const [visibleLoadingMask, setVisibleLoadingMask] = useState(false) - const text = useGetter('search', 'text') - const textRef = useRef(text) - const searchSource = useGetter('search', 'searchSource') - const listInfo = useGetter('search', 'listInfo') - const isLoading = useGetter('search', 'isLoading') - const isEnd = useGetter('search', 'isEnd') - const search = useDispatch('search', 'search') - const listInfoRef = useRef(listInfo) - - useEffect(() => { - textRef.current = text - }, [text]) - - const handleRefresh = useCallback(() => { - setIsListRefreshing(true) - setVisibleLoadingMask(true) - setPage(1) - search({ page: 1, limit: listInfoRef.current.limit }).finally(() => { - setIsListRefreshing(false) - setVisibleLoadingMask(false) - }) - }, [search, setPage]) - - const handleLoadMore = useCallback(() => { - if (isLoading || isEnd || !textRef.current.length) return - setPage(listInfoRef.current.page + 1) - search({ page: listInfoRef.current.page + 1, limit: listInfoRef.current.limit }) - }, [isLoading, isEnd, setPage, search]) - - useEffect(() => { - listInfoRef.current = listInfo - }, [listInfo]) - - useEffect(() => { - InteractionManager.runAfterInteractions(() => { - setVisibleLoadingMask(true) - setPage(1) - search({ page: 1, limit: listInfo.limit }).finally(() => { - setIsListRefreshing(false) - setVisibleLoadingMask(false) - }) - }) - }, [searchSource, search, setIsListRefreshing, listInfo.limit, setPage]) - - return ( - <OnlineList - list={listInfo.list} - isEnd={isEnd} - page={page} - isListRefreshing={isListRefreshing} - onRefresh={handleRefresh} - onLoadMore={handleLoadMore} - // progressViewOffset={20} - isLoading={isLoading} - visibleLoadingMask={isLoading && visibleLoadingMask} - /> - ) -}) - diff --git a/src/screens/Home/Search/components/SourceSelector.js b/src/screens/Home/Search/components/SourceSelector.js deleted file mode 100644 index f31f6a9..0000000 --- a/src/screens/Home/Search/components/SourceSelector.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { StyleSheet, Text, View } from 'react-native' - -import DorpDownMenu from '@/components/common/DorpDownMenu' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import { useLayout } from '@/utils/hooks' - - -export default memo(() => { - const setSearchSource = useDispatch('common', 'setSearchSource') - const sourceList = useGetter('search', 'sources') - const searchSource = useGetter('search', 'searchSource') - const sourceNameType = useGetter('common', 'sourceNameType') - const theme = useGetter('common', 'theme') - // const currentSourceName = useGetter('search', 'currentSourceName') - const { t } = useTranslation() - const { onLayout, ...layout } = useLayout() - - const sourceList_t = useMemo(() => { - return sourceList.map(s => ({ label: t(`source_${sourceNameType}_${s.id}`), action: s.id })) - }, [sourceNameType, sourceList, t]) - - return ( - <DorpDownMenu - menus={sourceList_t} - width={layout.width} - onPress={({ action }) => setSearchSource({ searchSource: action })} - > - <View style={styles.sourceMenu} onLayout={onLayout}> - <Text style={{ color: theme.normal }}>{t(`source_${sourceNameType}_${searchSource}`)}</Text> - </View> - </DorpDownMenu> - ) -}) - - -const styles = StyleSheet.create({ - sourceMenu: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - paddingLeft: 12, - paddingRight: 12, - // width: 80, - }, -}) diff --git a/src/screens/Home/Search/components/TipList.js b/src/screens/Home/Search/components/TipList.js deleted file mode 100644 index 668b0b1..0000000 --- a/src/screens/Home/Search/components/TipList.js +++ /dev/null @@ -1,58 +0,0 @@ -import React, { useCallback, memo, useEffect, useState, useMemo } from 'react' -import { StyleSheet, Text } from 'react-native' - -import Button from '@/components/common/Button' -import SearchTipList from '@/components/searchTipList' -import { useGetter, useDispatch } from '@/store' - -export default memo(({ onTipPress, height }) => { - // const tipList = useGetter('search', 'tipList') - - const text = useGetter('search', 'text') - const list = useGetter('search', 'tipList') - const visible = useGetter('search', 'tipListVisible') - const setVisibleTipList = useDispatch('search', 'setVisibleTipList') - const theme = useGetter('common', 'theme') - - const hideTipList = useCallback(() => { - setVisibleTipList(false) - }, []) - - useEffect(() => { - if (visible && !text.length) hideTipList() - }, []) - - const handleTipPress = useCallback(text => { - hideTipList() - onTipPress(text) - }, [onTipPress, hideTipList]) - - const handleRenderItem = useCallback((item, index) => { - return ( - <Button onPress={() => handleTipPress(item)} key={index}> - <Text style={{ ...styles.text, color: theme.normal }}>{item}</Text> - </Button> - ) - }, [handleTipPress, theme]) - - // console.log(visible) - return ( - <SearchTipList - list={list} - visible={visible} - height={height} - hideList={hideTipList} - renderItem={handleRenderItem} - /> - ) -}) - -const styles = StyleSheet.create({ - text: { - paddingTop: 10, - paddingBottom: 10, - paddingLeft: 10, - paddingRight: 10, - // color: 'white', - }, -}) diff --git a/src/screens/Home/Search/index.js b/src/screens/Home/Search/index.js deleted file mode 100644 index 5dc8f23..0000000 --- a/src/screens/Home/Search/index.js +++ /dev/null @@ -1,87 +0,0 @@ -import React, { useCallback, useRef, useState, useEffect } from 'react' -import { StyleSheet, View } from 'react-native' - -import music from '@/utils/music' -import { useGetter, useDispatch } from '@/store' -import { BorderWidths } from '@/theme' -// import InsetShadow from 'react-native-inset-shadow' -import SourceSelector from './components/SourceSelector' -import Input from './components/Input' -import TipList from './components/TipList' -import MusicList from './components/MusicList' -import { useLayout } from '@/utils/hooks' - - -export default () => { - const searchInputRef = useRef() - const theme = useGetter('common', 'theme') - const tempSearchSource = useGetter('search', 'tempSearchSource') - const tempSearchSourceRef = useRef('') - const listInfo = useGetter('search', 'listInfo') - const listInfoRef = useRef({}) - const tipListVisible = useGetter('search', 'tipListVisible') - const tipListVisibleRef = useRef('') - const setText = useDispatch('search', 'setText') - const setTipList = useDispatch('search', 'setTipList') - const setVisibleTipList = useDispatch('search', 'setVisibleTipList') - const search = useDispatch('search', 'search') - const { onLayout, ...listLayout } = useLayout() - const [page, setPage] = useState(0) - - useEffect(() => { - listInfoRef.current = listInfo - }, [listInfo]) - useEffect(() => { - tempSearchSourceRef.current = tempSearchSource - }, [tempSearchSource]) - useEffect(() => { - tipListVisibleRef.current = tipListVisible - }, [tipListVisible]) - - const handleTipPress = useCallback(text => { - if (tipListVisibleRef.current) setVisibleTipList(false) - text = text.trim() - music[tempSearchSourceRef.current].tempSearch.search(text).then(tipList => setTipList(tipList)) - searchInputRef.current.blur() - setText(text) - setPage(1) - search({ page: 1, limit: listInfoRef.current.limit }) - }, []) - - const onSetTipList = list => { - setTipList(list) - if (list.length) { - if (tipListVisibleRef.current) return - } else if (!tipListVisibleRef.current) return - if (searchInputRef.current.isFocused()) setVisibleTipList(true) - } - - return ( - <View style={styles.container}> - <View style={{ ...styles.searchBar, backgroundColor: theme.primary, borderBottomColor: theme.borderColor, borderBottomWidth: BorderWidths.normal }}> - <SourceSelector /> - <Input ref={searchInputRef} onSetTipList={onSetTipList} setPage={setPage} /> - </View> - <View style={styles.content} onLayout={onLayout}> - <TipList onTipPress={handleTipPress} height={listLayout.height} /> - <MusicList page={page} setPage={setPage} /> - </View> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - width: '100%', - flex: 1, - }, - content: { - flex: 1, - }, - searchBar: { - flexDirection: 'row', - height: 38, - zIndex: 2, - paddingRight: 5, - }, -}) diff --git a/src/screens/Home/Setting/Backup/Part.js b/src/screens/Home/Setting/Backup/Part.js deleted file mode 100644 index 9890aca..0000000 --- a/src/screens/Home/Setting/Backup/Part.js +++ /dev/null @@ -1,265 +0,0 @@ -import React, { memo, useCallback, useState, useRef } from 'react' -import { StyleSheet, View, InteractionManager } from 'react-native' -import { log } from '@/utils/log' -import { LXM_FILE_EXT_RXP } from '@/config/constant' - -import { useGetter, useDispatch } from '@/store' -// import { gzip, ungzip } from 'pako' - -import SubTitle from '../components/SubTitle' -import Button from '../components/Button' -import ChoosePath from '@/components/common/ChoosePath' -import { useTranslation } from '@/plugins/i18n' -import { toast, handleSaveFile, handleReadFile, confirmDialog, showImportTip } from '@/utils/tools' -import { toOldMusicInfo } from '@/utils/listData' - -const exportAllList = async(allList, path) => { - const data = JSON.parse(JSON.stringify({ - type: 'playList', - data: allList, - })) - for (const list of data.data) { - for (const item of list.list) { - if (item.otherSource) delete item.otherSource - } - } - try { - await handleSaveFile(path + '/lx_list.lxmc', data) - } catch (error) { - log.error(error.stack) - } -} -const importAllList = async path => { - let listData - try { - listData = await handleReadFile(path) - } catch (error) { - log.error(error.stack) - return - } - console.log(listData.type) - return listData -} - -const handleSetList = (setList, lists) => { - if (!lists.length) return Promise.resolve() - const list = lists.shift() - for (const item of list.list) { - if (item.otherSource) item.otherSource = null - if (item.typeUrl['128k']) delete item.typeUrl['128k'] - if (item.typeUrl['320k']) delete item.typeUrl['320k'] - if (item.typeUrl.flac) delete item.typeUrl.flac - if (item.typeUrl.wav) delete item.typeUrl.wav - - // PC v1.8.2以前的Lyric - if (item.lxlrc) delete item.lxlrc - if (item.lrc) delete item.lrc - if (item.tlrc) delete item.tlrc - } - return setList(list).then(() => handleSetList(setList, lists)).catch(err => { - toast(err.message) - log.error(err.message) - return handleSetList(setList, lists) - }) -} - -const handleSetListV2 = (setList, lists) => { - if (!lists.length) return Promise.resolve() - const list = lists.shift() - list.list = list.list.map(m => toOldMusicInfo(m)) - return setList(list).then(() => handleSetListV2(setList, lists)).catch(err => { - toast(err.message) - log.error(err.message) - return handleSetListV2(setList, lists) - }) -} - -export default memo(() => { - const { t } = useTranslation() - const [isShowChoosePath, setShowChoosePath] = useState(false) - const [title, setTitle] = useState('') - const [dirOnly, setDirOnly] = useState(false) - const actionTypeRef = useRef('') - // const setting = useGetter('common', 'setting') - const allList = useGetter('list', 'allList') - const setList = useDispatch('list', 'setList') - const createUserList = useDispatch('list', 'createUserList') - - const importAndExportData = useCallback(async(action, type) => { - setDirOnly(action == 'export') - actionTypeRef.current = `${action}_${type}` - switch (type) { - case 'list': - setTitle(t(`setting_backup_part_${action}_list_desc`)) - break - case 'setting': - setTitle(t(`setting_backup_part_${action}_setting_desc`)) - break - default: - setTitle(t(`setting_backup_all_${action}_desc`)) - break - } - - setShowChoosePath(true) - }, [t]) - - const handleImportPartList = useCallback(async(listData, isV2) => { - const targetList = global.allList[listData.data.id] - if (targetList) { - const confirm = await confirmDialog({ - message: t('list_import_part_confirm', { importName: listData.data.name, localName: targetList.name }), - cancelButtonText: t('list_import_part_button_cancel'), - confirmButtonText: t('list_import_part_button_confirm'), - bgClose: false, - }) - if (confirm) { - listData.data.name = targetList.name - setList({ - name: listData.data.name, - id: listData.data.id, - list: isV2 ? listData.data.list.map(m => toOldMusicInfo(m)) : listData.data.list, - source: listData.data.source, - sourceListId: listData.data.sourceListId, - }) - toast(t('setting_backup_part_import_list_tip_success')) - return - } - listData.data.id += `__${Date.now()}` - } - createUserList({ - name: listData.data.name, - id: listData.data.id, - list: isV2 ? listData.data.list.map(m => toOldMusicInfo(m)) : listData.data.list, - source: listData.data.source, - sourceListId: listData.data.sourceListId, - // position: Math.max(selectedListRef.current.index, -1), - }) - toast(t('setting_backup_part_import_list_tip_success')) - }, [createUserList, setList, t]) - - const onConfirmPath = useCallback(path => { - setShowChoosePath(false) - switch (actionTypeRef.current) { - case 'import_list': - InteractionManager.runAfterInteractions(() => { - toast(t('setting_backup_part_import_list_tip_unzip')) - importAllList(path).then(listData => { - // 兼容0.6.2及以前版本的列表数据 - if (listData.type === 'defautlList') { - handleSetList(setList, [ - { id: 'default', list: listData.data.list, name: '试听列表' }, - ]).then(() => { - toast(t('setting_backup_part_import_list_tip_success')) - }) - return - } - - switch (listData.type) { - case 'playList': - toast(t('setting_backup_part_import_list_tip_runing')) - handleSetList(setList, listData.data).then(() => { - toast(t('setting_backup_part_import_list_tip_success')) - }) - break - case 'allData': - toast(t('setting_backup_part_import_list_tip_runing')) - if (listData.defaultList) { // 兼容pc端 0.6.2及以前版本的列表数据 - handleSetList(setList, [ - { id: 'default', list: listData.defaultList.list, name: '试听列表' }, - ]).then(() => { - toast(t('setting_backup_part_import_list_tip_success')) - }) - } else { - handleSetList(setList, listData.playList).then(() => { - toast(t('setting_backup_part_import_list_tip_success')) - }) - } - toast(t('setting_backup_part_import_list_tip_success')) - break - - case 'playListPart': - handleImportPartList(listData, false) - break - case 'playList_v2': - toast(t('setting_backup_part_import_list_tip_runing')) - handleSetListV2(setList, listData.data).then(() => { - toast(t('setting_backup_part_import_list_tip_success')) - }) - break - case 'allData_v2': - toast(t('setting_backup_part_import_list_tip_runing')) - handleSetListV2(setList, listData.playList).then(() => { - toast(t('setting_backup_part_import_list_tip_success')) - }) - break - case 'playListPart_v2': - handleImportPartList(listData, true) - break - - default: return showImportTip(listData.type) - } - }) - }) - break - // case 'import_setting': - // setTitle(t('setting_backup_part_import_setting_desc')) - // break - // case 'import_all': - // setTitle(t('setting_backup_part_import_setting_desc')) - // break - case 'export_list': - InteractionManager.runAfterInteractions(() => { - toast(t('setting_backup_part_export_list_tip_zip')) - exportAllList(allList, path).then(() => { - toast(t('setting_backup_part_export_list_tip_success')) - }).catch(err => { - log.error(err.message) - toast(t('setting_backup_part_export_list_tip_failed') + ': ' + err.message) - }) - }) - break - // case 'export_setting': - // setTitle(t('setting_backup_part_import_setting_desc')) - // break - // case 'export_all': - // setTitle(t('setting_backup_part_import_setting_desc')) - // break - // default: - // setTitle(t('setting_backup_all_import_desc')) - // break - } - }, [allList, handleImportPartList, setList, t]) - - - return ( - <> - <SubTitle title={t('setting_backup_part')}> - <View style={styles.list}> - <Button onPress={() => importAndExportData('import', 'list')}>{t('setting_backup_part_import_list')}</Button> - <Button onPress={() => importAndExportData('export', 'list')}>{t('setting_backup_part_export_list')}</Button> - {/* <Button onPress={() => importAndExportData('import', 'setting')}>{t('setting_backup_part_import_setting')}</Button> - <Button onPress={() => importAndExportData('export', 'setting')}>{t('setting_backup_part_export_setting')}</Button> */} - </View> - </SubTitle> - {/* <SubTitle title={t('setting_backup_all')}> - <View style={styles.list}> - <Button onPress={() => importAndExportData('import', 'all')}>{t('setting_backup_all_import')}</Button> - <Button onPress={() => importAndExportData('export', 'all')}>{t('setting_backup_all_export')}</Button> - </View> - </SubTitle> */} - <ChoosePath - visible={isShowChoosePath} - hide={() => setShowChoosePath(false)} - title={title} - dirOnly={dirOnly} - filter={LXM_FILE_EXT_RXP} - onConfirm={onConfirmPath} /> - </> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexDirection: 'row', - }, -}) diff --git a/src/screens/Home/Setting/Basic/IsAutoTheme.js b/src/screens/Home/Setting/Basic/IsAutoTheme.js deleted file mode 100644 index 62875ac..0000000 --- a/src/screens/Home/Setting/Basic/IsAutoTheme.js +++ /dev/null @@ -1,27 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' -import { getIsSupportedAutoTheme } from '@/utils/tools' - -const isSupportedAutoTheme = getIsSupportedAutoTheme() - -export default memo(() => { - const { t } = useTranslation() - const isAutoTheme = useGetter('common', 'isAutoTheme') - const setIsAutoTheme = useDispatch('common', 'setIsAutoTheme') - - - return ( - isSupportedAutoTheme - ? ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={isAutoTheme} label={t('setting_basic_theme_auto_theme')} onChange={setIsAutoTheme} /> - </View> - ) - : null - ) -}) diff --git a/src/screens/Home/Setting/Basic/IsStartupAutoPlay.js b/src/screens/Home/Setting/Basic/IsStartupAutoPlay.js deleted file mode 100644 index caa79ae..0000000 --- a/src/screens/Home/Setting/Basic/IsStartupAutoPlay.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const startupAutoPlay = useGetter('common', 'startupAutoPlay') - const setStartupAutoPlay = useDispatch('common', 'setStartupAutoPlay') - - - return ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={startupAutoPlay} label={t('setting_basic_startup_auto_play')} onChange={setStartupAutoPlay} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Basic/Language.js b/src/screens/Home/Setting/Basic/Language.js deleted file mode 100644 index dfc0591..0000000 --- a/src/screens/Home/Setting/Basic/Language.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { memo, useCallback, useMemo } from 'react' - -import { StyleSheet, View, InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation, langList } from '@/plugins/i18n' -import CheckBox from '@/components/common/CheckBox' - -const useActive = id => { - const activeLangId = useGetter('common', 'activeLangId') - const isActive = useMemo(() => activeLangId == id, [activeLangId, id]) - return isActive -} - -const Item = ({ id, name, setLang }) => { - const isActive = useActive(id) - // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginRight={8} check={isActive} label={name} onChange={() => setLang(id)} need /> -} - -export default memo(() => { - const { t } = useTranslation() - const setLang = useDispatch('common', 'setLang') - const setLangId = useCallback((id) => { - InteractionManager.runAfterInteractions(() => { - setLang(id) - }) - }, [setLang]) - - return ( - <SubTitle title={t('setting_basic_lang')}> - <View style={styles.list}> - { - langList.map(({ id, name }) => <Item name={name} id={id} key={id} setLang={setLangId} />) - } - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexDirection: 'row', - flexWrap: 'wrap', - }, -}) diff --git a/src/screens/Home/Setting/Basic/ShareType.js b/src/screens/Home/Setting/Basic/ShareType.js deleted file mode 100644 index 42dbc1b..0000000 --- a/src/screens/Home/Setting/Basic/ShareType.js +++ /dev/null @@ -1,55 +0,0 @@ -import React, { memo, useMemo } from 'react' - -import { StyleSheet, View } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' -import CheckBox from '@/components/common/CheckBox' - - -const useActive = id => { - const shareType = useGetter('common', 'shareType') - const isActive = useMemo(() => shareType == id, [shareType, id]) - return isActive -} - -const Item = ({ id, name, change }) => { - const isActive = useActive(id) - // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => change(id)} need /> -} - -export default memo(() => { - const { t } = useTranslation() - const setShareType = useDispatch('common', 'setShareType') - const list = useMemo(() => [ - { - id: 'system', - name: t('setting_basic_share_type_system'), - }, - { - id: 'clipboard', - name: t('setting_basic_share_type_clipboard'), - }, - ], [t]) - - return ( - <SubTitle title={t('setting_basic_share_type')}> - <View style={styles.list}> - { - list.map(({ id, name }) => <Item name={name} id={id} key={id} change={setShareType} />) - } - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - }, -}) diff --git a/src/screens/Home/Setting/Basic/SourceName.js b/src/screens/Home/Setting/Basic/SourceName.js deleted file mode 100644 index e50f609..0000000 --- a/src/screens/Home/Setting/Basic/SourceName.js +++ /dev/null @@ -1,59 +0,0 @@ -import React, { memo, useCallback, useMemo } from 'react' - -import { StyleSheet, View, InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' -import CheckBox from '@/components/common/CheckBox' - -const useActive = id => { - const activeId = useGetter('common', 'sourceNameType') - const isActive = useMemo(() => activeId == id, [activeId, id]) - return isActive -} - -const Item = ({ id, name, change }) => { - const isActive = useActive(id) - // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => change(id)} need /> -} - -export default memo(() => { - const { t } = useTranslation() - const setSourceNameType = useDispatch('common', 'setSourceNameType') - const list = useMemo(() => [ - { - id: 'real', - name: t('setting_basic_sourcename_real'), - }, - { - id: 'alias', - name: t('setting_basic_sourcename_alias'), - }, - ], [t]) - const setSourceNameTypeId = useCallback((id) => { - InteractionManager.runAfterInteractions(() => { - setSourceNameType(id) - }) - }, [setSourceNameType]) - - return ( - <SubTitle title={t('setting_basic_sourcename')}> - <View style={styles.list}> - { - list.map(({ id, name }) => <Item name={name} id={id} key={id} change={setSourceNameTypeId} />) - } - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - }, -}) diff --git a/src/screens/Home/Setting/Basic/Theme.js b/src/screens/Home/Setting/Basic/Theme.js deleted file mode 100644 index d1b765d..0000000 --- a/src/screens/Home/Setting/Basic/Theme.js +++ /dev/null @@ -1,85 +0,0 @@ -import React, { memo, useCallback, useMemo } from 'react' - -import { StyleSheet, View, Text, ImageBackground, TouchableOpacity, InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' - -const useActive = id => { - const activeThemeId = useGetter('common', 'activeThemeId') - const isActive = useMemo(() => activeThemeId == id, [activeThemeId, id]) - return isActive -} - -const ThemeItem = ({ id, color, image, setTheme }) => { - const theme = useGetter('common', 'theme') - const isActive = useActive(id) - const { t } = useTranslation() - return ( - <TouchableOpacity style={styles.item} activeOpacity={0.5} onPress={() => setTheme(id)}> - <View style={{ ...styles.colorContent, backgroundColor: theme.primary, borderColor: isActive ? color : 'transparent' }}> - { - image - ? <ImageBackground source={image} style={styles.image} /> - : <View style={{ ...styles.image, backgroundColor: color }}></View> - } - </View> - <Text style={{ ...styles.name, color: isActive ? color : theme.normal }} numberOfLines={1}>{t(`theme_${id}`)}</Text> - </TouchableOpacity> - ) -} - -export default memo(() => { - const { t } = useTranslation() - const themeList = useGetter('common', 'themeList') - const themes = useMemo(() => themeList.map(theme => ({ id: theme.id, color: theme.colors.secondary })), [themeList]) - const setTheme = useDispatch('common', 'setTheme') - const setThemeId = useCallback((id) => { - InteractionManager.runAfterInteractions(() => { - setTheme(id) - }) - }, [setTheme]) - - return ( - <SubTitle title={t('setting_basic_theme')}> - <View style={styles.list}> - { - themes.map(({ id, color, image }) => <ThemeItem key={id} color={color} image={image} id={id} setTheme={setThemeId} />) - } - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexDirection: 'row', - flexWrap: 'wrap', - }, - item: { - marginRight: 15, - alignItems: 'center', - width: 54, - marginTop: 5, - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - colorContent: { - width: 32, - height: 32, - borderRadius: 4, - borderWidth: 1.6, - alignItems: 'center', - justifyContent: 'center', - }, - image: { - width: 26, - height: 26, - borderRadius: 4, - elevation: 1, - }, - name: { - marginTop: 2, - fontSize: 13, - }, -}) diff --git a/src/screens/Home/Setting/List/AddMusicLocationType.js b/src/screens/Home/Setting/List/AddMusicLocationType.js deleted file mode 100644 index 9e41527..0000000 --- a/src/screens/Home/Setting/List/AddMusicLocationType.js +++ /dev/null @@ -1,43 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { View, StyleSheet } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' -import CheckBox from '@/components/common/CheckBox' - - -const useActive = id => { - const addMusicLocationType = useGetter('common', 'addMusicLocationType') - const isActive = useMemo(() => addMusicLocationType == id, [addMusicLocationType, id]) - return isActive -} - -const Item = ({ id, name, change }) => { - const isActive = useActive(id) - // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => change(id)} need /> -} - - -export default memo(() => { - const { t } = useTranslation() - const setAddMusicLocationType = useDispatch('common', 'setAddMusicLocationType') - - return ( - <SubTitle title={t('setting_list_add_music_location_type')}> - <View style={styles.list}> - <Item id="top" change={setAddMusicLocationType} name={t('setting_list_add_music_location_type_top')} /> - <Item id="bottom" change={setAddMusicLocationType} name={t('setting_list_add_music_location_type_bottom')} /> - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexDirection: 'row', - flexWrap: 'wrap', - }, -}) diff --git a/src/screens/Home/Setting/List/IsClickPlayList.js b/src/screens/Home/Setting/List/IsClickPlayList.js deleted file mode 100644 index e24c9e6..0000000 --- a/src/screens/Home/Setting/List/IsClickPlayList.js +++ /dev/null @@ -1,19 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isClickPlayList = useGetter('common', 'isClickPlayList') - const setIsClickPlayList = useDispatch('common', 'setIsClickPlayList') - - return ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={isClickPlayList} onChange={setIsClickPlayList} label={t('setting_list_click_action')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/LyricDesktop/IsLockLyric.js b/src/screens/Home/Setting/LyricDesktop/IsLockLyric.js deleted file mode 100644 index 755106a..0000000 --- a/src/screens/Home/Setting/LyricDesktop/IsLockLyric.js +++ /dev/null @@ -1,19 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isLockDesktopLyric = useGetter('common', 'isLockDesktopLyric') - const setIsLockDesktopLyric = useDispatch('common', 'setIsLockDesktopLyric') - - return ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={isLockDesktopLyric} label={t('setting_lyric_desktop_lock')} onChange={setIsLockDesktopLyric} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/LyricDesktop/IsShowLyric.js b/src/screens/Home/Setting/LyricDesktop/IsShowLyric.js deleted file mode 100644 index 278c913..0000000 --- a/src/screens/Home/Setting/LyricDesktop/IsShowLyric.js +++ /dev/null @@ -1,55 +0,0 @@ -import React, { memo, useCallback, useState } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import ConfirmAlert from '@/components/common/ConfirmAlert' -import CheckBoxItem from '../components/CheckBoxItem' - -import { useTranslation } from '@/plugins/i18n' -import { toast } from '@/utils/tools' -import { checkOverlayPermission, openOverlayPermissionActivity } from '@/utils/lyricDesktop' - -export default memo(() => { - const { t } = useTranslation() - const isEnableDesktopLyric = useGetter('common', 'isEnableDesktopLyric') - const setIsShowDesktopLyric = useDispatch('common', 'setIsShowDesktopLyric') - const [visibleTips, setVisibleTips] = useState(false) - - const handleChangeEnableDesktopLyric = useCallback(async isEnable => { - if (isEnable) { - try { - await checkOverlayPermission() - await setIsShowDesktopLyric(isEnable) - } catch (err) { - setVisibleTips(true) - return false - } - } else await setIsShowDesktopLyric(isEnable) - return true - }, [setIsShowDesktopLyric]) - - const handleTipsCancel = useCallback(() => { - toast(t('disagree_tip'), 'long') - setVisibleTips(false) - }, [t]) - const handleTipsConfirm = useCallback(() => { - setVisibleTips(false) - openOverlayPermissionActivity() - }, []) - - return ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={isEnableDesktopLyric} label={t('setting_lyric_desktop_enable')} onChange={handleChangeEnableDesktopLyric} /> - <ConfirmAlert - visible={visibleTips} - onHide={handleTipsCancel} - onConfirm={handleTipsConfirm} - bgHide={false} - closeBtn={false} - cancelText={t('disagree')} - confirmText={t('agree_go')} - text={t('setting_lyric_dektop_permission_tip')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/LyricDesktop/IsShowToggleAnima.js b/src/screens/Home/Setting/LyricDesktop/IsShowToggleAnima.js deleted file mode 100644 index 1121c57..0000000 --- a/src/screens/Home/Setting/LyricDesktop/IsShowToggleAnima.js +++ /dev/null @@ -1,19 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const desktopLyricShowToggleAnima = useGetter('common', 'desktopLyricShowToggleAnima') - const setDesktopLyricShowToggleAnima = useDispatch('common', 'setDesktopLyricShowToggleAnima') - - return ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={desktopLyricShowToggleAnima} label={t('setting_lyric_desktop_toggle_anima')} onChange={setDesktopLyricShowToggleAnima} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/LyricDesktop/IsSingleLine.js b/src/screens/Home/Setting/LyricDesktop/IsSingleLine.js deleted file mode 100644 index 95a6e90..0000000 --- a/src/screens/Home/Setting/LyricDesktop/IsSingleLine.js +++ /dev/null @@ -1,19 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const desktopLyricSingleLine = useGetter('common', 'desktopLyricSingleLine') - const setDesktopLyricSingleLine = useDispatch('common', 'setDesktopLyricSingleLine') - - return ( - <View style={{ marginTop: 5, marginBottom: 15 }}> - <CheckBoxItem check={desktopLyricSingleLine} label={t('setting_lyric_desktop_single_line')} onChange={setDesktopLyricSingleLine} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/LyricDesktop/MaxLineNum.js b/src/screens/Home/Setting/LyricDesktop/MaxLineNum.js deleted file mode 100644 index b6ea51e..0000000 --- a/src/screens/Home/Setting/LyricDesktop/MaxLineNum.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { memo, useCallback, useState } from 'react' - -import { StyleSheet, View, Text } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import Slider from '../components/Slider' -import { useTranslation } from '@/plugins/i18n' - - -export default memo(() => { - const { t } = useTranslation() - const maxLineNum = useGetter('common', 'desktopLyricMaxLineNum') - const setDesktopLyricMaxLineNum = useDispatch('common', 'setDesktopLyricMaxLineNum') - const theme = useGetter('common', 'theme') - const [sliderSize, setSliderSize] = useState(maxLineNum) - const [isSliding, setSliding] = useState(false) - const handleSlidingStart = useCallback(value => { - setSliding(true) - }, []) - const handleValueChange = useCallback(value => { - setSliderSize(value) - }, []) - const handleSlidingComplete = useCallback(value => { - if (maxLineNum == value) return - setDesktopLyricMaxLineNum(value) - setSliding(false) - }, [maxLineNum, setDesktopLyricMaxLineNum]) - - return ( - <SubTitle title={t('setting_lyric_desktop_maxlineNum')}> - <View style={styles.content}> - <Text style={{ color: theme.secondary10 }}>{isSliding ? sliderSize : maxLineNum}</Text> - <Slider - minimumValue={1} - maximumValue={8} - onSlidingComplete={handleSlidingComplete} - onValueChange={handleValueChange} - onSlidingStart={handleSlidingStart} - step={1} - value={maxLineNum} - /> - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - content: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - alignItems: 'center', - }, -}) diff --git a/src/screens/Home/Setting/LyricDesktop/TextOpacity.js b/src/screens/Home/Setting/LyricDesktop/TextOpacity.js deleted file mode 100644 index 862c825..0000000 --- a/src/screens/Home/Setting/LyricDesktop/TextOpacity.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { memo, useCallback, useState } from 'react' - -import { StyleSheet, View, Text } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import Slider from '../components/Slider' -import { useTranslation } from '@/plugins/i18n' - - -export default memo(() => { - const { t } = useTranslation() - const { opacity } = useGetter('common', 'desktopLyricStyle') - const setDesktopLyricStyle = useDispatch('common', 'setDesktopLyricStyle') - const theme = useGetter('common', 'theme') - const [sliderSize, setSliderSize] = useState(opacity) - const [isSliding, setSliding] = useState(false) - const handleSlidingStart = useCallback(value => { - setSliding(true) - }, []) - const handleValueChange = useCallback(value => { - setSliderSize(value) - }, []) - const handleSlidingComplete = useCallback(value => { - if (opacity == value) return - setDesktopLyricStyle({ opacity: value }) - setSliding(false) - }, [opacity, setDesktopLyricStyle]) - - return ( - <SubTitle title={t('setting_lyric_desktop_text_opacity')}> - <View style={styles.content}> - <Text style={{ color: theme.secondary10 }}>{isSliding ? sliderSize : opacity}</Text> - <Slider - minimumValue={10} - maximumValue={100} - onSlidingComplete={handleSlidingComplete} - onValueChange={handleValueChange} - onSlidingStart={handleSlidingStart} - step={2} - value={opacity} - /> - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - content: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - alignItems: 'center', - }, -}) diff --git a/src/screens/Home/Setting/LyricDesktop/TextPositionX.js b/src/screens/Home/Setting/LyricDesktop/TextPositionX.js deleted file mode 100644 index 56af568..0000000 --- a/src/screens/Home/Setting/LyricDesktop/TextPositionX.js +++ /dev/null @@ -1,48 +0,0 @@ -import React, { memo, useCallback, useMemo } from 'react' - -import { StyleSheet, View } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' -import CheckBox from '@/components/common/CheckBox' -import { textPositionX } from '@/utils/lyricDesktop' - -const useActive = id => { - const { x } = useGetter('common', 'desktopLyricTextPosition') - const isActive = useMemo(() => x == id, [x, id]) - return isActive -} - -const Item = ({ id, name, change }) => { - const isActive = useActive(id) - // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => change({ x: id })} need /> -} - -export default memo(() => { - const { t } = useTranslation() - const setDesktopLyricTextPosition = useDispatch('common', 'setDesktopLyricTextPosition') - const list = useMemo(() => { - return textPositionX.map(({ id, value }) => ({ id, name: t('setting_lyric_desktop_text_x_' + id) })) - }, [t]) - - return ( - <SubTitle title={t('setting_lyric_desktop_text_x')}> - <View style={styles.list}> - { - list.map(({ id, name }) => <Item name={name} id={id} key={id} change={setDesktopLyricTextPosition} />) - } - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - }, -}) diff --git a/src/screens/Home/Setting/LyricDesktop/TextPositionY.js b/src/screens/Home/Setting/LyricDesktop/TextPositionY.js deleted file mode 100644 index 15996ad..0000000 --- a/src/screens/Home/Setting/LyricDesktop/TextPositionY.js +++ /dev/null @@ -1,48 +0,0 @@ -import React, { memo, useCallback, useMemo } from 'react' - -import { StyleSheet, View } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' -import CheckBox from '@/components/common/CheckBox' -import { textPositionY } from '@/utils/lyricDesktop' - -const useActive = id => { - const { y } = useGetter('common', 'desktopLyricTextPosition') - const isActive = useMemo(() => y == id, [y, id]) - return isActive -} - -const Item = ({ id, name, change }) => { - const isActive = useActive(id) - // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => change({ y: id })} need /> -} - -export default memo(() => { - const { t } = useTranslation() - const setDesktopLyricTextPosition = useDispatch('common', 'setDesktopLyricTextPosition') - const list = useMemo(() => { - return textPositionY.map(({ id }) => ({ id, name: t('setting_lyric_desktop_text_y_' + id) })) - }, [t]) - - return ( - <SubTitle title={t('setting_lyric_desktop_text_y')}> - <View style={styles.list}> - { - list.map(({ id, name }) => <Item name={name} id={id} key={id} change={setDesktopLyricTextPosition} />) - } - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - list: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - }, -}) diff --git a/src/screens/Home/Setting/LyricDesktop/TextSize.js b/src/screens/Home/Setting/LyricDesktop/TextSize.js deleted file mode 100644 index 88e4bcc..0000000 --- a/src/screens/Home/Setting/LyricDesktop/TextSize.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { memo, useCallback, useState } from 'react' - -import { StyleSheet, View, Text } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import Slider from '../components/Slider' -import { useTranslation } from '@/plugins/i18n' - - -export default memo(() => { - const { t } = useTranslation() - const { fontSize } = useGetter('common', 'desktopLyricStyle') - const setDesktopLyricStyle = useDispatch('common', 'setDesktopLyricStyle') - const theme = useGetter('common', 'theme') - const [sliderSize, setSliderSize] = useState(fontSize) - const [isSliding, setSliding] = useState(false) - const handleSlidingStart = useCallback(value => { - setSliding(true) - }, []) - const handleValueChange = useCallback(value => { - setSliderSize(value) - }, []) - const handleSlidingComplete = useCallback(value => { - if (fontSize == value) return - setDesktopLyricStyle({ fontSize: value }) - setSliding(false) - }, [fontSize, setDesktopLyricStyle]) - - return ( - <SubTitle title={t('setting_lyric_desktop_text_size')}> - <View style={styles.content}> - <Text style={{ color: theme.secondary10 }}>{isSliding ? sliderSize : fontSize}</Text> - <Slider - minimumValue={100} - maximumValue={500} - onSlidingComplete={handleSlidingComplete} - onValueChange={handleValueChange} - onSlidingStart={handleSlidingStart} - step={2} - value={fontSize} - /> - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - content: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - alignItems: 'center', - }, -}) diff --git a/src/screens/Home/Setting/LyricDesktop/ViewWidth.js b/src/screens/Home/Setting/LyricDesktop/ViewWidth.js deleted file mode 100644 index dbd3154..0000000 --- a/src/screens/Home/Setting/LyricDesktop/ViewWidth.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { memo, useCallback, useState } from 'react' - -import { StyleSheet, View, Text } from 'react-native' -import { useGetter, useDispatch } from '@/store' - -import SubTitle from '../components/SubTitle' -import Slider from '../components/Slider' -import { useTranslation } from '@/plugins/i18n' - - -export default memo(() => { - const { t } = useTranslation() - const width = useGetter('common', 'desktopLyricWidth') - const setDesktopLyricWidth = useDispatch('common', 'setDesktopLyricWidth') - const theme = useGetter('common', 'theme') - const [sliderSize, setSliderSize] = useState(width) - const [isSliding, setSliding] = useState(false) - const handleSlidingStart = useCallback(value => { - setSliding(true) - }, []) - const handleValueChange = useCallback(value => { - setSliderSize(value) - }, []) - const handleSlidingComplete = useCallback(value => { - if (width == value) return - setDesktopLyricWidth(value) - setSliding(false) - }, [width, setDesktopLyricWidth]) - - return ( - <SubTitle title={t('setting_lyric_desktop_view_width')}> - <View style={styles.content}> - <Text style={{ color: theme.secondary10 }}>{isSliding ? sliderSize : width}</Text> - <Slider - minimumValue={10} - maximumValue={100} - onSlidingComplete={handleSlidingComplete} - onValueChange={handleValueChange} - onSlidingStart={handleSlidingStart} - step={1} - value={width} - /> - </View> - </SubTitle> - ) -}) - -const styles = StyleSheet.create({ - content: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'wrap', - alignItems: 'center', - }, -}) diff --git a/src/screens/Home/Setting/Player/IsHandleAudioFocus.js b/src/screens/Home/Setting/Player/IsHandleAudioFocus.js deleted file mode 100644 index a704178..0000000 --- a/src/screens/Home/Setting/Player/IsHandleAudioFocus.js +++ /dev/null @@ -1,25 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' -import { toast } from '@/utils/tools' - -export default memo(() => { - const { t } = useTranslation() - const isHandleAudioFocus = useGetter('common', 'isHandleAudioFocus') - const setIsHandleAudioFocus = useDispatch('common', 'setIsHandleAudioFocus') - - const handleSetAudioFocus = flag => { - setIsHandleAudioFocus(flag) - toast(t('setting_play_handle_audio_focus_tip')) - } - - return ( - <View style={{ marginTop: 15 }}> - <CheckBoxItem check={isHandleAudioFocus} label={t('setting_play_handle_audio_focus')} onChange={handleSetAudioFocus} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/IsPlayHighQuality.js b/src/screens/Home/Setting/Player/IsPlayHighQuality.js deleted file mode 100644 index fa52990..0000000 --- a/src/screens/Home/Setting/Player/IsPlayHighQuality.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isPlayHighQuality = useGetter('common', 'isPlayHighQuality') - const setIsPlayHighQuality = useDispatch('common', 'setIsPlayHighQuality') - - - return ( - <View style={{ marginTop: 5 }}> - <CheckBoxItem check={isPlayHighQuality} label={t('setting_play_quality')} onChange={setIsPlayHighQuality} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/IsS2T.js b/src/screens/Home/Setting/Player/IsS2T.js deleted file mode 100644 index d8e2693..0000000 --- a/src/screens/Home/Setting/Player/IsS2T.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isS2t = useGetter('common', 'isS2t') - const setIsS2T = useDispatch('common', 'setIsS2T') - - - return ( - <View style={{ marginTop: 15 }}> - <CheckBoxItem check={isS2t} onChange={setIsS2T} label={t('setting_play_s2t')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/IsShowLyricRoma.js b/src/screens/Home/Setting/Player/IsShowLyricRoma.js deleted file mode 100644 index c13f84e..0000000 --- a/src/screens/Home/Setting/Player/IsShowLyricRoma.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isShowLyricRoma = useGetter('common', 'isShowLyricRoma') - const setIsShowLyricRoma = useDispatch('common', 'setIsShowLyricRoma') - - - return ( - <View style={{ marginTop: 15 }}> - <CheckBoxItem check={isShowLyricRoma} onChange={setIsShowLyricRoma} label={t('setting_play_show_roma')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/IsShowLyricTranslation.js b/src/screens/Home/Setting/Player/IsShowLyricTranslation.js deleted file mode 100644 index 1a27857..0000000 --- a/src/screens/Home/Setting/Player/IsShowLyricTranslation.js +++ /dev/null @@ -1,20 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isShowLyricTranslation = useGetter('common', 'isShowLyricTranslation') - const setIsShowLyricTranslation = useDispatch('common', 'setIsShowLyricTranslation') - - - return ( - <View style={{ marginTop: 15 }}> - <CheckBoxItem check={isShowLyricTranslation} onChange={setIsShowLyricTranslation} label={t('setting_play_show_translation')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/IsShowNotificationImage.js b/src/screens/Home/Setting/Player/IsShowNotificationImage.js deleted file mode 100644 index 4d3994b..0000000 --- a/src/screens/Home/Setting/Player/IsShowNotificationImage.js +++ /dev/null @@ -1,19 +0,0 @@ -import React, { memo } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import CheckBoxItem from '../components/CheckBoxItem' -import { useTranslation } from '@/plugins/i18n' - -export default memo(() => { - const { t } = useTranslation() - const isShowNotificationImage = useGetter('common', 'isShowNotificationImage') - const setIsShowNotificationImage = useDispatch('common', 'setIsShowNotificationImage') - - return ( - <View style={{ marginTop: 15 }}> - <CheckBoxItem check={isShowNotificationImage} onChange={setIsShowNotificationImage} label={t('setting_play_show_notification_image')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/MaxCache.js b/src/screens/Home/Setting/Player/MaxCache.js deleted file mode 100644 index 9d5ec98..0000000 --- a/src/screens/Home/Setting/Player/MaxCache.js +++ /dev/null @@ -1,40 +0,0 @@ -import React, { memo, useMemo, useCallback } from 'react' -import { View } from 'react-native' - -import { useGetter, useDispatch } from '@/store' - -import InputItem from '../components/InputItem' -import { useTranslation } from '@/plugins/i18n' -import { toast } from '@/utils/tools' - -export default memo(() => { - const { t } = useTranslation() - const playerCacheSize = useGetter('common', 'playerCacheSize') - const setPlayerCacheSize = useDispatch('common', 'setPlayerCacheSize') - - const size = useMemo(() => { - let size = parseInt(playerCacheSize) - if (size == 0 || Number.isNaN(size)) size = '' - return size.toString() - }, [playerCacheSize]) - - const setSize = useCallback((value, callback) => { - let size = parseInt(value) - if (Number.isNaN(size)) size = 0 - callback(size) - if (playerCacheSize == size) return - setPlayerCacheSize(size) - toast(t('setting_play_cache_size_save_tip')) - }, [playerCacheSize, setPlayerCacheSize, t]) - - return ( - <View style={{ marginTop: 15 }} > - <InputItem - value={size} - label={t('setting_play_cache_size')} - onChange={setSize} - keyboardType="number-pad" - placeholder={t('setting_play_cache_size_no_cache')} /> - </View> - ) -}) diff --git a/src/screens/Home/Setting/Player/index.js b/src/screens/Home/Setting/Player/index.js deleted file mode 100644 index 8719e84..0000000 --- a/src/screens/Home/Setting/Player/index.js +++ /dev/null @@ -1,57 +0,0 @@ -import React, { memo } from 'react' - -import Section from '../components/Section' -import IsPlayHighQuality from './IsPlayHighQuality' -import IsHandleAudioFocus from './IsHandleAudioFocus' -import IsShowNotificationImage from './IsShowNotificationImage' -import IsShowLyricTranslation from './IsShowLyricTranslation' -import IsShowLyricRoma from './IsShowLyricRoma' -import IsS2T from './IsS2T' -import MaxCache from './MaxCache' -import { useTranslation } from '@/plugins/i18n' - -// import DorpDownMenu from '@/components/common/DorpDownMenu' -// import { useGetter, useDispatch } from '@/store' - -// const playNextModes = [ -// { label: '列表循环', action: 'listLoop' }, -// { label: '列表随机', action: 'random' }, -// { label: '顺序播放', action: 'list' }, -// { label: '单曲循环', action: 'singleLoop' }, -// ] - -export default memo(() => { - const { t } = useTranslation() - - // const [isShowModal, setIsShowModal] = useState(false) - // const hideDialog = useCallback(() => setIsShowModal(false), [setIsShowModal]) - // const togglePlayMethod = useGetter('common', 'togglePlayMethod') - - // const togglePlayMethodName = useMemo(() => { - // const method = playNextModes.find(m => m.action == togglePlayMethod) - // return method ? method.label : '未知' - // }, [togglePlayMethod]) - // const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - // console.log(themeList) - // const handlePress = id => { - // setTheme(id) - // // console.log(AppColors) - // } - // const handleToggleMethodPress = ({ action }) => setPlayNextMode(action) - - return ( - <Section title={t('setting_play')}> - <IsPlayHighQuality /> - <IsHandleAudioFocus /> - <IsShowNotificationImage /> - <IsShowLyricTranslation /> - <IsShowLyricRoma /> - <IsS2T /> - <MaxCache /> - {/* <View style={{ marginLeft: 15, marginBottom: 15 }}> - <Text>播放歌曲切换方式</Text> - <DorpDownMenu menus={playNextModes} onPress={handleToggleMethodPress}><Text style={{ padding: 10 }}>{togglePlayMethodName}</Text></DorpDownMenu> - </View> */} - </Section> - ) -}) diff --git a/src/screens/Home/Setting/Version.js b/src/screens/Home/Setting/Version.js deleted file mode 100644 index 4011dc5..0000000 --- a/src/screens/Home/Setting/Version.js +++ /dev/null @@ -1,79 +0,0 @@ -import React, { useMemo, memo, useState, useEffect } from 'react' -import { StyleSheet, View, Text } from 'react-native' - -import Section from './components/Section' -import SubTitle from './components/SubTitle' -import Button from './components/Button' -import { showVersionModal } from '@/navigation' - -import { useTranslation } from '@/plugins/i18n' -import { useGetter, useDispatch } from '@/store' -import { VERSION_STATUS } from '@/config/constant' - -const currentVer = process.versions.app -export default memo(() => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - const versionInfo = useGetter('common', 'versionInfo') - const setVersionInfo = useDispatch('common', 'setVersionInfo') - const [title, setTitle] = useState('') - const handleOpenVersionModal = () => { - setVersionInfo({ showModal: true }) - showVersionModal() - } - - useEffect(() => { - switch (versionInfo.status) { - case VERSION_STATUS.available: - setTitle(t('version_title_new')) - // setTip(t('version_btn_new')) - break - case VERSION_STATUS.downloading: - setTitle(t('version_title_new')) - break - case VERSION_STATUS.downloaded: - setTitle(t('version_title_update')) - break - case VERSION_STATUS.checking: - setTitle(t('version_title_checking')) - break - case VERSION_STATUS.failed: - setTitle(t('version_title_failed')) - break - case VERSION_STATUS.unknown: - setTitle(t('version_title_unknown')) - break - case VERSION_STATUS.latest: - default: - setTitle(t('version_tip_latest')) - break - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [t, versionInfo]) - - return ( - <Section title={t('setting_version')}> - <SubTitle title={title}> - <View style={styles.desc}> - <Text style={{ ...styles.label, color: theme.normal }}>{t('version_label_latest_ver')}{versionInfo.version}</Text> - <Text style={{ ...styles.label, color: theme.normal }}>{t('version_label_current_ver')}{currentVer}</Text> - </View> - <View style={styles.btn}> - <Button onPress={handleOpenVersionModal}>{t('setting_version_show_ver_modal')}</Button> - </View> - </SubTitle> - </Section> - ) -}) - -const styles = StyleSheet.create({ - desc: { - marginBottom: 5, - }, - label: { - fontSize: 14, - }, - btn: { - flexDirection: 'row', - }, -}) diff --git a/src/screens/Home/Setting/components/Button.js b/src/screens/Home/Setting/components/Button.js deleted file mode 100644 index 1e9f9a1..0000000 --- a/src/screens/Home/Setting/components/Button.js +++ /dev/null @@ -1,31 +0,0 @@ -import React, { memo } from 'react' - -import { StyleSheet, View, Text } from 'react-native' - -import Button from '@/components/common/Button' -import { useGetter } from '@/store' - - -export default memo(({ children, disabled, onPress }) => { - const theme = useGetter('common', 'theme') - - return ( - <Button style={{ ...styles.button, backgroundColor: theme.secondary40 }} onPress={onPress} disabled={disabled}> - <Text style={{ ...styles.text, color: theme.secondary_5 }}>{children}</Text> - </Button> - ) -}) - -const styles = StyleSheet.create({ - button: { - paddingLeft: 10, - paddingRight: 10, - paddingTop: 5, - paddingBottom: 5, - borderRadius: 4, - marginRight: 10, - }, - text: { - fontSize: 12, - }, -}) diff --git a/src/screens/Home/Setting/components/CheckBoxItem.js b/src/screens/Home/Setting/components/CheckBoxItem.js deleted file mode 100644 index 2c6c877..0000000 --- a/src/screens/Home/Setting/components/CheckBoxItem.js +++ /dev/null @@ -1,22 +0,0 @@ -import React, { memo } from 'react' - -import { StyleSheet, View } from 'react-native' - -import CheckBox from '@/components/common/CheckBox' - - -export default memo(({ check, label, onChange, disabled }) => { - return ( - <View style={styles.container}> - <CheckBox check={check} label={label} onChange={onChange} disabled={disabled} /> - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - paddingLeft: 25, - marginTop: -10, - marginBottom: -5, - }, -}) diff --git a/src/screens/Home/Setting/components/Section.js b/src/screens/Home/Setting/components/Section.js deleted file mode 100644 index 057e4ec..0000000 --- a/src/screens/Home/Setting/components/Section.js +++ /dev/null @@ -1,32 +0,0 @@ -import React, { memo } from 'react' - -import { StyleSheet, View, Text } from 'react-native' -import { useGetter } from '@/store' - -export default memo(({ title, children }) => { - const theme = useGetter('common', 'theme') - - return ( - <View style={styles.container}> - <Text style={{ ...styles.title, borderLeftColor: theme.secondary, color: theme.normal }}>{title}</Text> - <View> - {children} - </View> - </View> - ) -}) - - -const styles = StyleSheet.create({ - container: { - // paddingLeft: 10, - // backgroundColor: 'rgba(0,0,0,0.2)', - }, - title: { - borderLeftWidth: 5, - fontSize: 16, - paddingLeft: 10, - marginBottom: 10, - // lineHeight: 16, - }, -}) diff --git a/src/screens/Home/Setting/components/SubTitle.js b/src/screens/Home/Setting/components/SubTitle.js deleted file mode 100644 index 82ee58d..0000000 --- a/src/screens/Home/Setting/components/SubTitle.js +++ /dev/null @@ -1,29 +0,0 @@ -import React, { memo } from 'react' - -import { StyleSheet, View, Text } from 'react-native' -import { useGetter } from '@/store' - -export default memo(({ title, children }) => { - const theme = useGetter('common', 'theme') - - return ( - <View style={styles.container}> - <Text style={{ ...styles.title, color: theme.normal }}>{title}</Text> - {children} - </View> - ) -}) - - -const styles = StyleSheet.create({ - container: { - paddingLeft: 25, - marginBottom: 20, - }, - title: { - fontSize: 14, - marginLeft: -10, - marginBottom: 6, - // lineHeight: 16, - }, -}) diff --git a/src/screens/Home/SongList/List.js b/src/screens/Home/SongList/List.js deleted file mode 100644 index 670408e..0000000 --- a/src/screens/Home/SongList/List.js +++ /dev/null @@ -1,137 +0,0 @@ -import React, { useRef, useState, useEffect, useMemo, useCallback } from 'react' -import { Text, StyleSheet, FlatList, View, RefreshControl } from 'react-native' - -import ListItem from './ListItem' -import LoadingMask from '@/components/common/LoadingMask' -import { useTranslation } from '@/plugins/i18n' -import { useDispatch, useGetter, subscribe } from '@/store' -import { navigations } from '@/navigation' - -export default ({ width }) => { - const unSubscribeRef = useRef() - const initedRef = useRef(false) - const isLoading = useRef(false) - const [isListRefreshing, setIsListRefreshing] = useState(false) - const listInfo = useGetter('songList', 'listInfo') - const getList = useDispatch('songList', 'getList') - const setSelectListInfo = useDispatch('songList', 'setSelectListInfo') - const theme = useGetter('common', 'theme') - const songListSource = useGetter('songList', 'songListSource') - const songListSortId = useGetter('songList', 'songListSortId') - const songListTagInfo = useGetter('songList', 'songListTagInfo') - const [page, setPage] = useState(0) - const { t } = useTranslation() - const componentIds = useGetter('common', 'componentIds') - - useEffect(() => { - if (!initedRef.current) return - setPage(1) - getList({ page: 1 }) - }, [songListSource, songListSortId, songListTagInfo, getList]) - - useEffect(() => { - unSubscribeRef.current = subscribe('common.nav.navActiveIndex', () => { - if (!isListRefreshing) return - setIsListRefreshing(false) - }) - - setPage(1) - getList({ page: 1 }) - initedRef.current = true - return unSubscribeRef.current - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - - const handleListLoadMore = useCallback(() => { - if (listInfo.isLoading || listInfo.isEnd) return - isLoading.current = true - setPage(listInfo.page + 1) - getList({ page: listInfo.page + 1 }).finally(() => { - isLoading.current = false - }) - }, [getList, listInfo]) - - const handleListRefresh = useCallback(() => { - setIsListRefreshing(true) - setPage(1) - getList({ pahe: 1, isRefresh: true }).finally(() => { - setIsListRefreshing(false) - }) - }, [getList]) - - const handleListPress = useCallback((item, index) => { - // console.log(item) - setSelectListInfo(item) - navigations.pushSonglistDetailScreen(componentIds.home, item.id) - }, [componentIds.home, setSelectListInfo]) - - const itemWidth = useMemo(() => Math.max(parseInt(width * 0.125), 110), [width]) - const rowNum = useMemo(() => Math.floor(width / itemWidth), [itemWidth, width]) - const list = useMemo(() => { - const list = [...listInfo.list] - let whiteItemNum = (list.length % rowNum) - if (whiteItemNum > 0) whiteItemNum = rowNum - whiteItemNum - for (let i = 0; i < whiteItemNum; i++) list.push({ id: `white__${i}` }) - return list - }, [listInfo, rowNum]) - // console.log(listInfo.list.map((item) => item.id)) - - const renderItem = useCallback(data => ( - <ListItem data={data} width={itemWidth} onPress={handleListPress} /> - ), [handleListPress, itemWidth]) - - const refreshControl = useMemo(() => ( - <RefreshControl - colors={[theme.secondary]} - progressBackgroundColor={theme.primary} - refreshing={isListRefreshing} - onRefresh={handleListRefresh} /> - ), [isListRefreshing, handleListRefresh, theme]) - - const ListComponent = useMemo(() => <FlatList - style={styles.list} - columnWrapperStyle={{ justifyContent: 'space-evenly' }} - numColumns={rowNum} - data={list} - renderItem={renderItem} - keyExtractor={item => String(item.id)} - key={rowNum} - onEndReached={handleListLoadMore} - refreshControl={refreshControl} - // onEndReachedThreshold={0.5} - ListFooterComponent={ - listInfo.isEnd - ? null - : <View style={{ alignItems: 'center', padding: 10 }}><Text style={{ color: theme.normal30 }}>{t('loading')}</Text></View> - } - removeClippedSubviews={true} - />, [rowNum, list, renderItem, handleListLoadMore, refreshControl, listInfo.isEnd, theme, t]) - - const visibleLoadingMask = useMemo(() => page == 1 && listInfo.isLoading, [listInfo.isLoading, page]) - - const loadingMaskmomponent = useMemo(() => ( - <LoadingMask visible={visibleLoadingMask} /> - ), [visibleLoadingMask]) - - // console.log('render song list') - return ( - <View style={styles.container}> - { width == 0 ? null : ListComponent} - { loadingMaskmomponent } - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - overflow: 'hidden', - }, - list: { - flex: 1, - paddingLeft: 10, - paddingRight: 10, - }, -}) - diff --git a/src/screens/Home/SongList/ListItem.js b/src/screens/Home/SongList/ListItem.js deleted file mode 100644 index ed6bb69..0000000 --- a/src/screens/Home/SongList/ListItem.js +++ /dev/null @@ -1,58 +0,0 @@ -import React, { memo } from 'react' -import { View, Text, Image, StyleSheet, Platform, TouchableOpacity } from 'react-native' -import { useGetter } from '@/store' - -export default memo(({ data: { index, item }, width, onPress = () => {} }) => { - const theme = useGetter('common', 'theme') - const handlePress = () => { - onPress(item, index) - } - return ( - item.source - ? ( - <View style={{ ...styles.listItem, width: width - 20 }}> - <View style={{ ...styles.listItemImg, backgroundColor: theme.primary }}> - <TouchableOpacity activeOpacity={0.5} onPress={handlePress}> - <Image source={{ uri: item.img }} nativeID={`pic${item.id}`} style={{ width: width - 20, height: width - 20 }} borderRadius={4} /> - </TouchableOpacity> - </View> - <TouchableOpacity activeOpacity={0.5} onPress={handlePress}> - <Text style={{ ...styles.listItemTitle, color: theme.normal }} nativeID={`title${item.id}`} numberOfLines={ 2 }>{item.name}</Text> - </TouchableOpacity> - {/* <Text>{JSON.stringify(item)}</Text> */} - </View> - ) - : <View style={styles.listItem} /> - ) -}) - -const styles = StyleSheet.create({ - listItem: { - width: 90, - margin: 10, - }, - listItemImg: { - backgroundColor: '#eee', - borderRadius: 4, - marginBottom: 5, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: { - width: 0, - height: 1, - }, - shadowOpacity: 0.20, - shadowRadius: 1.41, - }, - android: { - elevation: 2, - }, - }), - }, - listItemTitle: { - fontSize: 12, - // overflow: 'hidden', - marginBottom: 5, - }, -}) diff --git a/src/screens/Home/SongList/MenuBar.js b/src/screens/Home/SongList/MenuBar.js deleted file mode 100644 index c5349fd..0000000 --- a/src/screens/Home/SongList/MenuBar.js +++ /dev/null @@ -1,33 +0,0 @@ -import React, { useCallback, useMemo } from 'react' -import { View, Text, StyleSheet } from 'react-native' - -// import { useGetter, useDispatch } from '@/store' -import SourceSelector from './SourceSelector' -import SortTab from './SortTab' -import Tag from './Tag' -import OpenList from './OpenList' -// import { BorderWidths } from '@/theme' - -export default () => { - // const theme = useGetter('common', 'theme') - - return ( - <View style={{ ...styles.container }}> - <SortTab /> - <Tag /> - <OpenList /> - <SourceSelector /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - width: '100%', - flexGrow: 0, - flexShrink: 0, - // borderBottomWidth: BorderWidths.normal, - }, -}) - diff --git a/src/screens/Home/SongList/OpenList.js b/src/screens/Home/SongList/OpenList.js deleted file mode 100644 index cdc7f67..0000000 --- a/src/screens/Home/SongList/OpenList.js +++ /dev/null @@ -1,99 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState, useRef } from 'react' -import { View, Text, StyleSheet, TouchableOpacity } from 'react-native' -// import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import Button from '@/components/common/Button' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import Input from '@/components/common/Input' -import { navigations } from '@/navigation' - -export default memo(() => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - const [visibleAlert, setVisibleAlert] = useState(false) - const [text, setText] = useState('') - const setSelectListInfo = useDispatch('songList', 'setSelectListInfo') - const songListSource = useGetter('songList', 'songListSource') - const componentIds = useGetter('common', 'componentIds') - - const handleShowMusicAddModal = () => { - setText('') - setVisibleAlert(true) - } - - const handleCancelOpen = useCallback(() => { - setVisibleAlert(false) - }, []) - const handleOpen = useCallback(() => { - if (!text.length) return - setSelectListInfo({ - play_count: null, - id: text, - author: '', - name: '', - img: null, - desc: '', - source: songListSource, - }) - setVisibleAlert(false) - navigations.pushSonglistDetailScreen(componentIds.home) - }, [componentIds.home, setSelectListInfo, songListSource, text]) - - - return ( - <> - <Button style={{ ...styles.button }} onPress={handleShowMusicAddModal}> - <Text style={{ ...styles.buttonText, color: theme.normal }}>{t('songlist_open')}</Text> - </Button> - <ConfirmAlert - visible={visibleAlert} - onHide={handleCancelOpen} - onConfirm={handleOpen} - > - <View style={styles.alertContent}> - <Input - placeholder={t('songlist_open_input_placeholder')} - value={text} - onChangeText={setText} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} - /> - <Text style={{ ...styles.inputTipText, color: theme.normal20 }}>{t('songlist_open_input_tip')}</Text> - </View> - </ConfirmAlert> - </> - ) -}) - -const styles = StyleSheet.create({ - button: { - // backgroundColor: '#ccc', - alignItems: 'center', - justifyContent: 'center', - paddingLeft: 12, - paddingRight: 12, - }, - buttonText: { - fontSize: 14, - }, - - alertContent: { - flexGrow: 1, - flexShrink: 1, - flexDirection: 'column', - }, - input: { - flexGrow: 1, - flexShrink: 1, - minWidth: 240, - borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, - }, - inputTipText: { - marginTop: 5, - fontSize: 12, - lineHeight: 18, - }, -}) diff --git a/src/screens/Home/SongList/SortTab.js b/src/screens/Home/SongList/SortTab.js deleted file mode 100644 index e8e21d8..0000000 --- a/src/screens/Home/SongList/SortTab.js +++ /dev/null @@ -1,79 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { StyleSheet, Text, View, ScrollView, TouchableOpacity } from 'react-native' - -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' - - -export default memo(() => { - const setSongList = useDispatch('common', 'setSongList') - const sortList = useGetter('songList', 'sortList') - const songListSource = useGetter('songList', 'songListSource') - const songListSortId = useGetter('songList', 'songListSortId') - // const currentSourceName = useGetter('search', 'currentSourceName') - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - - const sorts = useMemo(() => { - const list = songListSource ? [...sortList[songListSource]] : [] - // switch (songListSource) { - // case 'wy': - // case 'kw': - // case 'tx': - // case 'mg': - // case 'kg': - // list.push({ - // name: t('view.song_list.open_list', { name: sources.find(s => s.id == songListSource).name }), - // id: 'importSongList', - // }) - // } - return list.map(s => ({ label: t(`songlist_${s.tid}`), id: s.id })) - }, [songListSource, sortList, t]) - - - return ( - <ScrollView style={styles.container} keyboardShouldPersistTaps={'always'} horizontal={true}> - { - sorts.map(s => ( - <TouchableOpacity style={styles.button} onPress={() => setSongList({ sortId: s.id })} key={s.id}> - <Text style={{ ...styles.buttonText, color: songListSortId == s.id ? theme.secondary : theme.normal }}>{s.label}</Text> - </TouchableOpacity> - )) - } - </ScrollView> - // <DorpDownMenu - // menus={sorts} - // width={80} - // onPress={({ id }) => setSongList({ sortId: id })} - // > - // <Text style={styles.sourceMenu}>{currentSortName}</Text> - // </DorpDownMenu> - ) -}) - - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - flexShrink: 1, - paddingLeft: 5, - paddingRight: 5, - }, - button: { - // height: 38, - // lineHeight: 38, - // textAlign: 'center', - // width: 80, - // backgroundColor: 'rgba(0,0,0,0.1)', - }, - buttonText: { - // height: 38, - // lineHeight: 38, - textAlign: 'center', - paddingLeft: 15, - paddingRight: 15, - paddingTop: 10, - paddingBottom: 10, - // width: 80, - }, -}) diff --git a/src/screens/Home/SongList/SourceSelector.js b/src/screens/Home/SongList/SourceSelector.js deleted file mode 100644 index 6fe59d9..0000000 --- a/src/screens/Home/SongList/SourceSelector.js +++ /dev/null @@ -1,52 +0,0 @@ -import React, { memo, useMemo, useCallback } from 'react' -import { StyleSheet, Text, View } from 'react-native' - -import DorpDownMenu from '@/components/common/DorpDownMenu' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import { useLayout } from '@/utils/hooks' - - -export default memo(() => { - const setSongList = useDispatch('common', 'setSongList') - const sources = useGetter('songList', 'sources') - const songListSource = useGetter('songList', 'songListSource') - // const currentSourceName = useGetter('search', 'currentSourceName') - const { t } = useTranslation() - const sortList = useGetter('songList', 'sortList') - const sourceNameType = useGetter('common', 'sourceNameType') - const theme = useGetter('common', 'theme') - const { onLayout, ...layout } = useLayout() - - const sources_t = useMemo(() => { - return sources.map(s => ({ label: t(`source_${sourceNameType}_${s.id}`), action: s.id })) - }, [sourceNameType, sources, t]) - - const handleSetSource = useCallback(({ action }) => { - const sorts = sortList[action] - setSongList({ source: action, sortId: sorts ? sorts[0].id : '', tagInfo: { name: '默认', id: null } }) - }, [setSongList, sortList]) - - return ( - <DorpDownMenu - menus={sources_t} - width={layout.width} - onPress={handleSetSource} - > - <View style={styles.sourceMenu} onLayout={onLayout}> - <Text style={{ color: theme.normal }}>{t(`source_${sourceNameType}_${songListSource}`)}</Text> - </View> - </DorpDownMenu> - ) -}) - - -const styles = StyleSheet.create({ - sourceMenu: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - paddingLeft: 12, - paddingRight: 12, - }, -}) diff --git a/src/screens/Home/SongList/Tag.js b/src/screens/Home/SongList/Tag.js deleted file mode 100644 index 0b254f2..0000000 --- a/src/screens/Home/SongList/Tag.js +++ /dev/null @@ -1,130 +0,0 @@ -import React, { memo, useMemo, useEffect, useCallback, useState } from 'react' -import { StyleSheet, Text, View, ScrollView, TouchableOpacity } from 'react-native' - -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import Popup from '@/components/common/Popup' -import Button from '@/components/common/Button' -// import { BorderWidths } from '@/theme' - -const TagType = ({ name, list, setTagInfo, activeId }) => { - const theme = useGetter('common', 'theme') - return ( - <View> - <Text style={{ ...styles.tagTypeTitle, color: theme.normal30 }}>{name}</Text> - <View style={styles.tagTypeList}> - {list.map(item => ( - <Button style={{ ...styles.tagButton, backgroundColor: theme.secondary45 }} key={item.id} onPress={() => setTagInfo(item.name, item.id)}> - <Text style={{ ...styles.tagButtonText, color: activeId == item.id ? theme.secondary : theme.normal10 }}>{item.name}</Text> - </Button> - ))} - </View> - </View> - ) -} - -const Tags = memo(({ setVisiblePanel }) => { - const theme = useGetter('common', 'theme') - const tags = useGetter('songList', 'tags') - const songListSource = useGetter('songList', 'songListSource') - const setSongList = useDispatch('common', 'setSongList') - const songListTagInfo = useGetter('songList', 'songListTagInfo') - // console.log('render') - const tagsList = useMemo(() => { - let tagInfo = tags[songListSource] - return tagInfo ? [{ name: '热门', list: [...tagInfo.hotTag] }, ...tagInfo.tags] : [] - }, [songListSource, tags]) - const setTagInfo = useCallback((name, id) => { - setVisiblePanel(false) - setSongList({ tagInfo: { name, id } }) - }, [setSongList, setVisiblePanel]) - return ( - <ScrollView style={{ flexShrink: 1, flexGrow: 0 }} keyboardShouldPersistTaps={'always'}> - <View style={{ ...styles.tagContainer, backgroundColor: theme.primary }} onStartShouldSetResponder={() => true}> - <View style={{ ...styles.tagTypeList, marginTop: 10 }}> - <Button style={{ ...styles.tagButton, backgroundColor: theme.secondary45 }} onPress={() => setTagInfo('默认', null)}> - <Text style={{ ...styles.tagButtonText, color: songListTagInfo.id == null ? theme.secondary : theme.normal10 }}>默认</Text> - </Button> - </View> - {tagsList.map((type, index) => <TagType key={index} name={type.name} list={type.list} activeId={songListTagInfo.id} setTagInfo={setTagInfo} />)} - </View> - </ScrollView> - ) -}) - - -export default memo(() => { - const songListSource = useGetter('songList', 'songListSource') - const songListTagInfo = useGetter('songList', 'songListTagInfo') - // const currentSourceName = useGetter('search', 'currentSourceName') - const theme = useGetter('common', 'theme') - const getTags = useDispatch('songList', 'getTags') - const [visiblePanel, setVisiblePanel] = useState(false) - const { t } = useTranslation() - - // useEffect(() => { - // getTags() - // // eslint-disable-next-line react-hooks/exhaustive-deps - // }, []) - useEffect(() => { - getTags() - }, [getTags, songListSource]) - - - // console.log('render tags') - - return ( - <> - <TouchableOpacity style={styles.listName} onPress={() => setVisiblePanel(true)}> - <Text style={{ ...styles.sourceMenu, color: theme.normal }}>{songListTagInfo.name}</Text> - </TouchableOpacity> - <Popup - visible={visiblePanel} - hide={() => setVisiblePanel(false)} - title={t('songlist_tags')} - > - <Tags setVisiblePanel={setVisiblePanel} /> - </Popup> - </> - ) -}) - - -const styles = StyleSheet.create({ - sourceMenu: { - // height: 38, - // lineHeight: 38, - textAlign: 'center', - // minWidth: 70, - paddingLeft: 12, - paddingRight: 12, - paddingTop: 10, - paddingBottom: 10, - }, - - tagContainer: { - paddingLeft: 15, - paddingBottom: 15, - }, - tagTypeTitle: { - marginTop: 15, - marginBottom: 10, - }, - tagTypeList: { - flexDirection: 'row', - flexWrap: 'wrap', - }, - tagButton: { - // marginRight: 10, - borderRadius: 4, - marginRight: 10, - marginBottom: 10, - }, - tagButtonText: { - fontSize: 13, - paddingLeft: 12, - paddingRight: 12, - paddingTop: 8, - paddingBottom: 8, - }, -}) diff --git a/src/screens/Home/SongList/index.js b/src/screens/Home/SongList/index.js deleted file mode 100644 index 519ba6a..0000000 --- a/src/screens/Home/SongList/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react' -import { StyleSheet, View } from 'react-native' - -import List from './List' -import MenuBar from './MenuBar' - -import { useLayout } from '@/utils/hooks' - -export default () => { - const { onLayout, ...layout } = useLayout() - return ( - <View style={styles.container} onLayout={onLayout}> - <MenuBar /> - <List width={layout.width} /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - position: 'relative', - flex: 1, - }, -}) - diff --git a/src/screens/Home/Top/BoardsList.js b/src/screens/Home/Top/BoardsList.js deleted file mode 100644 index b473268..0000000 --- a/src/screens/Home/Top/BoardsList.js +++ /dev/null @@ -1,175 +0,0 @@ -import React, { memo, useMemo, useEffect, useCallback, useRef, useState } from 'react' -import { StyleSheet, View, Text, ScrollView } from 'react-native' - -import Menu from '@/components/common/Menu' - -import { useGetter, useDispatch } from '@/store' -import Button from '@/components/common/Button' -import { useTranslation } from '@/plugins/i18n' -import { LIST_ID_PLAY_TEMP } from '@/config/constant' -import { toast } from '@/utils/tools' - -const Item = ({ item, tabId, showMenu, setTop, index, longPressIndex }) => { - const theme = useGetter('common', 'theme') - const buttonRef = useRef() - - const setPosition = useCallback(() => { - if (buttonRef.current && buttonRef.current.measure) { - buttonRef.current.measure((fx, fy, width, height, px, py) => { - // console.log(fx, fy, width, height, px, py) - showMenu({ - position: { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }, - index, - }) - }) - } - }, [index, showMenu]) - - return ( - <Button ref={buttonRef} style={{ ...styles.button, backgroundColor: index == longPressIndex ? theme.secondary40 : theme.primary }} key={item.id} onLongPress={setPosition} onPress={() => setTop({ tabId: item.id })}> - <Text style={{ ...styles.buttonText, color: tabId == item.id ? theme.secondary : theme.normal }} numberOfLines={1}>{item.name}</Text> - </Button> - ) -} - -const BoardMenu = ({ visible, buttonPosition, index, hideMenu }) => { - const { t } = useTranslation() - const getListAll = useDispatch('top', 'getListAll') - const createUserList = useDispatch('list', 'createUserList') - const boards = useGetter('top', 'boards') - const setPlayList = useDispatch('player', 'setList') - const sourceId = useGetter('top', 'sourceId') - - const menus = useMemo(() => { - return [ - { action: 'play', label: t('play') }, - { action: 'collect', label: t('collect') }, - ] - }, [t]) - - const handleMenuPress = useCallback(({ action }) => { - hideMenu() - if (action) { - const board = boards[sourceId][index] - getListAll({ id: board.id }).then(list => { - if (!list.length) return - - switch (action) { - case 'play': - setPlayList({ - list: { - list, - id: LIST_ID_PLAY_TEMP, - }, - index: 0, - }) - break - case 'collect': - createUserList({ - name: board.name, - id: `board__${sourceId}__${board.id}`, - list, - source: board.source, - sourceListId: `board__${board.id}`, - isShowToast: true, - }) - toast(t('collect_success')) - break - default: - break - } - }) - } - }, [boards, createUserList, getListAll, hideMenu, index, setPlayList, sourceId, t]) - - return ( - <Menu - menus={menus} - visible={visible} - buttonPosition={buttonPosition} - hideMenu={hideMenu} - onPress={handleMenuPress} - /> - ) -} - - -export default memo(() => { - const setTop = useDispatch('common', 'setTop') - const getBoardsList = useDispatch('top', 'getBoardsList') - const boards = useGetter('top', 'boards') - const sourceId = useGetter('top', 'sourceId') - const tabId = useGetter('top', 'tabId') - const [visible, setVisible] = useState(false) - const [longPressIndex, setLongPressIndex] = useState(-1) - const [buttonPosition, setButtonPosition] = useState({}) - - useEffect(() => { - const list = boards[sourceId] - if (list.length && !list.some(b => b.id == tabId)) { - setTop({ tabId: list[0].id }) - } - }, [boards]) - - useEffect(() => { - let list = boards[sourceId] - if (list.length) { - if (list.some(b => b.id == tabId)) return - setTop({ tabId: list[0].id }) - return - } - getBoardsList().then(() => { - list = boards[sourceId] - if (list.some(b => b.id == tabId)) return - setTop({ tabId: list.length ? list[0].id : null }) - }) - }, [sourceId]) - - const list = useMemo(() => sourceId ? [...boards[sourceId]] : [], [boards, sourceId]) - - const showMenu = useCallback(({ position, index }) => { - setLongPressIndex(index) - setButtonPosition(position) - setVisible(true) - }, []) - const hideMenu = useCallback(() => { - setVisible(false) - setLongPressIndex(-1) - }, [setVisible]) - - return ( - <View style={styles.container}> - <ScrollView style={styles.scrollView} keyboardShouldPersistTaps={'always'}> - <View style={styles.list}> - { - list.map((item, index) => (<Item key={item.id} item={item} index={index} longPressIndex={longPressIndex} tabId={tabId} showMenu={showMenu} setTop={setTop} />)) - } - </View> - </ScrollView> - <BoardMenu visible={visible} buttonPosition={buttonPosition} index={longPressIndex} hideMenu={hideMenu} /> - </View> - ) -}) - - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - flexShrink: 1, - }, - scrollView: { - flexShrink: 1, - }, - list: { - - }, - button: { - paddingLeft: 10, - paddingRight: 10, - paddingTop: 10, - paddingBottom: 10, - }, - buttonText: { - fontSize: 12, - }, -}) diff --git a/src/screens/Home/Top/LeftBar.js b/src/screens/Home/Top/LeftBar.js deleted file mode 100644 index 93fa56c..0000000 --- a/src/screens/Home/Top/LeftBar.js +++ /dev/null @@ -1,33 +0,0 @@ -import React, { useCallback, useMemo } from 'react' -import { View, Text, StyleSheet } from 'react-native' - -import { useGetter, useDispatch } from '@/store' -import SourceSelector from './SourceSelector' -import BoardsList from './BoardsList' -import { BorderWidths } from '@/theme' -import { useLayout } from '@/utils/hooks' - - -export default () => { - const theme = useGetter('common', 'theme') - const { onLayout, ...layout } = useLayout() - - return ( - <View style={{ ...styles.container, borderRightColor: theme.borderColor }} onLayout={onLayout}> - <SourceSelector layout={layout} /> - <BoardsList /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flexDirection: 'column', - width: '26%', - maxWidth: 120, - flexGrow: 0, - flexShrink: 0, - borderRightWidth: BorderWidths.normal, - }, -}) - diff --git a/src/screens/Home/Top/MusicList.js b/src/screens/Home/Top/MusicList.js deleted file mode 100644 index 6cd591f..0000000 --- a/src/screens/Home/Top/MusicList.js +++ /dev/null @@ -1,91 +0,0 @@ -import React, { useState, useCallback, memo, useEffect, useMemo } from 'react' -import { InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import OnlineList from '@/components/OnlineList' -import { LIST_ID_PLAY_TEMP } from '@/config/constant' - -export default memo(() => { - const [isListRefreshing, setIsListRefreshing] = useState(false) - const [visibleLoadingMask, setVisibleLoadingMask] = useState(false) - const listInfo = useGetter('top', 'listInfo') - const isLoading = useGetter('top', 'isLoading') - const isEnd = useGetter('top', 'isEnd') - const getList = useDispatch('top', 'getList') - const tabId = useGetter('top', 'tabId') - const [page, setPage] = useState(0) - const getListAll = useDispatch('top', 'getListAll') - const setPlayList = useDispatch('player', 'setList') - // const getListAll = useDispatch('top', 'getListAll') - // console.log(isLoading) - - const handleRefresh = useCallback(() => { - setIsListRefreshing(true) - setVisibleLoadingMask(true) - setPage(1) - getList({ page: 1, isRefresh: true }).finally(() => { - setVisibleLoadingMask(false) - setIsListRefreshing(false) - }) - }, [getList]) - - const handleLoadMore = useCallback(() => { - if (isLoading || isEnd) return - setPage(listInfo.page + 1) - getList({ page: listInfo.page + 1 }) - }, [isLoading, isEnd, getList, listInfo.page]) - - // useEffect(() => { - // console.log(tabId) - // InteractionManager.runAfterInteractions(() => { - // getList({ page: 1 }).finally(() => { - // setIsListRefreshing(false) - // }) - // }) - // }, [getList]) - - useEffect(() => { - InteractionManager.runAfterInteractions(() => { - setVisibleLoadingMask(true) - setPage(1) - getList({ page: 1 }).finally(() => { - setVisibleLoadingMask(false) - setIsListRefreshing(false) - }) - }) - }, [getList, tabId]) - - const visible = useMemo(() => isLoading && visibleLoadingMask, [isLoading, visibleLoadingMask]) - - const handlePlayList = useCallback(index => { - getListAll({ id: tabId }).then(list => { - if (!list.length) return - setPlayList({ - list: { - list, - id: LIST_ID_PLAY_TEMP, - }, - index, - }) - }) - }, [getListAll, setPlayList, tabId]) - - const listComponent = useMemo(() => { - return ( - <OnlineList - list={listInfo.list} - isEnd={isEnd} - page={page} - isListRefreshing={isListRefreshing} - onRefresh={handleRefresh} - onLoadMore={handleLoadMore} - onPlayList={handlePlayList} - // progressViewOffset={20} - visibleLoadingMask={visible} - isLoading={isLoading} - /> - ) - }, [handleLoadMore, handlePlayList, handleRefresh, isEnd, isListRefreshing, isLoading, listInfo.list, page, visible]) - - return listComponent -}) - diff --git a/src/screens/Home/Top/SourceSelector.js b/src/screens/Home/Top/SourceSelector.js deleted file mode 100644 index ac0a7c7..0000000 --- a/src/screens/Home/Top/SourceSelector.js +++ /dev/null @@ -1,44 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { StyleSheet, Text, View } from 'react-native' - -import DorpDownMenu from '@/components/common/DorpDownMenu' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' - - -export default memo(({ layout }) => { - const setTop = useDispatch('common', 'setTop') - const sourceNameType = useGetter('common', 'sourceNameType') - const sourceList = useGetter('top', 'sources') - const sourceId = useGetter('top', 'sourceId') - const theme = useGetter('common', 'theme') - // const currentSourceName = useGetter('search', 'currentSourceName') - const { t } = useTranslation() - - const sourceList_t = useMemo(() => { - return sourceList.map(s => ({ label: t(`source_${sourceNameType}_${s.id}`), action: s.id })) - }, [sourceNameType, sourceList, t]) - - return ( - <DorpDownMenu - menus={sourceList_t} - width={layout.width} - onPress={({ action }) => setTop({ source: action })} - > - <View style={styles.sourceMenu}> - <Text style={{ color: theme.normal }} numberOfLines={1}>{t(`source_${sourceNameType}_${sourceId}`)}</Text> - </View> - </DorpDownMenu> - ) -}) - - -const styles = StyleSheet.create({ - sourceMenu: { - justifyContent: 'center', - paddingTop: 12, - paddingBottom: 12, - paddingLeft: 10, - paddingRight: 10, - }, -}) diff --git a/src/screens/Home/Top/index.js b/src/screens/Home/Top/index.js deleted file mode 100644 index 245ac0b..0000000 --- a/src/screens/Home/Top/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { useCallback, useRef } from 'react' -import { StyleSheet, View } from 'react-native' - -import MusicList from './MusicList' -import LeftBar from './LeftBar' - - -export default () => { - return ( - <View style={styles.container}> - <LeftBar /> - <MusicList /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - width: '100%', - flex: 1, - flexDirection: 'row', - }, - content: { - flex: 1, - }, -}) diff --git a/src/screens/Home/Vertical/Content.tsx b/src/screens/Home/Vertical/Content.tsx new file mode 100644 index 0000000..0936c67 --- /dev/null +++ b/src/screens/Home/Vertical/Content.tsx @@ -0,0 +1,61 @@ +import React, { useEffect, useRef } from 'react' +import { type DrawerLayoutAndroid } from 'react-native' +// import { getWindowSise, onDimensionChange } from '@/utils/tools' +import DrawerNav from './DrawerNav' +import Header from './Header' +import Main from '../components/Main' +import { useSettingValue } from '@/store/setting/hook' +import { COMPONENT_IDS } from '@/config/constant' +import DrawerLayoutFixed from '@/components/common/DrawerLayoutFixed' +import { scaleSizeW } from '@/utils/pixelRatio' + +const MAX_WIDTH = scaleSizeW(300) + +const Content = () => { + const drawer = useRef<DrawerLayoutAndroid>(null) + const drawerLayoutPosition = useSettingValue('common.drawerLayoutPosition') + + useEffect(() => { + const changeVisible = (visible: boolean) => { + if (visible) { + drawer.current?.openDrawer() + } else { + drawer.current?.closeDrawer() + } + } + + global.app_event.on('changeMenuVisible', changeVisible) + + return () => { + global.app_event.off('changeMenuVisible', changeVisible) + } + }, []) + + const navigationView = () => <DrawerNav /> + // console.log('render drawer content') + + return ( + <DrawerLayoutFixed + ref={drawer} + widthPercentage={0.7} + widthPercentageMax={MAX_WIDTH} + visibleNavNames={[COMPONENT_IDS.home]} + // drawerWidth={width} + drawerPosition={drawerLayoutPosition} + renderNavigationView={navigationView} + > + <Header /> + <Main /> + {/* <View style={styles.container}> + </View> */} + </DrawerLayoutFixed> + ) +} + +// const styles = createStyle({ +// container: { +// flex: 1, +// }, +// }) + +export default Content diff --git a/src/screens/Home/Vertical/DrawerNav.tsx b/src/screens/Home/Vertical/DrawerNav.tsx new file mode 100644 index 0000000..bf77dd3 --- /dev/null +++ b/src/screens/Home/Vertical/DrawerNav.tsx @@ -0,0 +1,137 @@ +import React, { memo } from 'react' +import { ScrollView, StatusBar, TouchableOpacity, View } from 'react-native' +import { useI18n } from '@/lang' +import { useNavActiveId } from '@/store/common/hook' +import { useTheme } from '@/store/theme/hook' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { NAV_MENUS } from '@/config/constant' +import type { InitState } from '@/store/common/state' +// import { navigations } from '@/navigation' +// import commonState from '@/store/common/state' +import { exitApp, setNavActiveId } from '@/core/common' +import Text from '@/components/common/Text' + +const styles = createStyle({ + container: { + flex: 1, + // alignItems: 'center', + // justifyContent: 'center', + // padding: 10, + }, + header: { + paddingTop: 40, + paddingBottom: 50, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + }, + headerText: { + textAlign: 'center', + marginLeft: 16, + }, + menus: { + flex: 1, + }, + list: { + paddingTop: 10, + paddingBottom: 10, + }, + menuItem: { + flexDirection: 'row', + paddingTop: 13, + paddingBottom: 13, + paddingLeft: 25, + paddingRight: 25, + alignItems: 'center', + // backgroundColor: 'rgba(0, 0, 0, 0.2)', + }, + iconContent: { + width: 24, + alignItems: 'center', + }, + text: { + paddingLeft: 20, + // fontWeight: '500', + }, +}) + +const Header = () => { + const theme = useTheme() + return ( + <View style={{ paddingTop: StatusBar.currentHeight, backgroundColor: theme['c-primary-light-700-alpha-500'] }}> + <View style={styles.header}> + <Icon name="logo" color={theme['c-primary-dark-100-alpha-300']} size={28} /> + <Text style={styles.headerText} size={28} color={theme['c-primary-dark-100-alpha-300']}>LX Music</Text> + </View> + </View> + ) +} + +type IdType = InitState['navActiveId'] | 'nav_exit' + +const MenuItem = ({ id, icon, onPress }: { + id: IdType + icon: string + onPress: (id: IdType) => void +}) => { + const t = useI18n() + const activeId = useNavActiveId() + const theme = useTheme() + + return activeId == id + ? <View style={styles.menuItem}> + <View style={styles.iconContent}> + <Icon name={icon} size={20} color={theme['c-primary-font-active']} /> + </View> + <Text style={styles.text} color={theme['c-primary-font']}>{t(id)}</Text> + </View> + : <TouchableOpacity style={styles.menuItem} onPress={() => { onPress(id) }}> + <View style={styles.iconContent}> + <Icon name={icon} size={20} color={theme['c-font-label']} /> + </View> + <Text style={styles.text}>{t(id)}</Text> + </TouchableOpacity> +} + +export default memo(() => { + const theme = useTheme() + // console.log('render drawer nav') + + const handlePress = (id: IdType) => { + if (id == 'nav_exit') { + exitApp() + return + } + // switch (id) { + // case 'nav_search': + // break + // case 'nav_songlist': + // break + // case 'nav_top': + // break + // case 'nav_love': + // break + // case 'nav_setting': + // // void InteractionManager.runAfterInteractions(() => { + // // navigations.pushSettingScreen(commonState.componentIds.home) + // // }) + // return + // } + global.app_event.changeMenuVisible(false) + setNavActiveId(id) + } + + return ( + <View style={{ ...styles.container, backgroundColor: theme['c-content-background'] }}> + <Header /> + <ScrollView style={styles.menus}> + <View style={styles.list}> + {NAV_MENUS.map(menu => <MenuItem key={menu.id} id={menu.id} icon={menu.icon} onPress={handlePress} />)} + </View> + </ScrollView> + <MenuItem id="nav_exit" icon="exit2" onPress={handlePress} /> + </View> + ) +}) + diff --git a/src/screens/Home/Vertical/Header.tsx b/src/screens/Home/Vertical/Header.tsx new file mode 100644 index 0000000..33d09e6 --- /dev/null +++ b/src/screens/Home/Vertical/Header.tsx @@ -0,0 +1,157 @@ +import React from 'react' +import { View, TouchableOpacity } from 'react-native' +// import Button from '@/components/common/Button' +// import { navigations } from '@/navigation' +// import { BorderWidths } from '@/theme' +import { useTheme } from '@/store/theme/hook' +import { useNavActiveId } from '@/store/common/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import { Icon } from '@/components/common/Icon' +import Text from '@/components/common/Text' +import StatusBar from '@/components/common/StatusBar' +import { useSettingValue } from '@/store/setting/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +import { HEADER_HEIGHT } from '@/config/constant' +import { type InitState as CommonState } from '@/store/common/state' +import SearchTypeSelector from '@/screens/Home/Views/Search/SearchTypeSelector' + +const headerComponents: Partial<Record<CommonState['navActiveId'], React.ReactNode>> = { + nav_search: <SearchTypeSelector />, +} + + +// const LeftTitle = () => { +// const id = useNavActiveId() +// const t = useI18n() + +// return <Text style={styles.leftTitle} size={18}>{t(id)}</Text> +// } +const LeftHeader = () => { + const theme = useTheme() + const id = useNavActiveId() + const t = useI18n() + + const openMenu = () => { + global.app_event.changeMenuVisible(true) + } + + return ( + <View style={{ + ...styles.container, + height: scaleSizeH(HEADER_HEIGHT) + StatusBar.currentHeight, + paddingTop: StatusBar.currentHeight, + }}> + <View style={styles.left}> + <TouchableOpacity style={styles.btn} onPress={openMenu}> + <Icon color={theme['c-font']} name="menu" size={18} /> + </TouchableOpacity> + <TouchableOpacity style={styles.titleBtn} onPress={openMenu}> + <Text style={styles.leftTitle} size={18}>{t(id)}</Text> + </TouchableOpacity> + </View> + {headerComponents[id] ?? null} + + {/* <TouchableOpacity style={styles.btn} onPress={openSetting}> + <Icon style={{ ...styles.btnText, color: theme['c-font'] }} name="setting" size={styles.btnText.fontSize} /> + </TouchableOpacity> */} + </View> + ) +} + + +// const RightTitle = () => { +// const id = useNavActiveId() +// const t = useI18n() + +// return <Text style={styles.rightTitle} size={18}>{t(id)}</Text> +// } +const RightHeader = () => { + const theme = useTheme() + const t = useI18n() + const id = useNavActiveId() + + const openMenu = () => { + global.app_event.changeMenuVisible(true) + } + return ( + <View style={{ + ...styles.container, + height: scaleSizeH(HEADER_HEIGHT) + StatusBar.currentHeight, + paddingTop: StatusBar.currentHeight, + }}> + <View style={styles.left}> + <TouchableOpacity style={styles.titleBtn} onPress={openMenu}> + <Text style={styles.rightTitle} size={18}>{t(id)}</Text> + </TouchableOpacity> + </View> + {headerComponents[id] ?? null} + <TouchableOpacity style={styles.btn} onPress={openMenu}> + <Icon color={theme['c-font']} name="menu" size={18} /> + </TouchableOpacity> + {/* <TouchableOpacity style={styles.btn} onPress={openSetting}> + <Icon style={{ ...styles.btnText, color: theme['c-font'] }} name="setting" size={styles.btnText.fontSize} /> + </TouchableOpacity> */} + </View> + ) +} + +const Header = () => { + const drawerLayoutPosition = useSettingValue('common.drawerLayoutPosition') + + return ( + <> + <StatusBar /> + { + drawerLayoutPosition == 'left' + ? <LeftHeader /> + : <RightHeader /> + } + + </> + ) +} + + +const styles = createStyle({ + container: { + // width: '100%', + paddingRight: 5, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + // backgroundColor: 'rgba(0,0,0,0.1)', + zIndex: 10, + }, + left: { + flex: 1, + flexDirection: 'row', + paddingLeft: 5, + alignItems: 'center', + height: '100%', + }, + btn: { + // flex: 1, + width: HEADER_HEIGHT, + // backgroundColor: 'rgba(0,0,0,0.1)', + alignItems: 'center', + justifyContent: 'center', + height: '100%', + }, + titleBtn: { + flex: 1, + // backgroundColor: 'rgba(0,0,0,0.1)', + height: '100%', + justifyContent: 'center', + }, + leftTitle: { + paddingLeft: 14, + paddingRight: 16, + }, + rightTitle: { + paddingLeft: 16, + paddingRight: 16, + }, +}) + +export default Header diff --git a/src/screens/Home/Vertical/index.tsx b/src/screens/Home/Vertical/index.tsx new file mode 100644 index 0000000..9943d7c --- /dev/null +++ b/src/screens/Home/Vertical/index.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import Content from './Content' +import PlayerBar from '../components/PlayerBar' + +export default () => { + return ( + <> + <Content /> + <PlayerBar /> + </> + ) +} diff --git a/src/screens/Home/Download/index.js b/src/screens/Home/Views/Download/index.js similarity index 100% rename from src/screens/Home/Download/index.js rename to src/screens/Home/Views/Download/index.js diff --git a/src/screens/Home/Views/Leaderboard/BoardsList/List.tsx b/src/screens/Home/Views/Leaderboard/BoardsList/List.tsx new file mode 100644 index 0000000..957ee08 --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/BoardsList/List.tsx @@ -0,0 +1,72 @@ +import React, { forwardRef, useImperativeHandle, useState } from 'react' +import { View, ScrollView } from 'react-native' + +import { createStyle } from '@/utils/tools' +import { type Position } from './ListMenu' +import ListItem, { type ListItemProps } from './ListItem' +import { type BoardItem } from '@/store/leaderboard/state' + +export interface ListProps { + onBoundChange: (listId: string) => void + onShowMenu: (info: { listId: string, name: string, index: number }, position: Position) => void +} +export interface ListType { + setList: (list: BoardItem[], activeId: string) => void + hideMenu: () => void +} + +export default forwardRef<ListType, ListProps>(({ onBoundChange, onShowMenu }, ref) => { + const [activeId, setActiveId] = useState('') + const [longPressIndex, setLongPressIndex] = useState(-1) + const [list, setList] = useState<BoardItem[]>([]) + + useImperativeHandle(ref, () => ({ + setList(list, activeId) { + setList(list) + setActiveId(activeId) + }, + hideMenu() { + setLongPressIndex(-1) + }, + }), []) + + const handleBoundChange = (item: BoardItem) => { + setActiveId(item.id) + onBoundChange(item.id) + } + + const handleShowMenu: ListItemProps['onShowMenu'] = (listId, name, index, position: Position) => { + setLongPressIndex(index) + onShowMenu({ listId, name, index }, position) + } + + return ( + <ScrollView style={styles.scrollView} keyboardShouldPersistTaps={'always'}> + <View> + { + list.map((item, index) => { + return ( + <ListItem + key={item.id} + item={item} + index={index} + longPressIndex={longPressIndex} + activeId={activeId} + onShowMenu={handleShowMenu} + onBoundChange={handleBoundChange} + /> + ) + }) + } + </View> + </ScrollView> + ) +}) + + +const styles = createStyle({ + scrollView: { + flexShrink: 1, + }, +}) + diff --git a/src/screens/Home/Views/Leaderboard/BoardsList/ListItem.tsx b/src/screens/Home/Views/Leaderboard/BoardsList/ListItem.tsx new file mode 100644 index 0000000..15d4e6c --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/BoardsList/ListItem.tsx @@ -0,0 +1,54 @@ +import React, { useCallback, useRef } from 'react' +import Text from '@/components/common/Text' +import { useTheme } from '@/store/theme/hook' +import Button, { type BtnType } from '@/components/common/Button' +import { createStyle } from '@/utils/tools' +import { type BoardItem } from '@/store/leaderboard/state' + +// index={index} +// longPressIndex={longPressIndex} +// activeId={activeId} +// showMenu={showMenu} +// onBoundChange={handleBoundChange} +export interface ListItemProps { + item: BoardItem + index: number + longPressIndex: number + activeId: string + onShowMenu: (id: string, name: string, index: number, position: { x: number, y: number, w: number, h: number }) => void + onBoundChange: (item: BoardItem) => void +} + +export default ({ item, activeId, index, longPressIndex, onBoundChange, onShowMenu }: ListItemProps) => { + const theme = useTheme() + const buttonRef = useRef<BtnType>(null) + + const setPosition = useCallback(() => { + if (buttonRef.current?.measure) { + buttonRef.current.measure((fx, fy, width, height, px, py) => { + // console.log(fx, fy, width, height, px, py) + onShowMenu(item.id, item.name, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) + }) + } + }, [index, item, onShowMenu]) + + return ( + <Button + ref={buttonRef} + style={{ ...styles.button, backgroundColor: index == longPressIndex ? theme['c-button-background-active'] : undefined }} + key={item.id} onLongPress={setPosition} + onPress={() => { onBoundChange(item) }} + > + <Text size={14} color={activeId == item.id ? theme['c-primary-font-active'] : theme['c-font']} numberOfLines={1}>{item.name}</Text> + </Button> + ) +} + +const styles = createStyle({ + button: { + paddingLeft: 10, + paddingRight: 10, + paddingTop: 10, + paddingBottom: 10, + }, +}) diff --git a/src/screens/Home/Views/Leaderboard/BoardsList/ListMenu.tsx b/src/screens/Home/Views/Leaderboard/BoardsList/ListMenu.tsx new file mode 100644 index 0000000..f4aa97b --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/BoardsList/ListMenu.tsx @@ -0,0 +1,71 @@ +import React, { useMemo, useRef, useImperativeHandle, forwardRef, useState } from 'react' +import { useI18n } from '@/lang' +import Menu, { MenuType, Position } from '@/components/common/Menu' + +export interface SelectInfo { + listId: string + name: string + index: number +} +const initSelectInfo = {} + +export interface ListMenuProps { + onPlay: (selectInfo: SelectInfo) => void + onCollect: (selectInfo: SelectInfo) => void + onHideMenu: () => void +} +export interface ListMenuType { + show: (selectInfo: SelectInfo, position: Position) => void +} + +export type { + Position, +} + +export default forwardRef<ListMenuType, ListMenuProps>((props, ref) => { + const t = useI18n() + const [visible, setVisible] = useState(false) + const menuRef = useRef<MenuType>(null) + const selectInfoRef = useRef<SelectInfo>(initSelectInfo as SelectInfo) + + useImperativeHandle(ref, () => ({ + show(selectInfo, position) { + selectInfoRef.current = selectInfo + if (visible) menuRef.current?.show(position) + else { + setVisible(true) + requestAnimationFrame(() => { + menuRef.current?.show(position) + }) + } + }, + })) + + const menus = useMemo(() => { + return [ + { action: 'play', label: t('play') }, + { action: 'collect', label: t('collect') }, + ] as const + }, [t]) + + const handleMenuPress = ({ action }: typeof menus[number]) => { + const selectInfo = selectInfoRef.current + switch (action) { + case 'play': + props.onPlay(selectInfo) + break + case 'collect': + props.onCollect(selectInfo) + break + default: + break + } + } + + return ( + visible + ? <Menu ref={menuRef} menus={menus} onPress={handleMenuPress} onHide={props.onHideMenu} /> + : null + ) +}) + diff --git a/src/screens/Home/Views/Leaderboard/BoardsList/index.tsx b/src/screens/Home/Views/Leaderboard/BoardsList/index.tsx new file mode 100644 index 0000000..2617a81 --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/BoardsList/index.tsx @@ -0,0 +1,57 @@ +import React, { forwardRef, useImperativeHandle, useRef } from 'react' +import { StyleSheet, View } from 'react-native' +import List, { type ListType, type ListProps } from './List' +import ListMenu, { type ListMenuType, type Position } from './ListMenu' +import { type BoardItem } from '@/store/leaderboard/state' + + +export interface BoardsListProps { + onBoundChange: (listId: string) => void + onPlay: (listId: string) => void + onCollect: (listId: string, name: string) => void +} +export interface BoardsListType { + setList: (list: BoardItem[], activeId: string) => void +} + +export default forwardRef<BoardsListType, BoardsListProps>(({ onBoundChange, onPlay, onCollect }, ref) => { + const listRef = useRef<ListType>(null) + const listMenuRef = useRef<ListMenuType>(null) + + useImperativeHandle(ref, () => ({ + setList(list, listId) { + listRef.current?.setList(list, listId) + }, + }), []) + + const handleShowMenu: ListProps['onShowMenu'] = ({ listId, name, index }, position: Position) => { + listMenuRef.current?.show({ + listId, + index, + name, + }, position) + } + + return ( + <View style={styles.container}> + <List + ref={listRef} + onBoundChange={onBoundChange} + onShowMenu={handleShowMenu} /> + <ListMenu + ref={listMenuRef} + onHideMenu={() => listRef.current?.hideMenu()} + onPlay={({ listId }) => { onPlay(listId) }} + onCollect={({ listId, name }) => { onCollect(listId, name) }} + /> + </View> + ) +}) + + +const styles = StyleSheet.create({ + container: { + flexGrow: 1, + flexShrink: 1, + }, +}) diff --git a/src/screens/Home/Views/Leaderboard/LeftBar.tsx b/src/screens/Home/Views/Leaderboard/LeftBar.tsx new file mode 100644 index 0000000..4fb7b4a --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/LeftBar.tsx @@ -0,0 +1,97 @@ +import React, { forwardRef, useImperativeHandle, useRef } from 'react' +import { View } from 'react-native' + +import SourceSelector, { + type SourceSelectorType as _SourceSelectorType, + // type SourceSelectorProps as _SourceSelectorProps, +} from '@/components/SourceSelector' +import BoardsList, { type BoardsListType, type BoardsListProps } from './BoardsList' +import { BorderWidths } from '@/theme' +import { createStyle } from '@/utils/tools' +import { handleCollect, handlePlay } from './listAction' +import boardState, { type InitState } from '@/store/leaderboard/state' +import { useTheme } from '@/store/theme/hook' +import { getBoardsList } from '@/core/leaderboard' + +type Sources = Readonly<InitState['sources']> +// type SourceSelectorProps = _SourceSelectorProps<Sources> +type SourceSelectorType = _SourceSelectorType<Sources> + +export interface LeftBarProps { + onChangeList: (source: LX.OnlineSource, id: string) => void +} + +export interface LeftBarType { + setBound: (source: LX.OnlineSource, id: string) => void +} + +export default forwardRef<LeftBarType, LeftBarProps>(({ onChangeList }, ref) => { + const theme = useTheme() + const sourceSelectorRef = useRef<SourceSelectorType>(null) + const boardsListRef = useRef<BoardsListType>(null) + const boundInfo = useRef<{ source: LX.OnlineSource, id: string | null }>({ source: 'kw', id: null }) + useImperativeHandle(ref, () => ({ + setBound(source, listId) { + boundInfo.current = { source, id: listId } + sourceSelectorRef.current?.setSourceList(boardState.sources, source) + void getBoardsList(source).then(list => { + boardsListRef.current?.setList(list, listId) + }) + }, + }), []) + + + const onSourceChange = (source: LX.OnlineSource) => { + boundInfo.current.source = source + void getBoardsList(source).then(list => { + const id = list[0].id + requestAnimationFrame(() => { + boardsListRef.current?.setList(list, id) + requestAnimationFrame(() => { + onChangeList(source, id) + }) + }) + }) + } + const onBoundChange: BoardsListProps['onBoundChange'] = (id) => { + boundInfo.current.id = id + onChangeList(boundInfo.current.source, id) + } + const onPlay: BoardsListProps['onPlay'] = (id) => { + boundInfo.current.id = id + void handlePlay(id, boardState.listDetailInfo.list) + } + const onCollect: BoardsListProps['onCollect'] = (id, name) => { + boundInfo.current.id = id + void handleCollect(id, name, boundInfo.current.source) + } + + return ( + <View style={{ ...styles.container, borderRightColor: theme['c-list-header-border-bottom'] }}> + <View style={styles.selector}> + <SourceSelector ref={sourceSelectorRef} onSourceChange={onSourceChange} /> + </View> + <BoardsList + ref={boardsListRef} + onBoundChange={onBoundChange} + onPlay={onPlay} + onCollect={onCollect} + /> + </View> + ) +}) + +const styles = createStyle({ + container: { + flexDirection: 'column', + width: '26%', + maxWidth: 180, + flexGrow: 0, + flexShrink: 0, + borderRightWidth: BorderWidths.normal, + }, + selector: { + height: 38, + }, +}) + diff --git a/src/screens/Home/Views/Leaderboard/MusicList.tsx b/src/screens/Home/Views/Leaderboard/MusicList.tsx new file mode 100644 index 0000000..0c1d6b2 --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/MusicList.tsx @@ -0,0 +1,91 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react' +import OnlineList, { type OnlineListType, type OnlineListProps } from '@/components/OnlineList' +import { getListDetail, setListDetail, setListDetailInfo } from '@/core/leaderboard' +import boardState from '@/store/leaderboard/state' +import { handlePlay } from './listAction' + +// export type MusicListProps = Pick<OnlineListProps, +// 'onLoadMore' +// | 'onPlayList' +// | 'onRefresh' +// > + +export interface MusicListType { + loadList: (source: LX.OnlineSource, listId: string) => void +} + +export default forwardRef<MusicListType, {}>((props, ref) => { + const listRef = useRef<OnlineListType>(null) + const isUnmountedRef = useRef(false) + useImperativeHandle(ref, () => ({ + loadList(source, id) { + const listDetailInfo = boardState.listDetailInfo + listRef.current?.setList([]) + if (listDetailInfo.id == id && listDetailInfo.source == source && listDetailInfo.list.length) { + requestAnimationFrame(() => { + listRef.current?.setList(listDetailInfo.list) + }) + } else { + listRef.current?.setStatus('loading') + const page = 1 + setListDetailInfo(id) + return getListDetail(id, page).then((listDetail) => { + const result = setListDetail(listDetail, id, page) + if (isUnmountedRef.current) return + requestAnimationFrame(() => { + listRef.current?.setList(result.list) + listRef.current?.setStatus(boardState.listDetailInfo.maxPage == page ? 'end' : 'idle') + }) + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + }, + }), []) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + + const handlePlayList: OnlineListProps['onPlayList'] = (index) => { + const listDetailInfo = boardState.listDetailInfo + // console.log(boardState.listDetailInfo) + void handlePlay(listDetailInfo.id, listDetailInfo.list, index) + } + const handleRefresh: OnlineListProps['onRefresh'] = () => { + const page = 1 + listRef.current?.setStatus('refreshing') + getListDetail(boardState.listDetailInfo.id, page, true).then((listDetail) => { + const result = setListDetail(listDetail, boardState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(result.list) + listRef.current?.setStatus(boardState.listDetailInfo.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + const handleLoadMore: OnlineListProps['onLoadMore'] = () => { + listRef.current?.setStatus('loading') + const page = boardState.listDetailInfo.list.length ? boardState.listDetailInfo.page + 1 : 1 + getListDetail(boardState.listDetailInfo.id, page).then((listDetail) => { + const result = setListDetail(listDetail, boardState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(result.list) + listRef.current?.setStatus(boardState.listDetailInfo.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + + return <OnlineList + ref={listRef} + onPlayList={handlePlayList} + onRefresh={handleRefresh} + onLoadMore={handleLoadMore} + /> +}) + diff --git a/src/screens/Home/Views/Leaderboard/index.tsx b/src/screens/Home/Views/Leaderboard/index.tsx new file mode 100644 index 0000000..f444b52 --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/index.tsx @@ -0,0 +1,62 @@ +import React, { useEffect, useRef } from 'react' +import { View } from 'react-native' +import { createStyle } from '@/utils/tools' + +import LeftBar, { type LeftBarType, type LeftBarProps } from './LeftBar' +import MusicList, { type MusicListType } from './MusicList' +import { getLeaderboardSetting, saveLeaderboardSetting } from '@/utils/data' +// import { BorderWidths } from '@/theme' +// import { useTheme } from '@/store/theme/hook' + + +export default () => { + const leftBarRef = useRef<LeftBarType>(null) + const musicListRef = useRef<MusicListType>(null) + const isUnmountedRef = useRef(false) + // const theme = useTheme() + + const handleChangeBound: LeftBarProps['onChangeList'] = (source, id) => { + musicListRef.current?.loadList(source, id) + void saveLeaderboardSetting({ + source, + boardId: id, + }) + } + + useEffect(() => { + isUnmountedRef.current = false + void getLeaderboardSetting().then(({ source, boardId }) => { + leftBarRef.current?.setBound(source, boardId) + musicListRef.current?.loadList(source, boardId) + }) + + return () => { + isUnmountedRef.current = true + } + }, []) + + + return ( + <View style={styles.container}> + <LeftBar + ref={leftBarRef} + onChangeList={handleChangeBound} + /> + <MusicList + ref={musicListRef} + /> + </View> + ) +} + +const styles = createStyle({ + container: { + width: '100%', + flex: 1, + flexDirection: 'row', + // borderTopWidth: BorderWidths.normal, + }, + content: { + flex: 1, + }, +}) diff --git a/src/screens/Home/Views/Leaderboard/listAction.ts b/src/screens/Home/Views/Leaderboard/listAction.ts new file mode 100644 index 0000000..831a989 --- /dev/null +++ b/src/screens/Home/Views/Leaderboard/listAction.ts @@ -0,0 +1,57 @@ +import { createList, setTempList } from '@/core/list' +import { playList } from '@/core/player/player' +import { getListDetail, getListDetailAll } from '@/core/leaderboard' +import { LIST_IDS } from '@/config/constant' +import listState from '@/store/list/state' +import syncSourceList from '@/core/syncSourceList' +import { confirmDialog, toast } from '@/utils/tools' + + +const getListId = (id: string) => `board__${id}` + +export const handlePlay = async(id: string, list?: LX.Music.MusicInfoOnline[], index = 0) => { + let isPlayingList = false + // console.log(list) + const listId = getListId(id) + if (!list?.length) list = (await getListDetail(id, 1)).list + if (list?.length) { + await setTempList(listId, [...list]) + void playList(LIST_IDS.TEMP, index) + isPlayingList = true + } + const fullList = await getListDetailAll(id) + if (!fullList.length) return + if (isPlayingList) { + if (listState.tempListMeta.id == listId) { + await setTempList(listId, [...fullList]) + } + } else { + await setTempList(listId, [...fullList]) + void playList(LIST_IDS.TEMP, index) + } +} + +export const handleCollect = async(id: string, name: string, source: LX.OnlineSource) => { + const listId = getListId(id) + const targetList = listState.userList.find(l => l.id == listId) + if (targetList) { + const confirm = await confirmDialog({ + message: global.i18n.t('duplicate_list_tip', { name: targetList.name }), + cancelButtonText: global.i18n.t('list_import_part_button_cancel'), + confirmButtonText: global.i18n.t('confirm_button_text'), + }) + if (!confirm) return + void syncSourceList(targetList) + return + } + + const list = await getListDetailAll(id) + await createList({ + name, + id: listId, + list, + source, + sourceListId: listId, + }) + toast(global.i18n.t('collect_success')) +} diff --git a/src/screens/Home/Views/Mylist/MusicList/ActiveList.tsx b/src/screens/Home/Views/Mylist/MusicList/ActiveList.tsx new file mode 100644 index 0000000..77829b9 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/ActiveList.tsx @@ -0,0 +1,86 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react' +import { TouchableOpacity } from 'react-native' + +import { Icon } from '@/components/common/Icon' +import { BorderWidths } from '@/theme' +import { useTheme } from '@/store/theme/hook' +import { useActiveListId } from '@/store/list/hook' +import listState from '@/store/list/state' +import { createStyle } from '@/utils/tools' +import { getListPrevSelectId } from '@/utils/data' +import { setActiveList } from '@/core/list' +import Text from '@/components/common/Text' +import { LIST_IDS } from '@/config/constant' + +export interface ActiveListProps { + onShowSearchBar: () => void +} +export interface ActiveListType { + setVisibleBar: (visible: boolean) => void +} + +export default forwardRef<ActiveListType, ActiveListProps>(({ onShowSearchBar }, ref) => { + const theme = useTheme() + const currentListId = useActiveListId() + let currentListName = currentListId == LIST_IDS.TEMP ? global.i18n.t(`list_${LIST_IDS.TEMP}`) : listState.allList.find(l => l.id === currentListId)?.name ?? '' + const [visibleBar, setVisibleBar] = useState(true) + + useImperativeHandle(ref, () => ({ + setVisibleBar(visible) { + setVisibleBar(visible) + }, + })) + + const showList = () => { + global.app_event.changeLoveListVisible(true) + } + + useEffect(() => { + void getListPrevSelectId().then((id) => { + void setActiveList(id) + }) + }, []) + + return ( + <TouchableOpacity onPress={showList} style={{ ...styles.currentList, opacity: visibleBar ? 1 : 0, borderBottomColor: theme['c-border-background'] }}> + <Icon style={styles.currentListIcon} color={theme['c-button-font']} name="chevron-right" size={12} /> + <Text numberOfLines={1} style={styles.currentListText} color={theme['c-button-font']}>{currentListName}</Text> + <TouchableOpacity style={styles.currentListBtns} onPress={onShowSearchBar}> + <Icon color={theme['c-button-font']} name="search-2" /> + </TouchableOpacity> + </TouchableOpacity> + ) +}) + + +const styles = createStyle({ + currentList: { + flexDirection: 'row', + paddingRight: 2, + height: 36, + alignItems: 'center', + borderBottomWidth: BorderWidths.normal, + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + currentListIcon: { + paddingLeft: 15, + paddingRight: 10, + // paddingTop: 10, + // paddingBottom: 0, + }, + currentListText: { + flex: 1, + // minWidth: 70, + // paddingLeft: 10, + paddingRight: 10, + // paddingTop: 10, + // paddingBottom: 10, + }, + currentListBtns: { + width: 46, + justifyContent: 'center', + alignItems: 'center', + height: '100%', + // backgroundColor: 'rgba(0,0,0,0.2)', + }, +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/List.tsx b/src/screens/Home/Views/Mylist/MusicList/List.tsx new file mode 100644 index 0000000..07dcb74 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/List.tsx @@ -0,0 +1,283 @@ +import { playList } from '@/core/player/player' +import React, { useMemo, useRef, useState, useEffect, forwardRef, useImperativeHandle } from 'react' +import { FlatList, type NativeScrollEvent, type NativeSyntheticEvent, InteractionManager, type FlatListProps } from 'react-native' + +import listState from '@/store/list/state' +import playerState from '@/store/player/state' +import { getListPosition, getListPrevSelectId, saveListPosition } from '@/utils/data' +// import { useMusicList } from '@/store/list/hook' +import { getListMusics, setActiveList } from '@/core/list' +import ListItem, { ITEM_HEIGHT } from './ListItem' +import { createStyle } from '@/utils/tools' +import { usePlayInfo, usePlayMusicInfo } from '@/store/player/hook' +import type { Position } from './ListMenu' +import type { SelectMode } from './MultipleModeBar' +import { useActiveListId } from '@/store/list/hook' + +type FlatListType = FlatListProps<LX.Music.MusicInfo> + +export interface ListProps { + onShowMenu: (musicInfo: LX.Music.MusicInfo, index: number, position: Position) => void + onMuiltSelectMode: () => void + onSelectAll: (isAll: boolean) => void +} +export interface ListType { + setIsMultiSelectMode: (isMultiSelectMode: boolean) => void + setSelectMode: (mode: SelectMode) => void + selectAll: (isAll: boolean) => void + getSelectedList: () => LX.List.ListMusics + scrollToInfo: (info: LX.Music.MusicInfo) => void +} + +const usePlayIndex = () => { + const activeListId = useActiveListId() + const playMusicInfo = usePlayMusicInfo() + const playInfo = usePlayInfo() + + const playIndex = useMemo(() => { + return playMusicInfo.listId == activeListId ? playInfo.playIndex : -1 + }, [activeListId, playInfo.playIndex, playMusicInfo.listId]) + + return playIndex +} + + +const List = forwardRef<ListType, ListProps>(({ onShowMenu, onMuiltSelectMode, onSelectAll }, ref) => { + // const t = useI18n() + const flatListRef = useRef<FlatList>(null) + const [currentList, setList] = useState<LX.List.ListMusics>([]) + const listFirstScrollRef = useRef(false) + const isMultiSelectModeRef = useRef(false) + const selectModeRef = useRef<SelectMode>('single') + const prevSelectIndexRef = useRef(-1) + const [selectedList, setSelectedList] = useState<LX.List.ListMusics>([]) + const selectedListRef = useRef<LX.List.ListMusics>([]) + const currentListIdRef = useRef('') + const waitJumpListPositionRef = useRef(false) + // console.log('render music list') + + useImperativeHandle(ref, () => ({ + setIsMultiSelectMode(isMultiSelectMode) { + isMultiSelectModeRef.current = isMultiSelectMode + if (!isMultiSelectMode) { + prevSelectIndexRef.current = -1 + handleUpdateSelectedList([]) + } + }, + setSelectMode(mode) { + selectModeRef.current = mode + }, + selectAll(isAll) { + let list: LX.List.ListMusics + if (isAll) { + list = [...currentList] + } else { + list = [] + } + selectedListRef.current = list + setSelectedList(list) + }, + getSelectedList() { + return selectedListRef.current + }, + scrollToInfo(info) { + void getListMusics(listState.activeListId).then((list) => { + const index = list.findIndex(m => m.id == info.id) + if (index < 0) return + flatListRef.current?.scrollToIndex({ index, viewPosition: 0.3, animated: true }) + }) + }, + })) + + useEffect(() => { + let isUpdateingList = true + const updateList = (id: string) => { + if (currentListIdRef.current == id) return + isUpdateingList = true + setList([]) + currentListIdRef.current = id + void Promise.all([getListMusics(id), getListPosition(id)]).then(([list, position]) => { + requestAnimationFrame(() => { + void InteractionManager.runAfterInteractions(() => { + if (currentListIdRef.current != id) return + selectedListRef.current = [] + setSelectedList([]) + setList([...list]) + requestAnimationFrame(() => { + isUpdateingList = false + listFirstScrollRef.current = true + if (waitJumpListPositionRef.current) { + waitJumpListPositionRef.current = false + if (playerState.playMusicInfo.listId == id && playerState.playInfo.playIndex > -1) { + try { + flatListRef.current?.scrollToIndex({ index: playerState.playInfo.playIndex, viewPosition: 0.3, animated: false }) + return + } catch {} + } + } + flatListRef.current?.scrollToOffset({ offset: position, animated: false }) + }) + }) + }) + }) + } + const handleChange = (ids: string[]) => { + if (!ids.includes(listState.activeListId)) return + const id = listState.activeListId + void getListMusics(id).then((list) => { + if (currentListIdRef.current != id) return + selectedListRef.current = [] + setSelectedList([]) + setList([...list]) + }) + } + + const handleJumpPosition = () => { + requestAnimationFrame(() => { + const listId = playerState.playMusicInfo.listId + if (!listId) return + if (listId != listState.activeListId) { + setActiveList(listId) + if (currentListIdRef.current != listId) waitJumpListPositionRef.current = true + } else if (playerState.playInfo.playIndex > -1) { + if (isUpdateingList) waitJumpListPositionRef.current = true + else { + try { + flatListRef.current?.scrollToIndex({ index: playerState.playInfo.playIndex, viewPosition: 0.3, animated: true }) + } catch {} + } + } + }) + } + if (global.lx.jumpMyListPosition) { + global.lx.jumpMyListPosition = false + if (playerState.playMusicInfo.listId) { + waitJumpListPositionRef.current = true + updateList(playerState.playMusicInfo.listId) + } else void getListPrevSelectId().then(updateList) + } else void getListPrevSelectId().then(updateList) + + global.state_event.on('mylistToggled', updateList) + global.app_event.on('myListMusicUpdate', handleChange) + global.app_event.on('jumpListPosition', handleJumpPosition) + + return () => { + global.state_event.off('mylistToggled', updateList) + global.app_event.off('myListMusicUpdate', handleChange) + global.app_event.off('jumpListPosition', handleJumpPosition) + } + }, []) + + const activeIndex = usePlayIndex() + const handlePlay = (index: number) => { + void playList(listState.activeListId, index) + } + + const handleUpdateSelectedList = (newList: LX.List.ListMusics) => { + if (selectedListRef.current.length && newList.length == currentList.length) onSelectAll(true) + else if (selectedListRef.current.length == currentList.length) onSelectAll(false) + selectedListRef.current = newList + setSelectedList(newList) + } + const handleSelect = (item: LX.Music.MusicInfo, pressIndex: number) => { + let newList: LX.List.ListMusics + if (selectModeRef.current == 'single') { + prevSelectIndexRef.current = pressIndex + const index = selectedListRef.current.indexOf(item) + if (index < 0) { + newList = [...selectedListRef.current, item] + } else { + newList = [...selectedListRef.current] + newList.splice(index, 1) + } + } else { + if (selectedListRef.current.length) { + const prevIndex = prevSelectIndexRef.current + const currentIndex = pressIndex + if (prevIndex == currentIndex) { + newList = [] + } else if (currentIndex > prevIndex) { + newList = currentList.slice(prevIndex, currentIndex + 1) + } else { + newList = currentList.slice(currentIndex, prevIndex + 1) + newList.reverse() + } + } else { + newList = [item] + prevSelectIndexRef.current = pressIndex + } + } + + handleUpdateSelectedList(newList) + } + + const handlePress = (item: LX.Music.MusicInfo, index: number) => { + if (isMultiSelectModeRef.current) { + handleSelect(item, index) + } else { + handlePlay(index) + } + } + + const handleLongPress = (item: LX.Music.MusicInfo, index: number) => { + if (isMultiSelectModeRef.current) return + prevSelectIndexRef.current = index + handleUpdateSelectedList([item]) + onMuiltSelectMode() + } + + const handleScroll = ({ nativeEvent }: NativeSyntheticEvent<NativeScrollEvent>) => { + if (listFirstScrollRef.current) { + listFirstScrollRef.current = false + return + } + void saveListPosition(listState.activeListId, nativeEvent.contentOffset.y) + } + + + const renderItem: FlatListType['renderItem'] = ({ item, index }) => ( + <ListItem + item={item} + index={index} + activeIndex={activeIndex} + onPress={handlePress} + onLongPress={handleLongPress} + onShowMenu={onShowMenu} + selectedList={selectedList} + /> + ) + const getkey: FlatListType['keyExtractor'] = item => item.id + const getItemLayout: FlatListType['getItemLayout'] = (data, index) => { + return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index } + } + + return ( + <FlatList + ref={flatListRef} + onScroll={handleScroll} + style={styles.list} + data={currentList} + maxToRenderPerBatch={4} + // updateCellsBatchingPeriod={80} + windowSize={8} + removeClippedSubviews={true} + initialNumToRender={12} + renderItem={renderItem} + keyExtractor={getkey} + extraData={activeIndex} + getItemLayout={getItemLayout} + /> + ) +}) + +const styles = createStyle({ + container: { + flex: 1, + }, + list: { + flexGrow: 1, + flexShrink: 1, + }, +}) + +export default List diff --git a/src/screens/Home/Views/Mylist/MusicList/ListItem.tsx b/src/screens/Home/Views/Mylist/MusicList/ListItem.tsx new file mode 100644 index 0000000..5f71f57 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/ListItem.tsx @@ -0,0 +1,143 @@ +import React, { memo, useRef } from 'react' +import { View, TouchableOpacity } from 'react-native' +import { LIST_ITEM_HEIGHT } from '@/config/constant' +// import { BorderWidths } from '@/theme' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useAssertApiSupport } from '@/store/common/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +import Text from '@/components/common/Text' +import Badge from '@/components/common/Badge' + +export const ITEM_HEIGHT = scaleSizeH(LIST_ITEM_HEIGHT) + +export default memo(({ item, index, activeIndex, onPress, onShowMenu, onLongPress, selectedList }: { + item: LX.Music.MusicInfo + index: number + activeIndex: number + onPress: (item: LX.Music.MusicInfo, index: number) => void + onLongPress: (item: LX.Music.MusicInfo, index: number) => void + onShowMenu: (item: LX.Music.MusicInfo, index: number, position: { x: number, y: number, w: number, h: number }) => void + selectedList: LX.Music.MusicInfo[] +}) => { + const theme = useTheme() + + const isSelected = selectedList.includes(item) + // console.log(item.name, selectedList, selectedList.includes(item)) + const isSupported = useAssertApiSupport(item.source) + const moreButtonRef = useRef<TouchableOpacity>(null) + const handleShowMenu = () => { + if (moreButtonRef.current?.measure) { + moreButtonRef.current.measure((fx, fy, width, height, px, py) => { + // console.log(fx, fy, width, height, px, py) + onShowMenu(item, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) + }) + } + } + const active = activeIndex == index + + return ( + <View style={{ ...styles.listItem, height: ITEM_HEIGHT, backgroundColor: isSelected ? theme['c-primary-background-hover'] : 'rgba(0,0,0,0)', opacity: isSupported ? 1 : 0.5 }}> + <TouchableOpacity style={styles.listItemLeft} onPress={() => { onPress(item, index) }} onLongPress={() => { onLongPress(item, index) }}> + { + active + ? <Icon style={styles.sn} name="play-outline" size={13} color={theme['c-primary-font']} /> + : <Text style={styles.sn} size={14} color={theme['c-300']}>{index + 1}</Text> + } + <View style={styles.itemInfo}> + {/* <View style={styles.listItemTitle}> */} + <Text color={active ? theme['c-primary-font'] : theme['c-font']} numberOfLines={1}>{item.name}</Text> + {/* </View> */} + <View style={styles.listItemSingle}> + <Text style={styles.listItemSingleText} size={13} color={active ? theme['c-primary-alpha-200'] : theme['c-500']} numberOfLines={1}>{item.singer}</Text> + <Badge>{item.source}</Badge> + </View> + </View> + </TouchableOpacity> + {/* <View style={styles.listItemRight}> */} + <TouchableOpacity onPress={handleShowMenu} ref={moreButtonRef} style={styles.moreButton}> + <Icon name="dots-vertical" style={{ color: theme['c-350'] }} size={12} /> + </TouchableOpacity> + {/* </View> */} + </View> + ) +}, (prevProps, nextProps) => { + return !!(prevProps.item === nextProps.item && + prevProps.index === nextProps.index && + prevProps.activeIndex != nextProps.index && + nextProps.activeIndex != nextProps.index && + nextProps.selectedList.includes(nextProps.item) == prevProps.selectedList.includes(nextProps.item) + ) +}) + + +const styles = createStyle({ + listItem: { + width: '100%', + flexDirection: 'row', + flexWrap: 'nowrap', + // paddingLeft: 10, + paddingRight: 2, + alignItems: 'center', + // borderBottomWidth: BorderWidths.normal, + }, + listItemLeft: { + flex: 1, + flexGrow: 1, + flexShrink: 1, + flexDirection: 'row', + alignItems: 'center', + }, + sn: { + width: 38, + // fontSize: 12, + textAlign: 'center', + // backgroundColor: 'rgba(0,0,0,0.2)', + paddingLeft: 3, + paddingRight: 3, + }, + itemInfo: { + flexGrow: 0, + flexShrink: 1, + // paddingTop: 10, + // paddingBottom: 10, + }, + // listItemTitle: { + // flexGrow: 0, + // flexShrink: 1, + // }, + listItemSingle: { + paddingTop: 2, + flexDirection: 'row', + // alignItems: 'flex-end', + }, + listItemSingleText: { + // backgroundColor: 'rgba(0,0,0,0.2)', + flexGrow: 0, + flexShrink: 1, + // fontSize: 15, + }, + listItemBadge: { + // fontSize: 10, + paddingLeft: 5, + paddingTop: 2, + alignSelf: 'flex-start', + }, + listItemRight: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + justifyContent: 'center', + }, + + moreButton: { + height: '80%', + paddingLeft: 16, + paddingRight: 16, + // paddingTop: 10, + // paddingBottom: 10, + // backgroundColor: 'rgba(0,0,0,0.2)', + justifyContent: 'center', + }, +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/ListMenu.tsx b/src/screens/Home/Views/Mylist/MusicList/ListMenu.tsx new file mode 100644 index 0000000..54e961f --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/ListMenu.tsx @@ -0,0 +1,107 @@ +import React, { useMemo, useRef, useImperativeHandle, forwardRef, useState } from 'react' +import { useI18n } from '@/lang' +import Menu, { MenuType, Position } from '@/components/common/Menu' + +export interface SelectInfo { + musicInfo: LX.Music.MusicInfo + selectedList: LX.Music.MusicInfo[] + index: number + listId: string + single: boolean +} +const initSelectInfo = {} + +export interface ListMenuProps { + onPlay: (selectInfo: SelectInfo) => void + onPlayLater: (selectInfo: SelectInfo) => void + onAdd: (selectInfo: SelectInfo) => void + onMove: (selectInfo: SelectInfo) => void + onCopyName: (selectInfo: SelectInfo) => void + onChangePosition: (selectInfo: SelectInfo) => void + onRemove: (selectInfo: SelectInfo) => void +} +export interface ListMenuType { + show: (selectInfo: SelectInfo, position: Position) => void +} + +export type { + Position, +} + +export default forwardRef<ListMenuType, ListMenuProps>((props, ref) => { + const t = useI18n() + const [visible, setVisible] = useState(false) + const menuRef = useRef<MenuType>(null) + const selectInfoRef = useRef<SelectInfo>(initSelectInfo as SelectInfo) + + useImperativeHandle(ref, () => ({ + show(selectInfo, position) { + selectInfoRef.current = selectInfo + if (visible) menuRef.current?.show(position) + else { + setVisible(true) + requestAnimationFrame(() => { + menuRef.current?.show(position) + }) + } + }, + })) + + const menus = useMemo(() => { + return [ + { action: 'play', label: t('play') }, + { action: 'playLater', label: t('play_later') }, + // { action: 'download', label: '下载' }, + { action: 'add', label: t('add_to') }, + { action: 'move', label: t('move_to') }, + { action: 'copyName', label: t('copy_name') }, + { action: 'changePosition', label: t('change_position') }, + { action: 'remove', label: t('delete') }, + ] as const + }, [t]) + + const handleMenuPress = ({ action }: typeof menus[number]) => { + const selectInfo = selectInfoRef.current + switch (action) { + case 'play': + props.onPlay(selectInfo) + break + case 'playLater': + props.onPlayLater(selectInfo) + + break + case 'add': + props.onAdd(selectInfo) + // isMoveRef.current = false + // selectedListRef.current.length + // ? setVisibleMusicMultiAddModal(true) + // : setVisibleMusicAddModal(true) + break + case 'move': + props.onMove(selectInfo) + // isMoveRef.current = true + // selectedListRef.current.length + // ? setVisibleMusicMultiAddModal(true) + // : setVisibleMusicAddModal(true) + break + case 'copyName': + props.onCopyName(selectInfo) + break + case 'changePosition': + props.onChangePosition(selectInfo) + // setVIsibleMusicPosition(true) + break + case 'remove': + props.onRemove(selectInfo) + break + default: + break + } + } + + return ( + visible + ? <Menu ref={menuRef} menus={menus} onPress={handleMenuPress} /> + : null + ) +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/ListMusicSearch.tsx b/src/screens/Home/Views/Mylist/MusicList/ListMusicSearch.tsx new file mode 100644 index 0000000..6e95c60 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/ListMusicSearch.tsx @@ -0,0 +1,147 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState, useEffect } from 'react' +import SearchTipList, { type SearchTipListProps as _SearchTipListProps, type SearchTipListType } from '@/components/SearchTipList' +import { debounce } from '@/utils' +import { searchListMusic } from './listAction' +import Button from '@/components/common/Button' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { useTheme } from '@/store/theme/hook' +import { View } from 'react-native' +import { scaleSizeH } from '@/utils/pixelRatio' +import { getListMusics } from '@/core/list' +import listState from '@/store/list/state' + +type SearchTipListProps = _SearchTipListProps<LX.Music.MusicInfo> +interface ListMusicSearchProps { + onScrollToInfo: (info: LX.Music.MusicInfo) => void +} +export const ITEM_HEIGHT = scaleSizeH(46) + +export interface ListMusicSearchType { + search: (keyword: string, height: number) => void + hide: () => void +} + +export const debounceSearchList = debounce((text: string, list: LX.List.ListMusics, callback: (list: LX.List.ListMusics) => void) => { + // console.log(reslutList) + callback(searchListMusic(list, text)) +}, 200) + + +export default forwardRef<ListMusicSearchType, ListMusicSearchProps>(({ onScrollToInfo }, ref) => { + const searchTipListRef = useRef<SearchTipListType<LX.Music.MusicInfo>>(null) + const [visible, setVisible] = useState(false) + const currentListIdRef = useRef('') + const currentKeywordRef = useRef('') + const theme = useTheme() + + const handleShowList = (keyword: string, height: number) => { + searchTipListRef.current?.setHeight(height) + currentKeywordRef.current = keyword + const id = currentListIdRef.current = listState.activeListId + if (keyword) { + void getListMusics(id).then(list => { + debounceSearchList(keyword, list, (list) => { + if (currentListIdRef.current != id) return + searchTipListRef.current?.setList(list) + }) + }) + } else { + searchTipListRef.current?.setList([]) + } + } + + useImperativeHandle(ref, () => ({ + search(keyword, height) { + if (visible) handleShowList(keyword, height) + else { + setVisible(true) + requestAnimationFrame(() => { + handleShowList(keyword, height) + }) + } + }, + hide() { + currentKeywordRef.current = '' + currentListIdRef.current = '' + searchTipListRef.current?.setList([]) + }, + })) + + useEffect(() => { + const updateList = (id: string) => { + currentListIdRef.current = id + if (!currentKeywordRef.current) return + void getListMusics(listState.activeListId).then(list => { + debounceSearchList(currentKeywordRef.current, list, (list) => { + if (currentListIdRef.current != id) return + searchTipListRef.current?.setList(list) + }) + }) + } + const handleChange = (ids: string[]) => { + if (!ids.includes(listState.activeListId)) return + updateList(listState.activeListId) + } + + global.state_event.on('mylistToggled', updateList) + global.app_event.on('myListMusicUpdate', handleChange) + + return () => { + global.state_event.off('mylistToggled', updateList) + global.app_event.off('myListMusicUpdate', handleChange) + } + }, []) + + const renderItem = ({ item, index }: { item: LX.Music.MusicInfo, index: number }) => { + return ( + <Button style={styles.item} onPress={() => { onScrollToInfo(item) }} key={index}> + <View style={styles.itemName}> + <Text numberOfLines={1}>{item.name}</Text> + <Text style={styles.subName} numberOfLines={1} size={12} color={theme['c-font-label']}>{item.singer} ({item.meta.albumName})</Text> + </View> + <Text style={styles.itemSource} size={12} color={theme['c-font-label']}>{item.source}</Text> + </Button> + ) + } + const getkey: SearchTipListProps['keyExtractor'] = item => item.id + const getItemLayout: SearchTipListProps['getItemLayout'] = (data, index) => { + return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index } + } + + return ( + visible + ? <SearchTipList + ref={searchTipListRef} + renderItem={renderItem} + onPressBg={() => searchTipListRef.current?.setList([])} + keyExtractor={getkey} + getItemLayout={getItemLayout} + /> + : null + ) +}) + + +const styles = createStyle({ + item: { + height: ITEM_HEIGHT, + flexDirection: 'row', + alignItems: 'center', + paddingLeft: 15, + paddingRight: 15, + // backgroundColor: 'rgba(0, 0, 0, 0.2)', + }, + itemName: { + flexGrow: 1, + flexShrink: 1, + }, + subName: { + marginTop: 2, + }, + itemSource: { + flexGrow: 0, + flexShrink: 0, + }, +}) + diff --git a/src/screens/Home/Views/Mylist/MusicList/ListSearchBar.tsx b/src/screens/Home/Views/Mylist/MusicList/ListSearchBar.tsx new file mode 100644 index 0000000..6fa70ae --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/ListSearchBar.tsx @@ -0,0 +1,167 @@ +import React, { useState, useRef, useCallback, useMemo, forwardRef, useImperativeHandle } from 'react' +import { Animated, View, TouchableOpacity } from 'react-native' + +import Text from '@/components/common/Text' +import Input, { type InputType } from '@/components/common/Input' + +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import { BorderWidths } from '@/theme' + +interface SearchInputProps { + onSearch: (keywork: string) => void +} +type SearchInputType = InputType + +const SearchInput = forwardRef<SearchInputType, SearchInputProps>(({ onSearch }, ref) => { + const [text, setText] = useState('') + + const handleChangeText = (text: string) => { + setText(text) + onSearch(text.trim()) + } + + return ( + <Input + onChangeText={handleChangeText} + placeholder="Find for something..." + value={text} + style={styles.input} + // onFocus={showTipList} + clearBtn + ref={ref} + /> + ) +}) + + +export interface ListSearchBarProps { + onSearch: (keywork: string) => void + onExitSearch: () => void +} +export interface ListSearchBarType { + show: () => void + hide: () => void +} + +export default forwardRef<ListSearchBarType, ListSearchBarProps>(({ onSearch, onExitSearch }, ref) => { + const t = useI18n() + // const isGetDetailFailedRef = useRef(false) + const [visible, setVisible] = useState(false) + const [animatePlayed, setAnimatPlayed] = useState(true) + const animFade = useRef(new Animated.Value(0)).current + const animTranslateY = useRef(new Animated.Value(0)).current + const searchInputRef = useRef<SearchInputType>(null) + + const theme = useTheme() + + useImperativeHandle(ref, () => ({ + show() { + handleShow() + requestAnimationFrame(() => { + searchInputRef.current?.focus() + }) + }, + hide() { + handleHide() + }, + })) + + + const handleShow = useCallback(() => { + // console.log('show List') + setVisible(true) + setAnimatPlayed(false) + animTranslateY.setValue(-20) + + Animated.parallel([ + Animated.timing(animFade, { + toValue: 0.92, + duration: 200, + useNativeDriver: true, + }), + Animated.timing(animTranslateY, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }), + ]).start(() => { + setAnimatPlayed(true) + }) + }, [animFade, animTranslateY]) + + const handleHide = useCallback(() => { + setAnimatPlayed(false) + Animated.parallel([ + Animated.timing(animFade, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }), + Animated.timing(animTranslateY, { + toValue: -20, + duration: 200, + useNativeDriver: true, + }), + ]).start(finished => { + if (!finished) return + setVisible(false) + setAnimatPlayed(true) + }) + }, [animFade, animTranslateY]) + + + const animaStyle = useMemo(() => ({ + ...styles.container, + // backgroundColor: theme['c-content-background'], + borderBottomColor: theme['c-border-background'], + opacity: animFade, // Bind opacity to animated value + transform: [ + { translateY: animTranslateY }, + ], + }), [animFade, animTranslateY, theme]) + + const component = useMemo(() => { + return ( + <Animated.View style={animaStyle}> + <View style={styles.content}> + <SearchInput ref={searchInputRef} onSearch={onSearch} /> + </View> + <TouchableOpacity onPress={onExitSearch} style={styles.btn}> + <Text color={theme['c-button-font']}>{t('list_select_cancel')}</Text> + </TouchableOpacity> + </Animated.View> + ) + }, [animaStyle, onSearch, onExitSearch, theme, t]) + + return !visible && animatePlayed ? null : component +}) + +const styles = createStyle({ + container: { + flex: 1, + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + flexDirection: 'row', + paddingLeft: 10, + borderBottomWidth: BorderWidths.normal, + }, + content: { + flexDirection: 'row', + flex: 1, + }, + input: { + height: '100%', + }, + btn: { + // flex: 1, + paddingLeft: 15, + paddingRight: 15, + alignItems: 'center', + justifyContent: 'center', + }, +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/MultipleModeBar.tsx b/src/screens/Home/Views/Mylist/MusicList/MultipleModeBar.tsx new file mode 100644 index 0000000..56fd433 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/MultipleModeBar.tsx @@ -0,0 +1,159 @@ +import React, { useState, useRef, useCallback, useMemo, forwardRef, useImperativeHandle } from 'react' +import { Animated, View, TouchableOpacity } from 'react-native' + +import Text from '@/components/common/Text' +import Button from '@/components/common/Button' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import { BorderWidths } from '@/theme' + +export type SelectMode = 'single' | 'range' + +export interface MultipleModeBarProps { + onSwitchMode: (mode: SelectMode) => void + onSelectAll: (isAll: boolean) => void + onExitSelectMode: () => void +} +export interface MultipleModeBarType { + show: () => void + setVisibleBar: (visible: boolean) => void + setIsSelectAll: (isAll: boolean) => void + setSwitchMode: (mode: SelectMode) => void + exitSelectMode: () => void +} + +export default forwardRef<MultipleModeBarType, MultipleModeBarProps>(({ onSelectAll, onSwitchMode, onExitSelectMode }, ref) => { + // const isGetDetailFailedRef = useRef(false) + const [visible, setVisible] = useState(false) + const [animatePlayed, setAnimatPlayed] = useState(true) + const animFade = useRef(new Animated.Value(0)).current + const animTranslateY = useRef(new Animated.Value(0)).current + const [selectMode, setSelectMode] = useState<SelectMode>('single') + const [isSelectAll, setIsSelectAll] = useState(false) + const [visibleBar, setVisibleBar] = useState(true) + const theme = useTheme() + + useImperativeHandle(ref, () => ({ + show() { + handleShow() + }, + setVisibleBar(visible) { + setVisibleBar(visible) + }, + setIsSelectAll(isAll) { + setIsSelectAll(isAll) + }, + setSwitchMode(mode: SelectMode) { + setSelectMode(mode) + }, + exitSelectMode() { + handleHide() + }, + })) + + const handleShow = useCallback(() => { + // console.log('show List') + setVisible(true) + setAnimatPlayed(false) + animTranslateY.setValue(-20) + + Animated.parallel([ + Animated.timing(animFade, { + toValue: 0.92, + duration: 200, + useNativeDriver: true, + }), + Animated.timing(animTranslateY, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }), + ]).start(() => { + setAnimatPlayed(true) + }) + }, [animFade, animTranslateY]) + + const handleHide = useCallback(() => { + setAnimatPlayed(false) + Animated.parallel([ + Animated.timing(animFade, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }), + Animated.timing(animTranslateY, { + toValue: -20, + duration: 200, + useNativeDriver: true, + }), + ]).start(finished => { + if (!finished) return + setVisible(false) + setAnimatPlayed(true) + }) + }, [animFade, animTranslateY]) + + + const animaStyle = useMemo(() => ({ + ...styles.container, + // backgroundColor: theme['c-content-background'], + borderBottomColor: theme['c-border-background'], + opacity: visibleBar ? animFade : 0, // Bind opacity to animated value + transform: [ + { translateY: animTranslateY }, + ], + }), [animFade, animTranslateY, theme, visibleBar]) + + const handleSelectAll = useCallback(() => { + const selectAll = !isSelectAll + setIsSelectAll(selectAll) + onSelectAll(selectAll) + }, [isSelectAll, onSelectAll]) + + const component = useMemo(() => { + return ( + <Animated.View style={animaStyle}> + <View style={styles.switchBtn}> + <Button onPress={() => { onSwitchMode('single') }} style={{ ...styles.btn, backgroundColor: selectMode == 'single' ? theme['c-button-background'] : 'rgba(0,0,0,0)' }}> + <Text color={theme['c-button-font']}>{global.i18n.t('list_select_single')}</Text> + </Button> + <Button onPress={() => { onSwitchMode('range') }} style={{ ...styles.btn, backgroundColor: selectMode == 'range' ? theme['c-button-background'] : 'rgba(0,0,0,0)' }}> + <Text color={theme['c-button-font']}>{global.i18n.t('list_select_range')}</Text> + </Button> + </View> + <TouchableOpacity onPress={handleSelectAll} style={styles.btn}> + <Text color={theme['c-button-font']}>{global.i18n.t(isSelectAll ? 'list_select_unall' : 'list_select_all')}</Text> + </TouchableOpacity> + <TouchableOpacity onPress={onExitSelectMode} style={styles.btn}> + <Text color={theme['c-button-font']}>{global.i18n.t('list_select_cancel')}</Text> + </TouchableOpacity> + </Animated.View> + ) + }, [animaStyle, selectMode, theme, handleSelectAll, isSelectAll, onExitSelectMode, onSwitchMode]) + + return !visible && animatePlayed ? null : component +}) + +const styles = createStyle({ + container: { + flex: 1, + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + flexDirection: 'row', + borderBottomWidth: BorderWidths.normal, + }, + switchBtn: { + flexDirection: 'row', + flex: 1, + }, + btn: { + // flex: 1, + paddingLeft: 18, + paddingRight: 18, + alignItems: 'center', + justifyContent: 'center', + }, +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/MusicPositionModal.tsx b/src/screens/Home/Views/Mylist/MusicList/MusicPositionModal.tsx new file mode 100644 index 0000000..ea53dea --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/MusicPositionModal.tsx @@ -0,0 +1,174 @@ +import React, { useState, useRef, useImperativeHandle, forwardRef } from 'react' +import { View } from 'react-native' + +import ConfirmAlert, { type ConfirmAlertType } from '@/components/common/ConfirmAlert' +import Text from '@/components/common/Text' +import Input, { type InputType } from '@/components/common/Input' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' + +interface TitleType { + updateTitle: (musicInfo: SelectInfo['musicInfo'], selectedList: SelectInfo['selectedList']) => void +} +const Title = forwardRef<TitleType, {}>((props, ref) => { + const [title, setTitle] = useState('') + + useImperativeHandle(ref, () => ({ + updateTitle(musicInfo, selectedList) { + setTitle(selectedList.length + ? global.i18n.t('change_position_music_multi_title', { num: selectedList.length }) + : global.i18n.t('change_position_music_title', { name: musicInfo.name })) + }, + })) + + return ( + <Text style={{ marginBottom: 5 }}>{title}</Text> + ) +}) + +interface PositionInputType { + getText: () => string + setText: (text: string) => void + focus: () => void +} +const PositionInput = forwardRef<PositionInputType, {}>((props, ref) => { + const theme = useTheme() + const t = useI18n() + const [text, setText] = useState('') + const inputRef = useRef<InputType>(null) + + useImperativeHandle(ref, () => ({ + getText() { + return text.trim() + }, + setText(text) { + setText(text) + }, + focus() { + inputRef.current?.focus() + }, + })) + + return ( + <Input + placeholder={t('change_position_tip')} + value={text} + onChangeText={setText} + ref={inputRef} + style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} + /> + ) +}) + + +export interface SelectInfo { + musicInfo: LX.Music.MusicInfo + selectedList: LX.Music.MusicInfo[] + index: number + listId: string + single: boolean +} +const initSelectInfo = {} + +interface MusicPositionModalProps { + onUpdatePosition: (info: SelectInfo, position: number) => void +} + +export interface MusicPositionModalType { + show: (listInfo: SelectInfo) => void +} + + +export default forwardRef<MusicPositionModalType, MusicPositionModalProps>(({ onUpdatePosition }, ref) => { + const alertRef = useRef<ConfirmAlertType>(null) + const titleRef = useRef<TitleType>(null) + const inputRef = useRef<PositionInputType>(null) + const selectedInfo = useRef<SelectInfo>(initSelectInfo as SelectInfo) + const [visible, setVisible] = useState(false) + + const handleShow = () => { + alertRef.current?.setVisible(true) + requestAnimationFrame(() => { + titleRef.current?.updateTitle(selectedInfo.current.musicInfo, selectedInfo.current.selectedList) + setTimeout(() => { + inputRef.current?.focus() + }, 300) + }) + } + useImperativeHandle(ref, () => ({ + show(listInfo) { + selectedInfo.current = listInfo + + if (visible) handleShow() + else { + setVisible(true) + requestAnimationFrame(() => { + handleShow() + }) + } + }, + })) + + + const verify = () => { + let result = /^[1-9]\d*/.exec(inputRef.current?.getText() ?? '') + let num = result ? parseInt(result[0]) : '' + inputRef.current?.setText(num.toString()) + return num + } + const handleSetMusicPosition = () => { + let num = verify() + if (num == '') return + alertRef.current?.setVisible(false) + onUpdatePosition(selectedInfo.current, num as number - 1) + } + + return ( + visible + ? <ConfirmAlert + ref={alertRef} + onConfirm={handleSetMusicPosition} + onHide={() => inputRef.current?.setText('')} + > + <View style={styles.content}> + <Title ref={titleRef} /> + <PositionInput ref={inputRef} /> + </View> + </ConfirmAlert> + : null + ) +}) + +const styles = createStyle({ + content: { + flexGrow: 1, + flexShrink: 1, + flexDirection: 'column', + }, + input: { + flexGrow: 1, + flexShrink: 1, + minWidth: 260, + borderRadius: 4, + // paddingTop: 2, + // paddingBottom: 2, + }, + + // tagTypeList: { + // flexDirection: 'row', + // flexWrap: 'wrap', + // }, + // tagButton: { + // // marginRight: 10, + // borderRadius: 4, + // marginRight: 10, + // marginBottom: 10, + // }, + // tagButtonText: { + // paddingLeft: 12, + // paddingRight: 12, + // paddingTop: 8, + // paddingBottom: 8, + // }, +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/index.tsx b/src/screens/Home/Views/Mylist/MusicList/index.tsx new file mode 100644 index 0000000..ba55615 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/index.tsx @@ -0,0 +1,157 @@ +import React, { useRef } from 'react' + +import listState from '@/store/list/state' +import ListMenu, { type ListMenuType, type Position, type SelectInfo } from './ListMenu' +import { handlePlay, handlePlayLater, handleRemove, handleShare, handleUpdateMusicPosition } from './listAction' +import List, { type ListType } from './List' +import ListMusicAdd, { type MusicAddModalType as ListMusicAddType } from '@/components/MusicAddModal' +import ListMusicMultiAdd, { type MusicMultiAddModalType as ListAddMultiType } from '@/components/MusicMultiAddModal' +import { createStyle } from '@/utils/tools' +import { type LayoutChangeEvent, View } from 'react-native' +import ActiveList, { type ActiveListType } from './ActiveList' +import MultipleModeBar, { type SelectMode, type MultipleModeBarType } from './MultipleModeBar' +import ListSearchBar, { type ListSearchBarType } from './ListSearchBar' +import ListMusicSearch, { type ListMusicSearchType } from './ListMusicSearch' +import MusicPositionModal, { type MusicPositionModalType } from './MusicPositionModal' + + +export default () => { + // const t = useI18n() + const activeListRef = useRef<ActiveListType>(null) + const listMusicSearchRef = useRef<ListMusicSearchType>(null) + const listRef = useRef<ListType>(null) + const multipleModeBarRef = useRef<MultipleModeBarType>(null) + const listSearchBarRef = useRef<ListSearchBarType>(null) + const listMusicAddRef = useRef<ListMusicAddType>(null) + const listMusicMultiAddRef = useRef<ListAddMultiType>(null) + const musicPositionModalRef = useRef<MusicPositionModalType>(null) + const listMenuRef = useRef<ListMenuType>(null) + const layoutHeightRef = useRef<number>(0) + const isShowMultipleModeBar = useRef(false) + const isShowSearchBarModeBar = useRef(false) + // console.log('render index list') + + const hancelMultiSelect = () => { + if (isShowSearchBarModeBar.current) { + multipleModeBarRef.current?.setVisibleBar(false) + } else activeListRef.current?.setVisibleBar(false) + isShowMultipleModeBar.current = true + multipleModeBarRef.current?.show() + listRef.current?.setIsMultiSelectMode(true) + } + const hancelExitSelect = () => { + if (isShowSearchBarModeBar.current) { + multipleModeBarRef.current?.setVisibleBar(true) + } else activeListRef.current?.setVisibleBar(true) + // console.log('hancelExitSelect', isShowSearchBarModeBar.current) + multipleModeBarRef.current?.exitSelectMode() + listRef.current?.setIsMultiSelectMode(false) + isShowMultipleModeBar.current = false + } + const hancelSwitchSelectMode = (mode: SelectMode) => { + multipleModeBarRef.current?.setSwitchMode(mode) + listRef.current?.setSelectMode(mode) + } + + const showMenu = (musicInfo: LX.Music.MusicInfo, index: number, position: Position) => { + listMenuRef.current?.show({ + musicInfo, + index, + listId: listState.activeListId, + single: false, + selectedList: listRef.current!.getSelectedList(), + }, position) + } + const handleShowSearch = () => { + isShowSearchBarModeBar.current = true + if (isShowMultipleModeBar.current) { + multipleModeBarRef.current?.setVisibleBar(false) + } else activeListRef.current?.setVisibleBar(false) + listSearchBarRef.current?.show() + } + const handleExitSearch = () => { + isShowSearchBarModeBar.current = false + listMusicSearchRef.current?.hide() + listSearchBarRef.current?.hide() + // console.log('handleExitSearch', isShowMultipleModeBar.current) + if (isShowMultipleModeBar.current) { + multipleModeBarRef.current?.setVisibleBar(true) + } else activeListRef.current?.setVisibleBar(true) + } + const handleScrollToInfo = (info: LX.Music.MusicInfo) => { + listRef.current?.scrollToInfo(info) + handleExitSearch() + } + const onLayout = (e: LayoutChangeEvent) => { + layoutHeightRef.current = e.nativeEvent.layout.height + } + + const handleAddMusic = (info: SelectInfo) => { + if (info.selectedList.length) { + listMusicMultiAddRef.current?.show({ selectedList: info.selectedList, listId: info.listId, isMove: false }) + } else { + listMusicAddRef.current?.show({ musicInfo: info.musicInfo, listId: info.listId, isMove: false }) + } + } + const handleMoveMusic = (info: SelectInfo) => { + if (info.selectedList.length) { + listMusicMultiAddRef.current?.show({ selectedList: info.selectedList, listId: info.listId, isMove: true }) + } else { + listMusicAddRef.current?.show({ musicInfo: info.musicInfo, listId: info.listId, isMove: true }) + } + } + + + return ( + <View style={styles.container}> + <View style={{ zIndex: 2 }}> + <ActiveList ref={activeListRef} onShowSearchBar={handleShowSearch} /> + <MultipleModeBar + ref={multipleModeBarRef} + onSwitchMode={hancelSwitchSelectMode} + onSelectAll={isAll => listRef.current?.selectAll(isAll)} + onExitSelectMode={hancelExitSelect} + /> + <ListSearchBar + ref={listSearchBarRef} + onSearch={keyword => listMusicSearchRef.current?.search(keyword, layoutHeightRef.current)} + onExitSearch={handleExitSearch} + /> + </View> + <View style={{ flex: 1 }} onLayout={onLayout}> + <List + ref={listRef} + onShowMenu={showMenu} + onMuiltSelectMode={hancelMultiSelect} + onSelectAll={isAll => multipleModeBarRef.current?.setIsSelectAll(isAll)} + /> + <ListMusicSearch + ref={listMusicSearchRef} + onScrollToInfo={handleScrollToInfo} + /> + </View> + <ListMusicAdd ref={listMusicAddRef} /> + <ListMusicMultiAdd ref={listMusicMultiAddRef} /> + <MusicPositionModal ref={musicPositionModalRef} + onUpdatePosition={(info, postion) => { handleUpdateMusicPosition(postion, info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }} /> + <ListMenu + ref={listMenuRef} + onPlay={info => { handlePlay(info.listId, info.index) }} + onPlayLater={info => { handlePlayLater(info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }} + onRemove={info => { handleRemove(info.listId, info.musicInfo, info.selectedList, hancelExitSelect) }} + onCopyName={info => { handleShare(info.musicInfo) }} + onAdd={handleAddMusic} + onMove={handleMoveMusic} + onChangePosition={info => musicPositionModalRef.current?.show(info)} + /> + </View> + ) +} + + +const styles = createStyle({ + container: { + flex: 1, + flexDirection: 'column', + }, +}) diff --git a/src/screens/Home/Views/Mylist/MusicList/listAction.ts b/src/screens/Home/Views/Mylist/MusicList/listAction.ts new file mode 100644 index 0000000..4357baf --- /dev/null +++ b/src/screens/Home/Views/Mylist/MusicList/listAction.ts @@ -0,0 +1,71 @@ +import { removeListMusics, updateListMusicPosition } from '@/core/list' +import { playList } from '@/core/player/player' +import { addTempPlayList } from '@/core/player/tempPlayList' +import settingState from '@/store/setting/state' +import { similar, sortInsert } from '@/utils' +import { confirmDialog, shareMusic } from '@/utils/tools' + +import type { SelectInfo } from './ListMenu' + +export const handlePlay = (listId: SelectInfo['listId'], index: SelectInfo['index']) => { + void playList(listId, index) +} +export const handlePlayLater = (listId: SelectInfo['listId'], musicInfo: SelectInfo['musicInfo'], selectedList: SelectInfo['selectedList'], onCancelSelect: () => void) => { + if (selectedList.length) { + addTempPlayList(selectedList.map(s => ({ listId, musicInfo: s }))) + onCancelSelect() + } else { + addTempPlayList([{ listId, musicInfo }]) + } +} + +export const handleRemove = (listId: SelectInfo['listId'], musicInfo: SelectInfo['musicInfo'], selectedList: SelectInfo['selectedList'], onCancelSelect: () => void) => { + if (selectedList.length) { + void confirmDialog({ + message: global.i18n.t('list_remove_music_multi_tip', { num: selectedList.length }), + confirmButtonText: global.i18n.t('list_remove_tip_button'), + }).then(isRemove => { + if (!isRemove) return + void removeListMusics(listId, selectedList.map(s => s.id)) + onCancelSelect() + }) + } else { + void removeListMusics(listId, [musicInfo.id]) + } +} + +export const handleUpdateMusicPosition = (position: number, listId: SelectInfo['listId'], musicInfo: SelectInfo['musicInfo'], selectedList: SelectInfo['selectedList'], onCancelSelect: () => void) => { + if (selectedList.length) { + void updateListMusicPosition(listId, position, selectedList.map(s => s.id)) + onCancelSelect() + } else { + // console.log(listId, position, [musicInfo.id]) + void updateListMusicPosition(listId, position, [musicInfo.id]) + } +} + + +export const handleShare = (musicInfo: SelectInfo['musicInfo']) => { + shareMusic(settingState.setting['common.shareType'], settingState.setting['download.fileName'], musicInfo) +} + + +export const searchListMusic = (list: LX.Music.MusicInfo[], text: string) => { + let result: LX.Music.MusicInfo[] = [] + let rxp = new RegExp(text.split('').map(s => s.replace(/[.*+?^${}()|[\]\\]/, '\\$&')).join('.*') + '.*', 'i') + for (const mInfo of list) { + const str = `${mInfo.name}${mInfo.singer}${mInfo.meta.albumName ? mInfo.meta.albumName : ''}` + if (rxp.test(str)) result.push(mInfo) + } + + const sortedList: Array<{ num: number, data: LX.Music.MusicInfo }> = [] + + for (const mInfo of result) { + sortInsert(sortedList, { + num: similar(text, `${mInfo.name}${mInfo.singer}${mInfo.meta.albumName ? mInfo.meta.albumName : ''}`), + data: mInfo, + }) + } + return sortedList.map(item => item.data).reverse() +} + diff --git a/src/screens/Home/Views/Mylist/MyList/List.tsx b/src/screens/Home/Views/Mylist/MyList/List.tsx new file mode 100644 index 0000000..47db8ce --- /dev/null +++ b/src/screens/Home/Views/Mylist/MyList/List.tsx @@ -0,0 +1,186 @@ +import React, { memo, useEffect, useRef } from 'react' +import { View, TouchableOpacity, FlatList, InteractionManager, type NativeScrollEvent, type NativeSyntheticEvent, type FlatListProps } from 'react-native' + +import { Icon } from '@/components/common/Icon' + +import { useTheme } from '@/store/theme/hook' +import { useActiveListId, useMyList } from '@/store/list/hook' +import { createStyle } from '@/utils/tools' +import { LIST_SCROLL_POSITION_KEY } from '@/config/constant' +import { getListPosition, saveListPosition } from '@/utils/data' +import { setActiveList } from '@/core/list' +import Text from '@/components/common/Text' +import { type Position } from './ListMenu' +import { scaleSizeH } from '@/utils/pixelRatio' + +type FlatListType = FlatListProps<LX.List.MyListInfo> + +const ITEM_HEIGHT = scaleSizeH(40) + +const ListItem = memo(({ item, index, activeId, onPress, onShowMenu, loading }: { + onPress: (item: LX.List.MyListInfo) => void + index: number + activeId: string + item: LX.List.MyListInfo + onShowMenu: (item: LX.List.MyListInfo, index: number, position: { x: number, y: number, w: number, h: number }) => void + loading: boolean +}) => { + const theme = useTheme() + const moreButtonRef = useRef<TouchableOpacity>(null) + + const active = activeId == item.id + + const handleShowMenu = () => { + if (moreButtonRef.current?.measure) { + moreButtonRef.current.measure((fx, fy, width, height, px, py) => { + // console.log(fx, fy, width, height, px, py) + onShowMenu(item, index, { x: Math.ceil(px), y: Math.ceil(py), w: Math.ceil(width), h: Math.ceil(height) }) + }) + } + } + + const handlePress = () => { + onPress(item) + } + + return ( + <View style={{ ...styles.listItem, height: ITEM_HEIGHT, opacity: loading ? 0.5 : 1 }}> + { + active + ? <Icon style={styles.listActiveIcon} name="chevron-right" size={12} color={theme['c-primary-font']} /> + : null + } + <TouchableOpacity style={styles.listName} onPress={handlePress}> + <Text numberOfLines={1} color={active ? theme['c-primary-font'] : theme['c-font']}>{item.name}</Text> + </TouchableOpacity> + <TouchableOpacity onPress={handleShowMenu} ref={moreButtonRef} style={styles.listMoreBtn}> + <Icon name="dots-vertical" color={theme['c-350']} size={12} /> + </TouchableOpacity> + </View> + ) +}, (prevProps, nextProps) => { + return !!(prevProps.item === nextProps.item && + prevProps.index === nextProps.index && + prevProps.item.name == nextProps.item.name && + prevProps.activeId != nextProps.item.id && + nextProps.activeId != nextProps.item.id + ) +}) + + +export default ({ onShowMenu }: { + onShowMenu: (info: { listInfo: LX.List.MyListInfo, index: number }, position: Position) => void +}) => { + const flatListRef = useRef<FlatList>(null) + const allList = useMyList() + const activeListId = useActiveListId() + + const handleToggleList = (item: LX.List.MyListInfo) => { + // setVisiblePanel(false) + global.app_event.changeLoveListVisible(false) + void InteractionManager.runAfterInteractions(() => { + setActiveList(item.id) + }) + } + + + const handleScroll = ({ nativeEvent }: NativeSyntheticEvent<NativeScrollEvent>) => { + void saveListPosition(LIST_SCROLL_POSITION_KEY, nativeEvent.contentOffset.y) + } + + const showMenu = (listInfo: LX.List.MyListInfo, index: number, position: Position) => { + onShowMenu({ listInfo, index }, position) + } + + useEffect(() => { + void getListPosition(LIST_SCROLL_POSITION_KEY).then((offset) => { + flatListRef.current?.scrollToOffset({ offset, animated: false }) + }) + }, []) + + const renderItem: FlatListType['renderItem'] = ({ item, index }) => ( + <ListItem + key={item.id} + item={item} + index={index} + loading={false} + activeId={activeListId} + onPress={handleToggleList} + onShowMenu={showMenu} + /> + ) + const getkey: FlatListType['keyExtractor'] = item => item.id + const getItemLayout: FlatListType['getItemLayout'] = (data, index) => { + return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index } + } + + return ( + <FlatList + ref={flatListRef} + onScroll={handleScroll} + style={styles.container} + data={allList} + maxToRenderPerBatch={9} + // updateCellsBatchingPeriod={80} + windowSize={9} + removeClippedSubviews={true} + initialNumToRender={18} + renderItem={renderItem} + keyExtractor={getkey} + // extraData={activeIndex} + getItemLayout={getItemLayout} + /> + ) +} + + +const styles = createStyle({ + container: { + flexShrink: 1, + flexGrow: 0, + }, + // listContainer: { + // // borderBottomWidth: BorderWidths.normal2, + // }, + + listItem: { + height: 'auto', + flexDirection: 'row', + alignItems: 'center', + paddingRight: 5, + paddingLeft: 5, + // borderBottomWidth: BorderWidths.normal, + }, + listActiveIcon: { + // width: 18, + marginLeft: 3, + // paddingRight: 5, + textAlign: 'center', + }, + listName: { + height: '100%', + // height: 46, + // paddingTop: 12, + // paddingBottom: 12, + justifyContent: 'center', + flexGrow: 1, + flexShrink: 1, + paddingLeft: 5, + // backgroundColor: 'rgba(0,0,0,0.1)', + }, + // listNameText: { + // // height: 46, + // fontSize: 14, + // }, + listMoreBtn: { + height: '100%', + width: 36, + // height: 46, + // paddingTop: 12, + // paddingBottom: 12, + justifyContent: 'center', + alignItems: 'center', + // backgroundColor: 'rgba(0,0,0,0.1)', + }, +}) + diff --git a/src/screens/Home/Views/Mylist/MyList/ListImportExport.tsx b/src/screens/Home/Views/Mylist/MyList/ListImportExport.tsx new file mode 100644 index 0000000..c7b7a15 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MyList/ListImportExport.tsx @@ -0,0 +1,103 @@ +import ChoosePath, { type ChoosePathType } from '@/components/common/ChoosePath' +import { LXM_FILE_EXT_RXP } from '@/config/constant' +import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' +import { InteractionManager } from 'react-native' +import { handleExport, handleImport } from './listAction' + +export interface SelectInfo { + listInfo: LX.List.MyListInfo + // selectedList: LX.Music.MusicInfo[] + index: number + // listId: string + // single: boolean + action: 'import' | 'export' +} +const initSelectInfo = {} + +// export interface ListImportExportProps { +// // onRename: (listInfo: LX.List.UserListInfo) => void +// // onImport: (index: number) => void +// // onExport: (listInfo: LX.List.MyListInfo) => void +// // onSync: (listInfo: LX.List.UserListInfo) => void +// // onRemove: (listInfo: LX.List.MyListInfo) => void +// } +export interface ListImportExportType { + import: (listInfo: LX.List.MyListInfo, index: number) => void + export: (listInfo: LX.List.MyListInfo, index: number) => void +} + +export default forwardRef<ListImportExportType, {}>((props, ref) => { + const [visible, setVisible] = useState(false) + const choosePathRef = useRef<ChoosePathType>(null) + const selectInfoRef = useRef<SelectInfo>((initSelectInfo as SelectInfo)) + // console.log('render import export') + + useImperativeHandle(ref, () => ({ + import(listInfo, index) { + selectInfoRef.current = { + action: 'import', + listInfo, + index, + } + if (visible) { + choosePathRef.current?.show({ + title: global.i18n.t('list_import_part_desc'), + dirOnly: false, + filter: LXM_FILE_EXT_RXP, + }) + } else { + setVisible(true) + requestAnimationFrame(() => { + choosePathRef.current?.show({ + title: global.i18n.t('list_import_part_desc'), + dirOnly: false, + filter: LXM_FILE_EXT_RXP, + }) + }) + } + }, + export(listInfo, index) { + selectInfoRef.current = { + action: 'export', + listInfo, + index, + } + if (visible) { + choosePathRef.current?.show({ + title: global.i18n.t('list_export_part_desc'), + dirOnly: true, + filter: LXM_FILE_EXT_RXP, + }) + } else { + setVisible(true) + requestAnimationFrame(() => { + choosePathRef.current?.show({ + title: global.i18n.t('list_export_part_desc'), + dirOnly: true, + filter: LXM_FILE_EXT_RXP, + }) + }) + } + }, + })) + + + const onConfirmPath = (path: string) => { + switch (selectInfoRef.current.action) { + case 'import': + handleImport(path, selectInfoRef.current.index) + break + case 'export': + void InteractionManager.runAfterInteractions(() => { + handleExport(selectInfoRef.current.listInfo, path) + }) + break + } + } + + return ( + visible + ? <ChoosePath ref={choosePathRef} onConfirm={onConfirmPath} /> + : null + ) +}) diff --git a/src/screens/Home/Views/Mylist/MyList/ListMenu.tsx b/src/screens/Home/Views/Mylist/MyList/ListMenu.tsx new file mode 100644 index 0000000..c2f4e78 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MyList/ListMenu.tsx @@ -0,0 +1,126 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState } from 'react' +import { useI18n } from '@/lang' +import Menu, { Menus, MenuType, Position } from '@/components/common/Menu' +import { LIST_IDS } from '@/config/constant' +import musicSdk from '@/utils/musicSdk' + +export interface SelectInfo { + listInfo: LX.List.MyListInfo + // selectedList: LX.Music.MusicInfo[] + index: number + // listId: string + // single: boolean +} +const initSelectInfo = {} + +export interface ListMenuProps { + onRename: (listInfo: LX.List.UserListInfo) => void + onImport: (listInfo: LX.List.MyListInfo, index: number) => void + onExport: (listInfo: LX.List.MyListInfo, index: number) => void + onSync: (listInfo: LX.List.UserListInfo) => void + onRemove: (listInfo: LX.List.UserListInfo) => void +} +export interface ListMenuType { + show: (selectInfo: SelectInfo, position: Position) => void +} + +export type { + Position, +} + +export default forwardRef<ListMenuType, ListMenuProps>(({ + onRename, + onImport, + onExport, + onSync, + onRemove, +}, ref) => { + const t = useI18n() + const menuRef = useRef<MenuType>(null) + const selectInfoRef = useRef<SelectInfo>(initSelectInfo as SelectInfo) + const [menus, setMenus] = useState<Menus>([]) + const [visible, setVisible] = useState(false) + + useImperativeHandle(ref, () => ({ + show(selectInfo, position) { + selectInfoRef.current = selectInfo + handleSetMenu(selectInfo.listInfo) + if (visible) menuRef.current?.show(position) + else { + setVisible(true) + requestAnimationFrame(() => { + menuRef.current?.show(position) + }) + } + }, + })) + + const handleSetMenu = (listInfo: LX.List.MyListInfo) => { + let rename = false + let sync = false + let remove = false + let userList: LX.List.UserListInfo + switch (listInfo.id) { + case LIST_IDS.DEFAULT: + case LIST_IDS.LOVE: + break + default: + userList = listInfo as LX.List.UserListInfo + rename = true + remove = true + sync = !!(userList.source && musicSdk[userList.source]?.songList) + break + } + + setMenus([ + { action: 'rename', disabled: !rename, label: t('list_rename') }, + { action: 'sync', disabled: !sync, label: t('list_sync') }, + { action: 'import', label: t('list_import') }, + { action: 'export', label: t('list_export') }, + // { action: 'local_file', label: t('list_select_local_file') }, + // { action: 'changePosition', label: t('change_position') }, + { action: 'remove', disabled: !remove, label: t('list_remove') }, + ]) + } + + const handleMenuPress = ({ action }: typeof menus[number]) => { + const selectInfo = selectInfoRef.current + switch (action) { + case 'rename': + onRename(selectInfo.listInfo as LX.List.UserListInfo) + break + case 'import': + onImport(selectInfo.listInfo, selectInfo.index) + break + case 'export': + onExport(selectInfo.listInfo, selectInfo.index) + break + case 'sync': + onSync(selectInfo.listInfo as LX.List.UserListInfo) + break + // case 'changePosition': + + // break + // case 'local_file': + + // break + case 'remove': + onRemove(selectInfo.listInfo as LX.List.UserListInfo) + break + + default: + break + } + } + + return ( + visible + ? <Menu + ref={menuRef} + menus={menus} + onPress={handleMenuPress} + // width={104} + /> + : null + ) +}) diff --git a/src/screens/Home/Views/Mylist/MyList/ListNameEdit.tsx b/src/screens/Home/Views/Mylist/MyList/ListNameEdit.tsx new file mode 100644 index 0000000..391a8ac --- /dev/null +++ b/src/screens/Home/Views/Mylist/MyList/ListNameEdit.tsx @@ -0,0 +1,120 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState } from 'react' +import ConfirmAlert, { type ConfirmAlertType } from '@/components/common/ConfirmAlert' +import Text from '@/components/common/Text' +import { View } from 'react-native' +import Input, { type InputType } from '@/components/common/Input' +import { updateUserList } from '@/core/list' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' + +interface NameInputType { + setName: (text: string) => void + getText: () => string + focus: () => void +} +const NameInput = forwardRef<NameInputType, {}>((props, ref) => { + const theme = useTheme() + const [text, setText] = useState('') + const [placeholder, setPlaceholder] = useState('') + const inputRef = useRef<InputType>(null) + + useImperativeHandle(ref, () => ({ + getText() { + return text.trim() + }, + setName(text) { + setText(text) + setPlaceholder(text) + }, + focus() { + inputRef.current?.focus() + }, + })) + + return ( + <Input + ref={inputRef} + placeholder={placeholder} + value={text} + onChangeText={setText} + style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} + /> + ) +}) + + +export interface ListNameEditType { + show: (listInfo: LX.List.UserListInfo) => void +} +const initSelectInfo = {} + + +export default forwardRef<ListNameEditType, {}>((props, ref) => { + const alertRef = useRef<ConfirmAlertType>(null) + const nameInputRef = useRef<NameInputType>(null) + const selectedListInfo = useRef<LX.List.UserListInfo>(initSelectInfo as LX.List.UserListInfo) + const [visible, setVisible] = useState(false) + + const handleShow = () => { + alertRef.current?.setVisible(true) + requestAnimationFrame(() => { + nameInputRef.current?.setName(selectedListInfo.current.name ?? '') + setTimeout(() => { + nameInputRef.current?.focus() + }, 300) + }) + } + useImperativeHandle(ref, () => ({ + show(listInfo) { + selectedListInfo.current = listInfo + if (visible) handleShow() + else { + setVisible(true) + requestAnimationFrame(() => { + handleShow() + }) + } + }, + })) + + const handleRename = () => { + let name = nameInputRef.current?.getText() ?? '' + if (!name.length) return + if (name.length > 100) name = name.substring(0, 100) + void updateUserList([{ ...selectedListInfo.current, name }]) + alertRef.current?.setVisible(false) + } + + return ( + visible + ? <ConfirmAlert + ref={alertRef} + onConfirm={handleRename} + > + <View style={styles.renameContent}> + <Text style={{ marginBottom: 5 }}>{global.i18n.t('list_rename_title')}</Text> + <NameInput ref={nameInputRef} /> + </View> + </ConfirmAlert> + : null + ) +}) + + +const styles = createStyle({ + renameContent: { + flexGrow: 1, + flexShrink: 1, + flexDirection: 'column', + }, + input: { + flexGrow: 1, + flexShrink: 1, + minWidth: 290, + borderRadius: 4, + // paddingTop: 2, + // paddingBottom: 2, + }, +}) + + diff --git a/src/screens/Home/Views/Mylist/MyList/index.tsx b/src/screens/Home/Views/Mylist/MyList/index.tsx new file mode 100644 index 0000000..0a16634 --- /dev/null +++ b/src/screens/Home/Views/Mylist/MyList/index.tsx @@ -0,0 +1,54 @@ +import React, { useEffect, useRef, useState } from 'react' + +import ListMenu, { type ListMenuType } from './ListMenu' +import ListNameEdit, { type ListNameEditType } from './ListNameEdit' +import List from './List' +import ListImportExport, { type ListImportExportType } from './ListImportExport' +import { handleRemove, handleSync } from './listAction' +import { InteractionManager } from 'react-native' + + +export default () => { + const [visible, setVisible] = useState(false) + const listMenuRef = useRef<ListMenuType>(null) + const listNameEditRef = useRef<ListNameEditType>(null) + const listImportExportRef = useRef<ListImportExportType>(null) + + useEffect(() => { + let isInited = false + const changeVisible = (visibleList: boolean) => { + if (visibleList && !isInited) { + requestAnimationFrame(() => { + void InteractionManager.runAfterInteractions(() => { + setVisible(true) + }) + }) + isInited = true + } + } + global.app_event.on('changeLoveListVisible', changeVisible) + + return () => { + global.app_event.off('changeLoveListVisible', changeVisible) + } + }, []) + + return ( + visible + ? <> + <List onShowMenu={(info, position) => listMenuRef.current?.show(info, position)} /> + <ListNameEdit ref={listNameEditRef} /> + <ListImportExport ref={listImportExportRef} /> + <ListMenu + ref={listMenuRef} + onRename={info => listNameEditRef.current?.show(info)} + onImport={(info, position) => listImportExportRef.current?.import(info, position)} + onExport={(info, position) => listImportExportRef.current?.export(info, position)} + onRemove={info => { handleRemove(info) }} + onSync={info => { handleSync(info) }} + /> + {/* <ImportExport actionType={actionType} visible={isShowChoosePath} hide={() => setShowChoosePath(false)} selectedListRef={selectedListRef} /> */} + </> + : null + ) +} diff --git a/src/screens/Home/Views/Mylist/MyList/listAction.ts b/src/screens/Home/Views/Mylist/MyList/listAction.ts new file mode 100644 index 0000000..05e3d8d --- /dev/null +++ b/src/screens/Home/Views/Mylist/MyList/listAction.ts @@ -0,0 +1,88 @@ +import { getListMusics, removeUserList } from '@/core/list' +import { confirmDialog, handleReadFile, handleSaveFile, showImportTip, toast } from '@/utils/tools' +import syncSourceList from '@/core/syncSourceList' +import { log } from '@/utils/log' +import { filterFileName, filterMusicList, toNewMusicInfo } from '@/utils' +import { handleImportListPart } from '@/screens/Home/Views/Setting/Backup/actions' + +export const handleRemove = (listInfo: LX.List.UserListInfo) => { + void confirmDialog({ + message: global.i18n.t('list_remove_tip', { name: listInfo.name }), + confirmButtonText: global.i18n.t('list_remove_tip_button'), + }).then(isRemove => { + if (!isRemove) return + void removeUserList([listInfo.id]) + }) +} + +const readListData = async(path: string) => { + let configData: any + try { + configData = await handleReadFile(path) + } catch (error: any) { + log.error(error.stack) + throw error + } + let listData: LX.ConfigFile.MyListInfoPart['data'] + switch (configData.type) { + case 'playListPart': + listData = configData.data + listData.list = filterMusicList(listData.list.map(m => toNewMusicInfo(m))) + break + case 'playListPart_v2': + listData = configData.data + break + default: + showImportTip(configData.type) + return null + } + return listData +} + +export const handleImport = (path: string, position: number) => { + toast(global.i18n.t('setting_backup_part_import_list_tip_unzip')) + void readListData(path).then(async listData => { + if (listData == null) return + void handleImportListPart(listData, position) + }).catch(() => { + toast(global.i18n.t('setting_backup_part_import_list_tip_error')) + }) +} + +const exportList = async(listInfo: LX.List.MyListInfo, path: string) => { + const data = JSON.parse(JSON.stringify({ + type: 'playListPart_v2', + data: { + ...listInfo, + list: await getListMusics(listInfo.id), + }, + })) + try { + await handleSaveFile(`${path}/lx_list_part_${filterFileName(listInfo.name)}.lxmc`, data) + } catch (error: any) { + log.error(error.stack) + } +} +export const handleExport = (listInfo: LX.List.MyListInfo, path: string) => { + toast(global.i18n.t('setting_backup_part_export_list_tip_zip')) + exportList(listInfo, path).then(() => { + toast(global.i18n.t('setting_backup_part_export_list_tip_success')) + }).catch((err: any) => { + log.error(err.message) + toast(global.i18n.t('setting_backup_part_export_list_tip_failed') + ': ' + (err.message as string)) + }) +} + +export const handleSync = (listInfo: LX.List.UserListInfo) => { + void confirmDialog({ + message: global.i18n.t('list_sync_confirm_tip', { name: listInfo.name }), + confirmButtonText: global.i18n.t('list_remove_tip_button'), + }).then(isSync => { + if (!isSync) return + void syncSourceList(listInfo).then(() => { + toast(global.i18n.t('list_update_success', { name: listInfo.name })) + }).catch(() => { + toast(global.i18n.t('list_update_error', { name: listInfo.name })) + }) + }) +} diff --git a/src/screens/Home/Views/Mylist/index.tsx b/src/screens/Home/Views/Mylist/index.tsx new file mode 100644 index 0000000..4d45d64 --- /dev/null +++ b/src/screens/Home/Views/Mylist/index.tsx @@ -0,0 +1,64 @@ +import React, { useEffect, useRef } from 'react' +import { type DrawerLayoutAndroid } from 'react-native' +import settingState from '@/store/setting/state' +import MusicList from './MusicList' +import MyList from './MyList' +import { useTheme } from '@/store/theme/hook' +import DrawerLayoutFixed from '@/components/common/DrawerLayoutFixed' +import { COMPONENT_IDS } from '@/config/constant' +import { scaleSizeW } from '@/utils/pixelRatio' + +const MAX_WIDTH = scaleSizeW(400) + +export default () => { + const drawer = useRef<DrawerLayoutAndroid>(null) + const theme = useTheme() + // const [width, setWidth] = useState(0) + + useEffect(() => { + const changeVisible = (visible: boolean) => { + if (visible) { + requestAnimationFrame(() => { + drawer.current?.openDrawer() + }) + } else { + drawer.current?.closeDrawer() + } + } + // setWidth(getWindowSise().width * 0.82) + + global.app_event.on('changeLoveListVisible', changeVisible) + + // 就放旋转屏幕后的宽度没有更新的问题 + // const changeEvent = onDimensionChange(({ window }) => { + // setWidth(window.width * 0.82) + // drawer.current?.setNativeProps({ + // width: window.width, + // }) + // }) + + return () => { + global.app_event.off('changeLoveListVisible', changeVisible) + // changeEvent.remove() + } + }, []) + + const navigationView = () => <MyList /> + // console.log('render drawer content') + + return ( + <DrawerLayoutFixed + ref={drawer} + visibleNavNames={[COMPONENT_IDS.home]} + // drawerWidth={width} + widthPercentage={0.82} + widthPercentageMax={MAX_WIDTH} + drawerPosition={settingState.setting['common.drawerLayoutPosition']} + renderNavigationView={navigationView} + drawerBackgroundColor={theme['c-content-background']} + style={{ elevation: 1 }} + > + <MusicList /> + </DrawerLayoutFixed> + ) +} diff --git a/src/screens/Home/Views/Search/BlankView/HistorySearch.tsx b/src/screens/Home/Views/Search/BlankView/HistorySearch.tsx new file mode 100644 index 0000000..45ec092 --- /dev/null +++ b/src/screens/Home/Views/Search/BlankView/HistorySearch.tsx @@ -0,0 +1,96 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react' +import { View } from 'react-native' +import { type InitState } from '@/store/hotSearch/state' +import Button from '@/components/common/Button' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { getSearchHistory } from '@/core/search/search' + + +interface ListProps { + onSearch: (keyword: string) => void +} +export interface HistorySearchType { + show: () => void +} + + +export type List = NonNullable<InitState['sourceList'][keyof InitState['sourceList']]> + +const ListItem = ({ keyword, onSearch }: { + keyword: string + onSearch: (keyword: string) => void +}) => { + const theme = useTheme() + return ( + <Button style={{ ...styles.button, backgroundColor: theme['c-button-background'] }} onPress={() => { onSearch(keyword) }}> + <Text color={theme['c-button-font']} size={13}>{keyword}</Text> + </Button> + ) +} + +export default forwardRef<HistorySearchType, ListProps>((props, ref) => { + const [list, setList] = useState<List>([]) + const isUnmountedRef = useRef(false) + const t = useI18n() + // const theme = useTheme() + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + useImperativeHandle(ref, () => ({ + show() { + void getSearchHistory().then((list) => { + if (isUnmountedRef.current) return + setList(list) + }) + }, + }), []) + + return ( + list.length + ? ( + <View> + <Text style={styles.title} size={16}>{t('search_history_search')}</Text> + <View style={styles.list}> + { + list.map(keyword => <ListItem keyword={keyword} key={keyword} onSearch={props.onSearch} />) + } + </View> + </View> + ) + : null + ) +}) + + +const styles = createStyle({ + title: { + // paddingLeft: 15, + paddingTop: 15, + // paddingBottom: 5, + }, + list: { + // paddingLeft: 15, + // paddingRight: 15, + flexDirection: 'row', + flexWrap: 'wrap', + // paddingBottom: 15, + }, + button: { + textAlign: 'center', + paddingLeft: 10, + paddingRight: 10, + paddingTop: 5, + paddingBottom: 5, + borderRadius: 4, + marginRight: 10, + marginTop: 8, + }, +}) diff --git a/src/screens/Home/Views/Search/BlankView/HotSearch.tsx b/src/screens/Home/Views/Search/BlankView/HotSearch.tsx new file mode 100644 index 0000000..69ece08 --- /dev/null +++ b/src/screens/Home/Views/Search/BlankView/HotSearch.tsx @@ -0,0 +1,98 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react' +import { ScrollView, View } from 'react-native' +import { type Source, type InitState } from '@/store/hotSearch/state' +import Button from '@/components/common/Button' +import { getList } from '@/core/hotSearch' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' + + +interface ListProps { + onSearch: (keyword: string) => void +} +export interface HotSearchType { + show: (source: Source) => void +} + + +export type List = NonNullable<InitState['sourceList'][keyof InitState['sourceList']]> + +const ListItem = ({ keyword, onSearch }: { + keyword: string + onSearch: (keyword: string) => void +}) => { + const theme = useTheme() + return ( + <Button style={{ ...styles.button, backgroundColor: theme['c-button-background'] }} onPress={() => { onSearch(keyword) }}> + <Text color={theme['c-button-font']} size={13}>{keyword}</Text> + </Button> + ) +} + +export default forwardRef<HotSearchType, ListProps>((props, ref) => { + // const [listType, setListType] = useState<SearchState['searchType']>('music') + // const listRef = useRef<MusicListType>(null) + const [list, setList] = useState<List>([]) + const t = useI18n() + // const theme = useTheme() + + const isUnmountedRef = useRef(false) + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + useImperativeHandle(ref, () => ({ + show(source) { + void getList(source).then((list) => { + if (isUnmountedRef.current) return + setList(list) + }) + }, + }), []) + + return ( + list.length + ? ( + <ScrollView> + <Text style={styles.title} size={16}>{t('search_hot_search')}</Text> + <View style={styles.list}> + { + list.map(keyword => <ListItem keyword={keyword} key={keyword} onSearch={props.onSearch} />) + } + </View> + </ScrollView> + ) + : null + ) +}) + + +const styles = createStyle({ + title: { + // paddingLeft: 15, + paddingTop: 15, + // paddingBottom: 10, + }, + list: { + // paddingLeft: 15, + // paddingRight: 15, + flexDirection: 'row', + flexWrap: 'wrap', + // paddingBottom: 15, + }, + button: { + textAlign: 'center', + paddingLeft: 10, + paddingRight: 10, + paddingTop: 5, + paddingBottom: 5, + borderRadius: 4, + marginRight: 10, + marginTop: 8, + }, +}) diff --git a/src/screens/Home/Views/Search/BlankView/index.tsx b/src/screens/Home/Views/Search/BlankView/index.tsx new file mode 100644 index 0000000..906af30 --- /dev/null +++ b/src/screens/Home/Views/Search/BlankView/index.tsx @@ -0,0 +1,81 @@ +import Text from '@/components/common/Text' +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' +import { ScrollView, View } from 'react-native' +import HistorySearch, { type HistorySearchType } from './HistorySearch' +import HotSearch, { type HotSearchType } from './HotSearch' + +interface BlankViewProps { + onSearch: (keyword: string) => void +} +type Source = LX.OnlineSource | 'all' + +export interface BlankViewType { + show: (source: Source) => void +} + +export default forwardRef<BlankViewType, BlankViewProps>(({ onSearch }, ref) => { + // const [listType, setListType] = useState<SearchState['searchType']>('music') + const [visible, setVisible] = useState(false) + const hotSearchRef = useRef<HotSearchType>(null) + const historySearchRef = useRef<HistorySearchType>(null) + const isShowHotSearch = useSettingValue('search.isShowHotSearch') + const isShowHistorySearch = useSettingValue('search.isShowHistorySearch') + const t = useI18n() + const theme = useTheme() + + const handleShow = (source: Source) => { + hotSearchRef.current?.show(source) + historySearchRef.current?.show() + } + + useImperativeHandle(ref, () => ({ + show(source) { + if (visible) handleShow(source) + else { + setVisible(true) + requestAnimationFrame(() => { + handleShow(source) + }) + } + }, + }), [visible]) + + return ( + visible + ? isShowHotSearch || isShowHistorySearch + ? ( + <ScrollView> + <View style={styles.content}> + { isShowHotSearch ? <HotSearch ref={hotSearchRef} onSearch={onSearch} /> : null } + { isShowHistorySearch ? <HistorySearch ref={historySearchRef} onSearch={onSearch} /> : null } + </View> + </ScrollView> + ) + : ( + <View style={styles.welcome}> + <Text size={22} color={theme['c-font-label']}>{t('search__welcome')}</Text> + </View> + ) + : null + + ) +}) + + +const styles = createStyle({ + content: { + // paddingTop: 15, + paddingBottom: 15, + paddingLeft: 15, + paddingRight: 15, + }, + welcome: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, +}) diff --git a/src/screens/Home/Views/Search/HeaderBar/SearchInput.tsx b/src/screens/Home/Views/Search/HeaderBar/SearchInput.tsx new file mode 100644 index 0000000..10d219a --- /dev/null +++ b/src/screens/Home/Views/Search/HeaderBar/SearchInput.tsx @@ -0,0 +1,68 @@ +import React, { useCallback, useRef, forwardRef, useImperativeHandle, useState } from 'react' +// import { StyleSheet } from 'react-native' +import Input, { type InputType, type InputProps } from '@/components/common/Input' + +export interface SearchInputProps { + onChangeText: (text: string) => void + onSubmit: (text: string) => void + onBlur: () => void + onTouchStart: () => void +} + +export interface SearchInputType { + setText: (text: string) => void + // getText: () => string + focus: () => void + blur: () => void +} + +export default forwardRef<SearchInputType, SearchInputProps>(({ onChangeText, onSubmit, onBlur, onTouchStart }, ref) => { + // const theme = useTheme() + const [text, setText] = useState('') + const inputRef = useRef<InputType>(null) + + useImperativeHandle(ref, () => ({ + // getText() { + // return text.trim() + // }, + setText(text) { + setText(text) + }, + focus() { + inputRef.current?.focus() + }, + blur() { + inputRef.current?.blur() + }, + })) + + const handleChangeText = (text: string) => { + setText(text) + onChangeText(text.trim()) + } + + const handleClearText = useCallback(() => { + setText('') + onChangeText('') + onSubmit('') + }, [onChangeText, onSubmit]) + + const handleSubmit = useCallback<NonNullable<InputProps['onSubmitEditing']>>(({ nativeEvent: { text } }) => { + onSubmit(text) + }, [onSubmit]) + + return ( + <Input + ref={inputRef} + placeholder="Search for something..." + value={text} + onChangeText={handleChangeText} + // style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} + onBlur={onBlur} + onSubmitEditing={handleSubmit} + onClearText={handleClearText} + onTouchStart={onTouchStart} + clearBtn + /> + ) +}) diff --git a/src/screens/Home/Views/Search/HeaderBar/index.tsx b/src/screens/Home/Views/Search/HeaderBar/index.tsx new file mode 100644 index 0000000..cae923c --- /dev/null +++ b/src/screens/Home/Views/Search/HeaderBar/index.tsx @@ -0,0 +1,81 @@ +import React, { useRef, forwardRef, useImperativeHandle } from 'react' +import { View } from 'react-native' + +// import music from '@/utils/musicSdk' +import { BorderWidths } from '@/theme' +// import InsetShadow from 'react-native-inset-shadow' +import SourceSelector, { + type SourceSelectorType as _SourceSelectorType, + type SourceSelectorProps as _SourceSelectorProps, +} from '@/components/SourceSelector' +import SearchInput, { type SearchInputType, type SearchInputProps } from './SearchInput' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { type Source as MusicSource } from '@/store/search/music/state' +import { type Source as SonglistSource } from '@/store/search/songlist/state' + +type Sources = Readonly<Array<MusicSource | SonglistSource>> +type SourceSelectorProps = _SourceSelectorProps<Sources> +type SourceSelectorType = _SourceSelectorType<Sources> + +export interface HeaderBarProps { + onSourceChange: SourceSelectorProps['onSourceChange'] + onTempSearch: SearchInputProps['onChangeText'] + onSearch: SearchInputProps['onSubmit'] + onHideTipList: SearchInputProps['onBlur'] + onShowTipList: SearchInputProps['onTouchStart'] +} + +export interface HeaderBarType { + setSourceList: SourceSelectorType['setSourceList'] + setText: SearchInputType['setText'] + blur: SearchInputType['blur'] +} + + +export default forwardRef<HeaderBarType, HeaderBarProps>(({ onSourceChange, onTempSearch, onSearch, onHideTipList, onShowTipList }, ref) => { + const sourceSelectorRef = useRef<SourceSelectorType>(null) + const searchInputRef = useRef<SearchInputType>(null) + const theme = useTheme() + + useImperativeHandle(ref, () => ({ + setSourceList(list, source) { + sourceSelectorRef.current?.setSourceList(list, source) + }, + setText(text) { + searchInputRef.current?.setText(text) + }, + blur() { + searchInputRef.current?.blur() + }, + }), []) + + + return ( + <View style={{ ...styles.searchBar, borderBottomColor: theme['c-border-background'] }}> + <View style={styles.selector}> + <SourceSelector ref={sourceSelectorRef} onSourceChange={onSourceChange} center /> + </View> + <SearchInput + ref={searchInputRef} + onChangeText={onTempSearch} + onSubmit={onSearch} + onBlur={onHideTipList} + onTouchStart={onShowTipList} + /> + </View> + ) +}) + +const styles = createStyle({ + searchBar: { + flexDirection: 'row', + height: 38, + zIndex: 2, + paddingRight: 10, + borderBottomWidth: BorderWidths.normal, + }, + selector: { + // width: 86, + }, +}) diff --git a/src/screens/Home/Views/Search/List.tsx b/src/screens/Home/Views/Search/List.tsx new file mode 100644 index 0000000..55937e7 --- /dev/null +++ b/src/screens/Home/Views/Search/List.tsx @@ -0,0 +1,47 @@ +import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' +import type { InitState as SearchState } from '@/store/search/state' +import type { Source as MusicSource } from '@/store/search/music/state' +import type { Source as SongListSource } from '@/store/search/songlist/state' +import MusicList, { type MusicListType } from './MusicList' +import BlankView, { type BlankViewType } from './BlankView' +import SonglistList from './SonglistList' + +interface ListProps { + onSearch: (keyword: string) => void +} +export interface ListType { + loadList: (text: string, source: MusicSource | SongListSource, type: SearchState['searchType']) => void +} + +export default forwardRef<ListType, ListProps>(({ onSearch }, ref) => { + const [listType, setListType] = useState<SearchState['searchType']>('music') + const [showBlankView, setShowListView] = useState(true) + const listRef = useRef<MusicListType>(null) + const blankViewRef = useRef<BlankViewType>(null) + + useImperativeHandle(ref, () => ({ + loadList(text, source, type) { + if (text) { + setShowListView(false) + setListType(type) + // const listDetailInfo = searchMusicState.listDetailInfo + requestAnimationFrame(() => { + listRef.current?.loadList(text, source) + }) + } else { + setShowListView(true) + requestAnimationFrame(() => { + blankViewRef.current?.show(source) + }) + } + }, + }), []) + + return ( + showBlankView + ? <BlankView ref={blankViewRef} onSearch={onSearch} /> + : listType == 'songlist' + ? <SonglistList ref={listRef} /> + : <MusicList ref={listRef} /> + ) +}) diff --git a/src/screens/Home/Views/Search/MusicList.tsx b/src/screens/Home/Views/Search/MusicList.tsx new file mode 100644 index 0000000..496e9bf --- /dev/null +++ b/src/screens/Home/Views/Search/MusicList.tsx @@ -0,0 +1,87 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react' +import OnlineList, { type OnlineListType, type OnlineListProps } from '@/components/OnlineList' +import { search } from '@/core/search/music' +import searchMusicState, { type ListInfo, type Source } from '@/store/search/music/state' + +// export type MusicListProps = Pick<OnlineListProps, +// 'onLoadMore' +// | 'onPlayList' +// | 'onRefresh' +// > + +export interface MusicListType { + loadList: (text: string, source: Source) => void +} + +export default forwardRef<MusicListType, {}>((props, ref) => { + const listRef = useRef<OnlineListType>(null) + const searchInfoRef = useRef<{ text: string, source: Source }>({ text: '', source: 'kw' }) + const isUnmountedRef = useRef(false) + useImperativeHandle(ref, () => ({ + loadList(text, source) { + // const listDetailInfo = searchMusicState.listDetailInfo + listRef.current?.setList([], source == 'all') + if (searchMusicState.searchText == text && searchMusicState.source == source && searchMusicState.listInfos[searchMusicState.source]!.list.length) { + requestAnimationFrame(() => { + listRef.current?.setList(searchMusicState.listInfos[searchMusicState.source]!.list, source == 'all') + }) + } else { + listRef.current?.setStatus('loading') + const page = 1 + searchInfoRef.current.text = text + searchInfoRef.current.source = source + return search(text, page, source).then((list) => { + // const result = setListInfo(listDetail, id, page) + if (isUnmountedRef.current) return + requestAnimationFrame(() => { + listRef.current?.setList(list, source == 'all') + listRef.current?.setStatus(searchMusicState.listInfos[searchMusicState.source]!.maxPage == page ? 'end' : 'idle') + }) + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + }, + }), []) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + + const handleRefresh: OnlineListProps['onRefresh'] = () => { + const page = 1 + listRef.current?.setStatus('refreshing') + search(searchInfoRef.current.text, page, searchInfoRef.current.source).then((list) => { + // const result = setListInfo(listDetail, searchMusicState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(list, searchInfoRef.current.source == 'all') + listRef.current?.setStatus(searchMusicState.listInfos[searchInfoRef.current.source]!.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + const handleLoadMore: OnlineListProps['onLoadMore'] = () => { + listRef.current?.setStatus('loading') + const info = searchMusicState.listInfos[searchInfoRef.current.source] as ListInfo + const page = info?.list.length ? info.page + 1 : 1 + search(searchInfoRef.current.text, page, searchInfoRef.current.source).then((list) => { + // const result = setListInfo(listDetail, searchMusicState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(list, searchInfoRef.current.source == 'all') + listRef.current?.setStatus(info.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + + return <OnlineList + ref={listRef} + onRefresh={handleRefresh} + onLoadMore={handleLoadMore} + /> +}) + diff --git a/src/screens/Home/Views/Search/SearchTypeSelector.tsx b/src/screens/Home/Views/Search/SearchTypeSelector.tsx new file mode 100644 index 0000000..66b9601 --- /dev/null +++ b/src/screens/Home/Views/Search/SearchTypeSelector.tsx @@ -0,0 +1,75 @@ +import React, { useEffect, useMemo, useState } from 'react' +import { ScrollView, TouchableOpacity } from 'react-native' + +import { createStyle } from '@/utils/tools' +import { type SearchType } from '@/store/search/state' +import { useI18n } from '@/lang' +import Text from '@/components/common/Text' +import { useTheme } from '@/store/theme/hook' +import { getSearchSetting } from '@/utils/data' + +const SEARCH_TYPE_LIST = [ + 'music', + 'songlist', +] as const + +export default () => { + const t = useI18n() + const theme = useTheme() + const [type, setType] = useState<SearchType>('music') + + useEffect(() => { + void getSearchSetting().then(info => { + setType(info.type) + }) + }, []) + + const list = useMemo(() => { + return SEARCH_TYPE_LIST.map(type => ({ label: t(`search_type_${type}`), id: type })) + }, [t]) + + const handleTypeChange = (type: SearchType) => { + setType(type) + global.app_event.searchTypeChanged(type) + } + + return ( + <ScrollView style={styles.container} keyboardShouldPersistTaps={'always'} horizontal={true}> + { + list.map(t => ( + <TouchableOpacity style={styles.button} onPress={() => { handleTypeChange(t.id) }} key={t.id}> + <Text style={styles.buttonText} color={type == t.id ? theme['c-primary-font-active'] : theme['c-font']}>{t.label}</Text> + </TouchableOpacity> + )) + } + </ScrollView> + ) +} + +const styles = createStyle({ + container: { + height: '100%', + flexGrow: 0, + flexShrink: 1, + // paddingLeft: 5, + // paddingRight: 5, + // backgroundColor: 'rgba(0,0,0,0.1)', + }, + button: { + // height: 38, + // lineHeight: 38, + justifyContent: 'center', + // width: 80, + // backgroundColor: 'rgba(0,0,0,0.1)', + }, + buttonText: { + // height: 38, + // lineHeight: 38, + textAlign: 'center', + paddingLeft: 10, + paddingRight: 10, + // paddingTop: 10, + // paddingBottom: 10, + // width: 80, + }, +}) diff --git a/src/screens/Home/Views/Search/SonglistList.tsx b/src/screens/Home/Views/Search/SonglistList.tsx new file mode 100644 index 0000000..e6a0604 --- /dev/null +++ b/src/screens/Home/Views/Search/SonglistList.tsx @@ -0,0 +1,88 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react' + +import { search } from '@/core/search/songlist' +import Songlist, { type SonglistProps, type SonglistType } from '@/screens/Home/Views/SongList/components/Songlist' +import searchSonglistState, { type SearchListInfo, type Source } from '@/store/search/songlist/state' + +// export type MusicListProps = Pick<OnlineListProps, +// 'onLoadMore' +// | 'onPlayList' +// | 'onRefresh' +// > + +export interface MusicListType { + loadList: (text: string, source: Source) => void +} + +export default forwardRef<MusicListType, {}>((props, ref) => { + const listRef = useRef<SonglistType>(null) + const searchInfoRef = useRef<{ text: string, source: Source }>({ text: '', source: 'kw' }) + const isUnmountedRef = useRef(false) + useImperativeHandle(ref, () => ({ + loadList(text, source) { + // const listDetailInfo = searchSonglistState.listDetailInfo + listRef.current?.setList([], source == 'all') + if (searchSonglistState.searchText == text && searchSonglistState.source == source && searchSonglistState.listInfos[searchSonglistState.source]!.list.length) { + requestAnimationFrame(() => { + listRef.current?.setList(searchSonglistState.listInfos[searchSonglistState.source]!.list, source == 'all') + }) + } else { + listRef.current?.setStatus('loading') + const page = 1 + searchInfoRef.current.text = text + searchInfoRef.current.source = source + return search(text, page, source).then((list) => { + // const result = setListInfo(listDetail, id, page) + if (isUnmountedRef.current) return + requestAnimationFrame(() => { + listRef.current?.setList(list, source == 'all') + listRef.current?.setStatus(searchSonglistState.maxPages[searchSonglistState.source] == page ? 'end' : 'idle') + }) + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + }, + }), []) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + + const handleRefresh: SonglistProps['onRefresh'] = () => { + const page = 1 + listRef.current?.setStatus('refreshing') + search(searchInfoRef.current.text, page, searchInfoRef.current.source).then((list) => { + // const result = setListInfo(listDetail, searchSonglistState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(list, searchInfoRef.current.source == 'all') + listRef.current?.setStatus(searchSonglistState.maxPages[searchSonglistState.source] == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + const handleLoadMore: SonglistProps['onLoadMore'] = () => { + listRef.current?.setStatus('loading') + const info = searchSonglistState.listInfos[searchInfoRef.current.source] as SearchListInfo + const page = info.list.length ? info.page + 1 : 1 + search(searchInfoRef.current.text, page, searchInfoRef.current.source).then((list) => { + // const result = setListInfo(listDetail, searchSonglistState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(list, searchInfoRef.current.source == 'all') + listRef.current?.setStatus(searchSonglistState.maxPages[searchSonglistState.source] == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + + return <Songlist + ref={listRef} + onRefresh={handleRefresh} + onLoadMore={handleLoadMore} + /> +}) + diff --git a/src/screens/Home/Views/Search/TipList.tsx b/src/screens/Home/Views/Search/TipList.tsx new file mode 100644 index 0000000..2384857 --- /dev/null +++ b/src/screens/Home/Views/Search/TipList.tsx @@ -0,0 +1,136 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState, useEffect } from 'react' +import SearchTipList, { type SearchTipListProps as _SearchTipListProps, type SearchTipListType as _SearchTipListType } from '@/components/SearchTipList' +import Button from '@/components/common/Button' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { scaleSizeH } from '@/utils/pixelRatio' +import musicSdk from '@/utils/musicSdk' +import searchState, { type InitState as SearchState } from '@/store/search/state' +import { setSearchText, setTipList, setTipListInfo } from '@/core/search/search' +import { debounce } from '@/utils' + +export const ITEM_HEIGHT = scaleSizeH(36) + +export const debounceTipSearch = debounce((keyword: string, source: SearchState['temp_source'], callback: (list: string[]) => void) => { + // console.log(reslutList) + void musicSdk[source].tempSearch.search(keyword).then(callback) +}, 200) + + +export type SearchTipListProps = _SearchTipListProps<string> +export type SearchTipListType = _SearchTipListType<string> + +interface TipListProps { + onSearch: (keyword: string) => void +} +export interface TipListType { + search: (keyword: string, height: number) => void + show: (height: number) => void + hide: () => void +} + +export default forwardRef<TipListType, TipListProps>(({ onSearch }, ref) => { + const searchTipListRef = useRef<SearchTipListType>(null) + const [visible, setVisible] = useState(false) + const visibleListRef = useRef(false) + const isUnmountedRef = useRef(false) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + const handleSearch = (keyword: string, height: number) => { + searchTipListRef.current?.setHeight(height) + setSearchText(keyword) + if (keyword) { + visibleListRef.current = true + setTipListInfo(keyword, searchState.temp_source) + debounceTipSearch(keyword, searchState.temp_source, (list) => { + if (keyword != searchState.tipListInfo.text) return + setTipList(list) + if (!visibleListRef.current || isUnmountedRef.current) return + searchTipListRef.current?.setList(list) + }) + } else { + setTipListInfo(keyword, searchState.temp_source) + setTipList([]) + searchTipListRef.current?.setList([]) + } + } + + const handleShowList = (height: number) => { + searchTipListRef.current?.setHeight(height) + if (searchState.tipListInfo.list.length) { + visibleListRef.current = true + searchTipListRef.current?.setList([...searchState.tipListInfo.list]) + } + } + + useImperativeHandle(ref, () => ({ + search(keyword, height) { + if (visible) handleSearch(keyword, height) + else { + setVisible(true) + requestAnimationFrame(() => { + handleSearch(keyword, height) + }) + } + }, + show(height) { + visibleListRef.current = true + if (visible) handleShowList(height) + else { + setVisible(true) + requestAnimationFrame(() => { + handleShowList(height) + }) + } + }, + hide() { + requestAnimationFrame(() => { + visibleListRef.current = false + searchTipListRef.current?.setList([]) + }) + }, + }), [visible]) + + const renderItem: SearchTipListProps['renderItem'] = ({ item, index }) => { + return ( + <Button style={styles.item} onPress={() => { onSearch(item) }} key={index}> + <Text numberOfLines={1}>{item}</Text> + </Button> + ) + } + const getkey: SearchTipListProps['keyExtractor'] = (item, index) => String(index) + const getItemLayout: SearchTipListProps['getItemLayout'] = (data, index) => { + return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index } + } + + return ( + visible + ? <SearchTipList + ref={searchTipListRef} + renderItem={renderItem} + onPressBg={() => searchTipListRef.current?.setList([])} + keyExtractor={getkey} + getItemLayout={getItemLayout} + /> + : null + ) +}) + + +const styles = createStyle({ + item: { + height: ITEM_HEIGHT, + flexDirection: 'row', + alignItems: 'center', + paddingLeft: 15, + paddingRight: 15, + // backgroundColor: 'rgba(0, 0, 0, 0.2)', + }, +}) + diff --git a/src/screens/Home/Views/Search/index.tsx b/src/screens/Home/Views/Search/index.tsx new file mode 100644 index 0000000..19e8e48 --- /dev/null +++ b/src/screens/Home/Views/Search/index.tsx @@ -0,0 +1,117 @@ +import React, { useRef, useEffect } from 'react' +import { type LayoutChangeEvent, View } from 'react-native' + +// import music from '@/utils/musicSdk' +// import InsetShadow from 'react-native-inset-shadow' +// import TipList from './components/TipList' +// import MusicList from './components/MusicList' +import HeaderBar, { type HeaderBarProps, type HeaderBarType } from './HeaderBar' +import searchState, { type SearchType } from '@/store/search/state' +import searchMusicState from '@/store/search/music/state' +import searchSonglistState from '@/store/search/songlist/state' +import { getSearchSetting, saveSearchSetting } from '@/utils/data' +import { createStyle } from '@/utils/tools' +import TipList, { type TipListType } from './TipList' +import List, { type ListType } from './List' +import { addHistoryWord } from '@/core/search/search' + + +interface SearchInfo { + temp_source: LX.OnlineSource + source: LX.OnlineSource | 'all' + searchType: 'music' | 'songlist' +} + +export default () => { + const headerBarRef = useRef<HeaderBarType>(null) + const searchTipListRef = useRef<TipListType>(null) + const listRef = useRef<ListType>(null) + const layoutHeightRef = useRef<number>(0) + const searchInfo = useRef<SearchInfo>({ temp_source: 'kw', source: 'kw', searchType: 'music' }) + + useEffect(() => { + void getSearchSetting().then(info => { + // info.type = 'music' + searchInfo.current.temp_source = info.temp_source + searchInfo.current.source = info.source + searchInfo.current.searchType = info.type + switch (info.type) { + case 'music': + headerBarRef.current?.setSourceList(searchMusicState.sources, info.source) + break + case 'songlist': + headerBarRef.current?.setSourceList(searchSonglistState.sources, info.source) + break + } + headerBarRef.current?.setText(searchState.searchText) + listRef.current?.loadList(searchState.searchText, searchInfo.current.source, searchInfo.current.searchType) + }) + + const handleTypeChange = (type: SearchType) => { + searchInfo.current.searchType = type + void saveSearchSetting({ type }) + listRef.current?.loadList(searchState.searchText, searchInfo.current.source, type) + } + global.app_event.on('searchTypeChanged', handleTypeChange) + + return () => { + global.app_event.off('searchTypeChanged', handleTypeChange) + } + }, []) + + + const handleLayout = (e: LayoutChangeEvent) => { + layoutHeightRef.current = e.nativeEvent.layout.height + } + + const handleSourceChange: HeaderBarProps['onSourceChange'] = (source) => { + searchInfo.current.source = source + void saveSearchSetting({ source }) + listRef.current?.loadList(searchState.searchText, source, searchInfo.current.searchType) + } + const handleTempSearch: HeaderBarProps['onTempSearch'] = (text) => { + setTimeout(() => { + searchTipListRef.current?.search(text, layoutHeightRef.current) + }, 500) + } + const handleSearch: HeaderBarProps['onSearch'] = (text) => { + searchTipListRef.current?.search(text, layoutHeightRef.current) + searchTipListRef.current?.hide() + headerBarRef.current?.setText(text) + headerBarRef.current?.blur() + void addHistoryWord(text) + listRef.current?.loadList(text, searchInfo.current.source, searchInfo.current.searchType) + } + const handleShowTipList: HeaderBarProps['onShowTipList'] = () => { + setTimeout(() => { + searchTipListRef.current?.show(layoutHeightRef.current) + }, 500) + } + + return ( + <View style={styles.container}> + <HeaderBar + ref={headerBarRef} + onSourceChange={handleSourceChange} + onTempSearch={handleTempSearch} + onSearch={handleSearch} + onHideTipList={() => searchTipListRef.current?.hide()} + onShowTipList={handleShowTipList} + /> + <View style={styles.content} onLayout={handleLayout}> + <TipList ref={searchTipListRef} onSearch={handleSearch} /> + <List ref={listRef} onSearch={handleSearch} /> + </View> + </View> + ) +} + +const styles = createStyle({ + container: { + width: '100%', + flex: 1, + }, + content: { + flex: 1, + }, +}) diff --git a/src/screens/Home/Setting/About.js b/src/screens/Home/Views/Setting/About.tsx similarity index 50% rename from src/screens/Home/Setting/About.js rename to src/screens/Home/Views/Setting/About.tsx index 0f8c867..494fd64 100644 --- a/src/screens/Home/Setting/About.js +++ b/src/screens/Home/Views/Setting/About.tsx @@ -1,13 +1,15 @@ -import React, { useMemo, memo, useState, useEffect } from 'react' -import { StyleSheet, View, Text, TouchableOpacity } from 'react-native' +import React, { memo } from 'react' +import { StyleSheet, View, TouchableOpacity } from 'react-native' import Section from './components/Section' // import Button from './components/Button' -import { useTranslation } from '@/plugins/i18n' -import { useGetter, useDispatch } from '@/store' import { openUrl } from '@/utils/tools' -import { showPactModal } from '@/navigation' +// import { showPactModal } from '@/navigation' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import Text from '@/components/common/Text' +import { showPactModal } from '@/core/common' const qqGroupUrl = 'mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3Du1zyxek8roQAwic44nOkBXtG9CfbAxFw' const qqGroupUrl2 = 'mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3D-l4kNZ2bPQAuvfCQFFhl1UoibvF5wcrQ' @@ -15,16 +17,16 @@ const qqGroupWebUrl = 'https://qm.qq.com/cgi-bin/qm/qr?k=jRZkyFSZ4FmUuTHA3P_RAXb const qqGroupWebUrl2 = 'https://qm.qq.com/cgi-bin/qm/qr?k=HPNJEfrZpBZ9T8szYWbe2d5JrAAeOt_l&jump_from=webapi' export default memo(() => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() + const theme = useTheme() + const t = useI18n() const openHomePage = () => { - openUrl('https://github.com/lyswhut/lx-music-mobile#readme') + void openUrl('https://github.com/lyswhut/lx-music-mobile#readme') } const openNetdiskPage = () => { - openUrl('https://www.lanzoui.com/b0bf2cfa/') + void openUrl('https://www.lanzoui.com/b0bf2cfa/') } const openFAQPage = () => { - openUrl('https://lyswhut.github.io/lx-music-doc/mobile/faq') + void openUrl('https://lyswhut.github.io/lx-music-doc/mobile/faq') } // const openIssuesPage = () => { // openUrl('https://github.com/lyswhut/lx-music-mobile/issues') @@ -33,75 +35,73 @@ export default memo(() => { showPactModal() } const openPartPage = () => { - openUrl('https://github.com/lyswhut/lx-music-mobile#%E9%A1%B9%E7%9B%AE%E5%8D%8F%E8%AE%AE') + void openUrl('https://github.com/lyswhut/lx-music-mobile#%E9%A1%B9%E7%9B%AE%E5%8D%8F%E8%AE%AE') } const goToQQGroup = () => { openUrl(qqGroupUrl).catch(() => { - openUrl(qqGroupWebUrl) + void openUrl(qqGroupWebUrl) }) } const goToQQGroup2 = () => { openUrl(qqGroupUrl2).catch(() => { - openUrl(qqGroupWebUrl2) + void openUrl(qqGroupWebUrl2) }) } - const textStyle = StyleSheet.compose(styles.text, { - color: theme.normal, - }) - const textLinkStyle = StyleSheet.compose(styles.text, { + const textLinkStyle = { + ...styles.text, textDecorationLine: 'underline', - color: theme.secondary, - fontSize: 14, - }) + color: theme['c-primary-font'], + // fontSize: 14, + } as const return ( <Section title={t('setting_about')}> <View style={styles.part}> - <Text style={textStyle} >本软件完全免费,代码已开源,开源地址:</Text> + <Text style={styles.text} >本软件完全免费,代码已开源,开源地址:</Text> <TouchableOpacity onPress={openHomePage}> <Text style={textLinkStyle}>https://github.com/lyswhut/lx-music-mobile</Text> </TouchableOpacity> </View> <View style={styles.part}> - <Text style={textStyle} >最新版网盘下载地址:</Text> + <Text style={styles.text} >最新版网盘下载地址:</Text> <TouchableOpacity onPress={openNetdiskPage}> <Text style={textLinkStyle}>网盘地址(密码:glqw)</Text> </TouchableOpacity> </View> <View style={styles.part}> - <Text style={textStyle} >软件的常见问题可转至:</Text> + <Text style={styles.text} >软件的常见问题可转至:</Text> <TouchableOpacity onPress={openFAQPage}> <Text style={textLinkStyle}>常见问题</Text> </TouchableOpacity> </View> <View style={styles.part}> - <Text style={textStyle}><Text style={{ fontWeight: 'bold' }} >本软件没有客服</Text>,但我们整理了一些常见的使用问题,<Text style={{ fontWeight: 'bold' }} >仔细 仔细 仔细 </Text>地阅读常见问题后,</Text> - <Text style={textStyle}>仍有问题可加企鹅群 </Text> + <Text style={styles.text}><Text style={styles.boldText}>本软件没有客服</Text>,但我们整理了一些常见的使用问题,<Text style={styles.boldText} >仔细 仔细 仔细 </Text>地阅读常见问题后,</Text> + <Text style={styles.text}>仍有问题可加企鹅群 </Text> <TouchableOpacity onPress={goToQQGroup}><Text style={textLinkStyle}>830125506</Text></TouchableOpacity> - <Text style={textStyle}> 反馈。</Text> - <Text style={textStyle}>注意:<Text style={{ fontWeight: 'bold' }}>为免满人,无事勿加,入群先看群公告</Text></Text> + <Text style={styles.text}> 反馈。</Text> + <Text style={styles.text}>注意:<Text style={styles.boldText}>为免满人,无事勿加,入群先看群公告</Text></Text> </View> <View style={styles.part}> - <Text style={textStyle}>如果你喜欢并经常使用洛雪音乐,并想要第一时间尝鲜洛雪的新功能<Text style={{ textDecorationLine: 'line-through' }}>(当小白鼠)</Text>,</Text> - <Text style={textStyle}>可以加入测试企鹅群 </Text> + <Text style={styles.text}>如果你喜欢并经常使用洛雪音乐,并想要第一时间尝鲜洛雪的新功能<Text style={styles.throughText}>(当小白鼠)</Text>,</Text> + <Text style={styles.text}>可以加入测试企鹅群 </Text> <TouchableOpacity onPress={goToQQGroup2}><Text style={textLinkStyle}>768786588</Text></TouchableOpacity> - <Text style={textStyle}>注意:测试版的功能可能会不稳定,<Text style={{ fontWeight: 'bold' }}>打算潜水的勿加</Text></Text> + <Text style={styles.text}> 注意:测试版的功能可能会不稳定,<Text style={styles.boldText}>打算潜水的勿加</Text></Text> </View> <View style={styles.part}> - <Text style={textStyle}>由于软件开发的初衷仅是为了对新技术的学习与研究,因此软件直至停止维护都将会一直保持纯净。</Text> + <Text style={styles.text}>由于软件开发的初衷仅是为了对新技术的学习与研究,因此软件直至停止维护都将会一直保持纯净。</Text> </View> <View style={styles.part}> - <Text style={textStyle}>你已签署本软件的</Text> - <TouchableOpacity onPress={openPactModal}><Text style={{ ...styles.text, color: theme.secondary }}>许可协议</Text></TouchableOpacity> - <Text style={textStyle}>,协议的在线版本在</Text> + <Text style={styles.text}>你已签署本软件的</Text> + <TouchableOpacity onPress={openPactModal}><Text style={styles.text} color={theme['c-primary-font']}>许可协议</Text></TouchableOpacity> + <Text style={styles.text}>,协议的在线版本在</Text> <TouchableOpacity onPress={openPartPage}><Text style={textLinkStyle}>这里</Text></TouchableOpacity> </View> <View style={styles.part}> - <Text style={{ ...styles.text, color: theme.normal, fontSize: 12 }}>By:</Text> - <Text style={textStyle}>落雪无痕</Text> + <Text style={styles.text}>By:</Text> + <Text style={styles.text}>落雪无痕</Text> </View> </Section> ) @@ -116,7 +116,17 @@ const styles = StyleSheet.create({ flexWrap: 'wrap', }, text: { - fontSize: 13, + fontSize: 14, + textAlignVertical: 'bottom', + }, + boldText: { + fontSize: 14, + fontWeight: 'bold', + textAlignVertical: 'bottom', + }, + throughText: { + fontSize: 14, + textDecorationLine: 'line-through', textAlignVertical: 'bottom', }, btn: { diff --git a/src/screens/Home/Setting/Backup/All.js b/src/screens/Home/Views/Setting/Backup/All.js similarity index 100% rename from src/screens/Home/Setting/Backup/All.js rename to src/screens/Home/Views/Setting/Backup/All.js diff --git a/src/screens/Home/Views/Setting/Backup/ListImportExport.tsx b/src/screens/Home/Views/Setting/Backup/ListImportExport.tsx new file mode 100644 index 0000000..2d84a79 --- /dev/null +++ b/src/screens/Home/Views/Setting/Backup/ListImportExport.tsx @@ -0,0 +1,97 @@ +import ChoosePath, { ChoosePathType } from '@/components/common/ChoosePath' +import { LXM_FILE_EXT_RXP } from '@/config/constant' +import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react' +import { InteractionManager } from 'react-native' +import { handleExportList, handleImportList } from './actions' + +export interface SelectInfo { + // listInfo: LX.List.MyListInfo + // selectedList: LX.Music.MusicInfo[] + // index: number + // listId: string + // single: boolean + action: 'import' | 'export' +} +const initSelectInfo = {} + +// export interface ListImportExportProps { +// // onRename: (listInfo: LX.List.UserListInfo) => void +// // onImport: (index: number) => void +// // onExport: (listInfo: LX.List.MyListInfo) => void +// // onSync: (listInfo: LX.List.UserListInfo) => void +// // onRemove: (listInfo: LX.List.MyListInfo) => void +// } +export interface ListImportExportType { + import: () => void + export: () => void +} + +export default forwardRef<ListImportExportType, {}>((props, ref) => { + const [visible, setVisible] = useState(false) + const choosePathRef = useRef<ChoosePathType>(null) + const selectInfoRef = useRef<SelectInfo>((initSelectInfo as SelectInfo)) + console.log('render import export') + + useImperativeHandle(ref, () => ({ + import() { + selectInfoRef.current.action = 'import' + if (visible) { + choosePathRef.current?.show({ + title: global.i18n.t('list_import_part_desc'), + dirOnly: false, + filter: LXM_FILE_EXT_RXP, + }) + } else { + setVisible(true) + requestAnimationFrame(() => { + choosePathRef.current?.show({ + title: global.i18n.t('list_import_part_desc'), + dirOnly: false, + filter: LXM_FILE_EXT_RXP, + }) + }) + } + }, + export() { + selectInfoRef.current.action = 'export' + if (visible) { + choosePathRef.current?.show({ + title: global.i18n.t('list_export_part_desc'), + dirOnly: true, + filter: LXM_FILE_EXT_RXP, + }) + } else { + setVisible(true) + requestAnimationFrame(() => { + choosePathRef.current?.show({ + title: global.i18n.t('list_export_part_desc'), + dirOnly: true, + filter: LXM_FILE_EXT_RXP, + }) + }) + } + }, + })) + + + const onConfirmPath = (path: string) => { + switch (selectInfoRef.current.action) { + case 'import': + void InteractionManager.runAfterInteractions(() => { + handleImportList(path) + }) + break + case 'export': + void InteractionManager.runAfterInteractions(() => { + handleExportList(path) + }) + break + } + } + + return ( + visible + ? <ChoosePath ref={choosePathRef} onConfirm={onConfirmPath} /> + : null + ) +}) diff --git a/src/screens/Home/Views/Setting/Backup/Part.tsx b/src/screens/Home/Views/Setting/Backup/Part.tsx new file mode 100644 index 0000000..59869fb --- /dev/null +++ b/src/screens/Home/Views/Setting/Backup/Part.tsx @@ -0,0 +1,41 @@ +import React, { memo, useRef } from 'react' +import { StyleSheet, View } from 'react-native' + +// import { gzip, ungzip } from 'pako' + +import SubTitle from '../components/SubTitle' +import Button from '../components/Button' +import { useI18n } from '@/lang' +import ListImportExport, { type ListImportExportType } from './ListImportExport' + + +export default memo(() => { + const t = useI18n() + const listImportExportRef = useRef<ListImportExportType>(null) + + return ( + <> + <SubTitle title={t('setting_backup_part')}> + <View style={styles.list}> + <Button onPress={() => listImportExportRef.current?.import()}>{t('setting_backup_part_import_list')}</Button> + <Button onPress={() => listImportExportRef.current?.export()}>{t('setting_backup_part_export_list')}</Button> + {/* <Button onPress={() => importAndExportData('import', 'setting')}>{t('setting_backup_part_import_setting')}</Button> + <Button onPress={() => importAndExportData('export', 'setting')}>{t('setting_backup_part_export_setting')}</Button> */} + </View> + </SubTitle> + {/* <SubTitle title={t('setting_backup_all')}> + <View style={styles.list}> + <Button onPress={() => importAndExportData('import', 'all')}>{t('setting_backup_all_import')}</Button> + <Button onPress={() => importAndExportData('export', 'all')}>{t('setting_backup_all_export')}</Button> + </View> + </SubTitle> */} + <ListImportExport ref={listImportExportRef} /> + </> + ) +}) + +const styles = StyleSheet.create({ + list: { + flexDirection: 'row', + }, +}) diff --git a/src/screens/Home/Views/Setting/Backup/actions.ts b/src/screens/Home/Views/Setting/Backup/actions.ts new file mode 100644 index 0000000..5f420e0 --- /dev/null +++ b/src/screens/Home/Views/Setting/Backup/actions.ts @@ -0,0 +1,182 @@ +import { LIST_IDS } from '@/config/constant' +import { createList, getListMusics, overwriteList, overwriteListFull, overwriteListMusics } from '@/core/list' +import { filterMusicList, fixNewMusicInfoQuality, toNewMusicInfo } from '@/utils' +import { log } from '@/utils/log' +import { confirmDialog, handleReadFile, handleSaveFile, showImportTip, toast } from '@/utils/tools' +import listState from '@/store/list/state' + + +const getAllLists = async() => { + const lists = [] + lists.push(await getListMusics(listState.defaultList.id).then(musics => ({ ...listState.defaultList, list: musics }))) + lists.push(await getListMusics(listState.loveList.id).then(musics => ({ ...listState.loveList, list: musics }))) + + for await (const list of listState.userList) { + lists.push(await getListMusics(list.id).then(musics => ({ ...list, list: musics }))) + } + + return lists +} +const importOldListData = async(lists: any[]) => { + const allLists = await getAllLists() + for (const list of lists) { + try { + const targetList = allLists.find(l => l.id == list.id) + if (targetList) { + targetList.list = filterMusicList((list.list as any[]).map(m => toNewMusicInfo(m))) + } else { + const listInfo = { + name: list.name, + id: list.id, + list: filterMusicList((list.list as any[]).map(m => toNewMusicInfo(m))), + source: list.source, + sourceListId: list.sourceListId, + locationUpdateTime: list.locationUpdateTime ?? null, + } + allLists.push(listInfo as LX.List.UserListInfoFull) + } + } catch (err) { + console.log(err) + } + } + const defaultList = allLists.shift()!.list + const loveList = allLists.shift()!.list + await overwriteListFull({ defaultList, loveList, userList: allLists as LX.List.UserListInfoFull[] }) +} +const importNewListData = async(lists: Array<LX.List.MyDefaultListInfoFull | LX.List.MyLoveListInfoFull | LX.List.UserListInfoFull>) => { + const allLists = await getAllLists() + for (const list of lists) { + try { + const targetList = allLists.find(l => l.id == list.id) + if (targetList) { + targetList.list = filterMusicList(list.list).map(m => fixNewMusicInfoQuality(m)) + } else { + const data = { + name: list.name, + id: list.id, + list: filterMusicList(list.list).map(m => fixNewMusicInfoQuality(m)), + source: (list as LX.List.UserListInfoFull).source, + sourceListId: (list as LX.List.UserListInfoFull).sourceListId, + locationUpdateTime: (list as LX.List.UserListInfoFull).locationUpdateTime ?? null, + } + allLists.push(data as LX.List.UserListInfoFull) + } + } catch (err) { + console.log(err) + } + } + const defaultList = allLists.shift()!.list + const loveList = allLists.shift()!.list + await overwriteListFull({ defaultList, loveList, userList: allLists as LX.List.UserListInfoFull[] }) +} + +/** + * 导入单个列表 + * @param listData + * @param position + * @returns + */ +export const handleImportListPart = async(listData: LX.ConfigFile.MyListInfoPart['data'], position: number = listState.userList.length) => { + const targetList = listState.allList.find(l => l.id === listData.id) + if (targetList) { + const confirm = await confirmDialog({ + message: global.i18n.t('list_import_part_confirm', { importName: listData.name, localName: targetList.name }), + cancelButtonText: global.i18n.t('list_import_part_button_cancel'), + confirmButtonText: global.i18n.t('list_import_part_button_confirm'), + bgClose: false, + }) + if (confirm) { + listData.name = targetList.name + void overwriteList(listData) + toast(global.i18n.t('setting_backup_part_import_list_tip_success')) + return + } + listData.id += `__${Date.now()}` + } + const userList = listData as LX.List.UserListInfoFull + void createList({ + name: userList.name, + id: userList.id, + list: userList.list, + source: userList.source, + sourceListId: userList.sourceListId, + position: Math.max(position, -1), + }).then(() => { + toast(global.i18n.t('setting_backup_part_import_list_tip_success')) + }).catch(() => { + toast(global.i18n.t('setting_backup_part_import_list_tip_error')) + }) +} + +const importPlayList = async(path: string) => { + let configData: any + try { + configData = await handleReadFile(path) + } catch (error: any) { + log.error(error.stack) + throw error + } + + switch (configData.type) { + case 'defautlList': // 兼容0.6.2及以前版本的列表数据 + await overwriteListMusics(LIST_IDS.DEFAULT, filterMusicList((configData.data as LX.List.MyDefaultListInfoFull).list.map(m => toNewMusicInfo(m)))) + break + case 'playList': + await importOldListData(configData.data) + break + case 'playList_v2': + await importNewListData(configData.data) + break + case 'allData': + // 兼容0.6.2及以前版本的列表数据 + if (configData.defaultList) await overwriteListMusics(LIST_IDS.DEFAULT, filterMusicList((configData.defaultList as LX.List.MyDefaultListInfoFull).list.map(m => toNewMusicInfo(m)))) + else await importOldListData(configData.playList) + break + case 'allData_v2': + await importNewListData(configData.playList) + break + case 'playListPart': + configData.data.list = filterMusicList((configData.data as LX.ConfigFile.MyListInfoPart['data']).list.map(m => toNewMusicInfo(m))) + void handleImportListPart(configData.data) + return true + case 'playListPart_v2': + configData.data.list = filterMusicList((configData.data as LX.ConfigFile.MyListInfoPart['data']).list).map(m => fixNewMusicInfoQuality(m)) + void handleImportListPart(configData.data) + return true + default: showImportTip(configData.type) + } +} + +export const handleImportList = (path: string) => { + console.log(path) + toast(global.i18n.t('setting_backup_part_import_list_tip_unzip')) + void importPlayList(path).then((skipTip) => { + if (skipTip) return + toast(global.i18n.t('setting_backup_part_import_list_tip_success')) + }).catch(() => { + toast(global.i18n.t('setting_backup_part_import_list_tip_error')) + }) +} + + +const exportAllList = async(path: string) => { + const data = JSON.parse(JSON.stringify({ + type: 'playList_v2', + data: await getAllLists(), + })) + + try { + await handleSaveFile(path + '/lx_list.lxmc', data) + } catch (error: any) { + log.error(error.stack) + } +} +export const handleExportList = (path: string) => { + toast(global.i18n.t('setting_backup_part_export_list_tip_zip')) + void exportAllList(path).then(() => { + toast(global.i18n.t('setting_backup_part_export_list_tip_success')) + }).catch((err: any) => { + log.error(err.message) + toast(global.i18n.t('setting_backup_part_export_list_tip_failed') + ': ' + (err.message as string)) + }) +} diff --git a/src/screens/Home/Setting/Backup/index.js b/src/screens/Home/Views/Setting/Backup/index.tsx similarity index 78% rename from src/screens/Home/Setting/Backup/index.js rename to src/screens/Home/Views/Setting/Backup/index.tsx index 47ad5e9..e448acd 100644 --- a/src/screens/Home/Setting/Backup/index.js +++ b/src/screens/Home/Views/Setting/Backup/index.tsx @@ -1,12 +1,12 @@ +import { useI18n } from '@/lang' import React, { memo } from 'react' import Section from '../components/Section' import Part from './Part' // import MaxCache from './MaxCache' -import { useTranslation } from '@/plugins/i18n' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() return ( <Section title={t('setting_backup')}> diff --git a/src/screens/Home/Views/Setting/Basic/DrawerLayoutPosition.tsx b/src/screens/Home/Views/Setting/Basic/DrawerLayoutPosition.tsx new file mode 100644 index 0000000..8a2b501 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/DrawerLayoutPosition.tsx @@ -0,0 +1,60 @@ +import React, { memo, useMemo } from 'react' + +import { StyleSheet, View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' + +const LIST = [ + { + position: 'left', + name: 'setting_basic_drawer_layout_position_left', + }, + { + position: 'right', + name: 'setting_basic_drawer_layout_position_right', + }, +] as const + +const useActive = (id: LX.AppSetting['common.drawerLayoutPosition']) => { + const drawerLayoutPosition = useSettingValue('common.drawerLayoutPosition') + const isActive = useMemo(() => drawerLayoutPosition == id, [drawerLayoutPosition, id]) + return isActive +} + +const Item = ({ position, label }: { + position: LX.AppSetting['common.drawerLayoutPosition'] + label: string +}) => { + const isActive = useActive(position) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginRight={8} check={isActive} label={label} onChange={() => updateSetting({ 'common.drawerLayoutPosition': position })} need /> +} + +export default memo(() => { + const t = useI18n() + + const list = useMemo(() => { + return LIST.map((item) => ({ position: item.position, name: t(item.name) })) + }, [t]) + + return ( + <SubTitle title={t('setting_basic_drawer_layout_position')}> + <View style={styles.list}> + { + list.map(({ position, name }) => <Item key={position} position={position} label={name} />) + } + </View> + </SubTitle> + ) +}) + +const styles = StyleSheet.create({ + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Views/Setting/Basic/FontSize.tsx b/src/screens/Home/Views/Setting/Basic/FontSize.tsx new file mode 100644 index 0000000..a1c4810 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/FontSize.tsx @@ -0,0 +1,98 @@ +import React, { memo, useMemo } from 'react' + +import { StyleSheet, View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useI18n } from '@/lang' +import { setFontSize } from '@/core/common' +import { useFontSize } from '@/store/common/hook' +import Text from '@/components/common/Text' +import { getTextSize } from '@/utils/pixelRatio' +import { useTheme } from '@/store/theme/hook' + +const LIST = [ + { + size: 0.8, + name: 'setting_basic_font_size_80', + }, + { + size: 0.9, + name: 'setting_basic_font_size_90', + }, + { + size: 1, + name: 'setting_basic_font_size_100', + }, + { + size: 1.1, + name: 'setting_basic_font_size_110', + }, + { + size: 1.2, + name: 'setting_basic_font_size_120', + }, + { + size: 1.3, + name: 'setting_basic_font_size_130', + }, +] as const + +type SIZE_TYPE = typeof LIST[number]['size'] + +const useActive = (size: SIZE_TYPE) => { + const _size = useFontSize() + const isActive = useMemo(() => _size == size, [_size, size]) + return isActive +} + +const SizeText = () => { + const size = getTextSize(14) * useFontSize() + const t = useI18n() + const theme = useTheme() + + return <Text style={{ fontSize: size }} color={theme['c-primary']}>{t('setting_basic_font_size_preview')}</Text> +} + +const Item = ({ size, label }: { + size: SIZE_TYPE + label: string +}) => { + const isActive = useActive(size) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginRight={8} check={isActive} label={label} onChange={() => { setFontSize(size) }} need /> +} + +export default memo(() => { + const t = useI18n() + + const list = useMemo(() => { + return LIST.map((item) => ({ size: item.size, name: t(item.name) })) + }, [t]) + + return ( + <SubTitle title={t('setting_basic_font_size')}> + <View style={styles.preview}> + <SizeText /> + </View> + <View style={styles.list}> + { + list.map(({ size, name }) => <Item key={size} size={size} label={name} />) + } + </View> + </SubTitle> + ) +}) + +const styles = StyleSheet.create({ + preview: { + justifyContent: 'center', + // paddingTop: 3, + paddingBottom: 10, + height: 45, + }, + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Setting/Basic/IsAutoHidePlayBar.js b/src/screens/Home/Views/Setting/Basic/IsAutoHidePlayBar.js similarity index 100% rename from src/screens/Home/Setting/Basic/IsAutoHidePlayBar.js rename to src/screens/Home/Views/Setting/Basic/IsAutoHidePlayBar.js diff --git a/src/screens/Home/Views/Setting/Basic/IsAutoTheme.tsx b/src/screens/Home/Views/Setting/Basic/IsAutoTheme.tsx new file mode 100644 index 0000000..1f6e542 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/IsAutoTheme.tsx @@ -0,0 +1,43 @@ +import React, { memo } from 'react' +import { View } from 'react-native' + +import CheckBoxItem from '../components/CheckBoxItem' +import { createStyle, getIsSupportedAutoTheme } from '@/utils/tools' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' +import { useSettingValue } from '@/store/setting/hook' +import { getTheme } from '@/theme/themes' +import { applyTheme } from '@/core/theme' +import themeState from '@/store/theme/state' + +const isSupportedAutoTheme = getIsSupportedAutoTheme() + +export default memo(() => { + const t = useI18n() + const isAutoTheme = useSettingValue('common.isAutoTheme') + const setIsAutoTheme = (isAutoTheme: boolean) => { + updateSetting({ 'common.isAutoTheme': isAutoTheme }) + void getTheme().then(theme => { + if (theme.id == themeState.theme.id) return + applyTheme(theme) + }) + } + + + return ( + isSupportedAutoTheme + ? ( + <View style={styles.content}> + <CheckBoxItem check={isAutoTheme} label={t('setting_basic_theme_auto_theme')} onChange={setIsAutoTheme} /> + </View> + ) + : null + ) +}) + +const styles = createStyle({ + content: { + marginTop: 5, + // marginBottom: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/Basic/IsStartupAutoPlay.tsx b/src/screens/Home/Views/Setting/Basic/IsStartupAutoPlay.tsx new file mode 100644 index 0000000..35277ef --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/IsStartupAutoPlay.tsx @@ -0,0 +1,31 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const startupAutoPlay = useSettingValue('player.startupAutoPlay') + const setStartupAutoPlay = (startupAutoPlay: boolean) => { + updateSetting({ 'player.startupAutoPlay': startupAutoPlay }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={startupAutoPlay} label={t('setting_basic_startup_auto_play')} onChange={setStartupAutoPlay} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + marginBottom: 15, + }, +}) diff --git a/src/screens/Home/Views/Setting/Basic/Language.tsx b/src/screens/Home/Views/Setting/Basic/Language.tsx new file mode 100644 index 0000000..72fc884 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/Language.tsx @@ -0,0 +1,46 @@ +import React, { memo, useMemo } from 'react' + +import { StyleSheet, View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import type { I18n } from '@/lang' +import { useI18n, langList } from '@/lang' +import { setLanguage } from '@/core/common' +import { useSettingValue } from '@/store/setting/hook' + +const useActive = (id: I18n['locale']) => { + const activeLangId = useSettingValue('common.langId') + const isActive = useMemo(() => activeLangId == id, [activeLangId, id]) + return isActive +} + +const Item = ({ id, name }: { + id: I18n['locale'] + name: string +}) => { + const isActive = useActive(id) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginRight={8} check={isActive} label={name} onChange={() => setLanguage(id)} need /> +} + +export default memo(() => { + const t = useI18n() + + return ( + <SubTitle title={t('setting_basic_lang')}> + <View style={styles.list}> + { + langList.map(({ locale, name }) => <Item name={name} id={locale} key={locale} />) + } + </View> + </SubTitle> + ) +}) + +const styles = StyleSheet.create({ + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Views/Setting/Basic/ShareType.tsx b/src/screens/Home/Views/Setting/Basic/ShareType.tsx new file mode 100644 index 0000000..4b75e20 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/ShareType.tsx @@ -0,0 +1,64 @@ +import React, { memo, useMemo } from 'react' + +import { StyleSheet, View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' + +type ShareType = LX.AppSetting['common.shareType'] + +const setShareType = (type: ShareType) => { + updateSetting({ 'common.shareType': type }) +} + + +const useActive = (type: ShareType) => { + const shareType = useSettingValue('common.shareType') + const isActive = useMemo(() => shareType == type, [shareType, type]) + return isActive +} + +const Item = ({ id, name }: { + id: ShareType + name: string +}) => { + const isActive = useActive(id) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => setShareType(id)} need /> +} + +export default memo(() => { + const t = useI18n() + const list = useMemo(() => { + return [ + { + id: 'system', + name: t('setting_basic_share_type_system'), + }, + { + id: 'clipboard', + name: t('setting_basic_share_type_clipboard'), + }, + ] as const + }, [t]) + + return ( + <SubTitle title={t('setting_basic_share_type')}> + <View style={styles.list}> + { + list.map(({ id, name }) => <Item name={name} id={id} key={id} />) + } + </View> + </SubTitle> + ) +}) + +const styles = StyleSheet.create({ + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Setting/Basic/Source.js b/src/screens/Home/Views/Setting/Basic/Source.tsx similarity index 52% rename from src/screens/Home/Setting/Basic/Source.js rename to src/screens/Home/Views/Setting/Basic/Source.tsx index 2f02605..675cf7e 100644 --- a/src/screens/Home/Setting/Basic/Source.js +++ b/src/screens/Home/Views/Setting/Basic/Source.tsx @@ -1,37 +1,47 @@ import React, { memo, useCallback, useMemo } from 'react' -import { StyleSheet, View, InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' +import { View } from 'react-native' import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' import CheckBox from '@/components/common/CheckBox' +import { createStyle } from '@/utils/tools' +import { setUserApi } from '@/core/apiSource' +import { useI18n } from '@/lang' +import apiSourceInfo from '@/utils/musicSdk/api-source-info' +import { useSettingValue } from '@/store/setting/hook' -const useActive = id => { - const activeLangId = useGetter('common', 'activeApiSourceId') +const apiSourceList = apiSourceInfo.map(api => ({ + id: api.id, + name: api.name, + disabled: api.disabled, +})) + +const useActive = (id: string) => { + const activeLangId = useSettingValue('common.apiSource') const isActive = useMemo(() => activeLangId == id, [activeLangId, id]) return isActive } -const Item = ({ id, name, change }) => { +const Item = ({ id, name, change }: { + id: string + name: string + change: (id: string) => void +}) => { const isActive = useActive(id) // const [toggleCheckBox, setToggleCheckBox] = useState(false) - return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => change(id)} need /> + return <CheckBox marginBottom={5} check={isActive} label={name} onChange={() => change(id)} need /> } export default memo(() => { - const { t } = useTranslation() - const setApiSource = useDispatch('common', 'setApiSource') - const apiSourceList = useGetter('common', 'apiSourceList') + const t = useI18n() const list = useMemo(() => apiSourceList.map(s => ({ + // @ts-expect-error name: t(`setting_basic_source_${s.id}`) || s.name, id: s.id, - })), [apiSourceList, t]) - const setApiSourceId = useCallback((id) => { - InteractionManager.runAfterInteractions(() => { - setApiSource(id) - }) - }, [setApiSource]) + })), [t]) + const setApiSourceId = useCallback((id: string) => { + setUserApi(id) + }, []) return ( <SubTitle title={t('setting_basic_source')}> @@ -44,7 +54,7 @@ export default memo(() => { ) }) -const styles = StyleSheet.create({ +const styles = createStyle({ list: { flexGrow: 0, flexShrink: 1, diff --git a/src/screens/Home/Views/Setting/Basic/SourceName.tsx b/src/screens/Home/Views/Setting/Basic/SourceName.tsx new file mode 100644 index 0000000..0a9c982 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/SourceName.tsx @@ -0,0 +1,64 @@ +import React, { memo, useMemo } from 'react' + +import { StyleSheet, View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' + +type SourceNameType = LX.AppSetting['common.sourceNameType'] + +const setSourceNameType = (type: SourceNameType) => { + updateSetting({ 'common.sourceNameType': type }) +} + + +const useActive = (type: SourceNameType) => { + const sourceNameType = useSettingValue('common.sourceNameType') + const isActive = useMemo(() => sourceNameType == type, [sourceNameType, type]) + return isActive +} + +const Item = ({ id, name }: { + id: SourceNameType + name: string +}) => { + const isActive = useActive(id) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => setSourceNameType(id)} need /> +} + +export default memo(() => { + const t = useI18n() + const list = useMemo(() => { + return [ + { + id: 'real', + name: t('setting_basic_sourcename_real'), + }, + { + id: 'alias', + name: t('setting_basic_sourcename_alias'), + }, + ] as const + }, [t]) + + return ( + <SubTitle title={t('setting_basic_sourcename')}> + <View style={styles.list}> + { + list.map(({ id, name }) => <Item name={name} id={id} key={id} />) + } + </View> + </SubTitle> + ) +}) + +const styles = StyleSheet.create({ + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Views/Setting/Basic/Theme.tsx b/src/screens/Home/Views/Setting/Basic/Theme.tsx new file mode 100644 index 0000000..3ce1963 --- /dev/null +++ b/src/screens/Home/Views/Setting/Basic/Theme.tsx @@ -0,0 +1,123 @@ +import React, { memo, useCallback, useEffect, useMemo, useState } from 'react' +import { View, ImageBackground, TouchableOpacity, InteractionManager, ImageSourcePropType } from 'react-native' +import { setTheme } from '@/core/theme' +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' + +import SubTitle from '../components/SubTitle' +import { BG_IMAGES, getAllThemes, LocalTheme } from '@/theme/themes' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +import { scaleSizeH } from '@/utils/pixelRatio' + +const useActive = (id: string) => { + const activeThemeId = useSettingValue('theme.id') + const isActive = useMemo(() => activeThemeId == id, [activeThemeId, id]) + return isActive +} + +const ThemeItem = ({ id, name, color, image, setTheme }: { + id: string + name: string + color: string + image?: ImageSourcePropType + setTheme: (id: string) => void +}) => { + const theme = useTheme() + const isActive = useActive(id) + + return ( + <TouchableOpacity style={{ ...styles.item, width: scaleSizeH(ITEM_HEIGHT) }} activeOpacity={0.5} onPress={() => setTheme(id)}> + <View style={{ ...styles.colorContent, width: scaleSizeH(COLOR_ITEM_HEIGHT), borderColor: isActive ? color : 'transparent' }}> + { + image + ? <ImageBackground style={{ ...styles.imageContent, width: scaleSizeH(IMAGE_HEIGHT), backgroundColor: color }} + source={image} borderRadius={4} /> + : <View style={{ ...styles.imageContent, width: scaleSizeH(IMAGE_HEIGHT), backgroundColor: color }}></View> + } + </View> + <Text style={styles.name} size={12} color={isActive ? color : theme['c-font']} numberOfLines={1}>{name}</Text> + </TouchableOpacity> + ) +} + +interface ThemeInfo { + themes: Readonly<LocalTheme[]> + userThemes: LX.Theme[] + dataPath: string +} +const initInfo: ThemeInfo = { themes: [], userThemes: [], dataPath: '' } +export default memo(() => { + const t = useI18n() + const [themeInfo, setThemeInfo] = useState(initInfo) + const setThemeId = useCallback((id: string) => { + void InteractionManager.runAfterInteractions(() => { + setTheme(id) + }) + }, []) + + useEffect(() => { + void getAllThemes().then(setThemeInfo) + }, []) + + return ( + <SubTitle title={t('setting_basic_theme')}> + <View style={styles.list}> + { + themeInfo.themes.map(({ id, config }) => { + return <ThemeItem + key={id} + color={config.themeColors['c-theme']} + image={config.extInfo['bg-image'] ? BG_IMAGES[config.extInfo['bg-image']] : undefined} + id={id} + name={t(`theme_${id}`)} + setTheme={setThemeId} /> + }) + } + { + themeInfo.userThemes.map(({ id, name, config }) => { + return <ThemeItem + key={id} + color={config.themeColors['c-theme']} + // image={undefined} + id={id} + name={name} + setTheme={setThemeId} /> + }) + } + </View> + </SubTitle> + ) +}) + +const ITEM_HEIGHT = 56 +const COLOR_ITEM_HEIGHT = 34 +const IMAGE_HEIGHT = 27 +const styles = createStyle({ + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, + item: { + marginRight: 15, + alignItems: 'center', + marginTop: 5, + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + colorContent: { + height: COLOR_ITEM_HEIGHT, + borderRadius: 4, + borderWidth: 1.6, + alignItems: 'center', + justifyContent: 'center', + }, + imageContent: { + height: IMAGE_HEIGHT, + borderRadius: 4, + // elevation: 1, + }, + name: { + marginTop: 2, + }, +}) diff --git a/src/screens/Home/Setting/Basic/index.js b/src/screens/Home/Views/Setting/Basic/index.tsx similarity index 68% rename from src/screens/Home/Setting/Basic/index.js rename to src/screens/Home/Views/Setting/Basic/index.tsx index 8b0a3ef..8fa5a77 100644 --- a/src/screens/Home/Setting/Basic/index.js +++ b/src/screens/Home/Views/Setting/Basic/index.tsx @@ -5,14 +5,16 @@ import Theme from './Theme' import Source from './Source' import SourceName from './SourceName' import Language from './Language' +import FontSize from './FontSize' import ShareType from './ShareType' import IsAutoTheme from './IsAutoTheme' import IsStartupAutoPlay from './IsStartupAutoPlay' -import IsAutoHidePlayBar from './IsAutoHidePlayBar' -import { useTranslation } from '@/plugins/i18n' +import DrawerLayoutPosition from './DrawerLayoutPosition' +// import IsAutoHidePlayBar from './IsAutoHidePlayBar' +import { useI18n } from '@/lang/i18n' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() return ( @@ -20,11 +22,15 @@ export default memo(() => { <Theme /> <IsAutoTheme /> <IsStartupAutoPlay /> - <IsAutoHidePlayBar /> <Source /> - <Language /> <SourceName /> + <DrawerLayoutPosition /> + <Language /> + <FontSize /> <ShareType /> + {/* + <IsAutoHidePlayBar /> + */} </Section> ) }) diff --git a/src/screens/Home/Views/Setting/List/AddMusicLocationType.tsx b/src/screens/Home/Views/Setting/List/AddMusicLocationType.tsx new file mode 100644 index 0000000..db1a225 --- /dev/null +++ b/src/screens/Home/Views/Setting/List/AddMusicLocationType.tsx @@ -0,0 +1,49 @@ +import React, { memo, useMemo } from 'react' + +import { StyleSheet, View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' + +const setAddMusicLocationType = (type: LX.AddMusicLocationType) => { + updateSetting({ 'list.addMusicLocationType': type }) +} + +const useActive = (id: LX.AddMusicLocationType) => { + const addMusicLocationType = useSettingValue('list.addMusicLocationType') + const isActive = useMemo(() => addMusicLocationType == id, [addMusicLocationType, id]) + return isActive +} + +const Item = ({ id, name }: { + id: LX.AddMusicLocationType + name: string +}) => { + const isActive = useActive(id) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginRight={8} check={isActive} label={name} onChange={() => setAddMusicLocationType(id)} need /> +} + + +export default memo(() => { + const t = useI18n() + + return ( + <SubTitle title={t('setting_list_add_music_location_type')}> + <View style={styles.list}> + <Item id="top" name={t('setting_list_add_music_location_type_top')} /> + <Item id="bottom" name={t('setting_list_add_music_location_type_bottom')} /> + </View> + </SubTitle> + ) +}) + +const styles = StyleSheet.create({ + list: { + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Views/Setting/List/IsClickPlayList.tsx b/src/screens/Home/Views/Setting/List/IsClickPlayList.tsx new file mode 100644 index 0000000..9f4d6f6 --- /dev/null +++ b/src/screens/Home/Views/Setting/List/IsClickPlayList.tsx @@ -0,0 +1,32 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isClickPlayList = useSettingValue('list.isClickPlayList') + const setClickPlayList = (isClickPlayList: boolean) => { + updateSetting({ 'list.isClickPlayList': isClickPlayList }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isClickPlayList} onChange={setClickPlayList} label={t('setting_list_click_action')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + marginBottom: 15, + }, +}) + diff --git a/src/screens/Home/Setting/List/index.js b/src/screens/Home/Views/Setting/List/index.tsx similarity index 81% rename from src/screens/Home/Setting/List/index.js rename to src/screens/Home/Views/Setting/List/index.tsx index 4d87569..60142a9 100644 --- a/src/screens/Home/Setting/List/index.js +++ b/src/screens/Home/Views/Setting/List/index.tsx @@ -3,10 +3,11 @@ import React, { memo } from 'react' import Section from '../components/Section' import AddMusicLocationType from './AddMusicLocationType' import IsClickPlayList from './IsClickPlayList' -import { useTranslation } from '@/plugins/i18n' + +import { useI18n } from '@/lang' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() return ( <Section title={t('setting_list')}> diff --git a/src/screens/Home/Views/Setting/LyricDesktop/IsLockLyric.tsx b/src/screens/Home/Views/Setting/LyricDesktop/IsLockLyric.tsx new file mode 100644 index 0000000..0ef0262 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/IsLockLyric.tsx @@ -0,0 +1,33 @@ +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' + + +import CheckBoxItem from '../components/CheckBoxItem' +import { toggleDesktopLyricLock } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + +export default memo(() => { + const t = useI18n() + const isLock = useSettingValue('desktopLyric.isLock') + const setLock = (isLock: boolean) => { + void toggleDesktopLyricLock(isLock).then(() => { + updateSetting({ 'desktopLyric.isLock': isLock }) + }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isLock} onChange={setLock} label={t('setting_lyric_desktop_lock')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/IsShowLyric.tsx b/src/screens/Home/Views/Setting/LyricDesktop/IsShowLyric.tsx new file mode 100644 index 0000000..706784a --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/IsShowLyric.tsx @@ -0,0 +1,63 @@ +import React, { memo, useRef } from 'react' +import { View } from 'react-native' + +import ConfirmAlert, { type ConfirmAlertType } from '@/components/common/ConfirmAlert' +import CheckBoxItem from '../components/CheckBoxItem' + +import { createStyle, toast } from '@/utils/tools' + +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { checkDesktopLyricOverlayPermission, hideDesktopLyric, openDesktopLyricOverlayPermissionActivity, showDesktopLyric } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + +export default memo(() => { + const t = useI18n() + const isEnable = useSettingValue('desktopLyric.enable') + // const setIsShowDesktopLyric = useDispatch('common', 'setIsShowDesktopLyric') + const confirmAlertRef = useRef<ConfirmAlertType>(null) + + const handleChangeEnableDesktopLyric = async(isEnable: boolean) => { + if (isEnable) { + try { + await checkDesktopLyricOverlayPermission() + await showDesktopLyric() + } catch (err) { + console.log(err) + confirmAlertRef.current?.setVisible(true) + // return false + } + } else await hideDesktopLyric() + // return true + updateSetting({ 'desktopLyric.enable': isEnable }) + } + + const handleTipsCancel = () => { + toast(t('disagree_tip'), 'long') + } + const handleTipsConfirm = () => { + confirmAlertRef.current?.setVisible(false) + void openDesktopLyricOverlayPermissionActivity() + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isEnable} onChange={(enable) => { void handleChangeEnableDesktopLyric(enable) }} label={t('setting_lyric_desktop_enable')} /> + <ConfirmAlert + ref={confirmAlertRef} + onCancel={handleTipsCancel} + onConfirm={handleTipsConfirm} + bgHide={false} + closeBtn={false} + cancelText={t('disagree')} + confirmText={t('agree_go')} + text={t('setting_lyric_dektop_permission_tip')} /> + </View> + ) +}) + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/IsShowToggleAnima.tsx b/src/screens/Home/Views/Setting/LyricDesktop/IsShowToggleAnima.tsx new file mode 100644 index 0000000..065e632 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/IsShowToggleAnima.tsx @@ -0,0 +1,33 @@ +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' + + +import CheckBoxItem from '../components/CheckBoxItem' +import { setShowDesktopLyricToggleAnima } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + +export default memo(() => { + const t = useI18n() + const showToggleAnima = useSettingValue('desktopLyric.showToggleAnima') + const update = (showToggleAnima: boolean) => { + void setShowDesktopLyricToggleAnima(showToggleAnima).then(() => { + updateSetting({ 'desktopLyric.showToggleAnima': showToggleAnima }) + }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={showToggleAnima} onChange={update} label={t('setting_lyric_desktop_toggle_anima')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/IsSingleLine.tsx b/src/screens/Home/Views/Setting/LyricDesktop/IsSingleLine.tsx new file mode 100644 index 0000000..ce53e63 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/IsSingleLine.tsx @@ -0,0 +1,34 @@ +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' + + +import CheckBoxItem from '../components/CheckBoxItem' +import { setDesktopLyricSingleLine } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + +export default memo(() => { + const t = useI18n() + const isSingleLine = useSettingValue('desktopLyric.isSingleLine') + const update = (isSingleLine: boolean) => { + void setDesktopLyricSingleLine(isSingleLine).then(() => { + updateSetting({ 'desktopLyric.isSingleLine': isSingleLine }) + }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isSingleLine} onChange={update} label={t('setting_lyric_desktop_single_line')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + marginBottom: 15, + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/MaxLineNum.tsx b/src/screens/Home/Views/Setting/LyricDesktop/MaxLineNum.tsx new file mode 100644 index 0000000..a336f71 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/MaxLineNum.tsx @@ -0,0 +1,62 @@ +import React, { memo, useCallback, useState } from 'react' +import { View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import Slider, { type SliderProps } from '../components/Slider' +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { setDesktopLyricMaxLineNum } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + + +export default memo(() => { + const t = useI18n() + const maxLineNum = useSettingValue('desktopLyric.maxLineNum') + const theme = useTheme() + const [sliderSize, setSliderSize] = useState(maxLineNum) + const [isSliding, setSliding] = useState(false) + const handleSlidingStart = useCallback<NonNullable<SliderProps['onSlidingStart']>>(() => { + setSliding(true) + }, []) + const handleValueChange = useCallback<NonNullable<SliderProps['onValueChange']>>(value => { + setSliderSize(value) + }, []) + const handleSlidingComplete = useCallback<NonNullable<SliderProps['onSlidingComplete']>>(value => { + if (maxLineNum == value) return + void setDesktopLyricMaxLineNum(value).then(() => { + updateSetting({ 'desktopLyric.maxLineNum': value }) + }).finally(() => { + setSliding(false) + }) + }, [maxLineNum]) + + return ( + <SubTitle title={t('setting_lyric_desktop_maxlineNum')}> + <View style={styles.content}> + <Text style={{ color: theme['c-primary-font'] }}>{isSliding ? sliderSize : maxLineNum}</Text> + <Slider + minimumValue={1} + maximumValue={8} + onSlidingComplete={handleSlidingComplete} + onValueChange={handleValueChange} + onSlidingStart={handleSlidingStart} + step={1} + value={maxLineNum} + /> + </View> + </SubTitle> + ) +}) + +const styles = createStyle({ + content: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/TextOpacity.tsx b/src/screens/Home/Views/Setting/LyricDesktop/TextOpacity.tsx new file mode 100644 index 0000000..f795f4d --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/TextOpacity.tsx @@ -0,0 +1,63 @@ +import React, { memo, useCallback, useState } from 'react' +import { View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import Slider, { type SliderProps } from '../components/Slider' +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { setDesktopLyricAlpha } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + + +export default memo(() => { + const t = useI18n() + const opacity = useSettingValue('desktopLyric.style.opacity') + const theme = useTheme() + const [sliderSize, setSliderSize] = useState(opacity) + const [isSliding, setSliding] = useState(false) + const handleSlidingStart = useCallback<NonNullable<SliderProps['onSlidingStart']>>(() => { + setSliding(true) + }, []) + const handleValueChange = useCallback<NonNullable<SliderProps['onValueChange']>>(value => { + setSliderSize(value) + }, []) + const handleSlidingComplete = useCallback<NonNullable<SliderProps['onSlidingComplete']>>(value => { + if (opacity == value) return + void setDesktopLyricAlpha(value).then(() => { + updateSetting({ 'desktopLyric.style.opacity': value }) + }).finally(() => { + setSliding(false) + }) + }, [opacity]) + + return ( + <SubTitle title={t('setting_lyric_desktop_text_opacity')}> + <View style={styles.content}> + <Text style={{ color: theme['c-primary-font'] }}>{isSliding ? sliderSize : opacity}</Text> + <Slider + minimumValue={10} + maximumValue={100} + onSlidingComplete={handleSlidingComplete} + onValueChange={handleValueChange} + onSlidingStart={handleSlidingStart} + step={2} + value={opacity} + /> + </View> + </SubTitle> + ) +}) + +const styles = createStyle({ + content: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + }, +}) + diff --git a/src/screens/Home/Views/Setting/LyricDesktop/TextPositionX.tsx b/src/screens/Home/Views/Setting/LyricDesktop/TextPositionX.tsx new file mode 100644 index 0000000..68b2046 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/TextPositionX.tsx @@ -0,0 +1,67 @@ +import React, { memo, useMemo } from 'react' + +import { View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { setDesktopLyricTextPosition } from '@/core/desktopLyric' +import { createStyle } from '@/utils/tools' +import { updateSetting } from '@/core/common' + +type X_TYPE = LX.AppSetting['desktopLyric.textPosition.x'] + +const X_LIST = [ + 'left', + 'center', + 'right', +] as const + +const useActive = (id: X_TYPE) => { + const x = useSettingValue('desktopLyric.textPosition.x') + const isActive = useMemo(() => x == id, [x, id]) + return isActive +} + +const Item = ({ id, name, change }: { + id: X_TYPE + name: string + change: (id: X_TYPE) => void +}) => { + const isActive = useActive(id) + // const [toggleCheckBox, setToggleCheckBox] = useState(false) + return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => { change(id) }} need /> +} + +export default memo(() => { + const t = useI18n() + const list = useMemo(() => { + return X_LIST.map(id => ({ id, name: t(`setting_lyric_desktop_text_x_${id}`) })) + }, [t]) + + const setPosition = (id: X_TYPE) => { + void setDesktopLyricTextPosition(id, null).then(() => { + updateSetting({ 'desktopLyric.textPosition.x': id }) + }) + } + + return ( + <SubTitle title={t('setting_lyric_desktop_text_x')}> + <View style={styles.list}> + { + list.map(({ id, name }) => <Item name={name} id={id} key={id} change={setPosition} />) + } + </View> + </SubTitle> + ) +}) + +const styles = createStyle({ + list: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/TextPositionY.tsx b/src/screens/Home/Views/Setting/LyricDesktop/TextPositionY.tsx new file mode 100644 index 0000000..d9cee28 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/TextPositionY.tsx @@ -0,0 +1,65 @@ +import React, { memo, useMemo } from 'react' +import { View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import CheckBox from '@/components/common/CheckBox' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { setDesktopLyricTextPosition } from '@/core/desktopLyric' +import { createStyle } from '@/utils/tools' +import { updateSetting } from '@/core/common' + +type Y_TYPE = LX.AppSetting['desktopLyric.textPosition.y'] + +const Y_LIST = [ + 'top', + 'center', + 'bottom', +] as const + +const useActive = (id: Y_TYPE) => { + const y = useSettingValue('desktopLyric.textPosition.y') + const isActive = useMemo(() => y == id, [y, id]) + return isActive +} + +const Item = ({ id, name, change }: { + id: Y_TYPE + name: string + change: (id: Y_TYPE) => void +}) => { + const isActive = useActive(id) + return <CheckBox marginBottom={3} check={isActive} label={name} onChange={() => { change(id) }} need /> +} + +export default memo(() => { + const t = useI18n() + const list = useMemo(() => { + return Y_LIST.map(id => ({ id, name: t(`setting_lyric_desktop_text_y_${id}`) })) + }, [t]) + + const setPosition = (id: Y_TYPE) => { + void setDesktopLyricTextPosition(null, id).then(() => { + updateSetting({ 'desktopLyric.textPosition.y': id }) + }) + } + + return ( + <SubTitle title={t('setting_lyric_desktop_text_y')}> + <View style={styles.list}> + { + list.map(({ id, name }) => <Item name={name} id={id} key={id} change={setPosition} />) + } + </View> + </SubTitle> + ) +}) + +const styles = createStyle({ + list: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'wrap', + }, +}) diff --git a/src/screens/Home/Views/Setting/LyricDesktop/TextSize.tsx b/src/screens/Home/Views/Setting/LyricDesktop/TextSize.tsx new file mode 100644 index 0000000..ce2e269 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/TextSize.tsx @@ -0,0 +1,62 @@ +import React, { memo, useCallback, useState } from 'react' +import { View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import Slider, { type SliderProps } from '../components/Slider' +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { setDesktopLyricTextSize } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + + +export default memo(() => { + const t = useI18n() + const fontSize = useSettingValue('desktopLyric.style.fontSize') + const theme = useTheme() + const [sliderSize, setSliderSize] = useState(fontSize) + const [isSliding, setSliding] = useState(false) + const handleSlidingStart = useCallback<NonNullable<SliderProps['onSlidingStart']>>(() => { + setSliding(true) + }, []) + const handleValueChange = useCallback<NonNullable<SliderProps['onValueChange']>>(value => { + setSliderSize(value) + }, []) + const handleSlidingComplete = useCallback<NonNullable<SliderProps['onSlidingComplete']>>(value => { + if (fontSize == value) return + void setDesktopLyricTextSize(value).then(() => { + updateSetting({ 'desktopLyric.style.fontSize': value }) + }).finally(() => { + setSliding(false) + }) + }, [fontSize]) + + return ( + <SubTitle title={t('setting_lyric_desktop_text_size')}> + <View style={styles.content}> + <Text style={{ color: theme['c-primary-font'] }}>{isSliding ? sliderSize : fontSize}</Text> + <Slider + minimumValue={100} + maximumValue={500} + onSlidingComplete={handleSlidingComplete} + onValueChange={handleValueChange} + onSlidingStart={handleSlidingStart} + step={2} + value={fontSize} + /> + </View> + </SubTitle> + ) +}) + +const styles = createStyle({ + content: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + }, +}) diff --git a/src/screens/Home/Setting/LyricDesktop/Theme.js b/src/screens/Home/Views/Setting/LyricDesktop/Theme.tsx similarity index 50% rename from src/screens/Home/Setting/LyricDesktop/Theme.js rename to src/screens/Home/Views/Setting/LyricDesktop/Theme.tsx index a04d25d..2900a5c 100644 --- a/src/screens/Home/Setting/LyricDesktop/Theme.js +++ b/src/screens/Home/Views/Setting/LyricDesktop/Theme.tsx @@ -1,24 +1,31 @@ -import React, { memo, useMemo } from 'react' - +import { updateSetting } from '@/core/common' +import { setDesktopLyricColor } from '@/core/desktopLyric' +import { useI18n } from '@/lang' +import React, { memo } from 'react' import { StyleSheet, View, TouchableOpacity } from 'react-native' -import { useGetter, useDispatch } from '@/store' import SubTitle from '../components/SubTitle' -import { useTranslation } from '@/plugins/i18n' -import { themes } from '@/utils/lyricDesktop' -const useActive = id => { - const themeDesktopLyric = useGetter('common', 'themeDesktopLyric') - const isActive = useMemo(() => themeDesktopLyric == id, [themeDesktopLyric, id]) - return isActive -} +const themes = [ + '#07c556', + '#fffa12', + '#19b5fe', + '#ff1222', + '#f1828d', + '#c851d4', + '#ffad12', + '#bdc3c7', + '#333333', + '#ffffff', +] as const -const ThemeItem = ({ id, color, setTheme }) => { - const theme = useGetter('common', 'theme') - const isActive = useActive(id) +const ThemeItem = ({ color, change }: { + color: string + change: (color: string) => void +}) => { return ( - <TouchableOpacity style={styles.item} activeOpacity={0.5} onPress={() => setTheme(id)}> - <View style={{ ...styles.colorContent, backgroundColor: theme.primary, borderColor: isActive ? color : 'transparent' }}> + <TouchableOpacity style={styles.item} activeOpacity={0.5} onPress={() => { change(color) }}> + <View style={styles.colorContent}> <View style={{ ...styles.image, backgroundColor: color }}></View> </View> </TouchableOpacity> @@ -26,14 +33,20 @@ const ThemeItem = ({ id, color, setTheme }) => { } export default memo(() => { - const { t } = useTranslation() - const setThemeDesktopLyric = useDispatch('common', 'setThemeDesktopLyric') + const t = useI18n() + + const setThemeDesktopLyric = (color: string) => { + const shadowColor = 'rgba(0,0,0,0.6)' + void setDesktopLyricColor(null, color, shadowColor).then(() => { + updateSetting({ 'desktopLyric.style.lyricPlayedColor': color, 'desktopLyric.style.lyricShadowColor': shadowColor }) + }) + } return ( <SubTitle title={t('setting_lyric_desktop_theme')}> <View style={styles.list}> { - themes.map(({ id, value }) => <ThemeItem key={id} color={value} id={id} setTheme={setThemeDesktopLyric} />) + themes.map(c => <ThemeItem key={c} color={c} change={setThemeDesktopLyric} />) } </View> </SubTitle> @@ -56,7 +69,7 @@ const styles = StyleSheet.create({ width: 26, height: 26, borderRadius: 4, - borderWidth: 1.6, + // borderWidth: 1.6, alignItems: 'center', justifyContent: 'center', }, diff --git a/src/screens/Home/Views/Setting/LyricDesktop/ViewWidth.tsx b/src/screens/Home/Views/Setting/LyricDesktop/ViewWidth.tsx new file mode 100644 index 0000000..3d57b27 --- /dev/null +++ b/src/screens/Home/Views/Setting/LyricDesktop/ViewWidth.tsx @@ -0,0 +1,63 @@ +import React, { memo, useCallback, useState } from 'react' +import { View } from 'react-native' + +import SubTitle from '../components/SubTitle' +import Slider, { type SliderProps } from '../components/Slider' +import { useI18n } from '@/lang' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { setDesktopLyricWidth } from '@/core/desktopLyric' +import { updateSetting } from '@/core/common' + + +export default memo(() => { + const t = useI18n() + const width = useSettingValue('desktopLyric.width') + const theme = useTheme() + const [sliderSize, setSliderSize] = useState(width) + const [isSliding, setSliding] = useState(false) + const handleSlidingStart = useCallback<NonNullable<SliderProps['onSlidingStart']>>(() => { + setSliding(true) + }, []) + const handleValueChange = useCallback<NonNullable<SliderProps['onValueChange']>>(value => { + setSliderSize(value) + }, []) + const handleSlidingComplete = useCallback<NonNullable<SliderProps['onSlidingComplete']>>(value => { + if (width == value) return + void setDesktopLyricWidth(value).then(() => { + updateSetting({ 'desktopLyric.width': value }) + }).finally(() => { + setSliding(false) + }) + }, [width]) + + return ( + <SubTitle title={t('setting_lyric_desktop_view_width')}> + <View style={styles.content}> + <Text style={{ color: theme['c-primary-font'] }}>{isSliding ? sliderSize : width}</Text> + <Slider + minimumValue={10} + maximumValue={100} + onSlidingComplete={handleSlidingComplete} + onValueChange={handleValueChange} + onSlidingStart={handleSlidingStart} + step={1} + value={width} + /> + </View> + </SubTitle> + ) +}) + +const styles = createStyle({ + content: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'wrap', + alignItems: 'center', + }, +}) + diff --git a/src/screens/Home/Setting/LyricDesktop/index.js b/src/screens/Home/Views/Setting/LyricDesktop/index.tsx similarity index 89% rename from src/screens/Home/Setting/LyricDesktop/index.js rename to src/screens/Home/Views/Setting/LyricDesktop/index.tsx index b045b4e..38af209 100644 --- a/src/screens/Home/Setting/LyricDesktop/index.js +++ b/src/screens/Home/Views/Setting/LyricDesktop/index.tsx @@ -11,11 +11,12 @@ import MaxLineNum from './MaxLineNum' import TextOpacity from './TextOpacity' import TextPositionX from './TextPositionX' import TextPositionY from './TextPositionY' +import { useI18n } from '@/lang' import Theme from './Theme' -import { useTranslation } from '@/plugins/i18n' +// import { useTranslation } from '@/plugins/i18n' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() return ( <Section title={t('setting_lyric_desktop')}> diff --git a/src/screens/Home/Setting/Other/Cache.js b/src/screens/Home/Views/Setting/Other/Cache.tsx similarity index 67% rename from src/screens/Home/Setting/Other/Cache.js rename to src/screens/Home/Views/Setting/Other/Cache.tsx index 205803f..afa2c8b 100644 --- a/src/screens/Home/Setting/Other/Cache.js +++ b/src/screens/Home/Views/Setting/Other/Cache.tsx @@ -1,42 +1,42 @@ import React, { memo, useCallback, useState, useEffect } from 'react' -import { StyleSheet, View, Text, InteractionManager } from 'react-native' +import { StyleSheet, View, InteractionManager } from 'react-native' -import { useGetter, useDispatch } from '@/store' // import { gzip, ungzip } from 'pako' import SubTitle from '../components/SubTitle' import Button from '../components/Button' -import { useTranslation } from '@/plugins/i18n' import { toast, resetNotificationPermissionCheck, confirmDialog } from '@/utils/tools' -import { getAppCacheSize, clearAppCache } from '@/utils/cache' +import { getAppCacheSize, clearAppCache } from '@/utils/nativeModules/cache' import { sizeFormate } from '@/utils' +import { useI18n } from '@/lang' +import Text from '@/components/common/Text' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() const [cleaning, setCleaning] = useState(false) - const [cacheSize, setCacheSize] = useState(null) + const [cacheSize, setCacheSize] = useState<string | null>(null) // const setting = useGetter('common', 'setting') - const theme = useGetter('common', 'theme') - const clearCache = useDispatch('list', 'clearCache') + // TODO clear list cache + // const clearCache = useDispatch('list', 'clearCache') const handleGetAppCacheSize = useCallback(() => { - getAppCacheSize().then(size => { + void getAppCacheSize().then(size => { setCacheSize(sizeFormate(size)) }) }, []) const handleCleanCache = useCallback(() => { if (cacheSize == null) return - confirmDialog({ + void confirmDialog({ message: t('confirm_tip'), confirmButtonText: t('list_remove_tip_button'), }).then(confirm => { if (!confirm) return setCleaning(true) - InteractionManager.runAfterInteractions(() => { + void InteractionManager.runAfterInteractions(() => { Promise.all([ clearAppCache(), - clearCache(), + // clearCache(), resetNotificationPermissionCheck(), ]).then(() => { toast(t('setting_other_cache_clear_success_tip')) @@ -46,7 +46,7 @@ export default memo(() => { }) }) }) - }, [cacheSize, clearCache, handleGetAppCacheSize, t]) + }, [cacheSize, handleGetAppCacheSize, t]) useEffect(() => { @@ -57,7 +57,7 @@ export default memo(() => { <> <SubTitle title={t('setting_other_cache')}> <View style={styles.cacheSize}> - <Text style={{ color: theme.normal }}>{cacheSize == null ? t('setting_other_cache_getting') : t('setting_other_cache_size') + cacheSize}</Text> + <Text>{cacheSize == null ? t('setting_other_cache_getting') : t('setting_other_cache_size') + cacheSize}</Text> </View> <View style={styles.clearBtn}> <Button disabled={cleaning} onPress={handleCleanCache}>{t('setting_other_cache_clear_btn')}</Button> diff --git a/src/screens/Home/Setting/Other/Log.js b/src/screens/Home/Views/Setting/Other/Log.js similarity index 100% rename from src/screens/Home/Setting/Other/Log.js rename to src/screens/Home/Views/Setting/Other/Log.js diff --git a/src/screens/Home/Setting/Other/index.js b/src/screens/Home/Views/Setting/Other/index.tsx similarity index 71% rename from src/screens/Home/Setting/Other/index.js rename to src/screens/Home/Views/Setting/Other/index.tsx index b14e4fc..10a6577 100644 --- a/src/screens/Home/Setting/Other/index.js +++ b/src/screens/Home/Views/Setting/Other/index.tsx @@ -2,17 +2,17 @@ import React, { memo } from 'react' import Section from '../components/Section' import Cache from './Cache' -import Log from './Log' +// import Log from './Log' // import MaxCache from './MaxCache' -import { useTranslation } from '@/plugins/i18n' +import { useI18n } from '@/lang' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() return ( <Section title={t('setting_other')}> <Cache /> - <Log /> + {/* <Log /> */} {/* <MaxCache /> */} </Section> ) diff --git a/src/screens/Home/Views/Setting/Player/IsHandleAudioFocus.tsx b/src/screens/Home/Views/Setting/Player/IsHandleAudioFocus.tsx new file mode 100644 index 0000000..9593282 --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsHandleAudioFocus.tsx @@ -0,0 +1,32 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle, toast } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isHandleAudioFocus = useSettingValue('player.isHandleAudioFocus') + const setHandleAudioFocus = (isHandleAudioFocus: boolean) => { + updateSetting({ 'player.isHandleAudioFocus': isHandleAudioFocus }) + toast(t('setting_play_handle_audio_focus_tip')) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isHandleAudioFocus} onChange={setHandleAudioFocus} label={t('setting_play_handle_audio_focus')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Player/IsPlayHighQuality.tsx b/src/screens/Home/Views/Setting/Player/IsPlayHighQuality.tsx new file mode 100644 index 0000000..f85ce19 --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsPlayHighQuality.tsx @@ -0,0 +1,31 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isPlayHighQuality = useSettingValue('player.isPlayHighQuality') + const setPlayHighQuality = (isPlayHighQuality: boolean) => { + updateSetting({ 'player.isPlayHighQuality': isPlayHighQuality }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isPlayHighQuality} onChange={setPlayHighQuality} label={t('setting_play_quality')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Player/IsS2T.tsx b/src/screens/Home/Views/Setting/Player/IsS2T.tsx new file mode 100644 index 0000000..3a93581 --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsS2T.tsx @@ -0,0 +1,31 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isS2t = useSettingValue('player.isS2t') + const setS2T = (isS2t: boolean) => { + updateSetting({ 'player.isS2t': isS2t }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isS2t} onChange={setS2T} label={t('setting_play_s2t')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Player/IsSavePlayTime.tsx b/src/screens/Home/Views/Setting/Player/IsSavePlayTime.tsx new file mode 100644 index 0000000..a37325e --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsSavePlayTime.tsx @@ -0,0 +1,30 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isSavePlayTime = useSettingValue('player.isSavePlayTime') + const setSavePlayTime = (isSavePlayTime: boolean) => { + updateSetting({ 'player.isSavePlayTime': isSavePlayTime }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isSavePlayTime} label={t('setting_player_save_play_time')} onChange={setSavePlayTime} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/Player/IsShowLyricRoma.tsx b/src/screens/Home/Views/Setting/Player/IsShowLyricRoma.tsx new file mode 100644 index 0000000..0bbb67f --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsShowLyricRoma.tsx @@ -0,0 +1,30 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isShowLyricRoma = useSettingValue('player.isShowLyricRoma') + const setShowLyricRoma = (isShowLyricRoma: boolean) => { + updateSetting({ 'player.isShowLyricRoma': isShowLyricRoma }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isShowLyricRoma} onChange={setShowLyricRoma} label={t('setting_play_show_roma')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/Player/IsShowLyricTranslation.tsx b/src/screens/Home/Views/Setting/Player/IsShowLyricTranslation.tsx new file mode 100644 index 0000000..709e663 --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsShowLyricTranslation.tsx @@ -0,0 +1,30 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isShowLyricTranslation = useSettingValue('player.isShowLyricTranslation') + const setShowLyricTranslation = (isShowLyricTranslation: boolean) => { + updateSetting({ 'player.isShowLyricTranslation': isShowLyricTranslation }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isShowLyricTranslation} onChange={setShowLyricTranslation} label={t('setting_play_show_translation')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) diff --git a/src/screens/Home/Views/Setting/Player/IsShowNotificationImage.tsx b/src/screens/Home/Views/Setting/Player/IsShowNotificationImage.tsx new file mode 100644 index 0000000..6efda6f --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/IsShowNotificationImage.tsx @@ -0,0 +1,31 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isShowNotificationImage = useSettingValue('player.isShowNotificationImage') + const setShowNotificationImage = (isShowNotificationImage: boolean) => { + updateSetting({ 'player.isShowNotificationImage': isShowNotificationImage }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isShowNotificationImage} onChange={setShowNotificationImage} label={t('setting_play_show_notification_image')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Player/MaxCache.tsx b/src/screens/Home/Views/Setting/Player/MaxCache.tsx new file mode 100644 index 0000000..1e76656 --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/MaxCache.tsx @@ -0,0 +1,53 @@ +import React, { memo, useMemo } from 'react' +import { View } from 'react-native' + +import InputItem, { InputItemProps } from '../components/InputItem' +import { createStyle, toast } from '@/utils/tools' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' + +const MAX_SIZE = 1024 * 1024 * 1024 +export default memo(() => { + const t = useI18n() + const cacheSize = useSettingValue('player.cacheSize') + const setCacheSize = (size: string) => { + updateSetting({ 'player.cacheSize': size }) + } + + const size = useMemo(() => { + let size: number | string = parseInt(cacheSize) + if (size == 0 || Number.isNaN(size)) size = '' + return size.toString() + }, [cacheSize]) + + const setSize: InputItemProps['onChanged'] = (value, callback) => { + let size: number | string = parseInt(value) + if (Number.isNaN(size) || size < 0) size = '' + else if (size > MAX_SIZE) size = MAX_SIZE + size = size.toString() + callback(size) + if (cacheSize == size) return + setCacheSize(size) + toast(t('setting_play_cache_size_save_tip')) + } + + return ( + <View style={styles.content} > + <InputItem + value={size} + label={t('setting_play_cache_size')} + onChanged={setSize} + keyboardType="number-pad" + placeholder={t('setting_play_cache_size_no_cache')} /> + </View> + ) +}) + +const styles = createStyle({ + content: { + marginTop: 10, + marginBottom: 15, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Player/index.tsx b/src/screens/Home/Views/Setting/Player/index.tsx new file mode 100644 index 0000000..ed2f512 --- /dev/null +++ b/src/screens/Home/Views/Setting/Player/index.tsx @@ -0,0 +1,30 @@ +import React, { memo } from 'react' + +import Section from '../components/Section' +import IsSavePlayTime from './IsSavePlayTime' +import IsPlayHighQuality from './IsPlayHighQuality' +import IsHandleAudioFocus from './IsHandleAudioFocus' +import IsShowNotificationImage from './IsShowNotificationImage' +import IsShowLyricTranslation from './IsShowLyricTranslation' +import IsShowLyricRoma from './IsShowLyricRoma' +import IsS2T from './IsS2T' +import MaxCache from './MaxCache' +import { useI18n } from '@/lang' + + +export default memo(() => { + const t = useI18n() + + return ( + <Section title={t('setting_play')}> + <IsSavePlayTime /> + <IsPlayHighQuality /> + <IsHandleAudioFocus /> + <IsShowNotificationImage /> + <IsShowLyricTranslation /> + <IsShowLyricRoma /> + <IsS2T /> + <MaxCache /> + </Section> + ) +}) diff --git a/src/screens/Home/Views/Setting/Search/IsShowHistorySearch.tsx b/src/screens/Home/Views/Setting/Search/IsShowHistorySearch.tsx new file mode 100644 index 0000000..c33caa4 --- /dev/null +++ b/src/screens/Home/Views/Setting/Search/IsShowHistorySearch.tsx @@ -0,0 +1,32 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isShowHistorySearch = useSettingValue('search.isShowHistorySearch') + const handleUpdate = (isShowHistorySearch: boolean) => { + updateSetting({ 'search.isShowHistorySearch': isShowHistorySearch }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isShowHistorySearch} onChange={handleUpdate} label={t('setting_search_show_history_search')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + marginBottom: 15, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Search/IsShowHotSearch.tsx b/src/screens/Home/Views/Setting/Search/IsShowHotSearch.tsx new file mode 100644 index 0000000..817588f --- /dev/null +++ b/src/screens/Home/Views/Setting/Search/IsShowHotSearch.tsx @@ -0,0 +1,31 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const isShowHotSearch = useSettingValue('search.isShowHotSearch') + const handleUpdate = (isShowHotSearch: boolean) => { + updateSetting({ 'search.isShowHotSearch': isShowHotSearch }) + } + + return ( + <View style={styles.content}> + <CheckBoxItem check={isShowHotSearch} onChange={handleUpdate} label={t('setting_search_show_hot_search')} /> + </View> + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + }, +}) + diff --git a/src/screens/Home/Views/Setting/Search/index.tsx b/src/screens/Home/Views/Setting/Search/index.tsx new file mode 100644 index 0000000..302619e --- /dev/null +++ b/src/screens/Home/Views/Setting/Search/index.tsx @@ -0,0 +1,18 @@ +import React, { memo } from 'react' + +import Section from '../components/Section' +import IsShowHotSearch from './IsShowHotSearch' +import IsShowHistorySearch from './IsShowHistorySearch' + +import { useI18n } from '@/lang' + +export default memo(() => { + const t = useI18n() + + return ( + <Section title={t('setting_search')}> + <IsShowHotSearch /> + <IsShowHistorySearch /> + </Section> + ) +}) diff --git a/src/screens/Home/Setting/Sync/History.js b/src/screens/Home/Views/Setting/Sync/History.tsx similarity index 85% rename from src/screens/Home/Setting/Sync/History.js rename to src/screens/Home/Views/Setting/Sync/History.tsx index beb9703..a1002b4 100644 --- a/src/screens/Home/Setting/Sync/History.js +++ b/src/screens/Home/Views/Setting/Sync/History.tsx @@ -1,14 +1,14 @@ import React, { memo, useRef, useState, useEffect, useCallback } from 'react' -import { StyleSheet, View, Text, TouchableOpacity, ScrollView } from 'react-native' -import { useGetter } from '@/store' +import { View, TouchableOpacity, ScrollView } from 'react-native' // import { gzip, ungzip } from 'pako' import { Icon } from '@/components/common/Icon' import Button from '../components/Button' import { useTranslation } from '@/plugins/i18n' -import { getSyncHostHistory, removeSyncHostHistory, setSyncHost } from '@/utils/tools' +import { createStyle, getSyncHostHistory, removeSyncHostHistory, setSyncHost } from '@/utils/tools' import Popup from '@/components/common/Popup' import { BorderWidths } from '@/theme' +import Text from '@/components/common/Text' const HistoryListItem = ({ item, index, remove, setHostInfo }) => { const theme = useGetter('common', 'theme') @@ -29,8 +29,8 @@ const HistoryListItem = ({ item, index, remove, setHostInfo }) => { return ( <View style={{ ...styles.listItem, borderBottomColor: theme.borderColor }}> <TouchableOpacity style={styles.listName} onPress={handleSetHost}> - <Text numberOfLines={1} style={{ fontSize: 12, color: theme.normal }}>{item.host}</Text> - <Text numberOfLines={1} style={{ fontSize: 12, color: theme.normal20 }}>{item.port}</Text> + <Text numberOfLines={1}>{item.host}</Text> + <Text color={theme['c-font-label']} numberOfLines={1}>{item.port}</Text> </TouchableOpacity> <TouchableOpacity onPress={handleRemove} style={styles.listMoreBtn}> <Icon name="remove" style={{ color: theme.normal35 }} size={16} /> @@ -75,7 +75,7 @@ const HistoryList = ({ visible, setHostInfo }) => { { list.length ? list.map((item, index) => <HistoryListItem item={item} index={index} remove={handleRemove} key={`${item.host}:${item.port}`} setHostInfo={setHostInfo} />) - : <Text style={{ ...styles.tipText, color: theme.normal10 }}>{t('setting_sync_history_empty')}</Text> + : <Text style={styles.tipText} color={theme['c-font-label']}>{t('setting_sync_history_empty')}</Text> } </ScrollView> ) @@ -110,7 +110,7 @@ export default memo(({ setHostInfo, isWaiting }) => { ) }) -const styles = StyleSheet.create({ +const styles = createStyle({ cacheSize: { marginBottom: 5, }, @@ -120,7 +120,6 @@ const styles = StyleSheet.create({ marginBottom: 15, }, tipText: { - fontSize: 14, textAlign: 'center', marginTop: 15, }, diff --git a/src/screens/Home/Setting/Sync/IsEnable.js b/src/screens/Home/Views/Setting/Sync/IsEnable.tsx similarity index 51% rename from src/screens/Home/Setting/Sync/IsEnable.js rename to src/screens/Home/Views/Setting/Sync/IsEnable.tsx index 6b4ddcf..bc040d3 100644 --- a/src/screens/Home/Setting/Sync/IsEnable.js +++ b/src/screens/Home/Views/Setting/Sync/IsEnable.tsx @@ -1,28 +1,37 @@ import React, { memo, useCallback, useState, useEffect, useRef, useMemo } from 'react' -import { View, Text, StyleSheet } from 'react-native' - -import { useGetter, useDispatch } from '@/store' +import { View } from 'react-native' import CheckBoxItem from '../components/CheckBoxItem' -import ConfirmAlert from '@/components/common/ConfirmAlert' +import ConfirmAlert, { type ConfirmAlertType } from '@/components/common/ConfirmAlert' import Input from '@/components/common/Input' -import { useTranslation } from '@/plugins/i18n' import { connect, disconnect, SYNC_CODE } from '@/plugins/sync' -import { getSyncHost, setSyncHost, toast, addSyncHostHistory } from '@/utils/tools' import InputItem from '../components/InputItem' -import { getWIFIIPV4Address } from '@/utils/utils' +import { getWIFIIPV4Address } from '@/utils/nativeModules/utils' +import { createStyle, toast } from '@/utils/tools' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' +import { addSyncHostHistory, getSyncHost, setSyncHost } from '@/utils/data' +import { setSyncMessage } from '@/core/sync' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { useStatus } from '@/store/sync/hook' +import Text from '@/components/common/Text' const addressRxp = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ const portRxp = /(\d+)/ -const HostInput = memo(({ setHost, host, disabled }) => { - const { t } = useTranslation() +const HostInput = memo(({ setHost, host, disabled }: { + setHost: (host: string) => void + host: string + disabled?: boolean +}) => { + const t = useI18n() const hostAddress = useMemo(() => { return addressRxp.test(host) ? RegExp.$1 : '' }, [host]) - const setHostAddress = useCallback((value, callback) => { + const setHostAddress = useCallback((value: string, callback: (host: string) => void) => { let hostAddress = addressRxp.test(value) ? RegExp.$1 : '' callback(hostAddress) if (host == hostAddress) return @@ -34,20 +43,24 @@ const HostInput = memo(({ setHost, host, disabled }) => { editable={!disabled} value={hostAddress} label={t('setting_sync_host_label')} - onChange={setHostAddress} + onChanged={setHostAddress} keyboardType="number-pad" placeholder={t('setting_sync_host_tip')} /> ) }) -const PortInput = memo(({ setPort, port, disabled }) => { - const { t } = useTranslation() +const PortInput = memo(({ setPort, port, disabled }: { + setPort: (port: string) => void + port: string + disabled?: boolean +}) => { + const t = useI18n() const portNum = useMemo(() => { return portRxp.test(port) ? RegExp.$1 : '' }, [port]) - const setPortAddress = useCallback((value, callback) => { + const setPortAddress = useCallback((value: string, callback: (port: string) => void) => { let portNum = portRxp.test(value) ? RegExp.$1 : '' callback(portNum) if (port == portNum) return @@ -59,31 +72,38 @@ const PortInput = memo(({ setPort, port, disabled }) => { editable={!disabled} value={portNum} label={t('setting_sync_port_label')} - onChange={setPortAddress} + onChanged={setPortAddress} keyboardType="number-pad" placeholder={t('setting_sync_port_tip')} /> ) }) -export default memo(({ hostInfo, setHostInfo, isWaiting, setIsWaiting }) => { - const { t } = useTranslation() - const setIsEnableSync = useDispatch('common', 'setIsEnableSync') - const syncStatus = useGetter('common', 'syncStatus') - const isEnableSync = useGetter('common', 'isEnableSync') +export default memo(({ hostInfo, setHostInfo, isWaiting, setIsWaiting }: { + hostInfo: { host: string, port: string } + isWaiting: boolean + setHostInfo: (hostInfo: { host: string, port: string }) => void + setIsWaiting: (isWaiting: boolean) => void +}) => { + const t = useI18n() + const setIsEnableSync = useCallback((enable: boolean) => { + updateSetting({ 'sync.enable': enable }) + }, []) + const syncStatus = useStatus() + const isEnableSync = useSettingValue('sync.enable') const isUnmountedRef = useRef(true) - const theme = useGetter('common', 'theme') + const theme = useTheme() const [address, setAddress] = useState('') - const [visibleCodeModal, setVisibleCodeModal] = useState(false) const [authCode, setAuthCode] = useState('') + const confirmAlertRef = useRef<ConfirmAlertType>(null) useEffect(() => { isUnmountedRef.current = false - getSyncHost().then(hostInfo => { + void getSyncHost().then(hostInfo => { if (isUnmountedRef.current) return setHostInfo(hostInfo) }) - getWIFIIPV4Address().then(address => { + void getWIFIIPV4Address().then(address => { if (isUnmountedRef.current) return setAddress(address) }) @@ -98,37 +118,40 @@ export default memo(({ hostInfo, setHostInfo, isWaiting, setIsWaiting }) => { case SYNC_CODE.authFailed: toast(t('setting_sync_code_fail')) case SYNC_CODE.missingAuthCode: - setVisibleCodeModal(true) + confirmAlertRef.current?.setVisible(true) + break + case SYNC_CODE.msgBlockedIp: + toast(t('setting_sync_code_blocked_ip')) break default: break } }, [syncStatus.message, t]) - const handleSetEnableSync = useCallback(flag => { - setIsEnableSync(flag) + const handleSetEnableSync = useCallback((enable: boolean) => { + setIsEnableSync(enable) - if (flag) addSyncHostHistory(hostInfo.host, hostInfo.port) + if (enable) void addSyncHostHistory(hostInfo.host, hostInfo.port) - global.isSyncEnableing = true + global.lx.isSyncEnableing = true setIsWaiting(true) - ;(flag ? connect() : disconnect()).finally(() => { - global.isSyncEnableing = false + ;(enable ? connect() : disconnect()).finally(() => { + global.lx.isSyncEnableing = false setIsWaiting(false) }) }, [hostInfo, setIsEnableSync, setIsWaiting]) - const setHost = useCallback(host => { + const setHost = useCallback((host: string) => { if (host == hostInfo.host) return const newHostInfo = { ...hostInfo, host } - setSyncHost(newHostInfo) + void setSyncHost(newHostInfo) setHostInfo(newHostInfo) }, [hostInfo]) - const setPort = useCallback(port => { + const setPort = useCallback((port: string) => { if (port == hostInfo.host) return const newHostInfo = { ...hostInfo, port } - setSyncHost(newHostInfo) + void setSyncHost(newHostInfo) setHostInfo(newHostInfo) }, [hostInfo]) @@ -136,43 +159,60 @@ export default memo(({ hostInfo, setHostInfo, isWaiting, setIsWaiting }) => { const port = useMemo(() => hostInfo.port, [hostInfo.port]) const status = useMemo(() => { - return `${syncStatus.message ? syncStatus.message : syncStatus.status ? t('setting_sync_status_enabled') : t('sync_status_disabled')}` + let status + switch (syncStatus.message) { + case SYNC_CODE.msgBlockedIp: + status = t('setting_sync_code_blocked_ip') + break + case SYNC_CODE.authFailed: + status = t('setting_sync_code_fail') + break + default: + status = syncStatus.message + ? syncStatus.message + : syncStatus.status + ? t('setting_sync_status_enabled') + : t('sync_status_disabled') + break + } + return status }, [syncStatus.message, syncStatus.status, t]) const handleCancelSetCode = useCallback(() => { - setVisibleCodeModal(false) + setSyncMessage('') + confirmAlertRef.current?.setVisible(false) }, []) const handleSetCode = useCallback(() => { const code = authCode.trim() if (code.length != 6) return - connect(code) + void connect(code) setAuthCode('') - setVisibleCodeModal(false) + confirmAlertRef.current?.setVisible(false) }, [authCode]) return ( <> - <View style={{ marginTop: 5 }}> + <View style={styles.infoContent}> <CheckBoxItem disabled={isWaiting || !port || !host} check={isEnableSync} label={t('setting_sync_enbale')} onChange={handleSetEnableSync} /> - <Text style={{ color: theme.normal, marginLeft: 25, marginTop: 10, fontSize: 12 }}>{t('setting_sync_address', { address })}</Text> - <Text style={{ color: theme.normal, marginLeft: 25, fontSize: 12 }}>{t('setting_sync_status', { status })}</Text> + <Text style={styles.textAddr} size={13}>{t('setting_sync_address', { address })}</Text> + <Text style={styles.text} size={13}>{t('setting_sync_status', { status })}</Text> </View> - <View style={{ marginTop: 10 }} > + <View style={styles.inputContent} > <HostInput setHost={setHost} host={host} disabled={isWaiting || isEnableSync} /> <PortInput setPort={setPort} port={port} disabled={isWaiting || isEnableSync} /> </View> <ConfirmAlert - visible={visibleCodeModal} - onHide={handleCancelSetCode} + onCancel={handleCancelSetCode} onConfirm={handleSetCode} + ref={confirmAlertRef} > <View style={styles.authCodeContent}> - <Text style={{ color: theme.normal, marginBottom: 5 }}>{t('setting_sync_code_label')}</Text> + <Text style={styles.authCodeLabel}>{t('setting_sync_code_label')}</Text> <Input placeholder={t('setting_sync_code_input_tip')} value={authCode} onChangeText={setAuthCode} - style={{ ...styles.authCodeInput, backgroundColor: theme.secondary40 }} + style={{ ...styles.authCodeInput, backgroundColor: theme['c-primary-background'] }} /> </View> </ConfirmAlert> @@ -181,20 +221,36 @@ export default memo(({ hostInfo, setHostInfo, isWaiting, setIsWaiting }) => { }) -const styles = StyleSheet.create({ +const styles = createStyle({ + infoContent: { + marginTop: 5, + }, + textAddr: { + marginLeft: 25, + marginTop: 5, + }, + text: { + marginLeft: 25, + }, + inputContent: { + marginTop: 8, + }, authCodeContent: { flexGrow: 1, flexShrink: 1, flexDirection: 'column', }, + authCodeLabel: { + marginBottom: 5, + }, authCodeInput: { flexGrow: 1, flexShrink: 1, - minWidth: 240, + minWidth: 260, borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, + // paddingTop: 2, + // paddingBottom: 2, + // fontSize: 14, }, // tagTypeList: { diff --git a/src/screens/Home/Setting/Sync/index.js b/src/screens/Home/Views/Setting/Sync/index.tsx similarity index 64% rename from src/screens/Home/Setting/Sync/index.js rename to src/screens/Home/Views/Setting/Sync/index.tsx index da56827..46329a5 100644 --- a/src/screens/Home/Setting/Sync/index.js +++ b/src/screens/Home/Views/Setting/Sync/index.tsx @@ -2,20 +2,20 @@ import React, { memo, useState } from 'react' import Section from '../components/Section' import IsEnable from './IsEnable' -import History from './History' +// import History from './History' +import { useI18n } from '@/lang' // import SyncHost from './SyncHost' -import { useTranslation } from '@/plugins/i18n' export default memo(() => { - const { t } = useTranslation() + const t = useI18n() const [hostInfo, setHostInfo] = useState({ host: '', port: '' }) - const [isWaiting, setIsWaiting] = useState(global.isSyncEnableing) + const [isWaiting, setIsWaiting] = useState(global.lx.isSyncEnableing) return ( <Section title={t('setting_sync')}> <IsEnable hostInfo={hostInfo} setHostInfo={setHostInfo} isWaiting={isWaiting} setIsWaiting={setIsWaiting} /> - <History setHostInfo={setHostInfo} isWaiting={isWaiting} /> + {/* <History setHostInfo={setHostInfo} isWaiting={isWaiting} /> */} </Section> ) }) diff --git a/src/screens/Home/Views/Setting/Sync/isEnable.tsx.bak b/src/screens/Home/Views/Setting/Sync/isEnable.tsx.bak new file mode 100644 index 0000000..4ce158a --- /dev/null +++ b/src/screens/Home/Views/Setting/Sync/isEnable.tsx.bak @@ -0,0 +1,240 @@ +import React, { memo, useState, useEffect, useRef } from 'react' +import { View } from 'react-native' + +import CheckBoxItem from '../components/CheckBoxItem' +import ConfirmAlert, { ConfirmAlertType } from '@/components/common/ConfirmAlert' +import Input from '@/components/common/Input' +import { connect, disconnect, SYNC_CODE } from '@/plugins/sync' +import InputItem from '../components/InputItem' +import { getWIFIIPV4Address } from '@/utils/nativeModules/utils' +import { createStyle, toast } from '@/utils/tools' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' +import { addSyncHostHistory, getSyncHost, setSyncHost } from '@/utils/data' +import { setSpText } from '@/utils/pixelRatio' +import { setSyncMessage } from '@/core/sync' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import { useStatus } from '@/store/sync/hook' +import Text from '@/components/common/Text' + +const addressRxp = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/ +const portRxp = /(\d+)/ + +const HostInput = ({ setHost, host, disabled }: { + setHost: (host: string) => void + host: string + disabled?: boolean +}) => { + const t = useI18n() + + const hostAddress = useMemo(() => { + return addressRxp.test(host) ? RegExp.$1 : '' + }, [host]) + + const setHostAddress = useCallback((value: string, callback: (host: string) => void) => { + let hostAddress = addressRxp.test(value) ? RegExp.$1 : '' + callback(hostAddress) + if (host == hostAddress) return + setHost(hostAddress) + }, [host, setHost]) + + return ( + <InputItem + editable={!disabled} + value={hostAddress} + label={t('setting_sync_host_label')} + onChanged={setHostAddress} + keyboardType="number-pad" + placeholder={t('setting_sync_host_tip')} /> + ) +} + +const PortInput = ({ setPort, port, disabled }: { + setPort: (port: string) => void + port: string + disabled?: boolean +}) => { + const t = useI18n() + + const portNum = useMemo(() => { + return portRxp.test(port) ? RegExp.$1 : '' + }, [port]) + + const setPortAddress = useCallback((value: string, callback: (port: string) => void) => { + let portNum = portRxp.test(value) ? RegExp.$1 : '' + callback(portNum) + if (port == portNum) return + setPort(portNum) + }, [port, setPort]) + + return ( + <InputItem + editable={!disabled} + value={portNum} + label={t('setting_sync_port_label')} + onChanged={setPortAddress} + keyboardType="number-pad" + placeholder={t('setting_sync_port_tip')} /> + ) +} + +const Status = () => { + const t = useI18n() + const syncStatus = useStatus() + const status = `${syncStatus.message ? syncStatus.message : syncStatus.status ? t('setting_sync_status_enabled') : t('sync_status_disabled')}` + + return <Text style={styles.text} size={13}>{t('setting_sync_status', { status })}</Text> +} + +export default memo(({ isWaiting, setIsWaiting }: { + hostInfo: { host: string, port: string } + isWaiting: boolean + setHostInfo: (hostInfo: { host: string, port: string }) => void + setIsWaiting: (isWaiting: boolean) => void +}) => { + const t = useI18n() + const setIsEnableSync = (enable: boolean) => { + updateSetting({ 'sync.enable': enable }) + } + const isEnableSync = useSettingValue('sync.enable') + const isUnmountedRef = useRef(true) + const theme = useTheme() + const [address, setAddress] = useState('') + const [authCode, setAuthCode] = useState('') + const confirmAlertRef = useRef<ConfirmAlertType>(null) + + useEffect(() => { + isUnmountedRef.current = false + void getSyncHost().then(hostInfo => { + if (isUnmountedRef.current) return + setHostInfo(hostInfo) + }) + void getWIFIIPV4Address().then(address => { + if (isUnmountedRef.current) return + setAddress(address) + }) + + return () => { + isUnmountedRef.current = true + } + }, []) + + useEffect(() => { + switch (syncStatus.message) { + case SYNC_CODE.authFailed: + toast(t('setting_sync_code_fail')) + case SYNC_CODE.missingAuthCode: + confirmAlertRef.current?.setVisible(true) + break + default: + break + } + }, [syncStatus.message, t]) + + const handleSetEnableSync = (enable: boolean) => { + setIsEnableSync(enable) + + if (enable) void addSyncHostHistory(hostInfo.host, hostInfo.port) + + global.lx.isSyncEnableing = true + setIsWaiting(true) + ;(enable ? connect() : disconnect()).finally(() => { + global.lx.isSyncEnableing = false + setIsWaiting(false) + }) + } + + + const setHost = (host: string) => { + if (host == hostInfo.host) return + const newHostInfo = { ...hostInfo, host } + void setSyncHost(newHostInfo) + setHostInfo(newHostInfo) + } + const setPort = (port: string) => { + if (port == hostInfo.host) return + const newHostInfo = { ...hostInfo, port } + void setSyncHost(newHostInfo) + setHostInfo(newHostInfo) + } + + const handleCancelSetCode = () => { + setSyncMessage('') + confirmAlertRef.current?.setVisible(false) + } + const handleSetCode = () => { + const code = authCode.trim() + if (code.length != 6) return + void connect(code) + setAuthCode('') + confirmAlertRef.current?.setVisible(false) + } + + return ( + <> + <View style={{ marginTop: 5 }}> + <CheckBoxItem disabled={isWaiting || !port || !host} check={isEnableSync} label={t('setting_sync_enbale')} onChange={handleSetEnableSync} /> + <Text style={{ ...styles.text, marginTop: setSpText(5) }} size={13}>{t('setting_sync_address', { address })}</Text> + <Status /> + </View> + <View style={{ marginTop: setSpText(10) }} > + <HostInput setHost={setHost} host={hostInfo.host} disabled={isWaiting || isEnableSync} /> + <PortInput setPort={setPort} port={hostInfo.port} disabled={isWaiting || isEnableSync} /> + </View> + <ConfirmAlert + onCancel={handleCancelSetCode} + onConfirm={handleSetCode} + ref={confirmAlertRef} + > + <View style={styles.authCodeContent}> + <Text style={{ marginBottom: setSpText(5) }}>{t('setting_sync_code_label')}</Text> + <Input + placeholder={t('setting_sync_code_input_tip')} + value={authCode} + onChangeText={setAuthCode} + style={{ ...styles.authCodeInput, backgroundColor: theme['c-primary-background'] }} + /> + </View> + </ConfirmAlert> + </> + ) +}) + + +const styles = createStyle({ + authCodeContent: { + flexGrow: 1, + flexShrink: 1, + flexDirection: 'column', + }, + authCodeInput: { + flexGrow: 1, + flexShrink: 1, + minWidth: 240, + borderRadius: 4, + paddingTop: 2, + paddingBottom: 2, + fontSize: 14, + }, + text: { + marginLeft: 25, + }, + + // tagTypeList: { + // flexDirection: 'row', + // flexWrap: 'wrap', + // }, + // tagButton: { + // // marginRight: 10, + // borderRadius: 4, + // marginRight: 10, + // marginBottom: 10, + // }, + // tagButtonText: { + // paddingLeft: 12, + // paddingRight: 12, + // paddingTop: 8, + // paddingBottom: 8, + // }, +}) diff --git a/src/screens/Home/Views/Setting/Version.tsx b/src/screens/Home/Views/Setting/Version.tsx new file mode 100644 index 0000000..08f31a9 --- /dev/null +++ b/src/screens/Home/Views/Setting/Version.tsx @@ -0,0 +1,91 @@ +import React, { memo, useState, useEffect } from 'react' +import { StyleSheet, View } from 'react-native' + +import Section from './components/Section' +import SubTitle from './components/SubTitle' +import Button from './components/Button' +import { sizeFormate } from '@/utils' + +import { useI18n } from '@/lang' +import { useVersionDownloadProgressUpdated, useVersionInfo } from '@/store/version/hook' +import Text from '@/components/common/Text' +import { showModal } from '@/core/version' + +const currentVer = process.versions.app +export default memo(() => { + const t = useI18n() + const versionInfo = useVersionInfo() + // const versionStatus = useVrsionUpdateStatus() + const [title, setTitle] = useState('') + const [tip, setTip] = useState('') + const progress = useVersionDownloadProgressUpdated() + const handleOpenVersionModal = () => { + // setVersionInfo({ showModal: true }) + showModal() + } + + useEffect(() => { + if (versionInfo.isLatest) { + setTitle(t('version_tip_latest')) + setTip('') + } else if (versionInfo.isUnknown) { + setTitle(t('version_title_unknown')) + setTip(t('version_tip_unknown')) + } else { + switch (versionInfo.status) { + case 'downloading': + setTitle(t('version_title_new')) + setTip(t('version_btn_downloading', { + total: sizeFormate(progress.total), + current: sizeFormate(progress.current), + progress: progress.total ? (progress.current / progress.total * 100).toFixed(2) : '0', + })) + break + case 'downloaded': + setTitle(t('version_title_update')) + setTip('') + break + case 'checking': + setTitle(t('version_title_checking')) + setTip('') + break + case 'error': + setTitle(t('version_title_failed')) + setTip(t('version_tip_failed')) + break + // case 'idle': + // break + default: + setTitle(t('version_title_new')) + setTip('') + break + } + } + }, [t, versionInfo, progress]) + + return ( + <Section title={t('setting_version')}> + <SubTitle title={title}> + <View style={styles.desc}> + <Text size={14}>{t('version_label_latest_ver')}{versionInfo.newVersion?.version}</Text> + <Text size={14}>{t('version_label_current_ver')}{currentVer}</Text> + { + tip ? <Text size={14}>{tip}</Text> : null + } + </View> + <View style={styles.btn}> + <Button onPress={handleOpenVersionModal}>{t('setting_version_show_ver_modal')}</Button> + </View> + </SubTitle> + </Section> + ) +}) + +const styles = StyleSheet.create({ + desc: { + marginBottom: 8, + }, + btn: { + flexDirection: 'row', + }, +}) diff --git a/src/screens/Home/Views/Setting/components/Button.tsx b/src/screens/Home/Views/Setting/components/Button.tsx new file mode 100644 index 0000000..6a933f3 --- /dev/null +++ b/src/screens/Home/Views/Setting/components/Button.tsx @@ -0,0 +1,29 @@ +import React, { memo } from 'react' + +import Button, { BtnProps } from '@/components/common/Button' +import Text from '@/components/common/Text' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' + +type ButtonProps = BtnProps + +export default memo(({ disabled, onPress, children }: ButtonProps) => { + const theme = useTheme() + + return ( + <Button style={{ ...styles.button, backgroundColor: theme['c-button-background'] }} onPress={onPress} disabled={disabled}> + <Text size={14} color={theme['c-button-font']}>{children}</Text> + </Button> + ) +}) + +const styles = createStyle({ + button: { + paddingLeft: 10, + paddingRight: 10, + paddingTop: 5, + paddingBottom: 5, + borderRadius: 4, + marginRight: 10, + }, +}) diff --git a/src/screens/Home/Views/Setting/components/CheckBoxItem.tsx b/src/screens/Home/Views/Setting/components/CheckBoxItem.tsx new file mode 100644 index 0000000..41377d1 --- /dev/null +++ b/src/screens/Home/Views/Setting/components/CheckBoxItem.tsx @@ -0,0 +1,24 @@ +import React, { memo } from 'react' + +import { View } from 'react-native' + +import CheckBox, { CheckBoxProps } from '@/components/common/CheckBox' +import { createStyle } from '@/utils/tools' + + +export default memo((props: CheckBoxProps) => { + return ( + <View style={styles.container}> + <CheckBox {...props} /> + </View> + ) +}) + +const styles = createStyle({ + container: { + paddingLeft: 25, + // marginTop: -10, + // marginBottom: 0, + }, +}) + diff --git a/src/screens/Home/Setting/components/InputItem.js b/src/screens/Home/Views/Setting/components/InputItem.tsx similarity index 63% rename from src/screens/Home/Setting/components/InputItem.js rename to src/screens/Home/Views/Setting/components/InputItem.tsx index 98e5d79..9f7c1b4 100644 --- a/src/screens/Home/Setting/components/InputItem.js +++ b/src/screens/Home/Views/Setting/components/InputItem.tsx @@ -1,23 +1,32 @@ import React, { memo, useState, useCallback, useEffect, useRef } from 'react' -import { StyleSheet, View, Text, Keyboard } from 'react-native' -import { useGetter } from '@/store' +import { StyleSheet, View, Keyboard } from 'react-native' +import type { InputType, InputProps } from '@/components/common/Input' import Input from '@/components/common/Input' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' -export default memo(({ value, label, onChange, ...props }) => { + +export interface InputItemProps extends InputProps { + value: string + label: string + onChanged: (text: string, callback: (vlaue: string) => void) => void +} + +export default memo(({ value, label, onChanged, ...props }: InputItemProps) => { const [text, setText] = useState(value) const textRef = useRef(value) const isMountRef = useRef(false) - const inputRef = useRef() - const theme = useGetter('common', 'theme') + const inputRef = useRef<InputType>(null) + const theme = useTheme() const saveValue = useCallback(() => { - onChange && onChange(text, value => { + onChanged?.(text, (value: string) => { if (!isMountRef.current) return const newValue = String(value) setText(newValue) textRef.current = newValue }) - }, [onChange, text]) + }, [onChanged, text]) useEffect(() => { isMountRef.current = true return () => { @@ -27,7 +36,7 @@ export default memo(({ value, label, onChange, ...props }) => { useEffect(() => { const handleKeyboardDidHide = () => { if (!inputRef.current?.isFocused()) return - onChange && onChange(textRef.current, value => { + onChanged?.(textRef.current, value => { if (!isMountRef.current) return const newValue = String(value) setText(newValue) @@ -39,7 +48,7 @@ export default memo(({ value, label, onChange, ...props }) => { return () => { keyboardDidHide.remove() } - }, [onChange]) + }, [onChanged]) useEffect(() => { if (value != text) { const newValue = String(value) @@ -47,18 +56,18 @@ export default memo(({ value, label, onChange, ...props }) => { textRef.current = newValue } }, [value]) - const handleSetSelectMode = useCallback(text => { + const handleSetSelectMode = useCallback((text: string) => { setText(text) textRef.current = text }, []) return ( <View style={styles.container}> - <Text style={{ ...styles.label, color: theme.normal }}>{label}</Text> + <Text style={styles.label} size={14}>{label}</Text> <Input value={text} ref={inputRef} onChangeText={handleSetSelectMode} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} + style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} {...props} onBlur={saveValue} /> @@ -72,16 +81,15 @@ const styles = StyleSheet.create({ marginBottom: 15, }, label: { - fontSize: 12, + marginBottom: 2, }, input: { backgroundColor: 'rgba(0,0,0,0.2)', flexGrow: 1, flexShrink: 1, borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, + // paddingTop: 3, + // paddingBottom: 3, maxWidth: 300, }, }) diff --git a/src/screens/Home/Views/Setting/components/Section.tsx b/src/screens/Home/Views/Setting/components/Section.tsx new file mode 100644 index 0000000..e255db5 --- /dev/null +++ b/src/screens/Home/Views/Setting/components/Section.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import { View } from 'react-native' + +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' + + +interface Props { + title: string + children: React.ReactNode | React.ReactNode[] +} + +export default ({ title, children }: Props) => { + const theme = useTheme() + + return ( + <View style={styles.container}> + <Text style={{ ...styles.title, borderLeftColor: theme['c-primary'] }} size={16} >{title}</Text> + <View> + {children} + </View> + </View> + ) +} + + +const styles = createStyle({ + container: { + // paddingLeft: 10, + // backgroundColor: 'rgba(0,0,0,0.2)', + }, + title: { + borderLeftWidth: 5, + paddingLeft: 12, + marginBottom: 10, + // lineHeight: 16, + }, +}) diff --git a/src/screens/Home/Setting/components/Slider.js b/src/screens/Home/Views/Setting/components/Slider.tsx similarity index 51% rename from src/screens/Home/Setting/components/Slider.js rename to src/screens/Home/Views/Setting/components/Slider.tsx index 61656e2..d59f057 100644 --- a/src/screens/Home/Setting/components/Slider.js +++ b/src/screens/Home/Views/Setting/components/Slider.tsx @@ -1,11 +1,16 @@ + import React, { memo } from 'react' -import Slider from '@react-native-community/slider' -import { StyleSheet } from 'react-native' -import { useGetter } from '@/store' +import Slider, { type SliderProps } from '@react-native-community/slider' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' -export default memo(({ value, minimumValue, maximumValue, onSlidingStart, onSlidingComplete, onValueChange, step }) => { - const theme = useGetter('common', 'theme') +export type { + SliderProps, +} + +export default memo(({ value, minimumValue, maximumValue, onSlidingStart, onSlidingComplete, onValueChange, step }: SliderProps) => { + const theme = useTheme() return ( <Slider @@ -13,9 +18,9 @@ export default memo(({ value, minimumValue, maximumValue, onSlidingStart, onSlid style={styles.slider} minimumValue={minimumValue} maximumValue={maximumValue} - minimumTrackTintColor={theme.secondary30} - maximumTrackTintColor={theme.secondary30} - thumbTintColor={theme.secondary} + minimumTrackTintColor={theme['c-button-background-active']} + maximumTrackTintColor={theme['c-button-background']} + thumbTintColor={theme['c-primary-light-100']} onSlidingStart={onSlidingStart} onSlidingComplete={onSlidingComplete} onValueChange={onValueChange} @@ -25,7 +30,7 @@ export default memo(({ value, minimumValue, maximumValue, onSlidingStart, onSlid }) -const styles = StyleSheet.create({ +const styles = createStyle({ slider: { flexShrink: 0, flexGrow: 1, diff --git a/src/screens/Home/Views/Setting/components/SubTitle.tsx b/src/screens/Home/Views/Setting/components/SubTitle.tsx new file mode 100644 index 0000000..b540133 --- /dev/null +++ b/src/screens/Home/Views/Setting/components/SubTitle.tsx @@ -0,0 +1,30 @@ +import React, { memo } from 'react' + +import { View } from 'react-native' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + +export default memo(({ title, children }: { + title: string + children: React.ReactNode | React.ReactNode[] +}) => { + return ( + <View style={styles.container}> + <Text style={styles.title}>{title}</Text> + {children} + </View> + ) +}) + + +const styles = createStyle({ + container: { + paddingLeft: 25, + marginBottom: 18, + }, + title: { + marginLeft: -10, + marginBottom: 10, + // lineHeight: 16, + }, +}) diff --git a/src/screens/Home/Setting/index.js b/src/screens/Home/Views/Setting/index.tsx similarity index 67% rename from src/screens/Home/Setting/index.js rename to src/screens/Home/Views/Setting/index.tsx index 04ba9e3..06195a6 100644 --- a/src/screens/Home/Setting/index.js +++ b/src/screens/Home/Views/Setting/index.tsx @@ -1,6 +1,6 @@ +import { createStyle } from '@/utils/tools' import React from 'react' import { - StyleSheet, View, ScrollView, } from 'react-native' @@ -9,6 +9,7 @@ import { import Basic from './Basic' import Player from './Player' import LyricDesktop from './LyricDesktop' +import Search from './Search' import List from './List' import Sync from './Sync' import Backup from './Backup' @@ -16,11 +17,14 @@ import Other from './Other' import Version from './Version' import About from './About' -const styles = StyleSheet.create({ +const styles = createStyle({ scrollView: { }, content: { - padding: 15, + paddingLeft: 15, + paddingRight: 15, + paddingTop: 15, + paddingBottom: 15, flex: 0, }, }) @@ -32,20 +36,13 @@ export default () => { <Basic /> <Player /> <LyricDesktop /> + <Search /> <List /> <Sync /> <Backup /> <Other /> <Version /> <About /> - {/* <Text>setting</Text> */} - {/* <View><Menu menus={[ - { name: '播放', id: '456' }, - { name: '删除', id: '432' }, - { name: '添加', id: '4561' }, - { name: '打开详情页', id: '4356' }, - { name: '移动', id: '4564' }, - ]}>123</Menu></View> */} </View> </ScrollView> ) diff --git a/src/screens/Home/Views/SongList/Content.tsx b/src/screens/Home/Views/SongList/Content.tsx new file mode 100644 index 0000000..56f5840 --- /dev/null +++ b/src/screens/Home/Views/SongList/Content.tsx @@ -0,0 +1,72 @@ +import { getSongListSetting, saveSongListSetting } from '@/utils/data' +import React, { useEffect, useRef } from 'react' +import { StyleSheet, View } from 'react-native' + +// import List from './List/List' +import HeaderBar, { type HeaderBarProps, type HeaderBarType } from './HeaderBar' +import songlistState, { type InitState, type SortInfo } from '@/store/songlist/state' +import List, { type ListType } from './List' + + +interface SonglistInfo { + source: InitState['sources'][number] + sortId: SortInfo['id'] + tagId: string +} + +export default () => { + const headerBarRef = useRef<HeaderBarType>(null) + const listRef = useRef<ListType>(null) + const songlistInfo = useRef<SonglistInfo>({ source: 'kw', sortId: '5', tagId: '' }) + + useEffect(() => { + void getSongListSetting().then(info => { + songlistInfo.current.source = info.source + songlistInfo.current.sortId = info.sortId + songlistInfo.current.tagId = info.tagId + headerBarRef.current?.setSource(info.source, info.sortId, info.tagName, info.tagId) + listRef.current?.loadList(info.source, info.sortId, info.tagId) + }) + }, []) + + const handleSortChange: HeaderBarProps['onSortChange'] = (id) => { + songlistInfo.current.sortId = id + void saveSongListSetting({ sortId: id }) + listRef.current?.loadList(songlistInfo.current.source, id, songlistInfo.current.tagId) + } + + const handleTagChange: HeaderBarProps['onTagChange'] = (name, id) => { + songlistInfo.current.tagId = id + void saveSongListSetting({ tagName: name, tagId: id }) + listRef.current?.loadList(songlistInfo.current.source, songlistInfo.current.sortId, id) + } + + const handleSourceChange: HeaderBarProps['onSourceChange'] = (source) => { + songlistInfo.current.source = source + songlistInfo.current.tagId = '' + songlistInfo.current.sortId = songlistState.sortList[source]![0].id + void saveSongListSetting({ sortId: songlistInfo.current.sortId, source, tagId: '', tagName: '' }) + headerBarRef.current?.setSource(source, songlistInfo.current.sortId, '', songlistInfo.current.tagId) + listRef.current?.loadList(source, songlistInfo.current.sortId, songlistInfo.current.tagId) + } + + return ( + <View style={styles.container}> + <HeaderBar + ref={headerBarRef} + onSortChange={handleSortChange} + onTagChange={handleTagChange} + onSourceChange={handleSourceChange} + /> + <List ref={listRef} /> + </View> + ) +} + +const styles = StyleSheet.create({ + container: { + position: 'relative', + flex: 1, + }, +}) + diff --git a/src/screens/Home/Views/SongList/HeaderBar/OpenList/Modal.tsx b/src/screens/Home/Views/SongList/HeaderBar/OpenList/Modal.tsx new file mode 100644 index 0000000..d5c7f54 --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/OpenList/Modal.tsx @@ -0,0 +1,143 @@ +import React, { useRef, useImperativeHandle, forwardRef, useState } from 'react' +import ConfirmAlert, { type ConfirmAlertType } from '@/components/common/ConfirmAlert' +import Text from '@/components/common/Text' +import { View } from 'react-native' +import Input, { type InputType } from '@/components/common/Input' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +// import SourceSelector, { type SourceSelectorProps, type SourceSelectorType } from '../SourceSelector' +import { type Source } from '@/store/songlist/state' + +interface IdInputType { + setText: (text: string) => void + getText: () => string + focus: () => void +} +const IdInput = forwardRef<IdInputType, {}>((props, ref) => { + const theme = useTheme() + const t = useI18n() + const [text, setText] = useState('') + const inputRef = useRef<InputType>(null) + + useImperativeHandle(ref, () => ({ + getText() { + return text.trim() + }, + setText(text) { + setText(text) + }, + focus() { + inputRef.current?.focus() + }, + })) + + return ( + <Input + ref={inputRef} + placeholder={t('songlist_open_input_placeholder')} + value={text} + onChangeText={setText} + style={{ ...styles.input, backgroundColor: theme['c-primary-input-background'] }} + /> + ) +}) + + +export interface ModalProps { + onOpenId: (id: string) => void + // onSourceChange: SourceSelectorProps['onSourceChange'] +} +export interface ModalType { + show: (source: Source) => void +} + +export default forwardRef<ModalType, ModalProps>(({ onOpenId }, ref) => { + const alertRef = useRef<ConfirmAlertType>(null) + // const sourceSelectorRef = useRef<SourceSelectorType>(null) + const inputRef = useRef<IdInputType>(null) + const [visible, setVisible] = useState(false) + const theme = useTheme() + const t = useI18n() + + const handleShow = (source: Source) => { + alertRef.current?.setVisible(true) + requestAnimationFrame(() => { + inputRef.current?.setText('') + // sourceSelectorRef.current?.setSource(source) + setTimeout(() => { + inputRef.current?.focus() + }, 300) + }) + } + useImperativeHandle(ref, () => ({ + show(source) { + if (visible) handleShow(source) + else { + setVisible(true) + requestAnimationFrame(() => { + handleShow(source) + }) + } + }, + })) + + const handleConfirm = () => { + let id = inputRef.current?.getText() ?? '' + if (!id.length) return + if (id.length > 500) id = id.substring(0, 500) + alertRef.current?.setVisible(false) + onOpenId(id) + } + + return ( + visible + ? <ConfirmAlert + ref={alertRef} + onConfirm={handleConfirm} + > + <View style={styles.content}> + <View style={styles.col}> + {/* <SourceSelector style={{ ...styles.selector, backgroundColor: theme['c-primary-input-background'] }} ref={sourceSelectorRef} onSourceChange={onSourceChange} /> */} + <IdInput ref={inputRef} /> + </View> + <Text style={styles.inputTipText} size={13} color={theme['c-600']}>{t('songlist_open_input_tip')}</Text> + </View> + </ConfirmAlert> + : null + ) +}) + + +const styles = createStyle({ + content: { + flexGrow: 1, + flexShrink: 1, + flexDirection: 'column', + }, + col: { + flexDirection: 'row', + height: 38, + }, + // selector: { + // borderTopLeftRadius: 4, + // borderBottomLeftRadius: 4, + // }, + input: { + flexGrow: 1, + flexShrink: 1, + minWidth: 290, + // borderRadius: 4, + // borderTopRightRadius: 4, + // borderBottomRightRadius: 4, + // paddingTop: 2, + // paddingBottom: 2, + height: '100%', + }, + inputTipText: { + marginTop: 15, + // lineHeight: 18, + }, +}) + + diff --git a/src/screens/Home/Views/SongList/HeaderBar/OpenList/index.tsx b/src/screens/Home/Views/SongList/HeaderBar/OpenList/index.tsx new file mode 100644 index 0000000..a4de015 --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/OpenList/index.tsx @@ -0,0 +1,70 @@ +import React, { useRef, forwardRef, useImperativeHandle } from 'react' +// import { Icon } from '@/components/common/Icon' +import Button from '@/components/common/Button' +// import { navigations } from '@/navigation' +import Modal, { type ModalType } from './Modal' +import { type Source } from '@/store/songlist/state' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { useI18n } from '@/lang' +import { setSelectListInfo } from '@/core/songlist' +import { navigations } from '@/navigation' +import commonState from '@/store/common/state' + +// export interface OpenListProps { +// onTagChange: (name: string, id: string) => void +// } + +export interface OpenListType { + setInfo: (source: Source) => void +} + +export default forwardRef<OpenListType, {}>((props, ref) => { + const t = useI18n() + const modalRef = useRef<ModalType>(null) + const songlistInfoRef = useRef<{ source: Source }>({ source: 'kw' }) + + useImperativeHandle(ref, () => ({ + setInfo(source) { + songlistInfoRef.current.source = source + }, + })) + + const handleOpenSonglist = (id: string) => { + // console.log(id, songlistInfoRef.current.source) + setSelectListInfo({ + play_count: undefined, + id, + author: '', + name: '', + img: undefined, + desc: undefined, + source: songlistInfoRef.current.source, + }) + navigations.pushSonglistDetailScreen(commonState.componentIds.home as string, id) + } + + // const handleSourceChange: ModalProps['onSourceChange'] = (source) => { + // songlistInfoRef.current.source = source + // } + + + return ( + <> + <Button style={styles.button} onPress={() => modalRef.current?.show(songlistInfoRef.current.source)}> + <Text>{t('songlist_open')}</Text> + </Button> + <Modal ref={modalRef} onOpenId={handleOpenSonglist} /> + </> + ) +}) + +const styles = createStyle({ + button: { + // backgroundColor: '#ccc', + alignItems: 'center', + justifyContent: 'center', + paddingLeft: 12, + paddingRight: 12, + }, +}) diff --git a/src/screens/Home/Views/SongList/HeaderBar/SortTab.tsx b/src/screens/Home/Views/SongList/HeaderBar/SortTab.tsx new file mode 100644 index 0000000..4604ca0 --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/SortTab.tsx @@ -0,0 +1,78 @@ +import React, { forwardRef, useImperativeHandle, useMemo, useState } from 'react' +import { ScrollView, TouchableOpacity } from 'react-native' +import songlistState, { type SortInfo, type Source } from '@/store/songlist/state' +import { useI18n } from '@/lang' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' + +export interface SortTabProps { + onSortChange: (id: string) => void +} + +export interface SortTabType { + setSource: (source: Source, activeTab: SortInfo['id']) => void +} + + +export default forwardRef<SortTabType, SortTabProps>(({ onSortChange }, ref) => { + const [sortList, setSortList] = useState<SortInfo[]>([]) + const [activeId, setActiveId] = useState<SortInfo['id']>('') + const t = useI18n() + const theme = useTheme() + + useImperativeHandle(ref, () => ({ + setSource(source, activeTab) { + setSortList(songlistState.sortList[source] as SortInfo[]) + setActiveId(activeTab) + }, + })) + + const sorts = useMemo(() => { + return sortList.map(s => ({ label: t(`songlist_${s.tid}`), id: s.id })) + }, [sortList, t]) + + const handleSortChange = (id: string) => { + onSortChange(id) + setActiveId(id) + } + + return ( + <ScrollView style={styles.container} keyboardShouldPersistTaps={'always'} horizontal={true}> + { + sorts.map(s => ( + <TouchableOpacity style={styles.button} onPress={() => { handleSortChange(s.id) }} key={s.id}> + <Text style={styles.buttonText} color={activeId == s.id ? theme['c-primary-font-active'] : theme['c-font']}>{s.label}</Text> + </TouchableOpacity> + )) + } + </ScrollView> + ) +}) + + +const styles = createStyle({ + container: { + flexGrow: 1, + flexShrink: 1, + // paddingLeft: 5, + // paddingRight: 5, + }, + button: { + // height: 38, + // lineHeight: 38, + justifyContent: 'center', + // width: 80, + // backgroundColor: 'rgba(0,0,0,0.1)', + }, + buttonText: { + // height: 38, + // lineHeight: 38, + textAlign: 'center', + paddingLeft: 15, + paddingRight: 15, + // paddingTop: 10, + // paddingBottom: 10, + // width: 80, + }, +}) diff --git a/src/screens/Home/Views/SongList/HeaderBar/SourceSelector.tsx b/src/screens/Home/Views/SongList/HeaderBar/SourceSelector.tsx new file mode 100644 index 0000000..1b16d45 --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/SourceSelector.tsx @@ -0,0 +1,45 @@ +import React, { forwardRef, useImperativeHandle, useRef } from 'react' +import { StyleSheet, View, type ViewStyle } from 'react-native' + +import { createStyle } from '@/utils/tools' +import SourceSelector, { + type SourceSelectorType as _SourceSelectorType, + type SourceSelectorProps as _SourceSelectorProps, +} from '@/components/SourceSelector' +import songlistState, { type Source, type InitState } from '@/store/songlist/state' + +type Sources = Readonly<InitState['sources']> +type SourceSelectorCommonProps = _SourceSelectorProps<Sources> +type SourceSelectorCommonType = _SourceSelectorType<Sources> + +export interface SourceSelectorProps { + onSourceChange: SourceSelectorCommonProps['onSourceChange'] + style?: ViewStyle +} + +export interface SourceSelectorType { + setSource: (source: Source) => void +} + +export default forwardRef<SourceSelectorType, SourceSelectorProps>(({ style, onSourceChange }, ref) => { + const sourceSelectorRef = useRef<SourceSelectorCommonType>(null) + + useImperativeHandle(ref, () => ({ + setSource(source) { + sourceSelectorRef.current?.setSourceList(songlistState.sources, source) + }, + }), []) + + + return ( + <View style={StyleSheet.compose<ViewStyle>(styles.selector, style)}> + <SourceSelector ref={sourceSelectorRef} onSourceChange={onSourceChange} center /> + </View> + ) +}) + +const styles = createStyle({ + selector: { + // width: 86, + }, +}) diff --git a/src/screens/Home/Views/SongList/HeaderBar/Tag/CurrentTagBtn.tsx b/src/screens/Home/Views/SongList/HeaderBar/Tag/CurrentTagBtn.tsx new file mode 100644 index 0000000..8a95df0 --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/Tag/CurrentTagBtn.tsx @@ -0,0 +1,49 @@ +import Button from '@/components/common/Button' +import Text from '@/components/common/Text' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import React, { forwardRef, useImperativeHandle, useState } from 'react' + + +export interface CurrentTagBtnProps { + onShowList: () => void +} + +export interface CurrentTagBtnType { + setCurrentTagInfo: (name: string) => void +} + +export default forwardRef<CurrentTagBtnType, CurrentTagBtnProps>(({ onShowList }, ref) => { + const t = useI18n() + const [name, setName] = useState('') + + useImperativeHandle(ref, () => ({ + setCurrentTagInfo(name) { + if (!name) name = t('songlist_tag_default') + setName(name) + }, + })) + + return ( + <Button style={styles.btn} onPress={onShowList}> + <Text style={styles.sourceMenu}>{name}</Text> + </Button> + ) +}) + + +const styles = createStyle({ + btn: { + paddingLeft: 15, + paddingRight: 15, + justifyContent: 'center', + }, + sourceMenu: { + // height: 38, + // lineHeight: 38, + textAlign: 'center', + // minWidth: 70, + // paddingTop: 10, + // paddingBottom: 10, + }, +}) diff --git a/src/screens/Home/Views/SongList/HeaderBar/Tag/index.tsx b/src/screens/Home/Views/SongList/HeaderBar/Tag/index.tsx new file mode 100644 index 0000000..8ed9ded --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/Tag/index.tsx @@ -0,0 +1,54 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react' + +// import TagPopup, { type TagPopupProps, type TagPopupType } from './TagPopup' +import CurrentTagBtn, { type CurrentTagBtnType } from './CurrentTagBtn' +import { type Source } from '@/store/songlist/state' + + +export interface TagProps { + onTagChange: (name: string, id: string) => void +} + +export interface TagType { + setSelectedTagInfo: (source: Source, name: string, activeId: string) => void +} + +export default forwardRef<TagType, TagProps>(({ onTagChange }, ref) => { + // console.log('render tag btn') + const currentTagBtnRef = useRef<CurrentTagBtnType>(null) + // const tagPopupRef = useRef<TagPopupType>(null) + const tagInfoRef = useRef<{ source: Source, activeId: string }>({ source: 'kw', activeId: '' }) + + useEffect(() => { + const handleChange = (name: string, id: string) => { + onTagChange(name, id) + tagInfoRef.current.activeId = id + currentTagBtnRef.current?.setCurrentTagInfo(name) + } + + global.app_event.on('songlistTagInfoChange', handleChange) + return () => { + global.app_event.off('songlistTagInfoChange', handleChange) + } + }, [onTagChange]) + + useImperativeHandle(ref, () => ({ + setSelectedTagInfo(source, name, activeId) { + tagInfoRef.current.activeId = activeId + tagInfoRef.current.source = source + currentTagBtnRef.current?.setCurrentTagInfo(name) + }, + })) + + const handleShowList = () => { + global.app_event.showSonglistTagList(tagInfoRef.current.source, tagInfoRef.current.activeId) + } + + // const handleChangeTag: TagProps['onTagChange'] = (name, id) => { + // tagInfoRef.current.activeId = id + // onTagChange(name, id) + // currentTagBtnRef.current?.setCurrentTagInfo(name) + // } + + return <CurrentTagBtn ref={currentTagBtnRef} onShowList={handleShowList} /> +}) diff --git a/src/screens/Home/Views/SongList/HeaderBar/index.tsx b/src/screens/Home/Views/SongList/HeaderBar/index.tsx new file mode 100644 index 0000000..c61f715 --- /dev/null +++ b/src/screens/Home/Views/SongList/HeaderBar/index.tsx @@ -0,0 +1,69 @@ +import React, { forwardRef, useImperativeHandle, useRef } from 'react' +import { View } from 'react-native' + +// import { useGetter, useDispatch } from '@/store' +import SortTab, { type SortTabProps, type SortTabType } from './SortTab' +// import Tag from './Tag' +// import OpenList from './OpenList' +import { createStyle } from '@/utils/tools' +// import { BorderWidths } from '@/theme' +import SourceSelector, { + type SourceSelectorType, + type SourceSelectorProps, +} from './SourceSelector' +import { type Source } from '@/store/songlist/state' +// import { useTheme } from '@/store/theme/hook' +import Tag, { type TagType, type TagProps } from './Tag' +import OpenList, { type OpenListType } from './OpenList' +// import { BorderWidths } from '@/theme' + +export interface HeaderBarProps { + onSortChange: SortTabProps['onSortChange'] + onTagChange: TagProps['onTagChange'] + onSourceChange: SourceSelectorProps['onSourceChange'] +} + +export interface HeaderBarType { + setSource: (source: Source, sortId: string, tagName: string, tagId: string) => void +} + + +export default forwardRef<HeaderBarType, HeaderBarProps>(({ onSortChange, onTagChange, onSourceChange }, ref) => { + const sortTabRef = useRef<SortTabType>(null) + const tagRef = useRef<TagType>(null) + const openListRef = useRef<OpenListType>(null) + const sourceSelectorRef = useRef<SourceSelectorType>(null) + // const theme = useTheme() + + useImperativeHandle(ref, () => ({ + setSource(source, sortId, tagName, tagId) { + sortTabRef.current?.setSource(source, sortId) + tagRef.current?.setSelectedTagInfo(source, tagName, tagId) + sourceSelectorRef.current?.setSource(source) + openListRef.current?.setInfo(source) + }, + }), []) + + + return ( + <View style={styles.searchBar}> + <SortTab ref={sortTabRef} onSortChange={onSortChange} /> + <Tag ref={tagRef} onTagChange={onTagChange} /> + <OpenList ref={openListRef} /> + <SourceSelector ref={sourceSelectorRef} onSourceChange={onSourceChange} /> + </View> + ) +}) + +const styles = createStyle({ + searchBar: { + flexDirection: 'row', + height: 38, + zIndex: 2, + // paddingRight: 10, + // borderBottomWidth: BorderWidths.normal, + }, + selector: { + width: 86, + }, +}) diff --git a/src/screens/Home/Views/SongList/List.tsx b/src/screens/Home/Views/SongList/List.tsx new file mode 100644 index 0000000..5a697a1 --- /dev/null +++ b/src/screens/Home/Views/SongList/List.tsx @@ -0,0 +1,80 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react' +import Songlist, { type SonglistProps, type SonglistType } from './components/Songlist' +import { getList, setList, setListInfo } from '@/core/songlist' +import songlistState from '@/store/songlist/state' +import { type Source } from '@/store/songlist/state' + + +export interface ListType { + loadList: (source: Source, sortId: string, tagId: string) => void +} + +export default forwardRef<ListType, {}>((props, ref) => { + const listRef = useRef<SonglistType>(null) + const isUnmountedRef = useRef(false) + useImperativeHandle(ref, () => ({ + loadList(source, sortId, tagId) { + const listInfo = songlistState.listInfo + listRef.current?.setList([]) + if (listInfo.tagId == tagId && listInfo.sortId == sortId && listInfo.source == source && listInfo.list.length) { + requestAnimationFrame(() => { + listRef.current?.setList(listInfo.list) + }) + } else { + listRef.current?.setStatus('loading') + setListInfo(source, tagId, sortId) + const page = 1 + return getList(source, tagId, sortId, page).then((info) => { + const result = setList(info, tagId, sortId, page) + if (isUnmountedRef.current) return + requestAnimationFrame(() => { + listRef.current?.setList(result.list) + listRef.current?.setStatus(songlistState.listInfo.maxPage == page ? 'end' : 'idle') + }) + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + }, + }), []) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + + const handleRefresh: SonglistProps['onRefresh'] = () => { + const page = 1 + listRef.current?.setStatus('refreshing') + getList(songlistState.listInfo.source, songlistState.listInfo.tagId, songlistState.listInfo.sortId, page, true).then((info) => { + const result = setList(info, songlistState.listInfo.tagId, songlistState.listInfo.sortId, page) + if (isUnmountedRef.current) return + listRef.current?.setList(result.list) + listRef.current?.setStatus(songlistState.listInfo.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + const handleLoadMore: SonglistProps['onLoadMore'] = () => { + listRef.current?.setStatus('loading') + const page = songlistState.listInfo.list.length ? songlistState.listInfo.page + 1 : 1 + getList(songlistState.listInfo.source, songlistState.listInfo.tagId, songlistState.listInfo.sortId, page).then((info) => { + const result = setList(info, songlistState.listInfo.tagId, songlistState.listInfo.sortId, page) + if (isUnmountedRef.current) return + listRef.current?.setList(result.list) + listRef.current?.setStatus(songlistState.listInfo.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + + return <Songlist + ref={listRef} + onRefresh={handleRefresh} + onLoadMore={handleLoadMore} + /> +}) + diff --git a/src/screens/Home/Views/SongList/TagList/List.tsx b/src/screens/Home/Views/SongList/TagList/List.tsx new file mode 100644 index 0000000..e7329a0 --- /dev/null +++ b/src/screens/Home/Views/SongList/TagList/List.tsx @@ -0,0 +1,95 @@ +import React, { useEffect, useState, useRef, forwardRef, useImperativeHandle } from 'react' +import { View, ScrollView } from 'react-native' + +import { createStyle } from '@/utils/tools' +import TagGroup, { type TagGroupProps } from './TagGroup' +import { useI18n } from '@/lang' +import { type TagInfo, type Source } from '@/store/songlist/state' +import { getTags } from '@/core/songlist' +import Text from '@/components/common/Text' +// import { BorderWidths } from '@/theme' + +export interface ListProps { + onTagChange: TagGroupProps['onTagChange'] +} + +export interface ListType { + loadTag: (source: Source, activeId: string) => void +} + +export default forwardRef<ListType, ListProps>(({ onTagChange }, ref) => { + // const theme = useTheme() + const [activeId, setActiveId] = useState('') + const [list, setList] = useState<TagInfo['tags']>([]) + const t = useI18n() + const prevSource = useRef('') + + const isUnmountedRef = useRef(false) + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + useImperativeHandle(ref, () => ({ + loadTag(source, id) { + if (id != activeId) setActiveId(id) + if (source != prevSource.current) { + setList([{ name: '', list: [{ name: t('songlist_tag_default'), id: '', parent_id: '', parent_name: '', source }] }]) + void getTags(source).then(tagInfo => { + if (isUnmountedRef.current) return + prevSource.current = source + setList([ + { name: '', list: [{ name: t('songlist_tag_default'), id: '', parent_id: '', parent_name: '', source }] }, + { name: t('songlist_tag_hot'), list: [...tagInfo.hotTag] }, + ...tagInfo.tags, + ].filter(t => t.list.length)) + }) + } + }, + })) + + + return ( + <ScrollView style={{ flexShrink: 1, flexGrow: 0 }} keyboardShouldPersistTaps={'always'}> + <View style={styles.tagContainer} onStartShouldSetResponder={() => true}> + { + list.map((type, index) => ( + <TagGroup + key={index} + name={type.name} + list={type.list} + activeId={activeId} + onTagChange={onTagChange} + /> + )) + } + { + list.length == 1 + ? ( + <View style={styles.blankView}> + <Text>{t('list_loading')}</Text> + </View> + ) + : null + } + </View> + </ScrollView> + ) +}) + + +const styles = createStyle({ + tagContainer: { + paddingTop: 15, + paddingLeft: 15, + paddingBottom: 15, + }, + blankView: { + paddingTop: '15%', + paddingBottom: '15%', + alignItems: 'center', + justifyContent: 'center', + }, +}) diff --git a/src/screens/Home/Views/SongList/TagList/TagGroup.tsx b/src/screens/Home/Views/SongList/TagList/TagGroup.tsx new file mode 100644 index 0000000..ee51d16 --- /dev/null +++ b/src/screens/Home/Views/SongList/TagList/TagGroup.tsx @@ -0,0 +1,72 @@ +import React from 'react' +import { View } from 'react-native' + +import Button from '@/components/common/Button' +import { type TagInfoItem } from '@/store/songlist/state' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + +export interface TagGroupProps { + name: string + list: TagInfoItem[] + onTagChange: (name: string, id: string) => void + activeId: string +} + +export default ({ name, list, onTagChange, activeId }: TagGroupProps) => { + const theme = useTheme() + return ( + <View> + { + name + ? <Text style={styles.tagTypeTitle} color={theme['c-font-label']}>{name}</Text> + : null + } + <View style={styles.tagTypeList}> + {list.map(item => ( + activeId == item.id + ? ( + <View style={{ ...styles.tagButton, backgroundColor: theme['c-button-background'] }} key={item.id}> + <Text style={styles.tagButtonText} color={theme['c-primary-font-active']}>{item.name}</Text> + </View> + ) + : ( + <Button + style={{ ...styles.tagButton, backgroundColor: theme['c-button-background'] }} + key={item.id} + onPress={() => { onTagChange(item.name, item.id) }} + > + <Text style={styles.tagButtonText} color={theme['c-font']} >{item.name}</Text> + </Button> + ) + + ))} + </View> + </View> + ) +} + +const styles = createStyle({ + tagTypeTitle: { + marginTop: 15, + marginBottom: 10, + }, + tagTypeList: { + flexDirection: 'row', + flexWrap: 'wrap', + }, + tagButton: { + // marginRight: 10, + borderRadius: 4, + marginRight: 10, + marginBottom: 10, + }, + tagButtonText: { + fontSize: 13, + paddingLeft: 12, + paddingRight: 12, + paddingTop: 8, + paddingBottom: 8, + }, +}) diff --git a/src/screens/Home/Views/SongList/TagList/index.tsx b/src/screens/Home/Views/SongList/TagList/index.tsx new file mode 100644 index 0000000..95d4fb4 --- /dev/null +++ b/src/screens/Home/Views/SongList/TagList/index.tsx @@ -0,0 +1,50 @@ +import React, { useEffect, useRef, useState } from 'react' +import { InteractionManager } from 'react-native' + +import { type Source } from '@/store/songlist/state' +import List, { type ListProps, type ListType } from './List' + + +export default () => { + const [visible, setVisible] = useState(false) + const listRef = useRef<ListType>(null) + // const [info, setInfo] = useState({ souce: 'kw', activeId: '' }) + + + useEffect(() => { + let isInited = false + const handleShow = (source: Source, id: string) => { + if (isInited) { + listRef.current?.loadTag(source, id) + } else { + requestAnimationFrame(() => { + void InteractionManager.runAfterInteractions(() => { + setVisible(true) + requestAnimationFrame(() => { + listRef.current?.loadTag(source, id) + }) + }) + }) + isInited = true + } + } + global.app_event.on('showSonglistTagList', handleShow) + + return () => { + global.app_event.off('showSonglistTagList', handleShow) + } + }, []) + + const handleTagChange: ListProps['onTagChange'] = (name, id) => { + global.app_event.hideSonglistTagList() + requestAnimationFrame(() => { + global.app_event.songlistTagInfoChange(name, id) + }) + } + + return ( + visible + ? <List ref={listRef} onTagChange={handleTagChange} /> + : null + ) +} diff --git a/src/screens/Home/Views/SongList/components/Songlist/List.tsx b/src/screens/Home/Views/SongList/components/Songlist/List.tsx new file mode 100644 index 0000000..06dc9b2 --- /dev/null +++ b/src/screens/Home/Views/SongList/components/Songlist/List.tsx @@ -0,0 +1,211 @@ +import React, { useRef, useState, useMemo, forwardRef, useImperativeHandle } from 'react' +import { FlatList, View, RefreshControl, type FlatListProps } from 'react-native' + +import ListItem from './ListItem' +// import { navigations } from '@/navigation' +import { type ListInfoItem } from '@/store/songlist/state' +import { useLayout } from '@/utils/hooks' +import { useTheme } from '@/store/theme/hook' +import { useI18n } from '@/lang' +import { scaleSizeW } from '@/utils/pixelRatio' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + +type FlatListType = FlatListProps<ListInfoItem> + +// const MAX_WIDTH = scaleSizeW(110) +const MIN_WIDTH = scaleSizeW(110) +const GAP = scaleSizeW(20) + +export interface ListProps { + onRefresh: () => void + onLoadMore: () => void + onOpenDetail: (item: ListInfoItem, index: number) => void +} +export type Status = 'loading' | 'refreshing' | 'end' | 'error' | 'idle' + +export interface ListType { + setList: (list: ListInfoItem[], showSource?: boolean) => void + setStatus: (val: Status) => void +} + +export default forwardRef<ListType, ListProps>(({ onRefresh, onLoadMore, onOpenDetail }, ref) => { + const flatListRef = useRef<FlatList>(null) + const [currentList, setList] = useState<ListInfoItem[]>([]) + const [showSource, setShowSource] = useState(false) + const [status, setStatus] = useState<Status>('idle') + const { onLayout, width } = useLayout() + const theme = useTheme() + // console.log('render songlist') + + useImperativeHandle(ref, () => ({ + setList(list, showSource = false) { + // rawListRef.current = list + setList(list) + setShowSource(showSource) + }, + setStatus(val) { + setStatus(val) + }, + })) + + const handleLoadMore = () => { + switch (status) { + case 'end': + case 'loading': + case 'refreshing': return + } + onLoadMore() + } + + const renderItem: FlatListType['renderItem'] = ({ item, index }) => ( + <ListItem + item={item} + index={index} + width={itemWidth} + showSource={showSource} + onPress={onOpenDetail} + /> + ) + const getkey: FlatListType['keyExtractor'] = item => item.id + // const getItemLayout: FlatListType['getItemLayout'] = (data, index) => { + // return { length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index } + // } + const refreshControl = useMemo(() => ( + <RefreshControl + colors={[theme['c-primary']]} + // progressBackgroundColor={theme.primary} + refreshing={status == 'refreshing'} + onRefresh={onRefresh} /> + ), [status, onRefresh, theme]) + const footerComponent = useMemo(() => { + let label: FooterLabel + switch (status) { + case 'refreshing': return null + case 'loading': + label = 'list_loading' + break + case 'end': + label = 'list_end' + break + case 'error': + label = 'list_error' + break + case 'idle': + label = null + break + } + return ( + <View style={{ width: '100%' }}> + <Footer label={label} onLoadMore={onLoadMore} /> + </View> + ) + }, [onLoadMore, status]) + + + // const itemWidth = useMemo(() => { + // let itemWidth = Math.max(Math.trunc(width * 0.125), MAX_WIDTH) + // // if (itemWidth < ) + // }, [width]) + const itemWidth = useMemo(() => { + let w = width * 0.9 - GAP + let n = width / (MIN_WIDTH + GAP) + if (n > 10) n = 10 + return Math.floor(w / n) + }, [width]) + // console.log(Math.trunc(width * 0.125), itemWidth) + // console.log(itemWidth, MIN_WIDTH, GAP, width) + const rowNum = useMemo(() => Math.max(Math.floor(width / itemWidth), 2), [itemWidth, width]) + // console.log(rowNum) + const list = useMemo(() => { + const list = [...currentList] + let whiteItemNum = (list.length % rowNum) + if (whiteItemNum > 0) whiteItemNum = rowNum - whiteItemNum + for (let i = 0; i < whiteItemNum; i++) { + list.push({ + id: `white__${i}`, + play_count: '', + author: '', + name: '', + img: '', + desc: '', + // @ts-expect-error + source: '', + }) + } + return list + }, [currentList, rowNum]) + // console.log(listInfo.list.map((item) => item.id)) + + return ( + <View style={styles.container} onLayout={onLayout}> + { + width == 0 + ? null + : ( + <FlatList + key={String(rowNum)} + ref={flatListRef} + style={styles.list} + columnWrapperStyle={{ justifyContent: 'space-evenly' }} + numColumns={rowNum} + data={list} + maxToRenderPerBatch={4} + // updateCellsBatchingPeriod={80} + windowSize={8} + removeClippedSubviews={true} + // initialNumToRender={12} + renderItem={renderItem} + keyExtractor={getkey} + // getItemLayout={getItemLayout} + // onRefresh={onRefresh} + // refreshing={refreshing} + onEndReachedThreshold={0.6} + onEndReached={handleLoadMore} + refreshControl={refreshControl} + ListFooterComponent={footerComponent} + /> + ) + } + </View> + ) +}) + +type FooterLabel = 'list_loading' | 'list_end' | 'list_error' | null +const Footer = ({ label, onLoadMore }: { + label: FooterLabel + onLoadMore: () => void +}) => { + const theme = useTheme() + const t = useI18n() + const handlePress = () => { + if (label != 'list_error') return + onLoadMore() + } + return ( + label + ? ( + <View> + <Text onPress={handlePress} style={styles.footer} color={theme['c-font-label']}>{t(label)}</Text> + </View> + ) + : null + ) +} + + +const styles = createStyle({ + container: { + flex: 1, + overflow: 'hidden', + }, + list: { + flex: 1, + paddingLeft: 10, + paddingRight: 10, + }, + footer: { + textAlign: 'center', + padding: 10, + }, +}) diff --git a/src/screens/Home/Views/SongList/components/Songlist/ListItem.tsx b/src/screens/Home/Views/SongList/components/Songlist/ListItem.tsx new file mode 100644 index 0000000..c7ced82 --- /dev/null +++ b/src/screens/Home/Views/SongList/components/Songlist/ListItem.tsx @@ -0,0 +1,83 @@ +import React, { memo } from 'react' +import { View, Image, Platform, TouchableOpacity } from 'react-native' +import { createStyle } from '@/utils/tools' +import { type ListInfoItem } from '@/store/songlist/state' +import Text from '@/components/common/Text' +import { scaleSizeW } from '@/utils/pixelRatio' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import { useTheme } from '@/store/theme/hook' + +const gap = scaleSizeW(15) +export default memo(({ item, index, width, showSource, onPress }: { + item: ListInfoItem + index: number + showSource: boolean + width: number + onPress: (item: ListInfoItem, index: number) => void +}) => { + const theme = useTheme() + const itemWidth = width - gap + const handlePress = () => { + onPress(item, index) + } + return ( + item.source + ? ( + <View style={{ ...styles.listItem, width: itemWidth }}> + <View style={{ ...styles.listItemImg, backgroundColor: theme['c-content-background'] }}> + <TouchableOpacity activeOpacity={0.5} onPress={handlePress}> + <Image source={{ uri: item.img }} nativeID={`${NAV_SHEAR_NATIVE_IDS.songlistDetail_pic}_from_${item.id}`} style={{ width: itemWidth, height: itemWidth }} borderRadius={4} /> + { showSource ? <Text style={styles.sourceLabel} size={9} color="#fff" >{item.source}</Text> : null } + </TouchableOpacity> + </View> + <TouchableOpacity activeOpacity={0.5} onPress={handlePress}> + <Text style={styles.listItemTitle} numberOfLines={ 2 }>{item.name}</Text> + </TouchableOpacity> + {/* <Text>{JSON.stringify(item)}</Text> */} + </View> + ) + : <View style={{ ...styles.listItem, width: itemWidth }} /> + ) +}) + +const styles = createStyle({ + listItem: { + // width: 90, + margin: 10, + }, + listItemImg: { + // backgroundColor: '#eee', + borderRadius: 4, + marginBottom: 5, + overflow: 'hidden', + ...Platform.select({ + ios: { + shadowColor: '#000', + shadowOffset: { + width: 0, + height: 1, + }, + shadowOpacity: 0.20, + shadowRadius: 1.41, + }, + android: { + elevation: 2, + }, + }), + }, + sourceLabel: { + paddingLeft: 4, + paddingBottom: 2, + paddingRight: 4, + position: 'absolute', + top: 0, + right: 0, + borderBottomLeftRadius: 3, + backgroundColor: 'rgba(0, 0, 0, 0.3)', + }, + listItemTitle: { + fontSize: 12, + // overflow: 'hidden', + marginBottom: 5, + }, +}) diff --git a/src/screens/Home/Views/SongList/components/Songlist/index.tsx b/src/screens/Home/Views/SongList/components/Songlist/index.tsx new file mode 100644 index 0000000..931201a --- /dev/null +++ b/src/screens/Home/Views/SongList/components/Songlist/index.tsx @@ -0,0 +1,48 @@ +import React, { useRef, forwardRef, useImperativeHandle } from 'react' +import { type ListInfoItem } from '@/store/songlist/state' +// import LoadingMask, { LoadingMaskType } from '@/components/common/LoadingMask' +import List, { type ListProps, type ListType, type Status } from './List' +import { setSelectListInfo } from '@/core/songlist' +import { navigations } from '@/navigation' +import commonState from '@/store/common/state' + +export interface SonglistProps { + onRefresh: ListProps['onRefresh'] + onLoadMore: ListProps['onLoadMore'] +} +export interface SonglistType { + setList: (list: ListInfoItem[], showSource?: boolean) => void + setStatus: (val: Status) => void +} + +export default forwardRef<SonglistType, SonglistProps>(({ + onRefresh, + onLoadMore, +}, ref) => { + const listRef = useRef<ListType>(null) + // const loadingMaskRef = useRef<LoadingMaskType>(null) + + useImperativeHandle(ref, () => ({ + setList(list, showSource) { + listRef.current?.setList(list, showSource) + }, + setStatus(val) { + listRef.current?.setStatus(val) + }, + })) + + const handleOpenDetail = (item: ListInfoItem, index: number) => { + // console.log(item) + setSelectListInfo(item) + navigations.pushSonglistDetailScreen(commonState.componentIds.home as string, item.id) + } + + return ( + <List + ref={listRef} + onRefresh={onRefresh} + onLoadMore={onLoadMore} + onOpenDetail={handleOpenDetail} + /> + ) +}) diff --git a/src/screens/Home/Views/SongList/index.tsx b/src/screens/Home/Views/SongList/index.tsx new file mode 100644 index 0000000..810b7d6 --- /dev/null +++ b/src/screens/Home/Views/SongList/index.tsx @@ -0,0 +1,53 @@ +import React, { useEffect, useRef } from 'react' +import { type DrawerLayoutAndroid } from 'react-native' +import settingState from '@/store/setting/state' +import Content from './Content' +import TagList from './TagList' +import { useTheme } from '@/store/theme/hook' +import DrawerLayoutFixed from '@/components/common/DrawerLayoutFixed' +import { COMPONENT_IDS } from '@/config/constant' +import { scaleSizeW } from '@/utils/pixelRatio' + +const MAX_WIDTH = scaleSizeW(560) + +export default () => { + const drawer = useRef<DrawerLayoutAndroid>(null) + const theme = useTheme() + + useEffect(() => { + const handleShow = () => { + requestAnimationFrame(() => { + drawer.current?.openDrawer() + }) + } + const handleHide = () => { + drawer.current?.closeDrawer() + } + + global.app_event.on('showSonglistTagList', handleShow) + global.app_event.on('hideSonglistTagList', handleHide) + + return () => { + global.app_event.off('showSonglistTagList', handleShow) + global.app_event.off('hideSonglistTagList', handleHide) + } + }, []) + + const navigationView = () => <TagList /> + // console.log('render drawer content') + + return ( + <DrawerLayoutFixed + ref={drawer} + visibleNavNames={[COMPONENT_IDS.home]} + widthPercentage={0.8} + widthPercentageMax={MAX_WIDTH} + drawerPosition={settingState.setting['common.drawerLayoutPosition']} + renderNavigationView={navigationView} + drawerBackgroundColor={theme['c-content-background']} + style={{ elevation: 1 }} + > + <Content /> + </DrawerLayoutFixed> + ) +} diff --git a/src/screens/Home/components/Aside.js b/src/screens/Home/components/Aside.js deleted file mode 100644 index a803b7e..0000000 --- a/src/screens/Home/components/Aside.js +++ /dev/null @@ -1,172 +0,0 @@ -import React, { Component } from 'react' -import { View, StyleSheet, ScrollView, Dimensions } from 'react-native' -import { Icon } from '@/components/common/Icon' -import Button from '@/components/common/Button' - -import { STATUS } from '@/store/modules/player' - -import { connect } from '@/store' - -import { AppColors, BorderWidths } from '@/theme' - -import PlayerPortrait from './PlayerPortrait' -import PlayerLandscape from './PlayerLandscape' - -const playNextModes = [ - 'listLoop', - 'random', - 'list', - 'singleLoop', -] - -const mapStateToProps = state => ({ - homeViewPageIndex: state.common.nav.homeViewPageIndex, - common: state.common, - player: state.player, -}) - -const actions = [ - ['common', ['updateNavHomeViewPageIndex', 'setPlayNextMode']], - ['player', ['playPrev', 'playNext', 'pauseMusic', 'playMusic']], -] - -let timeout - -class Header extends Component { - state = { - menu: [ - { - icon: 'search-2', - name: '搜索', - }, - { - icon: 'album', - name: '歌单', - }, - // { - // icon: 'leaderboard', - // name: '榜单', - // }, - { - icon: 'love', - name: '收藏', - }, - // { - // icon: 'download-2', - // name: '下载', - // }, - { - icon: 'setting', - name: '设置', - }, - ], - asideWidth: 40, - orientation: 'portrait', - } - - componentDidMount() { - const window = Dimensions.get('window') - this.setState({ - orientation: window.width > window.height ? 'landscape' : 'portrait', - }) - } - - handleLayout = event => { - const { width } = event.nativeEvent.layout - const window = Dimensions.get('window') - - this.setState({ - asideWidth: width, - orientation: window.width > window.height ? 'landscape' : 'portrait', - }) - } - - toggleNextPlayMode = () => { - let index = playNextModes.indexOf(this.props.common.setting.player.togglePlayMethod) - if (++index >= playNextModes.length) index = -1 - this.props.actions.setPlayNextMode(playNextModes[index] || '') - } - - handlePress = (item, index) => { - // console.log(item) - this.props.actions.updateNavHomeViewPageIndex(index) - // console.log(this.props.homeViewPageIndex) - } - - render() { - let targetMusic = this.props.player.listInfo.list[this.props.player.playIndex] - if (timeout) { - clearInterval(timeout) - timeout = null - } - if (!targetMusic) { - targetMusic = { - img: null, - name: '~v~', - singer: '~', - } - } - // if (!targetMusic.img) { - // timeout = setInterval(() => { - // let musicInfo = this.props.player.listInfo.list[this.props.player.playIndex] - // if (musicInfo.img) { - // musicInfo.img - // } - // }, 1000) - // } - - let playModeIcon = null - switch (this.props.common.setting.player.togglePlayMethod) { - case 'listLoop': - playModeIcon = 'list-loop' - break - case 'random': - playModeIcon = 'list-random' - break - case 'list': - playModeIcon = 'list-order' - break - case 'singleLoop': - playModeIcon = 'single-loop' - break - default: - playModeIcon = 'single' - break - } - - let playIcon = this.props.player.status === STATUS.playing ? 'pause' : 'play' - // console.log(this.state.orientation) - - const playerProps = { - asideWidth: this.state.asideWidth, - targetMusic, - playIcon, - playModeIcon, - actions: this.props.actions, - menu: this.state.menu, - homeViewPageIndex: this.props.homeViewPageIndex, - togglePlay: () => { - switch (this.props.player.status) { - case STATUS.playing: - this.props.actions.pauseMusic() - break - case STATUS.pause: - this.props.actions.playMusic() - break - default: - this.props.actions.playMusic(this.props.player.playIndex) - break - } - }, - toggleNextPlayMode: () => { - this.toggleNextPlayMode() - }, - } - - return this.state.orientation == 'portrait' - ? <PlayerPortrait {...playerProps} onLayout={this.handleLayout} navPress={this.handlePress} /> - : <PlayerLandscape {...playerProps} onLayout={this.handleLayout} navPress={this.handlePress} /> - } -} - -export default connect(mapStateToProps, actions)(Header) diff --git a/src/screens/Home/components/FooterPlayer.js b/src/screens/Home/components/FooterPlayer.js deleted file mode 100644 index d85ef18..0000000 --- a/src/screens/Home/components/FooterPlayer.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react' -import PlayerPortrait from './PlayerPortrait' - -// const playNextModes = [ -// 'listLoop', -// 'random', -// 'list', -// 'singleLoop', -// ] - -export default () => <PlayerPortrait /> diff --git a/src/screens/Home/components/Header.js b/src/screens/Home/components/Header.js deleted file mode 100644 index 289c10b..0000000 --- a/src/screens/Home/components/Header.js +++ /dev/null @@ -1,102 +0,0 @@ -import React, { useMemo } from 'react' -import { View, StyleSheet, TouchableOpacity } from 'react-native' -// import Button from '@/components/common/Button' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -// import { navigations } from '@/navigation' -import StatusBar from '@/components/common/StatusBar' - -const useActive = index => { - const activeIndex = useGetter('common', 'navActiveIndex') - return index === activeIndex -} - -const HeaderItem = ({ info, index, onPress }) => { - const theme = useGetter('common', 'theme') - const isActive = useActive(index) - // console.log(theme) - const components = useMemo(() => ( - <TouchableOpacity style={styles.btn} onPress={() => !isActive && onPress(index)}> - <Icon name={info.icon} style={{ ...styles.icon, color: isActive ? theme.secondary : theme.normal10 }} size={18} /> - {/* <Text style={{ ...style.btnText, color: isActive ? theme.secondary : theme.normal10 }}>{info.name}</Text> */} - </TouchableOpacity> - ), [isActive, theme, index, info.icon, onPress]) - - return components -} - -// const settingItem = { -// icon: 'setting', -// } -const Header = ({ componentId }) => { - const menus = useGetter('common', 'navMenus') - const setNavActiveIndex = useDispatch('common', 'setNavActiveIndex') - const theme = useGetter('common', 'theme') - - return ( - <View style={{ ...styles.header, backgroundColor: theme.primary }}> - <StatusBar /> - <View style={styles.container}> - {/* <View style={styles.left}> */} - {menus.map((item, index) => <HeaderItem info={item} index={index} key={item.id} onPress={setNavActiveIndex} />)} - {/* </View> - <View style={styles.right}> - <HeaderItem info={settingItem} index={-1} onPress={() => navigations.pushSettingScreen(componentId)} /> - </View> */} - </View> - </View> - ) -} - - -const styles = StyleSheet.create({ - header: { - // backgroundColor: '#fff', - height: 36 + StatusBar.currentHeight, - paddingTop: StatusBar.currentHeight, - // borderBottomWidth: BorderWidths.normal, - // borderBottomColor: AppColors.borderColor, - // Android shadow - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 2, - // }, - // shadowOpacity: 0.23, - // shadowRadius: 2.62, - // elevation: 4, - }, - container: { - // width: '100%', - flexDirection: 'row', - justifyContent: 'center', - }, - left: { - flex: 1, - flexDirection: 'row', - paddingLeft: 5, - }, - btn: { - // flex: 1, - paddingLeft: 10, - paddingRight: 10, - backgroundColor: 'rgba(0,0,0,0)', - alignItems: 'center', - justifyContent: 'center', - height: 36, - }, - btnActive: { - color: 'green', - }, - btnText: { - fontSize: 16, - // color: 'white', - }, - icon: { - paddingLeft: 4, - paddingRight: 4, - }, -}) - - -export default Header diff --git a/src/screens/Home/components/HeaderLandscape.js b/src/screens/Home/components/HeaderLandscape.js deleted file mode 100644 index 02e5eaf..0000000 --- a/src/screens/Home/components/HeaderLandscape.js +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useMemo } from 'react' -import { View, Text, StyleSheet, StatusBar, TouchableOpacity } from 'react-native' -// import Button from '@/components/common/Button' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -// import { navigations } from '@/navigation' -import { BorderWidths } from '@/theme' - -const useActive = index => { - const activeIndex = useGetter('common', 'navActiveIndex') - return index === activeIndex -} - -const HeaderItem = ({ info, index, onPress }) => { - const theme = useGetter('common', 'theme') - const isActive = useActive(index) - // console.log(theme) - const components = useMemo(() => ( - <TouchableOpacity style={styles.btn} onPress={() => !isActive && onPress(index)}> - <Icon name={info.icon} style={{ ...styles.icon, color: isActive ? theme.secondary : theme.normal10 }} size={18} /> - {/* <Text style={{ ...style.btnText, color: isActive ? theme.secondary : theme.normal10 }}>{info.name}</Text> */} - </TouchableOpacity> - ), [isActive, theme, index, info.icon, onPress]) - - return components -} - -// const settingItem = { -// icon: 'setting', -// } -const Header = ({ componentId }) => { - const menus = useGetter('common', 'navMenus') - const setNavActiveIndex = useDispatch('common', 'setNavActiveIndex') - const theme = useGetter('common', 'theme') - - return ( - <View style={{ ...styles.container, borderRightColor: theme.borderColor, backgroundColor: theme.primary }}> - {/* <View style={styles.left}> */} - {menus.map((item, index) => <HeaderItem info={item} index={index} key={item.id} onPress={setNavActiveIndex} />)} - {/* </View> - <View style={styles.right}> - <HeaderItem info={settingItem} index={-1} onPress={() => navigations.pushSettingScreen(componentId)} /> - </View> */} - </View> - ) -} - - -const styles = StyleSheet.create({ - container: { - // height: 36, - // width: '100%', - // flexDirection: 'row', - borderRightWidth: BorderWidths.normal, - justifyContent: 'center', - zIndex: 10, - }, - left: { - flex: 1, - flexDirection: 'row', - paddingLeft: 5, - }, - btn: { - // flex: 1, - padding: 15, - backgroundColor: 'rgba(0,0,0,0)', - alignItems: 'center', - justifyContent: 'center', - }, - btnActive: { - color: 'green', - }, - btnText: { - fontSize: 16, - // color: 'white', - }, - icon: { - paddingLeft: 4, - paddingRight: 4, - }, -}) - - -export default Header diff --git a/src/screens/Home/components/Main.js b/src/screens/Home/components/Main.js deleted file mode 100644 index f04a531..0000000 --- a/src/screens/Home/components/Main.js +++ /dev/null @@ -1,216 +0,0 @@ -import React, { useEffect, useRef, useMemo, useCallback, memo } from 'react' -import { View, StyleSheet, SafeAreaView } from 'react-native' -import PagerView from 'react-native-pager-view' -import Search from '../Search' -import SongList from '../SongList' -import Top from '../Top' -import List from '../List' -import Download from '../Download' -import Setting from '../Setting' -import { subscribe, useGetter, useDispatch, getStore } from '@/store' -import { AppColors, BorderWidths } from '@/theme' - -// import musicSearch from '../../utils/music/tx/musicSearch' - -const SearchPage = () => { - const activeIndex = useGetter('common', 'navActiveIndex') - const initedRef = useRef(false) - const search = useMemo(() => <Search />, []) - switch (activeIndex) { - case 0: - // case 1: - if (!initedRef.current) initedRef.current = true - return search - case 4: - initedRef.current = false - return null - default: - return initedRef.current ? search : null - } -} -const SongListPage = () => { - const activeIndex = useGetter('common', 'navActiveIndex') - const initedRef = useRef(false) - const songList = useMemo(() => <SongList />, []) - switch (activeIndex) { - // case 0: - case 1: - // case 2: - if (!initedRef.current) initedRef.current = true - return songList - case 4: - initedRef.current = false - return null - default: - return initedRef.current ? songList : null - } - // return activeIndex == 1 || activeIndex == 0 ? SongList : null -} -const TopPage = () => { - const activeIndex = useGetter('common', 'navActiveIndex') - const initedRef = useRef(false) - const top = useMemo(() => <Top />, []) - switch (activeIndex) { - // case 1: - case 2: - // case 3: - if (!initedRef.current) initedRef.current = true - return top - case 4: - initedRef.current = false - return null - default: - return initedRef.current ? top : null - } - // return activeIndex == 0 || activeIndex == 1 ? top : null -} -const ListPage = () => { - const activeIndex = useGetter('common', 'navActiveIndex') - const initedRef = useRef(false) - const list = useMemo(() => <List />, []) - switch (activeIndex) { - // case 2: - case 3: - // case 4: - if (!initedRef.current) initedRef.current = true - return list - default: - return initedRef.current ? list : null - } - // return activeIndex == 0 || activeIndex == 1 ? list : null -} -const SettingPage = () => { - const activeIndex = useGetter('common', 'navActiveIndex') - const initedRef = useRef(false) - const setting = useMemo(() => <Setting />, []) - switch (activeIndex) { - // case 3: - case 4: - if (!initedRef.current) initedRef.current = true - return setting - default: - return initedRef.current ? setting : null - } - // return activeIndex == 0 || activeIndex == 1 ? setting : null -} - - -const Main = () => { - const unSubscribeRef = useRef() - const pagerViewRef = useRef() - // const isScrollingRef = useRef(false) - const scrollPositionRef = useRef(-1) - const activeIndexRef = useRef(getStore().getState().common.nav.activeIndex) - const setNavActiveIndex = useDispatch('common', 'setNavActiveIndex') - - // const handlePageScroll = useCallback(({ nativeEvent }) => { - // console.log(nativeEvent.offset, activeIndexRef.current) - // // if (activeIndexRef.current == -1) return - // // if (nativeEvent.offset == 0) { - // // isScrollingRef.current = false - - // // const index = nativeEvent.position - // // if (activeIndexRef.current == index) return - // // activeIndexRef.current = index - // // setNavActiveIndex(index) - // // } else if (!isScrollingRef.current) { - // // isScrollingRef.current = true - // // } - // }, [setNavActiveIndex]) - - const onPageSelected = useCallback(({ nativeEvent }) => { - scrollPositionRef.current = nativeEvent.position - }, []) - - const onPageScrollStateChanged = useCallback(({ nativeEvent }) => { - // console.log(nativeEvent) - if (nativeEvent.pageScrollState != 'idle') return - if (scrollPositionRef.current != getStore().getState().common.nav.activeIndex) { - setNavActiveIndex(scrollPositionRef.current) - } - // if (activeIndexRef.current == -1) return - // if (nativeEvent.offset == 0) { - // isScrollingRef.current = false - - // const index = nativeEvent.position - // if (activeIndexRef.current == index) return - // activeIndexRef.current = index - // setNavActiveIndex(index) - // } else if (!isScrollingRef.current) { - // isScrollingRef.current = true - // } - }, [setNavActiveIndex]) - - const setActivePage = index => { - // console.log('setActivePage', index) - if (activeIndexRef.current == index) return - activeIndexRef.current = index - // if (index >= pagerViewRef.current.props.children.length) return - pagerViewRef.current.setPage(index) - } - - useEffect(() => { - // window.requestAnimationFrame(() => pagerViewRef.current && pagerViewRef.current.setPage(activeIndexRef.current)) - unSubscribeRef.current = subscribe('common.nav.activeIndex', ({ common: { nav } }) => { - // console.log('subscribe', nav.activeIndex) - setActivePage(nav.activeIndex) - }) - return () => { - unSubscribeRef.current() - } - }, []) - - - const component = useMemo(() => ( - <View style={{ ...styles.container }}> - <PagerView ref={pagerViewRef} - initialPage={activeIndexRef.current} - // onPageScroll={handlePageScroll} - // offscreenPageLimit={2} - onPageSelected={onPageSelected} - onPageScrollStateChanged={onPageScrollStateChanged} - style={styles.pagerView} - > - <View collapsable={false} key="1" style={styles.pageStyle}> - <SearchPage /> - </View> - <View collapsable={false} key="2" style={styles.pageStyle}> - <SongListPage /> - </View> - <View collapsable={false} key="3" style={styles.pageStyle}> - <TopPage /> - </View> - <View collapsable={false} key="4" style={styles.pageStyle}> - <ListPage /> - </View> - {/* <View collapsable={false} key="5" style={styles.pageStyle}> - <Download /> - </View> */} - <View collapsable={false} key="6" style={styles.pageStyle}> - <SettingPage /> - </View> - </PagerView> - </View> - ), [onPageSelected, onPageScrollStateChanged]) - - return component -} - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - flexShrink: 1, - // backgroundColor: '#fff', - }, - pagerView: { - flex: 1, - overflow: 'hidden', - }, - pageStyle: { - // alignItems: 'center', - // padding: 20, - }, -}) - -export default Main - diff --git a/src/screens/Home/components/Main.tsx b/src/screens/Home/components/Main.tsx new file mode 100644 index 0000000..43ca6ca --- /dev/null +++ b/src/screens/Home/components/Main.tsx @@ -0,0 +1,59 @@ +import React, { useEffect, useMemo, useState } from 'react' +import { InteractionManager, KeyboardAvoidingView } from 'react-native' +import Search from '../Views/Search' +import SongList from '../Views/SongList' +import Mylist from '../Views/Mylist' +import Leaderboard from '../Views/Leaderboard' +import Setting from '../Views/Setting' +import { createStyle } from '@/utils/tools' +import commonState, { type InitState as CommonState } from '@/store/common/state' + + +const Main = () => { + const [id, setId] = useState(commonState.navActiveId) + + useEffect(() => { + const handleUpdate = (id: CommonState['navActiveId']) => { + requestAnimationFrame(() => { + void InteractionManager.runAfterInteractions(() => { + setId(id) + }) + }) + } + global.state_event.on('navActiveIdUpdated', handleUpdate) + return () => { + global.state_event.off('navActiveIdUpdated', handleUpdate) + } + }, []) + + const component = useMemo(() => { + switch (id) { + case 'nav_songlist': return <SongList /> + case 'nav_top': return <Leaderboard /> + case 'nav_love': return <Mylist /> + case 'nav_setting': return <Setting /> + case 'nav_search': + default: return <Search /> + } + }, [id]) + + return ( + <KeyboardAvoidingView + behavior="padding" + style={styles.container} + > + {component} + </KeyboardAvoidingView> + ) +} + +const styles = createStyle({ + container: { + flexGrow: 1, + flexShrink: 1, + // backgroundColor: '#fff', + }, +}) + +export default Main + diff --git a/src/screens/Home/components/PlayerBar/components/ControlBtn.tsx b/src/screens/Home/components/PlayerBar/components/ControlBtn.tsx new file mode 100644 index 0000000..d1b1ce3 --- /dev/null +++ b/src/screens/Home/components/PlayerBar/components/ControlBtn.tsx @@ -0,0 +1,63 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { useIsPlay } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { playNext, togglePlay } from '@/core/player/player' +import { createStyle } from '@/utils/tools' + +const BTN_SIZE = 24 +const handlePlayNext = () => { + void playNext() +} + +const PlayNextBtn = () => { + const theme = useTheme() + + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handlePlayNext}> + <Icon name='nextMusic' color={theme['c-button-font']} size={BTN_SIZE} /> + </TouchableOpacity> + ) +} + +const TogglePlayBtn = () => { + const isPlay = useIsPlay() + const theme = useTheme() + + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={togglePlay}> + <Icon name={isPlay ? 'pause' : 'play'} color={theme['c-button-font']} size={BTN_SIZE} /> + </TouchableOpacity> + ) +} + +export default () => { + return ( + <> + {/* <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> + <Text style={{ ...styles.cotrolBtn }}> + <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={18} /> + </Text> + </TouchableOpacity> + */} + {/* {btnPrev} */} + <TogglePlayBtn /> + <PlayNextBtn /> + </> + ) +} + + +const styles = createStyle({ + cotrolBtn: { + width: 46, + height: 46, + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + }, +}) diff --git a/src/screens/Home/components/PlayerBar/components/Pic.tsx b/src/screens/Home/components/PlayerBar/components/Pic.tsx new file mode 100644 index 0000000..e54c105 --- /dev/null +++ b/src/screens/Home/components/PlayerBar/components/Pic.tsx @@ -0,0 +1,83 @@ +import React, { memo } from 'react' +import { View, Image, TouchableOpacity } from 'react-native' +import { navigations } from '@/navigation' +import { usePlayerMusicInfo } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +import { createStyle } from '@/utils/tools' +import { BorderRadius } from '@/theme' +import commonState from '@/store/common/state' +import playerState from '@/store/player/state' +import Text from '@/components/common/Text' +import { LIST_IDS, NAV_SHEAR_NATIVE_IDS } from '@/config/constant' + +const PIC_HEIGHT = scaleSizeH(46) + +const styles = createStyle({ + // content: { + // marginBottom: 3, + // },/ + emptyPic: { + borderRadius: BorderRadius.normal, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + }, + text: { + paddingLeft: 2, + }, +}) + +const EmptyPic = memo(() => { + const theme = useTheme() + return ( + <View nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pic} style={{ ...styles.emptyPic, width: PIC_HEIGHT, height: PIC_HEIGHT, backgroundColor: theme['c-primary-light-900-alpha-200'] }}> + <Text size={20} color={theme['c-primary-light-400-alpha-200']}>L</Text> + <Text size={20} color={theme['c-primary-light-400-alpha-200']} style={styles.text}>X</Text> + </View> + ) +}) + +export default () => { + const musicInfo = usePlayerMusicInfo() + const handlePress = () => { + // console.log('') + // console.log(playMusicInfo) + if (!musicInfo.id) return + navigations.pushPlayDetailScreen(commonState.componentIds.home as string) + + // toast(global.i18n.t('play_detail_todo_tip'), 'long') + } + + const handleLongPress = () => { + const listId = playerState.playMusicInfo.listId + if (!listId || listId == LIST_IDS.DOWNLOAD) return + global.app_event.jumpListPosition() + } + + // console.log('render pic') + + return ( + <TouchableOpacity onLongPress={handleLongPress} onPress={handlePress} activeOpacity={0.7} > + { + musicInfo.pic + ? ( + <Image source={{ uri: musicInfo.pic }} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pic} progressiveRenderingEnabled={true} borderRadius={2} style={{ + // ...styles.playInfoImg, + // backgroundColor: theme.primary, + width: PIC_HEIGHT, + height: PIC_HEIGHT, + }} /> + ) + : <EmptyPic /> + } + </TouchableOpacity> + ) +} + + +// const styles = StyleSheet.create({ +// playInfoImg: { + +// }, +// }) diff --git a/src/screens/Home/components/PlayerBar/components/PlayInfo.tsx b/src/screens/Home/components/PlayerBar/components/PlayInfo.tsx new file mode 100644 index 0000000..6c3ef2e --- /dev/null +++ b/src/screens/Home/components/PlayerBar/components/PlayInfo.tsx @@ -0,0 +1,79 @@ +import React, { memo, useState } from 'react' +import { View } from 'react-native' + +import Progress from '@/components/player/Progress' +import Status from './Status' +import { useProgress } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' +import { COMPONENT_IDS } from '@/config/constant' +import { usePageVisible } from '@/store/common/hook' + +const FONT_SIZE = 13 + +const PlayTimeCurrent = ({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + // console.log(timeStr) + return <Text size={FONT_SIZE} color={theme['c-500']}>{timeStr}</Text> +} + +const PlayTimeMax = memo(({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + return <Text size={FONT_SIZE} color={theme['c-500']}>{timeStr}</Text> +}) + +export default () => { + const theme = useTheme() + const [autoUpdate, setAutoUpdate] = useState(true) + const { maxPlayTimeStr, nowPlayTimeStr, progress, maxPlayTime } = useProgress(autoUpdate) + usePageVisible([COMPONENT_IDS.home], setAutoUpdate) + + return ( + <> + <View style={styles.progress}><Progress progress={progress} duration={maxPlayTime} /></View> + <View style={styles.info}> + {/* <MusicName /> */} + <View style={styles.status}> + <Status autoUpdate={autoUpdate} /> + </View> + <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > + <PlayTimeCurrent timeStr={nowPlayTimeStr} /> + <Text size={FONT_SIZE} color={theme['c-500']}> / </Text> + <PlayTimeMax timeStr={maxPlayTimeStr} /> + </View> + </View> + </> + ) +} + + +const styles = createStyle({ + progress: { + height: 16, + // flexGrow: 0, + flexShrink: 0, + // flexDirection: 'column', + justifyContent: 'center', + // alignItems: 'center', + // marginBottom: -1, + // backgroundColor: '#ccc', + // overflow: 'hidden', + // height: + // position: 'absolute', + // width: '100%', + // top: 0, + }, + info: { + // flex: 1, + flexDirection: 'row', + justifyContent: 'space-between', + // alignItems: 'center', + // backgroundColor: '#ccc', + }, + status: { + flexGrow: 1, + flexShrink: 1, + paddingRight: 5, + }, +}) diff --git a/src/screens/Home/components/PlayerBar/components/Status.tsx b/src/screens/Home/components/PlayerBar/components/Status.tsx new file mode 100644 index 0000000..a77bfdc --- /dev/null +++ b/src/screens/Home/components/PlayerBar/components/Status.tsx @@ -0,0 +1,23 @@ +import React from 'react' +import { useLrcPlay } from '@/plugins/lyric' +import { useIsPlay, useStatusText } from '@/store/player/hook' +// import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + + +export default ({ autoUpdate }: { autoUpdate: boolean }) => { + const { text } = useLrcPlay(autoUpdate) + const statusText = useStatusText() + const isPlay = useIsPlay() + // console.log('render status') + + const status = isPlay ? text : statusText + + return <Text numberOfLines={1} size={12}>{status}</Text> +} + +// const styles = createStyle({ +// text: { +// fontSize: 10, +// }, +// }) diff --git a/src/screens/Home/components/PlayerBar/components/Title.tsx b/src/screens/Home/components/PlayerBar/components/Title.tsx new file mode 100644 index 0000000..908038a --- /dev/null +++ b/src/screens/Home/components/PlayerBar/components/Title.tsx @@ -0,0 +1,66 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { navigations } from '@/navigation' +import { usePlayerMusicInfo } from '@/store/player/hook' +// import { toast } from '@/utils/tools' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import commonState from '@/store/common/state' +import playerState from '@/store/player/state' +import Text from '@/components/common/Text' +import { LIST_IDS } from '@/config/constant' + + +export default () => { + // const { t } = useTranslation() + const musicInfo = usePlayerMusicInfo() + const downloadFileName = useSettingValue('download.fileName') + const theme = useTheme() + + const handlePress = () => { + // console.log('') + // console.log(playMusicInfo) + if (!musicInfo.id) return + navigations.pushPlayDetailScreen(commonState.componentIds.home as string) + // toast(global.i18n.t('play_detail_todo_tip'), 'long') + } + + const handleLongPress = () => { + const listId = playerState.playMusicInfo.listId + if (!listId || listId == LIST_IDS.DOWNLOAD) return + global.app_event.jumpListPosition() + } + // console.log('render title') + + const title = musicInfo.id ? downloadFileName.replace('歌手', musicInfo.singer).replace('歌名', musicInfo.name) : '' + // console.log(playMusicInfo) + return ( + <TouchableOpacity style={{ width: '100%' }} onLongPress={handleLongPress} onPress={handlePress} activeOpacity={0.7} > + <Text color={theme['c-font-label']} numberOfLines={1}>{title}</Text> + </TouchableOpacity> + ) +} +// const Singer = () => { +// const playMusicInfo = useGetter('player', 'playMusicInfo') +// return ( +// <View style={{ flexGrow: 0, flexShrink: 0 }}> +// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> +// {playMusicInfo ? playMusicInfo.musicInfo.singer : ''} +// </Text> +// </View> +// ) +// } +// const MusicName = () => { +// const playMusicInfo = useGetter('player', 'playMusicInfo') +// return ( +// <View style={{ flexGrow: 0, flexShrink: 1 }}> +// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> +// {playMusicInfo ? playMusicInfo.musicInfo.name : '^-^'} +// </Text> +// </View> +// ) +// } + +// const styles = StyleSheet.create({ + +// }) diff --git a/src/screens/Home/components/PlayerPortrait/index.js b/src/screens/Home/components/PlayerBar/index.tsx similarity index 51% rename from src/screens/Home/components/PlayerPortrait/index.js rename to src/screens/Home/components/PlayerBar/index.tsx index 0df9521..347657e 100644 --- a/src/screens/Home/components/PlayerPortrait/index.js +++ b/src/screens/Home/components/PlayerBar/index.tsx @@ -1,47 +1,46 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { View, Text, StyleSheet } from 'react-native' -import { useLayout, useKeyboard } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' +import React, { memo } from 'react' +import { View } from 'react-native' +// import { useKeyboard } from '@/utils/hooks' import Pic from './components/Pic' import Title from './components/Title' import PlayInfo from './components/PlayInfo' import ControlBtn from './components/ControlBtn' +import { createStyle } from '@/utils/tools' +// import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' export default memo(() => { // const { onLayout, ...layout } = useLayout() - const { keyboardShown } = useKeyboard() - const theme = useGetter('common', 'theme') - const autoHidePlayBar = useGetter('common', 'autoHidePlayBar') - const componentIds = useGetter('common', 'componentIds') + // const { keyboardShown } = useKeyboard() + const theme = useTheme() + // const autoHidePlayBar = useSettingValue('common.autoHidePlayBar') + // console.log('render pb') - const playerComponent = useMemo(() => ( - <View style={{ ...styles.container, backgroundColor: theme.primary }}> - <View style={styles.left} elevation={1}><Pic /></View> + return ( + <View style={{ ...styles.container, backgroundColor: theme['c-content-background'] }}> + <Pic /> <View style={styles.center}> - <View style={{ ...styles.row, justifyContent: 'space-between', fontSize: 12 }}> - <Title /> - {/* <PlayTime /> */} - </View> - {(componentIds.playDetail || componentIds.songlistDetail) ? null : <PlayInfo />} + <Title /> + {/* <View style={{ ...styles.row, justifyContent: 'space-between' }}> + <PlayTime /> + </View> */} + <PlayInfo /> </View> <View style={styles.right}> <ControlBtn /> </View> </View> - ), [theme, componentIds]) - - // console.log(layout) - - return autoHidePlayBar && keyboardShown ? null : playerComponent + ) }) -const styles = StyleSheet.create({ + +const styles = createStyle({ container: { width: '100%', - // height: 59, + // height: 100, // paddingTop: progressContentPadding, // marginTop: -progressContentPadding, // backgroundColor: 'rgba(0, 0, 0, .1)', @@ -58,7 +57,7 @@ const styles = StyleSheet.create({ elevation: 10, }, left: { - borderRadius: 3, + // borderRadius: 3, flexGrow: 0, flexShrink: 0, }, @@ -67,7 +66,7 @@ const styles = StyleSheet.create({ flexGrow: 1, flexShrink: 1, paddingLeft: 5, - height: '100%', + // height: '100%', // justifyContent: 'space-evenly', // height: 48, }, @@ -79,9 +78,9 @@ const styles = StyleSheet.create({ paddingLeft: 5, paddingRight: 5, }, - row: { - flexDirection: 'row', - flexGrow: 0, - flexShrink: 0, - }, + // row: { + // flexDirection: 'row', + // flexGrow: 0, + // flexShrink: 0, + // }, }) diff --git a/src/screens/Home/components/PlayerLandscape.js b/src/screens/Home/components/PlayerLandscape.js deleted file mode 100644 index d770d5b..0000000 --- a/src/screens/Home/components/PlayerLandscape.js +++ /dev/null @@ -1,125 +0,0 @@ -import React from 'react' -import { View, ScrollView, Text, StyleSheet, Image, TouchableOpacity, useGetter } from 'react-native' -import Button from '@/components/common/Button' -import { Icon } from '@/components/common/Icon' - -export default ({ - asideWidth, targetMusic, toggleNextPlayMode, - togglePlay, playIcon, playModeIcon, actions, - menu, homeViewPageIndex, onLayout = () => {}, navPress = () => {}, -}) => { - const theme = useGetter('common', 'theme') - const navBtnWidth = asideWidth * 0.5 - 0.1 - const imgWidth = asideWidth * 0.3 - const paddingBottom = asideWidth * 0.05 - const btnStyle = { - width: asideWidth * 0.3, - height: asideWidth * 0.32, - lineHeight: asideWidth * 0.32, - } - const navIconSize = asideWidth * 0.15 - const iconSize = asideWidth * 0.15 - - return <View style={{ ...styles.header, backgroundColor: theme.primary }} onLayout={onLayout}> - <ScrollView style={{ ...styles.navBtnContainer }}> - <View style={{ width: '100%', flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'space-between' }}> - { - menu.map((item, index) => - <Button style={{ ...styles.btn, width: navBtnWidth, height: navBtnWidth }} key={index} onPress={() => navPress(item, index)}> - <Icon name={item.icon} style={{ color: homeViewPageIndex == index ? theme.secondary : theme.normal10 }} size={navIconSize} /> - </Button>) - } - </View> - </ScrollView> - - <View style={{ flexGrow: 0, flexShrink: 1, paddingBottom: paddingBottom, paddingTop: paddingBottom / 2 }}> - <View style={{ flexShrink: 0, width: '100%', flexDirection: 'row', flexWrap: 'wrap' }}> - <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Text style={{ ...styles.cotrolBtn, ...btnStyle }}> - <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={iconSize} /> - </Text> - </TouchableOpacity> - </View> - <View style={{ flexShrink: 0, width: '100%', flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'space-evenly' }}> - <TouchableOpacity activeOpacity={0.5} onPress={actions.playPrev}> - <Text style={{ ...styles.cotrolBtn, ...btnStyle, transform: [{ rotate: '180deg' }] }}> - <Icon name='nextMusic' style={{ color: theme.secondary10 }} size={iconSize} /> - </Text> - </TouchableOpacity> - <TouchableOpacity activeOpacity={0.5} onPress={togglePlay}> - <Text style={{ ...styles.cotrolBtn, ...btnStyle }}> - <Icon name={playIcon} style={{ color: theme.secondary10 }} size={iconSize} /> - </Text> - </TouchableOpacity> - <TouchableOpacity activeOpacity={0.5} onPress={actions.playNext}> - <Text style={{ ...styles.cotrolBtn, ...btnStyle }}> - <Icon name='nextMusic' style={{ color: theme.secondary10 }} size={iconSize} /> - </Text> - </TouchableOpacity> - </View> - <View style={{ flexDirection: 'row', paddingLeft: paddingBottom }}> - <View style={{ borderRadius: 4, marginTop: paddingBottom / 2 }} elevation={1}> - <Image source={{ uri: targetMusic.img }} borderRadius={4} style={{ - ...styles.playInfoImg, - backgroundColor: theme.primary, - width: imgWidth, - height: imgWidth, - }} /> - </View> - <View style={{ flexShrink: 1, flexGrow: 1, flexDirection: 'column', justifyContent: 'space-evenly', paddingLeft: paddingBottom, paddingRight: paddingBottom }}> - <Text style={{ width: '100%', fontSize: 12 }} numberOfLines={1}>{targetMusic.singer}</Text> - <Text style={{ width: '100%', fontSize: 12 }} numberOfLines={1}>{targetMusic.name}</Text> - </View> - </View> - </View> - </View> -} - - -const styles = StyleSheet.create({ - header: { - width: '18%', - minWidth: 40, - height: '100%', - // paddingTop: StatusBar.currentHeight, - // borderRightWidth: 0.4, - // borderLeftWidth: 0.4, - // borderRightColor: '#eee', - // Android shadow - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 2, - // }, - // shadowOpacity: 0.23, - // shadowRadius: 2.62, - // elevation: 2, - justifyContent: 'space-between', - }, - container: { - // width: '100%', - flexDirection: 'column', - }, - navBtnContainer: { - flexGrow: 0, - flexShrink: 1, - }, - btn: { - // flex: 1, - backgroundColor: 'rgba(0,0,0,0)', - alignItems: 'center', - justifyContent: 'center', - }, - - cotrolBtn: { - width: 32, - height: 32, - textAlign: 'center', - lineHeight: 32, - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 2, - // textShadowOffset: { width: 2, height: 2 }, - }, -}) diff --git a/src/screens/Home/components/PlayerPortrait/components/ControlBtn.js b/src/screens/Home/components/PlayerPortrait/components/ControlBtn.js deleted file mode 100644 index df82381..0000000 --- a/src/screens/Home/components/PlayerPortrait/components/ControlBtn.js +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { STATUS } from '@/store/modules/player' - - -export default () => { - const playStatus = useGetter('player', 'status') - const playNext = useDispatch('player', 'playNext') - // const playPrev = useDispatch('player', 'playPrev') - // const playMusicInfo = useGetter('player', 'playMusicInfo') - const pauseMusic = useDispatch('player', 'pauseMusic') - const playMusic = useDispatch('player', 'playMusic') - const theme = useGetter('common', 'theme') - - // const togglePlayMethod = useGetter('common', 'togglePlayMethod') - // const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - // const toggleNextPlayMode = useCallback(() => { - // let index = playNextModes.indexOf(togglePlayMethod) - // if (++index >= playNextModes.length) index = -1 - // setPlayNextMode(playNextModes[index] || '') - // }, [setPlayNextMode, togglePlayMethod, playNextModes]) - - // const btnPrev = useMemo(() => ( - // <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playPrev}> - // <Icon name='prevMusic' style={{ color: theme.secondary10 }} size={20} /> - // </TouchableOpacity> - // ), [playPrev, theme]) - - const togglePlay = useCallback(playStatus => { - switch (playStatus) { - case STATUS.playing: - pauseMusic() - break - case STATUS.pause: - case STATUS.stop: - case STATUS.none: - playMusic() - break - // default: - // playMusic(playMusicInfo) - // break - } - }, []) - const btnPlay = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={() => togglePlay(playStatus)}> - <Icon name={playStatus == STATUS.playing ? 'pause' : 'play'} style={{ color: theme.secondary10 }} size={24} /> - </TouchableOpacity> - ), [playStatus, theme, togglePlay]) - const btnNext = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playNext}> - <Icon name='nextMusic' style={{ color: theme.secondary10 }} size={24} /> - </TouchableOpacity> - ), [playNext, theme]) - - return ( - <> - {/* <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Text style={{ ...styles.cotrolBtn }}> - <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={18} /> - </Text> - </TouchableOpacity> - */} - {/* {btnPrev} */} - {btnPlay} - {btnNext} - </> - ) -} - - -const styles = StyleSheet.create({ - cotrolBtn: { - width: 50, - height: 50, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/Home/components/PlayerPortrait/components/Pic.js b/src/screens/Home/components/PlayerPortrait/components/Pic.js deleted file mode 100644 index 454e5df..0000000 --- a/src/screens/Home/components/PlayerPortrait/components/Pic.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState } from 'react' -import { View, Text, StyleSheet, Image, TouchableOpacity } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { toast } from '@/utils/tools' -import { useTranslation } from '@/plugins/i18n' -import { LIST_ID_PLAY_TEMP, LIST_ID_PLAY_LATER, NAV_VIEW_NAMES } from '@/config/constant' -import { navigations } from '@/navigation' - -export default () => { - const playMusicInfo = useGetter('player', 'playMusicInfo') - const theme = useGetter('common', 'theme') - const setNavActiveIndex = useDispatch('common', 'setNavActiveIndex') - const setPrevSelectListId = useDispatch('common', 'setPrevSelectListId') - const setJumpPosition = useDispatch('list', 'setJumpPosition') - // const { t } = useTranslation() - const componentIds = useGetter('common', 'componentIds') - const musicInfo = useMemo(() => { - return (playMusicInfo && playMusicInfo.musicInfo) || {} - }, [playMusicInfo]) - const handlePress = useCallback(() => { - // console.log('') - // console.log(playMusicInfo) - if (!playMusicInfo) return - navigations.pushPlayDetailScreen(componentIds.home, musicInfo.songmid) - // toast(t('play_detail_todo_tip'), 'long') - }, [componentIds.home, musicInfo, playMusicInfo]) - - const handleLongPress = useCallback(() => { - if (!playMusicInfo || playMusicInfo.listId == LIST_ID_PLAY_TEMP || playMusicInfo.listId == LIST_ID_PLAY_LATER) return - setNavActiveIndex(NAV_VIEW_NAMES.list) - setPrevSelectListId(playMusicInfo.listId) - global.requestAnimationFrame(() => { - setJumpPosition(true) - }) - }, [playMusicInfo, setJumpPosition, setNavActiveIndex, setPrevSelectListId]) - - - const component = useMemo(() => ( - <TouchableOpacity onLongPress={handleLongPress} onPress={handlePress} activeOpacity={0.7} > - <Image source={{ uri: musicInfo.img }} nativeID={`pic${musicInfo.songmid}`} progressiveRenderingEnabled={true} borderRadius={2} style={{ - // ...styles.playInfoImg, - backgroundColor: theme.primary, - width: 50, - height: 50, - }} /> - </TouchableOpacity> - ), [handleLongPress, handlePress, musicInfo, theme]) - return component -} - - -// const styles = StyleSheet.create({ -// playInfoImg: { - -// }, -// }) diff --git a/src/screens/Home/components/PlayerPortrait/components/PlayInfo.js b/src/screens/Home/components/PlayerPortrait/components/PlayInfo.js deleted file mode 100644 index 83878c3..0000000 --- a/src/screens/Home/components/PlayerPortrait/components/PlayInfo.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, View } from 'react-native' -import { usePlayTime } from '@/utils/hooks' -import { useGetter } from '@/store' - -import Progress from '@/components/player/Progress' -import Status from './Status' - -const PlayTimeCurrent = ({ timeStr }) => { - const theme = useGetter('common', 'theme') - // console.log(timeStr) - return <Text style={{ fontSize: 12, color: theme.normal10 }}>{timeStr}</Text> -} - -const PlayTimeMax = memo(({ timeStr }) => { - const theme = useGetter('common', 'theme') - return <Text style={{ fontSize: 12, color: theme.normal10 }}>{timeStr}</Text> -}) - -export default () => { - const { curTimeStr, maxTimeStr, progress, bufferedProgress, duration } = usePlayTime() - const theme = useGetter('common', 'theme') - - return ( - <> - <View style={styles.progress}><Progress progress={progress} bufferedProgress={bufferedProgress} duration={duration} /></View> - <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}> - {/* <MusicName /> */} - <View style={{ flexGrow: 1, flexShrink: 1, paddingRight: 5 }} > - <Status /> - </View> - <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > - <PlayTimeCurrent timeStr={curTimeStr} /> - <Text style={{ fontSize: 12, color: theme.normal }}> / </Text> - <PlayTimeMax timeStr={maxTimeStr} /> - </View> - </View> - </> - ) -} - - -const styles = StyleSheet.create({ - progress: { - height: 14, - flexGrow: 1, - flexShrink: 0, - flexDirection: 'column', - justifyContent: 'center', - marginBottom: -2, - // height: - // position: 'absolute', - // width: '100%', - // top: 0, - }, -}) diff --git a/src/screens/Home/components/PlayerPortrait/components/Status.js b/src/screens/Home/components/PlayerPortrait/components/Status.js deleted file mode 100644 index dc515d6..0000000 --- a/src/screens/Home/components/PlayerPortrait/components/Status.js +++ /dev/null @@ -1,25 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { Text } from 'react-native' -import { useGetter } from '@/store' -import { STATUS } from '@/store/modules/player' -import { useLrcPlay } from '@/plugins/lyric' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const playStatus = useGetter('player', 'status') - const statusText = useGetter('player', 'statusText') - const { text } = useLrcPlay() - const status = useMemo(() => playStatus == STATUS.playing - ? text - : ( - playStatus == STATUS.pause && text - ? text - : statusText - ), [playStatus, statusText, text]) - return <Text numberOfLines={1} style={{ fontSize: 10, color: theme.normal10 }}>{status}</Text> -}) - -// const styles = StyleSheet.create({ - -// }) diff --git a/src/screens/Home/components/PlayerPortrait/components/Title.js b/src/screens/Home/components/PlayerPortrait/components/Title.js deleted file mode 100644 index 96d8226..0000000 --- a/src/screens/Home/components/PlayerPortrait/components/Title.js +++ /dev/null @@ -1,74 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { navigations } from '@/navigation' -import { LIST_ID_PLAY_TEMP, LIST_ID_PLAY_LATER, NAV_VIEW_NAMES } from '@/config/constant' - - -export default () => { - const playMusicInfo = useGetter('player', 'playMusicInfo') - const theme = useGetter('common', 'theme') - const setNavActiveIndex = useDispatch('common', 'setNavActiveIndex') - const setPrevSelectListId = useDispatch('common', 'setPrevSelectListId') - const setJumpPosition = useDispatch('list', 'setJumpPosition') - // const { t } = useTranslation() - const componentIds = useGetter('common', 'componentIds') - const musicInfo = useMemo(() => { - return (playMusicInfo && playMusicInfo.musicInfo) || {} - }, [playMusicInfo]) - const handlePress = useCallback(() => { - // console.log('') - // console.log(playMusicInfo) - if (!playMusicInfo) return - navigations.pushPlayDetailScreen(componentIds.home, musicInfo.songmid) - // toast(t('play_detail_todo_tip'), 'long') - }, [componentIds.home, musicInfo, playMusicInfo]) - - const handleLongPress = useCallback(() => { - if (!playMusicInfo || playMusicInfo.listId == LIST_ID_PLAY_TEMP || playMusicInfo.listId == LIST_ID_PLAY_LATER) return - setNavActiveIndex(NAV_VIEW_NAMES.list) - setPrevSelectListId(playMusicInfo.listId) - global.requestAnimationFrame(() => { - setJumpPosition(true) - }) - }, [playMusicInfo, setJumpPosition, setNavActiveIndex, setPrevSelectListId]) - - const downloadFileName = useGetter('common', 'downloadFileName') - const title = useMemo(() => { - let title = '^-^' - if (playMusicInfo && playMusicInfo.musicInfo) { - title = downloadFileName.replace('歌手', playMusicInfo.musicInfo.singer).replace('歌名', playMusicInfo.musicInfo.name) - } - return title - }, [downloadFileName, playMusicInfo]) - // console.log(playMusicInfo) - return ( - <TouchableOpacity style={{ width: '100%' }} onLongPress={handleLongPress} onPress={handlePress} activeOpacity={0.7} > - <Text style={{ fontSize: 14, color: theme.normal }} numberOfLines={1}>{title}</Text> - </TouchableOpacity> - ) -} -// const Singer = () => { -// const playMusicInfo = useGetter('player', 'playMusicInfo') -// return ( -// <View style={{ flexGrow: 0, flexShrink: 0 }}> -// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> -// {playMusicInfo ? playMusicInfo.musicInfo.singer : ''} -// </Text> -// </View> -// ) -// } -// const MusicName = () => { -// const playMusicInfo = useGetter('player', 'playMusicInfo') -// return ( -// <View style={{ flexGrow: 0, flexShrink: 1 }}> -// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> -// {playMusicInfo ? playMusicInfo.musicInfo.name : '^-^'} -// </Text> -// </View> -// ) -// } - -// const styles = StyleSheet.create({ - -// }) diff --git a/src/screens/Home/index.js b/src/screens/Home/index.js deleted file mode 100644 index ea85ca3..0000000 --- a/src/screens/Home/index.js +++ /dev/null @@ -1,58 +0,0 @@ -import React, { useEffect } from 'react' - -import { View, StyleSheet } from 'react-native' -import Header from './components/Header' -import HeaderLandscape from './components/HeaderLandscape' -// import Aside from './components/Aside' -import Main from './components/Main' -import FooterPlayer from './components/FooterPlayer' -import { useGetter, useDispatch } from '@/store' -import { useDimensions } from '@/utils/hooks' -import StatusBar from '@/components/common/StatusBar' - -const styles = StyleSheet.create({ - container: { - flex: 1, - paddingTop: StatusBar.currentHeight, - flexDirection: 'row', - }, -}) - -const Landscape = (props) => { - return ( - <> - <StatusBar /> - <View style={{ ...styles.container, backgroundColor: props.theme.primary }}> - <HeaderLandscape componentId={props.componentId} /> - <View style={{ flex: 1, flexDirection: 'column', height: '100%', overflow: 'hidden' }}> - {/* <Aside /> */} - <Main /> - <FooterPlayer /> - </View> - </View> - </> - ) -} - -export default (props) => { - const theme = useGetter('common', 'theme') - const { window } = useDimensions() - const setComponentId = useDispatch('common', 'setComponentId') - useEffect(() => { - setComponentId({ name: 'home', id: props.componentId }) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - return ( - window.height > window.width - ? <> - <Header componentId={props.componentId} /> - <View style={{ flex: 1, flexDirection: 'column', height: '100%', backgroundColor: theme.primary }}> - {/* <Aside /> */} - <Main /> - <FooterPlayer /> - </View> - </> - : <Landscape componentId={props.componentId} theme={theme} /> - ) -} diff --git a/src/screens/Home/index.tsx b/src/screens/Home/index.tsx new file mode 100644 index 0000000..a2d6419 --- /dev/null +++ b/src/screens/Home/index.tsx @@ -0,0 +1,30 @@ +import React, { useEffect } from 'react' +import { useDimensions } from '@/utils/hooks' +import PageContent from '@/components/PageContent' +import { setComponentId } from '@/core/common' +import { COMPONENT_IDS } from '@/config/constant' +import Vertical from './Vertical' +import Horizontal from './Horizontal' + +interface Props { + componentId: string +} + + +export default ({ componentId }: Props) => { + const { window } = useDimensions() + useEffect(() => { + setComponentId(COMPONENT_IDS.home, componentId) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + return ( + <PageContent> + { + window.height > window.width + ? <Vertical /> + : <Horizontal /> + } + </PageContent> + ) +} diff --git a/src/screens/PlayDetail/Portrait/Lyric.js b/src/screens/PlayDetail/Horizontal/Lyric.tsx similarity index 56% rename from src/screens/PlayDetail/Portrait/Lyric.js rename to src/screens/PlayDetail/Horizontal/Lyric.tsx index 468a965..136f7e5 100644 --- a/src/screens/PlayDetail/Portrait/Lyric.js +++ b/src/screens/PlayDetail/Horizontal/Lyric.tsx @@ -1,52 +1,61 @@ -import React, { memo, useMemo, useCallback, useEffect, useRef } from 'react' -import { View, Text, StyleSheet, FlatList } from 'react-native' -import { useGetter } from '@/store' +import React, { memo, useMemo, useEffect, useRef } from 'react' +import { View, FlatList, type FlatListProps } from 'react-native' // import { useLayout } from '@/utils/hooks' -import { useLrcPlay, useLrcSet } from '@/plugins/lyric' +import { type Line, useLrcPlay, useLrcSet } from '@/plugins/lyric' +import { createStyle } from '@/utils/tools' +// import { useComponentIds } from '@/store/common/hook' +import { useTheme } from '@/store/theme/hook' +import { useSettingValue } from '@/store/setting/hook' +import Text from '@/components/common/Text' +import { scaleSizeH, setSpText } from '@/utils/pixelRatio' +// import { screenkeepAwake } from '@/utils/nativeModules/utils' // import { log } from '@/utils/log' // import { toast } from '@/utils/tools' -const LrcLine = memo(({ lrc, line, activeLine }) => { - const theme = useGetter('common', 'theme') - const playerPortraitStyle = useGetter('common', 'playerPortraitStyle') +type FlatListType = FlatListProps<Line> + + +const LrcLine = memo(({ line, lineNum, activeLine }: { + line: Line + lineNum: number + activeLine: number +}) => { + const theme = useTheme() + const playerPortraitStyle = useSettingValue('player.horizontal.style.lrcFontSize') + const lineHeight = scaleSizeH(setSpText(playerPortraitStyle) / 10 * 1.25) return ( <View style={styles.line}> <Text style={{ ...styles.lineText, - fontSize: playerPortraitStyle.lrcFontSize / 10, - lineHeight: playerPortraitStyle.lrcFontSize / 10 * 1.25, - color: activeLine == line ? theme.secondary : theme.normal50, - }}>{lrc.text}</Text> + lineHeight, + }} color={activeLine == lineNum ? theme['c-primary'] : theme['c-300']} size={playerPortraitStyle / 10}>{line.text}</Text> { - lrc.extendedLyrics.map((lrc, index) => { + line.extendedLyrics.map((lrc, index) => { return (<Text style={{ ...styles.lineTranslationText, - fontSize: playerPortraitStyle.lrcFontSize / 10 * 0.8, - lineHeight: playerPortraitStyle.lrcFontSize / 10 * 0.8 * 1.25, - color: activeLine == line ? theme.secondary : theme.normal50, - }} key={index}>{lrc}</Text>) + lineHeight: lineHeight * 0.8, + }} key={index} color={activeLine == lineNum ? theme['c-primary-alpha-200'] : theme['c-300']} size={playerPortraitStyle / 10 * 0.8}>{lrc}</Text>) }) } </View> ) }, (prevProps, nextProps) => { - return prevProps.text == nextProps.text && - prevProps.line == nextProps.line && - prevProps.activeLine != nextProps.line && - nextProps.activeLine != nextProps.line + return prevProps.line === nextProps.line && + prevProps.activeLine != nextProps.lineNum && + nextProps.activeLine != nextProps.lineNum }) -const wait = () => new Promise(resolve => setTimeout(resolve, 100)) +const wait = async() => new Promise(resolve => setTimeout(resolve, 100)) -export default memo(() => { +export default () => { const lyricLines = useLrcSet() const { line } = useLrcPlay() - const scrollViewRef = useRef() + const flatListRef = useRef<FlatList>(null) const isPauseScrollRef = useRef(true) - const scrollTimoutRef = useRef(null) + const scrollTimoutRef = useRef<NodeJS.Timeout | null>(null) const lineRef = useRef(0) - const linesRef = useRef([]) const isFirstSetLrc = useRef(true) + // useLock() // const [imgUrl, setImgUrl] = useState(null) // const theme = useGetter('common', 'theme') // const { onLayout, ...layout } = useLayout() @@ -59,22 +68,18 @@ export default memo(() => { // }, [playMusicInfo]) // const imgWidth = useMemo(() => layout.width * 0.75, [layout.width]) - const handleScrollToActive = useCallback((index = lineRef.current) => { + const handleScrollToActive = (index = lineRef.current) => { if (index < 0) return - if (scrollViewRef.current) { + if (flatListRef.current) { try { - scrollViewRef.current.scrollToIndex({ + flatListRef.current.scrollToIndex({ index, animated: true, viewPosition: 0.4, }) - } catch (err) { - console.log(err) - // toast('出了点意外...你可以去错误日志查看错误', 'long') - // log.warn('Scroll failed: ', err.message) - } + } catch {} } - }, []) + } const handleScrollBeginDrag = () => { isPauseScrollRef.current = true @@ -86,12 +91,6 @@ export default memo(() => { }, 3000) } - const handleScrollToIndexFailed = (info) => { - // console.log(info) - wait().then(() => { - handleScrollToActive(info.index) - }) - } useEffect(() => { return () => { @@ -103,9 +102,9 @@ export default memo(() => { }, []) useEffect(() => { - linesRef.current = lyricLines - if (!scrollViewRef.current || !scrollViewRef.current.props.data.length) return - scrollViewRef.current.scrollToOffset({ + // linesRef.current = lyricLines + if (!flatListRef.current) return + flatListRef.current.scrollToOffset({ offset: 0, animated: false, }) @@ -118,20 +117,27 @@ export default memo(() => { } else { handleScrollToActive(0) } - }, [handleScrollToActive, lyricLines]) + }, [lyricLines]) useEffect(() => { lineRef.current = line - if (!scrollViewRef.current || isPauseScrollRef.current) return + if (!flatListRef.current || isPauseScrollRef.current) return handleScrollToActive() - }, [handleScrollToActive, line]) + }, [line]) + const handleScrollToIndexFailed: FlatListType['onScrollToIndexFailed'] = (info) => { + // console.log(info) + void wait().then(() => { + handleScrollToActive(info.index) + }) + } - const handleRenderItem = ({ item, index }) => { + const renderItem: FlatListType['renderItem'] = ({ item, index }) => { return ( - <LrcLine lrc={item} line={index} activeLine={line} /> + <LrcLine line={item} lineNum={index} activeLine={line} /> ) } + const getkey: FlatListType['keyExtractor'] = (item, index) => `${index}${item.text}` const spaceComponent = useMemo(() => ( <View style={styles.space}></View> @@ -140,10 +146,10 @@ export default memo(() => { return ( <FlatList data={lyricLines} - renderItem={handleRenderItem} - keyExtractor={(item, index) => index} + renderItem={renderItem} + keyExtractor={getkey} style={styles.container} - ref={scrollViewRef} + ref={flatListRef} showsVerticalScrollIndicator={false} ListHeaderComponent={spaceComponent} ListFooterComponent={spaceComponent} @@ -153,9 +159,9 @@ export default memo(() => { onScrollToIndexFailed={handleScrollToIndexFailed} /> ) -}) +} -const styles = StyleSheet.create({ +const styles = createStyle({ container: { flex: 1, paddingLeft: 10, diff --git a/src/screens/PlayDetail/Horizontal/Pic.tsx b/src/screens/PlayDetail/Horizontal/Pic.tsx new file mode 100644 index 0000000..fda7eb2 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Pic.tsx @@ -0,0 +1,80 @@ +import React, { memo, useState } from 'react' +import { View, Image, StyleSheet } from 'react-native' +// import { useLayout } from '@/utils/hooks' +import { useTheme } from '@/store/theme/hook' +import { BorderRadius } from '@/theme' +import Text from '@/components/common/Text' +import { usePlayerMusicInfo } from '@/store/player/hook' +import { useDimensions } from '@/utils/hooks' +import { useNavigationComponentDidAppear } from '@/navigation' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' + +const EmptyPic = memo(({ width }: { width: number }) => { + const theme = useTheme() + const size = width * 0.2 + return ( + <View style={{ ...styles.emptyPic, width, height: width, backgroundColor: theme['c-primary-light-900-alpha-200'] }}> + <Text size={size} color={theme['c-primary-light-400-alpha-200']}>L</Text> + <Text size={size} color={theme['c-primary-light-400-alpha-200']} style={styles.text}>X</Text> + </View> + ) +}) + +export default memo(({ componentId }: { componentId: string }) => { + const musicInfo = usePlayerMusicInfo() + const { window: { width: winWidth, height: winHeight } } = useDimensions() + + const [animated, setAnimated] = useState(false) + + useNavigationComponentDidAppear(componentId, () => { + setAnimated(true) + }) + + const imgWidth = Math.min(winWidth * 0.6 * 0.5, winHeight * 0.5) + + return ( + <View style={styles.container}> + <View style={{ ...styles.content, elevation: animated ? 3 : 0 }}> + { + musicInfo.pic + ? ( + <Image source={{ uri: musicInfo.pic }} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pic} progressiveRenderingEnabled={true} borderRadius={2} style={{ + ...styles.img, + width: imgWidth, + height: imgWidth, + }} /> + ) + : <EmptyPic width={imgWidth} /> + } + </View> + </View> + ) +}) + +const styles = StyleSheet.create({ + container: { + flexGrow: 1, + flexShrink: 1, + justifyContent: 'center', + alignItems: 'center', + // backgroundColor: 'rgba(0,0,0,0.1)', + }, + content: { + // elevation: 3, + backgroundColor: 'rgba(0,0,0,0)', + borderRadius: 4, + }, + img: { + borderRadius: 4, + // opacity: 0, + }, + emptyPic: { + borderRadius: BorderRadius.normal, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + }, + text: { + paddingLeft: 2, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/Player/ControlBtn.tsx b/src/screens/PlayDetail/Horizontal/Player/ControlBtn.tsx new file mode 100644 index 0000000..6e36933 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/ControlBtn.tsx @@ -0,0 +1,70 @@ +import React from 'react' +import { StyleSheet, TouchableOpacity, View } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { useTheme } from '@/store/theme/hook' +// import { useIsPlay } from '@/store/player/hook' +import { playNext, playPrev, togglePlay } from '@/core/player/player' +import { scaleSizeW } from '@/utils/pixelRatio' +import { useIsPlay } from '@/store/player/hook' + +const WIDTH = scaleSizeW(50) + +const PrevBtn = () => { + const theme = useTheme() + const handlePlayPrev = () => { + void playPrev() + } + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: WIDTH, height: WIDTH }} activeOpacity={0.5} onPress={handlePlayPrev}> + <Icon name='prevMusic' color={theme['c-button-font']} size={32} /> + </TouchableOpacity> + ) +} +const NextBtn = () => { + const theme = useTheme() + const handlePlayNext = () => { + void playNext() + } + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: WIDTH, height: WIDTH }} activeOpacity={0.5} onPress={handlePlayNext}> + <Icon name='nextMusic' color={theme['c-button-font']} size={32} /> + </TouchableOpacity> + ) +} + +const TogglePlayBtn = () => { + const theme = useTheme() + const isPlay = useIsPlay() + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: WIDTH, height: WIDTH }} activeOpacity={0.5} onPress={togglePlay}> + <Icon name={isPlay ? 'pause' : 'play'} color={theme['c-button-font']} size={32} /> + </TouchableOpacity> + ) +} + +export default () => { + return ( + <View style={styles.content}> + <PrevBtn /> + <TogglePlayBtn /> + <NextBtn /> + </View> + ) +} + + +const styles = StyleSheet.create({ + content: { + flexGrow: 0, + flexDirection: 'row', + }, + cotrolBtn: { + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + marginLeft: 10, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/Player/MoreBtn/Btn.tsx b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/Btn.tsx new file mode 100644 index 0000000..9f7e2fb --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/Btn.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeW } from '@/utils/pixelRatio' + +export const BTN_WIDTH = scaleSizeW(32) +export const BTN_ICON_SIZE = 22 + +export default ({ icon, color, onPress }: { + icon: string + color?: string + onPress: () => void +}) => { + const theme = useTheme() + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: BTN_WIDTH, height: BTN_WIDTH }} activeOpacity={0.5} onPress={onPress}> + <Icon name={icon} color={color ?? theme['c-font-label']} size={BTN_ICON_SIZE} /> + </TouchableOpacity> + ) +} + +const styles = createStyle({ + cotrolBtn: { + marginLeft: 5, + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/Player/MoreBtn/MusicAddBtn.tsx b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/MusicAddBtn.tsx new file mode 100644 index 0000000..ed2e3c3 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/MusicAddBtn.tsx @@ -0,0 +1,26 @@ +import React, { useRef } from 'react' +import MusicAddModal, { MusicAddModalType } from '@/components/MusicAddModal' +import playerState from '@/store/player/state' +import Btn from './Btn' + + +export default () => { + const musicAddModalRef = useRef<MusicAddModalType>(null) + + const handleShowMusicAddModal = () => { + const musicInfo = playerState.playMusicInfo.musicInfo + if (!musicInfo) return + musicAddModalRef.current?.show({ + musicInfo: 'progress' in musicInfo ? musicInfo.metadata.musicInfo : musicInfo, + isMove: false, + listId: playerState.playMusicInfo.listId as string, + }) + } + + return ( + <> + <Btn icon="add-music" onPress={handleShowMusicAddModal} /> + <MusicAddModal ref={musicAddModalRef} /> + </> + ) +} diff --git a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/PlayModeBtn.js b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/PlayModeBtn.tsx similarity index 58% rename from src/screens/PlayDetail/Portrait/Player/components/MoreBtn/PlayModeBtn.js rename to src/screens/PlayDetail/Horizontal/Player/MoreBtn/PlayModeBtn.tsx index 3765d56..35227f8 100644 --- a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/PlayModeBtn.js +++ b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/PlayModeBtn.tsx @@ -1,23 +1,22 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' +import React, { memo, useMemo } from 'react' import { toast } from '@/utils/tools' -import { useTranslation } from '@/plugins/i18n' import { MUSIC_TOGGLE_MODE_LIST, MUSIC_TOGGLE_MODE } from '@/config/constant' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' +import Btn from './Btn' + export default memo(() => { - const togglePlayMethod = useGetter('common', 'togglePlayMethod') - const theme = useGetter('common', 'theme') - const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - const { t } = useTranslation() + const togglePlayMethod = useSettingValue('player.togglePlayMethod') + const t = useI18n() const toggleNextPlayMode = () => { let index = MUSIC_TOGGLE_MODE_LIST.indexOf(togglePlayMethod) if (++index >= MUSIC_TOGGLE_MODE_LIST.length) index = 0 const mode = MUSIC_TOGGLE_MODE_LIST[index] - setPlayNextMode(mode) - let modeName + updateSetting({ 'player.togglePlayMethod': mode }) + let modeName: 'play_list_loop' | 'play_list_random' | 'play_list_order' | 'play_single_loop' | 'play_single' switch (mode) { case MUSIC_TOGGLE_MODE.listLoop: modeName = 'play_list_loop' @@ -60,23 +59,5 @@ export default memo(() => { return playModeIcon }, [togglePlayMethod]) - return ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Icon name={playModeIcon} style={{ color: theme.normal30 }} size={24} /> - </TouchableOpacity> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginLeft: 5, - width: 32, - height: 32, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, + return <Btn icon={playModeIcon} onPress={toggleNextPlayMode} /> }) diff --git a/src/screens/PlayDetail/Horizontal/Player/MoreBtn/TimeoutExitBtn.tsx b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/TimeoutExitBtn.tsx new file mode 100644 index 0000000..cd6083e --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/TimeoutExitBtn.tsx @@ -0,0 +1,23 @@ +import React, { memo, useRef } from 'react' +import TimeoutExitEditModal, { type TimeoutExitEditModalType, useTimeInfo } from '@/components/TimeoutExitEditModal' +import { useTheme } from '@/store/theme/hook' +import Btn from './Btn' + + +export default memo(() => { + const theme = useTheme() + const modalRef = useRef<TimeoutExitEditModalType>(null) + + const timeInfo = useTimeInfo() + + const handleShow = () => { + modalRef.current?.show() + } + + return ( + <> + <Btn icon="music_time" color={timeInfo.active ? theme['c-primary-font-active'] : theme['c-font-label']} onPress={handleShow} /> + <TimeoutExitEditModal ref={modalRef} timeInfo={timeInfo} /> + </> + ) +}) diff --git a/src/screens/PlayDetail/Horizontal/Player/MoreBtn/index.tsx b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/index.tsx new file mode 100644 index 0000000..110c66c --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/MoreBtn/index.tsx @@ -0,0 +1,27 @@ +import { createStyle } from '@/utils/tools' +import React from 'react' +import { View } from 'react-native' +import PlayModeBtn from './PlayModeBtn' +import MusicAddBtn from './MusicAddBtn' +import TimeoutExitBtn from './TimeoutExitBtn' + +export default () => { + return ( + <View style={styles.container}> + <TimeoutExitBtn /> + <MusicAddBtn /> + <PlayModeBtn /> + </View> + ) +} + + +const styles = createStyle({ + container: { + flexShrink: 0, + flexGrow: 0, + flexDirection: 'row', + alignItems: 'center', + // backgroundColor: 'rgba(0,0,0,0.1)', + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/Player/PlayInfo.tsx b/src/screens/PlayDetail/Horizontal/Player/PlayInfo.tsx new file mode 100644 index 0000000..1fceaf7 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/PlayInfo.tsx @@ -0,0 +1,65 @@ +import React, { memo } from 'react' +import { View } from 'react-native' + +import Progress from './Progress' +import Status from './Status' +import { useProgress } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + +// const FONT_SIZE = 13 + +const PlayTimeCurrent = ({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + // console.log(timeStr) + return <Text color={theme['c-500']}>{timeStr}</Text> +} + +const PlayTimeMax = memo(({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + return <Text color={theme['c-500']}>{timeStr}</Text> +}) + +export default () => { + const theme = useTheme() + const { maxPlayTimeStr, nowPlayTimeStr, progress, maxPlayTime } = useProgress() + // console.log('render playInfo') + + return ( + <> + <View style={styles.progress}><Progress progress={progress} duration={maxPlayTime} /></View> + <View style={styles.info}> + <View style={styles.status} > + <Status /> + </View> + <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > + <PlayTimeCurrent timeStr={nowPlayTimeStr} /> + <Text color={theme['c-500']}> / </Text> + <PlayTimeMax timeStr={maxPlayTimeStr} /> + </View> + </View> + </> + ) +} + + +const styles = createStyle({ + progress: { + flexGrow: 1, + flexShrink: 0, + flexDirection: 'column', + justifyContent: 'center', + }, + info: { + flexDirection: 'row', + justifyContent: 'space-between', + // alignItems: 'center', + // backgroundColor: '#ccc', + }, + status: { + flexGrow: 1, + flexShrink: 1, + paddingRight: 5, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/Player/Progress.tsx b/src/screens/PlayDetail/Horizontal/Player/Progress.tsx new file mode 100644 index 0000000..2940104 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/Progress.tsx @@ -0,0 +1,104 @@ +import React, { memo, useMemo } from 'react' +import { View, Pressable, GestureResponderEvent } from 'react-native' +import { useLayout } from '@/utils/hooks' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeW } from '@/utils/pixelRatio' +// import { AppColors } from '@/theme' + + +const DefaultBar = memo(() => { + const theme = useTheme() + + return <View style={{ ...styles.progressBar, backgroundColor: theme['c-primary-light-100-alpha-800'], position: 'absolute', width: '100%', left: 0, top: 0 }}></View> +}) + +// const BufferedBar = memo(({ bufferedProgress }) => { +// // console.log(bufferedProgress) +// const theme = useTheme() +// return <View style={{ ...styles.progressBar, backgroundColor: theme.secondary45, position: 'absolute', width: bufferedProgress + '%', left: 0, top: 0 }}></View> +// }) + +const PreassBar = memo(({ duration }: { duration: number }) => { + const { onLayout, ...layout } = useLayout() + const handlePress = (event: GestureResponderEvent) => { + global.app_event.setProgress(event.nativeEvent.locationX / layout.width * duration) + } + + return <Pressable onPress={handlePress} onLayout={onLayout} style={styles.pressBar} /> +}) + + +const Progress = ({ progress, duration }: { + progress: number + duration: number +}) => { + // const { progress } = usePlayTimeBuffer() + const theme = useTheme() + // console.log(progress) + const progressStr = `${progress * 100}%` + + const progressDotStyle = useMemo(() => { + return { + width: progressDotSize, + height: progressDotSize, + borderRadius: progressDotSize, + position: 'absolute', + right: -progressDotSize / 2, + top: -(progressDotSize - progressHeight) / 2, + backgroundColor: theme['c-primary-light-100'], + zIndex: 9, + } as const + }, [theme]) + + return ( + <View style={styles.progress}> + <View> + <DefaultBar /> + {/* <BufferedBar bufferedProgress={bufferedProgress} /> */} + <View style={{ ...styles.progressBar, backgroundColor: theme['c-primary-light-100-alpha-400'], width: progressStr, position: 'absolute', left: 0, top: 0 }}> + <Pressable style={{ ...styles.progressDot, ...progressDotStyle }}></Pressable> + </View> + </View> + <PreassBar duration={duration} /> + {/* <View style={{ ...styles.progressBar, height: '100%', width: progressStr }}><Pressable style={styles.progressDot}></Pressable></View> */} + </View> + ) +} + +const progressContentPadding = 10 +const progressHeight = 3.6 +const progressDotSize = scaleSizeW(12) +const styles = createStyle({ + progress: { + width: '100%', + height: progressContentPadding * 2 + progressHeight, + // backgroundColor: 'rgba(0,0,0,0.5)', + paddingTop: progressContentPadding, + paddingBottom: progressContentPadding, + zIndex: 1, + }, + progressBar: { + height: progressHeight, + borderRadius: 4, + }, + progressDot: { + width: progressDotSize, + height: progressDotSize, + borderRadius: progressDotSize, + position: 'absolute', + right: -progressDotSize / 2, + top: -(progressDotSize - progressHeight) / 2, + zIndex: 9, + }, + pressBar: { + position: 'absolute', + // backgroundColor: 'rgba(0,0,0,0.5)', + left: 0, + top: 0, + height: progressContentPadding * 2 + progressHeight, + width: '100%', + }, +}) + +export default Progress diff --git a/src/screens/PlayDetail/Horizontal/Player/Status.tsx b/src/screens/PlayDetail/Horizontal/Player/Status.tsx new file mode 100644 index 0000000..2c473f9 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/Status.tsx @@ -0,0 +1,22 @@ +import React from 'react' +// import { useLrcPlay } from '@/plugins/lyric' +import { useStatusText } from '@/store/player/hook' +// import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + + +export default () => { + // const { text } = useLrcPlay() + const statusText = useStatusText() + // console.log('render status') + + // const status = playerStatus.isPlay ? text : playerStatus.statusText + + return <Text numberOfLines={1} size={13}>{statusText}</Text> +} + +// const styles = createStyle({ +// text: { +// fontSize: 10, +// }, +// }) diff --git a/src/screens/PlayDetail/Horizontal/Player/index.tsx b/src/screens/PlayDetail/Horizontal/Player/index.tsx new file mode 100644 index 0000000..3039f8a --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/Player/index.tsx @@ -0,0 +1,38 @@ +import React, { memo } from 'react' +import { View } from 'react-native' + +// import Title from './components/Title' +import { createStyle } from '@/utils/tools' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import PlayInfo from './PlayInfo' +import MoreBtn from './MoreBtn' +import ControlBtn from './ControlBtn' + + +export default memo(() => { + return ( + <View style={styles.container} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_player}> + <View style={styles.controlBtn}> + <MoreBtn /> + <ControlBtn /> + </View> + <PlayInfo /> + </View> + ) +}) + +const styles = createStyle({ + container: { + flexShrink: 0, + flexGrow: 0, + paddingLeft: 15, + // paddingRight: 15, + }, + controlBtn: { + flexDirection: 'row', + // alignItems: 'flex-end', + justifyContent: 'space-between', + paddingTop: 8, + // paddingBottom: 10, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/components/Btn.tsx b/src/screens/PlayDetail/Horizontal/components/Btn.tsx new file mode 100644 index 0000000..9c87590 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/components/Btn.tsx @@ -0,0 +1,35 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeW } from '@/utils/pixelRatio' + +import { HEADER_HEIGHT } from '@/config/constant' +export const BTN_WIDTH = scaleSizeW(HEADER_HEIGHT) +export const BTN_ICON_SIZE = 18 + +export default ({ icon, color, onPress }: { + icon: string + color?: string + onPress: () => void +}) => { + const theme = useTheme() + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: BTN_WIDTH, height: BTN_WIDTH }} activeOpacity={0.5} onPress={onPress}> + <Icon name={icon} color={color ?? theme['c-550']} size={BTN_ICON_SIZE} /> + </TouchableOpacity> + ) +} + +const styles = createStyle({ + cotrolBtn: { + // marginLeft: 5, + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/components/CommentBtn.tsx b/src/screens/PlayDetail/Horizontal/components/CommentBtn.tsx new file mode 100644 index 0000000..4cb35e3 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/components/CommentBtn.tsx @@ -0,0 +1,15 @@ +import React from 'react' +import Btn from './Btn' +import { useComponentIds } from '@/store/common/hook' +import { navigations } from '@/navigation' + + +export default () => { + const componentIds = useComponentIds() + + const handleShowCommentScreen = () => { + navigations.pushCommentScreen(componentIds.playDetail as string) + } + + return <Btn icon="comment" onPress={handleShowCommentScreen} /> +} diff --git a/src/screens/PlayDetail/Horizontal/components/Header.tsx b/src/screens/PlayDetail/Horizontal/components/Header.tsx new file mode 100644 index 0000000..1405b14 --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/components/Header.tsx @@ -0,0 +1,143 @@ +import React, { memo, useRef, useState } from 'react' + +import { View, StyleSheet, TouchableOpacity } from 'react-native' + +import { Icon } from '@/components/common/Icon' +import { pop } from '@/navigation' +// import { AppColors } from '@/theme' +// import commonState from '@/store/common/state' +import { useTheme } from '@/store/theme/hook' +import { usePlayerMusicInfo } from '@/store/player/hook' +import Text from '@/components/common/Text' +import { scaleSizeH } from '@/utils/pixelRatio' +import { HEADER_HEIGHT as _HEADER_HEIGHT, NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import commonState from '@/store/common/state' +import { createStyle } from '@/utils/tools' +import { useSettingValue } from '@/store/setting/hook' +import Slider, { type SliderProps } from '@/components/common/Slider' +import { updateSetting } from '@/core/common' +import Popup, { type PopupType } from '@/components/common/Popup' +import { useI18n } from '@/lang' +import CommentBtn from './CommentBtn' +import Btn from './Btn' + +const HEADER_HEIGHT = scaleSizeH(_HEADER_HEIGHT) + +const LrcFontSizeStyles = createStyle({ + content: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'nowrap', + alignItems: 'center', + paddingLeft: 15, + paddingRight: 15, + }, +}) +const LrcFontSize = () => { + const theme = useTheme() + const lrcFontSize = useSettingValue('player.horizontal.style.lrcFontSize') + const [sliderSize, setSliderSize] = useState(lrcFontSize) + const [isSliding, setSliding] = useState(false) + + const handleSlidingStart: SliderProps['onSlidingStart'] = value => { + setSliding(true) + } + const handleValueChange: SliderProps['onValueChange'] = value => { + setSliderSize(value) + } + const handleSlidingComplete: SliderProps['onSlidingComplete'] = value => { + if (lrcFontSize == value) return + updateSetting({ 'player.horizontal.style.lrcFontSize': value }) + setSliding(false) + } + + return ( + <View style={LrcFontSizeStyles.content}> + <Text color={theme['c-font-label']}>{isSliding ? sliderSize : lrcFontSize}</Text> + <Slider + minimumValue={100} + maximumValue={300} + onSlidingComplete={handleSlidingComplete} + onValueChange={handleValueChange} + onSlidingStart={handleSlidingStart} + step={2} + value={lrcFontSize} + /> + </View> + ) +} + +const Title = () => { + const theme = useTheme() + const musicInfo = usePlayerMusicInfo() + + + return ( + <View style={styles.titleContent}> + <Text numberOfLines={1} style={styles.title} size={14}>{musicInfo.name}</Text> + <Text numberOfLines={1} style={styles.title} size={12} color={theme['c-font-label']}>{musicInfo.singer}</Text> + </View> + ) +} + +export default memo(() => { + const t = useI18n() + // const theme = useTheme() + + // const [settingVisible, setSettingVisible] = useState(false) + const popupRef = useRef<PopupType>(null) + + const back = () => { + // navigation.goBack() + void pop(commonState.componentIds.playDetail as string) + } + const showSetting = () => { + popupRef.current?.setVisible(true) + } + + return ( + <View style={{ height: HEADER_HEIGHT }} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_header}> + <View style={styles.container}> + <TouchableOpacity onPress={back} style={{ ...styles.button, width: HEADER_HEIGHT }}> + <Icon name="chevron-left" size={18} /> + </TouchableOpacity> + <Title /> + <CommentBtn /> + <Btn icon="font-size" onPress={showSetting} /> + </View> + <Popup ref={popupRef} position="left" title={t('player_setting_lrc_font_size')}> + <LrcFontSize /> + </Popup> + </View> + ) +}) + + +const styles = StyleSheet.create({ + container: { + // backgroundColor: '#ccc', + flexDirection: 'row', + // justifyContent: 'center', + height: '100%', + }, + button: { + justifyContent: 'center', + alignItems: 'center', + height: '100%', + flex: 0, + }, + titleContent: { + flex: 1, + // alignItems: 'center', + justifyContent: 'center', + }, + title: { + // flex: 1, + // textAlign: 'center', + }, + icon: { + paddingLeft: 4, + paddingRight: 4, + }, +}) diff --git a/src/screens/PlayDetail/Horizontal/index.tsx b/src/screens/PlayDetail/Horizontal/index.tsx new file mode 100644 index 0000000..9b5fabe --- /dev/null +++ b/src/screens/PlayDetail/Horizontal/index.tsx @@ -0,0 +1,93 @@ +import React, { memo, useEffect } from 'react' +import { View, StyleSheet, AppState } from 'react-native' +import { screenkeepAwake, screenUnkeepAwake } from '@/utils/nativeModules/utils' +import StatusBar from '@/components/common/StatusBar' + +import Header from './components/Header' +import { setComponentId } from '@/core/common' +import { COMPONENT_IDS } from '@/config/constant' +import PageContent from '@/components/PageContent' +import commonState, { type InitState as CommonState } from '@/store/common/state' + +import Pic from './Pic' +// import ControlBtn from './ControlBtn' +import Lyric from './Lyric' +import Player from './Player' +// import MoreBtn from './MoreBtn2' + +export default memo(({ componentId }: { componentId: string }) => { + useEffect(() => { + setComponentId(COMPONENT_IDS.playDetail, componentId) + screenkeepAwake() + let appstateListener = AppState.addEventListener('change', (state) => { + switch (state) { + case 'active': + if (!commonState.componentIds.comment) screenkeepAwake() + break + case 'background': + screenUnkeepAwake() + break + } + }) + + const handleComponentIdsChange = (ids: CommonState['componentIds']) => { + if (ids.comment) screenUnkeepAwake() + else if (AppState.currentState == 'active') screenkeepAwake() + } + + global.state_event.on('componentIdsUpdated', handleComponentIdsChange) + + return () => { + global.state_event.off('componentIdsUpdated', handleComponentIdsChange) + appstateListener.remove() + screenUnkeepAwake() + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + return ( + <PageContent> + <StatusBar /> + <View style={{ ...styles.container, paddingTop: StatusBar.currentHeight }}> + <View style={styles.left}> + <Header /> + <Pic componentId={componentId} /> + {/* <View style={styles.controlBtn} nativeID="pageIndicator"> + <MoreBtn /> + <ControlBtn /> + </View> */} + <Player /> + </View> + <View style={styles.right}> + <Lyric /> + </View> + </View> + </PageContent> + ) +}) + +const styles = StyleSheet.create({ + container: { + flex: 1, + flexDirection: 'row', + }, + left: { + flex: 1, + width: '45%', + // paddingLeft: 15, + paddingBottom: 10, + // backgroundColor: '#eee', + }, + right: { + width: '55%', + flexGrow: 0, + flexShrink: 0, + }, + controlBtn: { + flex: 1, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + // backgroundColor: '#eee', + }, +}) diff --git a/src/screens/PlayDetail/Landscape/ControlBtn.js b/src/screens/PlayDetail/Landscape/ControlBtn.js deleted file mode 100644 index 3ae9228..0000000 --- a/src/screens/PlayDetail/Landscape/ControlBtn.js +++ /dev/null @@ -1,95 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { View, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { STATUS } from '@/store/modules/player' -import { useDimensions } from '@/utils/hooks' - - -export default ({ playNextModes }) => { - const playStatus = useGetter('player', 'status') - const playNext = useDispatch('player', 'playNext') - const playPrev = useDispatch('player', 'playPrev') - // const playMusicInfo = useGetter('player', 'playMusicInfo') - const pauseMusic = useDispatch('player', 'pauseMusic') - const playMusic = useDispatch('player', 'playMusic') - const theme = useGetter('common', 'theme') - - // const togglePlayMethod = useGetter('common', 'togglePlayMethod') - // const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - // const toggleNextPlayMode = useCallback(() => { - // let index = playNextModes.indexOf(togglePlayMethod) - // if (++index >= playNextModes.length) index = -1 - // setPlayNextMode(playNextModes[index] || '') - // }, [setPlayNextMode, togglePlayMethod, playNextModes]) - - const { window } = useDimensions() - const width = useMemo(() => window.width * 0.4 * 0.56 * 0.33 * 0.56, [window.width]) - - const btnPrev = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playPrev}> - <Icon name='prevMusic' style={{ color: theme.secondary10 }} size={width} /> - </TouchableOpacity> - ), [playPrev, theme, width]) - - const togglePlay = useCallback(playStatus => { - switch (playStatus) { - case STATUS.playing: - pauseMusic() - break - case STATUS.pause: - case STATUS.stop: - case STATUS.none: - playMusic() - break - // default: - // playMusic(playMusicInfo) - // break - } - }, []) - const btnPlay = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={() => togglePlay(playStatus)}> - <Icon name={playStatus == STATUS.playing ? 'pause' : 'play'} style={{ color: theme.secondary10 }} size={width} /> - </TouchableOpacity> - ), [playStatus, theme, togglePlay, width]) - const btnNext = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playNext}> - <Icon name='nextMusic' style={{ color: theme.secondary10 }} size={width} /> - </TouchableOpacity> - ), [playNext, theme, width]) - - return ( - <View style={styles.container}> - {/* <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Text style={{ ...styles.cotrolBtn }}> - <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={18} /> - </Text> - </TouchableOpacity> - */} - {btnPrev} - {btnPlay} - {btnNext} - </View> - ) -} - - -const styles = StyleSheet.create({ - container: { - flex: 0, - flexDirection: 'row', - paddingLeft: 15, - // paddingRight: 15, - width: '56%', - }, - cotrolBtn: { - width: '33.33%', - aspectRatio: 1, - justifyContent: 'center', - alignItems: 'center', - - shadowOpacity: 1, - textShadowRadius: 1, - // backgroundColor: '#eee', - }, -}) diff --git a/src/screens/PlayDetail/Landscape/Lyric.js b/src/screens/PlayDetail/Landscape/Lyric.js deleted file mode 100644 index 3a37c9d..0000000 --- a/src/screens/PlayDetail/Landscape/Lyric.js +++ /dev/null @@ -1,203 +0,0 @@ -import React, { memo, useMemo, useCallback, useEffect, useRef } from 'react' -import { View, Text, StyleSheet, FlatList } from 'react-native' -import { useGetter, useDispatch } from '@/store' -// import { useLayout } from '@/utils/hooks' -import { useLrcPlay, useLrcSet } from '@/plugins/lyric' -// import { log } from '@/utils/log' -// import { toast } from '@/utils/tools' -import { onNavigationComponentDidDisappearEvent } from '@/navigation' - -const LrcLine = memo(({ lrc, line, activeLine }) => { - const theme = useGetter('common', 'theme') - const playerLandscapeStyle = useGetter('common', 'playerLandscapeStyle') - - return ( - <View style={styles.line}> - <Text style={{ - ...styles.lineText, - fontSize: playerLandscapeStyle.lrcFontSize / 10, - lineHeight: playerLandscapeStyle.lrcFontSize / 10 * 1.25, - color: activeLine == line ? theme.secondary : theme.normal50, - }}>{lrc.text}</Text> - { - lrc.extendedLyrics.map((lrc, index) => { - return (<Text style={{ - ...styles.lineTranslationText, - fontSize: playerLandscapeStyle.lrcFontSize / 10 * 0.8, - lineHeight: playerLandscapeStyle.lrcFontSize / 10 * 0.8 * 1.25, - color: activeLine == line ? theme.secondary : theme.normal50, - }} key={index}>{lrc}</Text>) - }) - } - </View> - ) -}, (prevProps, nextProps) => { - return prevProps.text == nextProps.text && - prevProps.line == nextProps.line && - prevProps.activeLine != nextProps.line && - nextProps.activeLine != nextProps.line -}) -const wait = () => new Promise(resolve => setTimeout(resolve, 100)) - -export default memo(() => { - const lyricLines = useLrcSet() - const { line } = useLrcPlay() - const scrollViewRef = useRef() - const isPauseScrollRef = useRef(true) - const scrollTimoutRef = useRef(null) - const lineRef = useRef(0) - const linesRef = useRef([]) - const isFirstSetLrc = useRef(true) - const componentIds = useGetter('common', 'componentIds') - // const playMusicInfo = useGetter('player', 'playMusicInfo') - // const [imgUrl, setImgUrl] = useState(null) - // const theme = useGetter('common', 'theme') - // const { onLayout, ...layout } = useLayout() - - // useEffect(() => { - // const url = playMusicInfo ? playMusicInfo.musicInfo.img : null - // if (imgUrl == url) return - // setImgUrl(url) - // // eslint-disable-next-line react-hooks/exhaustive-deps - // }, [playMusicInfo]) - - // const imgWidth = useMemo(() => layout.width * 0.75, [layout.width]) - const handleScrollToActive = useCallback((index = lineRef.current) => { - if (index < 0) return - if (scrollViewRef.current) { - try { - scrollViewRef.current.scrollToIndex({ - index, - animated: true, - viewPosition: 0.4, - }) - } catch (err) { - console.log(err) - // toast('出了点意外...你可以去错误日志查看错误', 'long') - // log.warn('Scroll failed: ', err.message) - } - } - }, []) - - const handleScrollBeginDrag = () => { - isPauseScrollRef.current = true - if (scrollTimoutRef.current) clearTimeout(scrollTimoutRef.current) - scrollTimoutRef.current = setTimeout(() => { - scrollTimoutRef.current = null - isPauseScrollRef.current = false - handleScrollToActive() - }, 3000) - } - - const handleScrollToIndexFailed = (info) => { - // console.log(info) - wait().then(() => { - handleScrollToActive(info.index) - }) - } - - useEffect(() => { - return () => { - if (scrollTimoutRef.current) { - clearTimeout(scrollTimoutRef.current) - scrollTimoutRef.current = null - } - } - }, []) - - useEffect(() => { - let listener - if (componentIds.comment) { - listener = onNavigationComponentDidDisappearEvent(componentIds.comment, () => { - - }) - } - return () => { - if (listener) listener.remove() - } - }, [componentIds]) - - useEffect(() => { - linesRef.current = lyricLines - if (!scrollViewRef.current || !scrollViewRef.current.props.data.length) return - scrollViewRef.current.scrollToOffset({ - offset: 0, - animated: false, - }) - if (isFirstSetLrc.current) { - isFirstSetLrc.current = false - setTimeout(() => { - isPauseScrollRef.current = false - handleScrollToActive() - }, 100) - } else { - handleScrollToActive(0) - } - }, [handleScrollToActive, lyricLines]) - - useEffect(() => { - lineRef.current = line - if (!scrollViewRef.current || isPauseScrollRef.current) return - handleScrollToActive() - }, [handleScrollToActive, line]) - - - const handleRenderItem = ({ item, index }) => { - return ( - <LrcLine lrc={item} line={index} activeLine={line} /> - ) - } - - const spaceComponent = useMemo(() => ( - <View style={styles.space}></View> - ), []) - - return ( - <FlatList - data={lyricLines} - renderItem={handleRenderItem} - keyExtractor={(item, index) => index} - style={styles.container} - ref={scrollViewRef} - showsVerticalScrollIndicator={false} - ListHeaderComponent={spaceComponent} - ListFooterComponent={spaceComponent} - onScrollBeginDrag={handleScrollBeginDrag} - fadingEdgeLength={200} - initialNumToRender={Math.max(line + 10, 10)} - onScrollToIndexFailed={handleScrollToIndexFailed} - /> - ) -}) - -const styles = StyleSheet.create({ - container: { - flex: 1, - paddingLeft: 10, - paddingRight: 10, - // backgroundColor: 'rgba(0,0,0,0.1)', - }, - space: { - paddingTop: '80%', - }, - line: { - paddingTop: 8, - paddingBottom: 8, - // opacity: 0, - }, - lineText: { - textAlign: 'center', - fontSize: 18, - lineHeight: 20, - // paddingTop: 5, - // paddingBottom: 5, - // opacity: 0, - }, - lineTranslationText: { - textAlign: 'center', - fontSize: 13, - lineHeight: 17, - paddingTop: 5, - // paddingBottom: 5, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/MoreBtn/MusicAddBtn.js b/src/screens/PlayDetail/Landscape/MoreBtn/MusicAddBtn.js deleted file mode 100644 index 411524f..0000000 --- a/src/screens/PlayDetail/Landscape/MoreBtn/MusicAddBtn.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState, useRef } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import MusicAddModal from '@/components/MusicAddModal' - - -export default memo(({ width }) => { - const theme = useGetter('common', 'theme') - const [visibleMusicAddModal, setVisibleMusicAddModal] = useState(false) - const playMusicInfo = useGetter('player', 'playMusicInfo') - const selectedDataRef = useRef() - const hideMusicAddModal = () => { - setVisibleMusicAddModal(false) - } - - const handleShowMusicAddModal = () => { - selectedDataRef.current = playMusicInfo.musicInfo - setVisibleMusicAddModal(true) - } - - return ( - <> - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handleShowMusicAddModal}> - <Icon name="add-music" style={{ color: theme.normal30 }} size={width} /> - </TouchableOpacity> - <MusicAddModal - visible={visibleMusicAddModal} - hideModal={hideMusicAddModal} - musicInfo={selectedDataRef.current} /> - </> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginRight: '1%', - width: '25%', - aspectRatio: 1, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/MoreBtn/TimeoutExit.js b/src/screens/PlayDetail/Landscape/MoreBtn/TimeoutExit.js deleted file mode 100644 index 758ed13..0000000 --- a/src/screens/PlayDetail/Landscape/MoreBtn/TimeoutExit.js +++ /dev/null @@ -1,184 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState, useRef } from 'react' -import { Text, StyleSheet, TouchableOpacity, View } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import { useTranslation } from '@/plugins/i18n' -import Input from '@/components/common/Input' -import { startTimeoutExit, stopTimeoutExit, useTimeoutExitTimeInfo, getTimeoutExitTime, cancelTimeoutExit } from '@/utils/timeoutExit' -import { toast } from '@/utils/tools' -import CheckBox from '@/components/common/CheckBox' - -const MAX_MIN = 1440 -const formatTime = time => { - // let d = parseInt(time / 86400) - // d = d ? d.toString() + ':' : '' - // time = time % 86400 - let h = parseInt(time / 3600) - h = h ? h.toString() + ':' : '' - time = time % 3600 - const m = parseInt(time / 60).toString().padStart(2, '0') - const s = parseInt(time % 60).toString().padStart(2, '0') - return `${h}${m}:${s}` -} -const rxp = /([1-9]\d*)/ -const Status = ({ exitTimeInfo }) => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - return ( - <View style={styles.tip}> - { - exitTimeInfo.time < 0 - ? ( - <Text style={{ color: theme.normal }}>{t('timeout_exit_tip_off')}</Text> - ) - : ( - <Text style={{ color: theme.normal }}>{t('timeout_exit_tip_on', { time: formatTime(exitTimeInfo.time) })}</Text> - ) - } - {exitTimeInfo.isPlayedExit ? <Text style={{ fontSize: 12, color: theme.normal40 }}>{t('timeout_exit_btn_wait_tip')}</Text> : null} - </View> - ) -} - -export default memo(() => { - const theme = useGetter('common', 'theme') - const [visibleAlert, setVisibleAlert] = useState(false) - const { t } = useTranslation() - const [text, setText] = useState('') - const exitTimeInfo = useTimeoutExitTimeInfo() - const inputRef = useRef() - const timeoutExit = useGetter('common', 'timeoutExit') - const timeoutExitPlayed = useGetter('common', 'timeoutExitPlayed') - const setTimeoutExit = useDispatch('common', 'setTimeoutExit') - const timeInfo = useMemo(() => { - return exitTimeInfo.time < 0 - ? { cancelText: exitTimeInfo.isPlayedExit ? t('timeout_exit_btn_wait_cancel') : '', confirmText: '', active: false } - : { - cancelText: t('timeout_exit_btn_cancel'), - confirmText: t('timeout_exit_btn_update'), - active: true, - } - }, [exitTimeInfo, t]) - - const handleShowTimeoutAlert = () => { - setText(timeoutExit) - setVisibleAlert(true) - // global.requestAnimationFrame(() => { - // inputRef.current.focus() - // }) - } - const handleAlertHide = () => { - setVisibleAlert(false) - } - const handleAlertCancel = () => { - setVisibleAlert(false) - if (exitTimeInfo.isPlayedExit) { - cancelTimeoutExit() - return - } - if (!timeInfo.active) return - stopTimeoutExit() - toast(t('timeout_exit_tip_cancel')) - } - const handleAlertConfirm = () => { - // if (filterFileName.test(text)) { - // toast(t('create_new_folder_error_tip'), 'long') - // return - // } - const time = parseInt(text) - if (!time) return - cancelTimeoutExit() - startTimeoutExit(time * 60) - setVisibleAlert(false) - toast(t('timeout_exit_tip_on', { time: formatTime(getTimeoutExitTime()) })) - setTimeoutExit({ time: String(time) }) - } - const onChangeText = useCallback(text => { - if (rxp.test(text)) { - if (text != RegExp.$1) toast(t('input_error')) - text = RegExp.$1 - if (parseInt(text) > MAX_MIN) { - toast(t('timeout_exit_tip_max', { num: MAX_MIN })) - text = text.substring(0, text.length - 1) - } - } else { - if (text.length) toast(t('input_error')) - text = '' - } - setText(text) - }, [t]) - - const onCheckChange = check => { - setTimeoutExit({ isPlayed: check }) - } - - - return ( - <> - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handleShowTimeoutAlert}> - <Icon name="alarm-snooze" style={{ color: timeInfo.active ? theme.secondary20 : theme.normal30 }} size={24} /> - </TouchableOpacity> - <ConfirmAlert - visible={visibleAlert} - onHide={handleAlertHide} - onCancel={handleAlertCancel} - onConfirm={handleAlertConfirm} - cancelText={timeInfo.cancelText} - confirmText={timeInfo.confirmText} - > - <View style={styles.alertContent}> - <Status exitTimeInfo={exitTimeInfo} /> - <View style={styles.inputContent}> - <Input - ref={inputRef} - value={text} - onChangeText={onChangeText} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} /> - <Text style={{ marginLeft: 5, color: theme.normal }}>{t('timeout_exit_min')}</Text> - </View> - <View style={styles.checkbox}> - <CheckBox check={timeoutExitPlayed} label={t('timeout_exit_label_isPlayed')} onChange={onCheckChange} /> - </View> - </View> - </ConfirmAlert> - </> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginLeft: 5, - width: 32, - height: 32, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, - alertContent: { - flexShrink: 1, - flexDirection: 'column', - }, - tip: { - marginBottom: 8, - }, - checkbox: { - marginTop: 5, - }, - inputContent: { - flex: 1, - flexDirection: 'row', - alignItems: 'center', - }, - input: { - flexGrow: 1, - flexShrink: 1, - borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/MoreBtn/index.js b/src/screens/PlayDetail/Landscape/MoreBtn/index.js deleted file mode 100644 index ae5c0e4..0000000 --- a/src/screens/PlayDetail/Landscape/MoreBtn/index.js +++ /dev/null @@ -1,34 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { View, StyleSheet } from 'react-native' -import PlayModeBtn from './PlayModeBtn' -import MusicAddBtn from './MusicAddBtn' -import TimeoutExit from './TimeoutExit' -import { useDimensions } from '@/utils/hooks' - -export default () => { - const { window } = useDimensions() - const width = useMemo(() => window.width * 0.4 * 0.4 * 0.3 * 0.6, [window.width]) - - return ( - <View style={styles.container}> - <TimeoutExit width={width} /> - <PlayModeBtn width={width} /> - <MusicAddBtn width={width} /> - </View> - ) -} - - -const styles = StyleSheet.create({ - container: { - width: '40%', - flexShrink: 0, - flexGrow: 0, - flexDirection: 'row', - alignItems: 'center', - paddingLeft: 10, - paddingTop: 5, - paddingBottom: 5, - // backgroundColor: 'rgba(0,0,0,0.1)', - }, -}) diff --git a/src/screens/PlayDetail/Landscape/Pic.js b/src/screens/PlayDetail/Landscape/Pic.js deleted file mode 100644 index b0e892b..0000000 --- a/src/screens/PlayDetail/Landscape/Pic.js +++ /dev/null @@ -1,49 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { View, Image, StyleSheet } from 'react-native' -import { useGetter } from '@/store' -// import { useLayout } from '@/utils/hooks' -import { getWindowSise } from '@/utils/tools' - -export default memo(({ componentId, animated }) => { - const playMusicInfo = useGetter('player', 'playMusicInfo') - const theme = useGetter('common', 'theme') - - const musicInfo = useMemo(() => { - return (playMusicInfo && playMusicInfo.musicInfo) || {} - }, [playMusicInfo]) - - const { width: winWidth, height: winHeight } = getWindowSise() - const imgWidth = Math.min(winWidth * 0.6 * 0.45, winHeight * 0.5) - - return ( - <View style={styles.container}> - <View style={{ ...styles.content, elevation: animated ? 3 : 0 }}> - <Image source={{ uri: musicInfo.img }} nativeID={`pic${musicInfo.songmid}Dest`} progressiveRenderingEnabled={true} borderRadius={2} style={{ - ...styles.img, - backgroundColor: theme.primary, - width: imgWidth, - height: imgWidth, - }} /> - </View> - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - flexShrink: 1, - justifyContent: 'center', - alignItems: 'center', - // backgroundColor: 'rgba(0,0,0,0.1)', - }, - content: { - // elevation: 3, - backgroundColor: 'rgba(0,0,0,0)', - borderRadius: 4, - }, - img: { - borderRadius: 4, - // opacity: 0, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/PlayBar/Progress.js b/src/screens/PlayDetail/Landscape/PlayBar/Progress.js deleted file mode 100644 index a2abad9..0000000 --- a/src/screens/PlayDetail/Landscape/PlayBar/Progress.js +++ /dev/null @@ -1,89 +0,0 @@ -import React, { memo } from 'react' -import { View, StyleSheet, TouchableOpacity, Pressable } from 'react-native' -import { useLayout } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' -// import { AppColors } from '@/theme' -import { getWindowSise } from '@/utils/tools' - - -const DefaultBar = memo(() => { - const theme = useGetter('common', 'theme') - - return <View style={{ ...styles.progressBar, backgroundColor: theme.borderColor2, position: 'absolute', width: '100%', left: 0, top: 0 }}></View> -}) - -const BufferedBar = memo(({ bufferedProgress }) => { - const theme = useGetter('common', 'theme') - return <View style={{ ...styles.progressBar, backgroundColor: theme.borderColor2, position: 'absolute', width: bufferedProgress + '%', left: 0, top: 0 }}></View> -}) - -const PreassBar = memo(({ duration }) => { - const { onLayout, ...layout } = useLayout() - const setProgress = useDispatch('player', 'setProgress') - const handlePress = event => { - setProgress(event.nativeEvent.locationX / layout.width * duration) - } - - return <Pressable onPress={handlePress} onLayout={onLayout} style={styles.pressBar} /> -}) - - -const Progress = ({ progress, bufferedProgress, duration }) => { - // const { progress } = usePlayTimeBuffer() - const theme = useGetter('common', 'theme') - // console.log(progress) - const progressStr = progress + '%' - - return ( - <View style={styles.progress}> - <View> - <DefaultBar /> - <BufferedBar bufferedProgress={bufferedProgress} /> - <View style={{ ...styles.progressBar, backgroundColor: theme.secondary30, width: progressStr, position: 'absolute', left: 0, top: 0 }}> - <Pressable style={{ ...styles.progressDot, backgroundColor: theme.secondary10 }}></Pressable> - </View> - </View> - <PreassBar duration={duration} /> - {/* <View style={{ ...styles.progressBar, height: '100%', width: progressStr }}><Pressable style={styles.progressDot}></Pressable></View> */} - </View> - ) -} - - -const { width } = getWindowSise() -const progressContentPadding = width * 0.0140625 -const progressHeight = width * 0.005 -const progressDotSize = progressHeight * 3.8 -const styles = StyleSheet.create({ - progress: { - width: '100%', - height: progressContentPadding * 2 + progressHeight, - // backgroundColor: 'rgba(0,0,0,0.5)', - paddingTop: progressContentPadding, - paddingBottom: progressContentPadding, - zIndex: 1, - }, - progressBar: { - height: progressHeight, - borderRadius: 4, - }, - progressDot: { - width: progressDotSize, - height: progressDotSize, - borderRadius: progressDotSize, - position: 'absolute', - right: -progressDotSize / 2, - top: -(progressDotSize - progressHeight) / 2, - zIndex: 9, - }, - pressBar: { - position: 'absolute', - // backgroundColor: 'rgba(0,0,0,0.5)', - left: 0, - top: 0, - height: progressContentPadding * 2 + progressHeight, - width: '100%', - }, -}) - -export default Progress diff --git a/src/screens/PlayDetail/Landscape/PlayBar/Status.js b/src/screens/PlayDetail/Landscape/PlayBar/Status.js deleted file mode 100644 index 43f2a45..0000000 --- a/src/screens/PlayDetail/Landscape/PlayBar/Status.js +++ /dev/null @@ -1,25 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { Text } from 'react-native' -import { useGetter } from '@/store' -import { STATUS } from '@/store/modules/player' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const playStatus = useGetter('player', 'status') - const statusText = useGetter('player', 'statusText') - const status = useMemo(() => { - switch (playStatus) { - case STATUS.playing: - case STATUS.pause: - case STATUS.stop: - return '' - default: return statusText - } - }, [playStatus, statusText]) - return <Text numberOfLines={1} style={{ fontSize: 13, color: theme.normal10 }}>{status}</Text> -}) - -// const styles = StyleSheet.create({ - -// }) diff --git a/src/screens/PlayDetail/Landscape/PlayBar/index.js b/src/screens/PlayDetail/Landscape/PlayBar/index.js deleted file mode 100644 index 1ec12e8..0000000 --- a/src/screens/PlayDetail/Landscape/PlayBar/index.js +++ /dev/null @@ -1,60 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, View } from 'react-native' -import { usePlayTime, useDimensions } from '@/utils/hooks' -import { useGetter } from '@/store' - -import Progress from './Progress' -import Status from './Status' - -const PlayTimeCurrent = ({ timeStr, size }) => { - const theme = useGetter('common', 'theme') - // console.log(timeStr) - return <Text style={{ fontSize: size, color: theme.normal10 }}>{timeStr}</Text> -} - -const PlayTimeMax = memo(({ timeStr, size }) => { - const theme = useGetter('common', 'theme') - return <Text style={{ fontSize: size, color: theme.normal10 }}>{timeStr}</Text> -}) - -export default () => { - const { curTimeStr, maxTimeStr, progress, bufferedProgress, duration } = usePlayTime() - const { window } = useDimensions() - const size = useMemo(() => window.width * 0.4 * 0.4 * 0.125, [window.width]) - const theme = useGetter('common', 'theme') - - return ( - <View style={styles.container} nativeID="player"> - <View style={styles.progress}><Progress progress={progress} bufferedProgress={bufferedProgress} duration={duration} /></View> - <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}> - <View style={{ flexGrow: 1, flexShrink: 1, paddingRight: 5 }} > - <Status /> - </View> - <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > - <PlayTimeCurrent size={size} timeStr={curTimeStr} /> - <Text style={{ fontSize: size, color: theme.normal }}> / </Text> - <PlayTimeMax size={size} timeStr={maxTimeStr} /> - </View> - </View> - </View> - ) -} - - -const styles = StyleSheet.create({ - container: { - flexGrow: 0, - paddingLeft: 15, - // paddingRight: 15, - }, - progress: { - flexGrow: 1, - flexShrink: 0, - flexDirection: 'column', - justifyContent: 'center', - // height: - // position: 'absolute', - // width: '100%', - // top: 0, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/Title.js b/src/screens/PlayDetail/Landscape/Title.js deleted file mode 100644 index 65fe4a2..0000000 --- a/src/screens/PlayDetail/Landscape/Title.js +++ /dev/null @@ -1,35 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, View, StyleSheet } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' - -export default () => { - const theme = useGetter('common', 'theme') - const playMusicInfo = useGetter('player', 'playMusicInfo') - const { t } = useTranslation() - const titleInfo = useMemo(() => { - const info = { - name: '', - singer: '', - } - if (playMusicInfo) { - info.name = t('name', { name: playMusicInfo.musicInfo.name }) - info.singer = t('singer', { name: playMusicInfo.musicInfo.singer }) - } - return info - }, [playMusicInfo, t]) - // console.log(playMusicInfo) - return ( - <View style={styles.container}> - <Text style={{ width: '100%', fontSize: 12, color: theme.normal20 }} numberOfLines={1}>{titleInfo.name}</Text> - <Text style={{ width: '100%', fontSize: 12, color: theme.normal20 }} numberOfLines={1}>{titleInfo.singer}</Text> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flexShrink: 1, - flexGrow: 1, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/components/CommentBtn.js b/src/screens/PlayDetail/Landscape/components/CommentBtn.js deleted file mode 100644 index 01a82ff..0000000 --- a/src/screens/PlayDetail/Landscape/components/CommentBtn.js +++ /dev/null @@ -1,35 +0,0 @@ -import React, { memo } from 'react' -import { StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { navigations } from '@/navigation' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const componentIds = useGetter('common', 'componentIds') - - const handleShowCommentScreen = () => { - navigations.pushCommentScreen(componentIds.home) - } - - return ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handleShowCommentScreen}> - <Icon name="comment" style={{ color: theme.normal30 }} size={24} /> - </TouchableOpacity> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginLeft: 5, - width: 40, - height: 40, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/components/Header.js b/src/screens/PlayDetail/Landscape/components/Header.js deleted file mode 100644 index dd0a22d..0000000 --- a/src/screens/PlayDetail/Landscape/components/Header.js +++ /dev/null @@ -1,137 +0,0 @@ -import React, { memo, useState, useCallback } from 'react' - -import { View, StyleSheet, StatusBar, TouchableOpacity, Text } from 'react-native' - -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { pop } from '@/navigation' -import Popup from '@/components/common/Popup' -import Slider from '@/components/common/Slider' -import { useTranslation } from '@/plugins/i18n' -// import { AppColors } from '@/theme' -import CommentBtn from './CommentBtn' - -const LrcFontSizeStyles = StyleSheet.create({ - content: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'nowrap', - alignItems: 'center', - paddingLeft: 15, - paddingRight: 15, - paddingTop: 15, - }, -}) -const LrcFontSize = () => { - const theme = useGetter('common', 'theme') - const playerLandscapeStyle = useGetter('common', 'playerLandscapeStyle') - const setPlayerLandscapeStyle = useDispatch('common', 'setPlayerLandscapeStyle') - const [sliderSize, setSliderSize] = useState(playerLandscapeStyle.lrcFontSize) - const [isSliding, setSliding] = useState(false) - - const handleSlidingStart = useCallback(value => { - setSliding(true) - }, []) - const handleValueChange = useCallback(value => { - setSliderSize(value) - }, []) - const handleSlidingComplete = useCallback(value => { - if (playerLandscapeStyle.lrcFontSize == value) return - setPlayerLandscapeStyle({ ...playerLandscapeStyle, lrcFontSize: value }) - setSliding(false) - }, [playerLandscapeStyle, setPlayerLandscapeStyle]) - - return ( - <View style={LrcFontSizeStyles.content}> - <Text style={{ color: theme.secondary10 }}>{isSliding ? sliderSize : playerLandscapeStyle.lrcFontSize}</Text> - <Slider - minimumValue={120} - maximumValue={380} - onSlidingComplete={handleSlidingComplete} - onValueChange={handleValueChange} - onSlidingStart={handleSlidingStart} - step={2} - value={playerLandscapeStyle.lrcFontSize} - /> - </View> - ) -} - -const Setting = ({ visible, hide }) => { - const { t } = useTranslation() - return ( - <Popup - visible={visible} - hide={hide} - position='left' - title={t('player_setting_lrc_font_size')} - > - <LrcFontSize /> - </Popup> - ) -} - -export default memo(() => { - const theme = useGetter('common', 'theme') - const playMusicInfo = useGetter('player', 'playMusicInfo') - const componentIds = useGetter('common', 'componentIds') - - const [settingVisible, setSettingVisible] = useState(false) - - const back = () => { - pop(componentIds.playDetail) - } - const showSetting = () => { - setSettingVisible(true) - } - - return ( - <View style={{ ...styles.header, backgroundColor: theme.primary }} nativeID="header"> - <View style={{ ...styles.container }}> - <TouchableOpacity onPress={back} style={styles.button}> - <Icon name="chevron-left" style={{ color: theme.normal }} size={24} /> - </TouchableOpacity> - <View style={styles.titleContent}> - <Text numberOfLines={1} style={{ ...styles.title, color: theme.normal10 }}>{playMusicInfo.musicInfo?.name}</Text> - <Text numberOfLines={1} style={{ ...styles.title, color: theme.normal20, fontSize: 12 }}>{playMusicInfo.musicInfo?.singer}</Text> - </View> - <CommentBtn /> - <TouchableOpacity onPress={showSetting} style={styles.button}> - <Icon name="font-size" style={{ color: theme.normal30 }} size={24} /> - </TouchableOpacity> - </View> - <Setting visible={settingVisible} hide={() => setSettingVisible(false)} /> - </View> - ) -}) - - -const styles = StyleSheet.create({ - header: { - height: 40, - }, - container: { - flexDirection: 'row', - // justifyContent: 'center', - height: 40, - }, - button: { - width: 40, - justifyContent: 'center', - alignItems: 'center', - flex: 0, - }, - titleContent: { - flex: 1, - }, - title: { - flex: 1, - // textAlign: 'center', - fontSize: 14, - }, - icon: { - paddingLeft: 4, - paddingRight: 4, - }, -}) diff --git a/src/screens/PlayDetail/Landscape/index.js b/src/screens/PlayDetail/Landscape/index.js deleted file mode 100644 index 198c41a..0000000 --- a/src/screens/PlayDetail/Landscape/index.js +++ /dev/null @@ -1,100 +0,0 @@ -import React, { memo, useEffect, useCallback, useMemo, useRef } from 'react' -import { View, Text, StyleSheet, AppState } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { screenkeepAwake, screenUnkeepAwake } from '@/utils/utils' -import { onNavigationComponentDidDisappearEvent } from '@/navigation' -import StatusBar from '@/components/common/StatusBar' - -import Header from './components/Header' -import Pic from './Pic' -import ControlBtn from './ControlBtn' -import Lyric from './Lyric' -import PlayBar from './PlayBar' -import MoreBtn from './MoreBtn' - -export default memo(({ componentId, animated }) => { - const theme = useGetter('common', 'theme') - const componentIds = useGetter('common', 'componentIds') - const showCommentRef = useRef(false) - - useEffect(() => { - let listener - showCommentRef.current = !!componentIds.comment - if (showCommentRef.current) { - screenUnkeepAwake() - listener = onNavigationComponentDidDisappearEvent(componentIds.comment, () => { - if (AppState.currentState == 'active') screenkeepAwake() - }) - } - return () => { - if (listener) listener.remove() - } - }, [componentIds]) - - useEffect(() => { - screenkeepAwake() - let appstateListener = AppState.addEventListener('change', (state) => { - switch (state) { - case 'active': - if (!showCommentRef.current) screenkeepAwake() - break - case 'background': - screenUnkeepAwake() - break - } - }) - return () => { - screenUnkeepAwake() - appstateListener.remove() - } - }, []) - const component = useMemo(() => { - return ( - <> - <StatusBar /> - <View style={{ ...styles.container, backgroundColor: theme.primary }}> - <View style={styles.left}> - <Header /> - <Pic componentId={componentId} animated={animated} /> - <View style={styles.controlBtn} nativeID="pageIndicator"> - <MoreBtn /> - <ControlBtn /> - </View> - <PlayBar /> - </View> - <View style={styles.right}> - <Lyric /> - </View> - </View> - </> - ) - }, [animated, componentId, theme]) - return component -}) - -const styles = StyleSheet.create({ - container: { - paddingTop: StatusBar.currentHeight, - flex: 1, - flexDirection: 'row', - }, - left: { - flex: 1, - width: '45%', - // paddingLeft: 15, - paddingBottom: 10, - // backgroundColor: '#eee', - }, - right: { - width: '55%', - flexGrow: 0, - flexShrink: 0, - }, - controlBtn: { - flex: 1, - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'space-between', - // backgroundColor: '#eee', - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Pic.js b/src/screens/PlayDetail/Portrait/Pic.js deleted file mode 100644 index 44b6a07..0000000 --- a/src/screens/PlayDetail/Portrait/Pic.js +++ /dev/null @@ -1,46 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { View, Image, StyleSheet } from 'react-native' -import { useGetter, useDispatch } from '@/store' -// import { useLayout } from '@/utils/hooks' -import { getWindowSise } from '@/utils/tools' - -export default memo(({ componentId, animated }) => { - const playMusicInfo = useGetter('player', 'playMusicInfo') - const theme = useGetter('common', 'theme') - const musicInfo = useMemo(() => { - return (playMusicInfo && playMusicInfo.musicInfo) || {} - }, [playMusicInfo]) - - const imgWidth = getWindowSise().width * 0.8 - - return ( - <View style={styles.container}> - <View style={{ ...styles.content, elevation: animated ? 3 : 0 }}> - <Image source={{ uri: musicInfo.img }} nativeID={`pic${musicInfo.songmid}Dest`} progressiveRenderingEnabled={true} borderRadius={2} style={{ - ...styles.img, - backgroundColor: theme.primary, - width: imgWidth, - height: imgWidth, - }} /> - </View> - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - flexGrow: 1, - flexShrink: 1, - justifyContent: 'center', - alignItems: 'center', - }, - content: { - // elevation: 3, - backgroundColor: 'rgba(0,0,0,0)', - borderRadius: 4, - }, - img: { - borderRadius: 4, - // opacity: 0, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/ControlBtn.js b/src/screens/PlayDetail/Portrait/Player/components/ControlBtn.js deleted file mode 100644 index f6fbea1..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/ControlBtn.js +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { STATUS } from '@/store/modules/player' - - -export default ({ playNextModes }) => { - const playStatus = useGetter('player', 'status') - const playNext = useDispatch('player', 'playNext') - const playPrev = useDispatch('player', 'playPrev') - // const playMusicInfo = useGetter('player', 'playMusicInfo') - const pauseMusic = useDispatch('player', 'pauseMusic') - const playMusic = useDispatch('player', 'playMusic') - const theme = useGetter('common', 'theme') - - // const togglePlayMethod = useGetter('common', 'togglePlayMethod') - // const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - // const toggleNextPlayMode = useCallback(() => { - // let index = playNextModes.indexOf(togglePlayMethod) - // if (++index >= playNextModes.length) index = -1 - // setPlayNextMode(playNextModes[index] || '') - // }, [setPlayNextMode, togglePlayMethod, playNextModes]) - - const btnPrev = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playPrev}> - <Icon name='prevMusic' style={{ color: theme.secondary10 }} size={32} /> - </TouchableOpacity> - ), [playPrev, theme]) - - const togglePlay = useCallback(playStatus => { - switch (playStatus) { - case STATUS.playing: - pauseMusic() - break - case STATUS.pause: - case STATUS.stop: - case STATUS.none: - playMusic() - break - // default: - // playMusic(playMusicInfo) - // break - } - }, []) - const btnPlay = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={() => togglePlay(playStatus)}> - <Icon name={playStatus == STATUS.playing ? 'pause' : 'play'} style={{ color: theme.secondary10 }} size={32} /> - </TouchableOpacity> - ), [playStatus, theme, togglePlay]) - const btnNext = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playNext}> - <Icon name='nextMusic' style={{ color: theme.secondary10 }} size={32} /> - </TouchableOpacity> - ), [playNext, theme]) - - return ( - <> - {/* <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Text style={{ ...styles.cotrolBtn }}> - <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={18} /> - </Text> - </TouchableOpacity> - */} - {btnPrev} - {btnPlay} - {btnNext} - </> - ) -} - - -const styles = StyleSheet.create({ - cotrolBtn: { - width: 46, - height: 46, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/CommentBtn.js b/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/CommentBtn.js deleted file mode 100644 index 586c1b5..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/CommentBtn.js +++ /dev/null @@ -1,35 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState, useRef } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { navigations } from '@/navigation' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const componentIds = useGetter('common', 'componentIds') - - const handleShowCommentScreen = () => { - navigations.pushCommentScreen(componentIds.home) - } - - return ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handleShowCommentScreen}> - <Icon name="comment" style={{ color: theme.normal30 }} size={24} /> - </TouchableOpacity> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginLeft: 5, - width: 32, - height: 32, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/MusicAddBtn.js b/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/MusicAddBtn.js deleted file mode 100644 index e8d62fd..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/MusicAddBtn.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState, useRef } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import MusicAddModal from '@/components/MusicAddModal' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const [visibleMusicAddModal, setVisibleMusicAddModal] = useState(false) - const playMusicInfo = useGetter('player', 'playMusicInfo') - const selectedDataRef = useRef() - const hideMusicAddModal = () => { - setVisibleMusicAddModal(false) - } - - const handleShowMusicAddModal = () => { - selectedDataRef.current = playMusicInfo.musicInfo - setVisibleMusicAddModal(true) - } - - return ( - <> - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handleShowMusicAddModal}> - <Icon name="add-music" style={{ color: theme.normal30 }} size={24} /> - </TouchableOpacity> - <MusicAddModal - visible={visibleMusicAddModal} - hideModal={hideMusicAddModal} - musicInfo={selectedDataRef.current} /> - </> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginLeft: 5, - width: 32, - height: 32, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/TimeoutExit.js b/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/TimeoutExit.js deleted file mode 100644 index 758ed13..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/TimeoutExit.js +++ /dev/null @@ -1,184 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState, useRef } from 'react' -import { Text, StyleSheet, TouchableOpacity, View } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import ConfirmAlert from '@/components/common/ConfirmAlert' -import { useTranslation } from '@/plugins/i18n' -import Input from '@/components/common/Input' -import { startTimeoutExit, stopTimeoutExit, useTimeoutExitTimeInfo, getTimeoutExitTime, cancelTimeoutExit } from '@/utils/timeoutExit' -import { toast } from '@/utils/tools' -import CheckBox from '@/components/common/CheckBox' - -const MAX_MIN = 1440 -const formatTime = time => { - // let d = parseInt(time / 86400) - // d = d ? d.toString() + ':' : '' - // time = time % 86400 - let h = parseInt(time / 3600) - h = h ? h.toString() + ':' : '' - time = time % 3600 - const m = parseInt(time / 60).toString().padStart(2, '0') - const s = parseInt(time % 60).toString().padStart(2, '0') - return `${h}${m}:${s}` -} -const rxp = /([1-9]\d*)/ -const Status = ({ exitTimeInfo }) => { - const theme = useGetter('common', 'theme') - const { t } = useTranslation() - return ( - <View style={styles.tip}> - { - exitTimeInfo.time < 0 - ? ( - <Text style={{ color: theme.normal }}>{t('timeout_exit_tip_off')}</Text> - ) - : ( - <Text style={{ color: theme.normal }}>{t('timeout_exit_tip_on', { time: formatTime(exitTimeInfo.time) })}</Text> - ) - } - {exitTimeInfo.isPlayedExit ? <Text style={{ fontSize: 12, color: theme.normal40 }}>{t('timeout_exit_btn_wait_tip')}</Text> : null} - </View> - ) -} - -export default memo(() => { - const theme = useGetter('common', 'theme') - const [visibleAlert, setVisibleAlert] = useState(false) - const { t } = useTranslation() - const [text, setText] = useState('') - const exitTimeInfo = useTimeoutExitTimeInfo() - const inputRef = useRef() - const timeoutExit = useGetter('common', 'timeoutExit') - const timeoutExitPlayed = useGetter('common', 'timeoutExitPlayed') - const setTimeoutExit = useDispatch('common', 'setTimeoutExit') - const timeInfo = useMemo(() => { - return exitTimeInfo.time < 0 - ? { cancelText: exitTimeInfo.isPlayedExit ? t('timeout_exit_btn_wait_cancel') : '', confirmText: '', active: false } - : { - cancelText: t('timeout_exit_btn_cancel'), - confirmText: t('timeout_exit_btn_update'), - active: true, - } - }, [exitTimeInfo, t]) - - const handleShowTimeoutAlert = () => { - setText(timeoutExit) - setVisibleAlert(true) - // global.requestAnimationFrame(() => { - // inputRef.current.focus() - // }) - } - const handleAlertHide = () => { - setVisibleAlert(false) - } - const handleAlertCancel = () => { - setVisibleAlert(false) - if (exitTimeInfo.isPlayedExit) { - cancelTimeoutExit() - return - } - if (!timeInfo.active) return - stopTimeoutExit() - toast(t('timeout_exit_tip_cancel')) - } - const handleAlertConfirm = () => { - // if (filterFileName.test(text)) { - // toast(t('create_new_folder_error_tip'), 'long') - // return - // } - const time = parseInt(text) - if (!time) return - cancelTimeoutExit() - startTimeoutExit(time * 60) - setVisibleAlert(false) - toast(t('timeout_exit_tip_on', { time: formatTime(getTimeoutExitTime()) })) - setTimeoutExit({ time: String(time) }) - } - const onChangeText = useCallback(text => { - if (rxp.test(text)) { - if (text != RegExp.$1) toast(t('input_error')) - text = RegExp.$1 - if (parseInt(text) > MAX_MIN) { - toast(t('timeout_exit_tip_max', { num: MAX_MIN })) - text = text.substring(0, text.length - 1) - } - } else { - if (text.length) toast(t('input_error')) - text = '' - } - setText(text) - }, [t]) - - const onCheckChange = check => { - setTimeoutExit({ isPlayed: check }) - } - - - return ( - <> - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handleShowTimeoutAlert}> - <Icon name="alarm-snooze" style={{ color: timeInfo.active ? theme.secondary20 : theme.normal30 }} size={24} /> - </TouchableOpacity> - <ConfirmAlert - visible={visibleAlert} - onHide={handleAlertHide} - onCancel={handleAlertCancel} - onConfirm={handleAlertConfirm} - cancelText={timeInfo.cancelText} - confirmText={timeInfo.confirmText} - > - <View style={styles.alertContent}> - <Status exitTimeInfo={exitTimeInfo} /> - <View style={styles.inputContent}> - <Input - ref={inputRef} - value={text} - onChangeText={onChangeText} - style={{ ...styles.input, backgroundColor: theme.secondary40 }} /> - <Text style={{ marginLeft: 5, color: theme.normal }}>{t('timeout_exit_min')}</Text> - </View> - <View style={styles.checkbox}> - <CheckBox check={timeoutExitPlayed} label={t('timeout_exit_label_isPlayed')} onChange={onCheckChange} /> - </View> - </View> - </ConfirmAlert> - </> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginLeft: 5, - width: 32, - height: 32, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, - alertContent: { - flexShrink: 1, - flexDirection: 'column', - }, - tip: { - marginBottom: 8, - }, - checkbox: { - marginTop: 5, - }, - inputContent: { - flex: 1, - flexDirection: 'row', - alignItems: 'center', - }, - input: { - flexGrow: 1, - flexShrink: 1, - borderRadius: 4, - paddingTop: 2, - paddingBottom: 2, - fontSize: 12, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/PlayInfo.js b/src/screens/PlayDetail/Portrait/Player/components/PlayInfo.js deleted file mode 100644 index 8ae7a4e..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/PlayInfo.js +++ /dev/null @@ -1,53 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, View } from 'react-native' -import { usePlayTime } from '@/utils/hooks' -import { useGetter } from '@/store' - -import Progress from './Progress' -import Status from './Status' - -const PlayTimeCurrent = ({ timeStr }) => { - const theme = useGetter('common', 'theme') - // console.log(timeStr) - return <Text style={{ fontSize: 14, color: theme.normal10 }}>{timeStr}</Text> -} - -const PlayTimeMax = memo(({ timeStr }) => { - const theme = useGetter('common', 'theme') - return <Text style={{ fontSize: 14, color: theme.normal10 }}>{timeStr}</Text> -}) - -export default () => { - const { curTimeStr, maxTimeStr, progress, bufferedProgress, duration } = usePlayTime() - const theme = useGetter('common', 'theme') - - return ( - <> - <View style={styles.progress}><Progress progress={progress} bufferedProgress={bufferedProgress} duration={duration} /></View> - <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}> - <View style={{ flexGrow: 1, flexShrink: 1, paddingRight: 5 }} > - <Status /> - </View> - <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > - <PlayTimeCurrent timeStr={curTimeStr} /> - <Text style={{ fontSize: 14, color: theme.normal }}> / </Text> - <PlayTimeMax timeStr={maxTimeStr} /> - </View> - </View> - </> - ) -} - - -const styles = StyleSheet.create({ - progress: { - flexGrow: 1, - flexShrink: 0, - flexDirection: 'column', - justifyContent: 'center', - // height: - // position: 'absolute', - // width: '100%', - // top: 0, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/Progress.js b/src/screens/PlayDetail/Portrait/Player/components/Progress.js deleted file mode 100644 index 9591402..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/Progress.js +++ /dev/null @@ -1,87 +0,0 @@ -import React, { memo } from 'react' -import { View, StyleSheet, TouchableOpacity, Pressable } from 'react-native' -import { useLayout } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' -// import { AppColors } from '@/theme' - - -const DefaultBar = memo(() => { - const theme = useGetter('common', 'theme') - - return <View style={{ ...styles.progressBar, backgroundColor: theme.normal75, position: 'absolute', width: '100%', left: 0, top: 0 }}></View> -}) - -const BufferedBar = memo(({ bufferedProgress }) => { - const theme = useGetter('common', 'theme') - return <View style={{ ...styles.progressBar, backgroundColor: theme.secondary45, position: 'absolute', width: bufferedProgress + '%', left: 0, top: 0 }}></View> -}) - -const PreassBar = memo(({ duration }) => { - const { onLayout, ...layout } = useLayout() - const setProgress = useDispatch('player', 'setProgress') - const handlePress = event => { - setProgress(event.nativeEvent.locationX / layout.width * duration) - } - - return <Pressable onPress={handlePress} onLayout={onLayout} style={styles.pressBar} /> -}) - - -const Progress = ({ progress, bufferedProgress, duration }) => { - // const { progress } = usePlayTimeBuffer() - const theme = useGetter('common', 'theme') - // console.log(progress) - const progressStr = progress + '%' - - return ( - <View style={styles.progress}> - <View> - <DefaultBar /> - <BufferedBar bufferedProgress={bufferedProgress} /> - <View style={{ ...styles.progressBar, backgroundColor: theme.secondary30, width: progressStr, position: 'absolute', left: 0, top: 0 }}> - <Pressable style={{ ...styles.progressDot, backgroundColor: theme.secondary10 }}></Pressable> - </View> - </View> - <PreassBar duration={duration} /> - {/* <View style={{ ...styles.progressBar, height: '100%', width: progressStr }}><Pressable style={styles.progressDot}></Pressable></View> */} - </View> - ) -} - - -const progressContentPadding = 10 -const progressHeight = 3.6 -const progressDotSize = 12 -const styles = StyleSheet.create({ - progress: { - width: '100%', - height: progressContentPadding * 2 + progressHeight, - // backgroundColor: 'rgba(0,0,0,0.5)', - paddingTop: progressContentPadding, - paddingBottom: progressContentPadding, - zIndex: 1, - }, - progressBar: { - height: progressHeight, - borderRadius: 4, - }, - progressDot: { - width: progressDotSize, - height: progressDotSize, - borderRadius: progressDotSize, - position: 'absolute', - right: -progressDotSize / 2, - top: -(progressDotSize - progressHeight) / 2, - zIndex: 9, - }, - pressBar: { - position: 'absolute', - // backgroundColor: 'rgba(0,0,0,0.5)', - left: 0, - top: 0, - height: progressContentPadding * 2 + progressHeight, - width: '100%', - }, -}) - -export default Progress diff --git a/src/screens/PlayDetail/Portrait/Player/components/Status.js b/src/screens/PlayDetail/Portrait/Player/components/Status.js deleted file mode 100644 index 43f2a45..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/Status.js +++ /dev/null @@ -1,25 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { Text } from 'react-native' -import { useGetter } from '@/store' -import { STATUS } from '@/store/modules/player' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const playStatus = useGetter('player', 'status') - const statusText = useGetter('player', 'statusText') - const status = useMemo(() => { - switch (playStatus) { - case STATUS.playing: - case STATUS.pause: - case STATUS.stop: - return '' - default: return statusText - } - }, [playStatus, statusText]) - return <Text numberOfLines={1} style={{ fontSize: 13, color: theme.normal10 }}>{status}</Text> -}) - -// const styles = StyleSheet.create({ - -// }) diff --git a/src/screens/PlayDetail/Portrait/Player/components/Title.js b/src/screens/PlayDetail/Portrait/Player/components/Title.js deleted file mode 100644 index 689447e..0000000 --- a/src/screens/PlayDetail/Portrait/Player/components/Title.js +++ /dev/null @@ -1,35 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, View, StyleSheet } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' - -export default () => { - const theme = useGetter('common', 'theme') - const playMusicInfo = useGetter('player', 'playMusicInfo') - const { t } = useTranslation() - const titleInfo = useMemo(() => { - const info = { - name: '', - singer: '', - } - if (playMusicInfo) { - info.name = t('name', { name: playMusicInfo.musicInfo.name }) - info.singer = t('singer', { name: playMusicInfo.musicInfo.singer }) - } - return info - }, [playMusicInfo, t]) - // console.log(playMusicInfo) - return ( - <View style={styles.container}> - <Text style={{ width: '100%', fontSize: 14, color: theme.normal20 }} numberOfLines={2}>{titleInfo.name}</Text> - <Text style={{ width: '100%', fontSize: 14, color: theme.normal20 }} numberOfLines={2}>{titleInfo.singer}</Text> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flexShrink: 1, - flexGrow: 1, - }, -}) diff --git a/src/screens/PlayDetail/Portrait/components/Header.js b/src/screens/PlayDetail/Portrait/components/Header.js deleted file mode 100644 index fd90c0b..0000000 --- a/src/screens/PlayDetail/Portrait/components/Header.js +++ /dev/null @@ -1,136 +0,0 @@ -import React, { memo, useState, useCallback } from 'react' - -import { View, StyleSheet, TouchableOpacity, Text } from 'react-native' - -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { pop } from '@/navigation' -import Popup from '@/components/common/Popup' -import Slider from '@/components/common/Slider' -import { useTranslation } from '@/plugins/i18n' -// import { AppColors } from '@/theme' -import StatusBar from '@/components/common/StatusBar' - -const LrcFontSizeStyles = StyleSheet.create({ - content: { - flexGrow: 0, - flexShrink: 1, - flexDirection: 'row', - flexWrap: 'nowrap', - alignItems: 'center', - paddingLeft: 15, - paddingRight: 15, - }, -}) -const LrcFontSize = () => { - const theme = useGetter('common', 'theme') - const playerPortraitStyle = useGetter('common', 'playerPortraitStyle') - const setPlayerPortraitStyle = useDispatch('common', 'setPlayerPortraitStyle') - const [sliderSize, setSliderSize] = useState(playerPortraitStyle.lrcFontSize) - const [isSliding, setSliding] = useState(false) - - const handleSlidingStart = useCallback(value => { - setSliding(true) - }, []) - const handleValueChange = useCallback(value => { - setSliderSize(value) - }, []) - const handleSlidingComplete = useCallback(value => { - if (playerPortraitStyle.lrcFontSize == value) return - setPlayerPortraitStyle({ ...playerPortraitStyle, lrcFontSize: value }) - setSliding(false) - }, [playerPortraitStyle, setPlayerPortraitStyle]) - - return ( - <View style={LrcFontSizeStyles.content}> - <Text style={{ color: theme.secondary10 }}>{isSliding ? sliderSize : playerPortraitStyle.lrcFontSize}</Text> - <Slider - minimumValue={100} - maximumValue={300} - onSlidingComplete={handleSlidingComplete} - onValueChange={handleValueChange} - onSlidingStart={handleSlidingStart} - step={2} - value={playerPortraitStyle.lrcFontSize} - /> - </View> - ) -} - -const Setting = ({ visible, hide }) => { - const { t } = useTranslation() - return ( - <Popup - visible={visible} - hide={hide} - title={t('player_setting_lrc_font_size')} - > - <LrcFontSize /> - </Popup> - ) -} - -export default memo(() => { - const theme = useGetter('common', 'theme') - const playMusicInfo = useGetter('player', 'playMusicInfo') - const componentIds = useGetter('common', 'componentIds') - - const [settingVisible, setSettingVisible] = useState(false) - - const back = () => { - pop(componentIds.playDetail) - } - const showSetting = () => { - setSettingVisible(true) - } - - return ( - <View style={{ ...styles.header, backgroundColor: theme.primary }} nativeID="header"> - <StatusBar /> - <View style={{ ...styles.container }}> - <TouchableOpacity onPress={back} style={styles.button}> - <Icon name="chevron-left" style={{ color: theme.normal }} size={24} /> - </TouchableOpacity> - <View style={styles.titleContent}> - <Text numberOfLines={1} style={{ ...styles.title, color: theme.normal10 }}>{playMusicInfo.musicInfo?.name}</Text> - <Text numberOfLines={1} style={{ ...styles.title, color: theme.normal20, fontSize: 12 }}>{playMusicInfo.musicInfo?.singer}</Text> - </View> - <TouchableOpacity onPress={showSetting} style={styles.button}> - <Icon name="font-size" style={{ color: theme.normal30 }} size={24} /> - </TouchableOpacity> - </View> - <Setting visible={settingVisible} hide={() => setSettingVisible(false)} /> - </View> - ) -}) - - -const styles = StyleSheet.create({ - header: { - height: 40 + StatusBar.currentHeight, - paddingTop: StatusBar.currentHeight, - }, - container: { - flexDirection: 'row', - // justifyContent: 'center', - height: 40, - }, - button: { - width: 40, - justifyContent: 'center', - alignItems: 'center', - flex: 0, - }, - titleContent: { - flex: 1, - }, - title: { - flex: 1, - textAlign: 'center', - fontSize: 15, - }, - icon: { - paddingLeft: 4, - paddingRight: 4, - }, -}) diff --git a/src/screens/PlayDetail/Vertical/Lyric.tsx b/src/screens/PlayDetail/Vertical/Lyric.tsx new file mode 100644 index 0000000..3df30e7 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Lyric.tsx @@ -0,0 +1,232 @@ +import React, { memo, useMemo, useEffect, useRef } from 'react' +import { View, FlatList, type FlatListProps } from 'react-native' +// import { useLayout } from '@/utils/hooks' +import { type Line, useLrcPlay, useLrcSet } from '@/plugins/lyric' +import { createStyle } from '@/utils/tools' +// import { useComponentIds } from '@/store/common/hook' +import { useTheme } from '@/store/theme/hook' +import { useSettingValue } from '@/store/setting/hook' +import Text from '@/components/common/Text' +import { scaleSizeH, setSpText } from '@/utils/pixelRatio' +// import { screenkeepAwake } from '@/utils/nativeModules/utils' +// import { log } from '@/utils/log' +// import { toast } from '@/utils/tools' + +type FlatListType = FlatListProps<Line> + +// const useLock = () => { +// const showCommentRef = useRef(false) + + +// useEffect(() => { +// let appstateListener = AppState.addEventListener('change', (state) => { +// switch (state) { +// case 'active': +// if (showLyricRef.current && !showCommentRef.current) screenkeepAwake() +// break +// case 'background': +// screenUnkeepAwake() +// break +// } +// }) +// return () => { +// appstateListener.remove() +// } +// }, []) +// useEffect(() => { +// let listener: ReturnType<typeof onNavigationComponentDidDisappearEvent> +// showCommentRef.current = !!componentIds.comment +// if (showCommentRef.current) { +// if (showLyricRef.current) screenUnkeepAwake() +// listener = onNavigationComponentDidDisappearEvent(componentIds.comment as string, () => { +// if (showLyricRef.current && AppState.currentState == 'active') screenkeepAwake() +// }) +// } + +// const rm = global.state_event.on('componentIdsUpdated', (ids) => { + +// }) + +// return () => { +// if (listener) listener.remove() +// } +// }, []) +// } + +const LrcLine = memo(({ line, lineNum, activeLine }: { + line: Line + lineNum: number + activeLine: number +}) => { + const theme = useTheme() + const playerPortraitStyle = useSettingValue('player.vertical.style.lrcFontSize') + const lineHeight = scaleSizeH(setSpText(playerPortraitStyle) / 10 * 1.25) + + return ( + <View style={styles.line}> + <Text style={{ + ...styles.lineText, + lineHeight, + }} color={activeLine == lineNum ? theme['c-primary'] : theme['c-300']} size={playerPortraitStyle / 10}>{line.text}</Text> + { + line.extendedLyrics.map((lrc, index) => { + return (<Text style={{ + ...styles.lineTranslationText, + lineHeight: lineHeight * 0.8, + }} key={index} color={activeLine == lineNum ? theme['c-primary-alpha-200'] : theme['c-300']} size={playerPortraitStyle / 10 * 0.8}>{lrc}</Text>) + }) + } + </View> + ) +}, (prevProps, nextProps) => { + return prevProps.line === nextProps.line && + prevProps.activeLine != nextProps.lineNum && + nextProps.activeLine != nextProps.lineNum +}) +const wait = async() => new Promise(resolve => setTimeout(resolve, 100)) + +export default () => { + const lyricLines = useLrcSet() + const { line } = useLrcPlay() + const flatListRef = useRef<FlatList>(null) + const isPauseScrollRef = useRef(true) + const scrollTimoutRef = useRef<NodeJS.Timeout | null>(null) + const lineRef = useRef(0) + const isFirstSetLrc = useRef(true) + // useLock() + // const [imgUrl, setImgUrl] = useState(null) + // const theme = useGetter('common', 'theme') + // const { onLayout, ...layout } = useLayout() + + // useEffect(() => { + // const url = playMusicInfo ? playMusicInfo.musicInfo.img : null + // if (imgUrl == url) return + // setImgUrl(url) + // // eslint-disable-next-line react-hooks/exhaustive-deps + // }, [playMusicInfo]) + + // const imgWidth = useMemo(() => layout.width * 0.75, [layout.width]) + const handleScrollToActive = (index = lineRef.current) => { + if (index < 0) return + if (flatListRef.current) { + try { + flatListRef.current.scrollToIndex({ + index, + animated: true, + viewPosition: 0.4, + }) + } catch {} + } + } + + const handleScrollBeginDrag = () => { + isPauseScrollRef.current = true + if (scrollTimoutRef.current) clearTimeout(scrollTimoutRef.current) + scrollTimoutRef.current = setTimeout(() => { + scrollTimoutRef.current = null + isPauseScrollRef.current = false + handleScrollToActive() + }, 3000) + } + + + useEffect(() => { + return () => { + if (scrollTimoutRef.current) { + clearTimeout(scrollTimoutRef.current) + scrollTimoutRef.current = null + } + } + }, []) + + useEffect(() => { + // linesRef.current = lyricLines + if (!flatListRef.current) return + flatListRef.current.scrollToOffset({ + offset: 0, + animated: false, + }) + if (isFirstSetLrc.current) { + isFirstSetLrc.current = false + setTimeout(() => { + isPauseScrollRef.current = false + handleScrollToActive() + }, 100) + } else { + handleScrollToActive(0) + } + }, [lyricLines]) + + useEffect(() => { + lineRef.current = line + if (!flatListRef.current || isPauseScrollRef.current) return + handleScrollToActive() + }, [line]) + + const handleScrollToIndexFailed: FlatListType['onScrollToIndexFailed'] = (info) => { + // console.log(info) + void wait().then(() => { + handleScrollToActive(info.index) + }) + } + + const renderItem: FlatListType['renderItem'] = ({ item, index }) => { + return ( + <LrcLine line={item} lineNum={index} activeLine={line} /> + ) + } + const getkey: FlatListType['keyExtractor'] = (item, index) => `${index}${item.text}` + + const spaceComponent = useMemo(() => ( + <View style={styles.space}></View> + ), []) + + return ( + <FlatList + data={lyricLines} + renderItem={renderItem} + keyExtractor={getkey} + style={styles.container} + ref={flatListRef} + showsVerticalScrollIndicator={false} + ListHeaderComponent={spaceComponent} + ListFooterComponent={spaceComponent} + onScrollBeginDrag={handleScrollBeginDrag} + fadingEdgeLength={200} + initialNumToRender={Math.max(line + 10, 10)} + onScrollToIndexFailed={handleScrollToIndexFailed} + /> + ) +} + +const styles = createStyle({ + container: { + flex: 1, + paddingLeft: 10, + paddingRight: 10, + // backgroundColor: 'rgba(0,0,0,0.1)', + }, + space: { + paddingTop: '80%', + }, + line: { + paddingTop: 8, + paddingBottom: 8, + // opacity: 0, + }, + lineText: { + textAlign: 'center', + // fontSize: 16, + // lineHeight: 20, + // paddingTop: 5, + // paddingBottom: 5, + // opacity: 0, + }, + lineTranslationText: { + textAlign: 'center', + // fontSize: 13, + // lineHeight: 17, + paddingTop: 5, + // paddingBottom: 5, + }, +}) diff --git a/src/screens/PlayDetail/Vertical/Pic.tsx b/src/screens/PlayDetail/Vertical/Pic.tsx new file mode 100644 index 0000000..eca4c34 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Pic.tsx @@ -0,0 +1,81 @@ +import React, { memo, useState } from 'react' +import { View, Image } from 'react-native' +// import { useLayout } from '@/utils/hooks' +import { createStyle } from '@/utils/tools' +import { usePlayerMusicInfo } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { BorderRadius } from '@/theme' +import { useDimensions } from '@/utils/hooks' +import Text from '@/components/common/Text' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import { useNavigationComponentDidAppear } from '@/navigation' + +const EmptyPic = memo(({ width }: { width: number }) => { + const theme = useTheme() + const size = width * 0.2 + return ( + <View style={{ ...styles.emptyPic, width, height: width, backgroundColor: theme['c-primary-light-900-alpha-200'] }}> + <Text size={size} color={theme['c-primary-light-400-alpha-200']}>L</Text> + <Text size={size} color={theme['c-primary-light-400-alpha-200']} style={styles.text}>X</Text> + </View> + ) +}) + +export default ({ componentId }: { componentId: string }) => { + const musicInfo = usePlayerMusicInfo() + const { window } = useDimensions() + + const [animated, setAnimated] = useState(false) + + useNavigationComponentDidAppear(componentId, () => { + setAnimated(true) + }) + // console.log('render pic') + + const imgWidth = window.width * 0.8 + + return ( + <View style={styles.container}> + <View style={{ ...styles.content, elevation: animated ? 3 : 0 }}> + { + musicInfo.pic + ? ( + <Image source={{ uri: musicInfo.pic }} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pic} progressiveRenderingEnabled={true} borderRadius={2} style={{ + ...styles.img, + width: imgWidth, + height: imgWidth, + }} /> + ) + : <EmptyPic width={imgWidth} /> + } + </View> + </View> + ) +} + +const styles = createStyle({ + container: { + flexGrow: 1, + flexShrink: 1, + justifyContent: 'center', + alignItems: 'center', + }, + content: { + // elevation: 3, + backgroundColor: 'rgba(0,0,0,0)', + borderRadius: 4, + }, + img: { + borderRadius: 4, + // opacity: 0, + }, + emptyPic: { + borderRadius: BorderRadius.normal, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + }, + text: { + paddingLeft: 2, + }, +}) diff --git a/src/screens/PlayDetail/Vertical/Player/components/ControlBtn.tsx b/src/screens/PlayDetail/Vertical/Player/components/ControlBtn.tsx new file mode 100644 index 0000000..12b7e83 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/ControlBtn.tsx @@ -0,0 +1,65 @@ +import React from 'react' +import { StyleSheet, TouchableOpacity } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { useTheme } from '@/store/theme/hook' +// import { useIsPlay } from '@/store/player/hook' +import { playNext, playPrev, togglePlay } from '@/core/player/player' +import { scaleSizeW } from '@/utils/pixelRatio' +import { useIsPlay } from '@/store/player/hook' + +const WIDTH = scaleSizeW(50) + +const PrevBtn = () => { + const theme = useTheme() + const handlePlayPrev = () => { + void playPrev() + } + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: WIDTH, height: WIDTH }} activeOpacity={0.5} onPress={handlePlayPrev}> + <Icon name='prevMusic' color={theme['c-button-font']} size={38} /> + </TouchableOpacity> + ) +} +const NextBtn = () => { + const theme = useTheme() + const handlePlayNext = () => { + void playNext() + } + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: WIDTH, height: WIDTH }} activeOpacity={0.5} onPress={handlePlayNext}> + <Icon name='nextMusic' color={theme['c-button-font']} size={38} /> + </TouchableOpacity> + ) +} + +const TogglePlayBtn = () => { + const theme = useTheme() + const isPlay = useIsPlay() + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: WIDTH, height: WIDTH }} activeOpacity={0.5} onPress={togglePlay}> + <Icon name={isPlay ? 'pause' : 'play'} color={theme['c-button-font']} size={38} /> + </TouchableOpacity> + ) +} + +export default () => { + return ( + <> + <PrevBtn /> + <TogglePlayBtn /> + <NextBtn /> + </> + ) +} + + +const styles = StyleSheet.create({ + cotrolBtn: { + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + }, +}) diff --git a/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/Btn.tsx b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/Btn.tsx new file mode 100644 index 0000000..9f7e2fb --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/Btn.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeW } from '@/utils/pixelRatio' + +export const BTN_WIDTH = scaleSizeW(32) +export const BTN_ICON_SIZE = 22 + +export default ({ icon, color, onPress }: { + icon: string + color?: string + onPress: () => void +}) => { + const theme = useTheme() + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn, width: BTN_WIDTH, height: BTN_WIDTH }} activeOpacity={0.5} onPress={onPress}> + <Icon name={icon} color={color ?? theme['c-font-label']} size={BTN_ICON_SIZE} /> + </TouchableOpacity> + ) +} + +const styles = createStyle({ + cotrolBtn: { + marginLeft: 5, + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + }, +}) diff --git a/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/CommentBtn.tsx b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/CommentBtn.tsx new file mode 100644 index 0000000..4cb35e3 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/CommentBtn.tsx @@ -0,0 +1,15 @@ +import React from 'react' +import Btn from './Btn' +import { useComponentIds } from '@/store/common/hook' +import { navigations } from '@/navigation' + + +export default () => { + const componentIds = useComponentIds() + + const handleShowCommentScreen = () => { + navigations.pushCommentScreen(componentIds.playDetail as string) + } + + return <Btn icon="comment" onPress={handleShowCommentScreen} /> +} diff --git a/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/MusicAddBtn.tsx b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/MusicAddBtn.tsx new file mode 100644 index 0000000..ed2e3c3 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/MusicAddBtn.tsx @@ -0,0 +1,26 @@ +import React, { useRef } from 'react' +import MusicAddModal, { MusicAddModalType } from '@/components/MusicAddModal' +import playerState from '@/store/player/state' +import Btn from './Btn' + + +export default () => { + const musicAddModalRef = useRef<MusicAddModalType>(null) + + const handleShowMusicAddModal = () => { + const musicInfo = playerState.playMusicInfo.musicInfo + if (!musicInfo) return + musicAddModalRef.current?.show({ + musicInfo: 'progress' in musicInfo ? musicInfo.metadata.musicInfo : musicInfo, + isMove: false, + listId: playerState.playMusicInfo.listId as string, + }) + } + + return ( + <> + <Btn icon="add-music" onPress={handleShowMusicAddModal} /> + <MusicAddModal ref={musicAddModalRef} /> + </> + ) +} diff --git a/src/screens/PlayDetail/Landscape/MoreBtn/PlayModeBtn.js b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/PlayModeBtn.tsx similarity index 56% rename from src/screens/PlayDetail/Landscape/MoreBtn/PlayModeBtn.js rename to src/screens/PlayDetail/Vertical/Player/components/MoreBtn/PlayModeBtn.tsx index 1746a2d..35227f8 100644 --- a/src/screens/PlayDetail/Landscape/MoreBtn/PlayModeBtn.js +++ b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/PlayModeBtn.tsx @@ -1,23 +1,22 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' +import React, { memo, useMemo } from 'react' import { toast } from '@/utils/tools' -import { useTranslation } from '@/plugins/i18n' import { MUSIC_TOGGLE_MODE_LIST, MUSIC_TOGGLE_MODE } from '@/config/constant' +import { useSettingValue } from '@/store/setting/hook' +import { useI18n } from '@/lang' +import { updateSetting } from '@/core/common' +import Btn from './Btn' -export default memo(({ width }) => { - const togglePlayMethod = useGetter('common', 'togglePlayMethod') - const theme = useGetter('common', 'theme') - const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - const { t } = useTranslation() + +export default memo(() => { + const togglePlayMethod = useSettingValue('player.togglePlayMethod') + const t = useI18n() const toggleNextPlayMode = () => { let index = MUSIC_TOGGLE_MODE_LIST.indexOf(togglePlayMethod) if (++index >= MUSIC_TOGGLE_MODE_LIST.length) index = 0 const mode = MUSIC_TOGGLE_MODE_LIST[index] - setPlayNextMode(mode || '') - let modeName + updateSetting({ 'player.togglePlayMethod': mode }) + let modeName: 'play_list_loop' | 'play_list_random' | 'play_list_order' | 'play_single_loop' | 'play_single' switch (mode) { case MUSIC_TOGGLE_MODE.listLoop: modeName = 'play_list_loop' @@ -60,23 +59,5 @@ export default memo(({ width }) => { return playModeIcon }, [togglePlayMethod]) - return ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Icon name={playModeIcon} style={{ color: theme.normal30 }} size={width} /> - </TouchableOpacity> - ) -}) - -const styles = StyleSheet.create({ - cotrolBtn: { - marginRight: '1%', - width: '25%', - aspectRatio: 1, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, + return <Btn icon={playModeIcon} onPress={toggleNextPlayMode} /> }) diff --git a/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/TimeoutExitBtn.tsx b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/TimeoutExitBtn.tsx new file mode 100644 index 0000000..4af7320 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/TimeoutExitBtn.tsx @@ -0,0 +1,23 @@ +import React, { memo, useRef } from 'react' +import TimeoutExitEditModal, { TimeoutExitEditModalType, useTimeInfo } from '@/components/TimeoutExitEditModal' +import { useTheme } from '@/store/theme/hook' +import Btn from './Btn' + + +export default memo(() => { + const theme = useTheme() + const modalRef = useRef<TimeoutExitEditModalType>(null) + + const timeInfo = useTimeInfo() + + const handleShow = () => { + modalRef.current?.show() + } + + return ( + <> + <Btn icon="music_time" color={timeInfo.active ? theme['c-primary-font-active'] : theme['c-font-label']} onPress={handleShow} /> + <TimeoutExitEditModal ref={modalRef} timeInfo={timeInfo} /> + </> + ) +}) diff --git a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/index.js b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/index.tsx similarity index 66% rename from src/screens/PlayDetail/Portrait/Player/components/MoreBtn/index.js rename to src/screens/PlayDetail/Vertical/Player/components/MoreBtn/index.tsx index 81967e6..edb0bae 100644 --- a/src/screens/PlayDetail/Portrait/Player/components/MoreBtn/index.js +++ b/src/screens/PlayDetail/Vertical/Player/components/MoreBtn/index.tsx @@ -1,23 +1,24 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { View, StyleSheet } from 'react-native' +import { createStyle } from '@/utils/tools' +import React from 'react' +import { View } from 'react-native' import PlayModeBtn from './PlayModeBtn' import MusicAddBtn from './MusicAddBtn' -import TimeoutExit from './TimeoutExit' +import TimeoutExitBtn from './TimeoutExitBtn' import CommentBtn from './CommentBtn' export default () => { return ( <View style={styles.container}> - <TimeoutExit /> - <PlayModeBtn /> + <TimeoutExitBtn /> <MusicAddBtn /> + <PlayModeBtn /> <CommentBtn /> </View> ) } -const styles = StyleSheet.create({ +const styles = createStyle({ container: { flexShrink: 0, flexGrow: 0, diff --git a/src/screens/PlayDetail/Vertical/Player/components/PlayInfo.tsx b/src/screens/PlayDetail/Vertical/Player/components/PlayInfo.tsx new file mode 100644 index 0000000..85aaa35 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/PlayInfo.tsx @@ -0,0 +1,66 @@ +import React, { memo } from 'react' +import { View } from 'react-native' + +import Progress from './Progress' +import Status from './Status' +import { useProgress } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + +// const FONT_SIZE = 13 + +const PlayTimeCurrent = ({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + // console.log(timeStr) + return <Text color={theme['c-500']}>{timeStr}</Text> +} + +const PlayTimeMax = memo(({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + return <Text color={theme['c-500']}>{timeStr}</Text> +}) + +export default () => { + const theme = useTheme() + const { maxPlayTimeStr, nowPlayTimeStr, progress, maxPlayTime } = useProgress() + // console.log('render playInfo') + + return ( + <> + <View style={styles.progress}><Progress progress={progress} duration={maxPlayTime} /></View> + <View style={styles.info}> + {/* <MusicName /> */} + <View style={styles.status} > + <Status /> + </View> + <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > + <PlayTimeCurrent timeStr={nowPlayTimeStr} /> + <Text color={theme['c-500']}> / </Text> + <PlayTimeMax timeStr={maxPlayTimeStr} /> + </View> + </View> + </> + ) +} + + +const styles = createStyle({ + progress: { + flexGrow: 1, + flexShrink: 0, + flexDirection: 'column', + justifyContent: 'center', + }, + info: { + flexDirection: 'row', + justifyContent: 'space-between', + // alignItems: 'center', + // backgroundColor: '#ccc', + }, + status: { + flexGrow: 1, + flexShrink: 1, + paddingRight: 5, + }, +}) diff --git a/src/screens/PlayDetail/Vertical/Player/components/Progress.tsx b/src/screens/PlayDetail/Vertical/Player/components/Progress.tsx new file mode 100644 index 0000000..2940104 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/Progress.tsx @@ -0,0 +1,104 @@ +import React, { memo, useMemo } from 'react' +import { View, Pressable, GestureResponderEvent } from 'react-native' +import { useLayout } from '@/utils/hooks' +import { createStyle } from '@/utils/tools' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeW } from '@/utils/pixelRatio' +// import { AppColors } from '@/theme' + + +const DefaultBar = memo(() => { + const theme = useTheme() + + return <View style={{ ...styles.progressBar, backgroundColor: theme['c-primary-light-100-alpha-800'], position: 'absolute', width: '100%', left: 0, top: 0 }}></View> +}) + +// const BufferedBar = memo(({ bufferedProgress }) => { +// // console.log(bufferedProgress) +// const theme = useTheme() +// return <View style={{ ...styles.progressBar, backgroundColor: theme.secondary45, position: 'absolute', width: bufferedProgress + '%', left: 0, top: 0 }}></View> +// }) + +const PreassBar = memo(({ duration }: { duration: number }) => { + const { onLayout, ...layout } = useLayout() + const handlePress = (event: GestureResponderEvent) => { + global.app_event.setProgress(event.nativeEvent.locationX / layout.width * duration) + } + + return <Pressable onPress={handlePress} onLayout={onLayout} style={styles.pressBar} /> +}) + + +const Progress = ({ progress, duration }: { + progress: number + duration: number +}) => { + // const { progress } = usePlayTimeBuffer() + const theme = useTheme() + // console.log(progress) + const progressStr = `${progress * 100}%` + + const progressDotStyle = useMemo(() => { + return { + width: progressDotSize, + height: progressDotSize, + borderRadius: progressDotSize, + position: 'absolute', + right: -progressDotSize / 2, + top: -(progressDotSize - progressHeight) / 2, + backgroundColor: theme['c-primary-light-100'], + zIndex: 9, + } as const + }, [theme]) + + return ( + <View style={styles.progress}> + <View> + <DefaultBar /> + {/* <BufferedBar bufferedProgress={bufferedProgress} /> */} + <View style={{ ...styles.progressBar, backgroundColor: theme['c-primary-light-100-alpha-400'], width: progressStr, position: 'absolute', left: 0, top: 0 }}> + <Pressable style={{ ...styles.progressDot, ...progressDotStyle }}></Pressable> + </View> + </View> + <PreassBar duration={duration} /> + {/* <View style={{ ...styles.progressBar, height: '100%', width: progressStr }}><Pressable style={styles.progressDot}></Pressable></View> */} + </View> + ) +} + +const progressContentPadding = 10 +const progressHeight = 3.6 +const progressDotSize = scaleSizeW(12) +const styles = createStyle({ + progress: { + width: '100%', + height: progressContentPadding * 2 + progressHeight, + // backgroundColor: 'rgba(0,0,0,0.5)', + paddingTop: progressContentPadding, + paddingBottom: progressContentPadding, + zIndex: 1, + }, + progressBar: { + height: progressHeight, + borderRadius: 4, + }, + progressDot: { + width: progressDotSize, + height: progressDotSize, + borderRadius: progressDotSize, + position: 'absolute', + right: -progressDotSize / 2, + top: -(progressDotSize - progressHeight) / 2, + zIndex: 9, + }, + pressBar: { + position: 'absolute', + // backgroundColor: 'rgba(0,0,0,0.5)', + left: 0, + top: 0, + height: progressContentPadding * 2 + progressHeight, + width: '100%', + }, +}) + +export default Progress diff --git a/src/screens/PlayDetail/Vertical/Player/components/Status.tsx b/src/screens/PlayDetail/Vertical/Player/components/Status.tsx new file mode 100644 index 0000000..2c473f9 --- /dev/null +++ b/src/screens/PlayDetail/Vertical/Player/components/Status.tsx @@ -0,0 +1,22 @@ +import React from 'react' +// import { useLrcPlay } from '@/plugins/lyric' +import { useStatusText } from '@/store/player/hook' +// import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + + +export default () => { + // const { text } = useLrcPlay() + const statusText = useStatusText() + // console.log('render status') + + // const status = playerStatus.isPlay ? text : playerStatus.statusText + + return <Text numberOfLines={1} size={13}>{statusText}</Text> +} + +// const styles = createStyle({ +// text: { +// fontSize: 10, +// }, +// }) diff --git a/src/screens/PlayDetail/Portrait/Player/index.js b/src/screens/PlayDetail/Vertical/Player/index.tsx similarity index 64% rename from src/screens/PlayDetail/Portrait/Player/index.js rename to src/screens/PlayDetail/Vertical/Player/index.tsx index 577af2f..0734c24 100644 --- a/src/screens/PlayDetail/Portrait/Player/index.js +++ b/src/screens/PlayDetail/Vertical/Player/index.tsx @@ -1,21 +1,17 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { View, Text, StyleSheet } from 'react-native' -import { useLayout, useKeyboard } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' -import { BorderWidths } from '@/theme' +import React, { memo } from 'react' +import { View } from 'react-native' // import Title from './components/Title' import MoreBtn from './components/MoreBtn' import PlayInfo from './components/PlayInfo' import ControlBtn from './components/ControlBtn' +import { createStyle } from '@/utils/tools' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' -export default memo(({ playNextModes }) => { - // const { onLayout, ...layout } = useLayout() - const theme = useGetter('common', 'theme') - +export default memo(() => { return ( - <View style={{ ...styles.container, backgroundColor: theme.primary }}> + <View style={styles.container} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_player}> <View style={{ ...styles.info }} > {/* <Title /> */} <MoreBtn /> @@ -24,13 +20,13 @@ export default memo(({ playNextModes }) => { <PlayInfo /> </View> <View style={styles.control}> - <ControlBtn playNextModes={playNextModes} /> + <ControlBtn /> </View> </View> ) }) -const styles = StyleSheet.create({ +const styles = createStyle({ container: { width: '100%', // paddingTop: progressContentPadding, @@ -57,10 +53,10 @@ const styles = StyleSheet.create({ justifyContent: 'space-evenly', flexGrow: 0, flexShrink: 0, - paddingLeft: '15%', - paddingRight: '15%', + paddingLeft: '10%', + paddingRight: '10%', paddingTop: '9.5%', - paddingBottom: '8.5%', + paddingBottom: '8%', }, row: { flexDirection: 'row', diff --git a/src/screens/PlayDetail/Vertical/components/Header.tsx b/src/screens/PlayDetail/Vertical/components/Header.tsx new file mode 100644 index 0000000..9e820be --- /dev/null +++ b/src/screens/PlayDetail/Vertical/components/Header.tsx @@ -0,0 +1,143 @@ +import React, { memo, useRef, useState } from 'react' + +import { View, StyleSheet, TouchableOpacity } from 'react-native' + +import { Icon } from '@/components/common/Icon' +import { pop } from '@/navigation' +// import { AppColors } from '@/theme' +import StatusBar from '@/components/common/StatusBar' +// import commonState from '@/store/common/state' +import { useTheme } from '@/store/theme/hook' +import { usePlayerMusicInfo } from '@/store/player/hook' +import Text from '@/components/common/Text' +import { scaleSizeH } from '@/utils/pixelRatio' +import { HEADER_HEIGHT as _HEADER_HEIGHT, NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import commonState from '@/store/common/state' +import { createStyle } from '@/utils/tools' +import { useSettingValue } from '@/store/setting/hook' +import Slider, { type SliderProps } from '@/components/common/Slider' +import { updateSetting } from '@/core/common' +import Popup, { type PopupType } from '@/components/common/Popup' +import { useI18n } from '@/lang' + +const HEADER_HEIGHT = scaleSizeH(_HEADER_HEIGHT) + +const LrcFontSizeStyles = createStyle({ + content: { + flexGrow: 0, + flexShrink: 1, + flexDirection: 'row', + flexWrap: 'nowrap', + alignItems: 'center', + paddingLeft: 15, + paddingRight: 15, + }, +}) +const LrcFontSize = () => { + const theme = useTheme() + const lrcFontSize = useSettingValue('player.vertical.style.lrcFontSize') + const [sliderSize, setSliderSize] = useState(lrcFontSize) + const [isSliding, setSliding] = useState(false) + + const handleSlidingStart: SliderProps['onSlidingStart'] = value => { + setSliding(true) + } + const handleValueChange: SliderProps['onValueChange'] = value => { + setSliderSize(value) + } + const handleSlidingComplete: SliderProps['onSlidingComplete'] = value => { + if (lrcFontSize == value) return + updateSetting({ 'player.vertical.style.lrcFontSize': value }) + setSliding(false) + } + + return ( + <View style={LrcFontSizeStyles.content}> + <Text color={theme['c-font-label']}>{isSliding ? sliderSize : lrcFontSize}</Text> + <Slider + minimumValue={100} + maximumValue={300} + onSlidingComplete={handleSlidingComplete} + onValueChange={handleValueChange} + onSlidingStart={handleSlidingStart} + step={2} + value={lrcFontSize} + /> + </View> + ) +} + +const Title = () => { + const theme = useTheme() + const musicInfo = usePlayerMusicInfo() + + + return ( + <View style={styles.titleContent}> + <Text numberOfLines={1} style={styles.title}>{musicInfo.name}</Text> + <Text numberOfLines={1} style={styles.title} size={12} color={theme['c-font-label']}>{musicInfo.singer}</Text> + </View> + ) +} + +export default memo(() => { + const t = useI18n() + // const theme = useTheme() + + // const [settingVisible, setSettingVisible] = useState(false) + const popupRef = useRef<PopupType>(null) + + const back = () => { + // navigation.goBack() + void pop(commonState.componentIds.playDetail as string) + } + const showSetting = () => { + popupRef.current?.setVisible(true) + } + + return ( + <View style={{ height: HEADER_HEIGHT + StatusBar.currentHeight, paddingTop: StatusBar.currentHeight }} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_header}> + <StatusBar /> + <View style={styles.container}> + <TouchableOpacity onPress={back} style={{ ...styles.button, width: HEADER_HEIGHT }}> + <Icon name="chevron-left" size={18} /> + </TouchableOpacity> + <Title /> + <TouchableOpacity onPress={showSetting} style={{ ...styles.button, width: HEADER_HEIGHT }}> + <Icon name="font-size" size={18} /> + </TouchableOpacity> + </View> + <Popup ref={popupRef} title={t('player_setting_lrc_font_size')}> + <LrcFontSize /> + </Popup> + </View> + ) +}) + + +const styles = StyleSheet.create({ + container: { + flexDirection: 'row', + // justifyContent: 'center', + height: '100%', + }, + button: { + justifyContent: 'center', + alignItems: 'center', + height: '100%', + flex: 0, + }, + titleContent: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, + title: { + // flex: 1, + // textAlign: 'center', + }, + icon: { + paddingLeft: 4, + paddingRight: 4, + }, +}) diff --git a/src/screens/PlayDetail/Portrait/index.js b/src/screens/PlayDetail/Vertical/index.tsx similarity index 59% rename from src/screens/PlayDetail/Portrait/index.js rename to src/screens/PlayDetail/Vertical/index.tsx index f97c090..080185d 100644 --- a/src/screens/PlayDetail/Portrait/index.js +++ b/src/screens/PlayDetail/Vertical/index.tsx @@ -1,18 +1,18 @@ -import React, { useEffect, useCallback, memo, useState, useMemo, useRef } from 'react' +import React, { memo, useState, useRef, useMemo, useEffect } from 'react' import { View, StyleSheet, AppState } from 'react-native' import Header from './components/Header' // import Aside from './components/Aside' // import Main from './components/Main' import Player from './Player' -import { useGetter, useDispatch } from '@/store' -import PagerView from 'react-native-pager-view' +import PagerView, { type PagerViewOnPageSelectedEvent } from 'react-native-pager-view' import Pic from './Pic' import Lyric from './Lyric' -import { screenkeepAwake, screenUnkeepAwake } from '@/utils/utils' -import { onNavigationComponentDidDisappearEvent } from '@/navigation' +import { screenkeepAwake, screenUnkeepAwake } from '@/utils/nativeModules/utils' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import commonState, { type InitState as CommonState } from '@/store/common/state' -const LyricPage = ({ activeIndex }) => { +const LyricPage = ({ activeIndex }: { activeIndex: number }) => { const initedRef = useRef(false) const lyric = useMemo(() => <Lyric />, []) switch (activeIndex) { @@ -27,44 +27,12 @@ const LyricPage = ({ activeIndex }) => { } // global.iskeep = false -export default memo(({ componentId, animated }) => { - const theme = useGetter('common', 'theme') +export default memo(({ componentId }: { componentId: string }) => { + // const theme = useTheme() const [pageIndex, setPageIndex] = useState(0) - const componentIds = useGetter('common', 'componentIds') const showLyricRef = useRef(false) - const showCommentRef = useRef(false) - useEffect(() => { - let listener - showCommentRef.current = !!componentIds.comment - if (showCommentRef.current) { - if (showLyricRef.current) screenUnkeepAwake() - listener = onNavigationComponentDidDisappearEvent(componentIds.comment, () => { - if (showLyricRef.current && AppState.currentState == 'active') screenkeepAwake() - }) - } - return () => { - if (listener) listener.remove() - } - }, [componentIds]) - - useEffect(() => { - let appstateListener = AppState.addEventListener('change', (state) => { - switch (state) { - case 'active': - if (showLyricRef.current && !showCommentRef.current) screenkeepAwake() - break - case 'background': - screenUnkeepAwake() - break - } - }) - return () => { - appstateListener.remove() - } - }, []) - - const onPageSelected = useCallback(({ nativeEvent }) => { + const onPageSelected = ({ nativeEvent }: PagerViewOnPageSelectedEvent) => { setPageIndex(nativeEvent.position) showLyricRef.current = nativeEvent.position == 1 if (showLyricRef.current) { @@ -72,29 +40,56 @@ export default memo(({ componentId, animated }) => { } else { screenUnkeepAwake() } + } + + useEffect(() => { + let appstateListener = AppState.addEventListener('change', (state) => { + switch (state) { + case 'active': + if (showLyricRef.current && !commonState.componentIds.comment) screenkeepAwake() + break + case 'background': + screenUnkeepAwake() + break + } + }) + + const handleComponentIdsChange = (ids: CommonState['componentIds']) => { + if (ids.comment) screenUnkeepAwake() + else if (AppState.currentState == 'active') screenkeepAwake() + } + + global.state_event.on('componentIdsUpdated', handleComponentIdsChange) + + return () => { + global.state_event.off('componentIdsUpdated', handleComponentIdsChange) + appstateListener.remove() + screenUnkeepAwake() + } + // eslint-disable-next-line react-hooks/exhaustive-deps }, []) return ( <> <Header /> - <View style={{ flex: 1, flexDirection: 'column', height: '100%', backgroundColor: theme.primary }}> + <View style={{ flex: 1, flexDirection: 'column' }}> <PagerView onPageSelected={onPageSelected} // onPageScrollStateChanged={onPageScrollStateChanged} style={styles.pagerView} > - <View collapsable={false} style={styles.pageStyle}> - <Pic componentId={componentId} animated={animated} /> + <View collapsable={false}> + <Pic componentId={componentId} /> </View> - <View collapsable={false} style={styles.pageStyle}> + <View collapsable={false}> <LyricPage activeIndex={pageIndex} /> </View> </PagerView> - <View style={styles.pageIndicator} nativeID="pageIndicator"> + {/* <View style={styles.pageIndicator} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pageIndicator}> <View style={{ ...styles.pageIndicatorItem, backgroundColor: pageIndex == 0 ? theme.secondary20 : theme.normal60 }}></View> <View style={{ ...styles.pageIndicatorItem, backgroundColor: pageIndex == 1 ? theme.secondary20 : theme.normal60 }}></View> - </View> - <View style={styles.player} nativeID="player"> + </View> */} + <View style={styles.player} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_player}> <Player /> </View> </View> diff --git a/src/screens/PlayDetail/index.js b/src/screens/PlayDetail/index.js deleted file mode 100644 index 60d1c12..0000000 --- a/src/screens/PlayDetail/index.js +++ /dev/null @@ -1,32 +0,0 @@ -import React, { useEffect, useState } from 'react' -// import { View, StyleSheet } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { useDimensions } from '@/utils/hooks' -import { useNavigationComponentDidDisappear, useNavigationComponentDidAppear } from '@/navigation' -import { screenUnkeepAwake } from '@/utils/utils' - -import Portrait from './Portrait' -import Landscape from './Landscape' - -export default (props) => { - // const theme = useGetter('common', 'theme') - const setComponentId = useDispatch('common', 'setComponentId') - const [animated, setAnimated] = useState(false) - const { window } = useDimensions() - useEffect(() => { - setComponentId({ name: 'playDetail', id: props.componentId }) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - useNavigationComponentDidDisappear(props.componentId, () => { - screenUnkeepAwake() - }) - useNavigationComponentDidAppear(props.componentId, () => { - setAnimated(true) - }) - - return ( - window.height > window.width - ? <Portrait componentId={props.componentId} animated={animated} /> - : <Landscape componentId={props.componentId} animated={animated} /> - ) -} diff --git a/src/screens/PlayDetail/index.tsx b/src/screens/PlayDetail/index.tsx new file mode 100644 index 0000000..232f783 --- /dev/null +++ b/src/screens/PlayDetail/index.tsx @@ -0,0 +1,30 @@ +import React, { useEffect } from 'react' +// import { View, StyleSheet } from 'react-native' +import { useDimensions } from '@/utils/hooks' + +import Vertical from './Vertical' +import Horizontal from './Horizontal' +import PageContent from '@/components/PageContent' +import StatusBar from '@/components/common/StatusBar' +import { setComponentId } from '@/core/common' +import { COMPONENT_IDS } from '@/config/constant' + +export default ({ componentId }: { componentId: string }) => { + const { window } = useDimensions() + + useEffect(() => { + setComponentId(COMPONENT_IDS.playDetail, componentId) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + return ( + <PageContent> + <StatusBar /> + { + window.height > window.width + ? <Vertical componentId={componentId} /> + : <Horizontal componentId={componentId} /> + } + </PageContent> + ) +} diff --git a/src/screens/SonglistDetail/ActionBar.js b/src/screens/SonglistDetail/ActionBar.js deleted file mode 100644 index 3d5eaae..0000000 --- a/src/screens/SonglistDetail/ActionBar.js +++ /dev/null @@ -1,90 +0,0 @@ -import React, { useCallback, memo } from 'react' -import { View, Text, StyleSheet } from 'react-native' -import Button from '@/components/common/Button' - -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import { toast } from '@/utils/tools' -import { LIST_ID_PLAY_TEMP } from '@/config/constant' -import { pop } from '@/navigation' - -export default memo(() => { - const selectListInfo = useGetter('songList', 'selectListInfo') - const listDetailData = useGetter('songList', 'listDetailData') - const setPlayList = useDispatch('player', 'setList') - // const setVisibleListDetail = useDispatch('songList', 'setVisibleListDetail') - const getListDetailAll = useDispatch('songList', 'getListDetailAll') - const createUserList = useDispatch('list', 'createUserList') - const { t } = useTranslation() - const theme = useGetter('common', 'theme') - const songListSource = useGetter('songList', 'songListSource') - const componentIds = useGetter('common', 'componentIds') - - const back = () => { - pop(componentIds.songlistDetail) - } - - const handlePlayAll = useCallback(async() => { - if (!listDetailData.info.name) return - const list = await getListDetailAll({ id: selectListInfo.id, source: songListSource }) - // if (!list.length) return - setPlayList({ - list: { - list, - id: LIST_ID_PLAY_TEMP, - }, - index: 0, - }) - }, [getListDetailAll, listDetailData, selectListInfo, setPlayList, songListSource]) - - const handleCollection = useCallback(async() => { - if (!listDetailData.info.name) return - const list = await getListDetailAll({ id: selectListInfo.id, source: songListSource }) - createUserList({ - name: listDetailData.info.name || `${listDetailData.source}-list`, - id: `${listDetailData.source}__${listDetailData.id}`, - list, - source: listDetailData.source, - sourceListId: listDetailData.id, - isShowToast: true, - }) - toast(t('collect_success')) - }, [listDetailData, getListDetailAll, selectListInfo, songListSource, createUserList, t]) - - return ( - <View style={styles.container}> - <Button onPress={handleCollection} style={styles.controlBtn}> - <Text style={{ ...styles.controlBtnText, color: theme.secondary }}>{t('collect_songlist')}</Text> - </Button> - <Button onPress={handlePlayAll} style={styles.controlBtn}> - <Text style={{ ...styles.controlBtnText, color: theme.secondary }}>{t('play_all')}</Text> - </Button> - <Button onPress={back} style={styles.controlBtn}> - <Text style={{ ...styles.controlBtnText, color: theme.secondary }}>{t('back')}</Text> - </Button> - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - width: '100%', - flexGrow: 0, - flexShrink: 0, - }, - controlBtn: { - flexGrow: 1, - flexShrink: 1, - width: '33%', - paddingTop: 12, - paddingBottom: 12, - paddingLeft: 10, - paddingRight: 10, - }, - controlBtnText: { - fontSize: 13, - textAlign: 'center', - }, -}) - diff --git a/src/screens/SonglistDetail/ActionBar.tsx b/src/screens/SonglistDetail/ActionBar.tsx new file mode 100644 index 0000000..5c7909b --- /dev/null +++ b/src/screens/SonglistDetail/ActionBar.tsx @@ -0,0 +1,69 @@ +import React, { memo } from 'react' +import { View } from 'react-native' +import Button from '@/components/common/Button' + +import { createStyle } from '@/utils/tools' +import { pop } from '@/navigation' +import { useTheme } from '@/store/theme/hook' +import commonState from '@/store/common/state' +import Text from '@/components/common/Text' +import { handleCollect, handlePlay } from './listAction' +import songlistState from '@/store/songlist/state' +import { useI18n } from '@/lang' +// import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' + +export default memo(() => { + const theme = useTheme() + const t = useI18n() + + const back = () => { + void pop(commonState.componentIds.songlistDetail as string) + } + + const handlePlayAll = () => { + if (!songlistState.listDetailInfo.info.name) return + void handlePlay(songlistState.selectListInfo.id, songlistState.selectListInfo.source, songlistState.listDetailInfo.list) + } + + const handleCollection = () => { + if (!songlistState.listDetailInfo.info.name) return + void handleCollect(songlistState.selectListInfo.id, songlistState.selectListInfo.source, songlistState.listDetailInfo.info.name || songlistState.selectListInfo.name) + } + + return ( + <View style={styles.container}> + <Button onPress={handleCollection} style={styles.controlBtn}> + <Text style={{ ...styles.controlBtnText, color: theme['c-button-font'] }}>{t('collect_songlist')}</Text> + </Button> + <Button onPress={handlePlayAll} style={styles.controlBtn}> + <Text style={{ ...styles.controlBtnText, color: theme['c-button-font'] }}>{t('play_all')}</Text> + </Button> + <Button onPress={back} style={styles.controlBtn}> + <Text style={{ ...styles.controlBtnText, color: theme['c-button-font'] }}>{t('back')}</Text> + </Button> + </View> + ) +}) + +const styles = createStyle({ + container: { + flexDirection: 'row', + width: '100%', + flexGrow: 0, + flexShrink: 0, + }, + controlBtn: { + flexGrow: 1, + flexShrink: 1, + width: '33%', + paddingTop: 12, + paddingBottom: 12, + paddingLeft: 10, + paddingRight: 10, + }, + controlBtnText: { + fontSize: 13, + textAlign: 'center', + }, +}) + diff --git a/src/screens/SonglistDetail/Failed.js b/src/screens/SonglistDetail/Failed.js deleted file mode 100644 index 38fd6e0..0000000 --- a/src/screens/SonglistDetail/Failed.js +++ /dev/null @@ -1,53 +0,0 @@ -import React, { memo } from 'react' -import { View, Text, StyleSheet, ImageBackground } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { useTranslation } from '@/plugins/i18n' -import Button from '@/components/common/Button' -import { pop } from '@/navigation' - -const Header = memo(() => { - const { t } = useTranslation() - const theme = useGetter('common', 'theme') - const componentIds = useGetter('common', 'componentIds') - const back = () => { - pop(componentIds.songlistDetail) - } - - return ( - <View style={{ ...styles.container, backgroundColor: theme.primary }}> - <Text style={{ ...styles.text, color: theme.normal20 }}>{t('load_failed')}</Text> - <Button onPress={back} style={{ ...styles.controlBtn, backgroundColor: theme.secondary40 }}> - <Text style={{ ...styles.controlBtnText, color: theme.secondary }}>{t('back')}</Text> - </Button> - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - position: 'absolute', - left: 0, - top: 0, - height: '100%', - width: '100%', - alignItems: 'center', - justifyContent: 'center', - }, - text: { - fontSize: 18, - marginBottom: '20%', - }, - controlBtn: { - paddingTop: 12, - paddingBottom: 12, - paddingLeft: 25, - paddingRight: 25, - borderRadius: 4, - }, - controlBtnText: { - fontSize: 14, - textAlign: 'center', - }, -}) - -export default Header diff --git a/src/screens/SonglistDetail/Header.js b/src/screens/SonglistDetail/Header.js deleted file mode 100644 index 8d40df0..0000000 --- a/src/screens/SonglistDetail/Header.js +++ /dev/null @@ -1,84 +0,0 @@ -import React, { memo } from 'react' -import { View, Text, StyleSheet, Image } from 'react-native' -import { BorderWidths } from '@/theme' -import { useGetter } from '@/store' -import ButtonBar from './ActionBar' - -const Header = memo(({ animatePlayed }) => { - const theme = useGetter('common', 'theme') - const selectListInfo = useGetter('songList', 'selectListInfo') - const { info: listDetailDataInfo = {} } = useGetter('songList', 'listDetailData') - const playCount = selectListInfo.play_count || listDetailDataInfo.play_count - - return ( - <View style={{ ...styles.container, borderBottomColor: theme.borderColor }}> - <View style={{ flexDirection: 'row', flexGrow: 0, flexShrink: 0, padding: 10 }}> - <View style={{ ...styles.listItemImg, backgroundColor: theme.primary }}> - <Image nativeID={`pic${selectListInfo.id}Dest`} source={{ uri: selectListInfo.img || listDetailDataInfo.img || null }} borderRadius={4} style={{ flex: 1, resizeMode: 'cover', justifyContent: 'flex-end' }} /> - { - playCount && animatePlayed - ? <Text style={styles.playCount} numberOfLines={ 1 }>{playCount}</Text> - : null - } - </View> - <View style={{ flexDirection: 'column', flexGrow: 1, flexShrink: 1, paddingLeft: 5 }} nativeID="title"> - <Text style={{ fontSize: 13, color: theme.normal }} numberOfLines={ 1 }>{selectListInfo.name || listDetailDataInfo.name}</Text> - <View style={{ flexGrow: 0, flexShrink: 1 }}> - <Text style={{ fontSize: 10, color: theme.normal40 }} numberOfLines={ 4 }>{selectListInfo.desc || listDetailDataInfo.desc}</Text> - </View> - </View> - </View> - <ButtonBar /> - {/* <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}> - <View style={{ flexGrow: 0, flexShrink: 1, paddingTop: 5, paddingRight: 5 }}> - <Text style={{ fontSize: 12, color: AppColors.normal20 }} numberOfLines={ 1 }>{playCount || '-'}</Text> - <Text style={{ fontSize: 12, color: AppColors.normal30 }} numberOfLines={ 1 }>{this.props.selectListInfo.author || this.props.listDetailData.info.author}</Text> - </View> - </View> */} - </View> - ) -}) - -const styles = StyleSheet.create({ - container: { - flexDirection: 'column', - flexWrap: 'nowrap', - borderBottomWidth: BorderWidths.normal, - }, - listItemImg: { - backgroundColor: '#eee', - flexGrow: 0, - flexShrink: 0, - width: 70, - height: 70, - // ...Platform.select({ - // ios: { - // shadowColor: '#000', - // shadowOffset: { - // width: 0, - // height: 1, - // }, - // shadowOpacity: 0.20, - // shadowRadius: 1.41, - // }, - // android: { - // elevation: 2, - // }, - // }), - }, - playCount: { - position: 'absolute', - bottom: 0, - left: 0, - width: '100%', - fontSize: 12, - paddingLeft: 3, - paddingRight: 3, - backgroundColor: 'rgba(0, 0, 0, 0.5)', - color: '#fff', - borderBottomLeftRadius: 4, - borderBottomRightRadius: 4, - }, -}) - -export default Header diff --git a/src/screens/SonglistDetail/Header.tsx b/src/screens/SonglistDetail/Header.tsx new file mode 100644 index 0000000..3d4dd46 --- /dev/null +++ b/src/screens/SonglistDetail/Header.tsx @@ -0,0 +1,125 @@ +import React, { forwardRef, useImperativeHandle, useState } from 'react' +import { View, Image } from 'react-native' +import { BorderWidths } from '@/theme' +import ButtonBar from './ActionBar' +import { useNavigationComponentDidAppear } from '@/navigation' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' +import { scaleSizeW } from '@/utils/pixelRatio' +import { useTheme } from '@/store/theme/hook' +import Text from '@/components/common/Text' +import { createStyle } from '@/utils/tools' +import StatusBar from '@/components/common/StatusBar' +import songlistState from '@/store/songlist/state' + +const IMAGE_WIDTH = scaleSizeW(70) + +const Pic = ({ componentId, playCount, imgUrl }: { + componentId: string + playCount: string + imgUrl?: string +}) => { + const [animated, setAnimated] = useState(false) + + useNavigationComponentDidAppear(componentId, () => { + setAnimated(true) + }) + + return ( + <View style={{ ...styles.listItemImg, width: IMAGE_WIDTH, height: IMAGE_WIDTH }}> + <Image nativeID={`${NAV_SHEAR_NATIVE_IDS.songlistDetail_pic}_to_${songlistState.selectListInfo.id}`} source={{ uri: imgUrl }} borderRadius={4} style={{ flex: 1, resizeMode: 'cover', justifyContent: 'flex-end' }} /> + { + playCount && animated + ? <Text style={styles.playCount} numberOfLines={ 1 }>{playCount}</Text> + : null + } + </View> + ) +} + +export interface HeaderProps { + componentId: string +} + +export interface HeaderType { + setInfo: (info: DetailInfo) => void +} +export interface DetailInfo { + name: string + desc: string + playCount: string + imgUrl?: string +} + +export default forwardRef<HeaderType, HeaderProps>(({ componentId }: { componentId: string }, ref) => { + const theme = useTheme() + const [detailInfo, setDetailInfo] = useState<DetailInfo>({ name: '', desc: '', playCount: '' }) + + useImperativeHandle(ref, () => ({ + setInfo(info) { + setDetailInfo(info) + }, + }), []) + + return ( + <View style={{ ...styles.container, paddingTop: StatusBar.currentHeight, borderBottomColor: theme['c-border-background'] }}> + <View style={{ flexDirection: 'row', flexGrow: 0, flexShrink: 0, padding: 10 }}> + <Pic componentId={componentId} playCount={detailInfo.playCount} imgUrl={detailInfo.imgUrl} /> + <View style={{ flexDirection: 'column', flexGrow: 1, flexShrink: 1, paddingLeft: 5 }} nativeID={NAV_SHEAR_NATIVE_IDS.songlistDetail_title}> + <Text size={14} numberOfLines={ 1 }>{detailInfo.name}</Text> + <View style={{ flexGrow: 0, flexShrink: 1 }}> + <Text size={13} color={theme['c-font-label']} numberOfLines={ 4 }>{detailInfo.desc}</Text> + </View> + </View> + </View> + <ButtonBar /> + {/* <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}> + <View style={{ flexGrow: 0, flexShrink: 1, paddingTop: 5, paddingRight: 5 }}> + <Text style={{ fontSize: 12, color: AppColors.normal20 }} numberOfLines={ 1 }>{playCount || '-'}</Text> + <Text style={{ fontSize: 12, color: AppColors.normal30 }} numberOfLines={ 1 }>{this.props.selectListInfo.author || this.props.listDetailData.info.author}</Text> + </View> + </View> */} + </View> + ) +}) + +const styles = createStyle({ + container: { + flexDirection: 'column', + flexWrap: 'nowrap', + borderBottomWidth: BorderWidths.normal, + }, + listItemImg: { + // backgroundColor: '#eee', + flexGrow: 0, + flexShrink: 0, + // width: 70, + // height: 70, + // ...Platform.select({ + // ios: { + // shadowColor: '#000', + // shadowOffset: { + // width: 0, + // height: 1, + // }, + // shadowOpacity: 0.20, + // shadowRadius: 1.41, + // }, + // android: { + // elevation: 2, + // }, + // }), + }, + playCount: { + position: 'absolute', + bottom: 0, + left: 0, + width: '100%', + fontSize: 12, + paddingLeft: 3, + paddingRight: 3, + backgroundColor: 'rgba(0, 0, 0, 0.5)', + color: '#fff', + borderBottomLeftRadius: 4, + borderBottomRightRadius: 4, + }, +}) diff --git a/src/screens/SonglistDetail/List.js b/src/screens/SonglistDetail/List.js deleted file mode 100644 index 7dbcb8b..0000000 --- a/src/screens/SonglistDetail/List.js +++ /dev/null @@ -1,64 +0,0 @@ -import React, { useState, useCallback, useRef } from 'react' -// import { View, Text, StyleSheet, Animated, FlatList, ImageBackground } from 'react-native' -import ListDetailHeader from './Header' -import Failed from './Failed' -import { useGetter, useDispatch } from '@/store' -import OnlineList from '@/components/OnlineList' -import { LIST_ID_PLAY_TEMP } from '@/config/constant' - - -export default ({ animatePlayed }) => { - const [isListRefreshing, setIsListRefreshing] = useState(false) - const isGetListDetailFailed = useGetter('songList', 'isGetListDetailFailed') - - const selectListInfo = useGetter('songList', 'selectListInfo') - const selectListInfoRef = useRef(selectListInfo) - const listDetailData = useGetter('songList', 'listDetailData') - const getListDetail = useDispatch('songList', 'getListDetail') - const getListDetailAll = useDispatch('songList', 'getListDetailAll') - const songListSource = useGetter('songList', 'songListSource') - const setPlayList = useDispatch('player', 'setList') - - const handleListLoadMore = useCallback(() => { - if (listDetailData.isLoading || listDetailData.isEnd) return - getListDetail({ id: selectListInfoRef.current.id, page: listDetailData.page + 1 }) - }, [getListDetail, listDetailData]) - - const handleListRefresh = useCallback(() => { - setIsListRefreshing(true) - getListDetail({ id: selectListInfoRef.current.id, page: 1, isRefresh: true }).finally(() => { - setIsListRefreshing(false) - }) - }, [getListDetail]) - - const handlePlayList = useCallback(async index => { - if (!listDetailData.info.name) return - const list = await getListDetailAll({ id: selectListInfo.id, source: songListSource }) - // if (!list.length) return - setPlayList({ - list: { - list, - id: LIST_ID_PLAY_TEMP, - }, - index, - }) - }, [getListDetailAll, listDetailData.info.name, selectListInfo.id, setPlayList, songListSource]) - - return ( - <> - <OnlineList - list={animatePlayed ? listDetailData.list : []} - page={-1} - // isEnd={listDetailData.isEnd} - isListRefreshing={isListRefreshing} - onRefresh={handleListRefresh} - onLoadMore={handleListLoadMore} - onPlayList={handlePlayList} - isLoading={listDetailData.isLoading} - ListHeaderComponent={<ListDetailHeader animatePlayed={animatePlayed} />} - /> - - { isGetListDetailFailed ? <Failed /> : null } - </> - ) -} diff --git a/src/screens/SonglistDetail/MusicList.tsx b/src/screens/SonglistDetail/MusicList.tsx new file mode 100644 index 0000000..52a3b8f --- /dev/null +++ b/src/screens/SonglistDetail/MusicList.tsx @@ -0,0 +1,113 @@ +import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef } from 'react' +import OnlineList, { type OnlineListType, type OnlineListProps } from '@/components/OnlineList' +import { getListDetail, setListDetail, setListDetailInfo } from '@/core/songlist' +import songlistState from '@/store/songlist/state' +import { handlePlay } from './listAction' +import Header, { type HeaderType } from './Header' + +export interface MusicListProps { + componentId: string +} + +export interface MusicListType { + loadList: (source: LX.OnlineSource, listId: string) => void +} + +export default forwardRef<MusicListType, MusicListProps>(({ componentId }, ref) => { + const listRef = useRef<OnlineListType>(null) + const headerRef = useRef<HeaderType>(null) + const isUnmountedRef = useRef(false) + useImperativeHandle(ref, () => ({ + loadList(source, id) { + const listDetailInfo = songlistState.listDetailInfo + listRef.current?.setList([]) + if (listDetailInfo.id == id && listDetailInfo.source == source && listDetailInfo.list.length) { + requestAnimationFrame(() => { + listRef.current?.setList(listDetailInfo.list) + headerRef.current?.setInfo({ + name: (songlistState.selectListInfo.name || listDetailInfo.info.name) ?? '', + desc: songlistState.selectListInfo.desc ?? listDetailInfo.desc ?? '', + playCount: (songlistState.selectListInfo.play_count ?? listDetailInfo.info.play_count) ?? '', + imgUrl: songlistState.selectListInfo.img ?? listDetailInfo.info.img, + }) + }) + } else { + listRef.current?.setStatus('loading') + const page = 1 + setListDetailInfo(songlistState.selectListInfo.source, songlistState.selectListInfo.id) + headerRef.current?.setInfo({ + name: (songlistState.selectListInfo.name || listDetailInfo.info.name) ?? '', + desc: songlistState.selectListInfo.desc ?? listDetailInfo.desc ?? '', + playCount: (songlistState.selectListInfo.play_count ?? listDetailInfo.info.play_count) ?? '', + imgUrl: songlistState.selectListInfo.img ?? listDetailInfo.info.img, + }) + return getListDetail(id, source, page).then((listDetail) => { + const result = setListDetail(listDetail, id, page) + if (isUnmountedRef.current) return + requestAnimationFrame(() => { + headerRef.current?.setInfo({ + name: (songlistState.selectListInfo.name || listDetailInfo.info.name) ?? '', + desc: songlistState.selectListInfo.desc ?? listDetailInfo.desc ?? '', + playCount: (songlistState.selectListInfo.play_count ?? listDetailInfo.info.play_count) ?? '', + imgUrl: songlistState.selectListInfo.img ?? listDetailInfo.info.img, + }) + listRef.current?.setList(result.list) + listRef.current?.setStatus(songlistState.listDetailInfo.maxPage == page ? 'end' : 'idle') + }) + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + }, + }), []) + + useEffect(() => { + isUnmountedRef.current = false + return () => { + isUnmountedRef.current = true + } + }, []) + + + const handlePlayList: OnlineListProps['onPlayList'] = (index) => { + const listDetailInfo = songlistState.listDetailInfo + // console.log(songlistState.listDetailInfo) + void handlePlay(listDetailInfo.id, listDetailInfo.source, listDetailInfo.list, index) + } + const handleRefresh: OnlineListProps['onRefresh'] = () => { + const page = 1 + listRef.current?.setStatus('refreshing') + getListDetail(songlistState.listDetailInfo.id, songlistState.listDetailInfo.source, page, true).then((listDetail) => { + const result = setListDetail(listDetail, songlistState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(result.list) + listRef.current?.setStatus(songlistState.listDetailInfo.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + const handleLoadMore: OnlineListProps['onLoadMore'] = () => { + listRef.current?.setStatus('loading') + const page = songlistState.listDetailInfo.list.length ? songlistState.listDetailInfo.page + 1 : 1 + getListDetail(songlistState.listDetailInfo.id, songlistState.listDetailInfo.source, page).then((listDetail) => { + const result = setListDetail(listDetail, songlistState.listDetailInfo.id, page) + if (isUnmountedRef.current) return + listRef.current?.setList(result.list) + listRef.current?.setStatus(songlistState.listDetailInfo.maxPage == page ? 'end' : 'idle') + }).catch(() => { + listRef.current?.setStatus('error') + }) + } + + const header = useMemo(() => <Header ref={headerRef} componentId={componentId} />, []) + + return <OnlineList + ref={listRef} + onPlayList={handlePlayList} + onRefresh={handleRefresh} + onLoadMore={handleLoadMore} + ListHeaderComponent={header} + // progressViewOffset={} + /> +}) + diff --git a/src/screens/SonglistDetail/PlayerBar/ControlBtn.tsx b/src/screens/SonglistDetail/PlayerBar/ControlBtn.tsx new file mode 100644 index 0000000..d1b1ce3 --- /dev/null +++ b/src/screens/SonglistDetail/PlayerBar/ControlBtn.tsx @@ -0,0 +1,63 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { Icon } from '@/components/common/Icon' +import { useIsPlay } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { playNext, togglePlay } from '@/core/player/player' +import { createStyle } from '@/utils/tools' + +const BTN_SIZE = 24 +const handlePlayNext = () => { + void playNext() +} + +const PlayNextBtn = () => { + const theme = useTheme() + + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={handlePlayNext}> + <Icon name='nextMusic' color={theme['c-button-font']} size={BTN_SIZE} /> + </TouchableOpacity> + ) +} + +const TogglePlayBtn = () => { + const isPlay = useIsPlay() + const theme = useTheme() + + return ( + <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={togglePlay}> + <Icon name={isPlay ? 'pause' : 'play'} color={theme['c-button-font']} size={BTN_SIZE} /> + </TouchableOpacity> + ) +} + +export default () => { + return ( + <> + {/* <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> + <Text style={{ ...styles.cotrolBtn }}> + <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={18} /> + </Text> + </TouchableOpacity> + */} + {/* {btnPrev} */} + <TogglePlayBtn /> + <PlayNextBtn /> + </> + ) +} + + +const styles = createStyle({ + cotrolBtn: { + width: 46, + height: 46, + justifyContent: 'center', + alignItems: 'center', + + // backgroundColor: '#ccc', + shadowOpacity: 1, + textShadowRadius: 1, + }, +}) diff --git a/src/screens/SonglistDetail/PlayerBar/Pic.tsx b/src/screens/SonglistDetail/PlayerBar/Pic.tsx new file mode 100644 index 0000000..221d206 --- /dev/null +++ b/src/screens/SonglistDetail/PlayerBar/Pic.tsx @@ -0,0 +1,83 @@ +import React, { memo } from 'react' +import { View, Image, TouchableOpacity } from 'react-native' +import { navigations } from '@/navigation' +import { usePlayerMusicInfo } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { scaleSizeH } from '@/utils/pixelRatio' +import { createStyle } from '@/utils/tools' +import { BorderRadius } from '@/theme' +import commonState from '@/store/common/state' +// import playerState from '@/store/player/state' +import Text from '@/components/common/Text' +import { NAV_SHEAR_NATIVE_IDS } from '@/config/constant' + +const PIC_HEIGHT = scaleSizeH(46) + +const styles = createStyle({ + // content: { + // marginBottom: 3, + // },/ + emptyPic: { + borderRadius: BorderRadius.normal, + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + }, + text: { + paddingLeft: 2, + }, +}) + +const EmptyPic = memo(() => { + const theme = useTheme() + return ( + <View nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pic} style={{ ...styles.emptyPic, width: PIC_HEIGHT, height: PIC_HEIGHT, backgroundColor: theme['c-primary-light-900-alpha-200'] }}> + <Text size={20} color={theme['c-primary-light-400-alpha-200']}>L</Text> + <Text size={20} color={theme['c-primary-light-400-alpha-200']} style={styles.text}>X</Text> + </View> + ) +}) + +export default () => { + const musicInfo = usePlayerMusicInfo() + const handlePress = () => { + // console.log('') + // console.log(playMusicInfo) + if (!musicInfo.id) return + navigations.pushPlayDetailScreen(commonState.componentIds.home as string) + + // toast(global.i18n.t('play_detail_todo_tip'), 'long') + } + + // const handleLongPress = () => { + // const listId = playerState.playMusicInfo.listId + // if (!listId || listId == LIST_IDS.DOWNLOAD) return + // global.app_event.jumpListPosition() + // } + + // console.log('render pic') + + return ( + <TouchableOpacity onPress={handlePress} activeOpacity={0.7} > + { + musicInfo.pic + ? ( + <Image source={{ uri: musicInfo.pic }} nativeID={NAV_SHEAR_NATIVE_IDS.playDetail_pic} progressiveRenderingEnabled={true} borderRadius={2} style={{ + // ...styles.playInfoImg, + // backgroundColor: theme.primary, + width: PIC_HEIGHT, + height: PIC_HEIGHT, + }} /> + ) + : <EmptyPic /> + } + </TouchableOpacity> + ) +} + + +// const styles = StyleSheet.create({ +// playInfoImg: { + +// }, +// }) diff --git a/src/screens/SonglistDetail/PlayerBar/PlayInfo.tsx b/src/screens/SonglistDetail/PlayerBar/PlayInfo.tsx new file mode 100644 index 0000000..4ce1549 --- /dev/null +++ b/src/screens/SonglistDetail/PlayerBar/PlayInfo.tsx @@ -0,0 +1,75 @@ +import React, { memo } from 'react' +import { View } from 'react-native' + +import Progress from '@/components/player/Progress' +import Status from './Status' +import { useProgress } from '@/store/player/hook' +import { useTheme } from '@/store/theme/hook' +import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + +const FONT_SIZE = 13 + +const PlayTimeCurrent = ({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + // console.log(timeStr) + return <Text size={FONT_SIZE} color={theme['c-500']}>{timeStr}</Text> +} + +const PlayTimeMax = memo(({ timeStr }: { timeStr: string }) => { + const theme = useTheme() + return <Text size={FONT_SIZE} color={theme['c-500']}>{timeStr}</Text> +}) + +export default () => { + const theme = useTheme() + const { maxPlayTimeStr, nowPlayTimeStr, progress, maxPlayTime } = useProgress() + + return ( + <> + <View style={styles.progress}><Progress progress={progress} duration={maxPlayTime} /></View> + <View style={styles.info}> + {/* <MusicName /> */} + <View style={styles.status}> + <Status /> + </View> + <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > + <PlayTimeCurrent timeStr={nowPlayTimeStr} /> + <Text size={FONT_SIZE} color={theme['c-500']}> / </Text> + <PlayTimeMax timeStr={maxPlayTimeStr} /> + </View> + </View> + </> + ) +} + + +const styles = createStyle({ + progress: { + height: 16, + // flexGrow: 0, + flexShrink: 0, + // flexDirection: 'column', + justifyContent: 'center', + // alignItems: 'center', + // marginBottom: -1, + // backgroundColor: '#ccc', + // overflow: 'hidden', + // height: + // position: 'absolute', + // width: '100%', + // top: 0, + }, + info: { + // flex: 1, + flexDirection: 'row', + justifyContent: 'space-between', + // alignItems: 'center', + // backgroundColor: '#ccc', + }, + status: { + flexGrow: 1, + flexShrink: 1, + paddingRight: 5, + }, +}) diff --git a/src/screens/SonglistDetail/PlayerBar/Status.tsx b/src/screens/SonglistDetail/PlayerBar/Status.tsx new file mode 100644 index 0000000..12684d6 --- /dev/null +++ b/src/screens/SonglistDetail/PlayerBar/Status.tsx @@ -0,0 +1,23 @@ +import React from 'react' +import { useLrcPlay } from '@/plugins/lyric' +import { useIsPlay, useStatusText } from '@/store/player/hook' +// import { createStyle } from '@/utils/tools' +import Text from '@/components/common/Text' + + +export default () => { + const { text } = useLrcPlay() + const statusText = useStatusText() + const isPlay = useIsPlay() + // console.log('render status') + + const status = isPlay ? text : statusText + + return <Text numberOfLines={1} size={12}>{status}</Text> +} + +// const styles = createStyle({ +// text: { +// fontSize: 10, +// }, +// }) diff --git a/src/screens/SonglistDetail/PlayerBar/Title.tsx b/src/screens/SonglistDetail/PlayerBar/Title.tsx new file mode 100644 index 0000000..ab01073 --- /dev/null +++ b/src/screens/SonglistDetail/PlayerBar/Title.tsx @@ -0,0 +1,66 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { navigations } from '@/navigation' +import { usePlayerMusicInfo } from '@/store/player/hook' +// import { toast } from '@/utils/tools' +import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' +import commonState from '@/store/common/state' +// import playerState from '@/store/player/state' +import Text from '@/components/common/Text' +// import { LIST_IDS } from '@/config/constant' + + +export default () => { + // const { t } = useTranslation() + const musicInfo = usePlayerMusicInfo() + const downloadFileName = useSettingValue('download.fileName') + const theme = useTheme() + + const handlePress = () => { + // console.log('') + // console.log(playMusicInfo) + if (!musicInfo.id) return + navigations.pushPlayDetailScreen(commonState.componentIds.home as string) + // toast(global.i18n.t('play_detail_todo_tip'), 'long') + } + + // const handleLongPress = () => { + // const listId = playerState.playMusicInfo.listId + // if (!listId || listId == LIST_IDS.DOWNLOAD) return + // global.app_event.jumpListPosition() + // } + // console.log('render title') + + const title = musicInfo.id ? downloadFileName.replace('歌手', musicInfo.singer).replace('歌名', musicInfo.name) : '' + // console.log(playMusicInfo) + return ( + <TouchableOpacity style={{ width: '100%' }} onPress={handlePress} activeOpacity={0.7} > + <Text color={theme['c-font-label']} numberOfLines={1}>{title}</Text> + </TouchableOpacity> + ) +} +// const Singer = () => { +// const playMusicInfo = useGetter('player', 'playMusicInfo') +// return ( +// <View style={{ flexGrow: 0, flexShrink: 0 }}> +// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> +// {playMusicInfo ? playMusicInfo.musicInfo.singer : ''} +// </Text> +// </View> +// ) +// } +// const MusicName = () => { +// const playMusicInfo = useGetter('player', 'playMusicInfo') +// return ( +// <View style={{ flexGrow: 0, flexShrink: 1 }}> +// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> +// {playMusicInfo ? playMusicInfo.musicInfo.name : '^-^'} +// </Text> +// </View> +// ) +// } + +// const styles = StyleSheet.create({ + +// }) diff --git a/src/screens/SonglistDetail/PlayerBar/index.tsx b/src/screens/SonglistDetail/PlayerBar/index.tsx new file mode 100644 index 0000000..fec054c --- /dev/null +++ b/src/screens/SonglistDetail/PlayerBar/index.tsx @@ -0,0 +1,86 @@ +import React, { memo } from 'react' +import { View } from 'react-native' +// import { useKeyboard } from '@/utils/hooks' + +import Pic from './Pic' +import Title from './Title' +import PlayInfo from './PlayInfo' +import ControlBtn from './ControlBtn' +import { createStyle } from '@/utils/tools' +// import { useSettingValue } from '@/store/setting/hook' +import { useTheme } from '@/store/theme/hook' + + +export default memo(() => { + // const { onLayout, ...layout } = useLayout() + // const { keyboardShown } = useKeyboard() + const theme = useTheme() + // const autoHidePlayBar = useSettingValue('common.autoHidePlayBar') + + // console.log('render pb') + + return ( + <View style={{ ...styles.container, backgroundColor: theme['c-content-background'] }}> + <Pic /> + <View style={styles.center}> + <Title /> + {/* <View style={{ ...styles.row, justifyContent: 'space-between' }}> + <PlayTime /> + </View> */} + <PlayInfo /> + </View> + <View style={styles.right}> + <ControlBtn /> + </View> + </View> + ) +}) + + +const styles = createStyle({ + container: { + width: '100%', + // height: 100, + // paddingTop: progressContentPadding, + // marginTop: -progressContentPadding, + // backgroundColor: 'rgba(0, 0, 0, .1)', + // borderTopWidth: BorderWidths.normal2, + paddingTop: 5, + paddingBottom: 5, + paddingLeft: 5, + // backgroundColor: AppColors.primary, + // backgroundColor: 'red', + borderTopLeftRadius: 6, + borderTopRightRadius: 6, + flexDirection: 'row', + alignItems: 'center', + elevation: 10, + }, + left: { + // borderRadius: 3, + flexGrow: 0, + flexShrink: 0, + }, + center: { + flexDirection: 'column', + flexGrow: 1, + flexShrink: 1, + paddingLeft: 5, + // height: '100%', + // justifyContent: 'space-evenly', + // height: 48, + }, + right: { + flexDirection: 'row', + alignItems: 'center', + flexGrow: 0, + flexShrink: 0, + paddingLeft: 5, + paddingRight: 5, + }, + // row: { + // flexDirection: 'row', + // flexGrow: 0, + // flexShrink: 0, + // }, +}) diff --git a/src/screens/SonglistDetail/PlayerPortrait/components/ControlBtn.js b/src/screens/SonglistDetail/PlayerPortrait/components/ControlBtn.js deleted file mode 100644 index df82381..0000000 --- a/src/screens/SonglistDetail/PlayerPortrait/components/ControlBtn.js +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { Icon } from '@/components/common/Icon' -import { useGetter, useDispatch } from '@/store' -import { STATUS } from '@/store/modules/player' - - -export default () => { - const playStatus = useGetter('player', 'status') - const playNext = useDispatch('player', 'playNext') - // const playPrev = useDispatch('player', 'playPrev') - // const playMusicInfo = useGetter('player', 'playMusicInfo') - const pauseMusic = useDispatch('player', 'pauseMusic') - const playMusic = useDispatch('player', 'playMusic') - const theme = useGetter('common', 'theme') - - // const togglePlayMethod = useGetter('common', 'togglePlayMethod') - // const setPlayNextMode = useDispatch('common', 'setPlayNextMode') - // const toggleNextPlayMode = useCallback(() => { - // let index = playNextModes.indexOf(togglePlayMethod) - // if (++index >= playNextModes.length) index = -1 - // setPlayNextMode(playNextModes[index] || '') - // }, [setPlayNextMode, togglePlayMethod, playNextModes]) - - // const btnPrev = useMemo(() => ( - // <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playPrev}> - // <Icon name='prevMusic' style={{ color: theme.secondary10 }} size={20} /> - // </TouchableOpacity> - // ), [playPrev, theme]) - - const togglePlay = useCallback(playStatus => { - switch (playStatus) { - case STATUS.playing: - pauseMusic() - break - case STATUS.pause: - case STATUS.stop: - case STATUS.none: - playMusic() - break - // default: - // playMusic(playMusicInfo) - // break - } - }, []) - const btnPlay = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={() => togglePlay(playStatus)}> - <Icon name={playStatus == STATUS.playing ? 'pause' : 'play'} style={{ color: theme.secondary10 }} size={24} /> - </TouchableOpacity> - ), [playStatus, theme, togglePlay]) - const btnNext = useMemo(() => ( - <TouchableOpacity style={{ ...styles.cotrolBtn }} activeOpacity={0.5} onPress={playNext}> - <Icon name='nextMusic' style={{ color: theme.secondary10 }} size={24} /> - </TouchableOpacity> - ), [playNext, theme]) - - return ( - <> - {/* <TouchableOpacity activeOpacity={0.5} onPress={toggleNextPlayMode}> - <Text style={{ ...styles.cotrolBtn }}> - <Icon name={playModeIcon} style={{ color: theme.secondary10 }} size={18} /> - </Text> - </TouchableOpacity> - */} - {/* {btnPrev} */} - {btnPlay} - {btnNext} - </> - ) -} - - -const styles = StyleSheet.create({ - cotrolBtn: { - width: 50, - height: 50, - justifyContent: 'center', - alignItems: 'center', - - // backgroundColor: '#ccc', - shadowOpacity: 1, - textShadowRadius: 1, - }, -}) diff --git a/src/screens/SonglistDetail/PlayerPortrait/components/Pic.js b/src/screens/SonglistDetail/PlayerPortrait/components/Pic.js deleted file mode 100644 index 8d763f8..0000000 --- a/src/screens/SonglistDetail/PlayerPortrait/components/Pic.js +++ /dev/null @@ -1,49 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect, useState } from 'react' -import { Image, TouchableOpacity } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { navigations } from '@/navigation' - -export default () => { - const playMusicInfo = useGetter('player', 'playMusicInfo') - const theme = useGetter('common', 'theme') - // const { t } = useTranslation() - const componentIds = useGetter('common', 'componentIds') - const musicInfo = useMemo(() => { - return (playMusicInfo && playMusicInfo.musicInfo) || {} - }, [playMusicInfo]) - const handlePress = useCallback(() => { - // console.log('') - // console.log(playMusicInfo) - if (!playMusicInfo) return - navigations.pushPlayDetailScreen(componentIds.home, musicInfo.songmid) - // toast(t('play_detail_todo_tip'), 'long') - }, [componentIds.home, musicInfo, playMusicInfo]) - - // const handleLongPress = useCallback(() => { - // if (!playMusicInfo || playMusicInfo.listId == LIST_ID_PLAY_TEMP || playMusicInfo.listId == LIST_ID_PLAY_LATER) return - // setNavActiveIndex(NAV_VIEW_NAMES.list) - // setPrevSelectListId(playMusicInfo.listId) - // global.requestAnimationFrame(() => { - // setJumpPosition(true) - // }) - // }, [playMusicInfo, setJumpPosition, setNavActiveIndex, setPrevSelectListId]) - - const component = useMemo(() => ( - <TouchableOpacity onPress={handlePress} activeOpacity={0.7} > - <Image source={{ uri: musicInfo.img }} nativeID={`pic${musicInfo.songmid}`} progressiveRenderingEnabled={true} borderRadius={2} style={{ - // ...styles.playInfoImg, - backgroundColor: theme.primary, - width: 50, - height: 50, - }} /> - </TouchableOpacity> - ), [handlePress, musicInfo, theme]) - return component -} - - -// const styles = StyleSheet.create({ -// playInfoImg: { - -// }, -// }) diff --git a/src/screens/SonglistDetail/PlayerPortrait/components/PlayInfo.js b/src/screens/SonglistDetail/PlayerPortrait/components/PlayInfo.js deleted file mode 100644 index 3de417a..0000000 --- a/src/screens/SonglistDetail/PlayerPortrait/components/PlayInfo.js +++ /dev/null @@ -1,56 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, View } from 'react-native' -import { usePlayTime } from '@/utils/hooks' -import { useGetter } from '@/store' - -import Progress from '@/components/player/Progress' -import Status from './Status' - -const PlayTimeCurrent = ({ timeStr }) => { - const theme = useGetter('common', 'theme') - // console.log(timeStr) - return <Text style={{ fontSize: 12, color: theme.normal10 }}>{timeStr}</Text> -} - -const PlayTimeMax = memo(({ timeStr }) => { - const theme = useGetter('common', 'theme') - return <Text style={{ fontSize: 12, color: theme.normal10 }}>{timeStr}</Text> -}) - -export default () => { - const { curTimeStr, maxTimeStr, progress, bufferedProgress, duration } = usePlayTime() - const theme = useGetter('common', 'theme') - - return ( - <> - <View style={styles.progress}><Progress progress={progress} bufferedProgress={bufferedProgress} duration={duration} /></View> - <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'flex-end' }}> - {/* <MusicName /> */} - <View style={{ flexGrow: 1, flexShrink: 1, paddingRight: 5 }} > - <Status /> - </View> - <View style={{ flexGrow: 0, flexShrink: 0, flexDirection: 'row' }} > - <PlayTimeCurrent timeStr={curTimeStr} /> - <Text style={{ fontSize: 12, color: theme.normal }}> / </Text> - <PlayTimeMax timeStr={maxTimeStr} /> - </View> - </View> - </> - ) -} - - -const styles = StyleSheet.create({ - progress: { - height: 14, - flexGrow: 1, - flexShrink: 0, - flexDirection: 'column', - justifyContent: 'center', - marginBottom: -2, - // height: - // position: 'absolute', - // width: '100%', - // top: 0, - }, -}) diff --git a/src/screens/SonglistDetail/PlayerPortrait/components/Status.js b/src/screens/SonglistDetail/PlayerPortrait/components/Status.js deleted file mode 100644 index 9ea771a..0000000 --- a/src/screens/SonglistDetail/PlayerPortrait/components/Status.js +++ /dev/null @@ -1,25 +0,0 @@ -import React, { memo, useMemo } from 'react' -import { Text } from 'react-native' -import { useGetter } from '@/store' -import { STATUS } from '@/store/modules/player' -import { useLrcPlay } from '@/plugins/lyric' - - -export default memo(() => { - const theme = useGetter('common', 'theme') - const playStatus = useGetter('player', 'status') - const statusText = useGetter('player', 'statusText') - const { text } = useLrcPlay() - const status = useMemo(() => playStatus == STATUS.playing - ? text - : ( - (playStatus == STATUS.pause || playStatus == STATUS.stop) && text - ? text - : statusText - ), [playStatus, statusText, text]) - return <Text numberOfLines={1} style={{ fontSize: 10, color: theme.normal10 }}>{status}</Text> -}) - -// const styles = StyleSheet.create({ - -// }) diff --git a/src/screens/SonglistDetail/PlayerPortrait/components/Title.js b/src/screens/SonglistDetail/PlayerPortrait/components/Title.js deleted file mode 100644 index 442b84b..0000000 --- a/src/screens/SonglistDetail/PlayerPortrait/components/Title.js +++ /dev/null @@ -1,61 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { Text, StyleSheet, TouchableOpacity } from 'react-native' -import { useGetter, useDispatch } from '@/store' -import { navigations } from '@/navigation' - - -export default () => { - const playMusicInfo = useGetter('player', 'playMusicInfo') - const theme = useGetter('common', 'theme') - // const { t } = useTranslation() - const componentIds = useGetter('common', 'componentIds') - const musicInfo = useMemo(() => { - return (playMusicInfo && playMusicInfo.musicInfo) || {} - }, [playMusicInfo]) - const handlePress = useCallback(() => { - // console.log('') - // console.log(playMusicInfo) - if (!playMusicInfo) return - navigations.pushPlayDetailScreen(componentIds.home, musicInfo.songmid) - // toast(t('play_detail_todo_tip'), 'long') - }, [componentIds.home, musicInfo, playMusicInfo]) - - const downloadFileName = useGetter('common', 'downloadFileName') - const title = useMemo(() => { - let title = '^-^' - if (playMusicInfo && playMusicInfo.musicInfo) { - title = downloadFileName.replace('歌手', playMusicInfo.musicInfo.singer).replace('歌名', playMusicInfo.musicInfo.name) - } - return title - }, [downloadFileName, playMusicInfo]) - // console.log(playMusicInfo) - return ( - <TouchableOpacity style={{ width: '100%' }} onPress={handlePress} activeOpacity={0.7} > - <Text style={{ fontSize: 14, color: theme.normal }} numberOfLines={1}>{title}</Text> - </TouchableOpacity> - ) -} -// const Singer = () => { -// const playMusicInfo = useGetter('player', 'playMusicInfo') -// return ( -// <View style={{ flexGrow: 0, flexShrink: 0 }}> -// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> -// {playMusicInfo ? playMusicInfo.musicInfo.singer : ''} -// </Text> -// </View> -// ) -// } -// const MusicName = () => { -// const playMusicInfo = useGetter('player', 'playMusicInfo') -// return ( -// <View style={{ flexGrow: 0, flexShrink: 1 }}> -// <Text style={{ width: '100%', color: AppColors.normal }} numberOfLines={1}> -// {playMusicInfo ? playMusicInfo.musicInfo.name : '^-^'} -// </Text> -// </View> -// ) -// } - -// const styles = StyleSheet.create({ - -// }) diff --git a/src/screens/SonglistDetail/PlayerPortrait/index.js b/src/screens/SonglistDetail/PlayerPortrait/index.js deleted file mode 100644 index 5640c0a..0000000 --- a/src/screens/SonglistDetail/PlayerPortrait/index.js +++ /dev/null @@ -1,88 +0,0 @@ -import React, { useCallback, memo, useMemo, useEffect } from 'react' -import { View, Text, StyleSheet } from 'react-native' -import { useLayout, useKeyboard } from '@/utils/hooks' -import { useGetter, useDispatch } from '@/store' -// import { BorderWidths } from '@/theme' - -import Pic from './components/Pic' -import Title from './components/Title' -import PlayInfo from './components/PlayInfo' -import ControlBtn from './components/ControlBtn' - - -export default memo(() => { - // const { onLayout, ...layout } = useLayout() - const { keyboardShown } = useKeyboard() - const theme = useGetter('common', 'theme') - const autoHidePlayBar = useGetter('common', 'autoHidePlayBar') - const componentIds = useGetter('common', 'componentIds') - - - const playerComponent = useMemo(() => ( - <View style={{ ...styles.container, backgroundColor: theme.primary }}> - <View style={styles.left} elevation={1}><Pic /></View> - <View style={styles.center}> - <View style={{ ...styles.row, justifyContent: 'space-between', fontSize: 12 }}> - <Title /> - {/* <PlayTime /> */} - </View> - {componentIds.playDetail ? null : <PlayInfo />} - </View> - <View style={styles.right}> - <ControlBtn /> - </View> - </View> - ), [theme, componentIds]) - - // console.log(layout) - - return autoHidePlayBar && keyboardShown ? null : playerComponent -}) - -const styles = StyleSheet.create({ - container: { - width: '100%', - // height: 59, - // paddingTop: progressContentPadding, - // marginTop: -progressContentPadding, - // backgroundColor: 'rgba(0, 0, 0, .1)', - // borderTopWidth: BorderWidths.normal2, - paddingTop: 5, - paddingBottom: 5, - paddingLeft: 5, - // backgroundColor: AppColors.primary, - // backgroundColor: 'red', - borderTopLeftRadius: 6, - borderTopRightRadius: 6, - flexDirection: 'row', - alignItems: 'center', - elevation: 10, - }, - left: { - borderRadius: 3, - flexGrow: 0, - flexShrink: 0, - }, - center: { - flexDirection: 'column', - flexGrow: 1, - flexShrink: 1, - paddingLeft: 5, - height: '100%', - // justifyContent: 'space-evenly', - // height: 48, - }, - right: { - flexDirection: 'row', - alignItems: 'center', - flexGrow: 0, - flexShrink: 0, - paddingLeft: 5, - paddingRight: 5, - }, - row: { - flexDirection: 'row', - flexGrow: 0, - flexShrink: 0, - }, -}) diff --git a/src/screens/SonglistDetail/index.js b/src/screens/SonglistDetail/index.js deleted file mode 100644 index b488385..0000000 --- a/src/screens/SonglistDetail/index.js +++ /dev/null @@ -1,38 +0,0 @@ -import React, { useState, useRef, useEffect, useCallback, useMemo } from 'react' -import { View } from 'react-native' -import List from './List' -import { useGetter, useDispatch } from '@/store' -import PlayerPortrait from './PlayerPortrait' -import { useNavigationComponentDidAppear } from '@/navigation' -import StatusBar from '@/components/common/StatusBar' - - -export default ({ componentId }) => { - const selectListInfo = useGetter('songList', 'selectListInfo') - const getListDetail = useDispatch('songList', 'getListDetail') - const theme = useGetter('common', 'theme') - const [animatePlayed, setAnimatPlayed] = useState(false) - - const setComponentId = useDispatch('common', 'setComponentId') - - useEffect(() => { - setAnimatPlayed(false) - setComponentId({ name: 'songlistDetail', id: componentId }) - getListDetail({ id: selectListInfo.id, page: 1 }) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - useNavigationComponentDidAppear(componentId, () => { - setAnimatPlayed(true) - }) - - return ( - <View style={{ flex: 1, backgroundColor: theme.primary, paddingTop: StatusBar.currentHeight }}> - <StatusBar /> - <View style={{ flex: 1 }}> - <List animatePlayed={animatePlayed} /> - </View> - <PlayerPortrait /> - </View> - ) -} diff --git a/src/screens/SonglistDetail/index.tsx b/src/screens/SonglistDetail/index.tsx new file mode 100644 index 0000000..7bd1aab --- /dev/null +++ b/src/screens/SonglistDetail/index.tsx @@ -0,0 +1,49 @@ +import React, { useEffect, useRef } from 'react' + +import MusicList, { type MusicListType } from './MusicList' +import PageContent from '@/components/PageContent' +import StatusBar from '@/components/common/StatusBar' +import { setComponentId } from '@/core/common' +import { COMPONENT_IDS } from '@/config/constant' +import songlistState from '@/store/songlist/state' +import PlayerBar from './PlayerBar' + + +export default ({ componentId }: { componentId: string }) => { + const musicListRef = useRef<MusicListType>(null) + const isUnmountedRef = useRef(false) + + useEffect(() => { + setComponentId(COMPONENT_IDS.songlistDetail, componentId) + + isUnmountedRef.current = false + + musicListRef.current?.loadList(songlistState.selectListInfo.source, songlistState.selectListInfo.id) + + + return () => { + isUnmountedRef.current = true + } + }, []) + + + return ( + <PageContent> + <StatusBar /> + <MusicList ref={musicListRef} componentId={componentId} /> + <PlayerBar /> + </PageContent> + ) +} + +// const styles = createStyle({ +// container: { +// width: '100%', +// flex: 1, +// flexDirection: 'row', +// borderTopWidth: BorderWidths.normal, +// }, +// content: { +// flex: 1, +// }, +// }) diff --git a/src/screens/SonglistDetail/listAction.ts b/src/screens/SonglistDetail/listAction.ts new file mode 100644 index 0000000..6b1c57e --- /dev/null +++ b/src/screens/SonglistDetail/listAction.ts @@ -0,0 +1,54 @@ +import { createList, setTempList } from '@/core/list' +import { playList } from '@/core/player/player' +import { getListDetail, getListDetailAll } from '@/core/songlist' +import { LIST_IDS } from '@/config/constant' +import listState from '@/store/list/state' +import syncSourceList from '@/core/syncSourceList' +import { confirmDialog, toast } from '@/utils/tools' +import { type Source } from '@/store/songlist/state' + + +export const handlePlay = async(listId: string, source: Source, list?: LX.Music.MusicInfoOnline[], index = 0) => { + let isPlayingList = false + // console.log(list) + if (!list?.length) list = (await getListDetail(listId, source, 1)).list + if (list?.length) { + await setTempList(listId, [...list]) + void playList(LIST_IDS.TEMP, index) + isPlayingList = true + } + const fullList = await getListDetailAll(source, listId) + if (!fullList.length) return + if (isPlayingList) { + if (listState.tempListMeta.id == listId) { + await setTempList(listId, [...fullList]) + } + } else { + await setTempList(listId, [...fullList]) + void playList(LIST_IDS.TEMP, index) + } +} + +export const handleCollect = async(listId: string, source: Source, name: string) => { + const targetList = listState.userList.find(l => l.id == listId) + if (targetList) { + const confirm = await confirmDialog({ + message: global.i18n.t('duplicate_list_tip', { name: targetList.name }), + cancelButtonText: global.i18n.t('list_import_part_button_cancel'), + confirmButtonText: global.i18n.t('confirm_button_text'), + }) + if (!confirm) return + void syncSourceList(targetList) + return + } + + const list = await getListDetailAll(source, listId) + await createList({ + name, + id: listId, + list, + source, + sourceListId: listId, + }) + toast(global.i18n.t('collect_success')) +} diff --git a/src/screens/index.js b/src/screens/index.ts similarity index 100% rename from src/screens/index.js rename to src/screens/index.ts diff --git a/src/store/.bak/actions/common.js b/src/store/.bak/actions/common.js deleted file mode 100644 index 09b20e7..0000000 --- a/src/store/.bak/actions/common.js +++ /dev/null @@ -1,23 +0,0 @@ -export const TYPES = { - updateSetting: 'updateSetting', - updateNavHomeViewPageIndex: 'updateNavHomeViewPageIndex', -} - -export const updateSetting = setting => { - return { - type: TYPES.updateSetting, - payload: setting, - } -} - -export const updateNavHomeViewPageIndex = index => ({ - type: TYPES.updateNavHomeViewPageIndex, - payload: index, -}) - -// export const changeCountAsync = count => (dispatch, getState) => { -// console.log(getState()) -// setTimeout(() => { -// dispatch(changeCount(count)) -// }, 1000) -// } diff --git a/src/store/.bak/actions/counts.js b/src/store/.bak/actions/counts.js deleted file mode 100644 index d266a37..0000000 --- a/src/store/.bak/actions/counts.js +++ /dev/null @@ -1,23 +0,0 @@ -// import { httpFetch } from '../../utils/request' - -export const TYPES = { - COUNTER_CHANGE: 'COUNTER_CHANGE', -} - -export const changeCount = count => { - return { - type: TYPES.COUNTER_CHANGE, - payload: count, - } -} - -export const changeCountAsync = count => (dispatch, getState) => { - // console.log(getState()) - // const { promise } = httpFetch('https://cdn.stsky.cn/lx-music/desktop/version.json') - // promise.then(resp => { - // console.log(resp) - // }) - setTimeout(() => { - dispatch(changeCount(count)) - }, 1000) -} diff --git a/src/store/.bak/actions/search.js b/src/store/.bak/actions/search.js deleted file mode 100644 index 561029f..0000000 --- a/src/store/.bak/actions/search.js +++ /dev/null @@ -1,76 +0,0 @@ -import music from '../../../utils/music' - -export const TYPES = { - loading: 'loading', - setText: 'setText', - addHistory: 'addHistory', - setList: 'setList', - setLists: 'setLists', - clearList: 'clearList', - removeHistory: 'removeHistory', - clearHistory: 'clearHistory', -} - -const sources = [] -for (const source of music.sources) { - const musicSearch = music[source.id].musicSearch - if (!musicSearch) continue - sources.push(source) -} - -export const search = ({ text, page, limit }) => (dispatch, getState) => { - dispatch({ type: TYPES.setText, payload: text }) - dispatch({ type: TYPES.addHistory, payload: text }) - - const state = getState() - - if (state.common.setting.search.searchSource == 'all') { - const task = [] - for (const source of sources) { - if (source.id == 'all') continue - dispatch({ type: TYPES.loading, payload: true }) - task.push(music[source.id].musicSearch.search(text, page).catch(error => { - console.log(error) - return { - allPage: 1, - limit: 30, - list: [], - source: source.id, - total: 0, - } - })) - } - return Promise.all(task).then(results => dispatch({ type: TYPES.setLists, payload: { results, page } })) - .finally(() => dispatch({ type: TYPES.loading, payload: false })) - } else { - dispatch({ type: TYPES.loading, payload: true }) - return (music[state.common.setting.search.searchSource]?.musicSearch.search(text, page, limit) ?? Promise.reject(new Error('source not found'))).catch(error => { - console.log(error) - return { - allPage: 1, - limit: 30, - list: [], - source: state.common.setting.search.searchSource, - total: 0, - } - }).then(data => dispatch({ type: TYPES.setList, payload: { page, ...data } })) - .finally(() => dispatch({ type: TYPES.loading, payload: false })) - } -} - -export const setText = text => ({ type: TYPES.setText, payload: text }) - -export const clearList = () => ({ - type: TYPES.clearList, -}) -export const addHistory = text => ({ - type: TYPES.addHistory, - payload: text, -}) -export const removeHistory = index => ({ - type: TYPES.addHistory, - payload: index, -}) -export const clearHistory = () => ({ - type: TYPES.addHistory, -}) diff --git a/src/store/.bak/reducers/common.js b/src/store/.bak/reducers/common.js deleted file mode 100644 index 66fecee..0000000 --- a/src/store/.bak/reducers/common.js +++ /dev/null @@ -1,34 +0,0 @@ -import { initSetting } from '../../../config' -import { TYPES } from '../actions/common' - -const initialState = { - ...initSetting(), - nav: { - homeViewPageIndex: 0, - }, -} - -const mutations = { - [TYPES.updateSetting](state, setting) { - return { - ...state, - setting: { - ...setting, - }, - } - }, - [TYPES.updateNavHomeViewPageIndex](state, index) { - return { - ...state, - nav: { - ...state.nav, - homeViewPageIndex: index, - }, - } - }, -} - -export default (state = initialState, action) => - mutations[action.type] - ? mutations[action.type](state, action.payload) - : state diff --git a/src/store/.bak/reducers/count.js b/src/store/.bak/reducers/count.js deleted file mode 100644 index 75f8125..0000000 --- a/src/store/.bak/reducers/count.js +++ /dev/null @@ -1,19 +0,0 @@ -import { TYPES } from '../actions/counts' - -const initialState = { - count: 0, -} - -const countReducer = (state = initialState, action) => { - switch (action.type) { - case TYPES.COUNTER_CHANGE: - return { - ...state, - count: action.payload, - } - default: - return state - } -} - -export default countReducer diff --git a/src/store/.bak/reducers/index.js b/src/store/.bak/reducers/index.js deleted file mode 100644 index 785722c..0000000 --- a/src/store/.bak/reducers/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import { persistCombineReducers } from 'redux-persist' -import AsyncStorage from '@react-native-async-storage/async-storage' - -import common from './common' -import search from './search' -import count from './count' - -const config = { - key: 'LIFTED_REDUX_STORE', - storage: AsyncStorage, -} - -const appReducer = persistCombineReducers(config, { - common, - search, - count, -}) - -export default (state, action) => appReducer(state, action) diff --git a/src/store/.bak/reducers/search.js b/src/store/.bak/reducers/search.js deleted file mode 100644 index 40197ad..0000000 --- a/src/store/.bak/reducers/search.js +++ /dev/null @@ -1,220 +0,0 @@ -import { TYPES } from '../actions/search' - -import music from '../../../utils/music' - -let historyList -if (historyList == null) { - historyList = [] - // electronStore_data.set('searchHistoryList', historyList) -} - -const sources = [] -const sourceList = {} -const sourceMaxPage = {} -for (const source of music.sources) { - const musicSearch = music[source.id].musicSearch - if (!musicSearch) continue - sources.push(source) - sourceList[source.id] = { - page: 1, - allPage: 0, - limit: 30, - total: 0, - list: [], - } - sourceMaxPage[source.id] = 0 -} - -const initialState = { - isLoading: false, - sourceList, - list: [], - text: '', - page: 1, - limit: 30, - allPage: 1, - total: 0, - sourceMaxPage, - historyList, -} - -sources.push({ - id: 'all', - name: '聚合搜索', -}) - -// https://blog.csdn.net/xcxy2015/article/details/77164126#comments -const similar = (a, b) => { - if (!a || !b) return 0 - if (a.length > b.length) { // 保证 a <= b - const t = b - b = a - a = t - } - const al = a.length - const bl = b.length - const mp = [] // 一个表 - let i, j, ai, lt, tmp // ai:字符串a的第i个字符。 lt:左上角的值。 tmp:暂存新的值。 - for (i = 0; i <= bl; i++) mp[i] = i - for (i = 1; i <= al; i++) { - ai = a.charAt(i - 1) - lt = mp[0] - mp[0] = mp[0] + 1 - for (j = 1; j <= bl; j++) { - tmp = Math.min(mp[j] + 1, mp[j - 1] + 1, lt + (ai == b.charAt(j - 1) ? 0 : 1)) - lt = mp[j] - mp[j] = tmp - } - } - return 1 - (mp[bl] / bl) -} - -const sortInsert = (arr, data) => { - const key = data.num - let left = 0 - let right = arr.length - 1 - - while (left <= right) { - const middle = parseInt((left + right) / 2) - if (key == arr[middle]) { - left = middle - break - } else if (key < arr[middle].num) { - right = middle - 1 - } else { - left = middle + 1 - } - } - while (left > 0) { - if (arr[left - 1].num != key) break - left-- - } - - arr.splice(left, 0, data) -} - -const handleSortList = (list, keyword) => { - const arr = [] - for (const item of list) { - sortInsert(arr, { - num: similar(keyword, `${item.name} ${item.singer}`), - data: item, - }) - } - return arr.map(item => item.data).reverse() -} - -const filterList = list => { - const set = new Set() - for (let i = list.length - 1; i > -1; i--) { - const item = list[i] - if (set.has(item.songmid)) { - list.splice(i, 1) - } else { - set.add(item.songmid) - } - } - return list -} - -const mutations = { - [TYPES.loading](state, isLoading) { - return { - ...state, - isLoading, - } - }, - [TYPES.setText](state, text) { - return { - ...state, - text, - } - }, - [TYPES.addHistory](state, text) { - let historyList = [...state.historyList] - const index = historyList.indexOf(text) - if (index > -1) historyList.splice(index, 1) - if (historyList.length >= 15) historyList = historyList.slice(0, 14) - historyList.unshift(text) - return { - ...state, - historyList, - } - }, - [TYPES.setList](state, datas) { - const source = { ...state.sourceList[datas.source] } - source.list = datas.page > 1 ? filterList([...source.list, ...datas.list]) : datas.list - source.total = datas.total - source.allPage = datas.allPage - source.page = datas.page - source.limit = datas.limit - - return { - ...state, - sourceList: { - ...state.sourceList, - [datas.source]: source, - }, - } - }, - [TYPES.setLists](state, { results, page }) { - const pages = [] - let total = 0 - let limit = 0 - const list = [] - state = { ...state } - state.sourceMaxPage = { ...state.sourceMaxPage } - for (const source of results) { - sourceMaxPage[source.source] = source.allPage - if (source.allPage < page) continue - list.push(...source.list) - pages.push(source.allPage) - total += source.total - limit += source.limit - } - state.allPage = Math.max(...pages) - state.total = total - state.limit = limit - state.page = page - state.list = page > 1 ? filterList([...state.list, ...handleSortList(list, state.text)]) : handleSortList(list, state.text) - return state - }, - [TYPES.clearList](state) { - state = { ...state } - state.sourceMaxPage = { ...state.sourceMaxPage } - state.sourceList = { ...state.sourceList } - for (const source of Object.keys(state.sourceList)) { - state.sourceList[source] = { ...state.sourceList[source] } - state.sourceList[source].list = [] - state.sourceList[source].page = 0 - state.sourceList[source].allPage = 0 - state.sourceList[source].total = 0 - state.sourceMaxPage[source] = 0 - } - state.list = [] - state.page = 0 - state.allPage = 0 - state.total = 0 - state.text = '' - return state - }, - [TYPES.removeHistory](state, index) { - const historyList = [...state.historyList] - historyList.splice(index, 1) - return { - ...state, - historyList, - } - }, - [TYPES.clearHistory](state) { - return { - ...state, - historyList: [], - } - }, -} - -export default (state = initialState, action) => - mutations[action.type] - ? mutations[action.type](state, action.payload) - : state diff --git a/src/store/Provider/Provider.js b/src/store/Provider/Provider.js deleted file mode 100644 index dab0294..0000000 --- a/src/store/Provider/Provider.js +++ /dev/null @@ -1,32 +0,0 @@ -import React, { PureComponent } from 'react' -import PropTypes from 'prop-types' -import { Provider } from 'react-redux' -import createStore from '../store' - -let store - -class AppStoreProvider extends PureComponent { - getChildContext() { - return { - store, - } - } - - static childContextTypes = { - store: PropTypes.shape({}), - }; - - render() { - const { children } = this.props - - store = store || createStore() - - return ( - <Provider store={store}> - {children} - </Provider> - ) - } -} - -export default AppStoreProvider diff --git a/src/store/Provider/Provider.tsx b/src/store/Provider/Provider.tsx new file mode 100644 index 0000000..5da51e9 --- /dev/null +++ b/src/store/Provider/Provider.tsx @@ -0,0 +1,27 @@ +// import React, { PureComponent } from 'react' +// import PropTypes from 'prop-types' +// import { Provider } from 'react-redux' +// import { store } from '../store' + + +// class AppStoreProvider extends PureComponent<{ children: any }> { +// getChildContext() { +// return { +// store, +// } +// } + +// static childContextTypes = { +// store: PropTypes.shape({}), +// } + +// render() { +// return ( +// <Provider store={store}> +// {this.props.children} +// </Provider> +// ) +// } +// } + +// export default AppStoreProvider diff --git a/src/store/Provider/ThemeProvider.tsx b/src/store/Provider/ThemeProvider.tsx new file mode 100644 index 0000000..bb1e593 --- /dev/null +++ b/src/store/Provider/ThemeProvider.tsx @@ -0,0 +1,23 @@ +import React, { memo, useEffect, useState } from 'react' + +import themeState, { ThemeContext } from '../theme/state' + + +export default memo(({ children }: { + children: React.ReactNode +}) => { + const [theme, setTheme] = useState(themeState.theme) + + useEffect(() => { + global.state_event.on('themeUpdated', setTheme) + return () => { + global.state_event.off('themeUpdated', setTheme) + } + }, []) + + return ( + <ThemeContext.Provider value={theme}> + {children} + </ThemeContext.Provider> + ) +}) diff --git a/src/store/Provider/index.js b/src/store/Provider/index.js deleted file mode 100644 index 4c1b746..0000000 --- a/src/store/Provider/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default as Provider } from './Provider' diff --git a/src/store/Provider/index.ts b/src/store/Provider/index.ts new file mode 100644 index 0000000..6a21de2 --- /dev/null +++ b/src/store/Provider/index.ts @@ -0,0 +1 @@ +export { default as Provider } from './ThemeProvider' diff --git a/src/store/common/action.ts b/src/store/common/action.ts new file mode 100644 index 0000000..ed9153d --- /dev/null +++ b/src/store/common/action.ts @@ -0,0 +1,29 @@ +import state, { type InitState } from './state' +import { type COMPONENT_IDS } from '@/config/constant' + + +export default { + setFontSize(size: number) { + state.fontSize = size + global.state_event.fontSizeUpdated(size) + }, + setComponentId(name: COMPONENT_IDS, id: string) { + state.componentIds[name] = id + global.state_event.componentIdsUpdated({ ...state.componentIds }) + }, + removeComponentId(id: string) { + const name = (Object.entries(state.componentIds) as Array<[COMPONENT_IDS, string]>).find(kv => kv[1] == id)?.[0] + if (!name) return + delete state.componentIds[name] + global.state_event.componentIdsUpdated({ ...state.componentIds }) + }, + setNavActiveId(id: InitState['navActiveId']) { + state.navActiveId = id + global.state_event.navActiveIdUpdated(id) + }, + setSourceNames(names: InitState['sourceNames']) { + state.sourceNames = names + global.state_event.sourceNamesUpdated(names) + }, +} + diff --git a/src/store/common/hook.ts b/src/store/common/hook.ts new file mode 100644 index 0000000..06c4c67 --- /dev/null +++ b/src/store/common/hook.ts @@ -0,0 +1,97 @@ +import { type COMPONENT_IDS } from '@/config/constant' +import { useEffect, useState } from 'react' +import state, { type InitState } from './state' + +export const useFontSize = () => { + const [value, update] = useState(state.fontSize) + + useEffect(() => { + global.state_event.on('fontSizeUpdated', update) + return () => { + global.state_event.off('fontSizeUpdated', update) + } + }, []) + + return value +} + +export const useComponentIds = () => { + const [value, update] = useState(state.componentIds) + + useEffect(() => { + global.state_event.on('componentIdsUpdated', update) + return () => { + global.state_event.off('componentIdsUpdated', update) + } + }, []) + + return value +} + +const hasVisible = (visibleNames: COMPONENT_IDS[], ids: InitState['componentIds']) => { + const names = Object.keys(ids) + return names.length == visibleNames.length ? visibleNames.every(n => names.includes(n)) : false +} +export const usePageVisible = (visibleNames: COMPONENT_IDS[], onChange: (visible: boolean) => void) => { + useEffect(() => { + let visible = hasVisible(visibleNames, state.componentIds) + const handlecheck = (ids: InitState['componentIds']) => { + const res = hasVisible(visibleNames, ids) + // console.log(visible, res, res == visible) + if (res == visible) return + visible = res + onChange(visible) + } + global.state_event.on('componentIdsUpdated', handlecheck) + return () => { + global.state_event.off('componentIdsUpdated', handlecheck) + } + }, []) +} + + +export const useAssertApiSupport = (source: LX.Source) => { + const [value, update] = useState(global.lx.qualityList[source] != null || source == 'local') + + useEffect(() => { + const handleUpdate = () => { + update(global.lx.qualityList[source] != null || source == 'local') + } + + global.state_event.on('apiSourceUpdated', handleUpdate) + return () => { + global.state_event.off('apiSourceUpdated', handleUpdate) + } + }, []) + + return value +} + + +export const useNavActiveId = () => { + const [value, update] = useState(state.navActiveId) + + useEffect(() => { + global.state_event.on('navActiveIdUpdated', update) + return () => { + global.state_event.off('navActiveIdUpdated', update) + } + }, []) + + return value +} + + +export const useSourceNames = () => { + const [value, update] = useState(state.sourceNames) + + useEffect(() => { + global.state_event.on('sourceNamesUpdated', update) + return () => { + global.state_event.off('sourceNamesUpdated', update) + } + }, []) + + return value +} + diff --git a/src/store/common/state.ts b/src/store/common/state.ts new file mode 100644 index 0000000..63659e4 --- /dev/null +++ b/src/store/common/state.ts @@ -0,0 +1,21 @@ +import { type NAV_ID_Type, type COMPONENT_IDS } from '@/config/constant' + + +export interface InitState { + fontSize: number + componentIds: Partial<Record<COMPONENT_IDS, string>> + navActiveId: NAV_ID_Type + sourceNames: Record<LX.OnlineSource | 'all', string> +} + +const initData = {} + +const state: InitState = { + fontSize: global.lx.fontSize, + componentIds: {}, + navActiveId: 'nav_search', + sourceNames: initData as InitState['sourceNames'], +} + + +export default state diff --git a/src/store/connect.js b/src/store/connect.js deleted file mode 100644 index 65be30f..0000000 --- a/src/store/connect.js +++ /dev/null @@ -1,23 +0,0 @@ -import { bindActionCreators } from 'redux' -import { connect } from 'react-redux' -import * as modules from './modules' - - -const mapDispatchToProps = actionCreators => dispatch => ({ - actions: bindActionCreators(actionCreators, dispatch), -}) - -export default (mapStateToProps, mapActions) => { - const mapActionToProps = {} - for (const [moduleName, actions] of mapActions) { - const moduleActions = modules[moduleName].action - if (Array.isArray(actions)) { - for (const action of actions) mapActionToProps[action] = moduleActions[action] - } else { - for (const [key, value] of Object.entries(actions)) { - mapActionToProps[key] = moduleActions[value] - } - } - } - return connect(mapStateToProps, mapDispatchToProps(mapActionToProps)) -} diff --git a/src/store/getter.js b/src/store/getter.js deleted file mode 100644 index d0887af..0000000 --- a/src/store/getter.js +++ /dev/null @@ -1,30 +0,0 @@ -import { useMemo, useCallback } from 'react' -import { useSelector } from 'react-redux' -import * as modules from './modules' - -// console.log(modules) -const defaultGetter = state => state - -const getter = (moduleName, key) => { - const getters = modules[moduleName].getter - if (getters && getters[key]) return getters[key] - console.warn('getter not found:', moduleName, key) - return defaultGetter -} - -const useGetter = (moduleName, key, props) => { - const memoGetter = useMemo(() => { - return getter(moduleName, key) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - const selecteor = useCallback(state => memoGetter(state, props), [props]) - - // console.log(selector) - // console.log(moduleName, key) - return useSelector(selecteor) -} - -export { - getter, - useGetter, -} diff --git a/src/store/hotSearch/action.ts b/src/store/hotSearch/action.ts new file mode 100644 index 0000000..17cfb4c --- /dev/null +++ b/src/store/hotSearch/action.ts @@ -0,0 +1,37 @@ +import state, { type Source } from './state' + +export type Lists = Array<{ source: LX.OnlineSource, list: string[] }> + +const setList = (source: LX.OnlineSource, list: string[]): string[] => { + const l = state.sourceList[source] = list.slice(0, 20) + return l +} + +const setLists = (lists: Lists): string[] => { + let wordsMap = new Map<string, number>() + for (const { source, list } of lists) { + if (!state.sourceList[source]?.length) state.sourceList[source] = list.slice(0, 20) + for (let item of list) { + item = item.trim() + wordsMap.set(item, (wordsMap.get(item) ?? 0) + 1) + } + } + const wordsMapArr = Array.from(wordsMap) + wordsMapArr.sort((a, b) => a[0].localeCompare(b[0])) + wordsMapArr.sort((a, b) => b[1] - a[1]) + const words = wordsMapArr.map(item => item[0]) + return state.sourceList.all = words.slice(0, state.sources.length * 10) +} + + +export default { + setList(source: Source, list: string[] | Lists) { + if (source == 'all') { + return setLists(list as Lists) + } + return setList(source, list as string[]) + }, + clearList(source: Source) { + state.sourceList[source] = [] + }, +} diff --git a/src/store/hotSearch/state.ts b/src/store/hotSearch/state.ts new file mode 100644 index 0000000..1008b1b --- /dev/null +++ b/src/store/hotSearch/state.ts @@ -0,0 +1,29 @@ +import musicSdk from '@/utils/musicSdk' + +// import { deduplicationList } from '@common/utils/renderer' + +export declare type Source = LX.OnlineSource | 'all' + +type SourceLists = Partial<Record<Source, string[]>> + + +export interface InitState { + sources: Source[] + sourceList: SourceLists +} + +const state: InitState = { + sources: [], + sourceList: { + all: [], + }, +} + +for (const source of musicSdk.sources) { + if (!musicSdk[source.id as LX.OnlineSource]?.hotSearch) continue + state.sources.push(source.id as LX.OnlineSource) + state.sourceList[source.id as LX.OnlineSource] = [] +} +state.sources.push('all') + +export default state diff --git a/src/store/index.js b/src/store/index.js deleted file mode 100644 index 09cc2cd..0000000 --- a/src/store/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export { Provider } from './Provider' -export { reducers } from './reducer' -export * from './getter' -export { default as useDispatch } from './useDispatch' -export { default as connect } from './connect' -export { default as getStore } from './store' -export { subscribe } from './subscriber' diff --git a/src/store/index.ts b/src/store/index.ts new file mode 100644 index 0000000..560d235 --- /dev/null +++ b/src/store/index.ts @@ -0,0 +1,5 @@ + + +export const useGetter = () => { + +} diff --git a/src/store/leaderboard/action.ts b/src/store/leaderboard/action.ts new file mode 100644 index 0000000..e208214 --- /dev/null +++ b/src/store/leaderboard/action.ts @@ -0,0 +1,33 @@ +import state, { type Source, type Board, type ListDetailInfo } from './state' + +export default { + setBoard(board: Board, source: LX.OnlineSource) { + state.boards[source] = board + }, + setListDetailInfo(source: Source, id: string) { + state.listDetailInfo.source = source + state.listDetailInfo.id = id + }, + setListDetail(result: ListDetailInfo, id: string, page: number) { + state.listDetailInfo.list = page == 1 ? [...result.list] : [...state.listDetailInfo.list, ...result.list] + state.listDetailInfo.id = id + state.listDetailInfo.source = result.source + state.listDetailInfo.total = result.total + state.listDetailInfo.limit = result.limit + state.listDetailInfo.page = page + state.listDetailInfo.maxPage = Math.ceil(result.total / result.limit) + + return state.listDetailInfo + }, + clearListDetail() { + state.listDetailInfo.list = [] + state.listDetailInfo.id = '' + state.listDetailInfo.source = null + state.listDetailInfo.total = 0 + state.listDetailInfo.limit = 30 + state.listDetailInfo.page = 1 + state.listDetailInfo.maxPage = 1 + state.listDetailInfo.key = null + }, +} + diff --git a/src/store/leaderboard/state.ts b/src/store/leaderboard/state.ts new file mode 100644 index 0000000..24f62cc --- /dev/null +++ b/src/store/leaderboard/state.ts @@ -0,0 +1,54 @@ +import music from '@/utils/musicSdk' + +export declare type Source = LX.OnlineSource + +export declare interface BoardItem { + id: string + name: string + bangid: string +} +export declare interface Board { + list: BoardItem[] + source: LX.OnlineSource +} +type Boards = Partial<Record<LX.OnlineSource, Board>> + +export declare interface ListDetailInfo { + list: LX.Music.MusicInfoOnline[] + total: number + maxPage: number + page: number + source: LX.OnlineSource | null + limit: number + key: string | null + id: string +} + +export interface InitState { + sources: LX.OnlineSource[] + boards: Boards + listDetailInfo: ListDetailInfo +} + +const state: InitState = { + sources: [], + boards: {}, + listDetailInfo: { + list: [], + total: 0, + page: 1, + maxPage: 1, + limit: 30, + key: null, + source: null, + id: '', + }, +} + +for (const source of music.sources) { + if (!music[source.id as LX.OnlineSource]?.leaderboard?.getBoards) continue + state.sources.push(source.id as LX.OnlineSource) +} + + +export default state diff --git a/src/store/list/action.ts b/src/store/list/action.ts new file mode 100644 index 0000000..4392d53 --- /dev/null +++ b/src/store/list/action.ts @@ -0,0 +1,37 @@ +import state, { type InitState } from './state' + + +export default { + setUserLists(userList: LX.List.UserListInfo[]) { + state.userList = userList + state.allList = [state.defaultList, state.loveList, ...state.userList] + + global.state_event.mylistUpdated(state.allList) + }, + setActiveList(activeListId: string) { + state.activeListId = activeListId + + global.state_event.mylistToggled(activeListId) + }, + setTempListMeta(meta: InitState['tempListMeta']) { + state.tempListMeta = meta + }, + setFetchingListStatus(id: string, status: boolean) { + state.fetchingListStatus[id] = status + + global.state_event.fetchingListStatusUpdated({ ...state.fetchingListStatus }) + }, +} + + +// Other code such as selectors can use the imported `RootState` type +// export const defaultList = (state: LX.State) => state.userList.defaultList +// export const loveList = (state: LX.State) => state.userList.loveList +// export const userList = (state: LX.State) => state.userList.userList +// export const selectAllList = createSelector(defaultList, loveList, userList, (defaultList, loveList, userList) => { +// return [defaultList, loveList, ...userList] +// }) + +// export const selectActiveListId = (state: LX.State) => state.userList.activeListId + +// export default slice.reducer diff --git a/src/store/list/hook.ts b/src/store/list/hook.ts new file mode 100644 index 0000000..c409ac2 --- /dev/null +++ b/src/store/list/hook.ts @@ -0,0 +1,88 @@ +import { useEffect, useState } from 'react' +import state, { type InitState } from './state' +import { getListMusics } from '@/core/list' + +export const useMyList = () => { + const [lists, setList] = useState(state.allList) + + useEffect(() => { + global.state_event.on('mylistUpdated', setList) + return () => { + global.state_event.off('mylistUpdated', setList) + } + }, []) + + return lists +} + +export const useActiveListId = () => { + const [id, setId] = useState(state.activeListId) + + useEffect(() => { + global.state_event.on('mylistToggled', setId) + return () => { + global.state_event.off('mylistToggled', setId) + } + }, []) + + return id +} + + +export const useMusicList = () => { + const [list, setList] = useState<LX.List.ListMusics>([]) + + useEffect(() => { + const handleToggle = (activeListId: string) => { + void getListMusics(activeListId).then((list) => { + setList([...list]) + }) + } + const handleChange = (ids: string[]) => { + if (!ids.includes(state.activeListId)) return + void getListMusics(state.activeListId).then((list) => { + setList([...list]) + }) + } + global.state_event.on('mylistToggled', handleToggle) + global.app_event.on('myListMusicUpdate', handleChange) + + handleToggle(state.activeListId) + + return () => { + global.state_event.off('mylistToggled', handleToggle) + global.app_event.off('myListMusicUpdate', handleChange) + } + }, []) + + return list +} + +export const useMusicExistsList = (list: LX.List.MyListInfo, musicInfo: LX.Music.MusicInfo) => { + const [isExists, setExists] = useState(false) + + useEffect(() => { + void getListMusics(list.id).then((musics) => { + setExists(musics.some(s => s.id == musicInfo.id)) + }) + }, [list.id, musicInfo.id]) + + return isExists +} + +export const useListFetching = (listId: string) => { + const [fetching, setFetching] = useState(!!state.fetchingListStatus[listId]) + + useEffect(() => { + const handleUpdate = (status: InitState['fetchingListStatus']) => { + setFetching(!!status[listId]) + } + global.state_event.on('fetchingListStatusUpdated', handleUpdate) + return () => { + global.state_event.off('fetchingListStatusUpdated', handleUpdate) + } + }, []) + + return fetching +} + diff --git a/src/store/list/state.ts b/src/store/list/state.ts new file mode 100644 index 0000000..bf8085f --- /dev/null +++ b/src/store/list/state.ts @@ -0,0 +1,48 @@ +import { LIST_IDS } from '@/config/constant' + + +export interface InitState { + allMusicList: Map<string, LX.Music.MusicInfo[]> + defaultList: LX.List.MyDefaultListInfo + loveList: LX.List.MyLoveListInfo + tempList: LX.List.MyTempListInfo + userList: LX.List.UserListInfo[] + activeListId: string + + allList: Array<LX.List.MyDefaultListInfo | LX.List.MyLoveListInfo | LX.List.UserListInfo> + + tempListMeta: { + id: string + } + + fetchingListStatus: Record<string, boolean> +} + +const state: InitState = { + allMusicList: new Map(), + defaultList: { + id: LIST_IDS.DEFAULT, + name: '试听列表', + }, + loveList: { + id: LIST_IDS.LOVE, + name: '我的收藏', + }, + tempList: { + id: LIST_IDS.TEMP, + name: '临时列表', + meta: {}, + }, + userList: [], + activeListId: '', + allList: [], + tempListMeta: { + id: '', + }, + fetchingListStatus: {}, +} + +state.allList = [state.defaultList, state.loveList] + + +export default state diff --git a/src/store/modules/common/action.js b/src/store/modules/common/action.js deleted file mode 100644 index 6fe246f..0000000 --- a/src/store/modules/common/action.js +++ /dev/null @@ -1,517 +0,0 @@ -import { getData, setData } from '@/plugins/storage' -import { storageDataPrefix } from '@/config' -import { action as playerAction, getter as playerGetter } from '@/store/modules/player' -import { mergeSetting } from '@/config/setting' -import { changeLanguage } from '@/plugins/i18n' -import music from '@/utils/music' -import { getVersionInfo } from '@/utils/version' -import { compareVer } from '@/utils' -// import { setMaxCache } from '@/plugins/player/utils' -import { showVersionModal } from '@/navigation' -import { VERSION_STATUS } from '@/config/constant' -// import { screenUnkeepAwake } from '@/utils/utils' - -export const TYPES = { - updateSetting: null, - setComponentId: null, - removeComponentId: null, - setNavActiveIndex: null, - setNavScreenName: null, - setPlayNextMode: null, - setPrevSelectListId: null, - setStartupAutoPlay: null, - setAutoHidePlayBar: null, - setApiSource: null, - setTheme: null, - setIsAutoTheme: null, - setSystemColor: null, - setSearchSource: null, - setAgreePact: null, - setSongList: null, - setLang: null, - setPlayerCacheSize: null, - setIsPlayHighQuality: null, - setSourceNameType: null, - setTop: null, - setIgnoreVersion: null, - setVersionInfo: null, - setShareType: null, - setTimeoutExit: null, - setIsHandleAudioFocus: null, - setAddMusicLocationType: null, - setIsShowLyricTranslation: null, - setIsShowLyricRoma: null, - setIsS2T: null, - setIsEnableSync: null, - setSyncStatus: null, - setIsClickPlayList: null, - setIsShowDesktopLyric: null, - setIsLockDesktopLyric: null, - setThemeDesktopLyric: null, - setDesktopLyricPosition: null, - setDesktopLyricWidth: null, - setDesktopLyricSingleLine: null, - setDesktopLyricShowToggleAnima: null, - setDesktopLyricMaxLineNum: null, - setDesktopLyricTextPosition: null, - setDesktopLyricStyle: null, - setPlayerPortraitStyle: null, - setPlayerLandscapeStyle: null, - setIsShowNotificationImage: null, -} -for (const key of Object.keys(TYPES)) { - TYPES[key] = `common__${key}` -} - -const settingKey = storageDataPrefix.setting - -export const checkVersion = () => async(dispatch, getState) => { - let versionInfo - try { - const { version, desc, history } = await getVersionInfo() - versionInfo = { - version, - desc, - history, - } - } catch (err) { - versionInfo = { - version: '0.0.0', - desc: null, - history: [], - } - } - // const versionInfo = { - // version: '1.9.0', - // desc: '- 更新xxx\n- 修复xxx123的萨达修复xxx123的萨达修复xxx123的萨达修复xxx123的萨达修复xxx123的萨达', - // history: [{ version: '1.8.0', desc: '- 更新xxx22\n- 修复xxx22' }, { version: '1.7.0', desc: '- 更新xxx22\n- 修复xxx22' }], - // } - versionInfo.status = - versionInfo.version == '0.0.0' - ? VERSION_STATUS.unknown - : compareVer(process.versions.app, versionInfo.version) < 0 - ? VERSION_STATUS.available - : VERSION_STATUS.latest - - const { common } = getState() - - if (common.setting.ignoreVersion != versionInfo.version && versionInfo.status == VERSION_STATUS.available) { - versionInfo.showModal = true - dispatch(setVersionInfo(versionInfo)) - showVersionModal() - } else { - versionInfo.showModal = false - dispatch(setVersionInfo(versionInfo)) - } - // console.log(compareVer(process.versions.app, versionInfo.version)) - // console.log(process.versions.app, versionInfo.version) -} - -export const setVersionInfo = versionInfo => { - return { - type: TYPES.setVersionInfo, - payload: versionInfo, - } -} - -export const initSetting = () => async(dispatch, getState) => { - const setting = await getData(settingKey) - if (!setting) return - global.globalObj.qualityList = music.supportQuality[setting.apiSource] - global.globalObj.apiSource = setting.apiSource - await dispatch(updateSetting(mergeSetting(setting))) -} - -export const updateSetting = setting => async(dispatch, getState) => { - dispatch({ - type: TYPES.updateSetting, - payload: setting, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setComponentId = data => ({ - type: TYPES.setComponentId, - payload: data, -}) -export const removeComponentId = id => { - return { - type: TYPES.removeComponentId, - payload: id, - } -} - -export const setNavActiveIndex = index => ({ - type: TYPES.setNavActiveIndex, - payload: index, -}) - -export const setTimeoutExit = ({ time, isPlayed }) => async(dispatch, getState) => { - dispatch({ - type: TYPES.setTimeoutExit, - payload: { time, isPlayed }, - }) - const state = getState() - await setData(settingKey, state.common.setting) -} - -export const setPrevSelectListId = id => async(dispatch, getState) => { - dispatch({ - type: TYPES.setPrevSelectListId, - payload: id, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setPlayNextMode = mode => async(dispatch, getState) => { - dispatch({ - type: TYPES.setPlayNextMode, - payload: mode, - }) - dispatch(playerAction.clearPlayedList()) - const state = getState() - if (mode == 'random') dispatch(playerAction.addMusicToPlayedList(playerGetter.playMusicInfo(state))) - await setData(settingKey, state.common.setting) -} - -export const setStartupAutoPlay = enable => async(dispatch, getState) => { - dispatch({ - type: TYPES.setStartupAutoPlay, - payload: enable, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setAutoHidePlayBar = enable => async(dispatch, getState) => { - dispatch({ - type: TYPES.setAutoHidePlayBar, - payload: enable, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setApiSource = id => async(dispatch, getState) => { - dispatch({ - type: TYPES.setApiSource, - payload: id, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIgnoreVersion = version => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIgnoreVersion, - payload: version, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setTheme = id => async(dispatch, getState) => { - dispatch({ - type: TYPES.setTheme, - payload: id, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsAutoTheme = enabled => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsAutoTheme, - payload: enabled, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setSystemColor = color => ({ - type: TYPES.setSystemColor, - payload: color, -}) - -export const setLang = id => async(dispatch, getState) => { - dispatch({ - type: TYPES.setLang, - payload: id, - }) - changeLanguage(id) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setSourceNameType = id => async(dispatch, getState) => { - dispatch({ - type: TYPES.setSourceNameType, - payload: id, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setSearchSource = ({ searchSource, tempSearchSource }) => async(dispatch, getState) => { - dispatch({ - type: TYPES.setSearchSource, - payload: { searchSource, tempSearchSource }, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setAgreePact = isAgreePact => async(dispatch, getState) => { - dispatch({ - type: TYPES.setAgreePact, - payload: isAgreePact, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setLeaderboard = ({ tabId, source }) => async(dispatch, getState) => { - dispatch({ - type: TYPES.setLeaderboard, - payload: { tabId, source }, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setSongList = ({ sortId, tagInfo, source }) => async(dispatch, getState) => { - dispatch({ - type: TYPES.setSongList, - payload: { sortId, tagInfo, source }, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setTop = ({ tabId, source }) => async(dispatch, getState) => { - dispatch({ - type: TYPES.setTop, - payload: { tabId, source }, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setPlayerCacheSize = size => async(dispatch, getState) => { - dispatch({ - type: TYPES.setPlayerCacheSize, - payload: size, - }) - const { common } = getState() - await setData(settingKey, common.setting) - // setMaxCache(size) -} - -export const setIsPlayHighQuality = highQuality => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsPlayHighQuality, - payload: highQuality, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsHandleAudioFocus = flag => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsHandleAudioFocus, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setAddMusicLocationType = type => async(dispatch, getState) => { - dispatch({ - type: TYPES.setAddMusicLocationType, - payload: type, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsShowLyricTranslation = flag => async(dispatch, getState) => { - dispatch(playerAction.toggleTranslation(flag)) - dispatch({ - type: TYPES.setIsShowLyricTranslation, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsShowLyricRoma = flag => async(dispatch, getState) => { - dispatch(playerAction.toggleRoma(flag)) - dispatch({ - type: TYPES.setIsShowLyricRoma, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setIsS2T = flag => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsS2T, - payload: flag, - }) - dispatch(playerAction.toggleS2T()) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsShowDesktopLyric = flag => async(dispatch, getState) => { - await dispatch(playerAction.toggleDesktopLyric(flag)) - dispatch({ - type: TYPES.setIsShowDesktopLyric, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setIsLockDesktopLyric = flag => async(dispatch, getState) => { - dispatch(playerAction.toggleDesktopLyricLock(flag)) - dispatch({ - type: TYPES.setIsLockDesktopLyric, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setThemeDesktopLyric = theme => async(dispatch, getState) => { - dispatch(playerAction.setDesktopLyricTheme(theme)) - dispatch({ - type: TYPES.setThemeDesktopLyric, - payload: theme, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setIsClickPlayList = flag => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsClickPlayList, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricStyle = style => async(dispatch, getState) => { - dispatch(playerAction.setDesktopLyricStyle(style)) - dispatch({ - type: TYPES.setDesktopLyricStyle, - payload: style, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricPosition = position => async(dispatch, getState) => { - dispatch({ - type: TYPES.setDesktopLyricPosition, - payload: position, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricSingleLine = isSingleLine => async(dispatch, getState) => { - dispatch(playerAction.setDesktopLyricSingleLine(isSingleLine)) - dispatch({ - type: TYPES.setDesktopLyricSingleLine, - payload: isSingleLine, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricShowToggleAnima = showToggleAnima => async(dispatch, getState) => { - dispatch(playerAction.setDesktopLyricShowToggleAnima(showToggleAnima)) - dispatch({ - type: TYPES.setDesktopLyricShowToggleAnima, - payload: showToggleAnima, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricWidth = width => async(dispatch, getState) => { - dispatch(playerAction.setDesktopLyricWidth(width)) - dispatch({ - type: TYPES.setDesktopLyricWidth, - payload: width, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricMaxLineNum = maxLineNum => async(dispatch, getState) => { - dispatch(playerAction.setDesktopLyricMaxLineNum(maxLineNum)) - dispatch({ - type: TYPES.setDesktopLyricMaxLineNum, - payload: maxLineNum, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} -export const setDesktopLyricTextPosition = position => async(dispatch, getState) => { - const textPosition = { ...getState().common.setting.desktopLyric.textPosition, ...position } - dispatch(playerAction.setDesktopLyricTextPosition(textPosition)) - dispatch({ - type: TYPES.setDesktopLyricTextPosition, - payload: textPosition, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsEnableSync = flag => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsEnableSync, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setSyncStatus = statusInfo => async(dispatch, getState) => { - dispatch({ - type: TYPES.setSyncStatus, - payload: statusInfo, - }) -} - -export const setPlayerPortraitStyle = style => async(dispatch, getState) => { - dispatch({ - type: TYPES.setPlayerPortraitStyle, - payload: style, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setPlayerLandscapeStyle = style => async(dispatch, getState) => { - dispatch({ - type: TYPES.setPlayerLandscapeStyle, - payload: style, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setShareType = type => async(dispatch, getState) => { - dispatch({ - type: TYPES.setShareType, - payload: type, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} - -export const setIsShowNotificationImage = flag => async(dispatch, getState) => { - dispatch({ - type: TYPES.setIsShowNotificationImage, - payload: flag, - }) - const { common } = getState() - await setData(settingKey, common.setting) -} diff --git a/src/store/modules/common/common.ts b/src/store/modules/common/common.ts new file mode 100644 index 0000000..549c8f2 --- /dev/null +++ b/src/store/modules/common/common.ts @@ -0,0 +1,35 @@ +// import { createSlice } from '@reduxjs/toolkit' +import { NAV_MENUS } from '@/config/constant' +// import type { PayloadAction } from '@reduxjs/toolkit' +// import type { RootState } from '@/store' + +// type MenuIds = (typeof NAV_MENUS)[number]['id'] + +// // Define a type for the slice state +// interface InitState { +// activeId: MenuIds +// } + +// // Define the initial state using that type +// const initialState: InitState = { +// activeId: 'search', +// } + +// // export const slice = createSlice({ +// // name: 'common', +// // // `createSlice` will infer the state type from the `initialState` argument +// // initialState, +// // reducers: { +// // setNavActive(state, action: PayloadAction<MenuIds>) { +// // if (action.payload === state.activeId) return +// // state.activeId = action.payload +// // }, +// // }, +// // }) + +// export const { setNavActive } = slice.actions + +// // Other code such as selectors can use the imported `RootState` type +// // export const selectCount = (state: RootState) => state.counter.value + +// export default slice.reducer diff --git a/src/store/modules/common/getter.js b/src/store/modules/common/getter.js deleted file mode 100644 index 4bbcdd6..0000000 --- a/src/store/modules/common/getter.js +++ /dev/null @@ -1,93 +0,0 @@ -import { createSelector } from 'reselect' -import apiSourceInfo from '@/utils/music/api-source-info' - -// sourceInfo(state, getters, rootState, { sourceNames }) { -// return { sources: sources.map(item => ({ id: item.id, name: sourceNames[item.id] })), sortList } -// }, -// tags: state => state.tags, -// isVisibleListDetail: state => state.isVisibleListDetail, -// selectListInfo: state => state.selectListInfo, -export const common = state => state.common -export const navMenus = state => state.common.nav.menus -export const navActiveIndex = state => state.common.nav.activeIndex - -export const startupAutoPlay = state => state.common.setting.startupAutoPlay -export const autoHidePlayBar = state => state.common.setting.autoHidePlayBar - -export const setting = state => state.common.setting - -export const componentIds = state => state.common.componentIds - -export const activeLangId = state => state.common.setting.langId - -export const isAgreePact = state => state.common.setting.isAgreePact - -export const isPlayHighQuality = state => state.common.setting.player.highQuality -export const isHandleAudioFocus = state => state.common.setting.player.isHandleAudioFocus -export const playerCacheSize = state => state.common.setting.player.cacheSize - -export const systemColor = state => state.common.systemColor -export const isAutoTheme = state => state.common.setting.isAutoTheme -export const themeList = state => state.common.themes -export const activeThemeId = state => state.common.setting.themeId -export const activeTheme = createSelector( - [themeList, activeThemeId, isAutoTheme, systemColor], - (themeList, activeThemeId, isAutoTheme, systemColor) => { - const themeId = isAutoTheme && systemColor == 'dark' ? 'black' : activeThemeId - return themeList.find(theme => theme.id === themeId) || themeList[0] - }) -export const theme = createSelector(activeTheme, activeTheme => activeTheme.colors) -export const isDarkTheme = createSelector(activeTheme, activeTheme => activeTheme.isDark) -export const statusBarStyle = createSelector(isDarkTheme, isDarkTheme => isDarkTheme ? 'light-content' : 'dark-content') - -export const versionInfo = state => state.common.versionInfo - -export const prevSelectListId = state => state.common.setting.list.prevSelectListId -export const addMusicLocationType = state => state.common.setting.list.addMusicLocationType - -export const togglePlayMethod = state => state.common.setting.player.togglePlayMethod - -export const downloadFileName = state => state.common.setting.download.fileName - - -export const sourceNameType = state => state.common.setting.sourceNameType - -export const isClickPlayList = state => state.common.setting.list.isClickPlayList - -export const isEnableDesktopLyric = state => state.common.setting.desktopLyric.enable -export const isLockDesktopLyric = state => state.common.setting.desktopLyric.isLock -export const themeDesktopLyric = state => state.common.setting.desktopLyric.theme -export const desktopLyricPosition = state => state.common.setting.desktopLyric.position -export const desktopLyricTextPosition = state => state.common.setting.desktopLyric.textPosition -export const desktopLyricStyle = state => state.common.setting.desktopLyric.style -export const desktopLyricSingleLine = state => state.common.setting.desktopLyric.isSingleLine -export const desktopLyricShowToggleAnima = state => state.common.setting.desktopLyric.showToggleAnima -export const desktopLyricWidth = state => state.common.setting.desktopLyric.width -export const desktopLyricMaxLineNum = state => state.common.setting.desktopLyric.maxLineNum - -export const timeoutExit = state => state.common.setting.player.timeoutExit -export const timeoutExitPlayed = state => state.common.setting.player.timeoutExitPlayed -export const isShowLyricTranslation = state => state.common.setting.player.isShowLyricTranslation -export const isShowLyricRoma = state => state.common.setting.player.isShowLyricRoma -export const isS2t = state => state.common.setting.player.isS2t - -export const activeApiSourceId = state => state.common.setting.apiSource - -export const isEnableSync = state => state.common.setting.sync.enable -export const syncStatus = state => state.common.syncStatus - -const apiSourceListFormated = apiSourceInfo.map(api => ({ - id: api.id, - name: api.name, - disabled: api.disabled, -})) -export const apiSourceList = state => apiSourceListFormated - -export const supportQualitys = state => apiSourceInfo.find(s => s.id == state.common.setting.apiSource).supportQualitys - -export const playerPortraitStyle = state => state.common.setting.player.portrait.style -export const playerLandscapeStyle = state => state.common.setting.player.landscape.style - -export const shareType = state => state.common.setting.shareType - -export const isShowNotificationImage = state => state.common.setting.player.isShowNotificationImage diff --git a/src/store/modules/common/index.js b/src/store/modules/common/index.js deleted file mode 100644 index f9cf685..0000000 --- a/src/store/modules/common/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import * as action from './action' -import * as getter from './getter' - -export { action, getter } -export { default as reducer } from './reducer' diff --git a/src/store/modules/common/index.ts b/src/store/modules/common/index.ts new file mode 100644 index 0000000..52b08af --- /dev/null +++ b/src/store/modules/common/index.ts @@ -0,0 +1,5 @@ +import common from './common' + +export default { + common, +} diff --git a/src/store/modules/common/reducer.js b/src/store/modules/common/reducer.js deleted file mode 100644 index 49f178d..0000000 --- a/src/store/modules/common/reducer.js +++ /dev/null @@ -1,590 +0,0 @@ -import { initSetting } from '@/config/setting' -import { TYPES } from './action' -import music from '@/utils/music' -import { Themes } from '@/theme' -import { NAV_VIEW_NAMES, VERSION_STATUS } from '@/config/constant' - - -const setting = initSetting() - - -global.globalObj = { - qualityList: music.supportQuality[setting.setting.apiSource], - apiSource: setting.setting.apiSource, -} - -const initialState = { - ...setting, - nav: { - activeIndex: 0, - menus: [ - { id: 'search', name: '搜索', icon: 'search-2' }, - { id: 'songList', name: '歌单', icon: 'album' }, - { id: 'top', name: '排行榜', icon: 'leaderboard' }, - { id: 'love', name: '收藏', icon: 'love' }, - // { id: 'download', name: '下载', icon: 'download-2' }, - { id: 'setting', name: '设置', icon: 'setting' }, - ], - }, - qualityList: music.supportQuality[setting.setting.apiSource], - themes: Themes, - systemColor: null, - versionInfo: { - status: VERSION_STATUS.checking, - downloadProgress: { - total: 0, - current: 0, - }, - showModal: false, - version: null, - desc: '', - history: [], - }, - syncStatus: { - status: false, - message: '', - }, - componentIds: {}, -} - -initialState.nav.menus.forEach(({ id }, index) => { - NAV_VIEW_NAMES[id] = index -}) - -const mutations = { - [TYPES.updateSetting](state, setting) { - return { - ...state, - setting: { - ...state.setting, - ...setting, - }, - } - }, - [TYPES.setComponentId](state, { name, id }) { - return { - ...state, - componentIds: { - ...state.componentIds, - [name]: id, - }, - } - }, - [TYPES.removeComponentId](state, removeId) { - const newComponentIds = { ...state.componentIds } - for (const [name, id] of Object.entries(state.componentIds)) { - if (id == removeId) { - newComponentIds[name] = null - break - } - } - return { - ...state, - componentIds: newComponentIds, - } - }, - [TYPES.setNavActiveIndex](state, index) { - if (index === state.nav.activeIndex) return state - return { - ...state, - nav: { - ...state.nav, - activeIndex: index, - }, - } - }, - [TYPES.setPrevSelectListId](state, id) { - return { - ...state, - setting: { - ...state.setting, - list: { - ...state.setting.list, - prevSelectListId: id, - }, - }, - } - }, - [TYPES.setAddMusicLocationType](state, type) { - return { - ...state, - setting: { - ...state.setting, - list: { - ...state.setting.list, - addMusicLocationType: type, - }, - }, - } - }, - [TYPES.setAgreePact](state, isAgreePact) { - return { - ...state, - setting: { - ...state.setting, - isAgreePact, - }, - } - }, - [TYPES.setSearchSource](state, { searchSource, tempSearchSource }) { - const newState = { - ...state, - setting: { - ...state.setting, - search: { - ...state.setting.search, - }, - }, - } - if (searchSource != null) newState.setting.search.searchSource = searchSource - if (tempSearchSource != null) newState.setting.search.tempSearchSource = tempSearchSource - return newState - }, - [TYPES.setLeaderboard](state, { tabId, source }) { - const newState = { - ...state, - setting: { - ...state.setting, - leaderboard: { - ...state.setting.leaderboard, - }, - }, - } - if (tabId != null) newState.setting.leaderboard.tabId = tabId - if (source != null) newState.setting.leaderboard.source = source - return newState - }, - [TYPES.setSongList](state, { sortId, tagInfo, source }) { - const newState = { - ...state, - setting: { - ...state.setting, - songList: { - ...state.setting.songList, - }, - }, - } - if (tagInfo != null) newState.setting.songList.tagInfo = tagInfo - if (sortId != null) newState.setting.songList.sortId = sortId - if (source != null) newState.setting.songList.source = source - return newState - }, - [TYPES.setTop](state, { tabId, source }) { - const newState = { - ...state, - setting: { - ...state.setting, - leaderboard: { - ...state.setting.leaderboard, - }, - }, - } - if (tabId != null) newState.setting.leaderboard.tabId = tabId - if (source != null) newState.setting.leaderboard.source = source - return newState - }, - [TYPES.setApiSource](state, id) { - global.globalObj.apiSource = id - global.globalObj.supportQuality = music.supportQuality[id] - - return { - ...state, - setting: { - ...state.setting, - apiSource: id, - }, - } - }, - [TYPES.setIgnoreVersion](state, version) { - return { - ...state, - setting: { - ...state.setting, - ignoreVersion: version, - }, - } - }, - [TYPES.setTheme](state, id) { - return { - ...state, - setting: { - ...state.setting, - themeId: id, - }, - } - }, - [TYPES.setIsAutoTheme](state, enabled) { - return { - ...state, - setting: { - ...state.setting, - isAutoTheme: enabled, - }, - } - }, - [TYPES.setSystemColor](state, color) { - return { - ...state, - systemColor: color, - } - }, - [TYPES.setLang](state, id) { - return { - ...state, - setting: { - ...state.setting, - langId: id, - }, - } - }, - [TYPES.setSourceNameType](state, id) { - return { - ...state, - setting: { - ...state.setting, - sourceNameType: id, - }, - } - }, - [TYPES.setPlayNextMode](state, mode) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - togglePlayMethod: mode, - }, - }, - } - }, - [TYPES.setStartupAutoPlay](state, startupAutoPlay) { - return { - ...state, - setting: { - ...state.setting, - startupAutoPlay, - }, - } - }, - [TYPES.setAutoHidePlayBar](state, autoHidePlayBar) { - return { - ...state, - setting: { - ...state.setting, - autoHidePlayBar, - }, - } - }, - [TYPES.setPlayerCacheSize](state, size) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - cacheSize: size, - }, - }, - } - }, - [TYPES.setIsPlayHighQuality](state, highQuality) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - highQuality, - }, - }, - } - }, - [TYPES.setIsHandleAudioFocus](state, isHandleAudioFocus) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - isHandleAudioFocus, - }, - }, - } - }, - [TYPES.setIsShowLyricTranslation](state, isShowLyricTranslation) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - isShowLyricTranslation, - }, - }, - } - }, - [TYPES.setIsShowLyricRoma](state, isShowLyricRoma) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - isShowLyricRoma, - }, - }, - } - }, - [TYPES.setIsS2T](state, isS2t) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - isS2t, - }, - }, - } - }, - [TYPES.setIsShowDesktopLyric](state, isShowDesktopLyric) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - enable: isShowDesktopLyric, - }, - }, - } - }, - [TYPES.setIsLockDesktopLyric](state, isLock) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - isLock, - }, - }, - } - }, - [TYPES.setThemeDesktopLyric](state, theme) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - theme, - }, - }, - } - }, - [TYPES.setIsClickPlayList](state, enable) { - return { - ...state, - setting: { - ...state.setting, - list: { - ...state.setting.list, - isClickPlayList: enable, - }, - }, - } - }, - [TYPES.setDesktopLyricStyle](state, style) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - style: { - ...state.setting.desktopLyric.style, - ...style, - }, - }, - }, - } - }, - [TYPES.setDesktopLyricPosition](state, position) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - position, - }, - }, - } - }, - [TYPES.setDesktopLyricSingleLine](state, isSingleLine) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - isSingleLine, - }, - }, - } - }, - [TYPES.setDesktopLyricShowToggleAnima](state, showToggleAnima) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - showToggleAnima, - }, - }, - } - }, - [TYPES.setDesktopLyricWidth](state, width) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - width, - }, - }, - } - }, - [TYPES.setDesktopLyricMaxLineNum](state, maxLineNum) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - maxLineNum, - }, - }, - } - }, - [TYPES.setDesktopLyricTextPosition](state, textPosition) { - return { - ...state, - setting: { - ...state.setting, - desktopLyric: { - ...state.setting.desktopLyric, - textPosition, - }, - }, - } - }, - [TYPES.setVersionInfo](state, versionInfo) { - return { - ...state, - versionInfo: { - ...state.versionInfo, - ...versionInfo, - }, - } - }, - [TYPES.setTimeoutExit](state, { time, isPlayed }) { - const newState = { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - }, - }, - } - if (time != null) newState.setting.player.timeoutExit = time - if (isPlayed != null) newState.setting.player.timeoutExitPlayed = isPlayed - - return newState - }, - [TYPES.setIsEnableSync](state, isEnableSync) { - const newState = { - ...state, - setting: { - ...state.setting, - sync: { - ...state.setting.sync, - enable: isEnableSync, - }, - }, - } - return newState - }, - [TYPES.setSyncStatus](state, { status, message }) { - const newState = { - ...state, - syncStatus: { - ...state.syncStatus, - }, - } - if (status != null) newState.syncStatus.status = status - if (message != null) newState.syncStatus.message = message - return newState - }, - [TYPES.setPlayerPortraitStyle](state, style) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - portrait: { - ...state.setting.player.portrait, - style, - }, - }, - }, - } - }, - [TYPES.setPlayerLandscapeStyle](state, style) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - landscape: { - ...state.setting.player.landscape, - style, - }, - }, - }, - } - }, - [TYPES.setShareType](state, shareType) { - return { - ...state, - setting: { - ...state.setting, - shareType, - }, - } - }, - [TYPES.setIsShowNotificationImage](state, flag) { - return { - ...state, - setting: { - ...state.setting, - player: { - ...state.setting.player, - isShowNotificationImage: flag, - }, - }, - } - }, -} - -export default (state = initialState, action) => - mutations[action.type] - ? mutations[action.type](state, action.payload) - : state diff --git a/src/store/modules/index.js b/src/store/modules/index.js deleted file mode 100644 index 6120965..0000000 --- a/src/store/modules/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import * as common from './common' -import * as search from './search' -import * as player from './player' -import * as list from './list' -import * as songList from './songList' -import * as top from './top' - -export { - common, - search, - player, - list, - songList, - top, -} diff --git a/src/store/modules/index.ts b/src/store/modules/index.ts new file mode 100644 index 0000000..6227e84 --- /dev/null +++ b/src/store/modules/index.ts @@ -0,0 +1,19 @@ +import common from './common' +// import * as search from './search' +// import * as player from './player' +// import * as list from './list' +// import * as songList from './songList' +// import * as top from './top' + +// export { +// common, +// search, +// player, +// list, +// songList, +// top, +// } + +export default { + ...common, +} diff --git a/src/store/modules/list/action.js b/src/store/modules/list/action.js deleted file mode 100644 index 7f607cc..0000000 --- a/src/store/modules/list/action.js +++ /dev/null @@ -1,417 +0,0 @@ -import { action as playerAction } from '@/store/modules/player' -import { action as commonAction } from '@/store/modules/common' -import { findMusic } from '@/utils/music' -import { - getAllListData, - saveList, - removeList, - saveListAllSort, - clearMusicUrlAndLyric, - saveListScrollPosition, - saveListSort, -} from '@/utils/tools' -import { list as listSync } from '@/plugins/sync' -import { log } from '@/utils/log' - -export const TYPES = { - initList: null, - setList: null, - listAdd: null, - listMove: null, - listAddMultiple: null, - listMoveMultiple: null, - listRemove: null, - listRemoveMultiple: null, - listClear: null, - updateMusicInfo: null, - createUserList: null, - removeUserList: null, - setUserListName: null, - setUserListPosition: null, - setMusicPosition: null, - setOtherSource: null, - clearCache: null, - jumpPosition: null, - setSyncList: null, -} - -for (const key of Object.keys(TYPES)) { - TYPES[key] = `list__${key}` -} - - -export const initList = listData => async(dispatch, getState) => { - let defaultList - let loveList - let userList - let listPosition - let listSort - if (listData) { - defaultList = listData.defaultList - loveList = listData.loveList - userList = listData.userList - listSort = listData.listSort || {} - } else { - try { - listData = await getAllListData() - } catch (err) { - log.error(err.stack) - return - } - defaultList = listData.defaultList - loveList = listData.loveList - userList = listData.userList - listPosition = listData.listPosition - listSort = listData.listSort - } - global.listScrollPosition = listPosition || {} - global.listSort = listSort - - let isNeedSaveSortInfo = false - userList.sort((a, b) => { - if (listSort[a.id] == null) return listSort[b.id] == null ? -1 : 1 - return listSort[b.id] == null ? 1 : listSort[a.id] - listSort[b.id] - }) - userList.forEach((list, index) => { - if (listSort[list.id] == null) { - isNeedSaveSortInfo = true - listSort[list.id] = index - delete list.location - } - }) - if (isNeedSaveSortInfo) await saveListAllSort(listSort) - - let needSaveLists = [] - const allList = [...(userList ?? [])] - if (loveList) allList.unshift(loveList) - if (defaultList) allList.unshift(defaultList) - - // 临时 - 过滤无效歌曲 - allList.forEach(list => { - let isNeedSaveList = false - const newList = list.list.filter(musicInfo => { - if (!musicInfo) return false - - // PC v1.8.2以前的Lyric - if (musicInfo.lxlrc) { - delete musicInfo.lxlrc - isNeedSaveList = true - } - if (musicInfo.lrc) { - delete musicInfo.lrc - isNeedSaveList = true - } - if (musicInfo.tlrc) { - delete musicInfo.tlrc - isNeedSaveList = true - } - - return !!musicInfo.songmid - }) - if (newList.length != list.list.length) { - list.list = newList - isNeedSaveList = true - } - if (isNeedSaveList) needSaveLists.push(list) - }) - if (needSaveLists.length) saveList(needSaveLists) - - // console.log(userList.map(l => `${listSort[l.id]} - ${l.name}`)) - dispatch({ - type: TYPES.initList, - payload: { defaultList, loveList, userList }, - }) - - // if (listData.isSync) { - // const keys = Object.keys(global.allList) - // dispatch(playerAction.checkPlayList(keys)) - // saveList(keys) - // } else { - // listSync.sendListAction('init_list', { defaultList, loveList, userList }) - // } -} - -const handleSaveListAllSort = async(userList) => { - const listPosition = {} - userList.forEach((list, index) => { - listPosition[list.id] = index - delete list.location - }) - global.listScrollPosition = listPosition - await saveListAllSort(listPosition) -} - -export const setSyncList = ({ defaultList, loveList, userList }) => async(dispatch, getState) => { - const state = getState() - const userListIds = userList.map(l => l.id) - const removeUserListIds = state.list.userList.filter(l => !userListIds.includes(l.id)).map(l => l.id) - if (removeUserListIds.includes(state.common.setting.list.prevSelectListId)) { - dispatch(commonAction.setPrevSelectListId(state.list.defaultList.id)) - } - dispatch({ - type: TYPES.setSyncList, - payload: { defaultList, loveList, userList }, - }) - await removeList(removeUserListIds) - - await handleSaveListAllSort(userList) - - dispatch(playerAction.checkPlayList([...Object.keys(global.allList), ...removeUserListIds])) - saveList([defaultList, loveList, ...userList]) -} - -export const setList = ({ id, list, name, source, sourceListId, isSync }) => async(dispatch, getState) => { - const targetList = global.allList[id] - if (targetList) { - if (name && targetList.name === name) { - if (!isSync) listSync.sendListAction('set_list', { id, list, name, source, sourceListId }) - dispatch({ - type: TYPES.listClear, - payload: id, - }) - dispatch(listAddMultiple({ id, list, isSync: true })) - return - } - - id += '_' + Math.random() - } - if (!isSync) listSync.sendListAction('set_list', { id, list, name, source, sourceListId }) - - await dispatch(createUserList({ id, list, name, source, sourceListId, isSync: true })) -} - -export const listAdd = ({ musicInfo, id, addMusicLocationType, isSync }) => (dispatch, getState) => { - if (!addMusicLocationType) addMusicLocationType = getState().common.setting.list.addMusicLocationType - - if (!isSync) { - listSync.sendListAction('list_add', { id, musicInfo, addMusicLocationType }) - } - - dispatch({ - type: TYPES.listAdd, - payload: { - musicInfo, - id, - addMusicLocationType, - }, - }) - dispatch(playerAction.checkPlayList([id])) - saveList(global.allList[id]) -} - -export const listMove = ({ fromId, musicInfo, toId, isSync }) => (dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('list_move', { fromId, musicInfo, toId }) - } - - dispatch({ - type: TYPES.listMove, - payload: { fromId, musicInfo, toId }, - }) - dispatch(playerAction.checkPlayList([fromId, toId])) - saveList([global.allList[fromId], global.allList[toId]]) -} - -export const listAddMultiple = ({ id, list, addMusicLocationType, isSync }) => (dispatch, getState) => { - if (!addMusicLocationType) addMusicLocationType = getState().common.setting.list.addMusicLocationType - - if (!isSync) { - listSync.sendListAction('list_add_multiple', { id, list, addMusicLocationType }) - } - - dispatch({ - type: TYPES.listAddMultiple, - payload: { id, list, addMusicLocationType }, - }) - dispatch(playerAction.checkPlayList([id])) - saveList(global.allList[id]) -} - -export const listMoveMultiple = ({ fromId, toId, list, isSync }) => (dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('list_move_multiple', { fromId, toId, list }) - } - - dispatch({ - type: TYPES.listRemoveMultiple, - payload: { id: fromId, ids: list.map(s => s.songmid) }, - }) - dispatch({ - type: TYPES.listAddMultiple, - payload: { id: toId, list }, - }) - dispatch(playerAction.checkPlayList([fromId, toId])) - saveList([global.allList[fromId], global.allList[toId]]) -} - -export const listRemove = ({ listId, id, isSync }) => (dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('list_remove', { listId, id }) - } - - dispatch({ - type: TYPES.listRemove, - payload: { listId, id }, - }) - dispatch(playerAction.checkPlayList([listId])) - saveList(global.allList[listId]) -} - -export const listRemoveMultiple = ({ listId, ids, isSync }) => (dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('list_remove_multiple', { listId, ids }) - } - - dispatch({ - type: TYPES.listRemoveMultiple, - payload: { listId, ids }, - }) - dispatch(playerAction.checkPlayList([listId])) - saveList(global.allList[listId]) -} - -export const listClear = ({ id, isSync }) => (dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('list_clear', { id }) - } - - dispatch({ - type: TYPES.listClear, - payload: id, - }) - dispatch(playerAction.checkPlayList([id])) - saveList(global.allList[id]) -} - -export const updateMusicInfo = ({ listId, id, data, isSync }) => (dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('update_music_info', { listId, id, data }) - } - - dispatch({ - type: TYPES.updateMusicInfo, - payload: { listId, id, data }, - }) - saveList(global.allList[listId]) -} - -export const createUserList = ({ name, id = `userlist_${Date.now()}`, list = [], source, sourceListId, position, isSync }) => async(dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('create_user_list', { name, id, list, source, sourceListId, position }) - } - - dispatch({ - type: TYPES.createUserList, - payload: { name, id, source, sourceListId, position }, - }) - dispatch(listAddMultiple({ id, list, isSync: true })) - await saveList(global.allList[id]) - const state = getState() - await saveListSort(id, state.list.userList.length) - await saveListScrollPosition(id, 0) -} - -export const removeUserList = ({ id, isSync }) => async(dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('remove_user_list', { id }) - } - - const { list, common } = getState() - const index = list.userList.findIndex(l => l.id === id) - if (index < 0) return - if (common.setting.list.prevSelectListId == id) { - dispatch(commonAction.setPrevSelectListId(list.defaultList.id)) - } - dispatch({ - type: TYPES.removeUserList, - payload: index, - }) - await removeList(id) - console.log(common.setting.list.prevSelectListId, id) - dispatch(playerAction.checkPlayList([id])) -} - -const getOtherSourcePromises = new Map() - -export const getOtherSource = ({ musicInfo, id }) => (dispatch, getState) => { - if (musicInfo.otherSource?.length) return Promise.resolve(musicInfo.otherSource) - let key = `${musicInfo.source}_${musicInfo.songmid}` - if (getOtherSourcePromises.has(key)) return getOtherSourcePromises.get(key) - const promise = findMusic(musicInfo).then(otherSource => { - const targetList = global.allList[id] - if (targetList) { - const index = targetList.indexOf(musicInfo) - if (index > -1) { - dispatch({ - type: TYPES.setOtherSource, - payload: { otherSource, id, index }, - }) - } - } - return otherSource - }).finally(() => { - if (getOtherSourcePromises.has(key)) getOtherSourcePromises.delete(key) - }) - getOtherSourcePromises.set(key, promise) - return promise -} - -export const setUserListName = ({ id, name, isSync }) => async(dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('set_user_list_name', { id, name }) - } - - dispatch({ - type: TYPES.setUserListName, - payload: { id, name }, - }) - const targetList = global.allList[id] - await saveList(targetList) -} -export const setUserListPosition = ({ id, position, isSync }) => async(dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('set_user_list_position', { id, position }) - } - - dispatch({ - type: TYPES.setUserListPosition, - payload: { id, position }, - }) - - await handleSaveListAllSort(getState().list.userList) - - await saveList(global.allList[id]) -} -export const setMusicPosition = ({ id, position, list, isSync }) => async(dispatch, getState) => { - if (!isSync) { - listSync.sendListAction('set_music_position', { id, position, list }) - } - // const targetList = global.allList[id] - // if (!targetList) return - dispatch({ - type: TYPES.listRemoveMultiple, - payload: { listId: id, ids: list.map(m => m.songmid) }, - }) - dispatch({ - type: TYPES.setMusicPosition, - payload: { id, position, list }, - }) - dispatch(playerAction.checkPlayList([id])) - await saveList(global.allList[id]) -} - -export const setJumpPosition = isJumpPosition => async(dispatch, getState) => { - dispatch({ - type: TYPES.jumpPosition, - payload: isJumpPosition, - }) -} - -export const clearCache = () => async(dispatch, getState) => { - dispatch({ - type: TYPES.clearCache, - payload: null, - }) - await saveList(Object.values(global.allList)) - await clearMusicUrlAndLyric() -} diff --git a/src/store/modules/list/getter.js b/src/store/modules/list/getter.js deleted file mode 100644 index 737909c..0000000 --- a/src/store/modules/list/getter.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createSelector } from 'reselect' - - -// sourceInfo(state, getters, rootState, { sourceNames }) { -// return { sources: sources.map(item => ({ id: item.id, name: sourceNames[item.id] })), sortList } -// }, -// tags: state => state.tags, -// isVisibleListDetail: state => state.isVisibleListDetail, -// selectListInfo: state => state.selectListInfo, -// listData(state) { -// return state.list -// }, -// listDetail(state) { -// return state.listDetail -// }, - -export const defaultList = state => state.list.defaultList -export const loveList = state => state.list.loveList -export const userList = state => state.list.userList -export const isJumpPosition = state => state.list.isJumpPosition - -export const allList = createSelector([defaultList, loveList, userList], (defaultList, loveList, userList) => { - return [defaultList, loveList, ...userList] -}) - diff --git a/src/store/modules/list/index.js b/src/store/modules/list/index.js deleted file mode 100644 index f9cf685..0000000 --- a/src/store/modules/list/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import * as action from './action' -import * as getter from './getter' - -export { action, getter } -export { default as reducer } from './reducer' diff --git a/src/store/modules/list/reducer.js b/src/store/modules/list/reducer.js deleted file mode 100644 index c7f1872..0000000 --- a/src/store/modules/list/reducer.js +++ /dev/null @@ -1,338 +0,0 @@ -import { TYPES } from './action' - -const allList = global.allList = {} - -const allListInit = (defaultList, loveList, userList) => { - for (const id of Object.keys(allList)) { - delete allList[id] - } - allList[defaultList.id] = defaultList - allList[loveList.id] = loveList - for (const list of userList) allList[list.id] = list -} -const allListUpdate = list => { - allList[list.id] = list -} -const allListRemove = list => { - delete allList[list.id] -} - -// state -const initialState = { - isInitedList: false, - defaultList: { - id: 'default', - name: '试听列表', - list: [], - }, - loveList: { - id: 'love', - name: '我的收藏', - list: [], - }, - tempList: { - id: 'temp', - name: '临时列表', - list: [], - }, - userList: [], - listPosition: {}, - isJumpPosition: false, -} - -const updateStateList = (state, ids) => { - let isClonedUserList = false - let index - for (const id of ids) { - switch (id) { - case state.defaultList.id: - allList[id] = state.defaultList = { ...state.defaultList } - break - case state.loveList.id: - allList[id] = state.loveList = { ...state.loveList } - break - default: - if (!isClonedUserList) { - isClonedUserList = true - state.userList = [...state.userList] - } - index = state.userList.findIndex(l => l.id == id) - if (index < 0) continue - allList[id] = state.userList[index] = { ...state.userList[index] } - break - } - } - return state -} - -const mutations = { - [TYPES.initList](state, { defaultList, loveList, userList }) { - const newState = { ...state } - const ids = [] - if (defaultList != null) { - newState.defaultList = { ...state.defaultList, list: defaultList.list } - ids.push(defaultList.id) - } - if (loveList != null) { - newState.loveList = { ...state.loveList, list: loveList.list } - ids.push(loveList.id) - } - if (userList != null) { - newState.userList = userList - for (const list of userList) { - ids.push(list.id) - } - } - allListInit(newState.defaultList, newState.loveList, newState.userList) - newState.isInitedList = true - return updateStateList(newState, [ids]) - // console.log(allList.default, newState, ids) - // return newState - }, - [TYPES.setSyncList](state, { defaultList, loveList, userList }) { - const newState = { ...state } - newState.defaultList = defaultList - newState.loveList = loveList - newState.userList = userList - allListInit(newState.defaultList, newState.loveList, newState.userList) - return newState - }, - /* [TYPES.initList](state, { defaultList, loveList, userList }) { - const newState = { ...state } - if (defaultList != null) newState.defaultList = { ...state.defaultList, list: defaultList.list } - if (loveList != null) newState.loveList = { ...state.loveList, list: loveList.list } - if (userList != null) newState.userList = userList - allListInit(state.defaultList, state.loveList, state.userList) - state.isInitedList = true - return newState - }, - [TYPES.setList](state, { id, list, name, location }) { - const targetList = allList[id] - if (targetList) { - if (name && targetList.name === name) { - targetList.list.splice(0, targetList.list.length, ...list) - targetList.location = location - return - } - - id += '_' + Math.random() - } - const newList = { - name, - id, - list, - location, - } - allListUpdate(newList) - return { ...state, userList: [...state.userList, newList] } - }, */ - [TYPES.listAdd](state, { id, musicInfo, addMusicLocationType }) { - const targetList = allList[id] - if (!targetList) return state - if (targetList.list.some(s => s.songmid === musicInfo.songmid)) return state - switch (addMusicLocationType) { - case 'top': - targetList.list = [musicInfo, ...targetList.list] - break - case 'bottom': - default: - targetList.list = [...targetList.list, musicInfo] - break - } - return updateStateList({ ...state }, [id]) - }, - [TYPES.listMove](state, { fromId, musicInfo, toId, addMusicLocationType }) { - const fromList = allList[fromId] - const toList = allList[toId] - if (!fromList || !toList) return state - const newFromList = [...fromList.list] - let songmid = musicInfo.songmid - newFromList.splice(fromList.list.findIndex(m => m.songmid == songmid), 1) - fromList.list = newFromList - const index = toList.list.findIndex(s => s.songmid === musicInfo.songmid) - if (index < 0) { - switch (addMusicLocationType) { - case 'top': - toList.list = [musicInfo, ...toList.list] - break - case 'bottom': - default: - toList.list = [...toList.list, musicInfo] - break - } - } - return updateStateList({ ...state }, [fromId, toId]) - }, - [TYPES.listAddMultiple](state, { id, list, addMusicLocationType }) { - const targetList = allList[id] - if (!targetList) return state - let newList - const map = {} - const ids = [] - switch (addMusicLocationType) { - case 'top': - newList = [...list, ...targetList.list] - for (let i = newList.length - 1; i > -1; i--) { - const item = newList[i] - if (map[item.songmid]) continue - ids.unshift(item.songmid) - map[item.songmid] = item - } - break - case 'bottom': - default: - newList = [...targetList.list, ...list] - for (const item of newList) { - if (map[item.songmid]) continue - ids.push(item.songmid) - map[item.songmid] = item - } - break - } - targetList.list = ids.map(id => map[id]) - return updateStateList({ ...state }, [id]) - }, - [TYPES.listRemove](state, { listId, id }) { - const targetList = allList[listId] - // console.log(targetList, id, index) - if (!targetList) return state - const index = targetList.list.findIndex(item => item.songmid == id) - if (index < 0) return state - const newTargetList = [...targetList.list] - newTargetList.splice(index, 1) - targetList.list = newTargetList - return updateStateList({ ...state }, [listId]) - }, - [TYPES.listRemoveMultiple](state, { listId, ids: musicIds }) { - const targetList = allList[listId] - if (!targetList) return state - const map = {} - const ids = [] - for (const item of targetList.list) { - ids.push(item.songmid) - map[item.songmid] = item - } - for (const songmid of musicIds) { - if (map[songmid]) delete map[songmid] - } - const newList = [] - for (const id of ids) if (map[id]) newList.push(map[id]) - - targetList.list = newList - return updateStateList({ ...state }, [listId]) - }, - [TYPES.listClear](state, id) { - const targetList = allList[id] - if (!targetList) return state - targetList.list = [] - return updateStateList({ ...state }, [id]) - }, - [TYPES.updateMusicInfo](state, { listId, id, data }) { - const targetList = allList[listId] - if (!targetList) return state - const targetMusicInfo = targetList.list.find(item => item.songmid == id) - if (!targetMusicInfo) return state - const newTargetList = [...targetList.list] - Object.assign(targetMusicInfo, data) - targetList.list = newTargetList - return updateStateList({ ...state }, [listId]) - }, - - [TYPES.createUserList](state, { name, id, source, sourceListId, position }) { - let newList = state.userList.find(item => item.id === id) - if (newList) return state - const newState = { ...state } - newList = { - name, - id, - list: [], - source, - sourceListId, - } - const userList = [...state.userList] - if (position == null) { - userList.push(newList) - } else { - newList.locationUpdateTime = Date.now() - userList.splice(position + 1, 0, newList) - } - newState.userList = userList - allListUpdate(newList) - return newState - }, - [TYPES.removeUserList](state, index) { - const newState = { ...state } - const newUserList = [...newState.userList] - const removedList = newUserList.splice(index, 1)[0] - allListRemove(removedList) - newState.userList = newUserList - return newState - }, - [TYPES.setUserListName](state, { id, name }) { - const targetList = allList[id] - if (!targetList) return state - targetList.name = name - return updateStateList({ ...state }, [id]) - }, - [TYPES.setUserListPosition](state, { id, position }) { - const targetList = allList[id] - if (!targetList) return state - const index = state.userList.findIndex(l => l.id == targetList.id) - if (index < 0) return state - const newState = { ...state, userList: [...state.userList] } - newState.userList.splice(index, 1) - newState.userList.splice(Math.max(Math.min(position, newState.userList.length), 0), 0, targetList) - return newState - }, - [TYPES.setMusicPosition](state, { id, position, list }) { - const targetList = allList[id] - if (!targetList) return state - targetList.list.splice(position - 1, 0, ...list) - return updateStateList({ ...state }, [id]) - }, - // { fromId, toId, list } - // [TYPES.setListScroll](state, { id, location }) { - // const targetList = allList[id] - // if (!targetList) return state - // targetList.location = location - // return updateStateList({ ...state }, [id]) - // }, - [TYPES.setOtherSource](state, { otherSource, id, index }) { - const targetList = allList[id] - if (!targetList) return state - const newTargetList = [...targetList.list] - newTargetList[index].otherSource = otherSource - targetList.list = newTargetList - return updateStateList({ ...state }, [id]) - }, - [TYPES.clearCache](state) { - const lists = Object.values(global.allList) - for (const { list } of lists) { - for (const item of list) { - if (item.otherSource) item.otherSource = null - if (item.typeUrl['128k']) delete item.typeUrl['128k'] - if (item.typeUrl['320k']) delete item.typeUrl['320k'] - if (item.typeUrl.flac) delete item.typeUrl.flac - if (item.typeUrl.wav) delete item.typeUrl.wav - - // PC v1.8.2以前的Lyric - if (item.lxlrc) delete item.lxlrc - if (item.lrc) delete item.lrc - if (item.tlrc) delete item.tlrc - } - } - return state - }, - - [TYPES.jumpPosition](state, isJumpPosition) { - return { - ...state, - isJumpPosition, - } - }, -} - -export default (state = initialState, action) => mutations[action.type] - ? mutations[action.type](state, action.payload) - : state - diff --git a/src/store/modules/player/action.js b/src/store/modules/player/action.js deleted file mode 100644 index 4ed2663..0000000 --- a/src/store/modules/player/action.js +++ /dev/null @@ -1,963 +0,0 @@ -import { AppState } from 'react-native' -import music from '@/utils/music' -import { initial as msInitial, isInitialized } from '@/plugins/player' -import { - playMusic as msPlayMusic, - play, - stop, - pause, - seekTo, - resetPlay, - getPosition, - isEmpty, - destroy as msDestroy, -} from '@/plugins/player/utils' -import { - buildTrack, - buildTracks, - delayUpdateMusicInfo, -} from '@/plugins/player/playList' -import { getRandom } from '@/utils' -import { getMusicUrl, saveMusicUrl, getLyric, saveLyric, assertApiSupport, savePlayInfo, saveList, checkNotificationPermission } from '@/utils/tools' -import { playInfo as playInfoGetter } from './getter' -import { play as lrcPlay, setLyric, pause as lrcPause, stop as lrcStop, toggleTranslation as lrcToggleTranslation, toggleRoma as lrcToggleRoma } from '@/utils/lyric' -import { - showLyric, hideLyric, - setLyric as lrcdSetLyric, - toggleLock, - setTheme, - setLyricTextPosition, - setAlpha, - setTextSize, - setWidth, - setMaxLineNum, - setSingleLine, - setShowToggleAnima, -} from '@/utils/lyricDesktop' -import { action as listAction } from '@/store/modules/list' -import { LIST_ID_PLAY_LATER, MUSIC_TOGGLE_MODE } from '@/config/constant' -import { i18n } from '@/plugins/i18n' -// import { defaultList } from '../list/getter' -import { tranditionalize } from '@/utils/simplify-chinese-main' - -export const TYPES = { - setPic: null, - setList: null, - setPlayIndex: null, - addMusicToPlayedList: null, - removeMusicFormPlayedList: null, - clearPlayedList: null, - visiblePlayerDetail: null, - playNext: null, - playPrev: null, - setStatus: null, - setGetingUrlState: null, - setPlayMusicInfo: null, - setTempPlayList: null, - removeTempPlayList: null, - clearTempPlayeList: null, - updateListInfo: null, -} - -export const STATUS = { - none: 'NONE', - playing: 'PLAYING', - pause: 'PAUSE', - stop: 'STOP', - error: 'ERROR', - buffering: 'BUFFERING', - connecting: 'CONNECTING', - gettingUrl: 'GETTING_URL', -} - -for (const key of Object.keys(TYPES)) { - TYPES[key] = `player__${key}` -} - -let timeout -let _playMusicInfo = null -let playMusicId = null -// let nextMusic = null - -const getPlayType = (state, songInfo) => { - let type = '128k' - const list = global.globalObj.qualityList[songInfo.source] - if (state.common.setting.player.highQuality && songInfo._types['320k'] && list && list.includes('320k')) type = '320k' - return type -} - -// const handleRestorePlay = (state, dispatch, playMusicInfo, musicInfo) => { -// if (!musicInfo.img) { -// dispatch(getPic(musicInfo)).then(async() => { -// if (playMusicId != id) return -// const musicUrl = await getMusicUrl(musicInfo, type) -// if (musicUrl) { -// console.log('+++updateMusicInfo+++') -// // setTimeout(() => { -// updateMusicInfo(buildTrack(musicInfo, type, musicUrl)) -// // }, 1000) -// } -// }) -// } -// dispatch(getLrc(musicInfo)).then(({ lyric, tlyric }) => { -// if (playMusicId != id) return -// setLyric(lyric) -// const player = getState().player -// if (player.status == STATUS.playing && !player.isGettingUrl) { -// getPosition().then(position => { -// lrcPlay(position * 1000) -// }) -// } -// }) -// if (state.common.setting.player.togglePlayMethod == 'random') dispatch({ type: TYPES.addMusicToPlayedList, payload: playMusicInfo }) -// } - -const handlePlayMusic = async({ getState, dispatch, playMusicInfo, musicInfo, isRefresh = false, time = 0 }) => { - const state = getState() - - // if (global.restorePlayInfo) { - // handleRestorePlay(state, dispatch, playMusicInfo, musicInfo) - - // global.restorePlayInfo = null - // return - // } - - const type = getPlayType(state, musicInfo) - if (timeout) { - clearTimeout(timeout) - timeout = null - } - // setLyric('') - console.log('Handle Play Music ====================>', musicInfo.name) - global.playInfo.currentPlayMusicInfo = _playMusicInfo = musicInfo - let id = `${musicInfo.source}//${musicInfo.songmid}//${type}` - playMusicId = id - - global.playInfo.isPlaying = false - if (global.restorePlayInfo) { - const track = buildTrack({ musicInfo, type }) - delayUpdateMusicInfo(track) - track.id += track.id + '//restorePlay' - playMusicId = playMusicId + '//restorePlay' - msPlayMusic([track]) - if (!isRefresh && state.common.setting.player.togglePlayMethod == 'random') dispatch({ type: TYPES.addMusicToPlayedList, payload: playMusicInfo }) - - // console.log(musicInfo.img) - if (!musicInfo.img) { - dispatch(getPic(musicInfo)).then(async() => { - const musicUrl = await getMusicUrl(musicInfo, type) - if (playMusicId != id) return - if (musicUrl && state.common.setting.player.isShowNotificationImage) { - // console.log('+++updateMusicInfo+++') - // setTimeout(() => { - delayUpdateMusicInfo(buildTrack({ musicInfo, type, url: musicUrl })) - // }, 1000) - } - }) - } - dispatch(getLrc(musicInfo)).then(({ lyric, tlyric, rlyric }) => { - if (playMusicId != id) return - const { common, player } = getState() - setLyric(common.setting.player.isS2t ? tranditionalize(lyric) : lyric, common.setting.player.isS2t ? tranditionalize(tlyric) : tlyric, rlyric) - if (player.status == STATUS.playing && !player.isGettingUrl) { - getPosition().then(position => { - lrcPlay(position * 1000) - }) - } - }) - return - } - - dispatch(setGetingUrlState(true)) - dispatch(setStatus({ - status: STATUS.gettingUrl, - text: '加载中...', - })) - delayUpdateMusicInfo(buildTrack({ musicInfo, type })) - Promise.all([ - dispatch(getUrl({ musicInfo, type, isRefresh })), - resetPlay(), - ]).then(([url]) => { - // console.log('url get done', getState().player.status) - if (playMusicId != id) return - switch (getState().player.status) { - case STATUS.stop: - case STATUS.pause: - return - } - msPlayMusic(buildTracks({ musicInfo, type, url }), time) - }).catch(err => { - if (playMusicId != id) return - dispatch(setStatus({ status: STATUS.error, text: err.message })) - if (AppState.currentState == 'active') { - console.log('wait 2s...') - timeout = setTimeout(() => { - console.log('play next music') - dispatch(playNext()) - }, 2000) - } else { - console.log('play next music') - dispatch(playNext()) - } - }).finally(() => { - if (playMusicId != id) return - if (getState().player.isGettingUrl) dispatch(setGetingUrlState(false)) - // console.log('set url getting done') - }) - // console.log(AppState.currentState) - if (!isRefresh && !playMusicInfo.isTempPlay && state.common.setting.player.togglePlayMethod == 'random') dispatch({ type: TYPES.addMusicToPlayedList, payload: playMusicInfo }) - - // console.log(musicInfo.img) - if (!musicInfo.img) { - dispatch(getPic(musicInfo)).then(() => { - if (playMusicId != id || !state.common.setting.player.isShowNotificationImage) return - delayUpdateMusicInfo(buildTrack({ musicInfo, type })) - }) - } - dispatch(getLrc(musicInfo)).then(({ lyric, tlyric, rlyric }) => { - if (playMusicId != id) return - const { common, player } = getState() - setLyric(common.setting.player.isS2t ? tranditionalize(lyric) : lyric, common.setting.player.isS2t ? tranditionalize(tlyric) : tlyric, rlyric) - if (player.status == STATUS.playing && !player.isGettingUrl) { - getPosition().then(position => { - lrcPlay(position * 1000) - }) - } - }) - - // nextMusic = getNextMusicInfo(state) - const playInfo = playInfoGetter(getState()) - - if (!playInfo.isTempPlay) { - savePlayInfo({ - time: 0, - maxTime: playInfo.musicInfo.interval || 0, - listId: playInfo.listId, - list: playInfo.listId == null ? playInfo.list : null, - index: playInfo.playIndex, - }) - } -} -/* -const getNextMusicInfo = state => { - const currentMusic = state.player.listInfo.list[state.player.playIndex] - let playedList = [...state.player.playedList] - const currentList = state.player.listInfo.list - if (state.common.setting.player.togglePlayMethod == 'random' && state.player.playedList.length) { - let index = playedList.indexOf(currentMusic) - index += 1 - while (true) { - if (index < playedList.length) { - const listIndex = currentList.indexOf(playedList[index]) - if (listIndex < 0) { - playedList.splice(index, 1) - continue - } - return currentList[listIndex] - } - break - } - } - let list - while (true) { - const tempPlayedList = [...playedList] - list = currentList.filter(s => { - const index = tempPlayedList.indexOf(s) - if (index > -1) { - tempPlayedList.splice(index, 1) - return false - } - return assertApiSupport(s.source) - }) - - if (!list.length && playedList.length) { - playedList = [] - continue - } - break - } - - if (!list.length) return null - - const playIndex = list.indexOf(currentMusic) - let index - // console.log(playIndex, list) - switch (state.common.setting.player.togglePlayMethod) { - case 'listLoop': - index = playIndex === list.length - 1 ? 0 : playIndex + 1 - break - case 'random': - index = getRandom(0, list.length) - break - case 'list': - index = playIndex === list.length - 1 ? -1 : playIndex + 1 - break - case 'singleLoop': - index = playIndex - break - default: - return - } - if (index < 0) return null - return list[index] -} - */ -export const stopMusic = () => async(dispatch, getState) => { - _playMusicInfo = null - await dispatch(playMusic(null)) - dispatch(setStatus({ status: STATUS.stop, text: '' })) - lrcStop() - savePlayInfo(null) - delayUpdateMusicInfo({}) -} - -export const pauseMusic = () => async(dispatch, getState) => { - const state = getState() - if (state.isGettingUrl) { - dispatch(setStatus({ status: STATUS.pause, text: '已暂停' })) - return - } - lrcPause() - dispatch(setStatus({ status: STATUS.pause, text: '已暂停' })) - await pause() -} - -export const setStatus = ({ status, text }) => { - console.log(status, text) - return { - type: TYPES.setStatus, - payload: { status, text }, - } -} - - -const handleGetUrl = function(dispatch, listId, musicInfo, type, retryedSource = [], originMusic) { - // console.log(musicInfo.source) - if (!originMusic) originMusic = musicInfo - let reqPromise - try { - reqPromise = music[musicInfo.source].getMusicUrl(musicInfo, type).promise - } catch (err) { - reqPromise = Promise.reject(err) - } - return reqPromise.catch(err => { - if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) - return dispatch(listAction.getOtherSource({ musicInfo: originMusic, listId })).then(otherSource => { - console.log('find otherSource', otherSource.map(s => s.source)) - if (otherSource.length) { - for (const item of otherSource) { - if (retryedSource.includes(item.source) || !assertApiSupport(item.source)) continue - console.log('try toggle to: ', item.source, item.name, item.singer, item.interval) - return handleGetUrl(dispatch, listId, item, type, retryedSource, originMusic) - } - } - return Promise.reject(err) - }) - }) -} -const handleGetPic = function(dispatch, listId, musicInfo, retryedSource = [], originMusic) { - // console.log(musicInfo.source) - if (!originMusic) originMusic = musicInfo - let reqPromise - try { - reqPromise = music[musicInfo.source].getPic(musicInfo).promise - } catch (err) { - reqPromise = Promise.reject(err) - } - return reqPromise.catch(err => { - if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) - return dispatch(listAction.getOtherSource({ musicInfo: originMusic, listId })).then(otherSource => { - console.log('find otherSource', otherSource.map(s => s.source)) - if (otherSource.length) { - for (const item of otherSource) { - if (retryedSource.includes(item.source)) continue - console.log('try toggle to: ', item.source, item.name, item.singer, item.interval) - return handleGetPic(dispatch, listId, item, retryedSource, originMusic) - } - } - return Promise.reject(err) - }) - }) -} -const handleGetLyric = function(dispatch, listId, musicInfo, retryedSource = [], originMusic) { - if (!originMusic) originMusic = musicInfo - let reqPromise - try { - reqPromise = music[musicInfo.source].getLyric(musicInfo).promise - } catch (err) { - reqPromise = Promise.reject(err) - } - return reqPromise.catch(err => { - if (!retryedSource.includes(musicInfo.source)) retryedSource.push(musicInfo.source) - return dispatch(listAction.getOtherSource({ musicInfo: originMusic, listId })).then(otherSource => { - console.log('find otherSource', otherSource.map(s => s.source)) - if (otherSource.length) { - for (const item of otherSource) { - if (retryedSource.includes(item.source)) continue - console.log('try toggle to: ', item.source, item.name, item.singer, item.interval) - return handleGetLyric(dispatch, listId, item, retryedSource, originMusic) - } - } - return Promise.reject(err) - }) - }) -} - -export const getUrl = ({ musicInfo, type, isRefresh }) => async(dispatch, getState) => { - const cachedUrl = await getMusicUrl(musicInfo, type) - if (cachedUrl && !isRefresh) return cachedUrl - - dispatch(setStatus({ - status: STATUS.gettingUrl, - text: isRefresh ? 'URL刷新中...' : 'URL获取中...', - })) - - return handleGetUrl(dispatch, getState().player.listInfo.id, musicInfo, type).then(result => { - saveMusicUrl(musicInfo, type, result.url) - // console.log('get' + musicInfo.name + ' url success: ' + result.url) - return result.url - }).catch(err => { - console.log('get' + musicInfo.name + ' url fail: ' + err.message) - return Promise.reject(err) - }) -} - -export const refreshMusicUrl = (musicInfo, restorePlayTime) => (dispatch, getState) => { - const state = getState() - const targetMusic = state.player.listInfo.list.find(s => s.songmid == musicInfo.songmid) - if (!targetMusic) { - console.log('[refreshMusicUrl]Not found target music: ', musicInfo.name) - dispatch(playNext()) - return - } - const songmid = targetMusic.songmid - const index = state.player.listInfo.list.findIndex(m => m.songmid == songmid) - return handlePlayMusic({ - getState, - dispatch, - index, - musicInfo: targetMusic, - isRefresh: true, - time: restorePlayTime, - }) -} - -export const playMusic = playMusicInfo => async(dispatch, getState) => { - // console.log(playMusicInfo) - const { player, common } = getState() - - if (!isInitialized()) { - await checkNotificationPermission() - await msInitial({ - cacheSize: common.setting.player.cacheSize, - isHandleAudioFocus: common.setting.player.isHandleAudioFocus, - }) - } - - // 从暂停播放恢复播放 - if (playMusicInfo === undefined) { - if (player.isGettingUrl || !_playMusicInfo) return - // console.log(player.isGettingUrl, _playMusicInfo) - if (/\/\/restorePlay$/.test(playMusicId) || player.status == STATUS.none || isEmpty()) { - handlePlayMusic({ - getState, - dispatch, - playMusicInfo: player.playMusicInfo, - musicInfo: player.playMusicInfo.musicInfo, - }) - return - } - console.log('play') - await play() - return - } - - // 停止播放 - let playIndex = player.playIndex - if (playMusicInfo === null) { - playIndex = -1 - dispatch({ - type: TYPES.setPlayMusicInfo, - payload: { - playMusicInfo, - playIndex, - }, - }) - global.playInfo.currentPlayMusicInfo = _playMusicInfo = playMusicInfo - playMusicId = '' - global.playInfo.isPlaying = false - await stop() - } else { // 设置歌曲信息并播放歌曲 - setLyric('') - let listId = playMusicInfo.listId - // console.log(playMusicInfo) - if (listId != LIST_ID_PLAY_LATER && !playMusicInfo.isTempPlay && listId === player.listInfo.id) { - const currentSongmid = playMusicInfo.musicInfo.songmid || playMusicInfo.musicInfo.musicInfo.songmid - playIndex = player.listInfo.list.findIndex(m => (m.songmid || m.musicInfo.songmid) == currentSongmid) - } - dispatch({ - type: TYPES.setPlayMusicInfo, - payload: { - playMusicInfo, - playIndex, - }, - }) - handlePlayMusic({ - getState, - dispatch, - playMusicInfo, - musicInfo: playMusicInfo.musicInfo, - }) - } -} - -export const setProgress = time => async(dispatch, getState) => { - const { player } = getState() - if (player.isGettingUrl || !_playMusicInfo) return - await seekTo(time) - if (player.status != STATUS.playing) dispatch(playMusic()) -} - -export const getPic = musicInfo => (dispatch, getState) => { - return handleGetPic(dispatch, getState().player.listInfo.id, musicInfo).then(url => { - // picRequest = null - dispatch({ type: TYPES.setPic, payload: { musicInfo, url } }) - const state = getState() - if (state.player.listInfo.id) saveList(global.allList[state.player.listInfo.id]) - }).catch(err => { - // picRequest = null - return Promise.reject(err) - }) -} -export const getLrc = musicInfo => async(dispatch, getState) => { - let lyricInfo = await getLyric(musicInfo) - if (lyricInfo.lyric && lyricInfo.tlyric != null) { - if (lyricInfo.rlyric == null) { - if (musicInfo.source != 'wy') return lyricInfo - } return lyricInfo - } - - return handleGetLyric(dispatch, getState().player.listInfo.id, musicInfo).then(({ lyric, tlyric, rlyric }) => { - // picRequest = null - lyricInfo = { lyric, tlyric, rlyric } - saveLyric(musicInfo, lyricInfo) - return lyricInfo - }).catch(err => { - // picRequest = null - return Promise.reject(err) - }) -} - -export const setList = ({ list, index }) => (dispatch, getState) => { - if (!(list && list.list && list.list[index])) return - dispatch(setListInfo(list)) - - const state = getState() - if (state.player.playedList.length) dispatch({ type: TYPES.clearPlayedList }) - if (state.player.tempPlayList.length) dispatch({ type: TYPES.clearTempPlayeList }) - return dispatch(playMusic({ - musicInfo: list.list[index], - listId: list.id, - })) -} - -const filterList = async({ playedList, listInfo, savePath, dispatch }) => { - // if (this.list.listName === null) return - let list - let canPlayList = [] - const filteredPlayedList = playedList.filter(({ listId, isTempPlay }) => listInfo.id === listId && !isTempPlay).map(({ musicInfo }) => musicInfo) - if (listInfo.id == 'download') { - list = [] - // for (const item of listInfo.list) { - // const filePath = path.join(savePath, item.fileName) - // if (!await checkPath(filePath) || !item.isComplate || /\.ape$/.test(filePath)) continue - - // canPlayList.push(item) - - // // 排除已播放音乐 - // let index = filteredPlayedList.indexOf(item) - // if (index > -1) { - // filteredPlayedList.splice(index, 1) - // continue - // } - // list.push(item) - // } - } else { - list = listInfo.list.filter(s => { - // if (!assertApiSupport(s.source)) return false - canPlayList.push(s) - - let index = filteredPlayedList.findIndex(m => (m.songmid || m.musicInfo.songmid) == s.songmid) - if (index > -1) { - filteredPlayedList.splice(index, 1) - return false - } - return true - }) - } - if (!list.length && playedList.length) { - dispatch({ type: TYPES.clearPlayedList }) - return canPlayList - } - return list -} - -export const playPrev = () => async(dispatch, getState) => { - const { player, common } = getState() - const currentListId = player.listInfo.id - const currentList = player.listInfo.list - const playInfo = playInfoGetter(getState()) - if (player.playedList.length) { - let currentSongmid - if (player.playMusicInfo.isTempPlay) { - const musicInfo = currentList[playInfo.listPlayIndex] - if (musicInfo) currentSongmid = musicInfo.songmid || musicInfo.musicInfo.songmid - } else { - currentSongmid = player.playMusicInfo.musicInfo.songmid || player.playMusicInfo.musicInfo.musicInfo.songmid - } - // 从已播放列表移除播放列表已删除的歌曲 - let index - for (index = player.playedList.findIndex(m => (m.musicInfo.songmid || m.musicInfo.musicInfo.songmid) === currentSongmid) - 1; index > -1; index--) { - const playMusicInfo = player.playedList[index] - const currentSongmid = playMusicInfo.musicInfo.songmid || playMusicInfo.musicInfo.musicInfo.songmid - if (playMusicInfo.listId == currentListId && !currentList.some(m => (m.songmid || m.musicInfo.songmid) === currentSongmid)) { - dispatch({ type: TYPES.removeMusicFormPlayedList, payload: index }) - continue - } - break - } - - if (index > -1) { - dispatch(playMusic(player.playedList[index])) - return - } - } - - let filteredList = await filterList({ - listInfo: player.listInfo, - playedList: player.playedList, - savePath: common.setting.download.savePath, - dispatch, - }) - - if (!filteredList.length) return dispatch(playMusic(null)) - - let listPlayIndex = playInfo.listPlayIndex - const currentListLength = player.listInfo.list.length - 1 - if (listPlayIndex == -1 && currentListLength) { - listPlayIndex = global.prevListPlayIndex >= currentListLength ? 0 : global.prevListPlayIndex + 1 - } - let currentIndex = listPlayIndex - if (currentIndex < 0) currentIndex = 0 - let nextIndex = currentIndex - if (!playInfo.isTempPlay) { - switch (common.setting.player.togglePlayMethod) { - case MUSIC_TOGGLE_MODE.random: - nextIndex = getRandom(0, filteredList.length) - break - case MUSIC_TOGGLE_MODE.listLoop: - case MUSIC_TOGGLE_MODE.list: - case MUSIC_TOGGLE_MODE.singleLoop: - case MUSIC_TOGGLE_MODE.none: - nextIndex = currentIndex === 0 ? filteredList.length - 1 : currentIndex - 1 - break - default: - nextIndex = -1 - return - } - if (nextIndex < 0) return - } - - dispatch(playMusic({ - musicInfo: filteredList[nextIndex], - listId: currentListId, - })) -} - -export const playNext = isAutoToggle => async(dispatch, getState) => { - const { player, common } = getState() - if (player.tempPlayList.length) { - const playMusicInfo = player.tempPlayList[0] - dispatch(removeTempPlayList(0)) - dispatch(playMusic(playMusicInfo)) - return - } - const currentListId = player.listInfo.id - const currentList = player.listInfo.list - const playInfo = playInfoGetter(getState()) - if (player.playedList.length) { - let currentSongmid - if (player.playMusicInfo.isTempPlay) { - const musicInfo = currentList[playInfo.listPlayIndex] - if (musicInfo) currentSongmid = musicInfo.songmid || musicInfo.musicInfo.songmid - } else { - currentSongmid = player.playMusicInfo.musicInfo.songmid || player.playMusicInfo.musicInfo.musicInfo.songmid - } - // 从已播放列表移除播放列表已删除的歌曲 - let index - for (index = player.playedList.findIndex(m => (m.musicInfo.songmid || m.musicInfo.musicInfo.songmid) === currentSongmid) + 1; index < player.playedList.length; index++) { - const playMusicInfo = player.playedList[index] - const currentSongmid = playMusicInfo.musicInfo.songmid || playMusicInfo.musicInfo.musicInfo.songmid - if (playMusicInfo.listId == currentListId && !currentList.some(m => (m.songmid || m.musicInfo.songmid) === currentSongmid)) { - dispatch({ type: TYPES.removeMusicFormPlayedList, payload: index }) - continue - } - break - } - - if (index < player.playedList.length) { - dispatch(playMusic(player.playedList[index])) - return - } - } - - let filteredList = await filterList({ - listInfo: player.listInfo, - playedList: player.playedList, - savePath: common.setting.download.savePath, - dispatch, - }) - - // console.log(filteredList) - if (!filteredList.length) return dispatch(playMusic(null)) - let listPlayIndex = playInfo.listPlayIndex - const currentListLength = player.listInfo.list.length - 1 - if (listPlayIndex == -1 && currentListLength) { - listPlayIndex = global.prevListPlayIndex > currentListLength ? currentListLength : global.prevListPlayIndex - 1 - } - const currentIndex = listPlayIndex - let nextIndex = currentIndex - let togglePlayMethod = common.setting.player.togglePlayMethod - if (isAutoToggle !== true) { - switch (togglePlayMethod) { - case MUSIC_TOGGLE_MODE.list: - case MUSIC_TOGGLE_MODE.singleLoop: - case MUSIC_TOGGLE_MODE.none: - togglePlayMethod = MUSIC_TOGGLE_MODE.listLoop - } - } - switch (togglePlayMethod) { - case MUSIC_TOGGLE_MODE.listLoop: - nextIndex = currentIndex === filteredList.length - 1 ? 0 : currentIndex + 1 - break - case MUSIC_TOGGLE_MODE.random: - nextIndex = getRandom(0, filteredList.length) - break - case MUSIC_TOGGLE_MODE.list: - nextIndex = currentIndex === filteredList.length - 1 ? -1 : currentIndex + 1 - break - case MUSIC_TOGGLE_MODE.singleLoop: - break - default: - nextIndex = -1 - break - } - - if (nextIndex < 0) { - dispatch(setStatus({ status: STATUS.stop, text: i18n.t('stopped') })) - lrcPause() - return - } - - dispatch(playMusic({ - musicInfo: filteredList[nextIndex], - listId: currentListId, - })) -} - - -export const setPlayIndex = index => ({ - type: TYPES.setPlayIndex, - payload: index, -}) - -export const addMusicToPlayedList = playMusicInfo => ({ - type: TYPES.addMusicToPlayedList, - payload: playMusicInfo, -}) - -export const removeMusicFormPlayedList = index => ({ - type: TYPES.removeMusicFormPlayedList, - payload: index, -}) - -export const clearPlayedList = () => ({ - type: TYPES.clearPlayedList, -}) - -export const visiblePlayerDetail = visible => ({ - type: TYPES.visiblePlayerDetail, - payload: visible, -}) - -export const setGetingUrlState = flag => ({ - type: TYPES.setGetingUrlState, - payload: flag, -}) -export const setTempPlayList = list => (dispatch, getState) => { - dispatch({ - type: TYPES.setTempPlayList, - payload: list.map(({ musicInfo, listId }) => ({ musicInfo, listId, isTempPlay: true })), - }) - if (!getState().player.playMusicInfo) dispatch(playNext()) -} -export const removeTempPlayList = index => ({ - type: TYPES.removeTempPlayList, - payload: index, -}) - -export const setListInfo = listInfo => ({ - type: TYPES.setList, - payload: listInfo, -}) - -export const toggleTranslation = isShow => async(dispatch, getState) => { - lrcToggleTranslation(isShow) - const player = getState().player - if (player.status == STATUS.playing && !player.isGettingUrl) { - getPosition().then(position => { - lrcPlay(position * 1000) - }) - } -} - -export const toggleRoma = isShow => async(dispatch, getState) => { - lrcToggleRoma(isShow) - const player = getState().player - if (player.status == STATUS.playing && !player.isGettingUrl) { - getPosition().then(position => { - lrcPlay(position * 1000) - }) - } -} - -export const toggleS2T = () => async(dispatch, getState) => { - if (!global.playInfo.currentPlayMusicInfo) return - let id = playMusicId - dispatch(getLrc(global.playInfo.currentPlayMusicInfo)).then(({ lyric, tlyric, rlyric }) => { - if (playMusicId != id) return - const { common, player } = getState() - setLyric(common.setting.player.isS2t ? tranditionalize(lyric) : lyric, common.setting.player.isS2t ? tranditionalize(tlyric) : tlyric, rlyric) - if (player.status == STATUS.playing && !player.isGettingUrl) { - getPosition().then(position => { - lrcPlay(position * 1000) - }) - } - }) -} - -export const toggleDesktopLyric = isShow => async(dispatch, getState) => { - if (isShow) { - const { common, player } = getState() - const desktopLyric = common.setting.desktopLyric - const [{ lyric, tlyric, rlyric }] = await Promise.all([ - _playMusicInfo - ? getLyric(_playMusicInfo).catch(() => ({ lyric: '', tlyric: '', rlyric: '' })) - : Promise.resolve({ lyric: '', tlyric: '', rlyric: '' }), - showLyric({ - isShowToggleAnima: desktopLyric.showToggleAnima, - isSingleLine: desktopLyric.isSingleLine, - isLock: desktopLyric.isLock, - themeId: desktopLyric.theme, - opacity: desktopLyric.style.opacity, - textSize: desktopLyric.style.fontSize, - width: desktopLyric.width, - maxLineNum: desktopLyric.maxLineNum, - positionX: desktopLyric.position.x, - positionY: desktopLyric.position.y, - textPositionX: desktopLyric.textPosition.x, - textPositionY: desktopLyric.textPosition.y, - }), - ]) - await lrcdSetLyric(common.setting.player.isS2t ? tranditionalize(lyric) : lyric, common.setting.player.isS2t ? tranditionalize(tlyric) : tlyric, rlyric) - if (player.status == STATUS.playing && !player.isGettingUrl) { - getPosition().then(position => { - lrcPlay(position * 1000) - }) - } - } else { - hideLyric() - } -} - -export const toggleDesktopLyricLock = isLock => async(dispatch, getState) => { - toggleLock(isLock) -} -export const setDesktopLyricSingleLine = isSingleLine => async(dispatch, getState) => { - setSingleLine(isSingleLine) -} -export const setDesktopLyricShowToggleAnima = showToggleAnima => async(dispatch, getState) => { - setShowToggleAnima(showToggleAnima) -} -export const setDesktopLyricWidth = width => async(dispatch, getState) => { - setWidth(width) -} -export const setDesktopLyricMaxLineNum = maxLineNum => async(dispatch, getState) => { - setMaxLineNum(maxLineNum) -} -export const setDesktopLyricTheme = theme => async(dispatch, getState) => { - setTheme(theme) -} -export const setDesktopLyricStyle = style => async(dispatch, getState) => { - if (style.opacity != null) setAlpha(style.opacity) - if (style.fontSize != null) setTextSize(style.fontSize) -} -export const setDesktopLyricTextPosition = position => async(dispatch, getState) => { - setLyricTextPosition(position.x, position.y) -} - -export const checkPlayList = listIds => async(dispatch, getState) => { - const { player, list: listState } = getState() - if (!_playMusicInfo || !listIds.some(id => player.listInfo.id === id)) return - const listInfo = global.allList[player.listInfo.id] - if (!listInfo) { - if (player.playMusicInfo.listId == LIST_ID_PLAY_LATER) { - dispatch(setListInfo(listState.defaultList)) - dispatch(setPlayIndex(-1)) - } else { - if (listState.defaultList.list.length) { - await dispatch(setList({ list: listState.defaultList, index: 0 })) - } else { - await dispatch(stopMusic()) - } - } - return - } - - const isChnagedList = listInfo !== player.listInfo - - const list = listInfo.list - - if (isChnagedList) dispatch(setListInfo(listInfo)) - if (player.playMusicInfo.isTempPlay) return - if (player.playMusicInfo.listId != LIST_ID_PLAY_LATER) { - // if (player.playIndex > listInfo.list.length) { - // dispatch(setPlayIndex(listInfo.list.length)) - // } - // } else { - let songmid = _playMusicInfo.songmid - let index = list.findIndex(m => m.songmid == songmid) - // console.log(index) - if (index < 0) { - // console.log(this.playIndex) - if (list.length) { - dispatch(setPlayIndex(Math.min(player.playIndex - 1, list.length - 1))) - // if (isChnagedList) dispatch(setListInfo(listInfo)) - await dispatch(playNext()) - } else { - // if (isChnagedList) dispatch(setListInfo(listInfo)) - await dispatch(stopMusic()) - } - } else { - // console.log(isChnagedList) - // if (isChnagedList) dispatch(setListInfo(listInfo)) - dispatch(setPlayIndex(index)) - } - // console.log(this.playIndex) - } -} - -export const destroy = () => async(dispatch, getState) => { - await msDestroy() - dispatch(setStatus({ status: STATUS.none, text: '' })) -} diff --git a/src/store/modules/player/getter.js b/src/store/modules/player/getter.js deleted file mode 100644 index e24bcc1..0000000 --- a/src/store/modules/player/getter.js +++ /dev/null @@ -1,67 +0,0 @@ -import { createSelector } from 'reselect' -import { LIST_ID_PLAY_LATER } from '@/config/constant' - - -// sourceInfo(state, getters, rootState, { sourceNames }) { -// return { sources: sources.map(item => ({ id: item.id, name: sourceNames[item.id] })), sortList } -// }, -// tags: state => state.tags, -// isVisibleListDetail: state => state.isVisibleListDetail, -// selectListInfo: state => state.selectListInfo, -// listData(state) { -// return state.list -// }, -// listDetail(state) { -// return state.listDetail -// }, - -export const player = state => state.player - -export const playIndex = state => state.player.playIndex - -export const status = state => state.player.status - -export const isGettingUrl = state => state.player.isGettingUrl - -export const statusText = state => state.player.statusText - -export const listInfo = state => state.player.listInfo - -export const playList = state => state.player.listInfo.list - -export const playMusicInfo = state => state.player.playMusicInfo - -export const playInfo = createSelector([playMusicInfo, listInfo, playIndex], (playMusicInfo, listInfo, playIndex) => { - if (playMusicInfo == null) return { listId: null, playIndex: -1, playListId: null, listPlayIndex: -1, isPlayList: false, musicInfo: null } - const playListId = listInfo.id - let listId = playMusicInfo.listId - const isTempPlay = !!playMusicInfo.isTempPlay - const isPlayList = listId === playListId - let newPlayIndex = -1 - let listPlayIndex = Math.min(playIndex, listInfo.list.length - 1) - - if (listId != LIST_ID_PLAY_LATER) { - const currentSongmid = playMusicInfo.musicInfo.songmid || playMusicInfo.musicInfo.musicInfo.songmid - if (isPlayList) { - newPlayIndex = listInfo.list.findIndex(m => (m.songmid || m.musicInfo.songmid) == currentSongmid) - if (!isTempPlay) listPlayIndex = newPlayIndex - } else if (listId == 'download') { - playIndex = global.downloadList.findIndex(m => m.musicInfo.songmid == currentSongmid) - } else { - let list = global.allList[listId] - if (list) newPlayIndex = list.list.findIndex(m => m.songmid == currentSongmid) - } - } - if (listPlayIndex > -1) global.prevListPlayIndex = listPlayIndex - - return { - listId, - list: listInfo.list, - playIndex: newPlayIndex, - playListId, - listPlayIndex, - isPlayList, - isTempPlay, - musicInfo: playMusicInfo.musicInfo, - } -}) diff --git a/src/store/modules/player/index.js b/src/store/modules/player/index.js deleted file mode 100644 index 6f426f8..0000000 --- a/src/store/modules/player/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import * as actions from './action' -import * as getter from './getter' - -const { STATUS, ...action } = actions - -export { action, getter, STATUS } -export { default as reducer } from './reducer' diff --git a/src/store/modules/player/reducer.js b/src/store/modules/player/reducer.js deleted file mode 100644 index db16282..0000000 --- a/src/store/modules/player/reducer.js +++ /dev/null @@ -1,132 +0,0 @@ -import { TYPES, STATUS } from './action' -import { LIST_ID_PLAY_LATER } from '@/config/constant' - -const initialState = { - listInfo: { - list: [], - id: null, - }, - playIndex: -1, - isShowPlayerDetail: false, - playedList: [], - - playMusicInfo: null, - tempPlayList: [], - - statusText: '', - status: STATUS.none, - isGettingUrl: false, -} - - -// mitations -const mutations = { - [TYPES.setPic](state, datas) { - let targetMusic - if (!state.playMusicInfo) return state - switch (state.playMusicInfo.listId) { - case LIST_ID_PLAY_LATER: - targetMusic = datas.musicInfo - break - default: - targetMusic = state.listInfo.list.find(s => s.songmid === datas.musicInfo.songmid) - break - } - // console.log('+++++++targetMusic+++++++', targetMusic) - datas.musicInfo.img = datas.url - targetMusic.img = datas.url - const newState = { ...state } - if (state.playMusicInfo.musicInfo.source == datas.musicInfo.source && state.playMusicInfo.musicInfo.songmid === datas.musicInfo.songmid) { - const newPlayMusicInfo = { ...newState.playMusicInfo } - let index = newState.playedList.indexOf(newState.playMusicInfo) - if (index > -1) newState.playedList.splice(index, 1, newPlayMusicInfo) - newState.playMusicInfo = newPlayMusicInfo - } - return newState - }, - [TYPES.setList](state, list) { - return { - ...state, - listInfo: { - ...list, - }, - } - }, - [TYPES.setPlayIndex](state, index) { - return { - ...state, - playIndex: index, - } - // console.log(state.changePlay) - }, - [TYPES.addMusicToPlayedList](state, playMusicInfo) { - if (state.playedList.includes(playMusicInfo)) return state - state.playedList.push(playMusicInfo) - return { - ...state, - } - }, - [TYPES.removeMusicFormPlayedList](state, index) { - state.playedList.splice(index, 1) - return { - ...state, - } - }, - [TYPES.clearPlayedList](state) { - return { - ...state, - playedList: [], - } - }, - [TYPES.visiblePlayerDetail](state, visible) { - return { - ...state, - isShowPlayerDetail: visible, - } - }, - [TYPES.setStatus](state, { status, text }) { - const newState = { ...state } - if (status != null) newState.status = status - if (text != null) newState.statusText = text - return newState - }, - [TYPES.setGetingUrlState](state, flag) { - return { - ...state, - isGettingUrl: flag, - } - }, - [TYPES.setTempPlayList](state, list) { - return { - ...state, - tempPlayList: [...state.tempPlayList, ...list], - } - }, - [TYPES.removeTempPlayList](state, index) { - const tempPlayList = [...state.tempPlayList] - tempPlayList.splice(index, 1) - return { - ...state, - tempPlayList, - } - }, - [TYPES.clearTempPlayeList](state) { - return { - ...state, - tempPlayList: [], - } - }, - [TYPES.setPlayMusicInfo](state, { playMusicInfo, playIndex }) { - return { - ...state, - playMusicInfo, - playIndex, - } - }, -} - -export default (state = initialState, action) => - mutations[action.type] - ? mutations[action.type](state, action.payload) - : state - diff --git a/src/store/modules/search/action.js b/src/store/modules/search/action.js index 1ae31d8..db38efd 100644 --- a/src/store/modules/search/action.js +++ b/src/store/modules/search/action.js @@ -1,4 +1,4 @@ -import music from '@/utils/music' +import music from '@/utils/musicSdk' import { deduplicationList } from '@/utils/tools' export const TYPES = { @@ -55,7 +55,7 @@ export const search = ({ page, limit }) => (dispatch, getState) => { .finally(() => dispatch({ type: TYPES.loading, payload: false })) } else { dispatch({ type: TYPES.loading, payload: true }) - return (music[state.common.setting.search.searchSource]?.musicSearch.search(text, page, limit) ?? Promise.reject(new Error('source not found'))).catch(error => { + return music[state.common.setting.search.searchSource].musicSearch.search(text, page, limit).catch(error => { console.log(error) return { allPage: 1, diff --git a/src/store/modules/search/reducer.js b/src/store/modules/search/reducer.js index a282f9b..edcb1fa 100644 --- a/src/store/modules/search/reducer.js +++ b/src/store/modules/search/reducer.js @@ -1,6 +1,6 @@ import { TYPES } from './action' -import music from '@/utils/music' +import music from '@/utils/musicSdk' let historyList if (historyList == null) { diff --git a/src/store/modules/songList/action.js b/src/store/modules/songList/action.js index 309b8bd..8dc24e2 100644 --- a/src/store/modules/songList/action.js +++ b/src/store/modules/songList/action.js @@ -1,4 +1,4 @@ -import music from '@/utils/music' +import music from '@/utils/musicSdk' import { deduplicationList } from '@/utils/tools' const cache = new Map() @@ -28,7 +28,7 @@ export const getTags = () => (dispatch, getState) => { const state = getState() let source = state.common.setting.songList.source if (state.songList.tags[source]) return Promise.resolve() - return music[source]?.songList.getTags().then(result => dispatch(setTags({ tags: result, source }))) ?? Promise.reject(new Error('source not found')) + return music[source].songList.getTags().then(result => dispatch(setTags({ tags: result, source }))) } export const getList = ({ page = 1, isRefresh = false }) => (dispatch, getState) => { const allState = getState() diff --git a/src/store/modules/songList/reducer.js b/src/store/modules/songList/reducer.js index 3fdce25..81cba0f 100644 --- a/src/store/modules/songList/reducer.js +++ b/src/store/modules/songList/reducer.js @@ -1,5 +1,5 @@ import { TYPES } from './action' -import music from '@/utils/music' +import music from '@/utils/musicSdk' import { deduplicationList } from '@/utils/tools' const sortList = {} const sources = [] diff --git a/src/store/modules/top/action.js b/src/store/modules/top/action.js index c6960f0..c8f1e35 100644 --- a/src/store/modules/top/action.js +++ b/src/store/modules/top/action.js @@ -1,4 +1,4 @@ -import music from '@/utils/music' +import music from '@/utils/musicSdk' import { deduplicationList } from '@/utils/tools' const cache = new Map() @@ -23,8 +23,8 @@ export const getBoardsList = () => (dispatch, getState) => { // let key = `${source}${tabId}${page}` // if (state.list.length && state.key == key) return true // commit('clearList') - if (state.top.boards[source]?.length) return Promise.resolve() - return music[source]?.leaderboard.getBoards().then(result => dispatch(setBoardsList({ boards: result, source }))) ?? Promise.reject(new Error('source not found')) + if (state.top.boards[source].length) return Promise.resolve() + return music[source].leaderboard.getBoards().then(result => dispatch(setBoardsList({ boards: result, source }))) } const getListLimit = ({ source, tabId, bangId, page }) => { @@ -37,7 +37,7 @@ const getListLimit = ({ source, tabId, bangId, page }) => { if (listCache.has(prevPageKey)) { sourcePage = listCache.get(prevPageKey).sourcePage } - return music[source]?.leaderboard.getList(bangId, sourcePage + 1).then(result => { + return music[source].leaderboard.getList(bangId, sourcePage + 1).then(result => { let p = page if (listCache.has(tempListKey)) { const list = listCache.get(tempListKey) @@ -71,7 +71,7 @@ const getListLimit = ({ source, tabId, bangId, page }) => { p++ } while (result.list.length > 0) return listCache.get(`${source}__${tabId}__${page}`).data - }) ?? Promise.reject(new Error('source not found')) + }) } export const getList = ({ page, isRefresh = false }) => (dispatch, getState) => { diff --git a/src/store/modules/top/reducer.js b/src/store/modules/top/reducer.js index 12ac298..9773e9a 100644 --- a/src/store/modules/top/reducer.js +++ b/src/store/modules/top/reducer.js @@ -1,5 +1,5 @@ import { TYPES } from './action' -import music from '@/utils/music' +import music from '@/utils/musicSdk' import { deduplicationList } from '@/utils/tools' const sourceList = {} diff --git a/src/store/player/action.ts b/src/store/player/action.ts new file mode 100644 index 0000000..e94c1aa --- /dev/null +++ b/src/store/player/action.ts @@ -0,0 +1,107 @@ +import { arrPush, arrUnshift, formatPlayTime2 } from '@/utils' +import state from './state' + +type PlayerMusicInfoKeys = keyof LX.Player.MusicInfo +const musicInfoKeys: PlayerMusicInfoKeys[] = Object.keys(state.musicInfo) as PlayerMusicInfoKeys[] + +export default { + updatePlayIndex(playIndex: number, playerPlayIndex: number) { + state.playInfo.playIndex = playIndex + state.playInfo.playerPlayIndex = playerPlayIndex + + global.state_event.playInfoChanged({ ...state.playInfo }) + }, + setPlayListId(playerListId: string | null) { + state.playInfo.playerListId = playerListId + + global.state_event.playInfoChanged({ ...state.playInfo }) + }, + setPlayMusicInfo(listId: string | null, musicInfo: LX.Download.ListItem | LX.Music.MusicInfo | null, isTempPlay: boolean = false) { + state.playMusicInfo = { listId, musicInfo, isTempPlay } + + global.state_event.playMusicInfoChanged(state.playMusicInfo) + }, + setMusicInfo(_musicInfo: Partial<LX.Player.MusicInfo>) { + for (const key of musicInfoKeys) { + const val = _musicInfo[key] + if (val !== undefined) { + // @ts-expect-error + state.musicInfo[key] = val + } + } + + global.state_event.playerMusicInfoChanged({ ...state.musicInfo }) + }, + setIsPlay(isPlay: boolean) { + state.isPlay = isPlay + + global.state_event.playStateChanged(isPlay) + }, + setStatusText(statusText: string) { + state.statusText = statusText + global.state_event.playStateTextChanged(statusText) + }, + setNowPlayTime(time: number) { + state.progress.nowPlayTime = time + state.progress.nowPlayTimeStr = formatPlayTime2(time) + state.progress.progress = state.progress.maxPlayTime ? time / state.progress.maxPlayTime : 0 + + global.state_event.playProgressChanged({ ...state.progress }) + }, + setMaxplayTime(time: number) { + state.progress.maxPlayTime = time + state.progress.maxPlayTimeStr = formatPlayTime2(time) + state.progress.progress = time ? state.progress.nowPlayTime / time : 0 + + global.state_event.playProgressChanged({ ...state.progress }) + }, + setProgress(currentTime: number, totalTime: number) { + state.progress.nowPlayTime = currentTime + state.progress.nowPlayTimeStr = formatPlayTime2(currentTime) + state.progress.maxPlayTime = totalTime + state.progress.maxPlayTimeStr = formatPlayTime2(totalTime) + state.progress.progress = totalTime ? state.progress.nowPlayTime / currentTime : 0 + + global.state_event.playProgressChanged({ ...state.progress }) + }, + addPlayedList(info: LX.Player.PlayMusicInfo) { + if (state.playedList.some(m => m.musicInfo.id == info.musicInfo.id)) return + state.playedList.push(info) + + global.state_event.playPlayedListChanged({ ...state.playedList }) + }, + removePlayedList(index: number) { + state.playedList.splice(index, 1) + + global.state_event.playPlayedListChanged({ ...state.playedList }) + }, + clearPlayedList() { + state.playedList = [] + + global.state_event.playPlayedListChanged({ ...state.playedList }) + }, + addTempPlayList(list: LX.Player.TempPlayListItem[]) { + const topList: Array<{ listId: string, musicInfo: LX.Music.MusicInfo | LX.Download.ListItem }> = [] + const bottomList = list.filter(({ isTop, ...musicInfo }) => { + if (isTop) { + topList.push(musicInfo) + return false + } + return true + }) + if (topList.length) arrUnshift(state.tempPlayList, topList.map(({ musicInfo, listId }) => ({ musicInfo, listId, isTempPlay: true }))) + if (bottomList.length) arrPush(state.tempPlayList, bottomList.map(({ musicInfo, listId }) => ({ musicInfo, listId, isTempPlay: true }))) + + global.state_event.playTempPlayListChanged({ ...state.tempPlayList }) + }, + removeTempPlayList(index: number) { + state.tempPlayList.splice(index, 1) + + global.state_event.playTempPlayListChanged({ ...state.tempPlayList }) + }, + clearTempPlayeList() { + state.tempPlayList = [] + + global.state_event.playTempPlayListChanged({ ...state.tempPlayList }) + }, +} diff --git a/src/store/player/hook.ts b/src/store/player/hook.ts new file mode 100644 index 0000000..8c5eb8b --- /dev/null +++ b/src/store/player/hook.ts @@ -0,0 +1,85 @@ +import { isActive } from '@/utils/tools' +import { useEffect, useState } from 'react' +import state, { type InitState } from './state' + +export const usePlayerMusicInfo = () => { + const [value, update] = useState(state.musicInfo) + + useEffect(() => { + global.state_event.on('playerMusicInfoChanged', update) + return () => { + global.state_event.off('playerMusicInfoChanged', update) + } + }, []) + + return value +} + +export const usePlayMusicInfo = () => { + const [value, update] = useState(state.playMusicInfo) + + useEffect(() => { + global.state_event.on('playMusicInfoChanged', update) + return () => { + global.state_event.off('playMusicInfoChanged', update) + } + }, []) + + return value +} + +export const usePlayInfo = () => { + const [value, update] = useState(state.playInfo) + + useEffect(() => { + global.state_event.on('playInfoChanged', update) + return () => { + global.state_event.off('playInfoChanged', update) + } + }, []) + + return value +} + +export const useStatusText = () => { + const [value, update] = useState(state.statusText) + + useEffect(() => { + global.state_event.on('playStateTextChanged', update) + return () => { + global.state_event.off('playStateTextChanged', update) + } + }, []) + + return value +} + +export const useIsPlay = () => { + const [value, update] = useState(state.isPlay) + + useEffect(() => { + global.state_event.on('playStateChanged', update) + return () => { + global.state_event.off('playStateChanged', update) + } + }, []) + + return value +} + +export const useProgress = (autoUpdate = true) => { + const [value, update] = useState(state.progress) + + useEffect(() => { + if (!autoUpdate) return + const handleUpdate = (progress: InitState['progress']) => { + if (isActive()) update(progress) + } + global.state_event.on('playProgressChanged', handleUpdate) + return () => { + global.state_event.off('playProgressChanged', handleUpdate) + } + }, [autoUpdate]) + + return value +} diff --git a/src/store/player/state.ts b/src/store/player/state.ts new file mode 100644 index 0000000..aa2a0c1 --- /dev/null +++ b/src/store/player/state.ts @@ -0,0 +1,75 @@ +export interface InitState { + playMusicInfo: { + /** + * 当前播放歌曲的列表 id + */ + musicInfo: LX.Player.PlayMusicInfo['musicInfo'] | null + /** + * 当前播放歌曲的列表 id + */ + listId: LX.Player.PlayMusicInfo['listId'] | null + /** + * 是否属于 “稍后播放” + */ + isTempPlay: boolean + } + playInfo: LX.Player.PlayInfo + musicInfo: LX.Player.MusicInfo + + isPlay: boolean + statusText: string + + playedList: LX.Player.PlayMusicInfo[] + tempPlayList: LX.Player.PlayMusicInfo[] + + progress: { + nowPlayTime: number + maxPlayTime: number + progress: number + nowPlayTimeStr: string + maxPlayTimeStr: string + } +} + +const state: InitState = { + playInfo: { + playIndex: -1, + playerListId: null, + playerPlayIndex: -1, + }, + playMusicInfo: { + listId: null, + musicInfo: null, + isTempPlay: false, + }, + musicInfo: { + id: null, + pic: null, + lrc: null, + tlrc: null, + rlrc: null, + lxlrc: null, + rawlrc: null, + // url: null, + name: '', + singer: '', + album: '', + }, + + isPlay: false, + statusText: '', + + playedList: [], + tempPlayList: [], + + progress: { + nowPlayTime: 0, + maxPlayTime: 0, + progress: 0, + nowPlayTimeStr: '00:00', + maxPlayTimeStr: '00:00', + }, +} + + +export default state diff --git a/src/store/reducer.js b/src/store/reducer.js deleted file mode 100644 index 0110c35..0000000 --- a/src/store/reducer.js +++ /dev/null @@ -1,27 +0,0 @@ -// import { persistCombineReducers } from 'redux-persist' -// import AsyncStorage from '@react-native-async-storage/async-storage' -import { combineReducers } from 'redux' - -import * as modules from './modules' - -// const config = { -// key: 'LIFTED_REDUX_STORE', -// storage: AsyncStorage, -// } - -const reducers = {} - - -for (const [moduleName, { reducer }] of Object.entries(modules)) { - reducers[moduleName] = reducer -} - -const combinedReducers = combineReducers(reducers) - -// const appReducer = persistCombineReducers(config, reducers) - -export { - reducers, - combinedReducers, -} -// export default (state, action) => appReducer(state, action) diff --git a/src/store/search/action.ts b/src/store/search/action.ts new file mode 100644 index 0000000..92539a1 --- /dev/null +++ b/src/store/search/action.ts @@ -0,0 +1,64 @@ +import state, { type InitState } from './state' +// let isInitedSearchHistory = false +// const saveSearchHistoryListThrottle = throttle((list: LX.List.SearchHistoryList) => { +// saveSearchHistoryList(list) +// }, 500) + + +// export const getHistoryList = async() => { +// if (isInitedSearchHistory) return +// historyList.push(...(await getSearchHistoryList() ?? [])) +// isInitedSearchHistory = true +// } +// export const addHistoryWord = async(word: string) => { +// if (!appSetting['search.isShowHistorySearch']) return +// if (!isInitedSearchHistory) await getHistoryList() +// let index = historyList.indexOf(word) +// if (index > -1) historyList.splice(index, 1) +// if (historyList.length >= 15) historyList.splice(14, historyList.length - 14) +// historyList.unshift(word) +// saveSearchHistoryListThrottle(toRaw(historyList)) +// } +// export const removeHistoryWord = (index: number) => { +// historyList.splice(index, 1) +// saveSearchHistoryListThrottle(toRaw(historyList)) +// } +// export const clearHistoryList = (id: string) => { +// historyList.splice(0, historyList.length) +// saveSearchHistoryList([]) +// } + + +export default { + setSearchType(type: InitState['searchType']) { + state.searchType = type + }, + setSearchText(text: string) { + state.searchText = text + }, + setTipListInfo(keyword: InitState['tipListInfo']['text'], source: InitState['tipListInfo']['source']) { + state.tipListInfo.text = keyword + state.tipListInfo.source = source + }, + setTipList(list: InitState['tipListInfo']['list']) { + state.tipListInfo.list = list + }, + setHistoryWord(list: string[]) { + state.historyList = list + }, + addHistoryWord(word: string) { + let index = state.historyList.indexOf(word) + if (index > -1) state.historyList.splice(index, 1) + if (state.historyList.length >= 15) state.historyList.splice(14, state.historyList.length - 14) + state.historyList.unshift(word) + return [...state.historyList] + }, + removeHistoryWord(index: number) { + state.historyList.splice(index, 1) + return [...state.historyList] + }, + clearHistoryList() { + state.historyList = [] + return state.historyList + }, +} diff --git a/src/store/search/music/action.ts b/src/store/search/music/action.ts new file mode 100644 index 0000000..64a341c --- /dev/null +++ b/src/store/search/music/action.ts @@ -0,0 +1,91 @@ +import state, { type InitState, type ListInfo, type Source } from './state' +import { sortInsert, similar, arrPush } from '@/utils/common' +import { deduplicationList, toNewMusicInfo } from '@/utils' + + +export interface SearchResult { + list: LX.Music.MusicInfoOnline[] + allPage: number + limit: number + total: number + source: LX.OnlineSource +} + + +/** + * 按搜索关键词重新排序列表 + * @param list 歌曲列表 + * @param keyword 搜索关键词 + * @returns 排序后的列表 + */ +const handleSortList = (list: LX.Music.MusicInfoOnline[], keyword: string) => { + let arr: any[] = [] + for (const item of list) { + sortInsert(arr, { + num: similar(keyword, `${item.name} ${item.singer}`), + data: item, + }) + } + return arr.map(item => item.data).reverse() +} + + +const setLists = (results: SearchResult[], page: number, text: string): LX.Music.MusicInfoOnline[] => { + let pages = [] + let total = 0 + // let limit = 0 + let list = [] as LX.Music.MusicInfoOnline[] + for (const source of results) { + state.maxPages[source.source] = source.allPage + if (source.allPage < page) continue + arrPush(list, source.list) + pages.push(source.allPage) + total += source.total + // limit = Math.max(source.limit, limit) + } + list = handleSortList(list.map(s => toNewMusicInfo(s) as LX.Music.MusicInfoOnline), text) + let listInfo = state.listInfos.all + listInfo.maxPage = Math.max(...pages) + listInfo.total = total + // listInfo.limit = limit + listInfo.page = page + listInfo.list = deduplicationList(page > 1 ? [...listInfo.list, ...list] : list) + + return listInfo.list +} + +const setList = (datas: SearchResult, page: number, text: string): LX.Music.MusicInfoOnline[] => { + // console.log(datas.source, datas.list) + let listInfo = state.listInfos[datas.source] as ListInfo + const list = datas.list.map(s => toNewMusicInfo(s) as LX.Music.MusicInfoOnline) + listInfo.list = deduplicationList(page == 1 ? list : [...listInfo.list, ...list]) + listInfo.total = datas.total + listInfo.maxPage = datas.allPage + listInfo.page = page + listInfo.limit = datas.limit + + return listInfo.list +} + +export default { + setSource(source: InitState['source']) { + state.source = source + }, + setSearchText(searchText: InitState['searchText']) { + state.searchText = searchText + }, + setListInfo(result: SearchResult | SearchResult[], page: number, text: string) { + if (Array.isArray(result)) { + return setLists(result, page, text) + } else { + return setList(result, page, text) + } + }, + clearListInfo(sourceId: Source) { + let listInfo = state.listInfos[sourceId] as ListInfo + listInfo.list = [] + listInfo.page = 0 + listInfo.maxPage = 0 + listInfo.total = 0 + }, +} diff --git a/src/store/search/music/state.ts b/src/store/search/music/state.ts new file mode 100644 index 0000000..0f78348 --- /dev/null +++ b/src/store/search/music/state.ts @@ -0,0 +1,58 @@ +import music from '@/utils/musicSdk' + +export declare interface ListInfo { + list: LX.Music.MusicInfoOnline[] + total: number + page: number + maxPage: number + limit: number + key: string | null +} + +interface ListInfos extends Partial<Record<LX.OnlineSource, ListInfo>> { + 'all': ListInfo +} + +export type Source = LX.OnlineSource | 'all' + +export interface InitState { + searchText: string + source: Source + sources: Source[] + listInfos: ListInfos + maxPages: Partial<Record<LX.OnlineSource, number>> +} + +const state: InitState = { + searchText: '', + source: 'kw', + sources: [], + listInfos: { + all: { + page: 1, + maxPage: 0, + limit: 30, + total: 0, + list: [], + key: null, + }, + }, + maxPages: {}, +} + +for (const source of music.sources) { + if (!music[source.id as LX.OnlineSource]?.musicSearch) continue + state.sources.push(source.id as LX.OnlineSource) + state.listInfos[source.id as LX.OnlineSource] = { + page: 1, + maxPage: 0, + limit: 30, + total: 0, + list: [], + key: '', + } + state.maxPages[source.id as LX.OnlineSource] = 0 +} +state.sources.push('all') + +export default state diff --git a/src/store/search/songlist/action.ts b/src/store/search/songlist/action.ts new file mode 100644 index 0000000..4535eb5 --- /dev/null +++ b/src/store/search/songlist/action.ts @@ -0,0 +1,90 @@ +import { sortInsert, similar } from '@/utils/common' + +import type { InitState, ListInfoItem, SearchListInfo, Source } from './state' +import state from './state' + +export interface SearchResult { + list: ListInfoItem[] + limit: number + total: number + source: LX.OnlineSource +} + + +/** + * 按搜索关键词重新排序列表 + * @param list 歌曲列表 + * @param keyword 搜索关键词 + * @returns 排序后的列表 + */ +const handleSortList = (list: ListInfoItem[], keyword: string) => { + let arr: any[] = [] + for (const item of list) { + sortInsert(arr, { + num: similar(keyword, item.name), + data: item, + }) + } + return arr.map(item => item.data).reverse() +} + + +let maxTotals: Partial<Record<LX.OnlineSource, number>> = { + +} +const setLists = (results: SearchResult[], page: number, text: string): ListInfoItem[] => { + let totals = [] + // let limit = 0 + let list = [] + for (const source of results) { + list.push(...source.list) + totals.push(source.total) + maxTotals[source.source] = source.total + state.maxPages[source.source] = Math.ceil(source.total / source.limit) + // limit = Math.max(source.limit, limit) + } + + let listInfo = state.listInfos.all + listInfo.total = Math.max(...totals) + listInfo.page = page + list = handleSortList(list, text) + listInfo.list = page > 1 ? [...listInfo.list, ...list] : list + return listInfo.list +} + +const setList = (datas: SearchResult, page: number, text: string): ListInfoItem[] => { + // console.log(datas.source, datas.list) + let listInfo = state.listInfos[datas.source] as SearchListInfo + listInfo.list = page == 1 ? datas.list : [...listInfo.list, ...datas.list] + listInfo.total = datas.total + listInfo.page = page + listInfo.limit = datas.limit + return listInfo.list +} + + +export default { + setSource(source: InitState['source']) { + state.source = source + }, + setSearchText(searchText: InitState['searchText']) { + state.searchText = searchText + }, + setListInfo(result: SearchResult | SearchResult[], page: number, text: string) { + if (Array.isArray(result)) { + return setLists(result, page, text) + } else { + return setList(result, page, text) + } + }, + clearListInfo(sourceId: Source) { + let listInfo = state.listInfos[sourceId] as SearchListInfo + listInfo.page = 1 + listInfo.limit = 20 + listInfo.total = 0 + listInfo.list = [] + listInfo.key = null + listInfo.tagId = '' + listInfo.sortId = '' + }, +} diff --git a/src/store/search/songlist/state.ts b/src/store/search/songlist/state.ts new file mode 100644 index 0000000..31450fc --- /dev/null +++ b/src/store/search/songlist/state.ts @@ -0,0 +1,61 @@ +import music from '@/utils/musicSdk' + + +// import { deduplicationList } from '@common/utils/renderer' + +import { type ListInfo } from '@/store/songlist/state' +export type { ListInfoItem } from '@/store/songlist/state' + +export type SearchListInfo = Omit<ListInfo, 'source' | 'maxPage'> + + +interface ListInfos extends Partial<Record<LX.OnlineSource, SearchListInfo>> { + 'all': SearchListInfo +} + +export type Source = LX.OnlineSource | 'all' + +export interface InitState { + searchText: string + source: Source + sources: Source[] + listInfos: ListInfos + maxPages: Partial<Record<Source, number>> +} + +const state: InitState = { + searchText: '', + source: 'kw', + sources: [], + listInfos: { + all: { + page: 1, + limit: 15, + total: 0, + list: [], + key: null, + tagId: '', + sortId: '', + }, + }, + maxPages: {}, +} + +export const maxPages: Partial<Record<LX.OnlineSource, number>> = {} +for (const source of music.sources) { + if (!music[source.id as LX.OnlineSource]?.songList?.search) continue + state.sources.push(source.id as LX.OnlineSource) + state.listInfos[source.id as LX.OnlineSource] = { + page: 1, + limit: 18, + total: 0, + list: [], + key: null, + tagId: '', + sortId: '', + } + maxPages[source.id as LX.OnlineSource] = 0 +} +state.sources.push('all') + +export default state diff --git a/src/store/search/state.ts b/src/store/search/state.ts new file mode 100644 index 0000000..f275e0a --- /dev/null +++ b/src/store/search/state.ts @@ -0,0 +1,29 @@ +export type SearchType = 'music' | 'songlist' + +export interface InitState { + temp_source: 'kw' + // temp_source: LX.OnlineSource + searchType: SearchType + searchText: string + tipListInfo: { + text: string + source: 'kw' + list: string[] + } + historyList: string[] +} + +const state: InitState = { + temp_source: 'kw', + searchType: 'music', + searchText: '', + tipListInfo: { + text: '', + source: 'kw', + list: [], + }, + historyList: [], +} + + +export default state diff --git a/src/store/setting/action.ts b/src/store/setting/action.ts new file mode 100644 index 0000000..32f63b6 --- /dev/null +++ b/src/store/setting/action.ts @@ -0,0 +1,21 @@ +import { updateSetting as mergeSetting } from '@/config/setting' +import state from './state' + + +export default { + // mergeSetting(newSetting: Partial<LX.AppSetting>) { + // for (const [key, value] of Object.entries(newSetting)) { + // // @ts-expect-error + // state[key] = value + // } + // }, + initSetting(newSetting: LX.AppSetting) { + state.setting = newSetting + }, + updateSetting(newSetting: Partial<LX.AppSetting>) { + const result = mergeSetting(newSetting) + state.setting = result.setting + global.state_event.configUpdated(result.updatedSettingKeys, result.updatedSetting) + }, +} + diff --git a/src/store/setting/hook.ts b/src/store/setting/hook.ts new file mode 100644 index 0000000..db55ec3 --- /dev/null +++ b/src/store/setting/hook.ts @@ -0,0 +1,35 @@ +import { useEffect, useState } from 'react' +import state from './state' + +export const useSetting = () => { + const [setting, updateSetting] = useState(state.setting) + + useEffect(() => { + const handleUpdate = () => { + updateSetting(state.setting) + } + global.state_event.on('configUpdated', handleUpdate) + return () => { + global.state_event.off('configUpdated', handleUpdate) + } + }, []) + + return setting +} + +export const useSettingValue = <T extends keyof LX.AppSetting>(key: T): LX.AppSetting[T] => { + const [value, update] = useState(state.setting[key]) + + useEffect(() => { + const handleUpdate = (keys: Array<keyof LX.AppSetting>) => { + if (!keys.includes(key)) return + update(state.setting[key]) + } + global.state_event.on('configUpdated', handleUpdate) + return () => { + global.state_event.off('configUpdated', handleUpdate) + } + }, [key]) + + return value +} diff --git a/src/store/setting/state.ts b/src/store/setting/state.ts new file mode 100644 index 0000000..860b833 --- /dev/null +++ b/src/store/setting/state.ts @@ -0,0 +1,13 @@ +import defaultSetting from '@/config/defaultSetting' + + +interface InitState { + setting: LX.AppSetting +} + +const state: InitState = { + setting: { ...defaultSetting }, +} + + +export default state diff --git a/src/store/songlist/action.ts b/src/store/songlist/action.ts new file mode 100644 index 0000000..8efd9aa --- /dev/null +++ b/src/store/songlist/action.ts @@ -0,0 +1,68 @@ +import type { TagInfo, ListDetailInfo, ListInfo, ListInfoItem, Source } from './state' +import state from './state' + +export default { + setTags(tagInfo: TagInfo, source: LX.OnlineSource) { + state.tags[source] = tagInfo + }, + setListInfo(source: Source, tagId: string, sortId: string) { + state.listInfo.source = source + state.listInfo.tagId = tagId + state.listInfo.sortId = sortId + }, + setList(result: ListInfo, tagId: string, sortId: string, page: number) { + state.listInfo.list = page == 1 ? [...result.list] : [...state.listInfo.list, ...result.list] + state.listInfo.total = result.total + state.listInfo.limit = result.limit + state.listInfo.page = page + state.listInfo.source = result.source + state.listInfo.tagId = tagId + state.listInfo.sortId = sortId + state.listInfo.maxPage = Math.ceil(result.total / result.limit) + + return state.listInfo + }, + clearList() { + state.listInfo.list = [] + state.listInfo.total = 0 + state.listInfo.page = 1 + state.listInfo.key = '' + state.listInfo.maxPage = 1 + }, + setListDetailInfo(source: Source, id: string) { + state.listDetailInfo.source = source + state.listDetailInfo.id = id + }, + setListDetail(result: ListDetailInfo, id: string, page: number) { + state.listDetailInfo.list = page == 1 ? [...result.list] : [...state.listDetailInfo.list, ...result.list] + state.listDetailInfo.id = id + state.listDetailInfo.source = result.source + state.listDetailInfo.total = result.total + state.listDetailInfo.limit = result.limit + state.listDetailInfo.page = page + state.listDetailInfo.info = { ...result.info } + state.listInfo.maxPage = Math.ceil(result.total / result.limit) + + return state.listDetailInfo + }, + clearListDetail() { + state.listDetailInfo.list = [] + state.listDetailInfo.id = '' + state.listDetailInfo.source = 'kw' + state.listDetailInfo.total = 0 + state.listDetailInfo.limit = 30 + state.listDetailInfo.page = 1 + state.listDetailInfo.key = null + state.listDetailInfo.info = {} + state.listDetailInfo.maxPage = 1 + }, + setSelectListInfo(info: ListInfoItem) { + state.selectListInfo.author = info.author + state.selectListInfo.desc = info.desc + state.selectListInfo.id = info.id + state.selectListInfo.img = info.img + state.selectListInfo.name = info.name + state.selectListInfo.play_count = info.play_count + state.selectListInfo.source = info.source + }, +} diff --git a/src/store/songlist/state.ts b/src/store/songlist/state.ts new file mode 100644 index 0000000..2206d72 --- /dev/null +++ b/src/store/songlist/state.ts @@ -0,0 +1,137 @@ +import music from '@/utils/musicSdk' + +export declare interface SortInfo { + name: string + tid: 'recommend' | 'hot' | 'new' | 'hot_collect' | 'rise' + id: string +} + +export declare interface TagInfoItem<T extends LX.OnlineSource = LX.OnlineSource> { + parent_id: string + parent_name: string + id: string + name: string + source: T +} +export declare interface TagInfoTypeItem<T extends LX.OnlineSource = LX.OnlineSource> { + name: string + list: Array<TagInfoItem<T>> +} +export declare interface TagInfo<Source extends LX.OnlineSource = LX.OnlineSource> { + tags: Array<TagInfoTypeItem<Source>> + hotTag: Array<TagInfoItem<Source>> + source: Source +} + +type Tags = Partial<Record<LX.OnlineSource, TagInfo>> + +export declare interface ListInfoItem { + play_count?: string + id: string + author: string + name: string + time?: string + img?: string + // grade: basic.favorcnt / 10, + desc?: string + source: LX.OnlineSource + total?: string +} +export declare interface ListInfo { + list: ListInfoItem[] + total: number + page: number + limit: number + maxPage: number + key: string | null + source: LX.OnlineSource + tagId: string + sortId: string +} + +export declare interface ListDetailInfo { + list: LX.Music.MusicInfoOnline[] + source: LX.OnlineSource + desc: string | null + total: number + page: number + limit: number + maxPage: number + key: string | null + id: string + info: { + name?: string + img?: string + desc?: string + author?: string + play_count?: string + } +} + +// export const openSongListInputInfo = markRaw({ +// text: '', +// source: '', +// }) + +export type Source = LX.OnlineSource +export interface InitState { + sources: Source[] + sortList: Partial<Record<Source, SortInfo[]>> + tags: Tags + listInfo: ListInfo + selectListInfo: ListInfoItem + listDetailInfo: ListDetailInfo +} + + +const state: InitState = { + sources: [], + sortList: {}, + tags: {}, + listInfo: { + list: [], + total: 0, + page: 1, + limit: 30, + maxPage: 1, + key: null, + source: 'kw', + tagId: '', + sortId: '', + }, + selectListInfo: { + play_count: '', + id: '', + author: '', + name: '', + time: '', + img: '', + // grade: basic.favorcnt / 10, + desc: '', + source: 'kw', + }, + listDetailInfo: { + list: [], + id: '', + desc: null, + total: 0, + page: 1, + limit: 30, + maxPage: 1, + key: null, + source: 'kw', + info: {}, + }, +} + + +for (const source of music.sources) { + const songList = music[source.id as Source]?.songList + if (!songList) continue + state.sources.push(source.id as Source) + state.sortList[source.id as Source] = songList.sortList as SortInfo[] +} + + +export default state + diff --git a/src/store/store.js b/src/store/store.js deleted file mode 100644 index d3e24a2..0000000 --- a/src/store/store.js +++ /dev/null @@ -1,48 +0,0 @@ -import { legacy_createStore as createStore, applyMiddleware } from 'redux' -import thunkMiddleware from 'redux-thunk' -import { initSubscriber } from './subscriber' -// import { persistStore, persistReducer } from 'redux-persist' -// import AsyncStorage from '@react-native-async-storage/async-storage' -// import { createSelector } from 'reselect' - -import { combinedReducers } from './reducer' - -// const persistConfig = { -// key: 'root', -// storage: AsyncStorage, -// } - -// const persistedReducer = persistReducer(persistConfig, reducer) - -const middlewares = [thunkMiddleware] - -// let debuggWrapper = data => data - - -// if (process.env.NODE_ENV === 'development') { -// const { createLogger } = require('redux-logger') -// // const { composeWithDevTools } = require('remote-redux-devtools') -// middlewares.push(createLogger({ -// collapsed: true, -// })) -// // debuggWrapper = composeWithDevTools({ realtime: true, port: 8097 }) -// } - - -const initializeStore = () => { - const store = createStore(combinedReducers, applyMiddleware(...middlewares)) - initSubscriber(store) - // const persistor = persistStore(store) - return store - // return { store, persistor } -} - -// const store = createStore(reducer, applyMiddleware(...middlewares)) -// initSubscriber(store) - -let store - -export default () => { - if (!store) store = initializeStore() - return store -} diff --git a/src/store/subscriber.js b/src/store/subscriber.js deleted file mode 100644 index 230756f..0000000 --- a/src/store/subscriber.js +++ /dev/null @@ -1,7 +0,0 @@ -import initSubscriber, { subscribe } from 'redux-subscriber' - -export { - initSubscriber, - subscribe, -} - diff --git a/src/store/sync/action.ts b/src/store/sync/action.ts new file mode 100644 index 0000000..cdc2df1 --- /dev/null +++ b/src/store/sync/action.ts @@ -0,0 +1,17 @@ +import state from './state' + + +export default { + setStatus(info: LX.Sync.Status) { + state.status = info.status + state.message = info.message + + global.state_event.syncStatusUpdated({ ...state }) + }, + setMessage(message: LX.Sync.Status['message']) { + state.message = message + + global.state_event.syncStatusUpdated({ ...state }) + }, +} + diff --git a/src/store/sync/hook.ts b/src/store/sync/hook.ts new file mode 100644 index 0000000..5ac7d9e --- /dev/null +++ b/src/store/sync/hook.ts @@ -0,0 +1,15 @@ +import { useEffect, useState } from 'react' +import state from './state' + +export const useStatus = () => { + const [value, update] = useState(state) + + useEffect(() => { + global.state_event.on('syncStatusUpdated', update) + return () => { + global.state_event.off('syncStatusUpdated', update) + } + }, []) + + return value +} diff --git a/src/store/sync/state.ts b/src/store/sync/state.ts new file mode 100644 index 0000000..3aef911 --- /dev/null +++ b/src/store/sync/state.ts @@ -0,0 +1,8 @@ + +const state: LX.Sync.Status = { + status: false, + message: '', +} + + +export default state diff --git a/src/store/theme/action.ts b/src/store/theme/action.ts new file mode 100644 index 0000000..3387317 --- /dev/null +++ b/src/store/theme/action.ts @@ -0,0 +1,16 @@ +import { buildActiveThemeColors } from '@/theme/themes' +import state from './state' + + +export default { + setTheme(theme: LX.Theme) { + state.theme = buildActiveThemeColors(theme) + // ThemeContext.displayName + global.state_event.themeUpdated(state.theme) + }, + setShouldUseDarkColors(shouldUseDarkColors: boolean) { + if (state.shouldUseDarkColors == shouldUseDarkColors) return + state.shouldUseDarkColors = shouldUseDarkColors + }, +} + diff --git a/src/store/theme/hook.ts b/src/store/theme/hook.ts new file mode 100644 index 0000000..a7d5e48 --- /dev/null +++ b/src/store/theme/hook.ts @@ -0,0 +1,38 @@ +import { useContext } from 'react' +import { ThemeContext } from './state' + +// export const useSetting = () => { +// const [setting, updateSetting] = useState(state.setting) + +// useEffect(() => { +// const handleUpdate = () => { +// updateSetting(state.setting) +// } +// global.state_event.on('configUpdated', handleUpdate) +// return () => { +// global.state_event.off('configUpdated', handleUpdate) +// } +// }, []) + +// return setting +// } + +// export const useSettingValue = <T extends keyof LX.AppSetting>(key: T): LX.AppSetting[T] => { +// const [value, update] = useState(state.setting[key]) + +// useEffect(() => { +// const handleUpdate = (keys: Array<keyof LX.AppSetting>) => { +// if (!keys.includes(key)) return +// update(state.setting[key]) +// } +// global.state_event.on('configUpdated', handleUpdate) +// return () => { +// global.state_event.off('configUpdated', handleUpdate) +// } +// }, [key]) + +// return value +// } + +export const useTheme = () => useContext(ThemeContext) + diff --git a/src/store/theme/state.ts b/src/store/theme/state.ts new file mode 100644 index 0000000..5d10b8e --- /dev/null +++ b/src/store/theme/state.ts @@ -0,0 +1,287 @@ +import { createContext } from 'react' +// import type { RootState } from '@/store' + + +interface InitState { + shouldUseDarkColors: boolean + theme: LX.ActiveTheme +} + +const theme = { + id: '', + name: '', + isDark: false, + 'c-primary': 'rgb(77, 175, 124)', + 'c-primary-dark-100': 'rgb(69,158,112)', + 'c-primary-dark-100-alpha-100': 'rgba(69, 158, 112, 0.90)', + 'c-primary-alpha-100': 'rgba(77, 175, 124, 0.90)', + 'c-primary-dark-100-alpha-200': 'rgba(69, 158, 112, 0.80)', + 'c-primary-alpha-200': 'rgba(77, 175, 124, 0.80)', + 'c-primary-dark-100-alpha-300': 'rgba(69, 158, 112, 0.70)', + 'c-primary-alpha-300': 'rgba(77, 175, 124, 0.70)', + 'c-primary-dark-100-alpha-400': 'rgba(69, 158, 112, 0.60)', + 'c-primary-alpha-400': 'rgba(77, 175, 124, 0.60)', + 'c-primary-dark-100-alpha-500': 'rgba(69, 158, 112, 0.50)', + 'c-primary-alpha-500': 'rgba(77, 175, 124, 0.50)', + 'c-primary-dark-100-alpha-600': 'rgba(69, 158, 112, 0.40)', + 'c-primary-alpha-600': 'rgba(77, 175, 124, 0.40)', + 'c-primary-dark-100-alpha-700': 'rgba(69, 158, 112, 0.30)', + 'c-primary-alpha-700': 'rgba(77, 175, 124, 0.30)', + 'c-primary-dark-100-alpha-800': 'rgba(69, 158, 112, 0.20)', + 'c-primary-alpha-800': 'rgba(77, 175, 124, 0.20)', + 'c-primary-dark-100-alpha-900': 'rgba(69, 158, 112, 0.10)', + 'c-primary-alpha-900': 'rgba(77, 175, 124, 0.10)', + 'c-primary-dark-200': 'rgb(62,142,101)', + 'c-primary-dark-200-alpha-100': 'rgba(62, 142, 101, 0.90)', + 'c-primary-dark-200-alpha-200': 'rgba(62, 142, 101, 0.80)', + 'c-primary-dark-200-alpha-300': 'rgba(62, 142, 101, 0.70)', + 'c-primary-dark-200-alpha-400': 'rgba(62, 142, 101, 0.60)', + 'c-primary-dark-200-alpha-500': 'rgba(62, 142, 101, 0.50)', + 'c-primary-dark-200-alpha-600': 'rgba(62, 142, 101, 0.40)', + 'c-primary-dark-200-alpha-700': 'rgba(62, 142, 101, 0.30)', + 'c-primary-dark-200-alpha-800': 'rgba(62, 142, 101, 0.20)', + 'c-primary-dark-200-alpha-900': 'rgba(62, 142, 101, 0.10)', + 'c-primary-dark-300': 'rgb(56,128,91)', + 'c-primary-dark-300-alpha-100': 'rgba(56, 128, 91, 0.90)', + 'c-primary-dark-300-alpha-200': 'rgba(56, 128, 91, 0.80)', + 'c-primary-dark-300-alpha-300': 'rgba(56, 128, 91, 0.70)', + 'c-primary-dark-300-alpha-400': 'rgba(56, 128, 91, 0.60)', + 'c-primary-dark-300-alpha-500': 'rgba(56, 128, 91, 0.50)', + 'c-primary-dark-300-alpha-600': 'rgba(56, 128, 91, 0.40)', + 'c-primary-dark-300-alpha-700': 'rgba(56, 128, 91, 0.30)', + 'c-primary-dark-300-alpha-800': 'rgba(56, 128, 91, 0.20)', + 'c-primary-dark-300-alpha-900': 'rgba(56, 128, 91, 0.10)', + 'c-primary-dark-400': 'rgb(50,115,82)', + 'c-primary-dark-400-alpha-100': 'rgba(50, 115, 82, 0.90)', + 'c-primary-dark-400-alpha-200': 'rgba(50, 115, 82, 0.80)', + 'c-primary-dark-400-alpha-300': 'rgba(50, 115, 82, 0.70)', + 'c-primary-dark-400-alpha-400': 'rgba(50, 115, 82, 0.60)', + 'c-primary-dark-400-alpha-500': 'rgba(50, 115, 82, 0.50)', + 'c-primary-dark-400-alpha-600': 'rgba(50, 115, 82, 0.40)', + 'c-primary-dark-400-alpha-700': 'rgba(50, 115, 82, 0.30)', + 'c-primary-dark-400-alpha-800': 'rgba(50, 115, 82, 0.20)', + 'c-primary-dark-400-alpha-900': 'rgba(50, 115, 82, 0.10)', + 'c-primary-dark-500': 'rgb(45,104,74)', + 'c-primary-dark-500-alpha-100': 'rgba(45, 104, 74, 0.90)', + 'c-primary-dark-500-alpha-200': 'rgba(45, 104, 74, 0.80)', + 'c-primary-dark-500-alpha-300': 'rgba(45, 104, 74, 0.70)', + 'c-primary-dark-500-alpha-400': 'rgba(45, 104, 74, 0.60)', + 'c-primary-dark-500-alpha-500': 'rgba(45, 104, 74, 0.50)', + 'c-primary-dark-500-alpha-600': 'rgba(45, 104, 74, 0.40)', + 'c-primary-dark-500-alpha-700': 'rgba(45, 104, 74, 0.30)', + 'c-primary-dark-500-alpha-800': 'rgba(45, 104, 74, 0.20)', + 'c-primary-dark-500-alpha-900': 'rgba(45, 104, 74, 0.10)', + 'c-primary-dark-600': 'rgb(41,94,67)', + 'c-primary-dark-600-alpha-100': 'rgba(41, 94, 67, 0.90)', + 'c-primary-dark-600-alpha-200': 'rgba(41, 94, 67, 0.80)', + 'c-primary-dark-600-alpha-300': 'rgba(41, 94, 67, 0.70)', + 'c-primary-dark-600-alpha-400': 'rgba(41, 94, 67, 0.60)', + 'c-primary-dark-600-alpha-500': 'rgba(41, 94, 67, 0.50)', + 'c-primary-dark-600-alpha-600': 'rgba(41, 94, 67, 0.40)', + 'c-primary-dark-600-alpha-700': 'rgba(41, 94, 67, 0.30)', + 'c-primary-dark-600-alpha-800': 'rgba(41, 94, 67, 0.20)', + 'c-primary-dark-600-alpha-900': 'rgba(41, 94, 67, 0.10)', + 'c-primary-dark-700': 'rgb(37,85,60)', + 'c-primary-dark-700-alpha-100': 'rgba(37, 85, 60, 0.90)', + 'c-primary-dark-700-alpha-200': 'rgba(37, 85, 60, 0.80)', + 'c-primary-dark-700-alpha-300': 'rgba(37, 85, 60, 0.70)', + 'c-primary-dark-700-alpha-400': 'rgba(37, 85, 60, 0.60)', + 'c-primary-dark-700-alpha-500': 'rgba(37, 85, 60, 0.50)', + 'c-primary-dark-700-alpha-600': 'rgba(37, 85, 60, 0.40)', + 'c-primary-dark-700-alpha-700': 'rgba(37, 85, 60, 0.30)', + 'c-primary-dark-700-alpha-800': 'rgba(37, 85, 60, 0.20)', + 'c-primary-dark-700-alpha-900': 'rgba(37, 85, 60, 0.10)', + 'c-primary-dark-800': 'rgb(33,77,54)', + 'c-primary-dark-800-alpha-100': 'rgba(33, 77, 54, 0.90)', + 'c-primary-dark-800-alpha-200': 'rgba(33, 77, 54, 0.80)', + 'c-primary-dark-800-alpha-300': 'rgba(33, 77, 54, 0.70)', + 'c-primary-dark-800-alpha-400': 'rgba(33, 77, 54, 0.60)', + 'c-primary-dark-800-alpha-500': 'rgba(33, 77, 54, 0.50)', + 'c-primary-dark-800-alpha-600': 'rgba(33, 77, 54, 0.40)', + 'c-primary-dark-800-alpha-700': 'rgba(33, 77, 54, 0.30)', + 'c-primary-dark-800-alpha-800': 'rgba(33, 77, 54, 0.20)', + 'c-primary-dark-800-alpha-900': 'rgba(33, 77, 54, 0.10)', + 'c-primary-dark-900': 'rgb(30,69,49)', + 'c-primary-dark-900-alpha-100': 'rgba(30, 69, 49, 0.90)', + 'c-primary-dark-900-alpha-200': 'rgba(30, 69, 49, 0.80)', + 'c-primary-dark-900-alpha-300': 'rgba(30, 69, 49, 0.70)', + 'c-primary-dark-900-alpha-400': 'rgba(30, 69, 49, 0.60)', + 'c-primary-dark-900-alpha-500': 'rgba(30, 69, 49, 0.50)', + 'c-primary-dark-900-alpha-600': 'rgba(30, 69, 49, 0.40)', + 'c-primary-dark-900-alpha-700': 'rgba(30, 69, 49, 0.30)', + 'c-primary-dark-900-alpha-800': 'rgba(30, 69, 49, 0.20)', + 'c-primary-dark-900-alpha-900': 'rgba(30, 69, 49, 0.10)', + 'c-primary-dark-1000': 'rgb(27,62,44)', + 'c-primary-dark-1000-alpha-100': 'rgba(27, 62, 44, 0.90)', + 'c-primary-dark-1000-alpha-200': 'rgba(27, 62, 44, 0.80)', + 'c-primary-dark-1000-alpha-300': 'rgba(27, 62, 44, 0.70)', + 'c-primary-dark-1000-alpha-400': 'rgba(27, 62, 44, 0.60)', + 'c-primary-dark-1000-alpha-500': 'rgba(27, 62, 44, 0.50)', + 'c-primary-dark-1000-alpha-600': 'rgba(27, 62, 44, 0.40)', + 'c-primary-dark-1000-alpha-700': 'rgba(27, 62, 44, 0.30)', + 'c-primary-dark-1000-alpha-800': 'rgba(27, 62, 44, 0.20)', + 'c-primary-dark-1000-alpha-900': 'rgba(27, 62, 44, 0.10)', + 'c-primary-light-100': 'rgb(113,191,150)', + 'c-primary-light-100-alpha-100': 'rgba(113, 191, 150, 0.90)', + 'c-primary-light-100-alpha-200': 'rgba(113, 191, 150, 0.80)', + 'c-primary-light-100-alpha-300': 'rgba(113, 191, 150, 0.70)', + 'c-primary-light-100-alpha-400': 'rgba(113, 191, 150, 0.60)', + 'c-primary-light-100-alpha-500': 'rgba(113, 191, 150, 0.50)', + 'c-primary-light-100-alpha-600': 'rgba(113, 191, 150, 0.40)', + 'c-primary-light-100-alpha-700': 'rgba(113, 191, 150, 0.30)', + 'c-primary-light-100-alpha-800': 'rgba(113, 191, 150, 0.20)', + 'c-primary-light-100-alpha-900': 'rgba(113, 191, 150, 0.10)', + 'c-primary-light-200': 'rgb(141,204,171)', + 'c-primary-light-200-alpha-100': 'rgba(141, 204, 171, 0.90)', + 'c-primary-light-200-alpha-200': 'rgba(141, 204, 171, 0.80)', + 'c-primary-light-200-alpha-300': 'rgba(141, 204, 171, 0.70)', + 'c-primary-light-200-alpha-400': 'rgba(141, 204, 171, 0.60)', + 'c-primary-light-200-alpha-500': 'rgba(141, 204, 171, 0.50)', + 'c-primary-light-200-alpha-600': 'rgba(141, 204, 171, 0.40)', + 'c-primary-light-200-alpha-700': 'rgba(141, 204, 171, 0.30)', + 'c-primary-light-200-alpha-800': 'rgba(141, 204, 171, 0.20)', + 'c-primary-light-200-alpha-900': 'rgba(141, 204, 171, 0.10)', + 'c-primary-light-300': 'rgb(164,214,188)', + 'c-primary-light-300-alpha-100': 'rgba(164, 214, 188, 0.90)', + 'c-primary-light-300-alpha-200': 'rgba(164, 214, 188, 0.80)', + 'c-primary-light-300-alpha-300': 'rgba(164, 214, 188, 0.70)', + 'c-primary-light-300-alpha-400': 'rgba(164, 214, 188, 0.60)', + 'c-primary-light-300-alpha-500': 'rgba(164, 214, 188, 0.50)', + 'c-primary-light-300-alpha-600': 'rgba(164, 214, 188, 0.40)', + 'c-primary-light-300-alpha-700': 'rgba(164, 214, 188, 0.30)', + 'c-primary-light-300-alpha-800': 'rgba(164, 214, 188, 0.20)', + 'c-primary-light-300-alpha-900': 'rgba(164, 214, 188, 0.10)', + 'c-primary-light-400': 'rgb(182,222,201)', + 'c-primary-light-400-alpha-100': 'rgba(182, 222, 201, 0.90)', + 'c-primary-light-400-alpha-200': 'rgba(182, 222, 201, 0.80)', + 'c-primary-light-400-alpha-300': 'rgba(182, 222, 201, 0.70)', + 'c-primary-light-400-alpha-400': 'rgba(182, 222, 201, 0.60)', + 'c-primary-light-400-alpha-500': 'rgba(182, 222, 201, 0.50)', + 'c-primary-light-400-alpha-600': 'rgba(182, 222, 201, 0.40)', + 'c-primary-light-400-alpha-700': 'rgba(182, 222, 201, 0.30)', + 'c-primary-light-400-alpha-800': 'rgba(182, 222, 201, 0.20)', + 'c-primary-light-400-alpha-900': 'rgba(182, 222, 201, 0.10)', + 'c-primary-light-500': 'rgb(197,229,212)', + 'c-primary-light-500-alpha-100': 'rgba(197, 229, 212, 0.90)', + 'c-primary-light-500-alpha-200': 'rgba(197, 229, 212, 0.80)', + 'c-primary-light-500-alpha-300': 'rgba(197, 229, 212, 0.70)', + 'c-primary-light-500-alpha-400': 'rgba(197, 229, 212, 0.60)', + 'c-primary-light-500-alpha-500': 'rgba(197, 229, 212, 0.50)', + 'c-primary-light-500-alpha-600': 'rgba(197, 229, 212, 0.40)', + 'c-primary-light-500-alpha-700': 'rgba(197, 229, 212, 0.30)', + 'c-primary-light-500-alpha-800': 'rgba(197, 229, 212, 0.20)', + 'c-primary-light-500-alpha-900': 'rgba(197, 229, 212, 0.10)', + 'c-primary-light-600': 'rgb(209,234,221)', + 'c-primary-light-600-alpha-100': 'rgba(209, 234, 221, 0.90)', + 'c-primary-light-600-alpha-200': 'rgba(209, 234, 221, 0.80)', + 'c-primary-light-600-alpha-300': 'rgba(209, 234, 221, 0.70)', + 'c-primary-light-600-alpha-400': 'rgba(209, 234, 221, 0.60)', + 'c-primary-light-600-alpha-500': 'rgba(209, 234, 221, 0.50)', + 'c-primary-light-600-alpha-600': 'rgba(209, 234, 221, 0.40)', + 'c-primary-light-600-alpha-700': 'rgba(209, 234, 221, 0.30)', + 'c-primary-light-600-alpha-800': 'rgba(209, 234, 221, 0.20)', + 'c-primary-light-600-alpha-900': 'rgba(209, 234, 221, 0.10)', + 'c-primary-light-700': 'rgb(218,238,228)', + 'c-primary-light-700-alpha-100': 'rgba(218, 238, 228, 0.90)', + 'c-primary-light-700-alpha-200': 'rgba(218, 238, 228, 0.80)', + 'c-primary-light-700-alpha-300': 'rgba(218, 238, 228, 0.70)', + 'c-primary-light-700-alpha-400': 'rgba(218, 238, 228, 0.60)', + 'c-primary-light-700-alpha-500': 'rgba(218, 238, 228, 0.50)', + 'c-primary-light-700-alpha-600': 'rgba(218, 238, 228, 0.40)', + 'c-primary-light-700-alpha-700': 'rgba(218, 238, 228, 0.30)', + 'c-primary-light-700-alpha-800': 'rgba(218, 238, 228, 0.20)', + 'c-primary-light-700-alpha-900': 'rgba(218, 238, 228, 0.10)', + 'c-primary-light-800': 'rgb(225,241,233)', + 'c-primary-light-800-alpha-100': 'rgba(225, 241, 233, 0.90)', + 'c-primary-light-800-alpha-200': 'rgba(225, 241, 233, 0.80)', + 'c-primary-light-800-alpha-300': 'rgba(225, 241, 233, 0.70)', + 'c-primary-light-800-alpha-400': 'rgba(225, 241, 233, 0.60)', + 'c-primary-light-800-alpha-500': 'rgba(225, 241, 233, 0.50)', + 'c-primary-light-800-alpha-600': 'rgba(225, 241, 233, 0.40)', + 'c-primary-light-800-alpha-700': 'rgba(225, 241, 233, 0.30)', + 'c-primary-light-800-alpha-800': 'rgba(225, 241, 233, 0.20)', + 'c-primary-light-800-alpha-900': 'rgba(225, 241, 233, 0.10)', + 'c-primary-light-900': 'rgb(231,244,237)', + 'c-primary-light-900-alpha-100': 'rgba(231, 244, 237, 0.90)', + 'c-primary-light-900-alpha-200': 'rgba(231, 244, 237, 0.80)', + 'c-primary-light-900-alpha-300': 'rgba(231, 244, 237, 0.70)', + 'c-primary-light-900-alpha-400': 'rgba(231, 244, 237, 0.60)', + 'c-primary-light-900-alpha-500': 'rgba(231, 244, 237, 0.50)', + 'c-primary-light-900-alpha-600': 'rgba(231, 244, 237, 0.40)', + 'c-primary-light-900-alpha-700': 'rgba(231, 244, 237, 0.30)', + 'c-primary-light-900-alpha-800': 'rgba(231, 244, 237, 0.20)', + 'c-primary-light-900-alpha-900': 'rgba(231, 244, 237, 0.10)', + 'c-primary-light-1000': 'rgb(255,255,255)', + 'c-primary-light-1000-alpha-100': 'rgba(255, 255, 255, 0.90)', + 'c-primary-light-1000-alpha-200': 'rgba(255, 255, 255, 0.80)', + 'c-primary-light-1000-alpha-300': 'rgba(255, 255, 255, 0.70)', + 'c-primary-light-1000-alpha-400': 'rgba(255, 255, 255, 0.60)', + 'c-primary-light-1000-alpha-500': 'rgba(255, 255, 255, 0.50)', + 'c-primary-light-1000-alpha-600': 'rgba(255, 255, 255, 0.40)', + 'c-primary-light-1000-alpha-700': 'rgba(255, 255, 255, 0.30)', + 'c-primary-light-1000-alpha-800': 'rgba(255, 255, 255, 0.20)', + 'c-primary-light-1000-alpha-900': 'rgba(255, 255, 255, 0.10)', + 'c-theme': 'rgb(77, 175, 124)', + + + 'c-000': 'rgb(255,255,255)', + 'c-050': 'rgb(244,244,244)', + 'c-100': 'rgb(233,233,233)', + 'c-150': 'rgb(222,222,222)', + 'c-200': 'rgb(211,211,211)', + 'c-250': 'rgb(200,200,200)', + 'c-300': 'rgb(188,188,188)', + 'c-350': 'rgb(177,177,177)', + 'c-400': 'rgb(166,166,166)', + 'c-450': 'rgb(155,155,155)', + 'c-500': 'rgb(144,144,144)', + 'c-550': 'rgb(133,133,133)', + 'c-600': 'rgb(122,122,122)', + 'c-650': 'rgb(111,111,111)', + 'c-700': 'rgb(100,100,100)', + 'c-750': 'rgb(89,89,89)', + 'c-800': 'rgb(77,77,77)', + 'c-850': 'rgb(66,66,66)', + 'c-900': 'rgb(55,55,55)', + 'c-950': 'rgb(44,44,44)', + 'c-1000': 'rgb(33, 33, 33)', +} + +const state: InitState = { + shouldUseDarkColors: false, + theme: { + ...theme, + 'c-app-background': theme['c-primary-light-600-alpha-600'], + 'c-main-background': 'rgba(255, 255, 255, 0.9)', + + 'c-badge-primary': theme['c-primary'], + 'c-badge-secondary': '#4baed5', + 'c-badge-tertiary': '#e7aa36', + + 'c-font': theme['c-850'], + 'c-font-label': theme['c-450'], + 'c-primary-font': theme['c-primary'], + 'c-primary-font-hover': theme['c-primary-alpha-300'], + 'c-primary-font-active': theme['c-primary-dark-100-alpha-200'], + 'c-primary-background': theme['c-primary-light-400-alpha-700'], + 'c-primary-background-hover': theme['c-primary-light-300-alpha-800'], + 'c-primary-background-active': theme['c-primary-light-100-alpha-800'], + 'c-primary-input-background': theme['c-primary-light-400-alpha-700'], + 'c-button-font': theme['c-primary-alpha-100'], + 'c-button-font-selected': theme['c-primary-dark-100-alpha-100'], + 'c-button-background': theme['c-primary-light-400-alpha-700'], + 'c-button-background-selected': theme['c-primary-alpha-600'], + 'c-button-background-hover': theme['c-primary-light-300-alpha-600'], + 'c-button-background-active': theme['c-primary-light-100-alpha-600'], + 'c-list-header-border-bottom': theme['c-primary-alpha-900'], + 'c-content-background': theme['c-primary-light-1000'], + 'c-border-background': theme['c-primary-light-100-alpha-700'], + + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + }, +} + +export const ThemeContext = createContext(state.theme) + +export default state diff --git a/src/store/useDispatch.js b/src/store/useDispatch.js deleted file mode 100644 index 31e14df..0000000 --- a/src/store/useDispatch.js +++ /dev/null @@ -1,24 +0,0 @@ -import { useCallback } from 'react' -import { useDispatch } from 'react-redux' -import * as modules from './modules' - -const defaultAction = () => {} -export default (moduleName, name) => { - const dispatch = useDispatch() - - // console.log(selector) - // console.log(moduleName, key) - - return useCallback((...params) => { - const actions = modules[moduleName].action - let action - if (actions && actions[name]) action = actions[name] - else { - console.warn('action not found:', moduleName, name) - action = defaultAction - } - return dispatch(action(...params)) - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) -} - diff --git a/src/store/version/action.ts b/src/store/version/action.ts new file mode 100644 index 0000000..ffd99a7 --- /dev/null +++ b/src/store/version/action.ts @@ -0,0 +1,26 @@ +import state, { type InitState } from './state' + + +export default { + setVersionInfo(info: Partial<InitState['versionInfo']>) { + Object.assign(state.versionInfo, info) + global.state_event.versionInfoUpdated({ ...state.versionInfo }) + }, + setIgnoreVersion(version: InitState['ignoreVersion']) { + state.ignoreVersion = version + global.state_event.versionInfoIgnoreVersionUpdated(version) + }, + setProgress(info: InitState['progress']) { + if (state.progress.total != info.total) { + state.progress.total = info.total + } + state.progress.current = info.current + + global.state_event.versionDownloadProgressUpdated({ ...state.progress }) + }, + setVisibleModal(visible: boolean) { + if (state.showModal == visible) return + state.showModal = visible + }, +} + diff --git a/src/store/version/hook.ts b/src/store/version/hook.ts new file mode 100644 index 0000000..ac8d276 --- /dev/null +++ b/src/store/version/hook.ts @@ -0,0 +1,80 @@ +import { useEffect, useState } from 'react' +import state from './state' + +export const useVersionInfo = () => { + const [info, setInfo] = useState(state.versionInfo) + + useEffect(() => { + global.state_event.on('versionInfoUpdated', setInfo) + return () => { + global.state_event.off('versionInfoUpdated', setInfo) + } + }, []) + + return info +} + +export const useVersionDownloadProgressUpdated = () => { + const [status, setStatus] = useState(state.progress) + + useEffect(() => { + global.state_event.on('versionDownloadProgressUpdated', setStatus) + return () => { + global.state_event.off('versionDownloadProgressUpdated', setStatus) + } + }, []) + + return status +} + +export const useVersionInfoIgnoreVersionUpdated = () => { + const [version, setVersion] = useState(state.ignoreVersion) + + useEffect(() => { + global.state_event.on('versionInfoIgnoreVersionUpdated', setVersion) + return () => { + global.state_event.off('versionInfoIgnoreVersionUpdated', setVersion) + } + }, []) + + return version +} + +// export const useActiveListId = () => { +// const [id, setId] = useState(state.activeListId) + +// useEffect(() => { +// global.state_event.on('mylistToggled', setId) +// return () => { +// global.state_event.off('mylistToggled', setId) +// } +// }, []) + +// return id +// } + + +// export const useMusicList = () => { +// const [list, setList] = useState<LX.List.ListMusics>([]) + +// useEffect(() => { +// const handleToggle = (activeListId: string) => { +// void getListMusics(activeListId).then(setList) +// } +// const handleChange = (ids: string[]) => { +// if (!ids.includes(state.activeListId)) return +// void getListMusics(state.activeListId).then(setList) +// } +// global.state_event.on('mylistToggled', handleToggle) +// global.app_event.on('myListMusicUpdate', handleChange) + +// handleToggle(state.activeListId) + +// return () => { +// global.state_event.off('mylistToggled', handleToggle) +// global.app_event.off('myListMusicUpdate', handleChange) +// } +// }, []) + +// return list +// } diff --git a/src/store/version/state.ts b/src/store/version/state.ts new file mode 100644 index 0000000..d482188 --- /dev/null +++ b/src/store/version/state.ts @@ -0,0 +1,48 @@ +import { version } from '../../../package.json' + +export interface ProgressInfo { + total: number + current: number +} + +export interface VersionInfo { + version: string + desc: string + history?: LX.VersionInfo[] +} + +export interface InitState { + showModal: boolean + versionInfo: { + version: string + newVersion: VersionInfo | null + showModal: boolean + isUnknown: boolean + isLatest: boolean + reCheck: boolean + status: LX.UpdateStatus + } + ignoreVersion: string | null + progress: ProgressInfo +} + +const state: InitState = { + showModal: false, + versionInfo: { + version, + newVersion: null, + showModal: false, + reCheck: false, + isUnknown: false, + isLatest: false, + status: 'checking', + }, + ignoreVersion: null, + progress: { + total: 0, + current: 0, + }, +} + + +export default state diff --git a/src/theme/themes/black.js b/src/theme/themes/black.js deleted file mode 100644 index bb2b69f..0000000 --- a/src/theme/themes/black.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'black', - isDark: true, - colors: { - primary: '#050505', - - normal: '#a3a3a3', - normal10: '#999', - normal20: '#8f8f8f', - normal30: '#858585', - normal35: '#7a7a7a', - normal40: '#707070', - normal50: '#666', - normal60: '#5c5c5c', - normal70: '#525252', - normal75: '#4c4c4c', - - secondary_5: '#666', - secondary: '#999', - secondary10: '#474747', - secondary20: '#383838', - secondary30: '#2e2e2e', - secondary40: '#292929', - secondary45: '#1f1f1f', - - tertiary_5: '#9b7e83', - tertiary: '#a68c91', - tertiary10: '#b19b9f', - tertiary20: '#bca9ac', - tertiary30: '#c7b7ba', - tertiary40: '#d2c6c8', - tertiary45: '#ddd4d6', - - borderColor: '#0f0f0f', - borderColor2: '#1b1b1b', - borderColor3: '#292929', - borderColor4: '#363636', - borderColor5: '#424242', - }, -} diff --git a/src/theme/themes/blue.js b/src/theme/themes/blue.js deleted file mode 100644 index 4b874f7..0000000 --- a/src/theme/themes/blue.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'blue', - isDark: false, - colors: { - primary: '#fff', - - normal: '#333', - normal10: '#4c4c4c', - normal20: '#666', - normal30: '#808080', - normal35: '#8c8c8c', - normal40: '#999', - normal50: '#b2b2b2', - normal60: '#ccc', - normal70: '#e6e6e6', - normal75: '#f2f2f2', - - secondary_5: '#258bd0', - secondary: '#3498db', - secondary10: '#5eaee3', - secondary20: '#89c4eb', - secondary30: '#b5daf2', - secondary40: '#d2ebf9', - secondary45: '#e8f5fc', - - tertiary_5: '#41a581', - tertiary: '#48b78f', - tertiary10: '#5cbf9b', - tertiary20: '#6dc5a5', - tertiary30: '#7fccb0', - tertiary40: '#92d3bb', - tertiary45: '#a4dac6', - - borderColor: '#e6e6e6', - borderColor2: '#ebebeb', - borderColor3: '#f0f0f0', - borderColor4: '#f5f5f5', - borderColor5: '#fafafa', - }, -} diff --git a/src/theme/themes/colorUtils.js b/src/theme/themes/colorUtils.js new file mode 100644 index 0000000..cff9fa7 --- /dev/null +++ b/src/theme/themes/colorUtils.js @@ -0,0 +1,73 @@ +/* eslint-disable */ +// https://github.com/PimpTrizkit/PJs/wiki/12.-Shade,-Blend-and-Convert-a-Web-Color-(pSBC.js)#micro-functions-version-4 + +/** + * Blend color (Lighten or Darken) + * @param {number} p 混合百分比 范围 0.0 - 1.0 + * @param {string} c0 rgb(a) color1 + * @param {string} c1 rgb(a) color2 + * @returns color + */ +exports.RGB_Linear_Blend=(p,c0,c1)=>{ + var i=parseInt,r=Math.round,P=1-p,[a,b,c,d]=c0.split(","),[e,f,g,h]=c1.split(","),x=d||h,j=x?","+(!d?h:!h?d:r((parseFloat(d)*P+parseFloat(h)*p)*1000)/1000+")"):")"; + return"rgb"+(x?"a(":"(")+r(i(a[3]=="a"?a.slice(5):a.slice(4))*P+i(e[3]=="a"?e.slice(5):e.slice(4))*p)+","+r(i(b)*P+i(f)*p)+","+r(i(c)*P+i(g)*p)+j; +} + +/** + * Blend color (Lighten or Darken) + * @param {number} p 混合百分比 范围 0.0 - 1.0 + * @param {string} c0 rgb(a) color1 + * @param {string} c1 rgb(a) color2 + * @returns color + */ +exports.RGB_Log_Blend=(p,c0,c1)=>{ + var i=parseInt,r=Math.round,P=1-p,[a,b,c,d]=c0.split(","),[e,f,g,h]=c1.split(","),x=d||h,j=x?","+(!d?h:!h?d:r((parseFloat(d)*P+parseFloat(h)*p)*1000)/1000+")"):")"; + return"rgb"+(x?"a(":"(")+r((P*i(a[3]=="a"?a.slice(5):a.slice(4))**2+p*i(e[3]=="a"?e.slice(5):e.slice(4))**2)**0.5)+","+r((P*i(b)**2+p*i(f)**2)**0.5)+","+r((P*i(c)**2+p*i(g)**2)**0.5)+j; +} + + +/** + * Shade color (Lighten or Darken) + * @param {number} p Shade 百分比范围为 -1.0 - 1.0 负为黑色,正为白色 + * @param {string} c0 rgb(a) color + * @returns color + */ +exports.RGB_Linear_Shade=(p,c0)=>{ + var i=parseInt,r=Math.round,[a,b,c,d]=c0.split(","),n=p<0,t=n?0:255*p,P=n?1+p:1-p; + return"rgb"+(d?"a(":"(")+r(i(a[3]=="a"?a.slice(5):a.slice(4))*P+t)+","+r(i(b)*P+t)+","+r(i(c)*P+t)+(d?","+d:")"); +} + + +/** + * Shade color (Lighten or Darken) + * @param {number} p Shade 百分比范围为 -1.0 - 1.0 负为黑色,正为白色 + * @param {string} c0 rgb(a) color + * @returns color + */ +exports.RGB_Log_Shade=(p,c0)=>{ + var i=parseInt,r=Math.round,[a,b,c,d]=c0.split(","),n=p<0,t=n?0:p*255**2,P=n?1+p:1-p; + return"rgb"+(d?"a(":"(")+r((P*i(a[3]=="a"?a.slice(5):a.slice(4))**2+t)**0.5)+","+r((P*i(b)**2+t)**0.5)+","+r((P*i(c)**2+t)**0.5)+(d?","+d:")"); +} + + +/** + * 修改透明度 + * @param {number} p 透明度 -1.0 - 1.0 + * @param {string} color + * @returns color + */ +exports.RGB_Alpha_Shade = (p, color) => { + var i = parseInt + var n = p < 0 + var [r, g, b, a] = color.split(",") + r = r[3] == 'a' ? r.slice(5) : r.slice(4) + if (a) { + a = parseFloat(a) + a = a - (n ? (1 - a) * p : a * p) + a = n ? Math.max(0, a) : Math.min(1, a) + } else { + a = 1 - p + a = Math.min(1, a) + } + return `rgba(${i(r)}, ${i(g)}, ${i(b)}, ${a.toFixed(2)})` +} diff --git a/src/theme/themes/createThemes.js b/src/theme/themes/createThemes.js new file mode 100644 index 0000000..41f2990 --- /dev/null +++ b/src/theme/themes/createThemes.js @@ -0,0 +1,294 @@ +//! 更新默认主题配置后,需要执行 npm run build:theme 重新构建index.json + +const fs = require('fs') +const path = require('path') +const { createThemeColors } = require('./utils') + +const defaultThemes = [ + { + id: 'green', + name: '绿意盎然', + isDark: false, + config: { + primary: 'rgb(77, 175, 124)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#4baed5', + 'c-badge-tertiary': '#e7aa36', + }, + }, + { + id: 'blue', + name: '蓝田生玉', + isDark: false, + config: { + primary: 'rgb(52, 152, 219)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#5cbf9b', + 'c-badge-tertiary': '#5cbf9b', + }, + }, + { + id: 'blue_plus', + name: '蛋雅深蓝', + isDark: false, + config: { + primary: 'rgb(77, 131, 175)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-600)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': 'rgba(66.6, 150.7, 171, 1)', + 'c-badge-tertiary': 'rgba(54, 196, 231, 1)', + }, + }, + { + id: 'orange', + name: '橙黄橘绿', + isDark: false, + config: { + primary: 'rgb(245, 171, 53)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#9ed458', + 'c-badge-tertiary': '#9ed458', + }, + }, + { + id: 'red', + name: '热情似火', + isDark: false, + config: { + primary: 'rgb(214, 69, 65)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#dfbb6b', + 'c-badge-tertiary': '#dfbb6b', + }, + }, + { + id: 'pink', + name: '粉装玉琢', + isDark: false, + config: { + primary: 'rgb(241, 130, 141)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#f5b684', + 'c-badge-tertiary': '#f5b684', + }, + }, + { + id: 'purple', + name: '重斤球紫', + isDark: false, + config: { + primary: 'rgb(155, 89, 182)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#e5a39f', + 'c-badge-tertiary': '#e5a39f', + }, + }, + { + id: 'grey', + name: '灰常美丽', + isDark: false, + config: { + primary: 'rgb(108, 122, 137)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#b19b9f', + 'c-badge-tertiary': '#b19b9f', + }, + }, + { + id: 'ming', + name: '青出于黑', + isDark: false, + config: { + primary: 'rgb(51, 110, 123)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#6376a2', + 'c-badge-tertiary': '#6376a2', + }, + }, + { + id: 'blue2', + name: '清热板蓝', + isDark: false, + config: { + primary: 'rgb(79, 98, 208)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'var(c-primary-light-600-alpha-700)', + 'c-main-background': 'rgba(255, 255, 255, 1)', + 'bg-image': '', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#b080db', + 'c-badge-tertiary': '#b080db', + }, + }, + { + id: 'black', + name: '黑灯瞎火', + isDark: true, + config: { + primary: 'rgb(150, 150, 150)', + font: 'rgb(229, 229, 229)', + 'c-app-background': 'rgba(0, 0, 0, 0)', + 'c-main-background': 'rgba(19, 19, 19, 0.95)', + 'bg-image': 'landingMoon.png', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary-dark-200)', + 'c-badge-secondary': 'var(c-primary)', + 'c-badge-tertiary': 'var(c-primary-dark-300)', + }, + }, + { + id: 'mid_autumn', + name: '月里嫦娥', + isDark: false, + config: { + primary: 'rgb(74, 55, 82)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'rgba(255, 255, 255, 0)', + 'c-main-background': 'rgba(255, 255, 255, 0.9)', + 'bg-image': 'jqbg.jpg', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': '#af9479', + 'c-badge-tertiary': '#af9479', + }, + }, + { + id: 'naruto', + name: '木叶之村', + isDark: false, + config: { + primary: 'rgb(87, 144, 167)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'rgba(255, 255, 255, 0.15)', + 'c-main-background': 'rgba(255, 255, 255, 0.8)', + 'bg-image': 'myzcbg.jpg', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': 'var(c-primary)', + 'c-badge-secondary': 'var(c-primary-light-100)', + 'c-badge-tertiary': 'var(c-primary-light-100)', + }, + }, + { + id: 'china_ink', + name: '近墨者黑', + isDark: false, + config: { + primary: 'rgba(47, 47, 47, 1)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'rgba(255, 255, 255, 0)', + 'c-main-background': 'rgba(255, 255, 255, 0.8)', + 'bg-image': 'china_ink.jpg', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + + 'c-badge-primary': 'rgba(137, 70, 70, 1)', + 'c-badge-secondary': 'rgba(67, 139, 65, 1)', + 'c-badge-tertiary': 'rgba(132, 135, 65, 1)', + }, + }, + { + id: 'happy_new_year', + name: '新年快乐', + isDark: false, + config: { + primary: 'rgb(192, 57, 43)', + font: 'rgb(33, 33, 33)', + 'c-app-background': 'rgba(255, 255, 255, 0.15)', + 'c-main-background': 'rgba(255, 255, 255, 0.8)', + 'bg-image': 'xnkl.png', + 'bg-image-position': 'center', + 'bg-image-size': 'cover', + + 'c-badge-primary': '#7fb575', + 'c-badge-secondary': '#dfbb6b', + 'c-badge-tertiary': 'var(c-primary-light-100)', + }, + }, +] + +const themes = defaultThemes.map(({ config: { primary, font, ...extInfo }, ...themeInfo }) => { + return { + ...themeInfo, + isCustom: false, + config: { + themeColors: createThemeColors(primary, font, themeInfo.isDark), + extInfo, + }, + } +}) + +fs.writeFileSync(path.join(__dirname, 'themes.ts'), `/* eslint-disable */\n//! 此文件由 createThemes.js 生成\n\nexport default ${JSON.stringify(themes, null, 2)} as const`) + diff --git a/src/theme/themes/green.js b/src/theme/themes/green.js deleted file mode 100644 index 7c471b0..0000000 --- a/src/theme/themes/green.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'green', - isDark: false, - colors: { - primary: '#fff', - - normal: '#333', - normal10: '#4c4c4c', - normal20: '#666', - normal30: '#808080', - normal35: '#8c8c8c', - normal40: '#999', - normal50: '#b2b2b2', - normal60: '#ccc', - normal70: '#e6e6e6', - normal75: '#f2f2f2', - - secondary_5: '#46a071', - secondary: '#4eb17d', - secondary10: '#73bf97', - secondary20: '#95d0b2', - secondary30: '#b9dfcb', - secondary40: '#dcefe5', - secondary45: '#edf7f2', - - tertiary_5: '#5497b5', - tertiary: '#66a2bd', - tertiary10: '#77adc5', - tertiary20: '#89b8cd', - tertiary30: '#9ac3d5', - tertiary40: '#accedd', - tertiary45: '#bed9e4', - - borderColor: '#e6e6e6', - borderColor2: '#ebebeb', - borderColor3: '#f0f0f0', - borderColor4: '#f5f5f5', - borderColor5: '#fafafa', - }, -} diff --git a/src/theme/themes/grey.js b/src/theme/themes/grey.js deleted file mode 100644 index b5d2f67..0000000 --- a/src/theme/themes/grey.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'grey', - isDark: false, - colors: { - primary: '#fff', - - normal: '#4c4c4c', - normal10: '#666', - normal20: '#808080', - normal30: '#8c8c8c', - normal35: '#969696', - normal40: '#a1a1a1', - normal50: '#b5b5b5', - normal60: '#c9c9c9', - normal70: '#e0e0e0', - normal75: '#f2f2f2', - - secondary_5: '#5a6672', - secondary: '#6c7a89', - secondary10: '#8892a0', - secondary20: '#a4acb7', - secondary30: '#c0c6cd', - secondary40: '#dde0e4', - secondary45: '#cfd3d9', - - tertiary_5: '#9b7e83', - tertiary: '#a68c91', - tertiary10: '#b19b9f', - tertiary20: '#bca9ac', - tertiary30: '#c7b7ba', - tertiary40: '#d2c6c8', - tertiary45: '#ddd4d6', - - borderColor: '#e6e6e6', - borderColor2: '#ebebeb', - borderColor3: '#f0f0f0', - borderColor4: '#f5f5f5', - borderColor5: '#fafafa', - }, -} diff --git a/src/theme/themes/images/china_ink.jpg b/src/theme/themes/images/china_ink.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68fd5130f1f60dc7e6142f9ad641a23b0ecd0f7b GIT binary patch literal 1142792 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⋘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 *;suIG{Xf-bhJ$v0J$zdJC2N_whV=46UhmT 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¨r!oOEYNsN%hNPPz+?m|o0gnL3ARYIQLa)_UvDQ^>x%#@wA< zz&2jD`+xA^#MvPJ^g?M@t_4&@_CR5$oq#*i5}7!7Alu5BeDleAp$)^%r}m3EGo(W7 z^0_Imw}$id6CBQr3ei{`C%qlaN4!6ZMogk8-pS^7G73pPqB9;FJF4{&d3P6-F|nLM zkv%7MK>J!B4`1J>fHx&+@^dz?5rid>Fr6RXn`L9K4Xxz)xw?7wS3W-+2lX~MXC?K{ zM_qkkgDDlN0=8deZ_ZFupmBxZBlcATm#{0DGg<`$gnl6#(o8+ao2aP{h1>U=jYb@A zhZFk8AHEo1_|8%j`rK$%N?UJcY8F<LqrG`Z&_}*+FC8189UsqE()EJE*XQ2l>X8R% zBa3ae+}#esEzAWLPgn!uX`f*@I0afecNK|s)TbjYCB<3cmPF#{plcxC8u^UYcu?*b z=sCM{h7Cc63V>hmH@Cb6e0y?i>O0NKX!1t_x<3@oa-ancz_NrGbyx};dxKQ9q1P%8 zRUS=0w#>zbT3diuzlXS<CRHI<Q46ak89XeL2yEtBG2!ydAY8|Uh?DF^XUG`KwY)ou z=MNYE?azhy;u}9?(?Q?`wshm8DRtG*FVlK_(g(Jvx4isLutXqLl=AWsrW?t|b~iyY z)wH7PtMerZ@v$n4xxj$MMk0;9?|db{r<}Y1Y!1EpUDEU+3f4z%dMtjDb0YSl_340m zlTPA42x*SS(}qeOJ^Y3%9}i>?OM=T@$t79Px6puZ-`8_1nk^Up!})Q9H<iD-@Ga~^ z0C*VlssCS9)GfRsxh67p@R5VJyw=3=781WC0ddTA1jJ<q2O2*C<$O@<(OyEGZ6xyl zDgkjC!u;)rzKkJ=i_wG&Y~)`s!|RuLgFt}?|F%!tCJ@BD=GP#!C8Kbki1gzyJ_KAi zEL0ITgo$#6A63D&v++viuz4`uO5AF8nHuGY)*Ewz3YM!{dH*XSmh10VOA|B2ve47K zg02UU|9XVB!ia&0)#8PIy|PqwF>U&!Ml|ptNrx}t*euJ;hGE%IMq)|{fznL5MWGwl zC$#Y@;3s0INNRMar;<SM<K7UZ5Q0oMUNeS$U+A^^gN%_Xp5ovmU0B@Z4PL@{$sy)O z@utyTF{=b@a@U(`3rR)#DW$xqti(AZC;3KR>HChUx_YNfzge<mLg_&0EQorU<+4iI zwx>~fnhgV-j_;C(TDUKyR9uYb!$6H}*$0M`BBU5C*6I88?H4r}GWn4RwHQC&HoP#V zUDz3RB0V-#8=9!{2~tkyG@29@!F@!9hbdXbM%j6>K1v(k^rxJs`#<-GPuV+aS5ThU zHC?NRnAZzT8ur~9;R7mgf^sTzC_Hk+G4RG4h(u+GTfKcE@}CJDH=eL~J%@JOYCzLk zV0udCSit=(h}s@)#_}Y6z4_=Ce)K0P>2ee?Oq%%x93O=6NG%N>$NZ_Q)<TcU2ncJ# z(KVkES#x(uh%`un;l`ExU$BU-+eEl4F}vLEgH<9=_+I#3US~_cDPA>rJM(iY!9W_S zRe<Q{buEEsMCJGkU5xFcr_81};)z^JFD~7snnGqL%tQS+uRBstS~geJ@RjjI7`(AL zmb#bOm<0fWS(;jSi2_73*L7>_!X&D65GQ{zKRQPyvdHV^eou=FCLZYGK&e0zYTN&+ zsnH)MZaqnz66$Ya7kfB9BQP^TQTtNk)3X;3tg-d2i8r5`wEn{H&e$kbV3_bU@6p>) zWrRIUHQRyLVy%Q%lB(z|=4*@!Bl*-n2qhT(68p)Iqh-lTx&%1KY5Z4mc-SmM>HI)a zWA<`J!s-7c7QcaZsD`wlB{z0@D<@jqwd|h<0<zdVz%L3(#uUVw<*NEMu-YfQ81o6N z1Aw*vd);5IA(=Q%I^k~;Hib|JFvl!qN0>Sg&4JXV&oVGNi&q<e!Gq7z**Azq6Bq0a zoMZCfI^Y><iOWoFDW%Mv7}Gw|K$cb4_JiKDoPkDx#Z;u9F|s{+$JfYR0;OAG1gi9m zX0y3v^CogE@`M-ITV=B_i5ePMvquXSYlh09Z;*nVu_gANtBYEtPvT-(c6u@IKr$E$ zRX|p<y(t?~Vifp7MOB3kA1|Fn9G#)Tj)KeM-!7iR=&!6gmqAmW?4Pk!maOgL-^thD zr+(8wdoeaxP{0*l+vTV!id_Hip#@ulhL4O(RN05DoQmc+u4LgloI3~n%ALl;C`gK@ zpsU-#<^t_hh41JTwPx?ItrMedNdos>YgT<`;?{YYsDpa8e-JM3CQNAm>T<hdvhQ(x zWxkH4<IgA&!Kf9fH#lRzzn>6pu~c_=AA<()m7EE5({B<!mKEZ}sEQTedC{Nu@sOD9 zGB!vMP9uw4hnY?lTXnjLIv$V`>cuF*ZW>Q;#B<)0ETrdXV`Q(LL|nCW1mDs2PWrHA zb4X=;o&y4CVJAip1uE!!%`xG0ymu`>*GyN{v%x62RU9uHwdxW_ttS^L+FiA>OUX+I zTZF0jqA5={Fux|1-w3=RHRs=+QRiV5D)v|UZIIQR!X<R2&0VU~wcDfPwl9Hy0obPZ ztbfeCpHM~OeLT{Ab|hp`bZ3Sp!dosN$CS3duDwM9=nvO6Cbpn(r3Zix*39-4&y#1c zjbBd&@B58SZ<o_c0>`t&P*Co6Ryg1E0QtRLx0+d&_`nI*60=R=EH<$VmmgX!)kN<# z&0j-N2wl%sDZZ*1>yjZ~yPO1Fy{oRwZC^F59nJ@FBgW*_V;x%d8)`@VdfM!%!=nEn z5B7F+<;r8j`rVP_u(;|WRW2D(f}*!=WvX<x6wYjSN6cd(zAlz4!-b)K=7W_>lJR#g z{8gfM2lVZ{9bf$rMQSnn=)nw(G^9mOZclY&Y?H)ZIF#%0OdC5f<_KzpSMO?3*ee;a z*3rq(RU`(BYw0$B_2gbk^ilF{n|{E+@#tgO*1iu-j|A8p+;1Wbci!rMb=N4-xZ!H* zz5Md|kdp*!@K^89yRpH6JGI_B!J&68LYsRGGL2cE=|omn$<=Wul!2u*H6NGOKwxho zCW_8KKu+GheL{=AeclB6pd6GTlaSQx%1NOjdWG3e?t_0PiLWF9wfGZZq@3Xn&Y{lW zo$&ZfwR*j)26gl7K)@H8P1W{ZWR@z)%HhpqglUUa5*!CZRb0FR0JZ~ojxTeaIdTed zZb{5=J~FV2vr_-sKz-6cf@^dTaOJiqHf~FYS6H2vuRfiwpmZ0St4jLWp=fcYm&Q<~ z=&e7a*;6#*L+OYX+Mg?ZM>MAA%q664Y#-*r$WMhPX&JOQtD59K^9v^DE=ZG42R0E? z`4~m2|K%@=3(D3|8THpT_&ll^D)aPCnDsFCP7rkNw8VgmM~b~6)9_d3Lrtk4@xpWl z)i!jnx!f|d5RmdKiElzEe{>{%GU_kBsF@=v)Y@+1!k$%R$5XtoVq$A>P{(s~W8?B@ zv@5Dww8F7kt5k>lp>GTAJ)fwG`$~a9&wq@sKKZmBGNq&2fUk-}!z^E=vW;|ek$j%F zP1ZI>k02)CB!%Zzwa{*($w7z!%uqgM#a~){2C#%IfvOs|%A}E^-8pWcT)idIKT4mV zV!xhtvqz$?9*T9*?j>ibNTx$|;>IIdCyl1QFq4p&L$ttUx;9yFSIoAY+)^5-c0>No zf3iN;>b{feSk=$4a(R208x8EmUlW>#<SaY!TE{;zz%GB&Y2-JauLpC9Wgm1v0DhZk zwdsdf^$h5q{MN0-Y>4X>e5LE6`h+W0Bn++iELe+u%M*4+ev0`UEW46@78fYBVS5rv zFs%9VQBxO3%9U)-=I<^)+5?~XrGpc+#}%}11?^RH3yyaL3I%3I80@}L^^^#NB;Eg4 z;_4j{c<J}^8i@_K$5<DI4#gT7&7{8yy3Mw1s~wVqSIcl|AU=?ie@j9tl^x<X8i}nb zPb%jhgO+NsIT{h!o~lqRy|=`qgdp+;I)pb+VIN)!&U<fPn>1dL&5OGtqdMB!K?Z7d z5JGS~Peg>u?1MPRFHo>Fh67@ORV_IBQ9<*lRf*O{koGu-90ebVmo42n>jChhDr$Sj zp!Fh-)6Czni41tQ-1!LwA=VTAb^GF6baij@A0))m?Wj87+#5LqA^<BS$cU1IZw3E1 z-hD&r!*El7oJ%%@gdsN2Z3z2{zwGGs3Go>M&9beKi2or`*t2l9{USLjzgWm;AI`Gq zTvLN4kMMNvvzDjl!-q?w%Qt<u_cQqz(md$!AL^XYf;x>AxCa>%JSivk7O#PGalFaa zLxU-G+9kbjhX5bUwMWsy=L+9V!R~e8S@v&r2tt}@rcGAXf275I9~)2fYq@skE50-5 zB(iCLH5}Mgu@qD{Kj__Dsq6bO+j{kZ+vbZFgqD|60@GrBRRF;Kgi|Z%W#0JGzO2wH z1Wmmbo2}<dF;DMWMsv)y+N|bNl~#%8_-SsvEK^AcEQ-GG^qA<+(wixVg%sU09-DAn zHt6=UbaJNLruIxJvKO2AQz<E1BRRkvJ~-=<#)b(dG#=<kd<;3^r5hakVbU&aJ;ox- zp8Vm=K;F%Y5u5bhp(j<6e2Mp9PK8xs`x@dUJ81;d!xz)9X_)#Js<N#I=QE29!nv^? zd9sG({uq|zeBj}z`cGw3uwB0VXK(EZTjbOgxcSNJBSdM|i*OBzKY^bF&CsErAje(V zp-{xZAB%v})}4iR3;WI#bvIQ$#_+mnS1g~hyK6Fwo>iOG(~jqjF%xC|<}92QD{z4T zk8Ylm;}}iF8z|0|1o~tDug4xc#aA8q?<*L|`CtD{1}Z-s+}5J469@Akm(|};TY*a| zO_ry)^}m^m1h>ygS1H%m(W<Xw|N8@|z<0IwV0|*JA1#^>D5c#EHR~FS@Smeax<0ew z<$(F@d%8GM=IC$YW-IeK{jFhGX_j+iWw^uJWn&U*i5nY#2`}Nyze$z+pZ?Nm%#l&f zzTEMIO~nW01qC($-wyeh8Rhe9P7miLA@`MAkdB^aCxM1k1_Za)H~?PikCiPkH}(M0 z;%oS|C`a$=T!`BaycaMgupYfN)aq=eX9bM!HT3ej)7V0{6%wv>;SmJG`ryB_N29jj z;gKL`i$y3J57h(sB^qmcj$??RJN`X=*B5%i?@912@nth~>bhn2oR8TZS12k9s;z>% zd2sDQdX~_<+0RQk*1Jk_`<n<f&p@E_Ju$5ir;ydF_|X+-^%4@3$FPDew@>=j_R=&( z;m4X=oe*Hj+E|D5S)wsXkS}`mDh_dmg;teSqh9*`s0oUJ9qWw!57e-?Yur#1esA69 zb`j1Qmb6yIy>kqmLY@&~%~n|xD{iH&&n?rXrQCc>;WgeA5(|2qK@T5*>)VAN*XdS# z%2d7eLa?W3HFxKlaTf2n!{H1RayyysUqQv82iQ;f7GZSZ0*nXhF_{((bnX(%6|7OI zEdexzIhC!|9VEvAC~b&2#mhKVDrn01-)4(@T2an@nxsYS2EK&rAJww58ALUkO<oUk zkwTwXZwH$;6dx=$G`#bo#Sqz9F17bkP-}}hC<ojvjH3WK{mHLk88N%639m)39IG(; z1C<@roh7xrG)M&c$P1WeR}AytS@g3}J5sJke4kerSgS{p;G;macsilT+uGK3Q-+*H zuzly<!Xo0;RZUPaYjV!r2wKKN0S|lr4@7>q3I<m0LyC-O?_DmejI*gSqAt6i=gai} zmrnDfPwx^YQ#hFuIaV0ctwt;nPc3p^3>u$I(f`PCc7n|dj&#X^b1(dOg~voN5}9~A zRMWqjY0gY9aqOpkZ6=CuYiQ=GzoA1-y{H)9LG_U<%{UZy$z!)bUOnrC-DI%dj5UEo z4pTc;B%>jloh)Zn4fHYsAB;6O#-M&7`uB=OW+erQw&wpqYGBX==QaGKaoYf%2@2kX z?eXn7@6Y}*PKE9jkIKx#1IPrhq%zyx)jV2--2)gW)sv0=Mh!Z>e-Os+MAnEd3Zi_} z(7;{c111{M#b!V*D>3!`P+s(GTrJjp4r-+(amg%`rbVK>5UFrg>!Cg*`iMSwNJh|q zha;sT!r3(MP*1TX{yDy{u>|D<mIVp%joH(JiRBQzz5-2~mgeYm;~}znR=>-C5WzRY zMvCDyyZU7Ca<_dJE0^|LCvR|fpR|c{k^_<%)<i18&fmOTh-;g^JKCi=RTZ$(!5u#o zwb|aqbno$3>$F-IKjP$O&V@CP-?c!Du<6@UgrkTUg-8bihGR^xVYokpUq9FaKtIN1 zmu3sEs7n`TI?<}?k{2U}4y?%ul$XMlIPB%nMDnRakQrRfHM^AI-)hyq6AIaSNbBOS zmVyBrd#%b>RKvHoN+A&=ff6(}Dy^HrunThkQIS~$bCTGsQJWM*Jz0e%1ziOig92C3 zZ+|_fdC6Z*e+#*hWJ34-%v%~#teJnZ9UBPiI<c((k{MxI&R5WRpPkKHube5=DM^KP zEvXj`@IzpugUhDgF&J-rz)SeV;FV5U!+fwtYYzynXZwH=cR>`DoP36T7!a9SFwIi( z&oa_fPnfy?sIF_?v!HL9@PfGR7Vq|4&!>sk2|758-{r)+KIy^{x#uj6Yl+TMrN&?J zRg90uN`nPm1Ik#|G137YE$fU@-;p{kxdY~UaRwBv7W_lW<SW|Hg5YX+z}rOcoK7i& zcFwq}*d^RAuO{!3FyLK*T6@^CTj|rMd(?8J&nK7+QZP4pX`=s};hu^E)-f=X-v7B% z!}}i^`!AAuY3rTqi^xXXXx+l9kvZ?Y>XCr%O^#1?8CB9?EI)kE`q&`>y52Q8miGTy zvKN_x31soUlZj00UU7lqD#yU&Yy@wvC4CCq`v>{m(czNm$ePwkN522@AH;6e+PWy0 zFM%U<PB_-jHVyb7chR@^a~oPO(H%C;;^F`==8C`~<Ljx3J|T@Pr_MMo-HMLjJJ;}6 zHd}b<=D`)T^a88GQL?*?pZQeTj6Sa9X@pcmx=5+^p$4A7Gx8lz!n4(7P7RL+|1b<$ z<L3&PfqEC3Dro!5dh<uc=``>2wA!MYw0Q+}J;gX`A1?j+P!zX;P&#Y4I0telXt2cL zZHy7i$D;9M`qa&d=AEGWnuQMe*k`k9F02Daqk0Mo_xQ51_}Gu=v!cpNjZ#N{zH)e; zh{7kqsSFc;+u;aZL!J)j{Tkg1Q4~7pQ>zy^Zs)DE(bo}HBbc~XcVj`TSgWc22dvic zMnM-X*~;&l(s?0=`X&?D(qi^mzn=K=;?b18{-l-`Wkf+%cZ2;yZNX?d6{)Q@DSd{- zESGs}dY7^UHjI^K*<r!j7TU*j`D3fgh3_YwwpW(KVMJUP?=7Jup{B;HaYj#-&ELEH zrKZuwak5em^p3sY%KB+CH0wwRA^dTE{Gr%E3>o`;{h-y<;m-V7o>9P52>{f%-jtQU z@$s4J8bmf{hkCjUsu6<63_Ay)!VgJyWAaZQr#k~6T~UF9ZlI@<h)9rZ)z4L{+Reo; zt>$kxOS;o!{L?=qq?B5-ENU+(v&m)I&Guzi1N!&k%Le5UM%I}SJ+)l9BUHo!U$}sh z2B8Ved25a13i0{pWv7o9p;>}9Eue${^;xm2rhn-4%fI4#`OCR{CjR;ly&sjFdpe4F z$ak8w#|g{$*;5e5lY!;2zAdkcD)i11j!r&OkHpVbOTCsUk9#P3VAy5TD7T?h^z0rK zr3)j*sh4hHUJjfcaFJKV3nqjLcGB!pkn*0}mM&QQY4}kZUwmXhF@5*XX_F*6&G-Gj zt`%`RRZwsQYhYk0LnBw%KJy2Dp~{ko7gsrfH@jRr9sf$Chj2xHA-Sztsk8NNP~Yio zrAZ|2#^<@sqc0PqOe2{bC6Wp6YSlRQaHZyI{%Q&n3%seukFqVl=kTV^FhU;wpT-d9 zZPc0v+{MN}hPiBwU)!6{wW7}=s?;>1F{!t{eWCZPSJxM9ZX6GnooJ(veXxf-#;@@` ziR4groSxQImi->>qysyTbSt0ibaJbm?7i@OB=+n8DO#WCgA-r6DS_|VE7X>yrq)iG zuWg_=pa(HCQ__%*F_;DYb9%+MSBk^!@F_@@h@^?6{SVa>$TaViUNAWu96fN*_Ky6D zK`lzsn?4O%9Qy5SF%~kY({GKi-DenMx$y&FT}i&%27mh{ik73H!CjeeiFoXoPNdJr z10jDR9jR^;r~5EEn1E2hYGAsk>@k|pu;|^xo#-r6O(VXGSJcU{T11LZGLN&Vh<=np zxP1WijhSv;ZGXJUFP?lbSZz^VZQ}3vYDAYnn)~dZt~QvCTC#xftlqR8C7+{Bnai7G z#}nn`hit|X(s;XhlqVEn+w8}6y!%@mXIiG1QyEfmmevmb=Nj?ZBuX0XEfG|V_8NAN zh&uys`I%T3=T{6(B`_XN_2pX{4`e1bTq%uZY$fC>$#6VuoM}b*xqqil;yV!OeBh%l zO8A#GnPZq}M1i-f3fAsZlPautuER-;WBUwOgrC<;rHY)?1A|T4E)zC3+;wpLy%KGw zt>RYDh9hUS|G#L9=q&4MwBe)V`vFn0`S-D(G*SmTC&q4>ytP;V{`%<)?&7k^iF&ix zP^fOAjH#W^?-p5%)`va0g%3AdPvy$1Um(mJkS<CD)^D%U@qGHWW3u8BKWI<Q799|Z z&s1yFR(yHps;;Hk0-FA?XpLR0wg9?MVG9e0W#f8Q;8^Eh_pb9>boEGfcDB<qI3qS` zIQZDhZ66&7y%u5Ee2gs5CoqmYtSK^lR$UsW=>C7*rPXkr5E9=-KOq@Ie_pjZ#T)~1 z^S^q!y~glb#8fU4sQwn69w#a^32!mb@lH~nw}DtLSn~2VrlnnVpSf$o^I0@WdUL9- z)=5J`NsVmJ&V`(w=}Ao{_vnNkbtLbd`E2Ta4c&I+JzYs&J?h!*Lwdw&NPewht&e|t zlFnSgn7XJK1p_iGZBohBE#D5!f&xKzMb=yu{IlY_iD&xBD(e|$S0Ev4wOF?L=A=ux z30YE*ny)|U+x0sqk5IgoGhj7Bs=08gS;T!yD87<fL6xEji6UuE?0J)dg08^M0t#Vr zmR$?}R6^M)x05HENH2vO)&#nvGz-rU-Q$aZ0CW9cHEkaa&es?VK8_(Rb#?`l{G`3L z%6MQWg>xrO!jD%kB~QPD)@$Eqh;H#oc^3}#3A~;D=v!gqNsNMIGmGXH@<MY0&z$uv zE9FbN`06{d;tSmBtJx#EjM<BJ@x^GF-$l3;13%C{isLdcLy5;7XLG94UoTb)rOV_; zpA`0hMW@{N6jVW1fZM#)V|FE*n++fAnZpL`1zK|lXY~Me2)1}ETWN<W{P%+(*vbEi zq3s;A0IF3Gh)H|~6^cP(HOCj!krc2|19ku1)ClHieF~^b&v-WG8Yvsj%2#nos(AGX zzmoY{DWpk_R9d2*?+fT}Q+>XP;l-Xf5nRc$trf2!l`xLPU_E({w~0LTf9ca8=%rMt zHkLIQh^{_xs{D*mDOOCT1MOAgg84?k`e7Nrn1IAEH{UJ4)yjH&%K@F~%*UC_VnnRh zlcm*?EOz+0xznQ`0T_8yu5O4%*Ox8^>*Fztf#X>Yx+)N(A@p3?V~J<OF%?I4_%HAX z!zUGAO$+o7LZnpcwk{gAshwLiels*Iu^PJ^Ar!1GJmD)^O@S2GR2naA&$}~hxTThG z`~Zy|$dSs*E4OO_l=QmI9XD(^-_GxKg0~Odz=n-XD+iRv5Q({~04r>G$cAn~gRTuw zt83NF!5>*l@&Y8hgt@<7xLrqqC=ZOC`RW)8XP^op3VS|%op_m1oYY`S0M*|utWZ6u z(usxZCS@itt9)vzMUnQhY=F<=y~(s7<|H7)_vGhDzHiUjBKC=DC57{d7UZ7Yy}GHj zN6>W52G!nFwJopqO%(A(ZpMgvp!I1$&!ZZZmPrhFm*Kl?lt0_W^U81M7SgscXE*%` z@B-H<T6wKjr?gpm5$fQOeBX&FUHl{yS`mM<zO@z1opC|u`i7UCU&nPu8Ea4X1ayXd zWyr)FQ%%?6mCm`bWA*%<;>;u;*P3JI=V4SsCQ)NB9$ahsTF^wjur$6D3J@$R(*gh8 zdrfS@DaSeSE6LbA+0|VVkh;P3=bkBlH$iT3*_RlbN6<gzt(Ch6EzS&C^8~}=eS53$ z=(*=%j{KaaTcvJ-iCJh+SeW%ORzSa3f2vd(AMbZjDsoNusMiC7e+8ojB2MxI{*=ud zild1WZ1+qZI@MYdzc8HJzKy+IG@o<-7_0Na5$^wbXu5GYuCn!2!A;mh7VWrubq@lT zAT2%9EJ3I*n%wy}LSTz>QqbaOHytovcz#5JsSxwJy}V3xhx5ghzHtPlVi8^$*qwfE z1uB6IaZPc?SQ1f7$=0Dhh2dA|%5}<P7w=y2@zP@)k6y^~3wU2F3m7W=fCi!4qx34V zwRG(!Lul%!<rPBTBd3MqpD@Nh0L?;>{OT%P{ae&cL(;zJqmBKD{c5GBJPImvH$7h6 zYT?96AA0v5C*TipE0&ULXc%Zn_3=dH+o|*U(H;VB!KQ8!0!+~N+^w0JDu#ze?{oP9 zUQlorCk`>&i@iVHZlJBvy3k2Oo+{t3a_%JBG;#sw-!yCHmZ#W6mM-c&r_``L$*tP5 zprS@|3Fv_=m^M#!>Fj)x_H4B+Up-glB6Vd84T4>-4Z~h_#rC+d@s-tG7&G|cag9z; z=X~xy0RCe6Xk~mq!o(0KTV7spYzD6Z3_Xe<+LNF<2)c*?liDYvPTOyb?8OULw_i}~ z!YYh5c4l=>>XENSIY>jGK-&>})lDsq4#}iw5+noz7l2{w*|UzL3s(E?(5-R!_2O8R zipV_2yrV&zo38G4feSB*dCH4sw;v4b_LBFy?O)<uk4iyRj1r+Sp$3pteDRQ0HXhCb zfEZR_R8)<WnbY-L%&-3i0PFYxRGbg}SpHao+ehk&dW2P{QoJ2$p^wJJBw<60@qol- z$t)92<=ijADql82#os0Sb;RCBNYI13d(U=^-8i{PqAyBjJhV~F%wAr^!j_2Jd})jY zfY;p=W#TEXKyK?l9J`gDs3xshTW*eKdI12G##p4cDN0a_Hepnms`-I#B&EKx{IvY2 zb+y@HAp57<^QIatFiatx;iQ^;4Im<iM5V{e6Bmu&X!N-`hJ@z$N@G7Vy9AByUEY}m zyO=wZM~@Tp6_)PLyZcy<K+DipE179`K2kvFWc2GGA8qqaM7$r-N9SZ&xKaql$i*lV z70y<&>W&nK2IXBi^Jj3EMOSJG67H3j8mQ`Oy_qWljh&tSozn@Y1j_VdP3-B@dRCzG zs|!pMF7(5{oG$!rc1hV1l6J&b{mY&BsLE*HoK4bX>pXv3lH9^Eo%=*kl|>HGu{UTG z7459AO^o(S$Uw~wd?)K>HUKazvXn=!^(EID^g^rJ-<ee}h5DZ0oOOktW4dQK)hP<d za)>Ej9UsIEtKYxRN&HPwSl}L%^_DHM*~sd?-U$G0{8xFxhsS-uYb7^BED?U(BUnZj z_tf=UElLu)`A4}CVTp`n&Ll!vSE@J=O*STvjJ(z&87;_XLAuZKyDa5eUpW5m^hwi? zd7mt#_OpvtF*y^5n(hb_Na|ZviF~g!GA=c(FL{!CH%U3Ax21Fn5X*KICKBXnDDz*x zn3QAx@<ZYkn(xagrdSU#6D@t6KkFT%AJ>~CFnae%afj-$$|N1%trC&aUk^MrKxdjO zIH(p++D+zIzjFT+8(Ptq@`XSgx(1yGvjB1+?Qf>7uY91ve|Ha>R>kJIJ3z##Qn0$= z3ra5C^-;NdYlhS7I!u1i5S+cDurcWRiR{&kva^)J^rj<9<N=q>GCORF39Q5g&~&7w zWl9As@D>YE$miRZt?G}AmqByxI&tV9LhQ14I?xdmLZ#hZ<WPf4D68t@<|Wz4aU320 zHPl{y#26u72I>JEVWnTzcJeFa1a!G{h0h8JD4pp-gs&_SfPz?(bH}<QtT3*_EB%`m zHDkn$!h5+Ni{4(r=ts;LL|`OmTNC_D9=O3$hmYDAS;|h|{laBld808JVQ}S99$X^* z4>CHnN2~LB?6&L^zNX8l2~4mSx^g+8B|Pd#hIaUCl^hO1pv!dDN)N(@Q`zvM@Q2RE zTgaR6_KwFvf<US5Z^8@pmxYn)yApmcl|8JaKnkjjlWNduL(zR=W{RSIRohKMO13k5 zp5ej?&(HtZ_OYUkgC}mz+jz+i-SOx`evAgmFvIFd!^4ikC3DK%A1<Y3liHR1zOVV5 zG@0y%RBY8eA<WJh>-7TOJ2%i2K}tQde_xi*F%e7Fb0-?~)Q(?&ZK}Jvl1|TDxjJ?6 zD7h~4wLcPYCwa>D$icy)6q)H5WfJb-&a`{?Eeh)D);r!AtW>2Uo%9E>JsU-spmXa< zV#{S9ya{sw<jUN40=<lTTTXCScd+hxId-44mxQ?A0Y;C11p~~|Pq~JDRcMZ6%eWT? z`X>k+LCV#)ws84kdU8*<fts6R)~(HQW@>tU)81^%O>`i973}pcDkP;fq;&t`2&&X? z?)QviWG*UwzLiK$>!p%B57DAUN3cbsNif(vEjD*j_Oh(V(MG?_)@O@Kg(KmVW$y}D zS7Ij`uIZnv7Cf>o=tVGno~DT<cYO{H)0#rfU6Ncq`k#Dp(TQUDT|cfwKHwa`f?#SM zT)DXuUSgfTlm@%<%$PVs+K*{241thK44gGk2H4FB6J5Jb=Rj`M{XX(CJd7f!%+9sD zL6RY~oPa~|zs>LGvozOodCSw;UaBWujmfG|brP(}Qz<TVvagqte<QW5hUD^Dw!Oqw zBe54PDvh=w(Dwv{60YUQ(+p7N5By*0OLW;Mly4zRGSl_B$j2jldlN}CGvQCf&dWe> z7TI~>)Um|H*!`xa%OJNSs~xis*FwEk|0cTfG}{D<yIfsbfYk3xH@9mFN@}TYxe|RO z>q9objltDxOvwB43<{Hx;DS-N|Hsl*2Q=Be?a>I5(w!oyASEv_I)%|)QqqkQ!U$<; zK>?+tJ0t}Gr4fmZkQPuFp&~tCerNo?|6uX#oaedE-S>5wLesqu(ANx2rEKy>mG=fq zMwn#^>D|M^yy$-RhfDul0UNzlAw{4D@E?@{Q)&HGB`d%7j0#ttlEV8`C*;^LXUuQ# zJl@@UVUbfD8<@rRrn*XPyH@;(JF{4ru$_>%_ch?(g{jtbX-8{bQ-qhvN;Qs`mwX(y z9)aStjr%(|t~J_(OGP79SWrzUH~@ev*5tNXjE;ArKbIt{$=4<Kj|+J|#ZRxPqC)44 zL4>b7<bDIX`G>VaWyIt5ngUg?NJbg6S1Z%uEWYl**<F^CA$V$(blYD->co<pElQn& z8R14=cKH`t4&-sy>@P}4w-{g=fypb-^amDS6aV}V40(uw{EuAefdt$!Ux<kN;7k$% zJOh+#Yn#w~u!%s#;RbK$I5D4*NYF(hd|S0!^XSpF@66&_W#X6^Vr~%PYNScim{*hJ z7ibj*6zQk6>xrplfiY$ch+Vnn=5Ehg!4NxQC2lOvVjK?W!j8jdOc=ZBvJoyw`X_qd z6~9M7lh_a1x{udgCu3lyrL<(jN=#DhN|5fl5?{;;=7_&P`1oVFrUf#<xC1|VD<d}} zBr9T<R49GWk*ZkuYr#P8X}OG1TOn#VO<SyAM}kriWd*P5regW|bKLn*f-!e=XMWcr z*yfG8zFxuS^f!?(P5+=7)tH!sHu=xfT3^xgx&I*1dpnQbH@3WQp_?icRJ4d(3WL?F z^^~-g+4`-!yZGM_nzpx~u^N*s8x~50+lQ`9uto}x_hH^;y7T9&aQ-#P0fmppg+%u~ zTW6&NPWo|#HDTYmzdTDtw;#z1MevS5(sz2MKj-nS`R;ow=BMT5IU#-tBx>b23Z5WT z^%ASdR_^<F!F7g+cHtf)#A#8_IwhNy*~S?upDDc+@;w^N$d#5px?>4}(5?AMpR6a6 z1X$ibtFxV}m;1J;;V^;Dkbe{E7-fbi>8FO7J0wRUhYm{auCH$F_Zx_XG)0MpOzeNH zpX&x11IWX&`pZRdCL=CaKAmFTSOKZrfdXC7o(%zL2fvfAz^BH5F439c+VfJt+m`RK z-S@{FUO)JVesWa+o_v-O4*VmVU8*16U>qZnedq$KR|A3#L(}M14-|<1KYXfK5Lt?L z_kpt<9)V_9Aa<|Vm84m0cduvI#&t&<Ghl^sk!aF9w(IN#Dvl#i<14H>3rFXLZ;Cjm zrPt40BZQZg-7FzwH@+#~QyN#Y3INs&!L<y8XM59#_)^P%VtIhDt|)0TPncN)`c{Q- zM<bd!`np4)PT<DI0eCnRV12$$B=Dk3uocjWfYmIk(w58K@OQqwZAW~6;j=)ygPqgH zAr8Y#=|J1-{|1nK6rbu(@Eu(DZpu72&e!*$A=3`OAwvNAP?3jNXSxs^nO)}a@E%|v zs<sZj!7n+NHZwvi07OYUwl+KG2cfti2S}ymXV`j+je%l2Iz@GYg<|)*B?3@p*BaM& zR!)@ddmI0D_-)K0GsPWwxI^=PS6b;Gq*4cYB>@MhJpBiu2fu2nmY#K17k3N(Kt4@w zp;n*L89`^do7tjMpYB}Y<{k3N20BNHmI=$3cPFLJxKp6Q!?JBO0#U4FPncc4$p7a! z$I4;6Od@lCh>O-SL((xr%EovK8AW_a=_OaZZLG=_7pEl0=Xt_HDa^2BsPpj7Lgb^$ zvXWO1h3TK)ds)`Q!Ct1+znTg6O4!8B+HO3l?Rp!|K-kg;JuupqT>7?L+v@tLK-65u zWP*q5rW1?1b!K+X@eRR}$Q-DXxrW&Nq&7VLjpb?F^=g}piO$kI{In?IzZ(~FGJ3a{ zF@iCJj~o6<I7^9YwY;1OXXMh??fsU|FEkp&5$&b^AxsdoTrVPJNZBBEAxD`Zk|j^o zj~aOVkMIurfMcqPqbn<O(~J4l%t<|%b>Nc}?Vwdl(fqi^kS*S`E6Z)>-`CT^^>Rp6 zjxk<Pzt~za8fRxMqLpPSFFfpbePE)msy?H6QHsXwmhvE@BG)DaI(J%(LnCL+6Ck0i z+h~|55VRl=^e$4F$VtVl&$+Fleh%dob_OYquI<Xum`Te_l`mOl*lFXKr)#Z~e;y9V z=04`_LXxSHgntkJ?1#s*7XZ;PqCb>ap%mHQ>3+M(rX|;tvqUYZ@=kGhGb4pMOQwz? z-ez01)?xh2OHqHWvowFCtfF*6JRXw74ZHO@@F+X(#MzkdGN7eKI5gCSDe?GYG)qUi zXpb+WgR$zJDx%%eS5rdn-i3`@mv=Fr$G3FfZYxE-`z89vh?*jsVT%cd7%m#m%UeKS zOKS|pN%WOXx5U=8vg`@Xub~TX29`fiTkcC}eVfeu#-vlb9~(YNV(kwC^&`kZdA=gl zHiXr){fGr7DB1)1T^c3Z)-T!A&n{MtcPMgRrK8-fGK7aF%_z>w!MVt9d=R|x)*%c= zlc+!CVVUl!RemW4j$K(<Wr%rT=@K=miU(CKig4*$1e$$f>r!sEuUz5R?jSFlS9@=% zt6K@}%UOfO;-bJ2vR_{MEqGoyCvWFq<W(WC7&;bQrG=rq$g6xg^z&r(`oR3`z^J;6 zr^fP3uN{4KUKWo$HF3AqsrNl<n_J0B%<rB|6<6X1gV%l5Q4)RRaj&r`1;&jV7?twc z<0%r)@x4)_RiyAy0~@gZlFK@24_J$sL}9{YVLIXwQnfF#tNzNQ7TW)uLoZ%6Q<MLC zA7ZuncQMaPS+hej^!ZY#zhLr&!wAO%>Cx2oibP7qV@(E^c<z_Z08s7jUeS`UV^e`3 z2ghYsAG-tx)gh~tFUbU{G9MxP&Sl^5u9I!b+p*`r>k7XuC&&2IW)3Qn+dps5@X)o- zk)=ID$6j{%5gNd5FCF%-3<L|0=d^YLx6JZWCcYa7nHb4|Io%85!-~Ih5|0IC!&wSg z9&0~C^~H_EhOppB{)5<i`X6m!1oyT|<@_30mNGF1SFj6grm4<7a5IC!GE1^eY6G-u z>@MS(V_IK(iFWvS-gM{HsIMqd$@^6_;)XmHkKs`)O|2*$Nd5;Q`u409UcJE!sSOW2 z5BQe)L2vuv(4^7*K64xR80CZMipFY<4b8VR!AK*EIj(igEC*jl`_UFGO_9d`Lmvt6 z!(Xwc2}&bE3H?s-==AU#KUbD^mqArL*weZ@@wdk>7_EN%mwoGRwx$-<s)nq_@=|^y zY;OhyT5115#K-h9#Q48QN0p>0kS!OJW{fJDKqn^7kJ5X^96;BMNbYp8w2?Y9@f7!D zMVwOAT^xcQI(8Up|6}V6;@jtvSx1M6*%#b3_N8<X93Ky}G0KKUmeo|(6%P7`*3Wa- zLJrO!m;4pLQ5C<C(J?ZKj}R`Y$Gx<LZMI#oho7nYejlnOX9>~S6hKvR^WUww520Zu zZ0ttXA3>Gm+T`BT>oa(%mGT55;_&p-&jU@9oeVNaqUVG{5ZOAqr}}-5AKO7m{jqI> zqZW&c5R>-r2AX(?y^D~l&n$KZ?cejWv`I(>_?@}X#y9*(R<90DTl4g%t8Ma;6y$Fn zB_H7*h=tVAzD&v-nHIi+Z7ly6Z5$(0`|PsQ#QsS*jGI)aiiub^o!O+M$_fAPc6y~9 z7|<|yaH=f+=;-`-UwN+Rc9Mt4^ni#ZYrdx6_QqGFQJ~&y?thT%=_>`vj>c}xn^41> z2ScxO<9^Ic#j(lp@$S7v=olf!Z%f_VjIR5@R<}dMr_vZS%!dY3^>YvXbgM#+8#zr1 zi&%vvCqfOT&MW=Q5<vYVz+*=GoatjSOWXNsi>KIKmPY*4Kk`V`_PaOe3Y<fNoh&vD z_qJy}g%NRI?Y}CsW(;k9*XXUGIaHfgLkEj}MsJYyHWxOoUD&cz-nsdly?Lx0&oqv_ zTb7|}Cnh&$oaecXmMdaNcW};|<+A<)&mAN8u{l`kp)AMKyL-E~6I;B<76zNX9k$K# zM793kWIbuSFAy;?cEuB(=8of!vbvu7xw%yB+{jQa`@_ZAJ=FO=-f_B|11|Em)q`Pz zDnBu<|LQzp(Q?<_=oeptulbC1M@CJ$iUXs*5xFEwQ&W_~J<Xyk4(iCr?;S@8>uN^l zsoxO$wx3+WLfSmUX~UepU8sv@YPzT)Rz7%3nHp;)=uK@@h)vCmzZ@F;m>6>q%_Wd0 z-A;ts`;X_L$h*g$gpx!*PL8Tr0UH%Rl2s{-#r^P{4YZG(zuc?wwthCcf8)vKJi4~= z%|!B#_qzwj@KEiv#l<Gkc3=Phf)FbCOzF%;_|^OdUgh(-TJ%C)(y7fQ-FP#=f%#27 zGvsAKOFg@R8X#95Y?EM^@AhpMK94i4%$>75K&_X$N!+y=kg*@os1%7^XC$dk=J`Xx z#PEms9|Z6CRJU76`smgy6)a;|HI!J;O<%E*_gP6jUef%b*InSm&2~0TM1FWm@E6+L zSzg%oLzXsx-?Cs)+I2SG<mdMxZ<ozKVK0vbJ~12|e-+3avd>)}NV@fFSVEep9A{t7 zto-lOuSQ3!UxeySoOXF!PvxQEfnOggOxF@P`+FH_O57YLy{FeWqWGWMz>ThKmI5!u z1g*=?a!YH@pQ~UFX<?-sIX?kricin}zuj|&9^YmTG>4`RoVQ;Ga(R@-Osa9ypHUcW zE3Coj4cw%3XA?SJMJHJRM+~|>PR)(8%#G*WGQNkmIvXQ<;i+5L4<b;QAq+S8OC!I( zI+nE!V2eQIRCTyY<P~_FZn^*Ec?Nv0)S<b9F?xI#ZZP?5<1fbG8z|I9#+QP>v3;n; z#r`{d%CtUUd*UJPXQ4ES8Pm^#YTCXI7Y1QoaM15Er+I$Ta_j4{S!dN3GONPilKxKh zn{#N!?Inhhe-O&T{{h68Kg#Xkt|%QgDs?huS-Ig>{M_*B6AiVx;HUEGSq_PIzVzS0 zhr6rtB}RyIo~QV?BT?-{=1@y^a0o4zvqt~yhTUtCJFcXYNg#@VFBS{~{Js-l_vFT5 zA|EIpDp>A7n5*mAcX7dr-lyu;NCdOxG=IDLtgU&qycn!n{KXlsPgTPBXKA6DLCXW0 zh_~>jHbh}~QxD8jdOGykCAy*fHHz~+TD?K+fZ=Zer&Rnf@zIx;uNNq&41}Hq(tdUP z!2a$|JGRy*W3FnxJNG(<mX+VIFuvN&>L0}al(UlQp^e-aoftP$>XJ(rr3RyBOT2tR zd5^(IM@(3d=mV>i?8g;Sp7^eov&&oa(n13`Wf>{LLoaoHv<eFF|ARaXjbk)RJXGf3 z(Mp%0B%4bU-Z!{Q$PKz!OhPI{o;kczY--L~Dx-VhebehcMW_8=Lr2#Gi7n3fy4*Je z4<4#~tw52%#7bq~jnIyYy1NM$z1Fzn1E2X^3xK$?ZKDBI1jUK`>TcL$)1J+h)!!Xh zUtXNv`xyJjEY@cFWSrpp87+a~u7>~dJV?$(apGIfh%qNISEXt|Cl4`Lmb6)plHTIg zUxRj@;W#azrwm)4GOsc;7HcrTMRB7W!tp>86vz{WmQD3KLCm6rh%b}ijcps(34>9t zK@w`OfHB66KmA$P4Cn#-XB#LG)0kaR05_{!c(j4tnga6)TZbwW2y|ENl@z1cxmyxO zfk0uyGP%Xn()ugtq7R690$-G4`~E-=6?R$1mIbx#m^TH-*pP3W@Fn|fKenH-Qn0si z?Ft4hIH$z!*luNO8#;6el?T4j5dS4bHMtqwN&P1vD8XJZI+C$%?H>Cappa+B-jTTN z%R>NtA07wxs9(hr{4z|vaOI@sH8x0kxmpJa{|Kwt*ama!;KO!R_#+R;yc`7{uvbuq zzlpv^;tZL8{{ECFCPibjC9Ynb6Lx`%O|+MfR4Jt=#c;AINv|E2gKJxlRG)0Th>^kv zvp-CK)USVB5{YCeuQC+lE@-7hM}#qXjeaiB86V-oc5))OH~emmbEZ%C%|NK!Wb@UL z<nr&pbu>K(sm&`3WBKtgyY~@2$*&`r)#(7Nz;%wOQ0qD0!He(qHV*m^8Q*;SB<5FJ zNKqt-wxYrYes5jO<W!BNgoVYb@4Ir0uq1DD|ABJ#f<#_@AVHPDo#uUx$1Y3}vW5Jn zDl$2WL3;zrRhbh2y{{*5O~4ho;}k2ilh|1XJePW;?4U2#mwZF%Tw^;1T#>u}4v)aN zQN8n9q87^355uE1b@iqX$jQ64H#sQbvIX@$flg<g!9xZktUL(yBdU84;SnCQh0D|v zy3=1RiFyYphsd|v-(!o5`>5)9vW=dUw`M0V{ZYVQEEqZc)#YjxD8**b;8diE$Ai&y zwcH_ofx;n(+kkDXRR7qTJqvp)>}xP0$(5DRoOU3W%DLfrdlroaf}jZ9>Aq80EUHG^ z;l2X|zvJ@o804}~4W-d|-XruIXiHOYU)rl8H{t!yNiEP?K04jN<7al}=dP%#64d<_ z&DeqB(U>YpwVdJAhHWxwJZ4H0$jdysOb3-5+l{)E?9Q@8Mpxggd!P9=pGCQ>#dZ{y z=@|Hj8QeQ+6uNtiz<RC)!f6-q*2;?5GTM@N;_neEtho0(gJ~?jOrbck*D^8F*ask% zIgwF+aR;ArJWKxe!B82A)6Eu@AqJ_Y*8?w^v5zRg+0`yFH#Rrt)<c>}gi@mbYMPsb zW*&&s^{ENW&d3*dz*L|6go{5Qqg<tqy9F8T6$~T^!J^GHr!rYxBbjl>ip*__pdsiu zEWGU+XhQ3?2W8R{w^)>F4G}h$=rb4^^c;4U!n9ugk7d`WrKbhZG?u_qugiAnU_TWi zLYoxFwi}>77%SI3C#e@OS*u%DH?Y6uomL%QC@pXUU5hDzUH8<@x`^;Jw9TI2OTNS% z{0CWw9bLoxfP|oCF9)5=eAt7dEX?)kW3)AT#hDlBBVR%;{|1`?v3J7p1nxgOHacr~ zIb#RCZaxA3G!Kavea#`hEitY0I*D9b3WGgi21ukdakAfMWI%;6;I;n@Y7jsh7^*~C zf4giJ9{o_&paezoA+CJFTQ|Y!-lmv%B;Zn(Q8g|z!fmAC%HaTe_yYD4CP-DDM@!ez zBkK>^si{kag|$VBI5ms|?l_Y<>;S6a>w^B#an|dIj42~c-Q6OsE4^=HQ3q`$SHT;3 z*y3aW*Z%&jz_S2zrF7#DQn7{R{6EE*Yi@R--1Epi!V4zZ1Ao0_><VKuNw0M0rts9r zNY>QX9Y1z)WLNgNVf)S!t7_;#`DHdQ(jnq|S?XO_?Sfg>bVjp*)u2<NVbL(1d@MQ- z686fApIZ&rr%t_I^Oxcs$niE|ekSMh+PJeUGG|Gb$4UmRxn`Qp3#tZdg4W(B{MBz_ zbWz5B{3X%(>A3oRYl^5~vm^nY5Jh!?0EwDm)lZ!TrQk<5uC@)7+KYzem~z=l4b_=7 zKB-T!xc5@5I~yI<XqVb<d#LsTj)2hbk#n8trmeevND!Nnraa7bVS^C}YD$Q%MH-SM zS%rx_kAknr&2^Hzi#d4UlHoJ*IGxAtCR~@%8*_@)M%gqUr8IA3@nrsrM%VF7>%LBC zTZ?pGSi%N-Wy7V9bRA?~t2yverZKcUP6I8pmbf@r0UIZH*vF=%ky8FUUj?TI|2Y|~ zBtkrW2!PXco+^b;R#0uYt!HRgP<NUoK^oth%ChP7)MC$cEj6z!4OMosih;o^4nikV zJVN}dFxzW(!Wtb#URCobKD)|ZgSBSd+;6`M7l65dVZ|=%^|APNqZln!QdJ(EFV~^> z1R@H1TpxUTue9$_A{>>>8R(;2FmVRtwbu}@WD^;yHBxq4tdKxpFYq6vhCct=vKSDs zc;km_=4F`dQl-%e!;b+QDn=D-r;Fw;foSr#0jZVGfuw9LcFM6}G{OA<(}*1)$f{Mx zUEg`A+v{4@q<O>G{mV)z|HNb}5D$5EvUT#B`T#{cPY!`XvuMmQ_O{h*zo{!F9Ec`t zzYL?;0yo4eSy*--cZ|kEel3PTQPPp4knaz{FccYDEzt0bb_XTi@K(Q(HR#cSxJMR0 zg{TpN)ni~a0XOo|aU*p1qWCk@TZPA^V!!D9hrVmffZoJnIx&C0q|iI`KfKHiADv%b zJS_>c8><MBPT)ouYphyAK3YrBp|9ZAp6Y9XG(|`zFc-6@_E<eM$Lh=dnG<r)l{;zL z{Frj;xuyRx{^1$+q4G2YO=}QD3%iNUXI^-{@$-Tq!@)rcq#1ICBANY%*ln@=l7TN( z#FMVVdtl%OI8Ijqw$0OP3rur-s}HIT_;s+vy})cInU`2HS8#!Jvil-B9I%ICyVtda z-)97E<r4ulHXAXth<vK-cSBMV?TZ2P9I0SXul+wpaY9cU2`7V~rd561C2Vy{$2icX z)r?36xAFFd>14WhAC?~kESF~b)<}m#=wF?ov#apzYp<uND3M!ZldB%tGIRma=~=vj zVEai_Llov_S{^13PnJ(B@)>_jz6xen#KI9o@Jt3QV-9~W2SrIA$0W$I*MjUV>|_-{ zPh0Ft$Pj{}XlOf8!31cfn#7j&ZBWi>1H^=PiVaKf0+|w6k_slESfXNY;3&Xkl(T}I zyqwCCXFBM8ebi;GFi<|Qdc&%ncO@mcPuyMArj6YF`7PC|<jb}SMzC{tksce(MkA*8 zcV~1R^Yz0xXGLrLAUxF2-UIIgpc?OA1j}0N!Po8{{CAez683v>Ww!0i5`B1`RsJ{K zt!)3>9&VX|)AF^>^Bj9eo|6x0a4amuR#O`X(Y0ZJ-5^^|grULsHYUQzzt0)WXI%Gy zUp)No?MzaYSXfpj1LI7@;9Ry`H+V6gbj$HtOlw-DBP#EW->mud1z)L;`u<r@g<Ct; zF0tM_){mMR+{SZpxqSNS7i9{QHiT|f8&Fe$2aZw{R?m==3VbZN)&^X{eCSFX*kWF} zMOHj*B`I}>CmUz5h2k(B%OV<#%DL*OYk2J4`ih?*)R{b$uH6)(zUGgPn`8${smqrY z_h|lE3}NsOiRp2*-@FP4erNN$70ROC#VMd$$6>5K;QO1qT#f>x^rCQL)z=cQW|-9l z#7%f2h<~mRu7H)oK5e3);1C0VkcR86<ue+Q<{kKe=+++kKO}bp2lvz=z^y`bh*`jX zC69!jpP_rX7Z0^#Ppf`inh-uITdNu{9Z0BRsuZYtCNC-JW|2T_lpzLhGE3G5?E~Pn z7v)Rx#!EH`Nuwi=8@aCl@mv8gEM}wWI(O4&tRN(u9mZaAChh33@UDVzhyLTL$f44J z2YSEhN(5^fIQ+N$aMLzW_Mm1tM%e9LszdA0T5(y?FI>;b8({SZ2S{G(EC#HO>@Z9& z@{1FpR?g;7sY15J54B*f{3o9F7C{5Gp=ql7`!w02Bexq954K@W<Mgew82kviJ2dB! z+aXkvPv!?a7BshglVuZ(4Fsy3URFHG(o-um3xlvw3|v*j(k5uYY!andN5j54Wv@qT z6yn99KZX&fKXAG^sz8M5g@h5Y+j<?@B9Vbk?OfP`wyyO5Y9szwg#z^Yb$uul$eRs# zVOA2}3(f>~P!0TZo9ScE{yFrZ2dE1>@B-3Rk)>tc>`EGMrWY%rR$Ub|HkUXP#|=bS zn_dy<p=m=**N$%iszGsE*Ti3iZRj~D>|hIxHOamkhmSDRtEsj7{~LFsk5KHPhkgT= zLK%*I`;q_gS{TvXG{`RlB~(ldpca7DTD`&wWA`S3k}rCM=O1Lsb{D9m`hWpzPBG~= zdeX8>R(9<J%rVyLZ6Uuf*7}bpd`y!DlmYC&d*s1o1*^s?^+X#*H1w||EU%}ra)YHf zEY=oNiyE$Mu~_xHa}Xb$UKV&m1K%zdkTNi4d_p$*_~+_c3Fx2&J2Pw$-X<_g54?Q> zJ>b4xPjQDG$<q7-y7h&4kj%v1EjOAuLF&7urU(8zKCSd%5~m+~<!=n1Omv9^nq0}w zc=hnGYa9fE@$vH7x0;od&%`WZ)!#0SA%Qv5PCTQcy~43s!9L*WYbHRQt&0Ri8qVn( zs~bLzHOkS17DaN6JAld9q1CLJkGE`UCAwOFW>ng~4-~cH`XFj-@S=2nVF<Q%rFylO zCViA$Nb)A2Pfo`8YqQXvi5$~Ay4F%DeD?a*9Q+pyEEFO+L9?bend4rW|L~nawbT#v zu;+!#btA5nbNbjaV4Lt3O8JP;sanz5xs(t*sbi`Ogqg7OG!H#*@?0!->=$IL9QK+} z<h9o1Pi~-yo<Hl<)U&_OD3N;hgpb#TM~2HyOCVudjkF?uQ<bwF|4&#c$uA$l$tca@ z_=fbTtCGMZe$|(Y$1ji0YgC^+DADKCLI?8~XiBOjJJN+KuCHAn2-V)<QrN_oPVdA- z-_0Q`37|f~XjQe*w^cbW9{GwBtcCUIm`&@{oRfUdeOZXOLEvo8`Z`BK0A*<J<j&QE zI^JgdxB$cdWI&ji_~IWVul!fh{=+|@{_eZ$LSRA{8)r;r5p3WQV3_T!S*{&x&Lfpf zY*4&LElrxL*j6~9CG^v#fK_+qSo=X~ipI2Sv9ipx8mReIRV;~p%I-?JYZo53(&_cO zT(i5fqndlKD}1rGD(W438m!$dF=*5LkHXYP1FqY~ww>{xA|s7H2o@P=a9q^J5CjH< z&N9+EXjn!w@WkN*_pb`vPdlvS(SEOd(S%m#N!6zVZ6kC4<2-0A5Nq3P!-*{wQr}3r zBEUAP)+tp^q67e#Ki&~0vi1n8;xkgDU3n+7g$9*qT#b?a&GV!XO}>=`h;cGxcj^A@ z`&F?}YTfbk8(sISO<7)lxmUbs7FU{8S|Z-=GsTFyJ4~pzw`$okfmo0(70KtkR7sN~ zdUd`#qn~v9-PY&5?cyhNihTX+JMs8artv(v;Z9C<<#&pOxiK<z&He-3%cd~$`bkH$ z+as6mhnXr4jh$99uG28tyd|IqKjgk(>qfMGE3jD^s<t&2(^k1W*nC&v!fUrW4Nm_= zH?TIRc$FnimhLG=zE=TJ`XF@$JcU;2Bf?)YKZ6~jPN)3(??4TY@Bw1vZ{^xHwhZd8 z5>x<qfH{m}8sxZwPd`@A-gvB7vIA-0Sh6fQE64WG@4g6>e?YC`>*H0DCVa+@z@Gln zuaZUX{Ie$LrE1)TIt7p!F~ce+(O(Oy*(4U#1b6l|AK>JEQgABwvy6en+8*#-%FWE_ zmD_B~+)?D3#f#-j3Wv!f0&NN($`{Z5{2bjY%RU3|+gRzXEZkkbaZh8$Y|qmbIU&KM zd|x8AayxJT%^gc$CrjH*%u#7L)lBDpc0a{Hw@EWaInV?!KxRoIXZhjX;)C+2PPK=+ zkGRUJ?S$U9_})4REFssRcg#F=z_9J?8r9p#F_&;W&yXa4LA8-i?BoPD(0I{B8U7Bv zy5LnkHHWc&`-;!v$%=nX6RkJl&|dr2_;;?{pzI|2uFC9hGOQGyxK$jPePus#92JCa z@SJ{?>|R)XiZtPmZ+m0f)}DDYwu_|O;A1LGi?ag&%yw#bPB9;?BA|He4I76$C*t#I zs<p>-Xl8hKf&Ir<$G?w%pKV|}dUs!2TLD@_5czyQ1pQNB<h>qe;%3iW>d7kN5-ZYU z&k0_~kcgP&L1@BsK+yrXN3Ey-Ac1;&H_6o4Z<sRwsu`z2;i+M|jBhrc74ULex;p=G zjr=h_A7b)@_Q!AnNqN8e9$U{(R0q2fGSGPDn;7!`aMSZFBWR{=B`>`<U{~2Zgje!? zBmILSw%IvO2^$ed28^@Zg_(*AxIHVxAbZpg0C#{syc9STHHPK6N<QtVCZ@LLt}lDQ zWMInd;S2Gnwc0}yWr@*4Wo`>)S%X>WaZ-rtL6Sp1)gk%Q!obcW1b2>is9VEiAsA+G zzyJka+E?*?uCqWP=a#^TrjF1LW0ia!SCUtfmMAo?H)d$jU{bFUua;Vdu|d3~#9u2$ zz*>BmVn@xpDyI8vjeU22o7-6b&bs<pNM{7S!2v6A0CH6P9)t!B#jix~5dFbkVnWF! zC=d?Lh;fLCy;IJXi&M6y@rLu&g!#?5Bsu_n0FP@LyKtGN;<{r%ku81HKMFy<D;40X za)r1)vaczu1lHU~y(x>l?Ct&hBBbXVH89c~2-9Is_vZ0qGPpt4J?YxcuA^`f{s8u! zBdptuS~`H`ap(7gg_5X`6fJ*id^OX9DvO?^+1yzlj{c6$C~_9fP)A;PS&uG!`v)1K zh-!iSNA<l?_P-dV0s#q`ch>662H|~rc<j&Twtk!=O3LS*pX?iGt-|AKn#3ijWRa<$ zC#`ccv6!09h+|p98J{`TSzuFtaxF26ocI{uF6AZRn)(mSkdpJQ_S0-09ti{e$MyzZ z9mKMMs_NyiRRfgwfzW6_NHM!*qXRdT<l$SWA31R>M{JjM(caH;&z9%kI*G`8+&)N5 zWc|_jIA75?nR)f`ea8c%1|z|Kdx><WDuRm$2Se$n_*ECCw3{Mp!{Yh0e<w^dUzvf) zXm3eQT0K*TMJpX4*K~{E&qIdzy;pT==~K10-v=_aK#Y<o<#H>v^g9h_emry9U#?%3 zd#pSYy5VE6@!u;)Ly`NQra#LQNs>{~sfg6vSkuXt`-a7}!p6d1T5pIEB4_P?F6q9M zmRCnyrQ~JY+o*blab*7Qeru?@w|Z7tMR~}0$H_rWZ534hcFWXsPU`G!P2;pAQa>n% zsI#Nl7Xx3z%hd9*+JR~vidPDzDw_+%4^vjFyu~yh3h=9Zw;XMZ;*C;i6D)mgSuhS* zB0P1(kG94p>Q0?!!&-7Or1jo}S?}Dr!RsKJ-Sx8WM9<>ZKxFs(g5&Dh)UiV5|8yrG zyT1(+{4eokgA<Ok!hn&e6lBTfa&h(J*Or-te-QrV<)m+`@)$YiW{GM|qSKVl*aSxv z@#7A+y@$vnaaz^k$tJfjiV^DgUiwF#l>&X;6qfbsc^j?9t&a~Me9N4UNp}0F=Jo7> zy4jxV;rW*o0fTX_;nKwMK7AigX9E!dvmrkUAhP5#m1l95aB_wSXa#6{%nkHvK3|I- z+R7)EZK|O>FV*O39)Yuno)aVYud-MQhPtVV*Z{zj|5;UtIw1C&`OFf_PjEBcSR<o) z+hsFFvXinmx@wkt5kM7nzTWr&Aku9)zr8%t==t0_>wf<}`=L88p}e^5v2*aI9}G*I z>aZ_p`>9<I_IGz#%HWg$o=#U?FZQPovzIOOQ{<_3zSbwD9pIYk@vZa(tM?a`FV0mS zqGm4gJO%_xb-Dcz)Sguq0%Aoy^~L^YP+Kq3;V=L;B;SVUmU7>({Jl{&R#4hvr~ryS zt!WoMGeehrSGKP#Q2%wEiu~uhu@=p$ZOH0qSj{MCBCYQV$g>3Ad-OL-Hms4u=OuVX z1l9{vx~B=N8F@YFQ-Y}p%<WzS7EeLLQQm0)Jes~QjR%koNjshrSve5u)^omEgbwn( z=x>;H<}6F!aj+IuX^QnGOQ5#{G`P%%yVmN97g6v0W<1euH$M{AS@9J7a<h8!y`;{y zIOr&7$5l^oHQin{fxf33m&m4q76otn=JsxQhSTAc(E<s%5;ue{7TJEyyZa&9rW^4= ziPWv7j%*lY1+H_OI(i1FJXN4_^$#+*nd!YFSLr-0IEzxY>3TH#;%>Pn2epU?7$f*y zRaqNC=BF{ke8|isB`z&6;zaV@oIs_j62<b?goPT?*4i`G*~rSTjGP{BQWZ)cZYA0N z!LY+(9fw{@eJW6!-!|#p9eOuF*R2)(Lm+ccpg5bUozcFkCsliZXBdx6NW&T*Fgfqv zzeA?yYO6eRCupw32HNoSWXaF>!#ghdbqb#K4?`JAwm;s{Y5{7n?)tNn=|rR4gJZth z7Fjf1r+1sw$=*I$Y4n#(*RtZ;5QGuGUF_Q*Q3Z?=>a`{)`|Xl>LiQ-R9>|rR%pZu) z&Zn@Pz>gmY2eI+r%NOE*J<p+YsmHa~agRCHD1K6Qf<~T8;iaOkgPBz@35c`#;Yu7* z)5_z{ayY?WFa)BWcKw|o2!2a)?y4nR7hZnx8{`&tc{Oq0BFO{Q{V{mg?KKk>J2-&! zX6vc}8>7u{az)+u_cdgTT?^v@MA5rg=Z0S#-Gk2td>z{hNxJoomAG4To%^*8eOF|m z{~*>NsQQS>Kb`BeFS`<j1D3|4JK#zPP;>Yn;dCD;Va@)7gkTe52Bz_Im!=0p71%s& z;A?D4o(RY)4<XQ2aBSskPQ^0G2f7m30z$_t@QEk|xDQZ7L>CnG7pvfc4fOi#SmyS& z9(G%>F!h842mdo%;3KvkUni^(759NBA)pR;->;M7W8OS03)9T-k!$=S`wD@k>58`V z>HUdG3sCsA|6ii4nphmg)EX-`_|=Q><(zZRSpf<(<b$a<p-M*^>qr6U_Pgs2#P!Ce zj<g1Qqsn%?3sa`>uIq6;RL-N)XSLQkN>W+&2~?lisRt9P9~MN+Z8BS8-5V6}1fsjN zi@8=52=)fD*L9vW;#(GA@%#cZCSu+?y?@`>ImC0CZxZE7E7G(1JxGLpyT=gtnS})u zN){g;=+{Y?QX_^oa$bmy#zOhZ%^;a!wl>(F-0~{3V#3E7m;SQybm?>28g%yYFXUSZ z(J*X*<zbe`!LN`&Q_-sRsenwM-?xit(jHv;2?M_vq^uBmS09XK&K>@S)ro6ZRm$Mu z1tfE?McbKKfjn<lXng>CXR~@`V&;7}p+bSSYU3I84K!Tw_p-%%xo&>ytN~#m{RfF5 z2{?9rgQa+g!rFZ-E5Ps9YcgRqMpI-rOa$zhHd#1)0z-N)u>e3er3j1MckFs)T$zIn zunqV6bhuM=&+MkFJuwJ8;_9`#bVOse-bwLSn5Zc*8R^c7rlN+s_pzDD>2x^m&ka<# z=l|yT-leF<qYsBRu!0+y^8Mz*%Xyb{PcNfC>%9=2^Gj@<RKs&z0ygio@i|pa#c)R1 zT+2ZvTdi`4r}_lHL5R{uo&O0DIF?{?&P!oLa;h|w^FQS1`^NgWJuZe5bWZEyO=`vH z8O`=a&?bmY)TOn|2D>I^7Ry?54KeUWm8A+2K-azi2O<G0A%Tl@9zR+2XC*JTZAUjy z90p^dt4TmQvF}NU{VCUprf&NO$!LdOPeZ}HGML$3p4huNQ*l+rJ+^y+7FyL_JjR~j zz(ht17gR5mDsd#2zyp5fc_Kx4ZMzV7C!oZMl=7w*4fPkYRQ7xTas?iJMT>~XD|!$@ zm!sF<jo==3rgWviSBNf6u}3TnT#m#tf%z&D1Sbm^@a}rQSlgsI*~gy9BTP1SSGkMZ zKtRLb&^6fg$fWZ-#emSaDppBR;;+E8D;&H2bkr^C{)Mp#bZ=S^HW}Vdi4%$oc+z<= z>TAB(MGTNK=K=5@?j4X?19||PnVoZI#B|}6P>t|lAW$p^$c~Y?%qDVtLqW)cCK`j2 ziUj89hzRTDmrJOq5=U#L7Iy!};A5}?T_zi2<Q_B?t#Jcc>8wBA{SYd9g)KQuTU2sa zs3#WTH+Hb8cm<~1xG4|VrND}!<Pf-%riui@{|!CdXW@FH9K1y|x~6?>U)76uhNdV2 z-$lq7g)1MEPzVkE0p&>c(;;w!%ovKB$XrO$)bg42zI$H@U(1=H#KO0*=6mlV9Y%Q~ zEDAV<iYki}-V3FTvwoAHR4^dsu)Pc`?D~MVqrGGH55kF=(A>)VR9t@xL!LFiGO_rr z%aPU?9-Nfp;LYQ&da5t9jgfqzqjAGt^>qkABwprmm*=rhO?2vcc$l^2z>9k*YpQ|A zcH$qO**K>dI0TU*W;w}o-^wp&H}HmcnyiI~oh>%XSUeAG%If=$^mt|M`Rwg`ea*zT zMgrQ&X`j-Y>YmSNtqm%y%?o6x^DTURgCa=V@fZ+~eQ50|q6=l`7p0M~{~{DCIm668 zeq4c_xm+f;4m7@GyZZ}cNumE@wBPBaG3ee^w#3h9sz&H0>c0<r;Lf~cdjRhDtrnRa zKe4gbi&O>cWWielgAs~GUlz);Gc3`LAPZt8=wEh?y-R=9PBLVvEu%^6$&vdY!#E&| zxZ^<F0HVy<4xIyigFqH_cmk=Es@apj@pB6g^L!h73*ES;Y}wG!yjOxtPr{b1G29?u zFX+||oq<bX({-SV^p&0X&i3tWO^0l5tuI9mBoxbPouFyGY^A9Oj0=GrE3LkYMLt?W z*XpZyB<n`mbgBB}b99u4&J~b+R=-=*Ge!){;=6iP4$5W2^v6q-BJyvrp?mooV^!5K zht7;I3V*X?20m4gl=gg@#RFk<J$Sd2d%%lmeeJJW!2wY^h(y7Ry&fBZrf!=85$D_9 zj_&iz#mnmvYX7JZ4I~~9T#spPs(RP`ikJu+rv{Xk=H?uvFR$DCaq5<$=c9dsdM=pf z*|10Wk1J|($XM!?=7CW%zd(lK+YSz3OMxy1MXP1a>=&PznqnO9lr*5LT>x8zH+a#p zG_77JN)3|KD9c7zCk&QX8E`VqFjyN*<>eh{7`jd0bLoOTUv2^siu&#=Uq$5j^nhIi zm6Ts^Hf)W)NK5IMG$1vmMWE%N#NR!4v%W0H%R>dZi4Ma%jfsB*zebPs&ln!Bz%{xB zpRo%A<~<(UeU79x6qft%ek#{2&NiLwm(_M~aBvmTdF)_WO4YW16CfWmg*@hdP86?E zjQ3ol3w+vr;&AL;d$x55M*)4mhp5S=I0J}Kz}rYlV)jvxlIfWR*8jwPE{ed=-Xj=9 zz!YbZU{iHe74}w1IQB#vmv@JN!Jed*U<=a}Wh7bL^#y^N2NAYSBkU1?<ed>TH(J!G zBfYzEd0kU?O&$I_a`k${l?vL_^NrxV4S8K0L5L{vL>c2Cce&Oml^SH3F?6$7E4(AF zU%&jRMEHw;%b1m@f~TE)+$F5Dp(?-TJ)a!MDWNLtTvi35mS?r9Am7o0Hyg$QSAcD; z47lcZjavm|K-%VxDmM>?F4#kN%?;-$OR#K;m;*4~c#2r|3+k5nl--Pj+C0QeKiEKH z06^GonFhz?@!$)>+GtCkCcJ7*e9J#jU^H4mx5e}kVEDX}Y~(IDj++K-LLY%LEQxhm zaw<NkzOPQBHr7XEQYs6F^<kB6PP6%-Yxp-#8P`ds46E(iYBNrtUIsgs#1z;Ddh#8j zL~ZN&wGC-_jbA8R_CV-b_M$TgIsoBSEu}hJ-ap6(-=Of-Uq66g7!GZA0;;x&-=Ihr zw0{L%ww(i`2RkjS@PCMId?h|llSVO#IK=V7CKzSMszk&aN5~BpTn(-tup?RU8n#*% zT5k3(0Wqt6pIjn|gMLlw%pZ_N0+G3Vc$=xipo&LJJO1N$bFCrgBNx#1Io|%i{A0{B znx@Y@J|i%$3P{3w7VZ$0oq@tWiX;f%hhl97>#iu55e6CXyy)_<cedLt-88lfGXQh% z(MOT+dVsZlsudj2ZY|R3$kee$b=-5@*mI5I_Vo)LFZWz+@`w!0J;U<p@DlPM4rc5k zOIFnI?py>p0ItE~W?brZjB?>Tu43EPb>=-|Ce%x*Oigc;EGs5jDDKz~LI<A26}ks{ z91{4uxrAIPLS41fNRYdizu27c1AUDCGH)9aqRyTN<OoH^EPL}&4v8jvNzu*ZBXaUr zjVx?9*N*MY9WxwwFXlPC4vYbSyO%5&CgMc_Ehs$)ekN846c4Hr=$MsN=1Nl+-`GfT z)zElUdGM+%m^G1rsaHqG=k5{K>TYFbXciC7k_oJO+*y9NR)f?j(iWSy)ifbIg<?Hk z(*Jbp%IczIDjn}`>X4f)=W2XSVCb1d#{leb?Dwq|xvd})x7;CjORj?WP(V(xPi-`~ z3Qzq`8qcF&G-hc;Jd|)O00IliQB5>Qm2pfwuN5`nhZHjb4AGgz%B3oW&4r9P!X&3x z645*TE=K<tseZ9~bXvz%p85*BmCvIwk})veM{q{CkB%aRcliR8kn&N};Et>wgD3?8 zf>$WJ|Mic^RFjJ@!Y1L$-lzHC2Lp59P)pk+tXg;lWE%_FS2xVPLkx6bD%hF>(EsE? zbod1)s|Da+A0B`A`77_M{{cf|-JTk<W7*X!?A<miu}rOGq4Ms#oWDL)?*ZI!#q^L1 zGSa~}bTR4fCe8%VCI_JQKoW^k(ri?`B2R;CVPUjuj|rEUA<%mC>a|O@PK<E(5eL$J zU0J0bofEXD2gSq0gEKq;?Iqwkr@jl{@jeD2{dGK*58Z%k-?|<cW!2lg>yFcFTl#z8 zx&kX~?wlS0!3n20M$g0Ru)D?ggVxK!8)QSle*5v<uRy?zRmI3)oDRaz1rtbqI?yP7 zjXnMd`n#hC6vpQ|_XN^`SqR3IXI?>Pu^)bru9`alBlRBhyCKDXJs{6!{Fr*)-1ym> z=w2k<9Qzv9??Tpy5mu%ped8wVCHGngvt7gf{<2%mF+yobYf(>9CaHu|DRrO&n7T-; zaN+^Z)IXj_m{+#ft$a~W&DNj#I~nt2VpuK^lmsx-<eMo}L79^h?ahWWIy{u4C~6Io zvu`gKmfRp$@cvNl&i2_KMr&-Pa&ayxvpC{ar1!?v(TxaaK|xzhbBe^Lkai|*QKOr| zofyTfR8Li*#Pv8<2CvY-((z_SN|S;dP~RGx{4T(>Ag5m$`iVC=n8=c1=<F|?Z6fcZ zOzOix(q$E+_m30vUvG2e@MT&I$Kc##N5H`b3Op982_@=eG`&(-b}H~{{7hh{WDF`! z)@}+Lkw-E;bQ`NL>T4?2WEyjoIrXFiv#8y2xMS}un3oB%_!c@pej=mCVG|5SWFKMv zpjox^UslS7F!)%*;$t|5oi^e)vxvS#x%9s`N-kmOqWPOFG#sX6YT$hY@e7#ZX3Bpx z5G>@N;v9i?DBUw7(F!)OaCsDK7ip{F%8*VpJ4Jf;f);P(g&j$~B^qSWnq)ke|FgW+ zae&wmGnzD-lAc||r`4B6i;G?9f9$H4y{Ji#lDC#~4dv~M(ikVcDk!Ko-d*lic)v?W zomkbRGCX$Lj-q9F@2|G0R(2cOS)`j24Q567FYzsy7zK(8kNDjyo?70g{p@0=h#!)w z{}VcM^6A?ZMNZLxe!KYDWs)93Zw}c+;$ZfEx-0*2q?~Gkmxa<-1>6(56T95R$E>*Z zbP}&?RPM1kM9Oy)o2}&LSsO8qb_(nTOm$JPMeXX-RJ$5~_YzOjN?YB%@GrR%;NBsN zr2jMW<5ME~i<+dBF+rG<s<LsP`t9Nho|x=?O8b|;`n$CIJ&M;ZYGb+MlmwcFwHvPb zoZK;<<GsN6&CwazYm;UkLy;DrHGf{?+dM5#9`O@e2v}lfrgF#XhKO=KFA?!-fl5A| z`muYLhuGsarEwm;D*je*u3B4nL}X`$%2eOJD7G~>r7S8t_pY#sdC}`Qmw_(Mbt!Yk zz!0;j>^-{3be$VJbrSq|wf+K4Iytr3&D{TuS!W~)>?Fo<XbLsc<!Z8P;O)$DK%nL9 zYA#h^UmMjBNFnM*52tzS6XOmtC4K=1C&EDsx2!}d%OuPz`MubB{gf^l;)<WauC9(a z5kWJr`5W=?@&HT$B;dtd+4)RVzTYe;WbS6jl?lrT&X6ZcAsIF)7Ni(hw7sAVn~vrl zt7YS>_%_`Ce&)tgq2b?7>lo;gCB;EY_oBpk;ID|~J{SY8omW5R!#t&ej1EYgphM@y zCoE+{lr+|wNg=%j<wtlscR{!{2yA@d)a_pC@PhTbP94B`J8g!EbkDLIG<48OhRzpg z|CKL*jSqp^SXO9AMFQK~+=Y}vk|iG~(QYW#N|usa6#NpM(YG`Y_<Q>;eu9I{RJZMP zKV0v|X&In5T_*4^;&kL$nwQU~q4<L-Uli$y_t{l1`)0BSCH1bYuloEa{0(+cyKT19 zd><t{9~+0XN$DOK=_II18m@TNl2XERB?4>Pu=fc%ZbWoX8AWa6!*OS2BQcGaq5ieU z31y0Q&q)tZvPl-RJ(un)pa3-2DQ4|7ua`@F@4VxE6*MuEQ?P(lw5=@ro$>p@@W$?8 z{Inq4aaVyE8`jWwe9>P`_dRC${OmWWHhlt*&Mh9`W|Q%9@7e|2>+Gagc7{|_g|fSN z*KjTEZ7%-&G%7wfiJ@ahnc<xWEKSz->)`!)1Z$qesKwQ0$$SW%I$;}FT+DwR^s{zI zKk-aqnzQ!8F_`KB*DTlIW|-&E$(*p)=b(kz$J_()@5LhS$eN|ZaZu}Ka~sSJA7y{q zw6=_eQfDM%a(rC>%Bm|tKzN?)kLh5yEpNtTACIoW%C}M;Tqa$&auc1w>oM0xPIcJO z$av!~&HH4gnF&=>R%WdzjTndCRX4{M=@r4^OVl{*wjmGj$-8IRy+STqz3L?l^DDF4 zpvLCLY`Vdv$j_XbqETkZR1K8?(c(f98c3JryzAI~*1+2xsQbvuZSLHV3a39Bty5eb z33KK*V|V(cj-a~4^4kisAr9s70yp>Al#lQ(gSeyN0hj`t^MIPNPc16)!GjS-sCb{v zFmDd1_C-_Fy^vGQrNY>FlwfJyr#t$=4o67S13>54Qg4GQV2-H&YIM%sr5AmXnYLhr zH>!@QtUbEK16GsHIme!6{aKu`bGfqfEh@U($&V6*z6!lKbtSK3a<%<Cv@O?^z5m}? zCJQ<D<y*7c?<(5^Du*_V1M=ok4PXxU#EI{f){xfgN0dnv;b-!JsDeFAAZjqa$+*{` zH-T>R3OAqa<kA9zux6NDzI;dmAArl}g~?cSLD$h1IxlXC`>C5sOMSp69tN?I;|>NS z6=Ru(bu_tOMs8{89VHab1`?K^hh!?Y@w-h|-p;lgnA1tLHXeAJc2BmT=r-mz`4rhF znc?xw3&Ed)HgfJLDrEJo{Cv&@B$d`*!HM1Hi1$3zhFNg!SMg}Gwv%=UsK~lyK6<Y% z#8_dfBU%=htd3_Zi}M#``&Egh`C|BgT*!R7(8|6;$6{^ul8Ot3Vb`Z&e8{VG6)=%d zeY5KB@jWqSABtA`SH&%)7iEuIruj>r_OGIfJ#K;oui+1bds~eHv#F@zSYkm7?3^D# zZdvWi7$p1pd}HxJ1fFODPxa!l*c~2_a~gg&Dad{-5)j?Hk!4EvAt$N7Ig474K$+j= zbqY7WjN36m<@U4Xbdk|nNt}=NRq$TbFn^eCL~>us5;I7K<^`^o^e0xnHt=F%4FByp zE=K8^d$S5><1sgarO#Z0{xTH6!oRKiwd(z|+R%aLN7_SX>-?fW)BZ{y`5;XM0zq$5 zl6pdesE52e`|Td{xDy#k{C&5c+pZtMJ&|fOeu!5&SN?&G^{UPHmt;6*47s&Umt}8p zQ+_X<)LW-Tk9v&e0db<E?<mgWywT40#c`Q?A}UGWGf3|+)N0ytAF|8Slq;F>+!W6c zAo}}P4sQx6{4n6bGbc@aapQUP{EZYd-sEVWD%4|5s(Q2;rT4_vw?f_+dc5)w$8-Am z(BJP{v%grQ-c&9%?}g-cT7`vM7gvlM8aTcJb7~KZL*j8%?_`W({xeq~${nsEQ@1Rv z3lYwPNnXGt627=(IjGYk1}mP$N^-CxCCF9#IH=Bld~AV<r2Mj^N?r*KxlfbcEf+vF zx4zTIzIiOB8dTP~vLj-micZtOWcx<3RPN4imwLS|*J~b2t&P`n^8GbJpZPqSPv&Jc z-}!LCP6owU1sJBv2+{Nu!Wh<{)*+XX#dQUO%~HB}e!cv+FSHOMq=IznL+XYO8^Ls9 zjU)Cr9P=r1$cRsG-Kz`EuHF=`6iB1#!#$gs?WIzEA3e<%d+@l@yQy%*d6fexAwg#n zTzGSGRA2Rn$x(#oKEc)WVvy?Pf&`17Ho@PCt!dXys>o_2#THDYO<a<EwmVu1nc61{ z5aajMr|XioM&fto93T0KH;vH$>7G-SO=g_l<$3w*C88#3;h~2#H~L_obxoeZcQfQv zrA4fRgd}0d#n1Tt-wDoaP0q>;sS1&~$GNK&8D4>S6HTq0x<SW2H&~^I<`+MTI!zc^ z{DUkK5AC{JC0#roJWr{A_hZ&%ult85pN}qdlNeBi_b^iVZ_W0roCnO9cR!VYUlM;Y z*8E!c(A}9`+g!bM#m+CTy2kFAa%Fq>_*+?)ER9DFl{R0Xr4i`R;t@_aqob`jHXRvC zm#2~epPoAjwA?NG>g@xavE4m7Db(2Xl{5XMb%}m7^2@4K{i)~P6K!5gePz?wFYQB# zIh@6=sFL`EpDDKqmIP__bRxh}tJxX-;XZTo4h#89aZ7(MgmiW$(TkEioAUhpT=9H$ zFKx~HZq7Z>iULoKs7LC~7I0EpFc`}|!K%N%;j5^BLM`*SYGhN?oT*V&=S5U0uYg~I zCZ1zy*`qq*pReyU=&93jVZODbga$h0v^*8X&wb0Y-t&qrFKVfuIBjR7sLs{Ow4At2 z?Z+R<H#O;kR^0swFp*lBuW>JMd?&c`E{qr*zr)7HF1znc;YmVx0_-|>THAQrDjwHW zXIB~ii0>+C4*xRFAlAs!oJKIefI)uB)pL9koB_`nk-MEC%1jCUY?Gb9RQ`HCax>Hl z-j#=ut9JO4iK%0CuMn*eZJQn3ET{+iARw^h`(&W%jmnk(ii_8-YU%E><x)@cbC&z; zDXc}2{R(UC@C#WjfTfbc-8Dae@eeS!MllWMdBf<fjt-0*4@L4zUfq=;WMcG4QEL$n z{VNQ2SxOE#oG>byvB~U^<Fbe@H@h%;aW6Dzj5G}A=jx8a$pWS6;jTl(cF0+MTjB6Y zn2kfiD|gStk%V+lw=Z8RQ_F)C=*SbBb~@;Yl2#Y0J-WlKy{l<XKK!q35p>1YVq?3- z>(WuWRcbvpf<A1x<CR-$ufCRq4N8@2hz2C$Kc@B1&r={Fe3#Of*l;f8LE<OCIUO{g zIXZt}M})>YvU36*!ua3m)+(O*^*4CJ%ac;Dz0Px;4zYR}@1%JI@tih4z@5CWXRzLI zg&I(882uUbs?%=pS!+3Cxgr7)aTe5)QksVfUSDAYN?HxrNY_ez=aF}5A0{7^wc<|; z@9@v15QI2HSSoby{RNeV2EYh_C<kBd1Z|Mt0f9BvfliY|1C*mh@aK+Jffn3S7!#LT z*fxt@%$M@Wa0MB4c0<hP>ukt}M;M+fVR+FKsh*2DY$is}O&iz9q96D3p)dS;D!+k} zgj}I%>5A;U=l>D%UziZYK@NsCQ~yV>wB8?_y_yB?4Dfgo|Bt2X4utyu|7Y)+l|3^; zlo8>Kj3e25XJmw|GUALR^X!VU*V!{GBjHf84uuekJ5pqIxbN?EKEFS^?%rPS*X#Lu zzMik=<MDhv31UDYucP&|4(%2RwC>%KyF>*vX?{>*)NFre-^|4yZMGodxiK!#^oWhl z2V?wz4WupzQw>Y~y2g4vy4(`eFTyr(Mkrd^%`f^${SxaD139(GiNz|sy7%H3LN{I) zfCtI3W-+fhYU=L}@(+GIF&;PKI(d`bK@_~Sh-;Vu@vRSXl8IG-x+;SbtyPp+1|NBR z7D=%R=49*El2LV=$@=_S%sVSDN!yYSHc*Ws`^BvbFc9|X-m@2yDZwM&Uc{Y0Y-RPR zEU#=Z4b`0!RPieFPd3v;#dy7a2J-G!2>P+_`;}t-z$*iqB((7HOiOmisjZ2}OkG-~ z`Cgh5pB)~o>bpOf-6X1eHDd;XHinP?NjJG?2$3<C@CLJS!UR#Ejj<l8^zTMRdx|!l z*$YmHg}}!~<D1icMn!}kcn^{|gNtHCyk_6uV~P}ro+SGfIteFS+Ur8T!3^&TD%_)- z){t;qvFsBq1ox|+d2@||%nIek3NMi)+mKYfmbl_6-PIgLVFuLvO2;8+Q$LwSQNbPJ zUGr5)Zr0s5QW7F*&bQMDT1J8?tNbASDwB-!)w6b}aZ}8pa1`u<T$=upjh|JFL%><X zdGn9%3}LPAE1S#uK`f;rZ2QAIap!8iz_!TSTP(^le~P^}Gp(6Ik=BS*i`IodDlf1u zbuz6UuCBGFS)wT{0!cK^f7N5JuU^rp%(Yn$U3>Z5L^!xEsq7UaWatH&X5r_mQ!)dP z9NfTeRSdiEm*>gl$WDv+rhD6%M9S(}=wcQ5u~5fIU}vJPgIV{*Oj?(4FRVn|U_>VV z@9~A-;b3@|Jz&ehz8ZoS4jP6Zd+SZ=)#73)3BXsDU9T@oYtvQMFpo%O^Bdu2`FIPx z4#^9-s?_#xg?ywfOd=(x&TKoA)drp)lIf)mL<!{N@}}<;YYV!9V3QF_9%e#Z9o3~H z`2$W!_l<C8gc-R<=$Yq)7bRc;A)<txRKeGS?;^op2)wwuV&IixAI^Oc1gp-A^YIl< zmnJ$(zZSs&eygOxDbbUq&ZcnwnEyf{Y;ABs!yjF9un8kwIJzj;`elAS=A5ke9Um6H z0&?Qt9ty<{TC+8-r~8lcg1J9{ZG;#vXfcB^cuL?B=}tsJMKTz~-RNkt1a=`jHMHoW z;R>cw+}?$kGH?1iem(h_wtvaBwN21d1H96-rLIsiUK+k-7X`iOw~;K=;iQR;sE&Ea za_Qij&)&Ij5GaiSWp}QfHKn#)wqo0PmU)0}^IW=IX22CPM0XAMM)-}TV&~>QVMpZT zx~ILWxK<TACONqDN{`eBe6vvn>_1HDZpzzx>VEne{a`v5_<lzd65Y`bE3)}e$4^nI zES|(U<nk$8QYd~|zpxF!Z>D!@@~LRZft-rtqmrfRL`2W+m92MF>#`<X4F*SHnpZ_; zZOnb?hI(WqaIaSmBO&-cgh#%!;QTMqvo}}Y;wRK9%R9GI{=E88T8%PX<Gh!tjP&y6 zJr*(c>|!=dX!twY-gYjAX=i$;C@r&9IR+A53UNkOCB0mlOPaAx#%6(BTFDo(t;JW_ z7s{?*xqk`c!l~-0tcA2IlpNPpYM-9F{m`F~r<lx&U$%>o;!jEzCpGg*P2~wVg?&)I z%<v0s!==YtlA^BSgaeb)Tj4Ep`F`BMwA3teI46Y9;F{p(b~PYL5SEtoTg<#y;j>C1 zL`6l}XVcnLBgvX|CA}x`PL|X=bg%2q9?X-*L;>OUZ|tvgr<ZO%P11ku;GBw|bwMWO zVEF^nn|ur)?g~B6MUxo`UaQu6%*BM3>hhKEJo?hz-Gvny|FLT{v#-kzYi0^CQ@*3H zQh-b6dx@TJ5@bq42D+fjDOjTH)~1qkcylf1eEUyAgC<9;Y~_B|f#N+qZlbECWOzHl zY(Ds?3lymT;$&BELKKU^Tm3&U!ikp%>m1&?mt*&}qy1`7m7>B~8g!np&RLyz0zb;7 z2)XfpwXUKm!c(@LgZY^ADoe=@@Ng=hI2{A{3E`unl4nj$;&7v7&3*<Gp;Y@I04(jk zVY!s@vJO=e5akCAEo_+IipnL7A(hQIBX*ain#<w&cR1lRY#uHmnOJQAXFJ0&A(wpD z7-LjNB;uZmKz|Jh9E58S9@b(!t7}1otW>+L937?oQZ07Q#}<V^5&q1qCCc=TZ6`lY zUF8ed(_kYxSe6=adj}`-T2oV~yt(e}XY{k5fGO6NyR&<wzPu_!bZ#5tN902fEyu@! z?;D!v3a2We<uxqFnPVb_94ou63v@{?-05sm;tevg!5S|6SW5U-Y1Ro};RP6{6QVqh zn2c0!7bcwk1W2;phiBv-oNqD?z>&we<?U~wMeLm&&`Fx5C}{#>UQhdiGpcY$E$)I3 zu>v9Ej%VZBbBe;QvdXIl-)9<;%lM(~ML|?oZ164NOyhVLIV0D0_q|&-lKCnOko0eM z!yEi7FX(SGc9vmm9z-!T-1;Q>e3G#!J-$`=;^`hgbwSUE3foxQx{kize{|7bfsK9# z!|^!u`i0Hwj*8SBwd4@B(J5=Spss}|9Pk8+b4Omoqn2mJjqJDseoXpXI>J6>+WzK# zK)gg|sBjw>sNN`=eEPT&*`ONn-t(iEf@#cX7e-QEkYRkJQ*8?@nfdl5G8{c!^lBs> zkh=Q?3g9E!0d7$F`U&kPZW=~v0el=rxX`H>2X8#KobddMT}zVZ`&heIp~$fkq_Rie z+9EfjeEE%ep+M@j12(}iwRe$`ixpk*(tkeO@r4Oxm6|+Cvh#vwCaLuq5paTI7<T87 zSRAQeDEC)$oVmI)VyWb^d{jE!2puS^KHjbU@(aT}UAt_wB%N|QC9k!6^yI!&q~(>P zwRsQ?+LAx(xl=;=Nq27VV~t*?KWrT@CiQ#S!TOA((opvN34FKP@dL(J0r)>~0_h+A z58b2W8j|Zkx;SERl~IE%@hs@y1upRClj(?%$V+kZ?|R%>E(btN09fvwXX<+EXo|89 zWqHA+!fitH9?X56^x5Y^sjcX$cLAt-R3xwDxmvjXsI%h;w2We1?q}uqDswr*ZAxM+ z^*B`XG(*TeOV>UTp~;@B0J{QCD(<-ht9dfFIPoYKO7@wSuaw*UhklZD3AiExwmQ#N z`%T8*o89n+Z@V~|zCn@H4V?rt0X82+Quz@x0yH>TFK0+~|H}2G+xk_+*DnQ>8siG< z0AUpLYXjnBM=91EgBbzHM29;I4D>_3?>oSn0$lhB?)cN;XC@xo^!Fm3c^kK4{h;Vb zNYmzi<modb$1OpYHj9@%Lp-_Em7{K)r2{`7NpVp@0_XY4gOkCP@B*%(zUojD$Z8>7 zTi_J}2@}#J6~;@eceWG28?-BAHiGR8$Pmn*!Iy6mJ{h@;CK|};K|m`p_rf|T2*=@? zo$dC+E+g&)l6>ePp*9i7OPwZ#<G4SW%dPm+-k9+a$Jl(TBh^IDnhdYfRLuv#cVaFo z=W4$wk$c;x-8$qb)318YKA9PXehV*8CW9Iw)xZI4ZSj+xvx+0y|NfQL__M`Az^C(n zFe-!Kxol&t`pxUZ$6uIgsY5%P%+jINDso)`JC)$Z+xCKYcOqqn2cvJ2F6GnMpR1Pn zVAIo+4*278vNh+~_d`8PS}WkPlUYf{E6@-VdRLZg&0LWTL3zg9>M)L{wn|=y<cg4V zJs{==`-!9%Ps^BS_r-81OnW0M3)B|=Y-yn^-Nje+!<U|*KWp85yeD%TC-Ybn^!dbP z{krXEgqo5XZys8D%BXCtVX9?~&3NZroi&tj7!<*P=|4JtqpX{EP*z-hpD9_)y{%tT zCu8V~6V@NUL@+`aX{jcko^TMnd{-N>!2~Q1nFIqwAZQxUsqe-2Zhs3~)VyJP#14$U zQNnA=_?Oy;<uB)`D~e2#Uv`3JVra9mo4dQv$TAh0h8aZBky%K<_0e(}@yX+RUynv> zpB~FSR?*l$sML?j`o>i$_EqA}!8Ce??vkmYX}vd_&bhjtpPY4!|CVaEyJVe-D1And zeCksg?%ZhdRrT+u$}(jj0sB8l)!Fhq0rfhIklo^$CmgSYVl`{qc?H0Izqp?b9Ic<< z-%L{_tRm_bCMDl#ONl$^ye178M+k8k$x}WD!NG-oyc9tn(9`l2R-g$|ScwCI58$Zi z?I4z_IOhIpSi9m>e7plv_+92Y<o#7_eW&!&dKU&3^0_~m#x9xu0hAzk9TK0gxvz`< z5(A{IX$VK^tyEzQ@ew#4>qZGzOH6K&!(zdMU_c`4B!X8$cL<}PjfL_dP%~*zLa4X( z#qn4L)VUQ%!7obTNds?!B!p7~z!$(*fAj1_^?g5Kzv!_ze7uQy&o@W7^<ahPXMF6v z*TGyEhhEf0u5+uI``Iw1moi2*M;bHv7Yl)jv1zQf46B!_e#OCut<bmtJu4>=VIoN6 zY_(>dS4rmv<v^hTsIHU(s)(xdU9bt#bcMu>QvbS_kwhDI=KzMDBMj1cDLbTPeIY4U z{C*uWlu5jZvs(CiTS=NcyQ1H<6TaWD-8c?CM^)|zS6G%Zb}6Zg@(M_PhQrpwU86Q^ zQV!%o%V}yH^}9sw`{|~-RP49?#@C9G{5?6k`_}9&2hmYMna#f}ucwb>v(6<77tJ(` zntKGU4F8Z(qRJ9U12lN*PH~a2;&e0lJ3ckH<=H5YolIGUnI=vm+{hD8<Hf>nWEA(d zmC-Ximk`rdKNNa?plZ1EX65aX#T7XZ@%?Ke9#uujmtn{CY^1!fYEIo$mP-S;(JM!G z#2TO2)%d4N6HE%Wn<Htv%I`hV)GOL95NbcdM<sEmDSN2|s%NP%SJ`$MAMZ*2`MWJ( z7p=#(y7z0iW76}RXq=Z%_AC<%IMo^|4QfN&6)ah+<8v}C=+lbooBV${6)^OmVApR3 zn>@bfTP`p}sl>y;6Vbl6twI0&)pSL3?G011kPJ_+X`QsKk<d&7p2tlPue1CrOuCr( zWU5KVX^5tPmo1D`EN_aXJ5~!OoTpjUgkJdy)_V?j<s9)fF=w2ksd3}}sbbZ$`};33 z>osW}sq4eAJN@HS#A{YfD%M1!$CmUTKU6&6{kQWR<560Uv~HSiQ~EPE{m(t&gG`P` ztm#LQFLc*Hs41GfuR0rKf6x(k%_<{t<%WIWCCxj3Ud=&SB<spkStM93`(ye^@h~8Y zxIQ<hOB|gsT{*@(eB41=0EHGFfv#^|+op{Qs|e7zVe}$0;tFIq3WeC?FFKkSGcZ4- zuK}Llpzvhn)IaLq;chbxQ$Wyr5v#wb)87r7goB&5&hJ3(-^%yU*SF=Z|6$w~`+{;$ zGhP=(v<10~KYd)5!^*97IWPrBlyyi1u5E|pI-EQ1ytdj^!)6wyQo)INaVHM$WD0S@ zso53j?J=dsw%U@KY5oKu;gGs(A9oLtyJ?$Cozym!k#*5ybG~&AcV@=^)C;lenAEtY z7)VOYn&#%@(OgC92(B-PbBr8puSh2=D8EELt2Cn1(4|$L`6F<}1MpRVFvV2gSopE= zjX&i&eDeCOzm!u#T$Qa;O(p4s-Ku5}oXbPcA{Lk(dqM-Yx?Q((Ue5@t6TfTZy!?vN z82TmXJv(%M@!Y@iO`pUSAK5#MQRj4YehtX$W}gmnNiYMAqL_nYohsKO5WEIb7dhq7 zVQ^m@;_Ef~HctB-w|aJ|D}w*PJ;*~xi03_D4l<kqT=2n68BPAJzn^RNMj(LsL8v%g zvDhxC`O?0c|E=!>Ui{zjJ0#F1ZO?q!NPe&@PaKtDc;GA*#bLL14>b4<`TXn=taRFF z8?uPAKc@h?75*n+Ni?Z%+-YHyUY2*Wqw%`?#J9SC<uCj_!MW0J3o;ohdnt1?CF+@M zxrR)?gOH8)@e`b0#yRmuRN(};0Hwh;5tv`17J#|pt6yVgV~B+Y+^ORt8Q>7!_vYUV zqzCE8Zm#=Ac070MUlnKcckBN1SrS+IVpmu!TIe6rTbz_530N!}`%))ASIjP$8FNB{ zVpuIDDcZ^*F?<p}L!`6Qsjg4u^s8-yKj>i7i>>=gZp0_eT%pbS@-bt{E#}{M4A&iu z4lO#S{rt*(QEH2kT36>0R#(ruBLb_re*#3Wt=GH;HIcnAeRs!zJK~juC*$bhRjzMD zDq>>ojZI{2&A*=XAInf{MM2WTB(b-+=}88SEqbg;etJ6!vds_Q9xxgVqu^#Zbuo^D z7g~PvS<E=x;KDO-!x8geYRb<8fox=IfBPvHaNOIZjr!Bt!XXTdDU6d_bS&?me{UEO z0%@4VJ1O?cO)T6hh{d_*!gD=0%@kg(dEg|Q+E2-xt%0sWd-#fZ$k&_50G@>2z53ub z>D?ttVkf;zZe_3Obo0Xjo6V*3)ZN`*5dLBM@tWFl=6x#GJF@T2RCnuh`%?C|j1GXr z{30p((V=N^_lrtSdk0CWAE%+SnFF_Uq;F0G3En>2U}^~lql~c@@@LG|+wQrVAzPA? zZ1QYq6y}@=SBPqz9us6)gU_NWUPWJdb2sjuvA#=njcr~ckEM-3uJfS$4x0fy;Yg#s z)hI+khhpOFn|$rT`I&NV;hl#XoLi07b<T2s$m)E+EzW;IbD9q%&aWLl!3D}m6}<M` z`u4K*X}dz8<~ba7ruLTi6SijIW^h9}cYvg8+&L65gBpH)el_U2IS=*1`By%$CWp~y z^h5Y2uB`la98+v37B=~5w1cU6Rvk0_IaWzdrct0r1GXBeeR32#%4Ib2^Nk77Gz5cB z6W3~L&Y9M-#zR0P3oww+jAOI=-)E=W{skYsu9}_T=2Zf>BA?l4r<Tg_kH0?uR~SEG zJ8GoLdYfey&8jyw>$(k`Z80*n!!0k**&KAYpghW3TUg$uXzNOKPgB<ts&aP@jjbp; z#0aIi$?B6_4Im|ESfE#yc=PwqvB&YV&!fMd&^sE|soLtw^D>AEw^?&s4|eWV=w`5- z&&##u&f@$w19NXQjg0nJQVd#r%;me8_1l)bRSpMx+15J6Eho?-td2-nvk)*OQx?qf z>S*go`|FjBOg^U?cXj`(9wkEhaE)AfzNM+F@NKX3Zl^+_x9^hz>9n`io_n2au~v(n zgU@i)N4qW>iDyZq)m?FE7L$y6**oo&zl9jeOT&q$`i7tW<8(&on3|{jo1}JrbKf@F z{9jD~pMS=wwgx6&Ro9?fVb*(%HssTvZ-S<zz1Clt-25zlAK>B+DDqD&y?)H%q?A<L zwOM=(EMW4&*?;vGyuCJ3=M2a)NJhwZ)P-rj07hejeau~+2h@4NYQglom*jOuM?O}l zUm5Y;OwU)y@6}>sz!iU*V!+herAc=xM}{x#Z3Tb3rHlwNkqpYNY^b0W3nY@hCp8*d zL~qOHkM1+RTfVvNMXs?ujw)&BRxosv4=~*jr{gtcT+8(hU$0Fm{4&WXlM(W;5_|0) z(fZ=;kP=EcRnBXGQn}O-mHiJo^EC|>exjgoDRj~xyI!W}$*EMesO-l#X({CQ%hVUJ zCger!IXdP1&)T~$|Mq_%()My-a)PU){B{OXBx@s-F;GThf2;Rs0k#=ma<8_&3~|L| zFtRtH?!fDMa0nXRb|7!w_T?;Ig%!<uV1}~LveUNVs4A;1Lq5&URC09>4iRS5#Vrrx zvQxDZbb4t>${WMAk9K7|aPyD)i*5B}KZr0o+Znie*fzU1_8ioR0SjJahp0&1&6lvE zsGdt-(t%egte-alf4h@uBwhbb`RN$Rr4a6{QDfD%>F7fTsC0*(h9WIxW0NT*h#pN) zZ{1n^Y6~g18+=3jDqT0IZbD-zdm8Y4HH3Uf`7Dp!_0acd_y;TzjsYZK=8qa`f~So8 zf1kgqvOTH$xb7Q(Z)}WXG}XY_V<D#<tDu>;%W_|#7Tv8#ic>v`S@_-=Uh3C!k7$3m z`p?0}pV(y!0S{02XPeV|90SWMlU#@+-meKJUL<kPh9boncE**<Y+ttNTus6~>3YRu zFwP#oa)hj&a*nPFNxg5%V@^X9H2(YWXba*-^r4bi@K|j8=7DQh=b^8Jp`{e7MX;#R z_JQGf-(LHvi@%Q$f03%t>&NTm=ei~0)^=v(J@quqp*;-~?Z$a&c~|0iG>q=R=dJkG zt~t|z+r@HEUya<h*N380AM?mLt;cR0g8zb??g^Pj62~&JmDc3vBaT;WMVX@_t%DCO z>{#?at^E`Uixg&S^|oJ%RBt@mblfUN{}jyi$aqug{qAYY?c#*8ckx5$Kk9v_aQC5T z54E`J`>HZOZ<q|p4RLoemyi*e?j&w!=$!#(r0U#_+kE#OSx8EM|CwPKZBmrp%F!R~ zIOhA>Pg8>_?VoubV=AqKyb@`fI%*7`mu<5Z@Hd<7x~Vq%|Kv+&`+~5|^JJ&(iT?*? z2<J_*9jtG98JyS2#+QrJlX>*M>ne~KHUMmiAjxCBx9~KG1(GgAG7`FWbdcuj53W>h zNb@Q4ygT02`YQ*cSGijFfz}`)c_C9JW?tjPnY)ScQKYzlek%J-Jbj?8KQ)W2zew$( ztkzcTE;4R8lp41i8)b`|@bQGu>#Kq^yjm8N16*_m$m6Tt^IytGfF~;9iSQ+OFt}ro zrt9WrBH%!~Wq;Sr9#UFtCi9iY6B2vP4ZIC?9n{w<zym-%6XAEEGHnw-H#7R%`L^+J zLJB@V_s7Po=VWn+={bn)auz}KiSY85l(+b4zUi%>L7^A*XU`O*s{aRx1x%`ou3$g# zyGDQP06tgP03y=uZw7=kgVM-fjfd1LIHwEnjaM(PkXxgU#jS-8yP(7kq)aZpsh@S+ zUw*G#P6*~ws{cg-u$_P}Ll6ccF=*cWx%Hqw(KT0z-7#BB0JO&N({LA#0YPXTdio88 z)03CBI83IVt$eWF+Wl!B6@h~BD7w0#-rh5>&G}R+ltHbp(~_nob1y%{6P;OQPfo4? zH39Hy<l(U`M*Pinl#>v)gMV1V1e4Tn9e1E`c2R;cuVGYTTS*<`Ees>#wlC9=UOM*= zf`gY*BYjkrq%HGQ@5z0~x(CA!S{f8v|LN^l<i<-pzLx$j<9WcsdM?yJw=7-QR2S{t zamEFrIF+F34by?ED*IxR;u$^OQqpl=5S1KZ>q2Z)AweBX<HPfUuJS1+tBI>N8n;PD z;gexF_(io+fnbHM>qAI$^1_Gn4MJT&)%5a?fz7KIdO`)ZgW_iwN|e`Q&RAtWyP&<6 zzRk9UUBkHe*R^JW@rIrEPzDD#p>(Ch^VZt!25O0>%f9kx7HAN`2nd=_?KpICTnNki z+%@HvHHB=nJPq8Ai(sAVX;qSCD6WyWt%!jtG@)xAf{+Y!kau?*Rm_MTe$C41YRWJh z!hjUQ6&Qh~%E*7_DJG!jy%0iQi_(`wY$n~#q1EW%CmAkvCZuDF7Hkt5k^-j$>r`&E zY74rH{H#wcuu<<5=8cNxD<W8Gi2<UZpzyMlfMtSk&UMZ55$Z-guO+=R+YNiET?pYD zFI1y4NA0~ubTipQ1=5N~I3<KKobH6zhLHLBK7>M(BN~ETY+$ctNxjUCanE}zd(+hl zK@)K!@IHcy+53{&p2FtFDR+w`MTE1j-1R-cMcxFS9ayOYQV52K50Rx)Nm`X{iNYu} z;a`vjfl(K8<ckSm)i-GVL-D+;oTr)TP?PZ53s7wTzph#6Xn*`3eucmrtO{Y@FJ4>F z>-%|3==x3AG!MD()JC`^_#pTfri;cVd5PKYT{2e?G7+DPBQW0XGIm%m#!_xZhxJ_K z9=0=i5>%q!{tsfi6o5J*JR_4%wg-XUYQzN*V)nVqdE=EZHV8SN0RurjE+o<2S}$-c ziHJ_Pu-p>=RwdawiZJ7~aFn>zk7qN3O8aF~&v)oL{ZHz83xIntYzqzn!g!yu#+q%N zxN2T5YonhJ!P?m_K(K8to<}$v?L>SZnqf;7JRQAYNvincV;}J^H%=>1e0)eqD9%Wf zNeMr2d74p``Dgf(b^eM)pXfH>KPDr3MdCfTd>Jh-DTgsx-b7pHTDkLCiYA{+0^b$P zK^?PhsSc4)D@~3Y1!)_C>6`tznMYf1%Fr9jS%oReE528i%4J^TW~lwoS2+<9rF-h# zER=MU^a*at!vDEdv2tcEr@Xi4z4F+C@5PlBmDaAQz8++j?_cI;`i=mF`hJLUNMB2( zZIDN&BMqH8<Xu!2{1DZ1xEq%kj_s;`+uYXtWh1k>!aFv@*c`>Jc^@rgZV4(s&-DoY z>M0htDa<_!ae9BMUqK40YyG4SFO)cVtgJnXZSo2lE~h8me3$w-Hz!eBWK!D%`2f;+ zZ<SD*1>5o4Si0$q;>toMNvXHeuf2UU)=0`xIajjkg?`KLI2cKo0fn8<0}uW^xoep) zlvA1HH5Y!v8z!E<#GEBRmAgtttI_uR5ENHwDyZnvTBe1r-MG8b%&il0H^j?$DRT$b z*r#}b34P4`!euA%TmG)Ncy&Y7tn0VELt;a#>(J<@9<<W(#UKYq*pj#6TotZF8zJg) zJB8eH^~0ZQnuiW{Ee%W&bFP@uAwZV^FrXM@4)-&?{_DDrT@Ng6<f??Q((nt)2DL|; z#zV>eKU9K8t6vD`gyh3#5@Bl@fPzmn<Kgr-yhBpn4s*gzSoIu$w!5ES^A!T5z4eQf z@KAb8L51<<gW?`QNVrgBnt70(Yf{BL*VMtze&&R61twZ)EB48Jb$Me}ql_q!lFb=9 zPYUcE8<=X1iGL9z(z^HPJ}%>c4?z%$s{BDp%C6j6hge(iy*Q2}L`9;KT_OV2g#hde zdhg74Jt?hVr4eN3r&E}OEB@Ey(JHN`Ve!@n(e|44DvsLjw!6Hg{R8Q<=^QgC@wH>9 z!9Kxv#aHXzsG3vHcHGMhZYh778-P+cBkcZKB`0$}Y_LoSe*i9;lf(W3ehy5F)Jqg# zmr&I?%ZK}5ufez9gBh3;iRGWkImnH?!}bHZio(l-pI5b+f7&l4syV7(I=}NkKbqmp zADD?Tw+)(=|6Fp({v4E&&iyrdVc);LrF%+qTI|hGXuBOlu|>f*x3Uw;dqnYS9n_}^ zDRzRwx4u)pN7%#anOgZv&l#(~mhtcFV)~Byz;SJsm6m6z5$1UI(hXAJrw0mv)(B*k zlW_kk5z7TF2Ill+_@wTn*IC9P4)`eFMykJ<dIb_=Mdga8o)E|aeFGA>_qyK}m^X0g zyaJPBcN*#9t6btv0zZFFEg!eHo`<53g9|^6)hH$s=jdHACK8EL-hR|~mf4Q8TWtEX z?On!w@G5gaFPYftJ(UZPU;&MJJ~!CjM~?G{hZZ*-D&_iWWnF#9!tC!%Nm3YMe;ig& zPf4;l&#@Mb-T&M~!>IOxKdPkte~^s7yR{pf^lvq-I%aBf{&7^v!b6Ot%HPDR@?^{C z5by2_rR&E;EdKR>WM<-6^}CAb$E0>{fqvJ|0_QrR>hJ+lhBAm7(|)yK{rd;fAWyYe z7d(_TV*0%)rxT<J<hgacEQnvZs|Y_F;9af|mWYk&UCh-^rA_@Y`!(7W6^-F(QEct* zma;?SUuGpXn`#Tbp>6)RTPLgbigNbDB4!>v3E%g9YoorqpLUJwR8BznQnr0FJzZON zvUpY7q+-*64z%Sf2TY(-hnb$6>vOY^n1`(WWT8KT!HxU$_=Ob|f?1q`|D!PceO|{7 z2tV=Xr_~|<o9#K8vsl#VSv*gqNG3V>59sztRMm%nE4amC;s>2g4)~9-&`L2p<_l;A zh9k5Pmoiz?oBWYb!cKpU95A&go0QuX=laacm6YQ=f3Jph7dpJMeR1u0CKNJmnk+G; zyRHx9@I=b8>|`Zp6xRkbPC5yx#jQt+zO=&`rPKwF<^`UT)HXYmOm0q^uVhMI=x7(q z3ehrazOLcIw&l%}y#z!DAz<(`gZv{!!%3uWOF0xKpyw0cpR*_mFq9H=3-ncGqRUO3 z(o*imk!-6VE#Y*&2@2t6lt(-YjApp91HZFt%tq-6?Gbb+d!{{-Vnc(vpXJ?~Mp=5* z5Q|$Fk^bR$9c?(;hrQ_28I7z|e~nJ&x&7yj00t|P7$acKl3rP^4SGdrpf)cm7)5S- z*OEQwx3-;YKQkt{s)q(Q1y>CC_7pDa!UEA214|17E8h=+Y#qV3O*hbI+&-z)s`_Ci zo>)gaw4O3TYyNRf<Dp*gLn=iT1Yu5lTDE&XJnR>SvzUcdd0djEjGx3@!?%ddJd`x* zVJ0`SgS3$GM$-GB^BW!;&umQh@uXJPYDh_`sw1naGDV?przs^FSz7`PWB9h2zn0`a z$)wQo?Zu-W@N$XYyP2U5Ed=qeT9)jC`hM)|ar!@n6udeJ21`qrr#ExGI0nS$qB*u= z@Gw^N8);Vo!{mT~U)SR0yQwJal%a~J9)C%!%km5mvieLJS#d`C2jU*L)=8gA(TOhe z2t2oZDI(XUm7Qd1%vT6=hCsjn()xz#zh4p&<<Pmdsdv__7WGDb;8Bjw&rw~x1}r7{ zh3Keo8@(<O=q5|AWXH7>5xBfM@{a{W|Eo1$Pwp!FL<NOro4mU$-yeSB2S02VHaa^b zjUZ0>5e`*h4=XjaXoyVdptEOPk*M*y#KfG@EE9KUo!s>-|MxhC$Czfy_37SB&0yk% zRz-UMf2$;LaQ6kCtNzVYJPL|9M*QOg6W*LJBZMf%#odEmAe7TLWSeC#C*E$870<Hl z6OP@f{G$QHFeXo3R(0i7FWc?DVEb53^?fFn&wu@4MrhR<3C<qCApL9<h1&<m!Ktns z7}fEOdBbY0nU!{BgZUm1%lrnW;o{>2?wuEmja%p1{rHu6#14)C?aql0SEV8pNO|lF zbZ5?#z$fTStR-{4ggXvQaDzwdi~)?YIID{2JPZKV;X(w2sa`aVV-bM_@@MDpMX;B) zU%MopWehc7s4q&?=K19^{Ul)<kx~<ze+frQJ*jukZ+}oSvWLGgO=tI?OUd?s4>k+I z&}2TpO;2CwRBRFkYBYq9!Wu*jAw#*VK_^WIE8FK3YT%Gdt@t&<A8Ch|kV1jsbQ0o2 zF2qo8-wwlk#zkiale}BYD+_FmtF{D^lc^;u<8WPNcDGGEjaQ>0j)1FeUr`odQCF^f z#abfyG-GYffgN`dF;?F0L7e_R;y<0LEOf+@`3hSISQ;R8y`(9-+05KKfoeee%rfp+ zGmVW~(0JfvO5IIXcQf?UHA|1F^_)s*ts<JQsJ#d1{Wp}qN0LT4+{qN?(?a3;&y8l5 z-^r`0WU7jV)81ltfx|tw#GkDqKNzG||Lq^hmB5LUAk#dt;=;j)*}}rb^@Z_@YEu)` z6Y3jD;lUAYe$&5f3xqA_AR--;oRfSKhfdx9gRGzX-D+fK?>KgNgk799x3E!`2zNhK z#<JICn`yDU&Y^Q2XG*1xrff%Z=|WO9%PEjNmfInjSj*h-#!(AbW2yswdR~kE??-9f zL2DHXan2fM?aiG-<98ZtXfId46t1-CZ!D@x5<V{zjS;+bNb5UtjI2whGeA`;jBhQp z$BB^(!e!JP`|fL4f7*D|QM35(rbN{Zxl9;Lm3waH(m6$}xd?~-HwPN=cG6QnDwP}M zjk-p^*<#&r`OZ8XmZgZFHxF(+`1ZHYwLD1y&&tYN3tPPtIITZ5M43vA))_?ddq19r z39oFwM`+MzcdCBx2+W=ho(;*M^hOpG=!s+2Q%ULP-BZ&l(dyK;XMpeO1Wf3Ldw}^U zxxCm~MFo?3z1%>mkaUa(`8;)d`~2Roc6#)**L1g+^K->i-sUAW2Mw8FO$kh<vFW() zb)l=_1$_OakyhVOv<I)=*rbwEq24HGcZ_<IcJcjM&nvMohV;c#UcX6#r6B?Fv_0=@ z;juC|iQBu3UT8h7tpjHEZ36#cnop_wdT`EOtwbVq^7Z5n{&TtRNW(t1Bd4I?KVxza z|86-n@4P)tTi*SNu!pzIEMI%vqfcT+8dz6bXLRZ(^-my?;(QeVE@IDI#3&|83{k!j zRQf*)Wv2@ysw8IJo*8-@zR{!JK2UJOAy6lm4%E=WHt44cn;9qV=r3@@3BkadS(rg{ z=r+dQ680_mDBq}S2SB(6Ob^rVf;Y=OCevS4*w_WLPgfdC3(1mC!<*<HU85g^rvALf zTd5;kNULUj7RVNYrX-cW>SZ6G8d3L{Gw+7A2_?fZ>w9xnoV2QtsL>2!>*i5HUGR@9 z&le=Lr^~&>hLoH5Rg(2Czes}#6*jcn%CMEz&D3AD(9f37QM678&T+I<pnm%lVGBfn zBe$NJfQqy!E&b=n{w%#4;_mm}c90;ZLsk9;og9JO4CVuqW8rd&2HBKP(^p$<h2G9A zl$>{e<O9~1aHDYLwkPj!$NKLYCF5!2@m&ob<V!>qOHN>OY99w^VzO(WshhZ~g-9KA zBbKP}ob{?(jM}=E6d#MWcbO`Xh*XmaNsX{|tsp!%;<zD#$8)`QcPMxT3mq6lptw&# zvu1a0)QCAgaV^yGxJkN9TqVe(tq--5zzv#NBPA^6WBarY`By;dXMTCh=Pro<(_T18 zO73!~D$#x-I>?!}J+s?}kN0dh1ji$TGw!92!Z|71>}krPvRn__A%8(;;+tqSk(m&Q zGnER%DE{fv5`&jlUWjAUJ&8}3Ikkmx<xDa^e{Gm1^YjUBz~A<DqxM3YrV*mX($c*} zYje&Y(rD~3hZplyCw#w&nuG-ZVH(8HD_FuE>pS;T$ODz!4VkrL{3OtShZ8aYR~43j zz3|-plb;TXh`qRxDdQp^6H2o1BxpwMHXV8Xvvl_D%5T=IB>jiGwcRd{SQfcLAJl;u z4@uT&qvGes`80&MB)u!Cs_o00>t@~0R=@CJZ)!dEn`f)f$def>)N%X)ZKcmExW*<} znku0-m2rmqT6p;-LNpEKzIFeS@sBF8{p`#@Q+@k*<=K8rmE(eSr0=f>H$wlEt?xxg z4e01@ctfRYxZ}|>e@QC8c$2<ksxYue+|32)xAUk%BX5g1`qy-h<qXGjih?Vq(DL)e znvek)sorPbp;kosmvadI1-P0Wm#DL<dgf6d8pDN}K5#AFS|SO%{z~u09rZ@@u}PFQ zBg1%uD_-rx<2UVePB)wur(yJ-pi4_p0*}y`F#X+}s|VeXL0-^U>oxt(Lmn?m^2$ny z>bL+>woGH9%#|v>ftYh&kWvW_6O*fFu*kGMN>f$+?)Af~<SBcV6+cVn%^dSf+ui%V z@FUR$^1rHAw)7r0vh8_27J?bSWx95lWr#0~!LNL)tGk1;`wldxQMd#n-OE8{A8MJV zw>^SJ;Wa#fvC#;fIrqOWSi1Usy6lAFZouGk3iAI!RwdzIKq5+Q3Dfzc>j&xt^qxe6 zu8&5o=Zf>5DLbrWU=qMp=3N9jQ&`U}NL~4uww*rr=2B2K!$3RoRiA<42E!lT57%3E zFTJ8?d5BT+$Y=`-uC5>=A@V^2PQKBpG5*Dot7kD0s2X8@tsGPtNX5?iyz3mkaqS3? zhR4+$ioi6<>lxTZ_waisM{7-W%3oCPP#E{M_d;`&kLf!jg8mCK9+`9TA-U}rG3W3q z!139ArTBAcp(m^9?=6yMg<jF92WR6~HLMcGZ}aLu=06GK=sFPewyolz634oPWGX_Q zwUbqNXdpxDbwBR>529FThomrGyBVT&{_(6Mg1x@QY!i1w(W>{+ll_nKYFC;=#oBup zp7OhwjEMgFkezBcCz0fCLkWSAjXJOSHC0bXt-Kt8{seV3Mp6qowJ*17e&btre0x{E zEsuS*xoHy2f#uA!RXWU`t1~cPD2C%64TF|B+DFH8^H-4^e18z_l_32}UaksRY^V=f zyw2@+G+_3_vnhM_4`s8dhV0Ex1wFx22Bs#iBB}kBBvu&yxL>PdMlSeBW%`G@S}WE^ zepaEkvtNB{vu+t&%QGB(R_UF>okL2*9p=f{GC3~r19nA0n5c3wCjPqe<6@^9?P4vh z6}e4v@7xOtkW6&i-0y7lF2CoCK^l?58-;F%rSX{8%g(8_e90H`Kf3#6{P!1b-?C8@ ztfSfb%uPw6N;b!EHA^8o^Lj!iO`>ojLW~PWx+GFCZ<iP!BIS8CE!#Ts`pS^hS3wz1 zR4UPs*Z%gy-lE#~zP>H(3cJiD5~=OF@x{qxB68o6ZbPGt1+n2QWG@ECzGrE)A$S+s z-u*7ce=g@aeqp_M)sAREf`gW|axa`IV=4|wW0g8G4f9B9x$Hz_$xdpdGe%NOxLoh7 zbw#V{G;0}aUstYCOc`cYI5%k-oL^m5nC=I<;gOlJXbL^{GS=(AunV1AfvKdgNE?tz z!pKa|jXVL-UxG3M){Du+M!XByL%GVk9Z9y~%3jVDi7ts(eOO&hH|VZoR@){fBfOoY z3yq?KfBh<`LnoQCnFzF_>7e<A<q3q;-1G_$<9%Tot|gf(XAGDF+^K1DnOWUI=JKsl zrnnW=AZ>?DdF_@qoLALGO|G(HkzCA3iam+w+<YS_UU8UR4R;@*t$xzQ$iI_XTkL<u z&g2Kn_dwe+5FIZ-hyDi<j(BJ_QGHT)<5XGqegqAJlZnWa;IJ+J(mfOLst;(Ch<$R{ zHC@i7<}Y8cZ9Tths37D;dk2_$slOSuUT#CaQtvHDchdI98rRonFRu-hWgV_<oW3o5 zxxFmlM`JS8ymcq{u~4f-bx=oB0#$C^v)rsP;kl%-UuHjgKG($KUvNi6NnkK?<*%?` zROzOB=1|x{G6--QPI13hS}G6|6|}qhDr#yi0s`iDB83kPt4B)Tv$c`Wt+pi`ZY~zZ zS^70hy39@8%~vZFF`h$C%+7giaK90^k^NKR{d2*b5sq5U`d$-O&|@To9{=o?K=ta) z<=HGA+p*Dy^DG+=Ee8SNwhu?q5Nwzu%r~%}e$ED~XAlA+Ls4(JBcw8_IL_m$t-3E` zRPDqc-B+Y_3?sw8@R(LQ-a<iCqOq$G@!5eVK0_%+I)^(NAM<uB?z$&xYc{+bF>qMt z^s|<(lR)K?oJT81o3etxar5-?e~u=|Q4b%tcMiR%dvFJ<Jb#;<lvjgob@6-y1VUI< zjRV%EMp7V`_Cvp#<f85HdxWx3dd8tPq!D7TkmDEzHNh_u1f6WWsfmo6J-b$P`f8sx zOu;s+mkAdL*q_0rXov<f5&E0^+~_2dkT9#5PM(=v$+`Q$x=OfwNB4}7I-M?{n5AXk zcv+%|FB9ve0J+6#%<k;Gg5V|&BXlMmRd7DrbwBQuZ-3e!oW@EBP>o>??;!+hec<1r zpb-EA@(cl(I^f<_PC880NXCN2G5q-t8tY6>x7uPr1HKbIp|@}(0i+4xt^Q$Q@`lsO z&Wrmw3Y|4hxZ$xy$fmt!BgKfsk4LX(!W%Bca0WhT=BQX_T!{44GwxLdov8c;H&7-# z!8L=c#N#@I0$=jN#yKHvj%1e46F9dA#ma}!3q83*GE3VCKFe;gGnzusIEWBsKOAE+ z)MX^!ztPq=%jQmM&#=dLLBSoIFP|apHJz1PzWu89c5^I`3k3#+TPI{B9t*1%$|cMT zW(X$ps#RZm4<cMbiGY3ZB|pP_o6NdA{hP~!H8jL5-U#C$c;yUQbvDb2Ue!D{H281J z){T?$0_E`=CUP2rE`z=1{8z7`8FfJh>08%6=+S`?7b!<RBu(3gmO0|`r**PUz|$Lk zf3rj0#6HrCk$_vxEj(*};Z7QW{{U9>?t9%#;mF&{3PqIGvm{<~gNRwzfmrE_><!K= zV1#8jLpRy{rCxpTumn*yza6u>3KQY3nS(W!o0hdSYBTh%<rYcZ(N%_#@>LRGAq{yG zr+3v78kSXgLoj##wpuPM9Cgw8=~0UAjNx-2DS{uEBN*g%Tgr`^<|T%0?9U|<Jd_ZV zD^CyeT9=4eINqkWevTGW+`ZAhYRyY9v+TYhOf}Z6rp!=W3p8*RDuh{Z-o{e!l__NO zE1sPK^S-IOKYsO=GMd9yX5)=Qa(dA@6yz0ln=y@S!dVf~O6wRG0%S6ObIv&LN&M|{ z8>?+(18%(c-G$ZwZ0UzeNPwQV#VeOk>k%r`E-aIZMj!Q%y6c6!VMa*bfC-r#4G;Iz z+3AVPb2daH!z12QGe`^8M8#D)=rkTk*lw0)=Bg;D*54~Bt(Kd{7`HK*TfHkOzf46c z)6R#um>qqoG)<PhZpmpk<UQ?qH#LnK+u@}>XDVa=fG7&y?Qa}PrPqCWYos%~jL=N? z;9u;)n{CN0FIRt4yeE$QuKYkw(mx_o6<BwnC$4IeU!vr#srDC7@=xRqqZfz~vzv29 z3tvf^y26=lKlm}GQO8Jh8`lAJ2miCnv1*D_7Zk`Wx)4$j8tP3~HUP*90Kkaa8*xH9 z1M}<<xZ8!vL{vTJz^-!D(A{~EjGDW!T&?KE(Z@P7NNYwTbU;}K*f>dqg%o54nLX6@ zVGoLMxXeXhQi*VHOZ|(fjR<6N8>LjT{>}hrsBrQ%Le?T)Tp-%d#{AkD4Bt0TNSu_h z?TwW^Ou3`pI!h#6B{(QdR9|KIPf~a04-wEe2jGP)Xqu+h+57$bv;6*@n1OO_?b`#C zrIb-+{Ez(n3Ej2;w!QB7*1N+C<Lz2x>gK|%PIo0IX~$9IN8(JB5$PVm%}5F*RfxyU zZakS9y8QCJ!R;oLq&M_-=EzX)F*(Q*futn88C2nUs;Zo4N{gh9&b@U_X6fYj6o5tn z2CZqedHwcGx8*3+AC&@$K!I-9h=CZ6CfS~_7{M_gH?F$r307C<d35p{il@^cOpL){ z81?o-+Ei7<O)`<Km2QiZp=|E}NVXCP&cVp9c=5k7|3qX}<!+b{SFK*Y3^9bRy}f5m zvkb&cz_Qzm(dC`lWm3#s027_VDVP5GzZcq<gkNkGC9TU2l7@+-=}~2o5Wej=g1a)a zm^Rh{MB-<e{MYIqQ#$37r7C$Su8lE>62`H0?c;CGlppeUucy+fUNXNvYP~vSW<&dE ziap*>(9$ROkXfB1O&4sLj6VNrMF}V;I|AtsgIqXftU1T%9ScgDhD<6ZVfv|2mM;2S zT?G2A!bOE)@JGbX>v(OI2qQ((77H^2I=Rby9iAR9HAFKx7b;X*O35f8<nzLRCjgo? zPX2d^BUDbq*1IHCe4TN=)Iyi{<rqXI_aSIWvU=&TkKjZM#BM3)db{vyF_>^SR~dVW zFq`SwMVIN36hTeH_z1{%*^TlmfP^Xb?uNq^J2uM67b5){L+|-l0NWaDjwA^Y?MdQX z2s4ax;^#J=Z4>d29XypgN{!h#$EB8egv-v$<ip>SPSB_gyl}2uQ+A`(+S)vK0lW?Y zKIp8Yo^@M?+1Cb=qb)b`Nt`cI>jgg+S}TY%3<U37tFUUhnl)Z_mn?eK792u+z`m}J zrc{;4)@kxt+;P#g`JSb}zct5aRLn+7*dZLx>uB?$>Jw(p8_??O=fA-_8Zp7$mKTC) zxXvL>;Ic+oa;$CL^7<Ye^&hZTJS_e4TZdu*&>2vBN?1STT@E>4rRFXDiRZOtwa*h| z(|L_(-#Sx?8e|qR1rmIA!CMdCpfBFE(aLSQeBicN?ru(Vl_uJ6czAGm<+mD8C=R3+ zO*IavBG$!aR38JU@Sl{VqgI(vq+U}Kcfbi@hYqnU+^;f49Sbu{B<D2VHMfgbB<z9w zAC{rIM5zbMN1#a2<A0ECFsN;=lCL2U^|e8gNKyP%&?hPYWs)cF`~ZX^Sm<Iw<Owx3 zeXV(#s<Y>-Fm6NxA2|PRXL^UHOq_7T8{S`dA)gBBM0mJC5Vrk<i^lGP{=%b;4*oRH zn`7eNfQ3)2eOT^$Kl@^Bo3`yLON(3`M<Oe;5(V=OGKfy{p@$*>Y=8Hg@t9{C>8TVv z(tqY&Mowy*Q8#Z=<&nz4*lZt<gS$l<QQ&Z~ZQI|jc(R~3T&`?my&MoC%(BR`d+;@* z&6QN~0#GAV`<3eQw!^3}XBb)HxpMsviv-;IHV|#AO3Qmg`Qyn$WZ!|wLpY&&$Fy<> zYd1{l{5RzA61=Xr9bbU`=vZqW<CrgEs>F@u7i(99YT#EE?}&waB@`NR#g|ZN^DQN? ztbSPYH;R8}AY3MHf_sUtNmnO9RJJpkgfGP2Ja~QTiA_R2?8~nq_x~pxC3SclRkt}6 zwX0J4-Y#uX?oeRuS*}X1sYnX)bkxm7gR>J?GDw3V{hB(#Z(WbS`<+tF0_y()w#%Kz z|9unfm{Xo-_~AvBbz)@#<&>cqZ+33UTZL!WQTqdmK(;Y*uAh&kP$EQ6+pd&BQrqF4 z3M+5LDz*<2@NfNVyZ&StqP?E=l`T)_^Rdll$+Z_;`aDw)cuT^#b;%?Z6|TdsWNQQ* z9_t3MxFgcB(=yalTR^R{!uLmwRc;n2kA;`^_d=WZfPKXRigFrsaXvEq+_sN*the6# z54YD@FJDWU<BgF2&Gp(oz8=P!%q$#GedM#U{SRc*fiFh)N59dK+^QwP=T7}wCDb2< zNb^{d+K<gS$a-BTj>_#5w!Tob>zU4cCLxB+@t!swmfa|zDo}XJR5`o$qi$rz=MtV^ zwJ&JaEwzk@X71eodn>m!v*`TJ_fT3Q{6MrG{vFtJTVV^ol$b`1j8nNw<nu*TTvQI; z6YCms*FE;<XiCA5t`K0e;>_1I>Tg97Ee;D|6kFvvslN$s<Mo!;;Zl|JQY=x=cyAdW ztf#lo?t=L-Ycj1lWW)PN!8tT(o==k<OR>7LjVI8;jMvg)y%G8<u6m>f{K7X$awsX- zaU_9+U{fBWD9J$nTkuND?AjZSd<JddV?!|wXc^7I0AL4#-)h{oW4QZR$1=_99d)XM z3CmuI!w*}_I=we;?X()ED<)Ay1Y%6)FiX0ROIbF$D3ZQNy5vY0Y*H-Iv~{v|Bo%ig z1vvP9;eQBmkcM?5_X;isP6+3+TSKH}l*HJlPjFc7L7<s}r8_c1UOimbAW05{t3&{g zTFPajwwZ)rH<Y^bPoj%6B~nE7Q%l~tyg0XLRzxl-9wL0s@b+hYT&3#Orb)l_5ziuY zK`kybk6PI_+&kF1IEiEK=A?}=DMXBKGQ!i9r1ERBl51W;nTj{oV%EW$RidBO9WW=M zj?xS#z@7G|dn*e>PPII|bt`bDf*i>v*(Ujl>Y;v`4ol(_uk|;HSCkg*1bNM1B-2)3 zEzqz_M`3BaZ}ht94#$5rDGG^sHJtQaGx_;sdwbH|APb3-Wl3SSGzg179Q31-P<wGS znNh;i`-TJN#WNo~P{hltTW%<Qw8SKAk~bV$>U+0{NI3eBM*2C!$pU^yx}2i{=H$M( zTqZ*GeG4l6Y`1sC$i_JR-HUx?)Y0*k+v_tT6Z89qJuerRyw@iU!oEJGG3O}v`7!kh zwN%pBp+o&Xj>c&l*H_d>@-;z&Sj=l?xI69I!Rn=h%{@XGK5sMo8#P&oL7n;&?5ex( zWDkFFTOqLb2=b2&z)-hQ=OEsyB$RWQOrZ0b;M)_pm5Z_`W|+FW$wXaxmXAFOezXj1 zK3-arGEQe9Sr8KZrTT3~zwjy2StdNh<q^o3l}hUu=)G|`yHo!?1W_IL5av`lzaM)1 z%V%zZ3Q{%kb)GdOLpq+vh$yBH5{Ei7>JA>Ql5@G+<pYo2jC<dNi)6S+t1~BGIyi*i z)lPu^>H~nbBUXD?ny#M>$S=8`;1&tNe85>`RK<rgXn9{HVIK~Oaz>xgL)d@L0kUBN zc(Ip1`MQotw*8OTE{a-+4DwgNyIB)R`==A9^WYm@5~Vn<{R;}poM6Hpz8^kxq1tZE z2{0e{k<h`#56*#e7)o8#DVgtyCSSR$-CKBp=qZ^61!|m~!z;<R{|8~cAntJKx$qhW zf@FhMBfcF%(1zPeCo{6Nkn~ihdrXhZ6BjOt)kko8TlvsrMm^{0Z0q|HA>Hw=c(QHl zerw=f2I>A}RzLhjS=8)`nQzZHeN?sb!j{XkYH=~7w`*m1hH-(sP1zf3j{ZYd2(#vw zn1~nJ!K0$jzy7l-cKG>`bvC0Fq2DCbku+V9Eu`j{y*{;wa>E3E!Ah2smV~RMN?HWB z6d$|`r1^q4)Yq`&i)CmjcOJVO%7pfjZ&|!EsV}yrC-f6K5`N9$*SE$)wV4|;W~Q@# zcish|qD$-1t@0s)#jaJ=UAVGS<24&&8{aZ^&Yq=IrN0<C*Fho~qB^+${%JTxl+y3K z&qJeVjXtl>RspoU*ZaIZT8Iq&Trd52b$w<X;}u;Q!|aY`<l}!{cfu|gpPfq@I}6I; z&bsV6G?Y=a8Ksi$5b~FDO80d4IHx-+bze2Np8B&}Sl9?&QA^A7!n%p-4>t+83NHOI zjBdv*|5_ufQKZkRYq?{|5%1W_r<QbOt71_#CU5w+{>`72VV?19X6%kenFXHQZFILi zX>N~=4y`-;k(ZNZda^0Fh<>bFT6VM>c;IbL9Hh^8Qi^_s_1w}gX|68u6f2BXQiR@B z?OqdGN0rHbkSwWI_Ol<Bu6Cjgkxg9K=Jam4K{Qqbb!u2&c{*aJr>ZKFy5v(^JfojA zJzUNH!1qe(-BAwoNb$P><!y*{q@<+p;n8os_Y?_tPQHKIe|j356r;y!aXD|{Rc{dj z30h^&yp=XIblAQw91^I-bbzI<;z?{v5Z?0%0J{{)%7KNA`ifkxhb6WyEn=-Ogi^?e zqVAA;_f7R2Y^mHMY}|~nZ_fZb{E*^n<c8E0tLIw|A0tvMn?nQh$XU+tk%D`(2$*yx zg9<NY6V%A)B;s0o_Ta&mL-((}6}xS2UHTUXIe`PF6~t^7CJ}V{Se=qILbCz}6b?V( z>Z{LSV!p@WE}myKQB0p_q9QXUc{`)F&~AS{pYQ1GwC_$x!nKz}tFlV8KmFboUQQS^ zLAy1FQ6o(`!}TTfKDA89HS{;Kb@JP%h4u9?LqJuNci(>Z2D$DAgWs;|57L&Qx8h!( zFWsNi&(uLLh9iVCw3RAeZOFh(S105Qt`?<#;~ai3oM1NF0aWM3e8k+%l*bY!P2C>6 zk2Gm|Ds%%e!EH@^?e`d$g<ai2%(wjiW9hmBq5j|a*-9cAnOFAKu*2DV@2!-|9?`JQ zD2g~EgtGVEtE>=Ba>t26oN{M#XB@8I`+R?Y`rz|<@Avb(p6B&?it^dAW<ImllwRG( zdfhg!`Koi~bh;jo@4<~FIGX76YuV5ou%Qj#tvLs?Iz8pyF|s*jBWmY7Y-|Gh46Rq7 zo4LFB4^oY+4YtKa$gvbys+!z6wsk{2mM8W6T8RisC?Ck4mb;X?#Hkle;Kn-E%8mv` zDtaTZWQUL;+sl3AtDjnYlDvE)$kP1JjHhr~NL_IBYT&SZm&(F8H8aUFfc;RvD>BzJ z+damB`3DKIDRDj}o@XO<v*L2&gntD)$3I9oFi?UIm#vRNlU^N5ja~$RKL}g^Q|4Fr zJCG?WCXn(N>>vSP=R09HT*7K_(lVq0VxlV<xWJleStH$XVua;K7gOU9lNP!y{OI<R z8fqmgUiNqf%G%PX2`pX4nAzmtmEo>xT2Kwkt2(J$c%DwjkFLT##iVx%UcZ*Lk8o7I zJS;P9BiN&P#!7>~wX@^px#7cgy<U+)<xQ;BtJkOQ*hrN6G1sMgh*(1Fc|gob&k0A( z5|4<IZtH&j7qQn1hDA|FR4`8lPaOy+Y@DPi;E?MTxEmb0X&k5aTM}1Z#JcN@kg^&D zb~dyrMML*=VMXofciP_NdW&34>-90%1!~&&&G)PF#0HAF5e%*Z$F%ujtP9F}PB!6+ zv*-QYl6n1Y9L&A0UJyTBTj(Oun`Xf6XRFF4+r+1IPuoN9H`s!C$OZ!@-m`t-8E;=k z4vbqv*v&NIH_7W<H<(h2K+T;9w*ZuqV?Wj231aBeca7DNX_0O6jZh2HhglSrh3gyI zcgjhQ2ImTnVm^~Ppqh*u!(IA;rd7kAs}c`{Iz9KGLF>=3TpZ=^rLRNMv}v<(S5Sr$ zw>=dZ%WQAc{*8jDgq?N$gb417<ca*2rnIrlC&wT2jD83wd{<n(H_5E@w*ThB0zi}r z-KBTOTA=4}W$KkXssTf}FSor?l&<n>01--)n3<Ke<n){ayu__b3}>!t$}%&EFRO2* zNp@wc1L$MT*}Rf>p#;BOtGI<VGN7U%<{8{knf<#>4sAU>t}cq!8vpi&{URL_TTV8N z`BZ1>LqP22<}l0>HVI-0Zl1(B7xCsF=GU$<R~4t3^h5!@%&m3IQ#M7alJ1dT5`ix- zTRN0mNPa7}TRM;PDP9Hza`HVmw4M1jo&@l@d4j|u<3^d}*Civ`S@t6x^9?jvh-JE_ z_IFROYh1t<;gpB;Tv)6nWHXs6?Yl|wJN2_`>%Y%aI%f2*c;UDahW9X9g%id6d*;bc z@*<<C4t4_spZBoS_NwKhdb*Wj!<?3NKqd7&aQlBO?5XlSu2Tf9j@r9{38}qR^F3Qt zBf5QzJHl+=ZTi`4(Hnc__r*2jefxmv=-v*T0Q{_w(HO}`R545#Xg`#Et7Ds-ea`x5 ziFf6j2kGBBfFSyIQ)`PutIw)>>mPU1=H}l`*mq3u@!<^h<obxHE-J4}xOJ&@A+F$Z zcN7s+B9BmN%WVl9(mQ{se6Re;)H3g<5P5WE{~h@}@4HrQv!hlhOOFNutErgy&3uAV zX(o=Bd*XZr%>~Mmu!!3s>E?p4`g}Xvizps~-f{8PVk7Cw25vQTn)A%=XvLjSl~%Q@ zWrmKgwQD>stky~jZAe|l8)`sJyuG8S+1sCs<K|~?71J-BRf~{rd$88$?-(d7UnsV1 zy(O7_M)F%(-76-eQM$3OG^1tKv}lSb@59S>dTdx+<>L67C*;p3^!(PaNQ(6#I(}yb zRsZAr@c#Gh^2hk0I|_bwBZr7vIyUqO8n^4&TMe9_jrgbpB=TGR43gz(`PDV61NwQt z=IGB}y;;39hR*7&T7M7y^^k5b`YFU;{6I`a&DGWI&hQ(p=`dJ(TbxM98c)k(FT;Wc zjM!@_wOi+0s*PW*&Z<7YCrpJU=<$`@p(UYp2S3Pd?JO5zFL9jpZOG`uL+@s3%P5>n zl*mdn&8NL3!k16D<Xr+RLSKK6pk$c9cjkd}W6<0We&Po~_kD>uX42f(RsA=o6Ra~0 zyHYiqExT0)V{7E1UZj-miEOQ9Aosi4jTl?^CN9|D{>VR^{<th0B&ph0^Tb+Ru<5`z z3dH&choCp{3zx07v1>k1Ep8AI#QCU}i|g^_4@l{mqFQjK1%=O)J25z(pY{>(g&sVG zaBRIDE7k+y&5n`lQ)q34mIL?H?I@y>t?Ut@C*5iKwBSdd7p*?jNUhv-IycLNvU?Rf zFNv3|6mZ&dr#RhV7(W>*q|d$n;aX)^jg~87_d~yb#pg8M^n;_)*FO$`kDtxGiUO+A z8E0e@wu+F|F)pPKLT){f96Z*;H|#}Lw3a_Kf$COJr}bl8xDGBwIOi|Z@2%H<e~taY z;LAa6FKycralsjj*oH4Cl1ro+2Y(+I`v++`>SE(;bxJ#R(^t@;ckno(gNDu+UbZZ} zu9A3bmv6a(4`#zP9?MTlwf<M10Wz1ug@d#2g+Keq>l{q4l|9ETpUeGn@H=Wr{s`5Q zV!Kv@e8#TDL(kRjyJYW37l^w&a{4?71Qy(Nv=Trb0fHJq@5X#PE&9tam)&Ae(5*79 zXP=P~rMDi#J$rui-z#MZ^5;&!8ALaxRBI0vKqu?zyzdE*5Nv9hz+XNs>A5X95xg~$ z<>!z(1%ggQruwEInyF^CKrXq{<!gHZi@^FB6{+1L3A_F;iRT0%CFy|K9_$H80~gY2 z&vpMdrBg1~8n4X=Y{b!KF|p5DkBqg_7>DdL?eV6)82WVec}9W(H`|TKc513eoVTC4 zC|c$>*E4GrE_>~6IIfUgppVf1>KHVUT_^Gb!~pvP3d_qj{sAudQ2hzu2qyqqMt#V6 zt|4<4D%pl+QJ9mCP*P9t2@zrX{axFw2GLbIn)g`3V+v5Co$M#44kfa{&2YD=mdnuW z-QY$C4vXn#)zd2R8o8>d7k;Z>IfXu?lfw+-X)kB<*jszuFZmykYYX@sguF}-%g6ff z%Ks(9f9MQlF9d;Nf7`?z_}AcI8;qbM4jiw57rFrc`U=P?AUo;aA8+U!bF`1S{)3QR zDihP2>OQkii2+3eWT%Gw7oEiDQR;t?ZU#4yU@!%51HENXqJEol&h}{2aW3ug2?E{2 z>@Q^%>0c0OW4AJj0q*s$n~xve@vn}%0U=U_kw=KyBw!c9R6r^?Ns#eCkf>$Q_}Jma zl{>v;mB6sds|aTiqQNnI;KW&Dv?MKEaW8@ib$0yObJr(}m#jD1MO$i@FtJ``Gc}1m z9RY?GwSD?6tYqkd8EtW4<_+1EULyKLg9cp}SrZcI4i|pEcXX@={<Tz7jw&#$nj&D% z$&(oQ=!B*dS|I-6S&rrVPn1>lrIDFX)FA+C<S%ApBug%*J{M9K%1*AncSIh#_c2xi zs6pC{=ZgkhyOZm3Q-vJt?9Gwn7w5613MOAWFmYFfRVMCFelbJc4~RUOVH2B3>z}Dl zQikd|xvp%zdp7^pRTy#}cNC!nstteu*Os`H*^8=T(fAnI^eUq5Bq;8pQwKT~%w){z zbr<cO@SMOL65#<uo}_->h}1(ykAkTsyXVdx70G-&xF8LBCHD5eM21Z>(2_2_$L={r z?w?E3lx<90uSqcd>K?u*gPPrgkwbziNUM)#&tIw~Inba_i?t+Na*CQH##uzF<)2i> zE@ddzViddTs(8j#uXS48Y7jzXs%EMOuPtM3=b77%%=`~X*mI$QL}4mS6{##|QozY; zwnu*Xl|K`cFEcFHWbtENl(Y3x);C?=rv_UZDS-M(phLVh)(ADPvMRz=q`bQB?-9i4 zd9fJt+K)6FH$DuKSKW=8?g%;R9UJ7R^^Uc9g1=OGNdkwJsd|upQjXqRFaE_XKUH*B z@Qmz-@HY9^AGx}PALNyexjajt9@{uGa=}3#mcn=<&UdAzbUI+wT4Ak#n$mhEWgx%u zglDuY@vGu<MkT|g8!aurTjeG!Sa46^03@*VgU^B&Km0+@C|TjSBtBTGMN6%mND1n4 z12CT}n~=|yS{hlxjk_V~2ggK$J^pbB2&<I#&ME=LQm|<2T*0%YepnuS?mT%@PI6`~ z>r)xUNc9onCq2_X7gI-pxy0b#-?|E$1sn`?mv6L6q!y_fHMihLp0?(TLOv7<^7H>i zK}_D~sio$B1Wkj%%*eyvDdFPRCJx|;m0UOSP|G#{ioWPds!mqxMXvahakepN$|0hs zTJF*lP!3xx<N+Et=_5zd+dmOFe0gwhxl(>zI`8@I;QHFbzZF@UBjZCRCB;ubT?jVH zKa>0<(4@QXxo`hon9WI!%sS5OJwlLsFJA0fCeLO0X2SP<9J6x_oyf8QANW%ZRAWf_ zw)m?dmC^HT?$a19xE(AXrwDc11p9>QwRKD>qjU0Bt#V2*^}U(`8uwl|9IS%8W;Jx( ztJl4gUaN$DmX6U!hCx6Fz+-dCGX1Gz%1rh@yYfWnt_s+L*cCSGdn?$LbHCJn92LC( z<PpR=D~ifxnV%kxB@gmgqSjk)+&vqh<F!z+!eT&L+z|bHrCWi))V=vBlQ)ioNTT}- zI6TiD3h415)b5Dy@IP8ih)XFdDbJS-qI{ApTl;fn=j2e5%q^=Gxbj_xO=&E7NBMZd z=yFr$gb>ocUHHR1xg}Coye<*yRkeAB*^e0nSH~4!<Ow9@;z9oFZF?p#8-_(Ctx81k zmDHzoK=sS%_~t&jtET5H2OB>~>QCm>Nw#682hzb+aF)Cga4p4?{rY_T!HGW`2%*s! zfH0He@?#29_BS;gjIv4)W<UFy%tWmQ_XwV0fuw5kMEsNs^|;KMp<MU-W?TXL*)N-V zzCL}CItYN(JqJy+;}us4aQrl4kwrYub<7ALrCIXHII#A^!`ej)-|^B}Ig^yxA&_`d zB=M_quAZ6b>uiGneLr({;&%N$?Dt7T#`(L82m84Q->OM2b>Tq<5)5iY9sn(7CucTD zsL$)^IXA37c|pE?Y<yowyqG=d`|}q`>Qn@c1K3I)2w9-JY_0xOc)Zl~IKAd8^s?#- zY>I<;S>?Vz7$%j=$vWb{T|mUS5=hyB*T#ikWX>pi34t32#g-F(#f;GOfs$3=FLgs7 z^UJ5nzhHq#O4j<9rIF>sChx`9>h#u+A2F>AlaWEJjxL+~MY$0_c)>}`Sm=;NF!%O) zaN2qE;`5e&n0>z7;zAYMr+iYsNxo8J*OPnq)NE{7Xh+yNtRhU<YGnHOe}VusIg~s$ zYz{RKf}FOp!+7=z9FyJA8kJBzhGQTm3jXG#5~tjFYs~ekg9AIk8Ds$Zh+!JobLHf% zIWjbv>SO)94!vme{4WyE!vOBR8`j8r`Nqfyjp>zRDN^qOX>VdXehE!mnd%!%;~RDi zn~lsPAbrAzT@FGjZXQe1je#6OFeEsY)vBBlqzCQX0=$5KE|)3fPPr?8(HlW=8Tz}E zf;Pv)o>0w-?m6eShIT<FPzUHke?`5cmBqNF$!Ehd{poFlsK+DztPfjH6*T^c_Y>?R z==XZsk+fPea<|jC_giJ7*x2pIVrr~#A(xf?zs4ie$-^ygX=PyE_y}!SQ*wo=M4bBX zq*@l#h{~S~3%^8NsPNnn&t`jl{%&*r1<QWM__4V>_@Z@y{;-V{M%lNvB<ahylqiP~ z;lwn(i9}i=14(H<tk)LXY?4Dm#93Pm^~%%EZA6j}n9p}B1G^T@#mo8ZKWPd2&c9@u zVH5Yi0fx8@P#Yp(<0^h#C{ez=G+T(bIG+$Y?9C-3d!Qeh@3zT`{8e3MqSEy={qu_) ztJzFZ!Q`c1E^o4DVyaBK<=au`;iKJAkb)JLFizvIHVjimac@;yV$_}*$RFj0t^8CL zdYjf-y?55DvBuH)&CMojIqe4yKcvpo(2S)RCPFA0_y)%1Zr?e;KmArNQaD%CxD9Ie z-f?prwsJ5?D(g~6Hfw!ep5qZVg_S9M+99yA`hMs-=dp?MgR|6lL4U>pt=7QwKi;Pe zE+U4K3%4I(KBC2EmG!4+8(@{QlQwiI`nydIw$!M(6asd8;fia5ssH2kh>ylEAHPWd zs>P^L>8O7bRM#=puzt)=V@aeK&)K*+!XcRUTsY09_;ql~r;RvOA$%|1zZ6`y3aubV z7-SN)1t(Yk*jf39?%6JMG&#+(Jz^4<MK_`$Pec%o!RG(jOyOZwKW^X9FmCPaMz*K0 zjVmIk({e2-GK8Cck;O6O)2L$519O=0_>Fl(26YnOtNv!9X$B9p^gs2po$FST->vi# zU$AG^l>gM_H^_5(+L<aj**(J1&T$g#A0RB9UJS5CHN`l68~-Y2{A{`P+EhpRQy=yZ zXct|uN64qeQwn8E%g|PFFG&nDRca8u6lpk({Ozx8dmj{FPF7mUs9M9@4lZ*;7sp8Q zlp<|~fdr?Y<OX}&y378Sl`wpFii-DMRwomoSAl0+75wX1<1ohdp?FtD&L@p=`UNy7 zSle?HRv$8ZM}P5?FRmo0$jV83JRU+Jcq!&5L+=<vfD(D5o8`sj`F=fD+gMU{rDk;L zGJ-Gvyi%k-#yNlUFZp7<l*2Fg!KaVi<<@fWCMO&WG`an`9*H0RB0uur78VK6a_SS- z*}LSZbU$hJUR>+ysgqN3<wHsROWmRH27~jSDZ?QtK{XsW8ShGV@@*efomZ5H@b?h) zx?NHilNV}XXCjy~dIrTtt-W9|5>Q9ee-!qejTN^gpT+q7!;H&eOqQ4V<lP(f&R?%; zX*dcbC}lR4iMAM}N#|I~21(mxcK-Io>yJlWJ*CPw(5|w6`ts@bohoWB@_vz|H-fA) z*V#<c5)3VGf5Ff=n<FPaLW{)3uauT-xvqL3A2e|AWb$D<bXyPd-Lmx9-?DP47-55R ze%n4t-BGhS2;k-Taq;syPsxGvl8H`8h;_A)iSe%VZ#(0ARR!Wz(H=Swh5*%a{XD%1 z5x%6mKi7QL25nnT(?SmK@8)GUPc4;HFhTC~<tnyz+mU*64@<u|GU^#V@EyS2lDNcH zr|gq-dvR=6C5W*TC<2BVm3AvDR~_U%`PN%jUG{lMHbBDgTS}GT1$H~?ra}<r`PfRz zn{@opUp*EU*%@7Hcx6Z;IXO-$BlFUVt$JmIty5Q2zYl!z?vJTj(a;z66VI_`n5_@% z=P+AhO(K%J^EAZ6IY%77hl|di;^4I1@0g|?qJM?!9NGP{jKr3xJ63U-&ppfV2pB#T znq2^Aky$<2B(cC`4V0#};-r<DY5m|_kD#kkWd9`ifF=c-t)jQNs;+xP?8yY+>&XNI zH_z?(B<XchjBg+@A~N67_Gc>ikBSnYX2B{#UR;`QZmX}qpqc83RHYm65dH@lJKQ;M zNDP@5*P9tPw3}e2CT9Bw5`^b0yn`ajc)2dZvP_14WI9C}K~BxrrQQmnL(dY!bx#%c z12BO@*+9Qg1C?oN4ROPLg|E3D<*%$^<XjWhS!>GwBC`|6P94QW=4-;KfXKJsD;$5! zDN@#A{z-u|1FM_GW+J)&#m5?BN!<jdQS|W^`Ic2s@SfSEC*`jxz&3gpdVr~E23>C? z?nJ_dfyf5=CM{0UBafXc<(`w9O&^39zgzFWO9!6Vf4Y1WVFL1UFS?PPl^WeOctJNQ zlX5QczXEJeQOy2?KZ8!ma2N{g?G<`;ZgiL<DHT+{CdV&oAdwr$mHU1MM7|SYMa*aT zCK28U-O>WTEHiF34$vO?*-2f&!w~uS$Z00%GG%;eTYw6pB4D}IFJbL5r_WN|7xoXk zRGYrXFt97k9GI-me)KldsVGx6<irT?wNDOgjkdgj(ic;{#9Af&>^uq%F6YhpXkIIJ zi#oV9Xo!Ww*V6H#j~28-Aaxiy{W4R%SnJ$(?OpkxYp05Ar9Kp#KMeK%)zr41=Fo0$ z{3Xreb!62O?aSXe#{nAWMvGukNiF`k*yvu+sJ43d)f<l_Jz_@yRwc~#7Z2^kCG#Xl z#5K!P>x*f0`B~+rPDXN8O<sWnMXpfCM^{oMFE382vg*DFLOtbg7SDTZNv{GZ>@ArZ zGS9BU2hepjQXb9nFJy&8#gb%yn@I+j%(~QeJp3i8h|4iFHkB5mZbIJrTgl&MLj(Wp z;qCn*z*Yisf$Bbf7lXd~Nj6noRoS3z^@04^yH8)#=&@5#VN?*6_+kC7@KO_&ruRPd z5UQIch)*Pn-D%^k7knAczM1W}IazNVJ7A06irLu+xO%dBich+q62YA!9!GqyE4dYG z`lfwqwFr_yjYdM7%U+d)dR2(%5$I@FO$+?pt@9r7{fxOIN%0Y@w$|P!HB|wzim%sw zNRwBj7-}F~@l3w~n}TyS_EQIV6<CRFyP;3t#~*~8`6WIa@To^H-o8pfo-)TlQ0|;; zx^8NdHq}q)xTXkop3FhR-hEN3C3Kod$^**KrTEIEqLg7y{gO<FSp&Xrt83Wf<}e3! zz?T5Um2DXZYTsSei&3_HW@(?1i8E<w?QBP*U@C|0CU|tpaH+Et^&*mB!0M8USORvq z*~k$h6xdrXJRhdB3f>B|>qrupOfJ>gYIi26Gl3neZpJ}3t=D2X9j_@7d9yPaN}Uq; zcQ7PRG+{YG4z=Nt1O#-KC1H!M6Z}{gRc14>OwHj!_9PlPNoIDtdjj@9Qc+2ITOq=O zZip5C2iO9+5X;^#@tEwABE%x;OMRZoQyW+L-bU|xcQS=pX>?p+z9rx9{evh5f3_&a z=t73XB`DUOm#mF5xr(cgT8B8WEL%P`cqG;j#mQl)-du`|q97e2d>^hHgsh@#Qach( zF?Ix|`J1;Nc3M0J@*aD;e}AC6AaB`gzIJ+O2|v4$tZXR|A((n$J4J_7^N0+uJo!@R zw(&qm=>DUxHYUQ#$rXhcPc4tmj6kSUf<LI0Yy(~O1r>zrvh*9~xa>r_2WG6d#gt`M zBzwo0PU7!If7wN8ua?N>ELNm;Xhz3)X6gGA;wSgWNh2?$jAQEF2tk%B<HROc@D9Z+ z6|fabI`EsAUrXAxaWw+t?qbS`w6L~aKfQ}=?k2rd`Jts}>qP2<ZA+m`&C$L>xdtjR zR4(cwD?n=KyoH<cKS)-6h}3Ns?X7JCQ&okY;*o|UxZB?3oa;)SeEGV-y;rzQ77aRm zF01d}$%-I`3v7o!kBAX|1_Wn#1J!YFcZ@~_$OyhwM&AnHPhQVbNRYH<E){&Umydw% zij|FZ@P<rF_c_$)v%7?o7>~<t>H;hC>SSB1FaN?G<q@}&KHZ9c$cl@QxOHz$rU$!Z zEP)|)7>Xp?hXnve)|}ysC()C_NzO7!HtX-2J&$#NhDCO)L}-^wHkN@5Z!h+CyfT7( zqMBYY@|J;(&j+ZJim{{_k{-xU8oWV&ac7wB_^%y-2M*$Tp}-~@@cx_Sx$#2R-GEEk zIQO-#wFI?YTtPH-+1}EH;&kt*Uew{F29UmOdr7i8%=F1}e4sXyXY?^@_QKB>t_^kr zuZJ$Y`q1m-nqeRiW43=-#CWY?8<b44K7TZ9+&jFB*bKSL&VRIpCxQ(Dlr(tYJqyR) zm3Z9+9jLli;C|=$<K5M}tT^mInaNyU@${5r&tiT0u)&i-Ta3`HZ{;!U_imX_qFhZx zt0N8C+t!8bZ+SY!#Dt>a4Oj5E6p_Q44|W3C^{={JB3x{B+iW=)Eu608dGr!j)k#rd zv>yyongf+!p3ALjm(X0H3X^wJHS|1BXI;H4scv(LBefu`8H8M<--YFteiLA(kNU`0 zdYZER(44?4f&jW%8`ICyx__!FH!%%{6VHj=TU9@;Zcf3D&yA4r=H6Lzq;THCV)o<B z0tXulDEnM@A#gJg+6~)#xF7m((9E?<AU%>?8MuCb&#&?yL=G-PINO-#d&3M5aovNO z?J6wJK<BZfm#nOwhGh<{va9b{{2D7sBLYWsB0s`+vM+a-!~G9=FWsT3c&Gewo87Wa z$gG5+b;i6M;vA+uYV{(-b`iy4nf!UU98q5aHv)A7Mg*z#HL#bsOq757uLJ@ucl}*- zR)jKo22}wvrcEy}a61R$!I?XCelT!l&fnDfKzxd+=#ID|{jg&cjFL2=_b`xi%{@|2 zpj^8Kh}G`UE~eO9YsN2A38Y*go#L69-fx$eD${}9!}X(%x~#0$!@c>3RL&zSAVHN^ zDd8d}wWOKp)-FR7DtP{4ME7;gsZVqJryS0CyJ<Es0(>Fa(xG#=QJN-9U)5eed_Uyl za+yXTa76eLt0`gffJ~q7rCk*eIDwNeElyUXoFvZ0$nF4)zuW72=$r#Nm^j~40=KQm z=Donpc3Z)g4$u*LX87NQ_YO>slrd?_QZaRUs?9dhm#3cJ<Ij6vB;c#2UvjKF7e|Ni z*6a`N5(GIk)#&m-{xLlFI$v8h1CRCPCDC&E%(POmFI#~`4;JZc%MWP4K(IL2wYcAE z!a3n*B(nou4Sq8(5T~b2*V{uEl7B1fi}}JzsDGotHS2};o{!O2P^}JE!=K&X&xw#F zSX|#+JC|S);h3+lIr8?Wqz;c)L0=^G0c6&O@KsfLGv`rHWE4QhKUaPJmFt9o>R?Qv zEf0*}4%5D9{JxR&D$lMeT9v;LYm(+C?I4*fNg??2@K?Oj+BL(r>(7Y{nZH>v()Dhq zeRMAKRrL`o6juT^*pnBy({7}YI11{CcKgoZ{q-Zk8!<ok8NZtf4q~W`3S?W-YfzlZ ze!;j<@q)Cv%=ydI&H?(E#Ed5~6&g@UAc0YQGp~kW!3@4`T0Q${HBY#ztLmK@<$5@; zZ-k4rYErC&=2u<*2lk7Vr5u^3c%K_cj!4?`R@kudsxH3eLaV{mYCb>8dE71^T7__% zy1n9dCFwDQQ5Yt5VdVQraNs8cck9#u-_;(E^_xrM@S!mgt7OO3%sbDkyhJewvDi=j zsw$&r5?rC@DL?59(1>eLhZ&jv(yPW-4T`bY4Gb3xSS#@l*t1-L8HH_!yFA*&qN=j7 zLv@_5y`Zjk=9uHhe0x`8T5)4bh#$x$US&=OmpW#tS3k@SZF)-b%UibU7qE7pOWCge z=m1JB@Obp`-r-DlSV{i9^s{5h79|(<*ndb>G?<r5M}I2>N&eV%>~L8bX><qro0pM; zVtSC-rItV{LDY{g&U7n{iv+bc;Uixv6g^O0rz^>?Ke7T5hkKT<u!{B(Lz-u;QK7ce zItk|@B=Er2UoSr4LE2Il^KzPIhpic8?jo~lj$-t$4Ew>#_wB=MICeu0@=~2o8yo~n zC8o$ZJK+<f434<rrm(57hh<_*OJnDLZ8NR2g$KzcMLKclzs^uzsyWM4!mAz?p%NBk zVUN$xvSZ^>cKXbF-J)O5%8b`oOh@lj%x%UCTgaNbW05)fi`%MiOFWU26%wwAb3Q(= zeIDK0QS9`psKR=49A)y4kE3cD<y&n8uXZ4@m!2sch22C^xXP`}-PK+UBA}EGT#F=4 z@3?<2x#O77$~D0_So1ArF_+nZ7!gr=PrxUy?Lu<y1Am=cD|>urV};^kLc=p3awN!p zbuuTgw7R%oYC<+pdrGR6AL(^H<43WcA#|Hej@XB@b9gTVzV-LJB^uDd!^Wfd#Z-jT zgiVN%hE05bAton}nN5!->FGzoJcHdwRaJ%75IP&|XTTG8CHoiFD)4%8Qq6x+cW~>u zoWB9o4Ev7$b4EIJ4ij85BKXx+1?^{0*3i-Y{83;YWZ&a_5;fIYEOvpvFO>9r6rD$g z500^SMXhNiDnI_dZM!htE0B2d*5K4b13q2m>Z?yvQK>gRC5?azIw+DpA8^ATl_d={ zq{+V>kH@5z@Sh8FilL`wBD+1viHk@*ll%AQlm9`snR|gp*Fg}9up<VXIyyEY7tsnH zFB(q;yx6jTkU~Aspz``LcrA%Q_J`gAHX8@bC?EJ_AOIIuhu+rd(83?htPG=1!ZcRy z(59{qE=9~H9iH5Xohu+>axO?F04|chLdHckDp4c+X4Sb0`%*xOe3FbETU41Pi&idn z&wd`N_b(3e{VxbNDHf%_=oAw!MQWXRc5@V+4n9}WvL_V37)xRY1Lz6{B}DiN$>w8s zpTMy%K;2xy_eSN51u5q#*S?Paeng%D<pP6Ji?EhS>SLJ#ivRLBhqC<JijrvroYNTc z%XcI6{wwNT<lWCwE-t{8-A8B6&Y?kqt&zLi1g|GFv?EviBw^_PQkfL3BBM;|{7HR? ztrKq0fF0gd7E<>f0|BDdWPFhhm%uw=?TOL|h%C2Qm~-1z0PR3Geo3+Qz}#OxKlW4H zTS0an!e&|op9%zhD%I4j<sWIprRW8x_BU9fuQ<cKbEjuPUwp2bn04|wWNYhj_G83# zk>XDjj^=QB9ALt_0ul`PzuD;sK+?v)zha>EwfqPetQN3&J@%8t&*keQVva<VP>7WC z?@vw|gl((D|40Bicd8|VqhbjYA{eL50(kccvxE8m#}2_+3_#||UVr(6WKc=$YN4a9 zL5A(<eVg}6HY%<0$P*x{>fDvD<6|GbjNK}vX{Cg~>A6-P6I^`nACTMhhTF)_EbWrM zg+<w`ppboQ+I9@B!~rE)5C~bD7}}Es#Jbrz1oFWk1xXwnO}QQg9-riPm%V$HV4I5b z=b^nI_mMf(!9jvboX#oHnE_FYAd`s3eDIqCFFx-}6pmP-4IH<nWG!{(^D=F6^4D$s zv>Y)~eG(*j0l;5DR9;9Aqa3pB6YcU6grA`K5v@g=f4nNkFA3<$UDuvYxcVqO-VrhK zXBu#wYshOICh#-;hTPNCZo39#81U)I&sgpf%u+@&Nk6;%q^<ckWvBb&4?mK-L7GOI z8Q*#`^|6%T_{BHa-4_TG@`0{f9@F%Kaz%3|5wgmMUG?)((rRtsAh*GjN9HSes|>A6 z5qb|#_#KH!hJ%sxDnF0SPKwXz=^lrlWj%(ez(HZ<`Va_<O&zQqe-xn>OFlA?AQ0^g z0C-)P85p_HtDG0$79^2l?^N<x(djlsT}OZEr2;y|0109)WYxE_xz)yAED^Cq{xrkG zprSuHpJ=-bl`b6nO?pWBlNz8WWz;UWT94AmF{o9DmE;u(@(&4B-VhSp+1KztQG=7@ zYF-jcWyQg-ic(^lwfh3d<I?`6>fJEkQ;7BEbJ@AQzsi_g2NC=+-ARPvN=k_*>|-T$ zTpE||TLWem>DUJ$&<P-i1p1)!H+<sxRc{_Sv#VOhJ?dJeIg_W&F!qRH6d5!sVdla; z?n&uIVgpZ7wVRoTmhi-Lr+1EhNqgjBpS*{9Mw@5U(a!S|I{fG8MCb1>m#gT@#2E9r z?U0~ha<#t(eK}s3MN<jWG6!QB##3CzJ0H}2Id7`!y@Winyo~3DEmPF6qlw3AZ30Iy zGT3v6;``ZLMOz{3ZQ05{z}l%lghmQytNODZ5b~avJ?b;>i}McBOmRX*_G%oP@y`-+ z!ih5wWs81e$>Pnr+F@#DrQW|Jy^RRF@@I=&!cu+XtdZ)HvcQiZsDSVWR<5)0dFr4w z@==<eBWosWx)qh6zI_EKXJtl4tb?J1W8EB|Os+dNnF2gxA3QAQb%Tw#-uGSeq;Yr^ zsza`eHdfMw)NCMJm-H^*{L*U<hnbyJl)64XE*oQes*+VANLn|e@zen(e|QXlOgQ*V zw69=?MUWx0`cVW7N=Eh!^|Qq)Go~U-+b^|p2;dA!YFXrk+$uCHcORO7;T8T#@`C{~ z1bJ=U&ynCp6h|nIw?o}dQr<uFO8WXbGy5shfI3LA<m3tDl9WRXv!XUr+4ePM_D(u0 zC^GOSi13g*w3>lmD|Cp-J*y{bhQj)n#xH{JTdAac%L$Q)lUFOy_y=)TAg{^z-FsYH zMAKqyH)?B?i0&oMf`|F1o4jb?g;J45+;hk9y}8v0beGx2DSnss9D`?DJy%;4stp)+ z*S>;ueX#CRRqf8$zbV%B@IMoBl~X%e(zNAtak7ERRP=^+)U}CJF0E1;Go$C*vU8=v z>LC}$zY>&d7)LqUyS-fNZoFdDF;UKteiQ0P(ExR&f=3_C5dlUL!X<2F$EA3Y*}9!_ z&Xo?V25?Y4Fi++1uwq(wNP13<bxJ38faAQ4LPh!0p5)hKeQ$2JNjXr4X@$zkfbmvX zB0QQ%1y*#8N+K49js;gg#Ywz++)gATO+g}9w0_ZAMeL>6)$58qDFrNMcsKHWJT6=; z!e>gN^QYu~HfNU7+LHap!W-Anj-oi(4!Pp@*lnJosI%YX9G$z^UGoo;r+<=waz(gc zNnfJ$6&wFite?z@1VOqV?ZeZbw9mDCbFR(6h)b4|GNCDO`Msj>cs`Imqg3R{X)+TJ znMuSp9376iT^p{YDHt{RR-`Z?L8F~?tUJiUIt5W`9eo?p^UBx{slEB^sA52~8=vZ@ zL3$me*0WOn*3NZV@MlU3=a-m<7wq|;dgSO|q*a9YLY?y0;8s9DH8LL?t%JEZJ=dWF z<ULP~!vUAfX~w5NayC6(1KGyuZ)zmo{MZfEcSRtsk<^>Nt9H!mIhh`Bmc-huVZ|e} zkmqRls<N~}O|0Z;QH+TK1nbU)=4eNS{h+Q>MArU!W7j_cO;JL9Zz<AkZB_BpPV(Qn zn16HXh$wS#76ElxJ7_rMK1H1>YrK#7WZj&`I^ppW&EIl+&f!@pI?*Xb+V8PX&LxZO z`Za7Y{0Gp#;(Yi$$+K;ctAs^L$JaC^>zOXTF|j$9c{+L=2FUecW|0BKqpEUhtY;Hj z)Y(vK@zJE={PHGJdPwejqDq@Q@^9<YBY5C$PEW7VPFMtN=5R9Fj1Wrb7C|nd|BdzJ z#4IQ{HAZ-ZFwlBT`Y-~k=OpPeHM>|OrsO!X{Vz_2bdhNY?4XcT`*UIT(f7S0qz))g zXehx21G+T^59S*hh|HQKyG^O#g<bNB8D)!;u|uR*(Ohw$F_C`7ckhqM!wewecn01i zo4PL;Vb-;$t99lU!<kF(QC@iD{@)ivcp7`<JpDfd(fcR)J&*9;jkHl^cijg*K5YHi zjS_2^KX*f|c=<8;^)i0G#;zg(6HCQ3c}-tE=bn`dzI~_e6yLG947vwWhAi(;=a!4a z=n;!?M+{{1G$h9GM#1$)p-xCZSNxgUFt^+YavXcyKd4(%FCipNe^T-#OoxWDX<43O zM7{$SOE#4*?Kx{Yc6ri^)^h9GpYL;!;}&ZlCxNrT@LOsLg2%s3_U<X6SZ|H@t?0zm zk087T&Jz=YEOD$uFxTrJgr#>LK733zD&>_cg%>AEpcQ8*Yin-~t*vHyXB)>oiDI(! zn`m0Y-g&Vsc*ooT2HOn5$;)P#TT9*}DZz}Z_(b$*<r%pnG;GyYv+5d|fA~wMy99N= z+q*Xw)A-k%b+{awr;KykVLUZ{Gr16>jdHLak&G-pqWe32|Gsn;PL;dtbNetf`Zv|? z)(ZEipncV=jD-C==c`t3Fr}$VPQw7vY;I@GxAsF<N#_BcYpyNYvn=8rn=@rmhgxsG zvErFO54jyDG(PK8Mwg{9u|AuRvS;>n_wNHS*Y$B{emT}N!N2mp-oMY@`K#idr|VNm z-R-<0tZm~dr!4Wp5GsNoB?bRnqT7t;BX5kdRp4hY+XPc(yYJTK9*A?%;%zUJR=+n2 z6NmTbR@R1sa}j(gCf@g3Q@m|Ty%dSTW#vD%a1M@_so34)MvJ#K-LT-iy211|LbMLx z9SJKYy_Yq6Zdk41>ow2PvC#<biAT*?CNj<3q2P?oi_Du4H0&%3<?rlGTWoo4Rrrwa zmaSGnzW&&_gTQ<MPKF?I+}j?iHQq)C5sy(z^j{f<t^yfnvLPggO0vwe{-bTR$Yq_F zj)$4T$d`gU{dY=1yna-C6EQY5m;+|ELZX^W4hr3KF7SRzq;&~T|4@Cbvv&W)V$Jx} z=wW@<+~vosT-;HLZyz{f$WfR|>&LWDB>l9ss(z+>K-ZwZ;T4z@ldSx!7mm}x!QRW( zDxi-9E~5W}Hj&`F^Ygrr#F+VW`xj#a$j(l>jpC;mEzLab2uHR@R}ckuR^IUT_O@)s z!11ZSCd$rZ$+@Ci>DFd~_w@vsiv&6YbS5&1dazUwhQTqX=kda%M(lA<SVG}0qR*<T z%V37lpEB5y9)P#iGsn8zkmhBUZ~0p}wql+tK&`hTP1W^yvTJaRIAXH^j2mPsc{$&* zxaDWxJ_-IMiwXgL4is0_Mqs^n@G8)i6OoOYGrhUn0ODqJb0T|U=Rnshqzf8}v%8(0 zCs~7+C4l($1+qNSETCI~@Do?Y8H3(25)Af(?g*%(fergf$B8>JG8NuWM~HaL4)!X_ z)?5S7D;$4v!-2L1kU<xtCh2qt9I3T~Urx$^c7znX6?H>N>k<3Spj&3(fgW66ii8Y| zl)8x*!2*8?)LI+6))PdyJT0o96dto$_C>vW2>4AaVPfyHv#3T3_oSwVM8acQpjqnO znzF0k23bZcNJ?s-T;Lp*tkMFk2O;M?OCF3Dr{k&e_siS*1d*ju%HlW`<p-?kgB7*s zlOY_IGJpb%d%^y4xwDQxHIWwDUN@vti+7Q4-5Bb{M6QYlDDRl?gqwt>a~CNOc~jbb z6^f+?Q4hjVfYh2zS=>vivAfxV+48%o^i;cC;XM%=Uocnti{iQYUZv{al^@r?b&RNh z<!|j4;m};jB5AijEcJNw-BlP+ib^k8L0vmmbORu&>l|Wh*V&@K^xD{#%$f^T94Ah) z*4+S@{Lbe|g9`g$cl!g!TYvgmTXrkxPh4$a7I-67a@qFM^X`|9{~)Uob**h4$_NdY z!_X&%G5p+rm`(@38}M}|xiHuME|cuXq$qMQJov2#HKI6<cx|VNRePh8uFq%r_X~dO z^^E0BtfirV<iwRNfsqg|U*%`^qmXF4+IO?6?(Wm_3Qy#-_0A#dzSMkr`%FC6p<h_x zOp{|@H55w#g2I_!@YTV8w%8i@1g(c(Ek7vfEJ?s*o&qUk+$1>06^&<=ty50<RO%C% zzvAq?{g{*wmY|E)qeTV2tnRu@+doIVCsm2d!jpKeEaC=PzgM%~X)!AN5gVX^$o)Ax zmtP3h%l8`_rjzAZwVGeQ;;;C34t(eG(Ye|@ycZVB&nVANM{m<|pznG5SB4fdV~yvf zB0{ixS+}=G{<oz)(}${^&4l}y=0k-1kD5Bo!odu-&QsVk&7;?zI;HoaSe+?`TV8O+ z)m3=iAJ-_-vsdrRat^Zpc^NGLyBOf7*ZuH_H%vu2(XxkLI3QRYX}v>ekfX|k8U?QX zRu@$a=}9PCt@S$kV_2wl!M4o4sB<EOhi;w%cQH3?dy{SD7rix0vu}9hbql<WF3}kR zpI3SbF<G5%J%6AAZ<uq%$(c|$YG+usRi}?)k~GvA`g!tC5<)LM)Y0Vf@zVA<|ItcT znbR*#%t?O|`U5~Ue0Wb|!g`!br{xdE`o!$#Y5J8tleU7Ho}Rpgcm3egy7`-Yd*rfp z%q<NltxHWRmLGJhS!y{u8!kpL)^Dh%iHGj#2)CY|G*ruRj-lKf-0X8&A<ba{iN1~| zL!A&BmtXq4k%uob-zaR-dmH4I4!_}iY|cO%=Rkkt9OZk9&`7+$aU(Tft$RG)?a&W4 z<whivJWXY#i}a-YZoX!8i~HVBeN4Z%_?oc(%CqcR-%_1S`L@ot-0N=3s%3(&4+ySB zU%y5tA5Ej1xfv<}IV%F3ItwbpXWPdgUXno|FHmGpz)@JCeGy_}pnsUzvyk88?H`$D zhHI*Soe|QTQ0D>3)(9`<IpgtfsBiB6wrR2oC>7sNDHOd>EfV?oUl7+~#%Ur}`W4t4 z0Ig(eBlx0SeMp}80LHT1{0|zyPQ8bVfaX<p{C-XCvT_<9=c0$lU-eD{9(dBHlRKet zZrf|tYMt{?ItAsO@U~w5fosug`GRa8)4<J)tLI4-5-EK<qirdZI<W5o2g%v+X9^?9 z^`>*=-F$QHTPte%++ng3AA+#o4a!sb>HVERB6KAF2ycWxm>gJ55Hm!9iqJKmGZv5E zFP1p)my4_%wsIK-D7w|7!bE5PerK7fUzCI0_y@TQc1V{Oq^H|1rEm+$@2OlS^sIfC z4w52;hi*iUEJCE~UDNE8yTXPn)G~Tfn2UZ^NY3U~wNHY4`0k>3_pd9HC_3eLT`X5x zw40i1QDT%U_&<|?;qAnNF1N6j54Ehh2?1JFJZE8oO#X1Ka*u7*K>vDy<CWt-=-t02 z!&}LX3Ww-J1~+_uB-YHT;s)ekcGB&8jdO%j0IVLr>l7k)onz-8#BM*-Ou*XH^tB7f z?u_DzFqt|_2QvaN&~8-zl|P|(O<xnfF{@<xslby%ME(2u(Ljtu$j1A~#b(69w8NV1 z?qV8*5zGq|yIQtrT7{5S6-i%Mf&87e_2uujs&QXT1!5FbAgFS4L+5>hjBCAfC(QB@ zY{LzCq}n-2%rN0Ay6r!%mIcu4Bfa)Dq+8fyczkscNdWmm|8|IWV<*IUW(5!2!!MMX z7tczD1~XkkzI#+gWArH`HgI8Ka^5qN9>{I%wl8C|RNV%4>djCYa;SttagPi;d=17} z3eROW*#{~kROo-=@)7~sZ}f-C4>+M>{~%)Jq^z{7^w0&R?q0Py+cHJInxZ$wH3how zxAeJVu`1Ad^zr5{?xSlv`cjAr5aQf`Zwbr*&u-I1N~IB{xg?a-D!^3Rk2!xpx2%T= zn+Se$>)A?3;jm_zgb1xE(^Uk|M~^)2MBTqQ>-;KU<RA)nZ?P8HR4gbazocaxsN6wn z*-#;^wb*o260{o)WAuONgAC}oT#)7Zwn?DUj*V`Fut348O8qvzqA}aivC6(ArYi2n zm#Od}*^uC5sX^~6)Ukos2OK>2hmPa+)EpXquDO1~$>wn^vR3gjt<6U;om&~do+#?) ze)&t0wu;SDVD;G5Yil(}imcJ&1V=Oy^J(lC^z-hP(He>gdOs6gK|uv&2<FZto&7!D zff1%w)yH80Z)ZNq*E0>?O)@LXLh-7K8*ERgLoS)ToMD-X7;IqnF1HYe37G4Z!u@rY zh;ETS-)aBO9B}z8&Tm`X7ATIRP3xj5P0>&Ps6Mc_DBtq*LIzL9Zg23P<Ofp^Hfr7` zOZ3tus@Kl;4h!C9c@lYvy&$|2bNp?o+rEEMzfw9`h+-W&_<1lKkFM6~_s2yJ&2UQu zST1@t27GL5?8t7!-#;F_@TtaGm#fQ4>SY?z`?jr(cnMQqM|-AH*;&7-HHDEB(N4n- zT~uR-kc0TWiHdpki@^_D-0D`^OSi|^9a9+Z^^MinDPjV!u`qqq+susLXKvLL=!nu5 zeTb_SXV+~<J-ttAZ=Pgb<BQ;m{fqn~fBEX;XZy-4Vt*J2%6Cd3jQ~s=?v}m~imvD5 zg_-GFtzo#Hv!uM6OUpOgY~b5d=nKWWLCs!X=6$F@xYWAeKF<&t(ac<Ua~u0Z@pJ%o zHv4P_CW3;;9^L>$|LTI5JoKsLh3CASGm-458a_?i%qwlldHZ|yHblOcC#)%4tE_Ba znf>M~BOWX1+G`qTJ~^4zvJ5r}7xd;{2C27e#C%-2>8+BoC619>-88);-hB}6=E@F8 zn$q8ujaiY;^;RV_nTOM*u&wFWq5mLt`33C??T7Hle-JJ5`f%M@{t!F>@4ZuQ((&2G z+5SEjkxr7|?UGrIp9ZD+t|Qj2jlFZe;L?wO8sMYU-IE0fJN0i5kfUXx6o)rSr0N@M z`}Kl9q$Uh3QB~?pCR%qM3;xAd`eXNZF-6gOPRn{#e;l|8l&feSdpAUVJ8@1u-^*Iu zYC&{>?Xh5O6><bG=?#G`XmNvVo*av^*xF#Gp<5-#5uyePzl|~%iKKkb*9&iK<6iD8 zYhur^{Jrj9@0lvya`^1dU(_j^#B;`kCE&)yiX#XkyLkR)h)N~8mt$$7`+SfY0U#0n ztH|mQG%)kY3J^6Fj{q;FT%Ods2!5&~djr@`x?K1(P+yn)Aii3&CiW?#P`o_SV?Kb1 zaB^!Jw+Q9w7k5v%K9)tSCf$%*8$HRTgmuS?EfDovdl%pfs=&Nvkz**ecCekKiXvm` zl@Nw3qS_k>pq!-#k$;_ct&~l_VVr$#{5{aB*mH<(x<dRJ?O)mliuVFscV1Ks34i{i z?ooT1Ef0yF9ku}w&h?V|F{V-CFd6(=X(kYZ^!6iU03J5;57G!sF7!QBZF~D-aM7;7 zt&U~<$uL>j2ZIEeO&ejf%Jlqw5&^WNUa6BG%yp#B+OZ7j5X1z-D*h5^7ZDT3k9o)t zqJ((1N<4vvxP$K<A0`6m8GH<P3T0WQdn`VEPH&9vEjP%Bo?-&lzk7+VuBqa9(O$c9 z=MlM0R|KsKTkA$Bjw0X#KqCTtzj=hy@!~0oKgoNI&6ibV{(x}#N$Yt7$2_?=o9B*A zYG}Ik$bfU%JJfsi@hc+ed&7dBjVOJh+mSyRBe)-<E8BQozJAKxe$FPw*=Z+|=7jc= z)<nsF(QSkRMMw3$YOQJzkhIp{sktawx|xs)061`d7;Od`P>g1-Sc<;U*gh6Lj7dGf zfM#MjSt^C+V(~C5FbJf5a>HxFDNnDaXki}rjMv_xVR6c>W|{mg$5c;FR546>imxw` zxYxlI%PrreHwGwWB(P8t`3G}jo|cTe7IRxhr3P%UMiq?1i*SHVy(>?i3^5$rwQ3`N zO@WGG0Z!gbV&SWgoK!2=BdP;Tq(4A*Z947(+WU_SHwF5<I5+wxFm3`<6dq3b<>YS~ ze-5A|X;3>Z9wP+69K@4nQiCJ!(E^8+fcT22+lS&bM_B?lQ{M>==+?e$X<TbGxF*Od zlqr^7U*`bxm4z;=8ne$w`|ql){JOqqrMc9UQVq*23n@>Em98iV6C<^u%#c{`Ffh9j zikC6fg*R*kOB4K2hAwYPGSv%pI;G&17vT+jE5G!M{N*HB&et?ix(<4^b5M~>=7Nba zM3PjF88=2?`6p%UO<Ko>RouMgTaz8cnBMp<GVWEdIpoY~x%=+}#I$>y<=(QuOcpCn zxF+HQ;f6j&rKQmj_bsww5?LNo4)pm!7(h<@)&T1^mg&0j*elIS;oriJ9i!Nb48!G# zAlVd5#ILtjytWG&qt690F9Qa_x@4nr(bK<~3dH+(a=!O+#Pc_G7sTJvz%M$5p2Ekd z<wS{`phFjzp1wkj4Do4Mh}33cmf0O-nXo5rbfvuwgLINSEt3VPh!zzm2n5Z*NWc6F zJ)8jQK)ok&DJ5sEAxsd8NZ5NaJ7(pgWn}(Iaki-!VwkNy;0BLE*Sf)m{+Ky3NqYT% z`h-!y&l$w-9_Tj;0<ne6?c4`mFxkreOfP@u$Z;+YMvXX$2~%DXyrUVXAa30x_n{s; zN+9Qrl})^19eUi^0GUSLdeBIUCCAI;BBl0;({o#V;2rck$cS0j?itrtWrw$QZv@vW zKe^FH`c~jLmk3&jjdDiS3t}x#0W8Nfoiu#Hel$#Ky%;NFCf530Ji$v@x7oDcjC{(h zXQ5JztS8iT?6FG-E7USqc1z;3+#?@&DH#ALam9Td)-n+iee%vdC+P0W?QPE%O%AA0 z?ytx4|4F<hWP~SKS;&r-k2tPd4rD5KSPY%S>rl=fG^V;8{YIQQmS5OtK0URl{nb+- zN(sPJ@^bUze|uiuFsJPj&&v?agovw>39U5LBvqqh^U7Z6+CErvH?B-y7+MPg@n=l~ z4ssO1)breNeSt#f{3e75KOu>|@%%oaLH(n|e2@yq6;Ioj_@7T>Xm&xGUS9Z10n<=# z>puuTn1aa%XP$kbOfOC9iN}7eCG~b?Fb>zonwBlz%rXvrv`A!#iqKmjv>*2G`Mm>4 zJYn=WE1g$flpp?lQF5Y)Bn#!VBD<;|IXkE6HqoZ&Rc{T;lQEXAkWM3}k^sQS5@f3F ztp`sMX}3o#2^+U>-0yU(d8t@MockRk4r4C4w_X0_?#R2SY0*h}MtAx}{RskCtzYgX z-!!z+PWjSk#8V+z&-1*J*L-TKk~%`In0)FOKKfxkcnjYoN=<pH3I5J4kM0NoVzc)y zKL6!g%Bf+uNQ}l_3>*PcFkndp>rV~^N7cYipN>*&UDqSdxq&rf@`A=@;d2-SR=`6R z_p8Iu;%MS&KcHcN<@%qBe_Tqx9E*d2INX2>!69%G2X}Z4o33z|^zg68z&)HuCsesF zw{Itzrs>nerjC_h$P?L7W2f1LzNu}sVnjdr2*L$lGZai-|1ink;0HTVbuBl0Ykw?h z=Op0?O)m^#j(kU6#R5CB25+ylc3?Sw#|oGTDa}hzpN%ZoaktASllqVkOk=7txeP<i z*^|@gJ&WzphIP;WK~77v@4^<>RQgBH@^bsG(OYsas9u#)8CRsxhwoPB&ZN*0cX#`2 zw}*Alj?kJJz4ny~?F;|yODwjPe;IH(g>k=^IJsM=8oaTbygGRMSjLzj{}_|}*j4|@ zO|j2)x!7hsKa-x~ZCK@A&^?LqU>9SKlD88%pGt`==QJVHHLO7p=!WZ*V4f;By{%|P zsEv~UMN_&16`!IH17nhky@wln8N94~A~ljPN`68KL%{d|!eicb@~}ME;O2j5xxlac zuSzSnl+Jw>_zqlq`CJnhcSRA~C%t$<xLareZFg9SHlGInD+31#3SSb;DYoB&0Gn6c zs1NQPMh*jBZrWx#UyiSW_<}saltLv=fn6lo7d{NYaJg4XRr<Dwq08u^yL9?ghr<6L zm1c`a5o8G_SDXv)H481q%aW(#A52Pez9#k>w3GSUViomH41)xe`T+$`g|q=NdUzuD zxV@WzTX>`K2_+eM!8&FqOVC;35y5d6ii!c|3bT48Hm>x2D~nR#pPFZE34d(utx@`o zSj^_TL>8S@rfw^_6&E`0)=cBMY|5uOadDRYHY#71{pF*-j<oh;oPb?h_Ck)8?Z+ce zFXQKD@`4=CmwtGaD0b#&kUG??yp3u1jj-?wW#)VGa-m2wVdd>XVac17NS;Zt5N2rc zRN&X=YHLs`*A|dNryuw~p1wRD%J+MJY!RWwmTeRwYqFIv_FeW}$d-MJ3NgqQ*_T2g z`z}hBvW1XJ%osw*5;J3GEMsQg-+O$1uit-OUb8%NKlgL)bFS+;*D3Ouc1OO~LOoeN zb4{1_z{alV09xc168YTn!2@5s#7xES(aa=n)<<5kNF#9#m0x34m&`156*qgrIAjb4 zq9G&>$KTQeoPX$sHv}RrcG0})f`}D|)J;n-dpUk-I~x)8_~Q7I(3Oi?Xcl9w>@mIO zA)f_)VLK`D9_mbrTaW0=3xGC`Rxg$2Y4w=EhT&GqT)VCA4P<6-YTrP5S$u_e<&I{4 z<A@Phei{!e?J|L9R?E`|)Q8eyKd<+|l{3HN{NES1SoCXNxVM}$ek+6Gai~Bbr-;aZ z5RXC#yTFM{#h0wUQW$CE-`Yv7=K!3E#M(GaFfDZiiQbt>!reI~TUb)$WP(wak%CMZ zu@0}@xI(&Hw5{;pSSM%RwVTqJ{p?x#$!mPF@tMj+WEa}1Z~d*cX3$|En^6rU!azvt zM5NqE)0mDD8eF?Z%DvVb?Fh<rawe+x+E+N9CjI=l>~BY;@@L_0pbv`x<gUoNjfnTn zE4i#sJgdJca^`T$ZY);{?HVRu0F8Cved-a6n*Z`c%QNyEHpiM6xvQd8FH$`89}-{! z&eQ<hnmZxh*y*F8(zdd(!07PQ^C$*pRj;`H!^g#t;AB8Lc;-Vm&&`S8w)Hn+=dIW& z>9YeDGF2w&GzyEqE5FVl=Yq_p>{sQMFH%q$CdEj)_*X(t$)Y&L7fbpVT;;@QuYCdT zF=}uW`4r9iy%H+*bG3*C`MnHt#lp3n-LdL_43h4~#3c^l6+B}QSn(QpLv?~G`H0aa z;3!pXsGGE!`W#iYEiYK#N>x9f6zH}<`Ar8(t`ExosCY+EP_2mrzFYAj`Ff-~qI4nE z_~sjSR7VK^fdqNNiJ@Sf>Bo-1wM|51S4*tM3p#F564SeaW>6&^lU{?V2J3}rH3N&M z9qAuE|Go4}^)z~zM7sAN<lL@JgwgqQyEUKUd7^i?%Sb8nz#i!yDCEL^3ze!cjOxlK z<BzXUAPiF)fl1qR)%g`-n9v`It2Dk-<K08Y!TFij`2~6OZeHS|yiN0Db>?Phup14v z(>a$06N9l^u5z%Y{X;`W^mzWNk<qK!<^3G`bqUs%dxq1>PXb=g!X42YL$9kVi*zLx zY@8M1G!<mRT>>@ly@)XqlfEZbA!K=_tE{P=FL~;jH}t{I?I(TmCQ1a#IrNePWWTJm z(LI~Rf-i;b>c7cl;F|O^Be=7CnA)1>O)x3toca*+KP}aL_BP&q9m>ka09Le1+PAT9 zXzm~y=hn0GWx0ejD_SBvywR4Lmq&Oh8*afyDl)2sVI$yECx><zCRLV!dLM|dDfB|9 z5kk+Cu!jR`bCBs|a3_pwl~yst&@}!4Rs#BVz-68E6N({p9MJxrEQ`>;j{Ch|(DaFw z`_g?srP=&^+-7rB>pNozRi^T1aIgdD=&+#^iBb3(*Kf-F`ytNUWl`uv1%%M<$<qeH zJ+Lk81^$DC%wShuz~2cxJ2g*ttD@3_a9~3MP#tmZ|K`<{3yG-b5OdssfbKceU%j`` zyJ8=K5XX<XJEW^*jgbc#{lNR7bD!Zl7)lQ|js9~P=21Sl(cq~Ec6$zWOk^p!0IIsk zpwowu#0Vk4lX&6OfPD<duopl<wL=W;UL+s$UwmLdO-JQFxO8ghTFN@EAEYZ}#r}>z z?NqLjA`F3ULrAwf*R_Aa`@s@nX_3P31b7sKLJ1V7F4CS7tOIEj+U$xMr(eL>tuxWX zZAT3MpWy6;4s-(vPuT!hQ|ES@4fy<#Bf`Djkm}?ppXE#5c4N3R|3S9M<w%)@>6zV| z?{Kw4=4rK6_$#E?NM;ZQwg;JFHU>ZP4N0X}RJIGW@>~6~kMN_N#HV?zezcMPmF7KH z{(+arbDZYD?rhR~i5MA-MRST{7O<y4OiPxIs=58U@^`UiAHBucj7I;HHYopAQ)I&? zW_0ib{Bq!E<ntxJRr5}f)QCVNi+j<7<1l#5%!g(+HaoV?ZlGc*?*>*?Egc!D&z<KU zXw^UMaI2ePDA9~|;dB{~j*Bn-@hXjMG4In-RnGQW!I2HG9-p4|djC=b@~4%nKxt)p z?ufKlR)2~BeaC+8#1J1Z^GDwe*HpD#V@Tj08kE-G*&gRQqo(VuT{HTKg}LVU?9Lff zUj4Q?_cHdpb(o*M?mp@Dg&sh8xj*4AHf}s07Lew2-?Ka;*5J$X)jOCM47Q6s;r?IJ z7K_mjP=B5{-}v|JfHc>n-`phNX`OB#!)18fQYQ;f_(-_Ye=a0sR>Fg-Nrvav;-g%N z>zOjq!B|GVv8u2L1I;6-K6ui;yrr=!dvCCNZvTq55sjkrEf<|JtsE5ygt-U0r95-3 zT}i-MrD_Rb;Vwa6fYr<hInzXift?}Pk}%)6%1vf<p<g@^KGs9%<wsIAbCccN6g`Z% zRs`Y6!M<LN6rwR;oX;UUIQ9u8*S)g~5o(2+gR8_yrB4VRm#WwA=wH%zn|{9J*2=cP z?DJ`os^WJo!g~*1K6)}gen_zUqtIx!5afJU$4$_WF;R5C9r~Bl-3oN~i<w$swQ2vp zx;dm_jT0Boo+!6_yCu>7Dp9JI`S7K}mGgX_<kBwG%wBw&G*b|DqHT#u-#H4)|1PmO zo5hxVq4h!8;4z1kEdk}smV7xmZjckjv09zuN0%bYko>z`sbv=%A!ub%m$s$>?|YTv zXs6K+<~tIX=BmyTL8_H|&~T#2-^&$A3=^QE73#q`uAGC-f$g>A?+23jvZkzz029~G z8xargM)3~nwxn$RZzAJ(b8e}5hFW<vYVXJvbq}Il-PV23#*3>d!)@lKOU|mLn`<n` zTV~9}{q>tJbrRoiMGb<m2HbgOl5YL_a)Bn(HvWY?@`|6@e8wQ)GPFT*Yn6fhBckvh zMC`n!i@UMn&lZ^h+@HJ>;?y`H0OABw1jx>>O6I$rh<^cUzedDz5$^KbXGCJ7#KY4t zw91G11fZ?smt{|FP$g#e|Bi0+4kDY;CWVi04{`z_@e~n0DJS1fiE3&^#E^RvCOH3t zv|F!GMQh%CM=ES#7zH9Hs-ck0qBLmHLG6E#E<9P1TD|}Bs)_%29ZSZ(SS8uXfo!E) zhP$GC(VVT#SQkl0(G4gdKqnq#)!=gG)h^nC*+Fo5*zZ&8>F_e;z~8GczA)(AV>Nzr zm81gN?P{@`-v*5A(9^laqPNn2C$qERC?gZ_^TgH`CI9N%G`6oSvLp9J>nVY;6*Jb9 z7D>{c%-FJEMF3rZUWxzx;BzcZc&~>6b@1v{kg6hNfHDj9#n5XuT}*!#JeFiKTBku= zLZnWL;)TK2#l<0wlw&Z43M4ucSooFCWjS_;&r%!wu<ecLWZ~Fn6(T=oSVjgXaajJe z?L$q{R73(P0^NQqZIr;{li}Y;OZ4-jUBWw}H~*MbBd_kIOMbKM*}-@66XAYutA%QX zcxz_5b}b4DS|8gP3WxcGxITFr_H|b=aLlFT0$z5Tp{oQBy7GuY=Vx7|=am~EzapNM zNw>K1BZ}KSEZWlN4SQOmc#BF-JS?6B4;pc-q1de3oXxBb&UUZZVf~K^!aoZH?4l=* z;gSbo=RNrmbWXROD*A{zyhS_sa7SoQ<j?GZRn#Lee9Mjihb@tKH$XcVy6{~K4qA1% zm9}!Xk(WDU)+E$ga!eJHb>BNu$zdj6m2>jvE6n(7L}fCB^7lHOxr0^?RgC26)K1_t zXq2~vxECOhdv(cTPypJvf4BhQ_>1}!Oz6n%DO1%PJh0yjg3I9}lyYYEe%>w2uQv>f z*A|*)bCg1y>j)e4gF`pE61KsZM(^dYN_!$ErezQN$2FBLr)`0WfomphJq;7_iCg?i z6$@`SW)IWL@St2yl!ws+&fi={pLFr&+X9Op!~8p>!}Z<q3Bj5yl`i#iy5c27<?@$b zrJ{|qXG}RRNv^=BeUx4?2(ut9OIHzZ*{c@|Mc)W^S7H_bPKKXDdKx*dOmzI?OPn4^ zK%A&!BY`M4q5Fv^cCvcXnHnF{vp397{8&Vu8q{>S#i$g9Q~1XR$>feclE+gKL9Y52 z&5E5uABgc<<QO<yHjfkOQmIqLUkGAurIv`~#s$<PTI5heL-2^=aub|j|95SixzXUs zg$>-tY&_FvewXn+_V|jgl%~4Z@_NsBD)D*YV>K6;ls^hhSG~2~1Kn1&Bb63v`@7v$ zAbuYlg|+`hsSYj<8h5t8>z)LK@L$^pjm$+RH=oQtvW=<b$&L1E!bvG0`vmvV+zDFH zw+NhQBOl=F8g(xSB$k!bXyen&11@{aDhS#2IWIrb3^P|3Yq1Vpok;jTh~p~~2(UOh z(#?4S(+rU4HiZOv+wdt^W6ZW&vzT`;tgfJUwJb8a9JD9v?!m2+dQs+!o@@N2$+9*k zj<*vMf8MqGh7dFCv1;0Hgb<Z-*YDi@GqPwcHx(N&t25pP-TEpkeh_LLfSEBYWAphn zU8O3@CPU&UMY60J{6r|uB=`**iS+OGW{L`>4VC<=C}tzf+DAO;Bqr&YWsS8}4VqrB z*7M_BNC^bJm(>%E<%$<SSazQn!?t)aHFuvT*r7d5452eBYH6snz++@9p1E>zChI9o zxt_K^@@JW;76TFX4z)jz4~$fL&rzX#?~Y_2vMR0(KScpY`-yLM-Wj)RLh4S={Lp*( zA0%>9Gm4=qK9v%4u)5~sf7JR3czF88u@DoE_Zxfkwqknkv_JN_cKy%j#H(L|Q!$dG z-QIqmKa@<S8HVR>*rm$9ld+K%m||E%-iF<!?L=Y`t9k&|t9RH?x^_8X-e^Q5?~0i0 zy>9IVU`TUx*u4(}D!^{#7xMbL5udE{yYHITL43nmUL=EI+I7!P_(=t2FQM!!q{#S- zJ!U$r4U`?zfCA(o`hs?{(8wzYmLFk|n$ewx&4Io^F)lNoiOCz>M<Uoxh80r$&vI?l z>`6Oowq&K<-kMDwc!(Eu@eF|*q}H*(joS|P7_(Yto-<148HzOC=jLpY`iwrje;Q#D zXZz-ihczQ4QzcSIz~NSml;gqbw4ottAMtk$@l?I<!_0|%VTNOG%=CNJOB~PC4{b0j z$^8O~qIH4Z5UzBirRfn9d|6>#;&(%ZCW|UFKN$N`kvFcf(aIw)>?hs*06(Rfn)BMc zp8#rx(j>J4^~fQL02CyDTtO_JWWVP%@`xR3L3CVK?gAMtnzrn`&t+Xd2_KpiU}_1V zhTxfGx%Bef@lfkrM;p4i^fI{n*Hr?!KHOXeXEYQD5W&2{lPxp=_Na-DMTe)}1~xr% zu)ls}rlpRYC@<e0hYjxFKt}_azQCTx7oi^mqUy9|_i%N`nU0-Qx<i^Lo*E(zCeIU7 zj#qaEPqvOKLApDLgKcXs;UjOs9KmJZO(smkd$mEz+xCu+YbqCCgsZ<#{vLtoQK)0% zWWhH1ccfDM(rp=4j0m2Ig0Ye5G++itWp5#Zq8~e}iokX_EM<lBl7HQ#-l~lwrf6M- zmYnlfUz8SWx)daPoeJ%z@~#y}#uZ-+@uttdxhQI5*kXt9KkXhtigl8H#o_Z<HPZyr zHKYI6dQ<VD3Ze0QSeRc-LKnqUWI}p9voi!%y(c6yfkfHsq_UG7r0Wf)<~GRzQX&!? z;g(u~y|VMoM)thSu9?M4Rp=z~;i<s*HM*9Slg`d?CDq1eP&i&m*b)>|4^KT&uyt89 zNs%g7ugS?1@VeZo<er*w+3R`Bc_<s_winlFE_3M!Y{Lhi4GEEJC3H68--T=8BUY+z zf&D(ny*pE$3)}N*Fz6%}ysydimodjwJT2->d1_yZ2Hf#<2#iN#&Xpfd7@;Tp$%L9r zd}>*!nfW!%Cj7I(MG{z9mmiat<=Mo}XjEjr87LV4KK270;zsjaV7qcB+>TsNU6q#P z&eLmEF~7`WliQ!cVdczt4DK~-r!i!+IO@sbzgcFC?sBHDKX|S1c5rX$@I-T0lET@< zV0W!c-{`ATRh{cfR`<w5=Et*W*?&8UdcQvAG_R@>j_-MrQ49>D3`fa540n<Hs!|_h znCdXt^RF+{f6O&AyK?SzMwKV|rZtU!*~s{Qdt&J%@a~K0yyy#*YS`{FyKVA%A-`KT z{@w5Lwe4ppmd*ZfKM@FC3heg4^*CMXtGuRp0fSU+qmN}afz?isIy+D5(SEO_Z~VmY z$FkuTe_s{mkg0vC<;*e*1>_>&)Jo`NlxQAW8QJJ6%ktc}z5LJ=`{BiVlUEM9D7CZ8 zE!o!Ajv2$<9h16C=AO<;LbiIN(q|OL=EBS_HrEWw4m^|O3(KAg3;-Myf~1_3Xfbj3 zha&PruoOzmWI?ZZTr5bVZzTB4x^WXV!?q-O(Krlz^(IVzAsbp#E8<16A2SA2@L3Jl zd|hT9?j(XOU3k3)%ZKCRE0kEDtIfj6;lX(eSd7Jzoi(wK?%nuCoPw$;oEO~72xB_f zFWI!E3?f-&jB;ggQZ7q7=m~_A;a`*yt{Vlw{nJVo-Sv_b{~u(doBX!*<QNzkUoRMj z0KytJ*G^tknn0}CKo2xk6`BfyLr5-{NXP7Mg9`Nysr8he(lX{q*F^o0{tr?|XJJAv z+$R-Kju#8!omo``?$IJ=PD|(lDke#g-&%x&Y=HC`#ELbUKP)B)SN?p_=zCnqp|U1Q z*X&wWq3s@`aug8;mVYxdF!@KMA2`PoPVLg{KE}M5xK?H(mLqauVC*&GV?i2j6ud0< zbJ_0r*f%65t(?_{Wo_q+(oK$yAg+u`u$456LiNQ0lxnzp#WMByo_x)C7#zurEGXI` zZ>5;qREldlk0r~VOsHmbs+wQj3mV*(d<Yx>z)YPxc9$(uzM+r;O}bVusw*m=dx-Si z7((jOGfJMNLA@zA-6?4v<{SGKqYYftI!Bw!b1NThish;`cQYF4@;;)kd1$0+^s=hT z@ndQ}Exj?1-hA1mQtg9R(SVVZU-TGf8DF@?6t5Y$b{{R$Px+<aI{8#6hDkU;B<Jvv zv>`!;N6>Y0AR}rU-RB^Lvcv&I;I0vV7KGaHLpzpwBcrBj&Ldyjl-}iOg7wJ+1q*gU zw$W5W0fa49MG{R9HRz8C566iPHc}bvuj-ynF&BbVLGOk_?TAWS^}*{Oy6m>irLVWi zv$r&8A8|b-hsnk45}1(X8$~uMkk3t#fsKk3^~UkutDp=?kNgb&vBt8+nE7eM!+bof zGx%Th2PRfGWe?X-<?2T!yiIsja&$5*;tn?>UfXz)s@xpo6Y1z=X|mDLYX!@#<v%AA zFI<~_!?J@#>Q2yE2np<{;0G==D!(GG4P<E}(@Md3apJ!@uooXb`zEMmAyLMVz)9DA z22Gk@Bfs{Lp5lSOVYgmol{Jxbslbr{RwzVF2*hlngqZfx>8NqRq<(1z`<-Js!Yug* zw1^f{gD}PhL-LA~pRz#VtxFOOiml^1Lc~);tI@AtUpxF;mP9r|ijb1~WQg*v$j5Qo zNp#N=@!{#<6Px=TpVC8E@1vKJ#d}(h=1-5wH*=Ty6G{?<Djw^!80=`Mc+xo{9y-x< zb%CqzeYYp16lXB3o#cfu6Y0CwsA_s%gh}ipJKMq>7|H{h5x?Izh`Am7&MoD)Z-cBa zv;s85gH!d16EfsX&8?+OE9<C$k1C}(rrjoRU~G;d@#Aq{bt_*Kr>YDWi)Qww-%0+h z3r&Rsvr){OhqB&c7E&V|9=uG@{r5L~#oh3BSU))LzNV(a^v7JJVn=Uk|M-A;vsiv_ zY;&o2eT_04wNy0P5z8APoV&7O%N?TZ#9t+`utO;_h1aF*r`jZ5!=B6hirl60)%t7k z8q;#rQXd2($B1Zw5k^7v&Y!UlT9@l|mxWtNAC<wsX<E-!*jC+l7uvYaZ-u;MiZsu% zFy*K`r+y1`J)ib7$<P@DbtJb3mnZB;U8`QWu-}q<0MZO_M<kRN3okDXYR%oQ_Mk4g zVa^(7E&Ry8Sg_GMBhqMmIUG#Sp+CZ83Q3d=GgZC5P@&;WClB6vFgTY;ZHy}sMe5$I zO*JR2<oBHS_l}C#s(-;;q=R`K+sEfALS@z~nYL~#=dFMBy8ESQmjES8Md6lBL%`|i z;t8=C?(dpL7|nMr1&~A22HC%uWxqGKLE`zCx9MSnDIj1O&OERAm%#bqy22=%T7{}Y z`W6dvZThXv6N)@r^eEp2B6DZ(PYN`QO-M4kDtVKT#J{70W2H5*=4U^9p<R5C!H?pw z0~Z08$SH7y8fw0Nn=SBAU))UNhjFo1e8}|>syH^h9Vn6B9Zab(hIv2~xX>)jH>c-{ zBjZ;ww3MKOt#iInxVTbtZ~0?nxBmvc#}0B_UD>%>>Y@9h$K*PCMLXZ?X5(ezu<136 z4A*l>w%^WLo|Ra3)stKtG}J@dhvFQNQ^%sNQtC#B7r8!V%D%S`a?N$n1!#o;peLIf zvS=R2*zZ@>jc#!&(jKb47tQePuw^s2r(U-|#_8FG5%v^JmmcJ7V{*}=H$sNbCtpjU zexv-x{wPs~J2=~qpFUK)Vm^8lW=7)wqj^0wf6WVXw{4cI;12bd7!d_UOGj#4OWv!R zh1`5Eud<)RYznXYpYCy7waC3WWOB`FIh{V)!&a+anBp?5mA89+f0zGGD1_Nk{GfTh zZ-LnTzO!p#epCE#-m_-jNK(EVf$$%EUzmgYZ@d$jcNmH%UO48-u{`M9f93~d`VoM1 zKD1VgyxqoEcpCsMv}vbpd`5$f`EM^7rQdRbqqrT>q*g@`7|=fVS@z=vGQZD%j0&(w z5Sj>QAX1!q_evZf#>bb?(|UQuJG5c(e3dir@#(rU?vrdCn1yHF&&ZGOS1M^;6X`)E zUvWEgDTE0_y~t0sF#hK(dn7UKs${#<U{yM_{`u~5K0`^}e#v*ItU-Z}%-xdVZ-sC+ zpnGKo8(*UwJ^M6dA9rKL+mb^tKJ=;w3M*iGmReL~>RAupG~igsi7``RE$3C%prm4k zg7@$i`BN%}u@$wG<s-{!YNBc<Yi8i8E8r?s!VuFD$~QM}LOvDWy2yv{u6}X7Oi^B& zbVhniSExbGtnVwq%d(Z4Njc$^TfXJ~&HV3m*E2m4rBwTJ9t2CiXtHN52(y!~UqVe( zqr4u&LfMq6y^Uj(j7Ms2D_M5pZcuXtk{{>syXMqV^4*FQLH<9E{)byt)Fk2rquw!+ z5LNG^tU;ql7#sy%4+SgTh1#FB=24l)!VeZs#6Pt>fL~P1TKR==n&)f%h`;l`OhP>j zxlQPJSXq(jK8U$;wK}JYP>*Mb-$|zc5;Nul(zxJ<@4{LN=M6ip`|GCT%tII3h@I-C z58jR-hNjh3trj!?gA`MKr4@)2J1a*j{avHcq+Yr5i^=zkKKAd8s_MU_Mu|$-z*-wC z0b{<fJXZz1WcEk$3Sg!Y7y+2Az!o9;FD%2iLdS>T9m8rK`3)|OQi#a9Gq~JPEfXvI zLL^x%|Ez+Y#rj#w146hN>vK_jN@dBNF0W|8>kptWuJ4#fJHCqwGnPH0OkGhbV~(S@ zQfH4gRlD#c=QpeowY<0Clq6`Jugd#jRP`A=LLe>3%~fEV(WFQOdIix%*^tGfEw=w^ zxlBdCpHtM^%~C}FP7n~O)f1~UDLjOw#_V?$-?L@3aPF*WeQ`VYt6s%M#of%`IM|(_ z^dF>u>ZH{mKVy8nu-qnul9sQPZ;Cvk<sI)n%?*V^Jq3{{t#rd)>WixKFm<B#$Eg65 z3A#O(U(aLfy%JyeJxyUpJ4YBKq{17I!UN80YFnP^RBp+$=23W=Q8g_qKKuaomjpQL zt~^o3irw6EmFbZ2^O7{?RD%dCndv~PEUNr)8K^tU7sq|Cn+=*4`6KK=R6X^5wMZ@` zCYYqzgSXoQy~UpcJi@kY-_rS%q62@{GQsDL!J83(7){%5e29L<JR?y5jf`7qpK5{1 z&7o?{$KABt^SD!|;rt$5jz3W*5*hc2VAL=hVY;t~oTrwJ$J71%(i@X**cEfgPtFB` zdENKM2F%1{aH3q=H`A_5(e>~jvdOhm2Ue_R{_kwpf2w6$a2?`defh$rp>7pj2irSY zA^)4(h9IYYZ!I8n{=*B7>CC5!kEDD4gNhWR1nnh~Jb3UM<d)|#w*YTMf|B{(I-?+X zPmppE_S66ud#TvXJ07kJv5yXi8=ZEAM^%M19yM{Fl0+DnDmtTuTj?`s95)C+81Cv2 z2+_A1-g85-sPbf<{M|SH4HCNvM&uK94Gk?qlX{BC^%6?%Z;5Dx!7zrM#?Fe53OsPn z$*cE9RgS^G8VNcbfdg+BS*_O={M&@0%2DsxP3Cd&lPG9K7On|q0xq<|=E{o#G&?u1 zxHD~SS}*vaf&9@bVT(hGaMfc1gFP>hG5K!&F{`6*n*9)+WQ{gf2?EDM<3bvUK##51 z(~SqOCK8$z+Kk!1!c4a%;gOhP)Ca6MhgARA8a?Y27o@AiPZh!dp79^VRw1Sjt0N6J zRT{5kJYQg>XUx9Asqaac>zjM#sXC#`UlG<}_2PZ1DL~dgwPF_FMvpBg4sZe92%E&= zWmiB0RzF6nfQZhr8?jmP0o!xTtK?QvRZ*%}^R3;qkVB1sgx@1YR!X#HsgU;Lic_r_ zs^9eIB8U0=LP#L`O8SPF;GH8hU*U(kj?3%(DcNw}vjj)<dgm7ZnP*C8ecP2ufi;gV zAT3`TO@;l{oaXR)P6#p9*Ll%v>c1D|h;coGf?^%#b9ZkdZ(*&t-@-3?$308Gc`Neg z%O*oZtBV$<!#o<M_)L${Oz9&z*yOf0GTa(!nj*w=MljXdzVC*}NIy4kdy&z2AJN7C zFq#B<5r`9EUk-t{DT$n~@^rrijOZ#c4Z77veu9$R_d5Wc&Wz-;CztB8X`{83Dldl} zN)kFdq?<ZA`=R~PPuz!m+cDxL36FgzZ>O|dr<JJ1j$E$rG?fcU^_02ptkm|U<c(v! zE&PQ+fwEGG@N#M9%SW4xy)SJPn~cQ078k$#GMnfV%;Qa@|1jQjGtZjWkMa>K3pPS% zAvVQezS=ES8Nz;Je9E4T)-I@yzI0d<`eSf>w)s7{R-u{gzaH~gOzn_m?k~w>?m`&V zv}p2j41T&VdG<2hv6yFd+Nv?_XobKlft|k9YmHMSm4s)-Swp6E_}Cz6ou2fPeyQuj z&@9sQ{KiW&8Q^qvUEAbBd2LFbgKdPvW5EK{!VTeD#>$`f?!&_%l%A`T)#GT>8eyut z>tp50?SdghucQd!uanR%7ht>lhng#<+-*B<`O*!>pSj~BE^zGs=Xewsuiq2CIy~Sm zLt>|4IKKJ>$1i&2<J(aIdxn#mr~Hjf*`dGtktP$GZcLDm={<_cj|Fu}FYytypKzN= zKZD~N-&izMON$Tw&E91`*{bZOM<|6?oMlGf?Fxc)3D&@!<&gZ?w;ehvrUV8>hsulS zqw#y*VCX^QQZ%rFxyfK}Pkh1+MF&L|!~0Lb;rH!D!k*|2`uh<o0fv+0Im+)HI>#+j z1Fm0nv{ntQO20)9@q@DwPIM>2o~6IZy|#0)m4B^OG?H^L?SSpj?FeAA++Nr6yYll| z&Nqk3dbaW2a4ZPAg(txpKYgt<R(cX5i#ZpxSLQ81S*jN`xl~l#jliEo#?s@uDu^TX zF<IeMHLGY68PW>_D&OZWuK8ErDz2KxMp~0zwvz`(*_{f~3{6lvFLrKSq!xsg*UdW) zgZ&92QsoH0k*>vgg=AG>)3Zyzw8@dFZFE@-m-RGhqdf7)K>&_>e3_C<wZZ<g)UUIH z%g3@Fq<GSAb$k>d&9K|fWF~EU84&&NI_n}nO(+C>W!^2D*jFqRAJ_u4(UZd`B#B1o zz=VoB=B|3EUq@e6QcCaZ;5Pc+OV@U^E?f2lluk)uCYk0mT93lSA6g2nPHJ6xn@D=` zgfPDb{N)cI9GIA#QF~9gyGI_REyJ?sd`cu!Ibog{xHW7dc{d9FQtf8Lt0g<;@v|24 z5Ryta((!ls_21a>#LxIe_*^I+-qqTw;8J(rZ<ZN1%vlG)&y(agK03ubs|<NWgF}C% z%axt*mKK(GGGc3G!#nP+H-w%`F)}j3g@&l<E}_(XAA0i|uB*TbnHNb@{6o0SGK64X zH+2B}$<yc~Y6{XeBe6+3ecI@_!}F)`EnJ}{H7_&1Z^thb@0jLs@2vg)ABaMSf1q>U z9=!5o^h233qDFrO#Sa$eIX>KJM@hbq=Ry3%C9{BAOS^{uLAZ%Z-7GXG^9&^3hHCpl z9wRmia|Vii22k@Kd=NJI9i{NN(q2|Orrw;Cmyi+#5Eq;}X+G^hdE)oT-|w_LE`&ce zj9lea_(<R<rHtNeCzr^H{NVh7A7*WKOoDb*AZwo~8a;`OII#sfj^u(pQX8Or(oVd? zTOH8TMM3&6G<11i4_-E<uG7e+T`RljM~g@clV@P=S2+pmPV9M5X%j9)U+-Erqz99z zrH8=!OsD~k5_MSm+3uN28Ez?{bO<+mN9c_1gns6WRKra6))O9=xp<uKzj{K)RGXv1 z{t~UzMzzW{+YUcwY16h<{M=RG8se9N8vUMekosB3NICn6@J~pX%GmWfXn<Db(`6|t z_E>3x0&$JK)p-M$ZeQ?%n;&hZ+x~nCA0^Y<UTDGmc0`pkWD~O*XQV2zqW9W-LPqw+ zVCGC-K!~yVbuSw>e4#*&->)B+<x@5Ip1ChmD#dLs7k>3(I&zdzRQ`5+VOd*;r;x39 z2!<hcvJr=4pE5pWmAM2)d)qvHg?V}Q@cd2r3{UUil&h{(7_o*kZ*hEnLfZEN^V9w* z&+i@YFH0UFw~3{1@3?QO7F1;Bck=5I!o9SOgJl&<jWR+Ubvt{T0HEf6UXR|xk3ZqK zLps&6urVoB24Ko}n<nfY4brvQzG=6l=*D<?4czzd#TR**B)oii_hxgwk^bdX%gU%2 z`UFh^lZEd-bZK)B*XCJ=6UnvHb(X9SPQ$@=0CzU}Va+2fOx5B<;Z=$^yg$%8yzy@E z%XMncM{L_K7&Sj07@!$2;7*mj;otR9+5pT*5P`P*+HW_~rtgM84u_&;raEPhi6l~K zhS=VHGT0g7cBE~5c!fBv)^E45%eT$hx6uOZP_QSvlLNB*(7%}49q2m%;FXnSipe5| z20lEyyQCJ?FJm9z2b&~y&F=0t-Zg%`uNeFz;--uD&OeXLCU4hTminuL8Xv~LR<G(9 z393UFAey5~Y2NiUV;QRsnf5WRv@5^<UiLqS>gG&|rhZ7`pXu<>YIwDFZYnUJ)VoeV zPgc->e>D4?+l$XsGG_{8$kQr(Tn{&gR39nd^T7v8bg*BcJxGLN0hH!Ada`xEjN44U zyJeQ~!?j$k+_q&&%b5PNF_iuy9Ca5CInlhX_!K{>qgNwe?v)@oY#UH{uk)t4T=Cm( z0V>kYM!qY&Ho;+Sj$l)jz{Rv4tLy1?Z6FUmdPZj<c7W-vQ_RY%xs^6N1+GqB&u<#Z zT|=t~zrgqObJ}PrPcwgjtBPnDC46}IKZvBZNPgGt;Hr>z1*?hhjDfWGH+tKG8|)tG zrAv*+T&K^3&7?*GBZmHP<CNNx_VbpV28VuGxF1HKvF3#Npz##rA0elx=X!O{%+)4m zLfD`M-~_^+snij27Y*RjHLX&9Z39QaPBYhA87Dp{Zt1AOUCw?_Afq}3X_C351CJDm zG|_lC8SKN-18LalF^0XtE=QJXVPW7<_yjc}wUO;D0oKd*cQ&oq9ULz8U4`ImSb`rF zRWHRvc5j^`$~&OV9iTiwRyDs4A0z``jaP`^)xTlM_A_K;{*O^wB7#KUy+uA)zOH6D zgXW(de*glKq3zOcIR=2i*iTP_(jG*_6aWRKjQ(=OlJErbwS1uWE1O=`w=0?vF)zZ! z4K9&g4=U*4n(BgG`N&J&g_1|4;)i6@oXL(Hvw(L2`ezf*%$qxN0Phg+e)P)EH=2pY zt%5+Pg(Cx(#zFEjvKkSll6-RQoQAy)us(A3dt<pwS89~+zNhnx(%Vhx@uohouY+mi z-%|I)eNrv{@T^#3w;D|%Y(13xBZ5;X8!}}XE<6%w>IODcli+tWmxPLVBwom|sbM!} zr(@$=xy9BFei6A&Z(9*y<X+Gv=Gb`({Fy$a+P(e1-ly}T&#pGdQFNZ8^K~)8%C+Nn z{BDt#Ti9+SS7(E3nC<3U>Z%4)cIn!tD{(Ckd(NEd)=a5Y7<TpIoPVyL$;R1d1^N#| zf+9dw1oe9zn`yD=7JtU0x;dcD-CL8t!&B=%jtyr=+`@xZ9TeiPczlj8Q4cNitx30< zbz1+5>%&2MKk+~^!zLJ%TzbXqzVPS#{~*EV*X=TWhg%h)Lu9hX1j$7a#5_K)3B~>g z86tx3Dz2=OauzB#bPmI;v5?qwEbnk#>fuZT<8V&(>gBWP^@6-GkgOYui%ZuOc<GGh z*62s7#o^%5B=Qals><L`4XZtK;_)EE=WhCdpH}oBg*MV2PHw$I7&7`~n7LTmDQO0o ze;P(J)`%M}r$ei*qG0PvYv~F>GAN|dwcX1VgWq?wt6g<QlWxXp-i+Y)u!cX_hF5+F z(l1*|Qxnyv$)iB1FokU@{gq#@9oJlw!mvlGEa4&|E9c@yoJ(t!hk5S4R8k-IlQv1W z_H@Z)=HK`aV)^l5m8-4p<<w%9?V1kFApppyc`c>iYSgfL^uy<`{WCByBT)+%TJHG^ zSX?LueonfuETyQwWH;N2<O+baul~X7jt6z*X;@>bFvU4Vn;J+gP%jr#r<BW$hj=Yq zm!rZGl_oo^mfqUZ&noT>nD4iE-hFR&T>U-E%#i*JXX(OMn&jH5juhDGIH}&|S7@DI z?|xGzqI$H9#@LM@6#E1+t|Vk5&ToB@?wt5ODTRb1k$2?}9mSxpkatWy^T}S`_KrmI zZB-KD92mwGHSQ~thkM%~up~}j|DAT&slVT8B%$3e!aBq1yZe&KkJ~HxW%5(g@PHxw zp)-7n=`<Pi71IUzCdi9nWc6~0c<Z@bmh8xsK_7tH~rF*_`Z%RUgJFxX^!N9QqVb z6Gi$AcOX|m-<r*Di03p0uL92skb{CNFbsQ%CrN_ms*HDAzPjY<5+O4@LXz|ZWFn2h zDV26@{%eul>u1T^PXAu%-SJhYbUQ;?C4&tNyRq3|0J8ulum?DLf)_W<%0k9-91R@q zF<wa*2$E*JcJ0ipJ*jq^{7Gi5_kxT}Jr^EWo9aq3JX~~>yJDRc0!=1E(dsiS7g5W_ zsdB08d0uF%E20uFyasf<nlGzfn$mHqyvWhxq!H&EBo+ZCvnRd%>GF`DUER#4wW3<w z=<c;_bxUDGsfIEuSBPSqAg2XWc?Mw1jX?L0wB=AX2QfOMvAX81!Lsa3pS)P%lbvxh zt$6$JPbrl2YKelru5zg|&qe`!`S_7sfvC#kxC=}<m#YJ}JqxKcndIX52m8du#pJAi z7*vfPjS3gr1ix_rYpc<FULrp!qhz^>T>y$cCa;arzGw9>>u1%^mx{JQ%a+S2(6Tsi z|B>Cp<9~qa1M>5^I53#jbTJ--f~3fCGXq-%2!-loM_~L-Rvm6nyNJl5B@&o**42p^ zP_9=AP>$&}!U2$)d?cXzzXpRu1tI~V+Vca5L3qWacnI5a4b=})$w4=W)?vKhvIcEZ zlKE9lG)?+tZzRs(CCU`+DTbN=^9Md*jc;lu+}F2$mFH@$$tKTb0*@juO=U%W<?Ftp zs!Vy2%d;Yv*#@#HQG9sduB48M@1~9UMtkmZ1SQ^o@PEvG=_|XhKQPo_gfFzbK`gWt zajGIF#f8)(`4s%b?iMp6;YPT&Qz}Okv`S47VN|C@j`f39cEuSmZPmXRD7wg-I_a6y z$L`v!W8m*iu6I6v9IGs-dx_t1A-*MXlV5NL{>rqwkQt``{}|JBNC(&Mbo~)&^tAmj zr_PNJ?hyg`4?@$fNQQ<h3|I6-9{q6!O7xD`646yD`eiq`XEMm!THeGAWOLI}>{aeU zLa*|7n_ymr{v0vi{oblM8uqY*`1Y$c<&BqfOz@;cX@jn;*W`US0C60VefUDYmX}Gt zhX}~AtzzPI*r?Vtx4=hMJ$w((5~1-G6?;L;sl#dWnkWITgnU~XMByLnvg~f?7)ZTm z5MCX!ypx6jw%p(b&b=vPWr<Gm2xCiOH`+X7VZ)tu>iu{74a$jv?Ygh{w<4>3ZtzOX zomZ~SMZd#|+Sf_#0N4ZFaVrbyF0Rk5zKfK_yq58T>ixJ`db@j{z558P)EZM`y7?sP zdyR`#O_iJ0O7`Xa-g?kGKsI8;utwNtXCDcBtm9gaJ;$D#{^hICym-s#ZH78t6_lpF zVB_B%HKE+BTXxZizL7nA=R3EUR-W#YVeXr^0$j%-@0PIlLHLi!PNlZa6-c@6qG28P zR+AoL-HR6{jh;H7rtrE7SKO>?);vicUUC#zQ!Eh{gc_O@V33kdnp=b5=4QPbF0cLB z)yO6GwMJI%T&adn6NH0-m7l;2cFK%t8+!UZgN2}*;x-4Th{xP@H)Ru3P9rk`2%diD zkz#rT@HOuaX=t`^zE}0PF6hTXL&&-5yyYZ~Cl-cB6zZvPAwuY(rBkOu6B|Y#P$a7I zjSv|6zULiYoplrz>P(epxCqo<Us6m)xS#LuEBe<nwi9M{HcPb7qm0-0*6fQ5ehTDS z%x%|wWI&@d39jNpF7QeuXkYB8;|R{w_=Q|6Ce#eN)xg`2tuyb(miLda+Fw7EJZFIm z+4L05zw0c<e~(=*z=++Fcf@~Udrk$eu%F~K`?P~rVdN~&J<HqBo@5(4+Kd{v9d!X` zi;Ehrlnc#&SQs*OTDsl}sK`=O^5*{j`hj{|N$ifgyQ-#DPH_rsK~x4QJq()f9*AJ$ zmm|%xg?2T86l+5!jH6OdVgXf=UByFvFHl?8uIo{~k}JzZ!0Q!0nHJ6O4_|GSYse|= zx4f=?_pV#6sl1Kx<}-}KHI=8Tjt+IZy1a!x!Z{g}8=@i%XiZPiOFYHjzD!E=M^_Pb zsMcuTlX7usM+5Kz5(V-JD20hdX$Dr?5jmt867vdi1Wdmo)8&r;AwK_csHT8vr_VB} zP7qbe;m;nKRg2wkl79~|;sy-(DSvC!mZW9u<x{K^tLff)(5VqP3M2QD2IEr>4emcm zDh$5J6Qq<K`-#=UfACaOq*a@#RS_>MVT~^r8T{JIb<jtFj}nRrr6p&W)m%^X2`;=z z?{pk$q$}QTK*fJ_y@W*v(UKppwecmdn(QG&AB)5JTK(cF<>a+9nu?96b&h98F!D2W zQ~gsbgTI#u=Y!lZ&Z%Geyzz7mOw}qGy%0%AfW)ctA>oUwb!<E-!`X0j5+ebu*T{o4 zHMyQHFW1ikA#GDkMv9`9(^GH!>!LONi@xN{eY~hXP|`-(NWAvI(?h7lI-&B1z%Q&| zSILmLe<g4T14ricZ-;x`2Jfn!VlJ4@RgNuX$2ak>F}9zE&KkSngvy)}5l^gpg-wg_ zZr$*z$3D@g9GDRnfoqmB6sc*IgT)i}NWfwW#E?Sm$y&rHzF0zx8Ai5sIhC1QrB2kR z2m!vh^V?QHy+s5Ie8_6B>X$<|AayxEtm@ys4O<J>!Qkr4d!P>#svrJ~r3dSlmts9x z@p}Bp?nJXlX6CmR9cDRJspo@78INGtlO0wT9tZZbd_r#>S+%)Ldd(o3vH^plBb>AC z85B+w-DrWd1Kw$!9CnELj*{r-?o4!4kX{3e6%{cH5jEIYX)5i-CKSyN#gbb04_2i5 z%3f^gSr$gfE?>!f6P=WQhTC)3z_eGJx11Kc`Ntb#e#s%<p`qlWr1rUKD>FeQwe9Yy zU^NQyqt?m2t;h(oa!p>nw4PXa)+ZXvc(?6aG+ohl7(elV2yA087{g~_qUMOQ#rxl{ z0QwqJV77*OZ@*t(Jgi~v5%|c&S0kbOggF?VP*a44OT-du))zffkgRl-+txf9X@iLQ ztiRZAW!&Hh6%4tZZ|i~K&n=O{MqAUyvM#WKC2kiu>9)c!YHY@9W~s9Y(?7$vF#Hi8 z2K5oRBiP~<H4J@~<pJfP&{`$F0Q`%Emgv~p@OXhHNS{XBCD2z9qT4wNKAoH)KD4<F z+UlnqW8hPy(}9$xSB+mZwAx%~pwI1?iZ~0(6Bi(k1b2F+%=T4!04#_SG<_6fS0alX z$aM&c<LbnU8Jg0KpJ;PI3f%CBlX|9%aO~6jA03o0i!`&;X4yDz|C0I1vlQ_tEa{2g zQy&S60GjoP7J)I%=NwEgZG9&vdkS=tqgPiB%#R5j*IEjWF(NgNKPuSsZA_fC%pXPs zw$|W7h0q&Z4izfOPm0&HX+>wDjK4kTQ*2+EUmE0*3|npCFPSw}b}x>IMb>4AsFsf< zpyM2ghQpnMLc6reSe`A6$xr2<g`ZZO#ry2uGTq9YX#5TU?v=6k{eA|@es3^=IFB9e z>#+%<T<i=F%j{!d?6erAMqN`?3ndzfIzL|y0j!#4*c&sE%=^f)bPn-er&~C?H5f4e z(Tzb`Reh!+DKe0NXy2+4dH`F8%{vlLMQTy9;ztWR``i(_V67%;ago;N{a^q{C*LUy zPoAz5O#k735U&5-3*9zAKT*=b7JMV&DDZluZd41ZzXT2J3GrT3ry7;ux#{Tl5vrtT zAP!j1r@d`S=>>@v9)3DPF#kzTfyJ=}ExuMt9#lc(B>dM0Cwngw_|X_I5k=NWMCZi4 zf!kWMvM~lo-uDyJ2E<(}!ouF6)a3H#Abesgz0SY+1^65@I3o*Yh-oK3y64EQxF}YS z>cz~Opjs9kRq;VIA#Dd_T4ZlX-OpOK21r~^5^MGKO3iY&u67IFabVI5a>OF^W}68r z+t{q!$(Z3Cw7y052hp<SKggU?vvn(PK4|aN&Y6$|sd)DS4ES?4H`En=qzQ|0b&1e6 zO;<I&#ZQ0`P98-CVDMHACgXi43EIaykJ@<C;mxo<;?|6xHD`#H455Sh&Lw6Wi9cEE zR7L_JwPqIFR(6PtGK%wfG_dvfVAWfe);jW*UG$zR6PhG7eObpeB640Lie|u-frcfs z8m971n>Ni&O<wt)uKVtUX2`Q+TvA1@o(;7rdiQ3vh$OnbC1u@@4sSPCs3i2Mwol=1 z2O>dz&~6N6`uAGc8+{&4t&S(l)Cx7%;^q8{1$KJy;j$l0n^s4wMhpC$3IZ(RV@t*o z7re)bV5AnH$4Q4^fR0xOV@O;h=?gG%Kds5WL{<|0$0NHyzPzd@F%B(>gDy&hf^jU? z;h#gQmHc3!Z>1Jd-6WGSdM-ms*VJQ9o~=VK^)d&%&PTho<8i$i$>{zLM`LCLRz130 zk6SS!=d+iG$KqotwVak=GwT}rTpaTAxYV^}@R?4pel<}wGDX{GQ|4dy8cAGCQmAQ7 zpHV9_e<=_RFYkV<d^o7&Um7u2ba|V{k<iw$)U@}>EAwTW{G_K3aoDjiQz%(FZTeF~ zVTr-rnb-4#-=*<|k5ZmNHow=&Lc@b?&kBQ<Vi_gxpPlCV8e<0UUyW#S|NfCsH~XAU zaR;~h%s&!R$m3rvGcnPump))3;K_aUx}IctPj*y(DEAKhM;d+(H`&2jmOP>|?s-1T zU@XyUJjvjZ6YzvSZY6lTfZ;%lv)i&_$Q`<Ut)`(dhHZ^hy8AfpsT~|>F8meU`nGH8 zc^;R(nZd_!Px%R~<w7(O(%Cr%wQ@jTKV&*uo49(>;bsM^uFSh8M`1q|c>)FeG4>Dp zk1rTtT!dPARx0JJKU-`kdrY`MVmsXA2`~Hn{#`qS*LSokLb;VYd<>Gr+c_!rwCu-? z_7(HpXn)UJh%(R-gWYn12rC>K-Jc4?Ej%NUrAd#rj&YlBr1m^L&q8c3(=B0w3mBM~ zK`98Z6qD%6RQ-E0GlfPtC)OvxJ(?HcC4*Q&b@<o5YF_i6N2(xITDnF3V7xfJZR|ab z{(hnA+Ct1%4n+@}y2~rd?`W6f*m-9Y771x~JU5odJim{Bh%HlHY5Qbj%%%YUGN0xj z(p8~qnWfD=bQT4+P(jo;X8h!8p^@@Fgz{Nq@L%dR4mLK}Z&FkQd@ik<6U_9<Tgq?< zZ9K|5YKLI1O&+?~GIfrprZV#hpLH4<asK>X!AARN_sOAU6$kduy)=T*t|YrRq3}7n z*CTAiwZ?)~S;y_(;*OyXmocYx*oT}>;K1%Y{aCqC0sgY0XtMrIXZu8$`>b6|f!7A% zXIO)LZhm}>nMl9Sf}WzzHy`bD0AHBVxxi3#1=U+DfDbX1xtNFbstD-72-N0%z(+j1 z>-vxc(AswgXH6B=A^}6JoLul+Nx017d=qa0ALVj{Zp#+#pxlb8Q3Rvp_O>Ea#52+D zZ=dW|z<Gyd;P^YuIw7=*ND@se(wA#<i0n>=C#+5bWyz{TZXh-qRDLILG-#&9<#VVC za21|)arcI6D!`W_NB+I!Aat}cRTPyE#Qk`w!pDr;BKmGzV3mQ5)`zTEJ~C%t#uF`@ zGlFJ!;K9zU`q1r=5)V<tD^3XI0TlrR@Z6=};j*@+6=7>>eNZdJ-YIo&EaC~gxkY&4 zCh`PvU@K%d9cq3YvM5U*G8;gFg^!NubO1H2(I;)1I|XT#w&Sv1SXgV=yn|S2+UOAw z9N5jZK)@&L<XyQ^Xn3yD*n+c+Izm<$w)NnTZE&){>aRdde$Uci<?U8kgP31~+#-}Q z<B`iRsd6E|wLwx9a+p^JEul;+1f<mO*I6%^ieF5428^5EA?dj9N8W0lg4b`{nw8K+ z{xq_+v278m6qcv3aQdsuhfkIg`418gIk90||0dH$%N-VAq<UBB0ZGcZ=DUzF<l1@- zjBN=cxv>->_eM2}$794G3t|4-W`(!od0DrDdb7wpo~HF=@<Y&kmaUZkc8C#M*MllX z6VVnN*X-Ug6t%n?SvXdZr&}N9^Zt@8?z+fm*&6js7D;}Y;;6ed?(5sWN<~d<O@ilD zcTEb=@EVzbQDtl5{gdj_^CHC6Su@Pt=li=`+85Jl>xMZpe6*1_`1Up)#0uCh)h@OV znq~#5vS{whW~W|pZjKd72<&|aD~xFNDR+zl>Q-EhF`DOkQ$(`ec?QG0DiiOdu;<h} zHP3n&VEpK#!>y`W->){+dz;V|>_EBtKUnWLDd92dK}l6f<B4rzQteSJr7~CARoP+Y zeH=u&3uQZ}wA<1-z+6Nh3HQK^T*<BZBlvzMsG<EbpA@neCo>Rh<^?OC7%h883s~Vl zyk8dOcEs~P>;k($DNNy|D|HWw2U%^dP0dn>pe*!dmDF_NT&)E-HR2c>%cI&MvsC`x z{EtK!V(R}XF>A49ag?2#;%3Ho&BeCOns0L7b<Wjsdz%csr+eplgr}hXm1MOGL{;iY zrF^^efUuj{@p=tmw#U!3I<nVnB1?MGbO4_`xjM5)P?BXHMD%kvzrWx|*OFSy*j1F~ z8D>3y_C(<|SMD;e(K3av#wikH>lhpSYCitMdJ6Ib%Z`P4*ToK*7_YQeZQUyfsf&^a zIezAmI<2d7lZjYUE7eNXpY!X6tNN`w`=-9!3KrwW#^VTmv%*(eJ7$PFXT7O$`G92# zv{^46h?83_6gx_e-a^J<{ti`hb|(T)^LSc6R-u<l>ulB2zW=bZkTuwO^4F#~(&Y9h zwkAk~5>^i*GzxuSXChH@Pn+2x9WnN(;i0CIyWQF3c+CqV*KS(HxNEQryNVc5q21YG ze>YafZ-r>FGp0fxXu+1?wut*TZ{Hiu9Y+0=7o>l!B#?<55oBa#Q+bYgaem~HC-iHQ zeLAEwLH?j-I#wDg7TjO`cf6u3HHGMA9&C-r{Pww+n_u!+^dUM%E>ip$0&hK7TPiGA z<3Kwy_}bJMY8W}@d~<#H5W%Bs$0K;pBq`N4u}mS+DYiEGS-1mfi&bVR1wKKjok)CJ zsn%(ZHPSaTAJnO=%y$ZXC#7BOAE{g%{+LeTkSY0<R+YQ6=7{vIYYQ(|x~uS6{vKss zOjU-o2F<2<e?nrug#A#}IRoQ<OjR(4!iN__IN@|4&9nm@|D3!zgY@FvxkDN+5+w68 zOhUS{conV~)YbG*V8rpdXC@EKT(m!ZZfD(0*SZA;(g>UB9eWAIX{&8o#xjIf`hVRg zq??Tn<!>*Iy`4cCd!}0X&nFbjW9HSsH@K{;Urb9Lt@V3+)63OlYJLG7PG_T}vQ0Bd ze7-u36le%z_@<X1BLAnur9lr2R(<q8iwGM~g@^PGkUok~AS-v7_y1>Cem~Glnm5HI zPJ^@43J=C*pLW!XndWE%TM%Cn6$({&71<Yfi;OhpuRa?@79EoDwT26%#-m0AmJE2J zLROxGd>d3SSV@r8egcQ`nl|{OBize>#L)ym_c?(2C+of10tZj10J-D?n;{qXz^H}< zb%4#m8mThK-#b~l>Ug!6`D92LeA(-w64*c~cgDcCDSL7)@8owDOv-3P5XnfR_48F? z+$OyLe@(LYudRPQeCJrXlsrYAutzSCCpkVe6`0PVuh^lBuTRtfd8Zw@7Lzj9KPM}x z_)<qDRL9A3;R@wJ>p}fKscT=yqIyB$gU9$#QzaW8^Jwv%+a0?Tw#Z3yb^5Njq|3Iq zUSjH<a`7ai$=}?qrk{8hX-!+=`&@h}QG)K}x>qZY_p5#vRJ8B11Xx)ZnQ5DxeZG{b zDxmYTyH(VSkPL6?Zmsuo9H8${4;%xXz0ETW?74IkJmEDoXQ>hicy^3{ZJnEbzh*g@ zdc1&E{A1YG){^!<vb33Q2_Y`VVDloy{?Cg`nwOiW!jj&$q=7j}WQ?tJ;rR(Amm#Vm zxH;o%CM{ot;npaMT-G4Qcl?LD@q|-9gdv0Lq+cI%m>rrJ6>S8bXL~|_6?mQUk`*s- ziis0uh!4GeeUhn5z5GJOH5rdO<4e(?h-f5#ftKT@=a~7?AD%x^XYSB+WkwdK(&6pN z=)F#5Qt44iRie7i81iO&%DsvzUuCNYojvb3)dRGF73$>wF?HR6Q2+n`tPm0z+3RFi zWF;JOI3s(n%E-Q~5^+Y7y%n;u?rgHliX2768KDTpk;*vfa`*YY&i9|+pZC7;zV~Z9 zU(e_B@q9iW-EZx4lDr}nWGv~Y_C%&yI<kl97G|y0gDKf<Z7};){G_*>ib)u+AS-rx zv45hjLes}al$j1(%80X0DVRDtbIvj+&6RIHY9*|2lc5i0L<y1`gLK8}W9rF4Jc47a zIYl>}frnD-Bp60nGw!JY`t+t;;HZH>f`d;)Y;4VkTilzhMBMaV*ko0lHQCrxGH&iJ zzDOM{cNg)$pinwiSszw<%Io(*v5xgP`8zs&R<pvpv*Y+lL}O^2oFxkji>{Qc(FMci z7t;HBd`8~M)8xr_rDTJ?9(H=cI<_Y}^oJpzuQ3L3aNw>?<Cr7q)9$6d5VzJor}vem z;iBvV;__$ySSkUT4jY@Fw2^I_sw1X~Z8Jz!S@z%+J)3D}v(JXCjnG(-eA;Xqz34l+ zI;&`>pD>hiJYj$9mQ?C(kw@LuCcg;O{iu#VW!bZfZAK5MrUsAXv2sez*6KmVf1TUY z_)H$LweBxCrkRkGg-QDS5tm~XUQ{P;@^pO`AB%BYsW?b|Gpnc20yoRRo-t(pOw+{7 z3vJLVvY+?vX_fxn&s2guu%D*Io#VagYp0tzi5rE>dvkgyo$3C_E`(X(g5HIl6gO6i zdpL_jRf(g}q?Q(SA8m2vE;j@GG7s65_t{&*DKX2qftAI=h{h1r+uP+MEAnlbGI}ou z1g3PDYKM(2Se#sORl{#iws1aD(dAX1jS=f_wZ;I{YB89<v3}W2&@)3;btL-(qI{62 zeiSr3n0pFz+nw-Fj-9J#JT)hFe98CA30!Po)3-)i7dj+^?{2LnFQ&m8U@!`CkJF_$ zi(3?UtLj~>#{J_sUtlOG3%W2F05I5%6M8TA8%)tRa@o35ZTaJ&8LCiJGv#lYIsf?B zScgVXwMAcCGoR|qu0WkMT@2W4O1+K8mbz|5!nO`}DVUyef>`<lfn0LJqocP2>(QHA zpBe|2<^+y6?r%?ZBw^Bt<SdXU2<iM}Fp-_#+H6&p?Z_0b_aIy6Wt5U#G)$SYZts6d zYchLpZbrn<%BdL_<fy8R8gSTU27ta2@UEm%5W>~zo063YwBaUP$G$+n)lk$0K3;#5 zQ3Cv9!yiFz?pbNI66tx3R3;|&2!y_3!p}V85Y31200>wI6h{n*Q?=24N^~k9XKKA@ znslE3!f&4kZ(Y<3b1_xVpjqyFt$S^VIF7-sX{%A*LGiyy0(6nWC80lG>=c!l!__bU zl$L(<uy}Rf!b)pUBn6#cJ}cS6CMsl-5>sHofj=PDQ>?i_^ik#GLhhu}inkVeE$&+w zFPo>=*Fh3!aCaA{bd@2bANtIzi#9%rG9EmGklTD)@Eq13#Q}_9%+e_aEhi^az?^UY zUfWU2d?0z3a;cadRthB{HUOF3Typv$1uNNBNt@%J$EXNR&33Gvbe!%EKh(}!i8qR- zOB6B(bN!lPD83Z&Iedc05S$kJQKl0o!q-LocVVlVae(au9EH@nW}MHQzWfJ?A>6q7 zza!EqwuHO7kO9o$96!}bb6O&I)Zr;hn#J?S%&NvYUY)P${4cImr5Qg;gv%<(g$gJM zT#?afQTtrg=^=w@yHo+5%;&HdIPWYh$}S~GE<QDn3wrRyp&=pY7<a*|IdpO(J<(n3 zOnj`Mn{H&~{`7^m?_(WJ5+w7rbkM5{T4fBSg%)+{YlfWIA>8D-V<cr4h|D3B$?ecx z>~T7HY3}aJ+4jR`iM5fE1DXJX)FmRA`Iq}R6Gb>dCGC?I*xzZUAfs5?D9T@<KWQOp zVXm9>=;f12it2<XaRW2H4*ia#Ka?f!<cE~%;<XDr67Jg|At~GBrOn_UMGH%NM4lA& z7Pn)DA1k;R=RbGoc&BmiltT=6`uX1#IV(e+jrB-o`G(jE-{8>;{gGjmqvx01?5JzI zd=}1-865P*W^vf<v|Wh4`dNA+sDJba>GL;bj#dRXGCag=Rb+fGOO#ZDL@DJ+fj@h~ zpD0x<A`Z>u=61(vwbqjRCMjgDjaJctIjb8MmRC5{U(}A-JCcI@$<PRp-wPGKU-zin zn<;H7#ZKP0g^YLcM**~vf^geka5MzW&vMA^nlE4z`DA$akV_Xy@grQvCjfX?QX-}l zdj#EuEty;sRBRbA64zp`-o9rR3FeTi$|km%e%CN;)n9zQMoWi|sR6-XpC9!oI|u?E z66av-#KYF%<E>yeV$o77!IhKb!G@b1Zr1TkpCMknL=c@L1_Q^)c$U3O<?#l_s*MiL zmV$e1n^vG=Kwd4fMj{P@s+PbL;59BdyTe0-e04>Ae6;P}v$*KBT!S+sm@?E=n(p7D z8im}Ybaki(b{Tf3=pK}<qIXRk&lc#0^Ir8{xBFHRKb<Z#87~!jVL44>uG@TvczR6v zM!O|rrsv3qsrQP>E8$mf|BJ?X(Qw@TAr@qC2L3j>`H#!m)FIWM8FQ;vg?d@m8qTRw zoRtsv0a^CaeF^*<0F1x%#ve_;pQz?7mB!n92ED&R?!Nm%Nt?*3PG_cBy&2WJ;3?}9 zZc%#4K&?QUc;8xj3N9OeGwkfA0nN-Z_&^8lEd9SvjW$!CP2)}t4C1VG%b>364E4|& z|JosY)-BN?Rt%-#@_lX8nLNcz9A~W;+s*3V1(Ce3gJWeKtSq{%-+kh=D|AvK^~NTt zX-m=7;^aPch%8-;5O4q7922D49bK(r@X5hJx<X5Mq(CWbK`*{x&4{{z%jmO~QXY(5 zA#P$$w6_(X=d4r2{j(4M@bO$ak86J8w78s`J_m>RGwX5M0?eJ*&YH7zd9(3KE^Fqr z5touau9XE3P9Kw`TP%OKQ3+gnxo9cS<*x0@5nFD>Cfn3;q2#Cf)O0IKhu=Bifosiw zkmLzo1Fx`yJJPX5$KjbV+X5wRE%Xu{&4{%6aT-&bVS5EOOL1uYi>%Zwqt;6zs4tSo zc$ZVfR&Z+FP|4BF)Lf;P!j<7{wavTMv(xG^6*=Zs4NsB0tx;Z&UsjxDz|F!+kiZR# zeD_!B!Rj<=`(LCBNO4{{EWXsy^B-h}7}fXHHykY3(Eo6+N4b8kuKxH%#?B%-$q5uF z$sq0Wn<W&6xD=_{N5RYR2qPI0yRT5uWJTj{t4_ygYBB<t5Q??jZXc1g=)q^12c5sF zu3W5m85+$hfj^-VNTF3Vt22VwQPnKK2{eJD6v+ZgSJwM7bX{FR4KK9T2Z~^0j&apS zTIbdi_}Q;g(DkWbO1;&kkJZ$C48&?K{774MkKy2SPb?QMbFEDM+tUfMem&D^ZzinV zTf7J%t+*ZTsTT3D!E50*a(6%tYsn_kEdbcA5Xk^%Lh74}*0yuC#=l>}Y3ZHb4W?R1 zFU<AeDEnvgOvPfC+@e5KK+YR}YlW~ahSaU(@WEGQ!U}t=Q!A8D-2e1UBxX>KHKVm| z*nWiTly`%pHY|p$($)jUZJ43FkkKrKx=lS7ZFgBbTD<@6Yezf@-bHx?Bg5VcRcp_D zrPfW&rvKHr`KH0<PbwF(IU#w%S+=IrM4|e=c}hi(nN?m;`4&ek<d~}FkemRnIM=ks zSaZDWniA78x`OgB*9Wqoo$iDeTAUiv%?Bo27kiWH!$u44dErv;p1wUUq@Jp`&UQpZ z)#X<Ue}o|sUsfL{mXw&iROIBeG*|b!BR_fFaQ_@{zF-cA5ecHE7(?<WMRsOOajI%K z-_dDP)r@3t45&xNPRhQ$RV<$M2rDD&w__q=bF&`#7Rcq?ZCQPEr&>v}(qQ6D2>~l2 zF>;<M>)puke~`%>b=Kd1R;c#B&Jfbh<Es@gN>@`Lk64YUP5RKC9pAtFnXNG(Y--BS zO?70c4((zfb$(1ywOk&;Tpj#0pb5QgV_!p+f6PMvYfgODLNU*zGio7Lm4(1h1=f$_ zb`GaSI^Wdnu;1)Q8DBW<-lb7c#XvcCbZ#sLUK>)7m7Kgx_hW($7bz}I-CwfV??5Ka zgf!|&2z*USQ^m|Hc+s6_^A!xu1H=@|-5tiw{+RM{oO^M*DRUCkMEC)(C$FJuAKvwd zqPjNMO|aHQj|<_F3u~HM%19R1Q050GdPD9>ZdGDpFL{*I@886l{0G6w{ZL(t0V^4U zk@4}&au+xGVbaAPq}nI+!?efjn79jFt*-lR5Xw!umHJcjHHne@oTRbHvHclgqcfC8 zy97a!H2ZL<cH+M|7ieVBRX2~;Vs6*{im;!Ig1W->>9FL5Wy&U$!UWF9@gY<>YCLkX z6+YDorOKz7V5jjBVAq*B(r8dcCV#Zs!MkRDFux<c`?sbk9&UvSOerc)ALIzS&Ssmc z7#)yef}I+g?~bs}A8Qjy|FL<e4LR*Ui}!~5?AC|fiVup?-xoNSN}A(KXb?<NCwPi_ zjv&+~E9rtw%oRBX=j_GBYI4%n<wlin)5Banruu(RyO!u|vrH`q;`|3$gl)<>HLdsY zYzPNYbP@tGS;vH`C&BAS4ok`*K!EbRTtaKd<L{+c1?rszpmZB>!-7%t*Akrt<T*Wl zE|vicI#Ac&W`>nX8utFE_bsBsQPpt<=cNFFhTA3(n<tl>g9^J#e(v&h^L87j@qc`i zWvl0INJP-k<@<7+U%G4SU=TpxcDQGh^OVl}@4>k*eusxL!5tYE&U$gbpFao`Y!#a* z^DJmkYkJG0gdx;CHtX)qV;SY@fSLNvw4I6F8@{c$r=eu~P4|pgitl==6Ph-P7i289 zCXCM%CoQ#X`J|P<Ep*mW%VLzf8wz0sDiT6BBDaUC1?y(pP8F$XThp1*G0JM+tS3Ms zQFDhY!oTq{!yk{G@1gwDD{_2+i>NgRT$Jr!kt%b!A@b_@3tKRH;_@*i$?+QgD-Z<` z!X%0Zqf@{ao|DDO1xrJo@Y16v_&7byeSK*8_5(m^MJ6yuTP8A)<hKnhpuJ!@ZsMfG zs#0m7Z*6~o80AmyIJN~F!~C0?yVxew8NeGp^m`}FrZ_z++ga_@d7nPb3+n9J$L9zq z)rSgWW#XZ<cxEjjOXLKs<cJbJ(-b9l>2eJ6!If&5zdDIgD;6`L8o^Hi@2u7L+f;{} zB|`gAED!sh>Rx*uF+c4EgYR99nP{>4%UGjpY6%<8KP`^W8j#dkw*i4U%#>uk)d{;; z$lwVr%#IKm?d!Nqf8*}9X#Y^E4bxw4;4n_ieKu-*YAvhY{mu~6byqWa3pSle?vPl# zW#5g|bPhQbPGkAWuoA1<GjJ^QXL-$~2Z!R2zFsFUBX`i0cG+f)WV;eEL+@~Lh)(uK zV?Lfc^V50tG=xI7zO+f5dh@V9$Iogr*?Qn4-r9NGo?2qRxi$B!gU{%SHxHe+mMPm* zQGs+=q8tC^H>FM)=%iDbZrHWOBN|O-cJpsO;`YzTcdEFT=2;~Yjw)5M_XV5pqUIfU zqplt<r*e9uLvAZaj#WRo<*%88pHv&Eg?hN#n7w;<otjlzTj&OBhx8eJ_*h+=9*5Xm zohM+BVFjhP?7e?xC*G%9a_gGYM9B&~Tg<X@&D<e4ix#Ot%x{$OVil@W{ggzQVb+7F z*FyKUJ$s#f{_f?`rLPNxHpzJXI~OP=gSTi?%51M!Uh(PszU=CS4c`*%@#9T8$lGFx z7xKG@av~fI<6br1H(OKCyUNb(<fJ6}Qt@`4)}VRC<D1d3OlM`0J8#EjW{Dk*-+R(x zdWG~)X)=_)7(7gHip*8FNjmLg2uGJyRBOGKeu0OZ--HMff<?4>gc9G7Czro(rQoJb z73hz`XL<X0%r<|d*zdgS_*+;l=Z%7bo`j9heS<T^jYsAA;!kdHt=^oANDb%9Fmw11 zvIQR%Dgmucr?U-P);zq{d7<p7YWX3pH#C@d+RMq!lruHtG&1;{=(|eV#HtY_e=}3I zu$38SOs5LhN(83r^)BEbP<~(Q|1hGV66Upoj#k>TAuufygOL#q)2}GNW8;#yHf_k) z1GQ*3Pd7BRNz#(T?D0t}nqwB)$jRrT0a`mE!=27<YX;c}J(11}d49$Y=nB}*5ep+V z+E!0LB+i77r{=;v4Ed<mu2-;+*){oQ1o)}a?CwlH#5&@2&PO826d{Oou!ActMz+^| z>mOP8Tqjk2M9&w)6TsC1h)rdR_?x4cj_Q9#TT@(v$Et!;&o^ogibk$gz-O@4TYie1 z9o3l!uw6lbrDmtWs|R0KY-T-Rxqcav!O$9xL{`t?{~lIy8<cGgR@?|L$EMXpbo|VX zIbT@#&OZn><P@<e2&e%4`ezI@=dWBT6NK4nRwzTIfGvsnWjGM8?}GPA$#&7bMNly( zaDn31dw`sGXx)1BKZqPZUveM;w!ME6qdrx|=L!Ubol*v6F)*;vSx;E_oBH-R=dDBd zP~TWRtfqBZyXrSu4=+f+bS%I)((7xkj8EZ7qT=D*Dm{s^QKi%@qP#I~)5zHY!JQek z)30Vrr$V`oo~c?MYo^JMT0HDBI9rp!3O$D$IQ;yv@?|ET?9v)_?l9D5UTOg2D`@zh zpuT83nZEr);3$1#ie`h{sQL8VHCe9JADgGM$H!9>j)Z)y%%YtAO$_kwxkW2=eZFLw z)wnDeUGB~0cijgZb-&I@KBL)id4Ap}EtlmlpsGSn5SO<j6!5OjqDxC8&64SoL$1T2 zRBiY^UcNGL5VP5B<-}K*JwTqrTOM$C97SBrY*S)AQ#+@Rk7AkNjVk$y#Q|lg_SQe% zfbps_*)X4hJIa<A6J^?ZpWSMcpWfu^xLOWs-eoC}0F+pbX2Rc+7h}jYd9J{ShE8k& z;|p@hlvL3+WtqIdSxJ9UQhOGT5Yj%P<VRayetxor$=;au7e3D)9)n3-$v_Q$3VtuL zUy6^O!8!w#^}~6$-^Cqs*V42o<r?OAE|#77g3j&1MyE?#H>nr1<Otmh*u~U}ht2_| zf!npOAm&Dr>YPN!f9mt#20N8kF4s`&TVX^?twPl#8M$*C-VEr^m{9>!$oJ2gvsPj2 zsl@ci!|n%eigo#0S`|7PXTl(^1j<*}d^8NUhUMoJE43bY23AMI`_^A*e3mm4TxE6q zjm_WEVX%I5Q_}6AEfK65)}!=*OVN!LmbTT7KUns++%rdcm=sO;*oYq2c|u_>=g(-o zmQK}?njspl2R8q`5j|pW6vxZXAfz=*^oIRF4KBoopMDV9t07TcmLcPvC1vrYHjW3% zil!&a?97C(gf=m%C77_@`1rd&{q1MDKwoMYXn>D&w6(>V3Tl{^j;zbStb~hOHLIg^ z8s45i7gW!)f@ymKGyhpC8L4%eNZ9i1VYU+-D6N+{<*KKNPKDitt<Y8k-U|-qflV%< z(%YKfF_gR2hG52S?RF8Z(;6ge+@wvEti*W@{)6zAqKyhs@jE+HHE$9U9LvOPwLa*m z505nJq)eDz`df{%R&tWm5;Z+6Rb7dN%^r@ho^vB#s<yFBZ#@vd`Nu`&n(?-ga>4uz z6jPp^FD$DXHeR=BdiZpoK(jEx=_38$pqm;RX_T%OQd=>i&=RYcs<lT?Tg*T%Uce*I z<Vb%VRcpK0cz6sJ04O}`o;nsofASi4k&rUf&@1P0WG7R((Hu>zr1=9ZrQO^3AY&dk zpVB_P_{pchz{giQ@MGlqOM2W)pnPmat4AF}s7e#fKDnd2rc08wNG<o(t%~Zh@;sm| zFcx}G^!${DFH~GRqZ)L-_QYLxsbhib8=wCaS2-A-rw3)H&Sm3^K|5yu`s6ly6ml!v zB?1><FwbQ+-xW%8*R}t>FJCa>`<K~;?6Mv;qu?Wy=A!`I$bS&#?V>p|#LNYGeAf4& z9^ZO3ZyGWSDe|=`BHnk>9(a_Z13SmP*Dg7xjIA~2WDVFRS^fz_i^o7OGw|nPs#Qpv zLQ_%YCHJNb;~dPQB7w)yU~$hzhuK+==7IU3eojO3&fQn(yp6{+LFu9u%|%WhXXzwH zZ>&?J5TIba(jw)`-U@1bE{&^4r&=Csuy?~koSS*CTNKn5eK@2k+1{yse>$`=^XoM2 zVlwihzO~GH^VDc^Ro<P7*s2T9=h<roo>3#H;OV%3yLTTo{e;dI_aN27RU<j2H;6BN zzH#%ord)wL!8JTm+L*f->3132xn`KF=lISt((eyQDQ}DU`iOYW`iwc^UUEtNo!;AY zZ8bSq^b2GT#Av!_A&!r`FWc4JOA}=dXmD9qn&~Hr_W#yD`lk$ttinBiTHiwpCq+5S zc}=}5Et%q4At4EC3uv-n+#hBpH_Vq`Qvv_4$7>b^jL+>HE{hk-bH$o{E`WFx#O>WZ z#bOWy56kl<K8U|B>lSQ|k{2$5^Cac>fl#JQtYkX^l}ZBf?C8;M%z;`xxryckU^6E- z{-tX?smrwx11peH#5QXRZgEeu6!iqQhUEu8za67|2NGA=n!zfZA$y681s<r=gAR2X ztdQk_L`h}e7fPTEptiU4Fvm2;HPB~vj*{**@Dn04kzteMNbt6#%1$Z20B9YZ-lRIA z7`!Esg#uKul=tGFIn15H+D?IHSAcy1a>MNi(3t<knivGb?g0{mdU7ZDTXWKPcHdEn z9W?tUFQr@esqbPzwD$*Ly!9R$I?4X<?FF{o`<Aj%?rnd&v$5^#bmbm`HxFJ+X>%@F zsJyAGAmvW%ZFX7ft}@ar<=SwI#K)G@7tE@kfi*TQGl#0`ZCTXzr#+2CrtmPno?-jz zjsH0Qq0-_VIbOK~mWlHDQGRi~see;xZ0^mMPi~3m9WpCyKSV*>+QdX(j-OyA^B9vV zc3=DM-dRRhEG%wR@IxDVKny*<XiR$d=opVvr?a}Gi?4SYw3N=cDlOZsmk}mp=^N1m zLWwv&jC6k-PM}XQ)-RQ>rdD6<Ms$g}n+SsA(quBk^x#i#A?H3GD8&}JS}572qk8~j z+%6Ju8!FF?ZG)7*oF&}aRMpEoUnJ2Tl3$?h7J7Sm63DYt+DQ1@{LUO?mSwKgW(8%v z=*<!_v0-;KNlmLIU!^Dht0xQ>aq7hPw4%9v(}4I9;g~YpayoCCu+ReI(R#7`l3}+8 zxN-;rz^thhPK)k49GDwi&l@VWD#WP!ogP4hT&Reyn;KvixiuF8f1RDH_rzYI@>g?c zSLuQkQjsVrU)+yM`FxCrw7t}}jlQFJN)Q>BvbAicy23<>e?^0X$2ARWu8QADI-QtT z#MlLQ3$AE#T*gOfAG=U8vlDUE4oOGH@sG^(m5e`BNLfF=a!2Tg;XDmxD`@P5K-Lxf zu2=G(;ds~Y>uD)b{~zQfo_c5Eq%DhaiLWHWvRAJh?g0(WwNwaun4$L}%bS%aX>4}p zW*EQgC-*7Sn*2><yS=}saQ|Z{weNN8;Q{Z=dI$4Vf3AYfOG`{fzM$<fepVYA6j?bV zvgVS$_IQk$%JhBRGpF8f<@wu^7wQrlEUi3^<Y)O~xwnt{R{rh1On+3|p~z*dI6}2~ zJ6WV_qwKMIo(PqDgpDdky;Mn_3UY>oXd;p#du-h@KRVP`C|x!P{5D*q?q7o!c?S(% zi&~KU<YpLW1GVlX`3uy6I)B@ZFEi0MrH+Y}W31vYRkJ$3R+ll|wQAipms<}{dQN7S zERa)E#3C#(YsZgyyOh7L0QE($dbDk+(vY4+8J_QYY<^bN3vW?Y?Sz_Q0~_ls8*lk< z_(60RyE6_*^wDoIb{L0by|Z%V5^be^QGP|vxZyNoLz5Q+`?aug6_wQwQ6<%2$K9ZM z>#v&n=nJFNDlP}Jo~ii-5*wOGb<xZzLsfZ$0_@7GwpO0!*R^`$R_WkA$<Gp1%!`mC z+_`C2vSmU7E9FgaWvSTqcL*>JAex{+Lzv2dm26+uYM|B!<bF5-C$TlfFudyrO3i&I zVe~6n66-%KE*%(`TNLBc1KyrWrgRPAYdSy8qpX1_6<7{R+<;8+sPX83)wnp`3xGpX z1xE^rRgAiH0(K|qhkD$sp1z9nL#}#A+S3E0b0aF243=4fM8lJ3*7mY1>E@ZV0Zev6 zKu1~=T=zb;6xR>ib|q1~=8%k~mDdMPds5X)9gbaG;NWpWiiIT;QRP(RPo}^Nd?c4v zmmp*2Cn`S;M>h#|*X`v_lRG9C=9Ixkm{z%I!?>F(ulLsDC0BJ&jhi{~PS7PhJ*jDf zgbMwcArQgN8Qvk?eA6SVAcni&R~lsEg*=Ru)D}m>Zc&xnh-<&1W}y71iGrb>?(mv} z@)x7LsjmzJ2?1{|(Yffk{t<XwlYX6E4mve%sXls-O0R-I!7_|kUfNz@y8ZEOhE;7% zvHepfX0tkr39Ve}f>=8#Cu$d+srP6BxK1{K3#3Eu%AL=XEH5;gnoeX<FnOVs)tGdu z;2B@$-H<I_BnrbH(HL?=VIOOsIclw!`Ih6aLsfM(LyZN)FOC4YBQ=8n2!$UrG%c52 z9SCom5<roi5SSPlOlkO?Csvl>GyJ2pZ@%Qaz4jc;h3N_D$dNRAfj&g6Xtz=LGlxR} z;yK3rrPv{Szhxema&PvVI1niP50E`eeU>lUiX8=AEIFBsO<}lvVc}!yIZ#r2(R7Y- zqSfWmX9j5r3r+k372TAjh5n-KX*B;E1rnJqC#x?5!l^Iu<f!jk00sYjaeZHmJM(S( z`0|lRxtxI9y`>pyTpO}j?D)EnthYc$O|8MBtF%SJKI;@f?n`3j(&wF-FuAYY;^_fD zk6fkT`i`7x*i+&BR(<}6+`L>3v&7S{gJ?S>1#HIMKo1!{;l0Pb(m3v(n|TF#MN;@H zY?n&-9HGe`y0vE1%`3DS)W`$M({9?tuer0Zv5Tb!jxemCFrCDbKa}KSgK>Z#=p1$> zqFVm}+g!E=p+>-LC>1nx<foKVQNWNvdX}b;gmfeD12uNAIKD&g=v?Kx2^%B?-ljY@ zCFf({cz$v7Oa^>76NNqXNBso#d%kFOe<m=9bpuaKU!|zy%+cL6ZYQ2QI>vurBQAm4 z;Rm!l%!cRaKsxLJsF0zg^-Jm3oo|*e9KG|n9{yuov+vWLbS#4J9c@cY<wc_6<K_S@ zA|F^G)%dCh_r{^Mp<3cv4JM;TDD9Ch<qKe*D4VxT$D&aTyMFuayd9GyZM4Bj-Nu%Z zSstVJP~DwJXSZqn5MCbxl%zJ&v1^onfBQM<t&(Y~Go6OI{AeB3tqA(&<2@ue0zYd` zy=a|~8<2m?!9{-%tz^e~II9jubDPtCTB>O#l;~QFYNQ0~(yW*xE?m{}9OdW4?mN5Z zJkF&JFWG6~I=!r0z*(8};L^djd_Q^#uv@gEzK&L15fGJ)m)?32hJo;=<Md@agzIzo z_6f%nX3i=<LFeC7>Md5|x;csmAGOkUWP=`f?!SCOH;8fvDR0y+7|h8v1TeRa!Ek#H z_vuxK8lM{b-mll|q!fCSSqD^lo>0$HHZtO7(0S5(=C)>`)iy=kFXnq`SKVWr67yip z<rew$>dDceGzT33^G#A$7fni1L&%o+eE;BJaQtM=V)!T3^u3#`2h=CN-k;y^s&aJ2 zy7Q^8G)mXdWBO>LVS~V$+QUt6%rJ5=3gms9YH0}!=3_O@CZWu~FS(Lh0`i7>+W5m) zt&Kf}(bNWMHSLoc_jz;90EJD~KFjKmhs31Yk}a}9rz1mUp#?CfJk1Vx-_)Nb{t{aV zs9C7bh)Z{psJh$6V$b-ZlHIb!xKYg7I++H=fE$LBq*?mEuMQ?~N=t{E$hP*cP5(}f zw>q@sFw&_ZB#K3jC;U`^pYKWfLOdY*UAlEA+yHS^Gcr6+^4n9vF*fs3uT-mrJZnqA zs#|<~(R!t_7vT*dzawY6M-_MikBIFV<MJiae>|qdk}kicmG3-0YsKfp`kVXD3u&pD zwMdrQii*oGXU&ILl5L0G<%W7CckyNe9A_YV4&Rs3RR3t@PZ(Cdy4Y<gp!$|IsgaWg zE~|MOC{s#!2yHmrRx*{C-SKzTCUgic;kj=pooTWfzapE3U}2G_;^~BA8W=v%rHc;Q z(!`v&!p0^3DvQg*?d1K)&jh*GLT?rS?x41Z{|7ewH`8OA!ss$sB36&(?MGQBoG1_$ z!Fl6t4=^5FGj6x(ehwb%&ry1WwtN*Vv1?BxGlw%afdZPiA=tX09uh2A<+BS7Q6;Wh zOfJOK{~(k-{`5vjpyvUxq4Mc8h`$`ZfJ;uduekO%w~QJw`lUX|;=<e)Rh3#(md>1a zDx{v%Y@p`?#U1!mx0(@?Z!+S#)AC3I1w+TJF-~|rd5~gh%I@59+qVi0;_a-etT0n5 zh^qqLI>v4|z+|9pK**I)4-5o9d3wBEuc6I?_nEZM!#%_9*UkB7o=qV|AeXrW3!~{N z2jGYH#n7;kZD|?HHx~*nXZon6Co;_3+7wAV=F2<@G<0&tnl3hVh>@z}-nKb8mHY;* zB!EpKB)y#NNT$^2LU%z{O>Z+u*|Sb3Q<``yV(V8LO+;FU(zro`7>jW=F*zGaDeI^> z*mB(et3tC)SWEv+!3%L=7}Cux286Z3)s}`TV%F<unEE-2nUHJ_BP6o7#q2fTqF-V7 z4}yq<6*++vimA6mR`s9|5P%Yg9=Roy+_1><^Y^?k_Z>)kgdJiL9Fubx#!5GC&;~+c zSP4f}_k=bS)_gO{bqosd3t$oi1!4hFy@yn5*jh>T@Klp5^ovk7m7T3u!}?_tQ`mG2 zxx858Gt~X-bmj<1ZXDph_$7QEQg;dr#yrav-akK0Vg*N=LmiKgYRK!$GU(8x!gr$; zc-{weqr}BzNzmfQ|F6Ra-%^!Zi4@SKc9&g%=1s*L;N&yiNrs3{m&i?_PXN&pJZ+S? zS(VG<te<puoXv5s)-2KpSv~o0*#(b$v{Y-9Nj@{dH#5lL4`tw4lW$THbhJ+bbK9wW za`Je;wH={FrlB3o;N)4iZ;5qh%D$3}?vW>jK>-OFq+>U?9eR}!k3w>d@Pd7^@aS(} zv)<Qi{8OeqAp<CWFMITNMx06ZjCz*g`K<L~yWx)0K=j=ejC-i5QjyQC1N%@3UaQ(P zIdnF;?|%YNM#}9ha!Jvto661V;GCxL8_$)1at+1!@{1Q=tS9d`Y;2lxcfrz2|MaR7 zw)Nj*b~|2tiyu%nKVUh60QHie9g}4p=*{x-*miLR6ZP=1sZZ<r-`sV%TF$W2l#Bz~ z`|jUg)1L1c8wWaUT{HsDKu`LFCSGE2sxX||w8TVn0guv>81a$oBMqV7d$^?^)l-H0 zw?8y9QO`Gia#m5wRIR&(fiUvp&Bthd&bt*7ub9621ZcV<^^SZ02)(8?o6~;(*IX|w z>A@tc3%|_FeJUVaV+R80<0TU63n_~r5)v3C|I1LReDp_3yy085S^lc?#yYaiH}dK# z6Ui}o@H12@{`Z7TJ#8#7b^1F3G=B>|Sc<v~OG{N^_Et>4{ge7w^*(@KllsELBDnf( zxL2N(M74quG`dvVG-!BZ%D@tE)jPS{O`x=&)Jt>^iMD>A0+~8(@+C2`tPI*>Eytmj z@vm%_FS#>~Skc-ZCQg~ZM##^@KaW9JOk?)OO`q=UZ^?dpJ#`jAU<)!Kw{LvzUP8i| zW`!>y%hcnrC#|HZ{{VwQ%}{1pe0>D!4nDv?n7q8${Cl%t-Cf0$mMQo^Wn~{pAT3w) z+&)FlIFotMNknM_))_GMfxa{(Sp5l!yc6H%b>Qm@mw@I}R`8adDByA)<>zyt_!!%5 zW@Ub=W*n#+8o+J5aO`?~iA-_i(7`N*555_|GW*q09l+#0L06l%*=3bQ8fpv8u42=W zz@4wza>=;%^qNUrdBFp_WnAJ23x!$@plCLmXBOwTie@^`+z82XV5quX<!ac08-7j` zf$F6kyO#s?S9EpPv><FZVbzdGdJ5WXnP+D6!y2K?rJhY7qDDyVAHl!1lEKdkH#edo zjC~S7bC=S?ta&hS6uMTMU|t<OK${G>qMoc3M%;za(c4fL>BZ*?{xnsFbf}q-U+@3A zp~M_oHG;M9$mb|BrgC)M({dZ&Cinev`E=U!Od(a`-_Rs$SuJG-KZoV|Co0nuA5B5! z;iTfo_M6^F-GZv~MlzjrQKgr;z7KAbkiT?eu(fqJwqw#_FOH8*aQ{Azywd8c7;JLY z;@yvmO=}pAjjVDQduUNA{WtCL>#`24L~`(DS_~Cx&?V-M`WIl+92ZL(Pq-ugUED-{ zjGyOZHILSl9p?`^KPgYB6(^KTaH~hD9tQd#($VDwx9vI<AdpPUzrXRGQ6<0n)}n9+ zLfZny@v$$M7}oe*w-!*)2-M^mfos}TMG9DpZ6wsgz*$Ra(3}1kHg_D+@xJjaL)o?~ zYhl>=O-+--P~Ks&I4Qx!5059&;#bGqtre`o{e#@~Xvqc}3mg_@A5*=COKySVjMX|l zhJK_ttB=WR7M9~|Ts5VnxjJIPK4Rr+bD>76K>n}P0AzmN$!T$M?FoKxu-2IDk>lC% z6+{8bc^PH_EQL8!7<7zDuDd5B^MLiXDd8|7B$(e!A&LCjb;1nLJ0Uz38OcSccWN`k zy!p}vchZM<-^BA&@Iv8c=Y?I%R@iO=)(tF3;xoBbItN7?x<4tK8gX#u)uPf_7^2{V zcx(?dKjCNY-UPI>Q+>CiR617oN!?No+X!94!OE9e;OK%rIQgEfVm0QJ>`MJih|%c3 zz~rXgOfg~BezB=Aa*5^7^xws=!);gWOBbyq$LeZR5q>+H&2cW}BHWNT?A+&gsWgFz z7x7(J<m(;um_`h1IZnMFe+xQ)*GN&3zaEGGK_K?zWXcNGgPxOggi4h=zAqaE{?fHF z1H5-MZwg7Ml`4=?6GDTcx}8hb+X7-<?@KMH-y0Hppy{Se!6U0n5f*LL_igZcAZOM$ z_2#%(ZX6VXbhzL*gf1lcbWzu4nwYWltA~xOWD}16Eh@`ws{JvUf@CJs+<^n08CTL8 z>DPj0?NoU9oqF`+yleQ}Ava5}wf*1#*-JnUtwT)UvtOvnU0tcO+U$7-*6cD(kl`20 z^T+Ac!mfa%u@o7M%ff{e=x=3J8OhK1dZnE0Oa8L#qTl|le=7Xrb{<_aTtxVbrftbk ziHQn;G?u@VmszO&#%mi{Y%SoTM@1Z)yP9~TFC3Hocg96?2-}fH@#<|ajPC9^Ri?)D z3<_=1gXq&W%4eEC9B}VC=ARCdtLX>D<$$0M@TtsxTYk4z9~c?>yAZQ2DNt3nLsPhu zf*Xs4?d{BDT(+2MDE#b=_r4k9RM=i*<2dgPVJy~AJPvPi^--(V>KN&VP4@2hCR4@J zIC6@o-4^kx_wAS+EZpB=+4z?PM643(m5VO)7FoAb!#O?25Y)a)84EPORf!P{LMiDT z6|}gyG6nPXit7QqaAM5e0VUw>tu0in{Y5>k)yM8_iz|(d-n_`?u;mXwojx-$32e_! zO?$K93ZWf)zr>IbC|XVvX$Wh?f$tp&dBO()?M)T}v*l;L2WpdX0T)e)g;Zo%iMK~K z=k}*9%Mwf<{?tNhI(>#xgc14a#AK*T4@Z<eHK2;pFG2UIr)l>6idwukEuin<rag^W zeRBxB9^fKj0bQL(<dr$VZ1^7}8zs7IN#=t60DaaG4KP3}4aT#HTtcz<ZomVZW&AGn z1`zJ{f-aPu{0jLZ%}DD)Q<H>k)V3RW`O~$eD<S!vp})YVBY??u(v5b47`YOKrpd7B zFEQ0Vfm_`@S8yY4tU~qLU22_OZR7+J@=$QBG)2)BO*M+&oUL8nz&%?t$Pta^-h_Z= z-T;*5tUhneM>qsOWA-Ah?hTmmU5S0tgN}c{(0_XCXRUg$FrzPX9pKMD_#d+{&LJr- znAde0e}{{%ZveI0`_b81$=H15jKuM0d6~Jk@B!Lh9=EKy$$sFNT2XZYsq<1BNuSr@ zUhFL4yn%nEo!Z#5L~7$R-HI7wUsXmsGuMyw#HYUu`}rki0KG4u3cXcufah9R%x4&L zVWZKg=Yzbf-YuIzqY^Yf)L(enDaaR{Y8);!F>=r#k@_Jnjx3n<*QEjaYE4F6AsP`I z(dr)<AtkzoCv*wUXvA<%22YQ(sD^NO9)9p;sr|J(!=`&tbH{AlVD3BFip%xy=`Zsk zS+FN;<THiPILpC`kdIQ(%7l&dY9i5em3*AO{@F{V(R@VtC13-bJ_eP{j*CT()qa}y zW#XT@Xx6V9ea2Ui77!@SPQEl)4e*N7U&(NOoh5QN6OMNNB-B=pSk_r{EWqIk8Y8Tm zX)XB^XzBpX=YlNQHbb)LB%wE^ZdkhS&Noqabck9CPHBX}zMTF*jikg{@gxkWpWm#N z30Zw9Mo(Yni`-ZnpG<sH5o(5i+(NgmuhAfY*tmYimIyj;aWV;<0(^s#`Bx0nG-T0x z$!w%IV+_{9)L}GR^shpGb8z5EKC>&yEgc6<YW^d@KRhC_0=3b&sJ2?UmuM`No{?s$ z&nr=8+>n@RlbqYcDtXK9O!jbuFIdRg)&98e58+em&?mz?z7YRl6oK@!tNI3wp4_)7 zBywb!Y1yJ~&B~AJc8uIzzGO-RN~HhNrNxhr@%hnX0ZJ<_>D-cfT>dIDQLwVrWmjLh zCsYY%1muG*SA;bD%v0hEW{gc7LY90v&mXxH>Xn65ABgE0XxW|Un4c}t%xcWvypa-b z&U;4e^b^RM?oCl9RGr)os4VYwc1+Ov<NH<02Q9VoIPa>SUiD9Dyl(ILu^gkCf_gER z>#<|;ImvN5n4D|0FyvpE8N^STiFB>E7v8cDennTMNh6?$swzx<W6fjxOvAUblRON* zPBFo^P-TBiq-J8oDg~5BquYgq=rnjr#Pf&OvZNpSt5V6xh$UNvza5}T9sesh@*s2G zZ}08tErr&=XhwR1fbEmAehrZ&=lEJttEbYP61$fLogIh5-tijX@lvI+4Bk>-E8<0T zlf=`CMc5yu%9e)1qqzi!nK%NaU&O#6tRt4?NM6tdl1LqQ=++>2qw-h(t-t(21VEy? z{J6)?c)<JHbc#%+{{ip=6XteFk;@f77E;5<Dbx*=IG9p4)hTp%EJXMV_{xEysR|!v zb>`4zryhFz=KHw#FXZ;ElhE4~af^YiEXA&+Og%OLK1%L5u|NogQu33bbS#t=dqR|S zPqUm9ctRD72_&QDXh^Az6yxQ290UP~mt!OfoYp7wiCTLsI|pt+BX@%mVD!vh`(i(F z{8{eSfm)7JFhI>C$yo5c{~#*O!v8@A5|zQ3<U)y{w$uMj98p}^(XCl}%{VM2q5*fn z$lQ)2ie3V$<p&#NDR80AcoxXZ!Um5cfv3xp`X1H3zTe;Xj}Lrx>+0PHD^82s*ovsA zK1z;Cr=X=EZ`x`E!>-w-B=qBw`Z6B)9sfQG2X5c8Pvx*W$o$OLM<<l#;85e;$OnBZ zz$BNtb}K+zsA^+-r#;uUvT0|3{99UqBzp6HEpKO_85H{V&&!IRIo~qU72Wj-nYhon z1|74j#}${c*L<cA526Zl59b)7M@;BA*eo;@9wy|5b9v*@US6}0)3OQ*IQ5>?vDHx5 zb=&R!?Z9Q3wp}-HmWBw>7bB{3#$~u}`)0cmP#0syzqJdU$4aExvoKfoezQKR$S5(2 z9$r;G)xR{q`<7HzAVBW`q5ygwQgsk9m*|bJyNexyeSi&2b4`v|UC?WP{>s2<;IilK z^L53Kn>(R2zs$N;RSEU03zz7JN+EH_-L7ko4qiRQ%G1@*R^&ND>hRxqtpH(n>D{Yh zpGqM&Lry6+s5y&1kT_!-U4P#9cekB@%#n&p-@4-$B3g+PUn}Y0q<lknR?tKAvX;Jx zlU{Si>q6j5Qb<z>!?y`+W@`QLYp3s37hDZ#d7NNHc5k9mVik-=22dvLjUifUOSq!% zmzBJMA8Tq-1BU79>WXX30Z=~!jg2D~_3lQ7`>p!p%r8)etwFN2A|b~<O-*D9ZsJs7 zL8vPY4?rV?;O5)PM5ahoHCX7SCXAz}(##$ing0{yzH4?}X%ZjouX{<EmXf%48JS>R zge#_etp2RG*W}@Q>Unu5mvAz>Vz#f)_5sM}sC18SdnIMOYpv(XusV8&xXs8d`iHBF z7^zB0hd7AvhxyfC-&8PBlH(UiWTtxk;Ug*16&J|>-knOj_HjosRh!-2=UvU0DMWp4 zr|YIpOhqKk33xJ<Wq4ZW?h(GUD${%IUw20yr?_yHsl^zB@Ttrmtzv&vxUisxv-8{v zsBINpfAf_*p_1(sdd|pf%2Mn5$HDWx8E!^=v2qbYm89vx^hBCUYT}R6^coVs+5Mla zpex9HMyA(ZkPb`gnzhE2(M*D{mcBJqhzxtZm)h(5woe0^uVh<JF@**sy?a*?^I4oD z#o_8f{GM)Ym6AM(ih3|+yeHS`hI2D6xz%5a_PPy%2Y<~dFF(fQ*6Y;!7flA`Vbi3I zg+LLW&96T)AX=N+i(L<DzYm+?KIdgi30Ro8c{n&o6@N{bzEKHF{&(eNPIhHC^}axo z)Va4CLk|dP&L2~;D>Cl;`98iFg%G-^Vik^NbL<+id5`VeodA}3h}@2DhxxEZxODS8 z^3tiwo#WSi1Cvn-yC!gG)+w_Vy+__QvX7`RD4E;(MDo1z0OQE!2N%mCvu8_OrKOs^ zQO=U`ZN)w|K8AUw{4Ox4@h*ZV@J>qZ%kaFF{~%_O^=Y~p)-2&H&I?X<qhFmc4!;k? z*2Crh+1*gi<GI7!QmMH6sm<rWs=FNcjWyAz<>06+g3_9|*rRz@vuUz$@L!k(2&h9g zt&)rVE<OOE3?&a<r5BJ)ZtGhNq!_>`5D5PP7kel#c(K4$ehrKnz7UFah@z4B2f|+v z{=48S3uf20$%B*#*`sOqGB=%D=l7w7LrNIEg|XWkG|WLjj50zp3IF4}$*i!Q;ZUC1 zw3C*LP2`AWx<tD~v1b?jtF}-UzXyqISa8c{`=bqM$_({uXuX-gr~7Lms72Qkh9kk@ zy*C}A-zJ1sdcp5=92#rN`a5frCN#X6&I`8v^NJ0Q;w3hy0<}TV_K<Py^X-z0Zdu6o zQlId;G#zukQLjMUxS7ria{0wfu0p2e^eqhlmZdF*+A(u-y6N`aPka0Qk4DIsu;V+h ztV)if1)J2mAFUaRjr{eJ3<&9EGw|^!=QhJ<-3C&t1qSFn4#MuJDOA*_3*YSOYhuN$ z-r9n*R-f8}UN!BPK>=U^t=qM*mReoK-Z0ys*m}DNsLH)4P%5n)StD>d8;?TMT1KoO z)Y+6q34DZuw>-zS^uXTqo?5*JH80#Byyj?)EfhE#cmPs2p;mVp0k<reGh6!nJf#9t zXl86>*DLB_y_<fjw~btuC@gD+MYV`D%=>{;1~;0l6wTt;te7OS&9d%9#GE%<h~`$O zq*s`(@*8t1a`Ie|S*w0g+*^FNS)|yZU14}Hx(2~m$#K#doc;K*>dGE8)?U|Y%8<Tx zXfJ!+v{bWDQiUdqf@y|sKDC_!{BNw4AdxmrnLp!r4WmGE6Hy2_QzyJe3QLXCkA>Dy zo2V}o%lOF%K(#ZqBs7`+9};~2_Gy4zyu5tjutS1!g4gA(ZC(n1)i+Qu($e+agR2ky zJtd^zh^*mt@5;)0?40gP3v0N-vxTc>dsMX1o7Y)uG9CacHF+m#?6z7<E!CVHr~icu zC2Z_Fe#dX@(c4mM&jyaUs?b5XihmerQ;bTP`6$Waa(eB|@(+W@mt;&ijjZ)-=a_@0 zto4cIHrEGk1u%f~{yG87MB=@luKw?KlC%7Zr4eV_l^?XtnCa3z!G2ixO>rShs9_K7 zI|ac4EY97<abNB}$0H@H>kzgS>6XbV9Ct)XM|G!p1d>Wo*0@-czG|TxfYulc!gCX0 z?SZy*SVhJIs3VaTVAT|sWHseG78R$uNY|55jmY0^>0kt&i?XZ=XAMyW1?V3^PEh6y zEs?NeLCr_3C%x_8ZYw3*MMmYpN={l=3;I66<}%69V9Lmf{JW4<BGU4QQv>13ab#G& zuEzM-fP0)HGmGV!TJqV86jZZf!gyrLzq35`lQo-G_g({s-2!;>C~XR<@6(OqN0_ZI z^mf~ByAQ-udsh`(&I*~UlUNb}0mrm6Af%T;t~Q{b{9_fYdY!CcWCT~epQr@Cohq0v zkpG~W89}rCvp;UIipQSiyct2z?b?8CjhCmr=I8HOg0>d#&gx;4GyhW0{^_lqKGwF` zsgM#mo2B@Qj_At|=o7)}{$zs+T_jar1(I3>u9Hn)B4$Y^r<iSZ<p>G5GH6HCe~9vG z=BdE8(@%Ko&a7{+&%9@WeXfT(NMTlMJ$+)B{T!x!xL;kpvr!BuKL^;sDbKwo_m)`C zb4dn{Lz_QK5wvFvpJjcC9cm+YbZUa>G95I7rb*{twRuk(|J)|T`|PO!KU1{o>hSV( z99U)f*Ry?0W?sLj&i!6hH!x!g_4<*#?jRmF6b7JHvkv7B8nF2cdI}m5XKR=?(0O(% z<z@DQ8CF7^Ul3dHghy262#;5RK~$8L!LK|UA=zw(brct{Kv>(;TEZi&RTd+6EbQth zb=KbEl{-P)3ho(`Fm66$J!g5<phhI@g%z){&#;{T+1uB7SO#-WhhVr>lm)lmd4+!~ zFo;c%Fvl_9V(iNZ4^34kBJcY9riC58Ki04OondQQZEkG*@Nmyg8c|on_vzvrsEg?o zNcI`+{wz|vD;;+5&j^kdGhq*RQAt7|E8AF9t{(+P!5XI*M<ivor=&bESf@R!Y!kXW z3pwSO-e<lZ(`$*(yxkzgguuHd@#z~x*NV?dx`|46@>FTdFy^`Ioel}Hro0V}KjQs$ zPgywpIW<cUyj`K7bVtK;CPvpegWr9PN#o=g$5<6P<Uf;a`aajU0fx`c{CmytbXVrq zhLe)_v|#4>EWc>|3vfrdwS!I;w@8(fZS~bei@o_mw~_FOXPW{Ov{!_KmJS9_kvDe( z=MzP~GuId)U~%J}dM384$iw<9_Frm6T;%<g40`Sp_QWj?v*92m|H=%UnfXgSyR7zN z_+uSY^cF-#ofYVPfPyhrF3X+9Z$iIiCXnpQzfj3Qy`ubhV*^V%;UVAtZ?*?_9eT(m zEzn>v<8i0iUxs`D!pxt~H!`QLvspXyy3tY(8V1!}L{(C%(q@H~&JKO<;#NKeDTg_- z7`TJe(5-$XMwoSnj=0coN2z`bsTg+ik`~$Hk=WC!+;USh=Y8{oW~;NU6FI(v<p$or z-1WcJ8Iq@qD`ITEazPz0mS8saN4qHN*765&;_D}Pfle(?bsi6sQf_8%X|8ap5tbjE z&71H1yP7{0$ZK9y=D;<s$>$GxA$NQb^ul%yfBM!aIT?*QAHlIVT2HBeINFJRFca!O z4t4|f0W<vS$BaPIQS<?tORW+4_6KT?Na<2TY!ywX*Lzl%H@pb1L@4#QF-$v~ikVWc z9>)ZO@plA<T=g%gT&R5WItzX=&jYd)l~GO#VCjbec~?+<KEQUTJ~4!mPD$Hb0<x)+ z!A3HSLsHQ2X~r9}KoB<$i2)%W7|oU`^EPM0H<gfsD_J^Rsir>}rvK>^S@A!!RN)wW zmy;-$hOA=k%lH&b3Ler3ag6PYZC7{vgvtxQI4&JlTx!)2yI=zLk<0SrB3T091-4av zGJIG9@N=+$b0na+^kAFs&6xjPQykwJI^g{DU?6jiRu(;q?|9G7NlZt${Gs2{{!??i zCxRXm_R0O;vkaTdWdtuZBO!Rq3Lh{$m^e-W$qqD{UoGOnC*g|_PwhHthze0acmJqw zZhJ@HFdR#jRVAJu<Lo&kXkJfXSa#h$A(V(J&*VJa-JV?`k>WTLIM8==Mh=YlkL}`X z^d=_HpQ?QC_^k7hSKrJnaXe?Flw_B_eW21onQC?^>DyIyKRHc)*wuIPe@Z{-INB!@ zfTO-Fkeiz6=`A87Fte7aeeZN{77xro=mau0vC(0?6>E7pR~)(TOZGSW{Or`m7HU=k zu#{fxnU=fW<WayE20Pn)%ttpDr3hL#C<f~GsFi1PU{91_QP3`(g7vMUky;^VWQwQo zS=9@o0a3|Eln)u1{kb>qQ&rY*Zp}T$IF$V=;!!A7>uXbL;*2&7mx-jrE_wL*MURbe zy^(r#@+}6RoUqIf8Si%GSISN;q)$@TXV82^t-#ZYf2R%K@s_kbInN@eYmx6Z8`@Uh zv#_$&)Ai?P-TNE4xi25zOST{y#xky-JKzG<AU=j!^oI3wyxlrKKfh02=u9b&2y_=7 zT#@H^IWuGXUNlBpr{I`l8_naxpDJ%TZ1n0b{lS7a6Pkcwj&DsOyMEj1*>`@GxwAwF zA(#!M4Xo`x!?!nxcxD+tvU`Zm1RS=WN}u3PMB9<(i#b$gS0WMcMc<pBDh)_Q2I_5R zJL1cHxI_fY6Pa0LTt&Y9dq`y6<M20;T8Y1{gI0&IL{l>A^g1r(7P$9tb584PUU?S| zmWt%C(kpC%<e{_hw@+y85vR&))MPL=U#EU?W@1K?!V7Bhw`xmo_Jx|O=PF${`t0~# z9_mPni1<<^=c-v>#>wmhakzV4=zV!v+q@O2jZe=`t#)j`h8~?@;5$+anyT}TGk^T# zKMdsw5Uy#>{d@X>U~cZS#|55}A!xS>I+9i-cQW9M?D!=0`@mG-LrnEIoX<n6T4{P6 z%)y<G>}e8gJ}R=EbNl+tmv5(W{KdHpiKic#DN^0~+a-uQh_eAmwOiH_TQIq~X=5J= z5+JW-3<aCE-1-5=9kzidfTP-Ry8+%f@sIUH$noYq(G@Z>@L+Y>1w{eh=g!i@)(Aor z8*9%p(j@drDE&~SgGdHzY3DiQb+jp-Tmm@RDEh(M0zmY0#dV+D4_@Fe6_1&J#Y>A9 z7|dkI(=80Z(@&%1kl?lyOZDQ_)4EZl-<V>~*s{-FO~q}Z4oTqI?&x~4ABCQ`?(*it zfv?_8t(T{-pJ!cj6(bpS3RYd{2gsr$p5ib&eSF7mGe>kv1|4TWMw*I4<1WCCXQdc; z9k(k;s<8iK>AK^o{{Fu$JBi93S2Bz2aE<J}S2ks2Q$}2)ka4fAD0{DKBvPVm5^+&> zuHxQHW$SY9=XY-3-#<M(F5UaS_n!Cbyw3CW96KLKTa!7&-_~8ic$~V04@YXDwJ$vO z{;E?sWS29#=kli?6MWLyLz-pXwry-uy<IRxCjIRIDb}~gj`-QX`}ep>j3#O>Q}G~o z(iOYcWGZN7Y=9FR8KmQwUU>Wfq}#*PrYGn^WQ*ZP%R^kUt|PqVxlpLuv*V<h+A;Kc zZH>fXm>atgz1>(7M(|kPF(mdK;{KgJCox5M!L}pH##Zv;Gu`zVmcMvfw!k0G%?1L7 z{Dq<vdZjc0rdU%fEjRJ{c9+)GCfP}?f@O(p^58}v!3si2iH=Z!+aleQ%Ha{BzPaJ2 zK57bmr7r=xmq>@f_7wL&XogLc<=Yje@u28e7iq~JCI7`gRJl{q2LeCd9yp=yQsuxV z&rFYczq%|Gzu5U3Rsw?r^jj5Z##p4~VAs-uJ%)SSUpm&C5#3HB%pS!pEEZeam9Fqa zrVqVJl{{8bp}8C7B7{6!OfrZ#1f0BRe~d%qVe1z=>`SyUiZDO7IA>4$b*<By@vjo( zu_1bBZu0D=_%*$;d~eKVq;>3*T$i+k(kT#w6a<pZLoS2qYx?Oa_3@4IGe6cdofm_a z#29I7^EvfDxp3`lQ3*XSFDhz*#=srkA6KH?OvH9Ox5I&dFH9=ulUO2(9lBdK*R-z^ zRNrXUXi{jj=c5k^qAeru6dVH05(wa)%gULCw|~z*49OnR6rEbIKOlF%@{vLUT0?b; zbjF-Y8T6%&kQZnv8%;-yGo<AjI&A!rJovY5s;lj%k3JoNxT}UvQm`@TE7N(_vNkA1 z*AoM%GYDUHSAQxWPgc!F$<eG7-n^-M)D?N@7bL^ZF9D%bE#60qkG=kj5M9pqylBED zXd%mTC>^G3TK^x}F7H7M$ObSj>@uIoNWl{$Heks;w1X_H^WBdC4`|fgT`!a~+w|y} z%NFPHu}yPX4Z<0haiL)R<3eC{c4_{mL8cYI0zO8s_ieleh!ij@3igZfAKu6!LW^K= zU;;M%mW}ly`$ugH4tQ0(*Xx(&S;2pyILhBkH|M*(8mQ`vs`Dx1F?=T4zku~nppP=r z;%JB7SWZV%+v|K;&Eti!89iulKQmJ@-`wU|OwZ*rr~6_3T@tfuJlbGR`HH5zB2LdS z7S_Mm6IjY}%aX^&=Kbw<K%;(T^iI?+h8omSwou~mq73JIFz$P2ZSs`931yJ4l1BX2 zO-|e=svWcL;reU7dQsf0IW-RQ_lIQF#?q;<1RTE4?eYgH95M;v-%=C0o3QP`C9x9{ zIfLZQJJ+<4nU+=e<bCP>2(ZFmAmz-xb|adU2xIrYsuT>q{N|8xb#=ft5MEhVTPPs$ ztkp(%C0bgYGo>anM_8+AFsmj>&h?_Mw|<qf|B(3XPoFbl1DJ7vas=~@>eWX7;MLvk zE;rz7xO>dOn`RQX+G*JQ{;tG*t8dg@3P+A_&c8l56sm@(miS;>c0<H$#|(-Da*LSN zB?pIpZhkf0<(sVJOWWTvcSu<|r!F`zQAxq{is(<0;M=@Veis{#Mm^)Rt>ns3_i;f@ z1ZX1%d*?S7d|NUJJyz4bB?b%TK7xGTBoEtNFd;+4dCtaIr&|WhB@*@LIE3~+TqR($ z3?OLNXH*2?faA(J<fa@I9Iy+D<UKTZ08K2$Vr1fjRN&v&C4)WrpVwX^1ZGTpeNc!= zzLJ{tW4`aCLGja{NAe($DJGH+7o-YKwF7A`cp~VbYB>IN=z~HLb2|sE48VH@5qp<j zj#t&Ykp5s%)O`>!`=&b$ytr4hzVal}sCRIVf_9#;KH(Rm_I}2o@}<^z^<uK!2?)T0 z?)HXb-nUKy!rMk}W~UVuh2hN@>g2bB44)P}%49{3!h`6B$7>9%GhA&D7~vPik&qB6 z5Jh}9|IfJ@QzTz!%@;CrQ<Xy@5S_-i){Cg>Iyw}c=?UpPoxCJZ77P4>NP9<fUoTi- zZUku6Ur;;1ND`zL%v%^%dRt<}Lzcb<SEdE;y!r9@385Fek4;~F9E@c{>@Wus_qW?T z$!IXQSkzic0q^(f!)3DT%i+PQ62(fkdrY&#Gls~cf-@E{CX?fFcr~(R`tjGb5Hg`G zYKuR+1ud|nS_GIjvJ9Ut45$gtM!<z8cTS-nX5%FP>|(U!EfpvdjjcRyb3V4zY5%xn zuRW2vc*eOhtJS^g@P%ib|GT+E7<NhTS+nxE_ScL3X9WtH2Oq#5tpDAmtI{uyrSRq8 z;N<)v%e|oAU$~t_%^nTe?sLQXr>nZT`S|V`y;<p9yp`qLODAE6e{MW(vEZP8c`w`& z?s4@D#QzarM>p7KxKk9Df|*#;mGggyPUL@gs)`odx^1RkwYVH%*J$h@7J5v8I=goc zy^?P?I&<d?|J60hx9Y=22pt6VYR2#a%vWw6hsR7ajS@?lRhM3SD;{>|vEv$f-5Ub# z3e;W0PTfeYrwsmC_27$)4B>i!4LU*fE!Pw(Hs(I(W|^+48ds3JSmx|Z_l<ki`Nj-# zsty_EH*8yNu8zT|xI$sRP8HJm5SC7Y9cBx4%Pf<8UzKW6?7hMLb;}~eyCjFmbrkHg z&U?EwW~L7`tHm*$tOB))ytxk2Y(8r4FBvn;%Rkjiof9(tO_ZMn^1h>8ewG5AJW3v@ zh1d6B&YQK-qRMahT&lnz2jD@-o!8qZ!OlJXrHf5_8V^4GNr>z3I+isyY3$wDJZa31 zXk;2@svpi|Iq2+Bs;jBdpGk@_HMl?f;GL6gO+q3jbTm&(0pGtD^Os9GYBt!U@K3ww z(`^lUY|L$ms7CcJdC-e5E_<U9S_Q^)=Z<O6HflK<>B@P{aewKi#&qY;U^Tp}ub`Jo z9J}PKw=`En((`w5jCRI;rUhg7uC}T@8J;38CG{22h%pU5mGA9PpY7Yj+~7|=5E=T> zXo^)q>~1b@;iFbHR<L=v&{&FaZEX$ARI-CgqqF+2fOGN|5)#mP{0+EK8=HYtrt}^J z^>_CoCa(^J!Cs^N3mcuG8ZUF>7P@hp>OV4{z-T93S|CNRDP>1%Mn%^&)!Awoe!a!I zr(>>fnx7*g{nYv(-Cul?qa$$pugb$t=*%}>oQ&jP`URV8)7qJ7b}7F-lx<C;{9+S2 zv~$s)+UZ&ESXPGa-<bxw#YM!WE*sPDc@1V?#NPc;lt%S)Cyo84gxx*!y>tnD6Xx1I z1ED1|a)-Pzyn$TWKT+yE2=)6kS1fch)p{j(^W01iy7;sX@v*VRa|b*)K@$5gJO^}d z&ZKjA^dA=P|Hv%=UwbA_fPG~pcK*){(pa+g2XEhbeqEuowoEg-lB%a9ugMao_-QDm z-s~_XHWJ`sb0b0sb09~Fr^OL{&xkZ{SpZ<({N_6P%s!Gd<ipx=@U6qX#>5t!kviBs z<On|(40(WOK|*)_DWld{4uLWo;O@Wypa=X1T(y&oKCB6a_=83uPv=ia4<W$SLx;e; z@ji6@J!p*AOrgKQ6cM=FkqYgG+H+d8F*w2QgJ%ky1lL#v7o=IryTrGqOX^WTW2z&9 z1L01<SlaY2ANYM?0}fr8q<{IVVEctRGCSvu*ceO(bySGrr;N%lF2lETZSN&wWlisJ z*x9^~((vBR1f1f{`b`C^tHXM&3VfzDuZCibt3rt;aG^zeL77SIA@cR%Ddzl03Hj^N z2-%#*@rzk;5V);=SZ}R#Xz1kp%D3?52<99u@x{?5QAEBnW#}Rcduq0Zt$lfl!Bu_n z9|CuiZrEuH4OkV0V$4I-0c)o^BH>K;=s+OhaFe{kyg9cVu?H(CvqZLCzP@I4&}Cbb z4cRvonqGF#9JRsTvskqVd(!h{2SjVKT}@yse>o<e738p9x^@r2%p<y|v>hu4@>iQV zuZd!c>mxT^TR#{zRo+rKwY0a^9)*x89X|*vZ+z5kO#Lpq#V)_mn2h&c>CE-_m}70q zY5$YW?B`CL)ota%DP3P8^7Cm>OT32XFQ1p76<JWaw`*$z>n!8R|8{Vb4yjjn+04(> z;YCdD$fRA6;y~G$d%g2j4a+O>p0OPEj<cK>RnoZFPC7gN%d1WGI*Zn^9#p|Xe47}* z5{e?xw5DlfWEQVN{`OBLty-Z|@w<R(>oR3o<@KmZ_o4+P&<tmN;Td`(b1&kDa4&}~ z@M`M+7Xx;ypV3m%NT$ro=iKy8;|<Gj(7{^5ntEwTr>gG>=jzZ;&O^)x1nf}XScN$C ztk;}Z*GMq=v>?6oRrj{KZ$BNb`bO!vRm-t8zgf15t!_EzxI6N1eTJ|?k|!W~n$iWw z*D<08K_L0Gq-qCjleIpaAC523W_{Wl72Us}e)DBO*^|`zeYXQ}GHS7i!Wfjn)zhb2 zlnvg{XSGaEe<eYSzfm|ZmICAF2I0vJj;zY%sV~~Dgwfd8(kP<D;wKOB2mt!jO+6IT zW(;fVu?o?*$(GHEfy8GUpUW;PYLB}dtKRZ2fW_EJW9u5PcfoHjc(}2l=RR>YYjW!R z>$MUj&G2gXVd(TwTdK&YrQ7!x{8jPA`jvM%tO-9^8`wrHSZXjZ(v*JQ`c{1P{T^+u z8xFaNmkjV>Z?(z9_Vc-k4y(og({C-k+Vf~R_`3R5++sK86WX~l<l|P7+Bq@~F<KCM z@TKbJ+|$xY_4|1<=AXqpsQZVo>BrL>OZG_MIWT23p>-4{@J--prHu%f9t+9oE{#l% z2!DKh_kC8Zb}x5{CvX?7sx=d%56{hh2Y4f(Ph=zZui!%&mCdI-g$>S0SpUv!%oqVC z*Qd9r*EjY8>z7EevB~{48ap3nnbtD#^ij6+1bEhjkg+NH4JWUz{Grorw>Uon^*k>6 z)MTKwZfja`?%KyH#n_dWhV$9O^;<ve;)Cc+$Q90bRdL80v%`~Rm+sj-!@24Ud)H-< z`#y=cUOu4JOQb=+RA)P+{Pr@9kIl4pi)Z47jz87JpfT+xAi#a8Uwm^}#xWKiQIq7( zTAK4=gN{41)Rc`b;6vQ&x5cJVP1T}szC*QZX9)}-acJnix)7e1I+^mHpQ2?`){{w$ z!qufTmy#MaP{=09X`}<I07OXs&#|VRRP2&kiO_$x!0UGaA>yC<E~UjHkU)E83QE`W zw!1rQF^X=(^8`{gF1%baxw(I^i6vpJ)f^0rkFxcC4rd0sv#139n`Ix*9Rw9U_ItLV z6)otpcd3X3SDO3iXR5cp*+piHOb=exXS)#2vfBl|QvfOyR&gp-QrY=RsJ%=4M?yA= zth^4-`<TsN_@b5koTY$x$OLH8T<JFP&MRQ3g2L7#2vwIsnllpt0Jie}cG)UStabzb zVxNA8&omW2;MJY^%g+qsC&2@>x3Zu5DsV_8)aGbdXPds6BJW`rU_W$?G0o7Vd4MN7 zN7^DV1=3wO&&AMTLnhpDlT*wcak1L$v@1?F($B_xA13vUugAUf%DtN4u#v_GD!o7F zi%K>6sN)yLndKwnk1OZ)EWreprsBT5d{S{uk?+I&-Ah!;4NEaBU=S-$T(0ZeZrTx> zz4Td6EO<xas<rn@;W&?k@6Lz34PnPbEY$@iHQcgtpt&i0QE^FC<qNsp*Tx{m_^Z1f zb&uP0H=wpGXx{faJ^Z8y5%rYx<SgxxjI)O@WNGfS|1d`<Nn5Q&Gr34-nS3WPa;>4x zsC(FwL8M?%R$O1tXWg&v(%zo|uFTkC@a3CnxTFzTHB1>sY)_VDZ%$i7mrUxoab=te zXq`Ox7#-yn-5J>4E-A?9JLS4>jH(8w4P^1(mi5ij^UNA*8Av0OU_z3%yFxR2(~Xy! zpfw%Fm;7Uq>!&4D?)Hfj!T1VsLW=LKM3{s0z!;@g+7d8{1Yz#;-D5VxThL+RHBvi} zycb*WHU?JONrIuA;8xg9@+Ma(UpB0dv?AjPLT60B2@-(;&^c1k3=P>i{Oq<T8$1q? zW2+3+t{f1muPe{Ukd!ktXsW&hkw}thB!}FP7XrGsdA@?BqKoGmcCEiPGTt7yw|(*u z*|d1^&%{yNy!Eun7gP^pl$>nq&~`z~9`#!=l5+cVx}Ma_n<uSLW09@iz+|K5>HQyB zMZ;TP0#sA2bcu^}MLf=GiPz2EDAOluWLvf8Sxcjs*=^pl2J(~HDQBY3{yEK5RLT*n zYpe2=wDK5Jy%LO}x*5}Jb!Rawha~9A-qI{w7gd?GE73`o?eBM9t@mG=7KQ<@me%h) zoHdMsb%JgJ)cG0+L0*BZC{q@rLd@0%>@!yIVB<{XXF=(Xmk?&TkmlEKg$J8pV1b7+ zHZ`xBe*k`%Te>7}ya|1{k3624<&<Rt`R@kLc1kpu_GkJ)uPFw(FBzLMzIDOJ_)+f~ zdFWx!U=O%~KA>17qMe^-U#I(WnwV8@xN411Nn;~|7^e7Iq-JHNt|IH$Q$gP!dR+wh zE@BA~?_&EheY;d|Od@Iw>iDbD)u}79eT1*d>G0{51G)PV@qmn5`R&-A*?T?A2cLC^ z>leiqsw0H?-?&|UYPHnGF*7*Qg2oYIeplmzs9*7cGzLw)abx)r`F*t)F1Ww{oJD6O z{f*2&?>g8+B-n1>Fup}Yv7wM*ddfh$TNU!hKj<6s*H_o-{m@P4Ocm9nv)4<<+_fC0 zV*NLhrP<31l)Xa#9IIt0tb)h-dS1lUt>0)ES;9~va3on{`N=1P@#<fh)Tc>;*i@++ z)X>i(G{~X{*5v##&&>tfE05_b8@G{{Tb^Fps@ML-G!9n4mU@!U=F)H3c##5u*B<b4 zWq(1LeM^Wl?S<@xL?0CPzHY-4niaqY`!Hy*$x5wmC*&hGXD9fwKX%ZlSgBkbYn3|h z$w*GdwM3eJm))dZuPPn1(i5)8?-aMlnjR|mtkX@Yj}VlX7Rr$6oLagAzppyqZSN-f z(Ry}-zdB`RL$LO=j$?XGV&O3g^*yj^>J8)3HFbhOJXrKq0VWi=f9cBgpXWJMg{6#| zWnx|>z_~I4!V)OYLpx43jmn;|m<VlQV^uYh=$|lNaESO}w?Sr5t&L)YM^drWXSv2~ zi6NPrXD&$3^c5=A4VDZFL5zK9;UAv)30e1nnHk@AzqGJnCuMQEEPus4O-RO2t$TW0 zvR1K#_UCdvG*HNcQAB`smPlS*qMldP#Y3sWJj&QEQTK3HD_%LDRuz&Uv+|eZbBLfi zKh({h%aVrX+$6#%7)d!Fq9+#MA2<x^plIrecXc&${r-o<$5l6P+S$x1Mil6+*>~LF z(>j1^fv0GWI56<wPG7lPolyT!S2VJ^0Fvu_em8*CzX2Qjj>N^X#8wm<)a5IBFDTkc zw7q*gMp?mDE!;EGGXkN|1(m65#xg>z-qVRuxVkcaWn=9A;PP0>;UI!6K8Q2`s??s} zc^69uMSnl#BJ|C!6UC3!Zn*#()q|PONU%m=|IPQNH?jO#svNx{DDz{@PbNwq&vcuh z_CgwzsyQn4r8`{vedzcR$~{t{d-l<at@_OF{C&rLR~Aalzuk3e4PpHIFP_)<0|?kW zQw4t|c-7yixFch@R@_dl<j@9>054>cLEYEVadLIo3~&)wNlc)|*0{SG{l2b3+Lt7W z^t1{9HUkUOWkCtD7$%qSzR$Mp27G&u|MoSN;6GP>e=b^LCJCv->MK@y2mIX1;+d4> zS**5etRMtOT`I}HEo(4Sl20+uWKm`LN0eXA*sOsl1;3z<KF8;+4T9CTr=;`L7K4$F zh213qEn{IPrAT&%5)=+%>amd?!i9n1V5BaiteyOr@1Cio=Bsd6AcIj`ebTI-%=y^l zE!fZsDEk9fQ|arU-wo#0QO?UYb}%<5b{GBW&6y-seq&>vG|FID&Bo#$h*l?ky=vNN z78pq`1|GHN<doC9t*sW&T0A0(pH*wt&bCV8LID{47wYS0=;g&_EXRv)h;@P!>C;}I z&eQw|*HQbN_B?FN%Is0MM_tx<Npn#Q3y?^kHr+HqqC8z6CkC-hpDnEZJH#dVj!rmH zOR5BS&yJZ_KAiqwuJ0Nj(Y3a}vypy7R@GUt!=^^4+4`WqY}{z@t4JwXn8Hy~g=^pm zv3Qx)%(CV&18xrbCSOkPgv`k{9&hD{0P6SX=$b+G8vF7(8@G#b>>>A=Qe20NNKT{J z^_ODa2Pf=gbet5{Vaqo2^3b_W@Zm+Ix*n`k$ZF)KZ0K@UyQ{d~5U{y6IDTUdQ3a}V z`17zKcDdGPF<uIszlmQ?NaLHCcqE|;Vf=SG;w=v}EAS7o;-CCnL|mph<9<G>c1+14 zwmW&|Up+Ie{5;BjQ=+lCb~I?G((xd<<HIJVkF*<^u-^SN$ScLB*J4Ah#b=y&L6<KM zEZ1O+hQ2MN!chjN%^c8e+^Ei<HA0I8zX)Uc{kfKSWCLUC=Zxa4o6IhE@?x)|;=3sp zW4DO&_#jBK$XrsszPQ+|z%f?^zi&S>-=o&m@TrZ6^676p(CBl!{63Ds`HXP=cZ|~I zx-I38flU(~z8l4<Zv_w|lIS3a_e+44>r?I?@}HIl1<x#SnINUo;R}Bix_QarpY?KP z$Bo%l?2|q7^3dy|Vs$0c28c34uCMzOGvjp?!V&Rbk`~vR7IYPbFHilo=mnmU(Rlim z&wY{{9ycwsWTp1q?lu(LV|MLDr7&i>^_t&u+d`P)l_M#?8JLRQ$Ql*;6wbfwZ=)c; z6G&07G}gk+LVq@RBX(gIb7g)}s=>EEt3=q`*fP7xyVTNPMxXnl>@SDQ1Jh65w|#g; zO-@ExbiqILMqz4s9LOrXf9m-*=;6!6TW0RB=oLNjyEWwT(~APP#nu8#y$ODvoX=wD zixwBu;88jgeCb6C{lse;yoC9#dsQ5x4a2Bk+z<E!Y>#AT_cA*SOIxF3mpsh)owlW5 z$c~`JE2hCU+FZrk5*6EK1L>UWd84wQp(Qo~3H@4{x!WVA338%Wn;cRz$dd59ic~Qg zN1@zq+NS0mvx|ncD6`^R?X(Lpq}stmLwUBZ-+YG;K!+!W--^o3%w`$Jy!3F7L}wlL z0!}8Ov$H!Y%^)&-*am6HKmlFlJM6*cexEgn6H^|ngVh4N*g1u0$27!A2Gj!j6>QB| zCBN3QH1Y#t$@hN)_HF0YKOU~Y$DgnT>Im+&_yv8TB0+{sSo=isKYL7#6_?f<R&1|m zs+{$jdCp(qf>Xzx6~!8p_!`r<#20gaJ}<apDrc46ZII`ke*fbTVAPx=zE%T8g*hAX zFi>f1g6B?HccW)++c0mlzLO1}rDl!@etSj!^CXB{LF@0&DvOQYs-@yu!YK4Y2oWkU zQ&3q&H>iTa5s1_aG}@40pr*-xk@MZ)b>~U99fyf2@Ee&T7$YZV{*l1rhpUjm1Q->_ zZ2)v#_v$&6e~gU+eqkOw3oy>@nWJT-7wlASrZ3{L<^CG_AK69l;7olPU9}bxQ<tpJ z`xBiA8s{<-%0{;$dy8{DukI|Sg+RYXSNNPDtX*qre=6S2;7=70ptLGvGrxqtL|Lr% z?zBSc1^l&xW|^-6-fHG3e0DZoEO3<e4+AsPe`Mfv-+BC-@lf*|dQR{%LHjo$W(QVv zhF?IawaCQiqC!VVQDv(!F>jK1TxeD0W~r&9L*mjLfGP+8S*b27_*LtPv%&7YnxJr# zrEL{28B>?J=nNN#hq2|=g(YfltcVUi<$Jxu!~E3*Xbq#Gb=I9T2s>0Tgk|R<a<aaq zB56<YR8_ea);1KNY**fREpzT;;ilh{s%-r*+3ZmF`Uuz&>6|@pyM^71X1mpcZwK?B ztw*!+p*}nKm7b-n32{%Mrlf?->7DH+ri&ULJ=R=W+=vi~xM57I?DI!@V|>yk_5BuE zvl2hP*A5$+8{5emnwqOhw7xQFuSCsU7Smu<p9#{P;(K@}&P05+J8D3SM@>{Fg!<`^ z%(kbCnq#%Hb<=7Eomho`ku^3^7{NmM0>g@t)W`3$(M3J*h7fWz;%HNM($;y4XZd`U z#kx1VXm<0O=#SgowAKYcQ>-Q>yI2wqdwhtVMzjDvyNKdgih7xspIqZzH##xxrW)(t z#Qx>F!oy!FQf3!xO*FsR-AP;2rvWHnu`1?kY7{st6;=%Ug=lQpxnu=h9|Vd9KwOQk zDfDqL(0h^P#aznPH$4z*+LIwS%-b_leM>LfJ}`vco!eos$dNkmu<zKFPL?OSruO>H zuQA%s-~q5z*Z?pp-ZB^@=N0RKnC?%VtL&NB4p`%BiYKMgZrv>Qsc~a8+{mi5tKjHa z!JCx61K|1aRJ0Lwkm8~9<0vt!(z2TB*GNXsx5AmPeua;i&Ljj96nRmH0f|lP>xKFC z4JO&OkFHN-+%7HUk3Z~~03)Ry=~ATgRu7?_UGh+35V3{@4!5VkX>rq-b66s(sh?UX z-Y-K1cquF))^Q$HsuJq02MG+=wxV6vi-=*N#YTrx=FaI}dJlFt2V$uvqLk{qM1TA+ zH!S(p&-XF5H4E-TkwRKr5li^_tzj2QLQHpKcUY(6*4}~3UDUzDkb`93^?cQ66C^U^ zIixzuRL=Rj0L!13qv|u(!w@q$Yj$HJWAQp^nmvju8l1LeJkdM2u+AHuzbq$sv{lNy zs_Wthau2Ph5yGlQ7bN>3Db`=&`4i6d5E_REK`saEdcBb&%+-?bi`3eu&s*1H%-!eM z<%z{e%%R%2f{NfZa4bm#Yz4}4c8POW7G&w~<Olczy{6;-wqpNPU^<guW10*1fWM%y z@901!#<Jo5_IBnXq+U1+ZDWiz8Aj}z!;tu5$}B%}A~!LnS_9v>l3YFh&?>C8hX3MO z6nQJ2m_<;1CeM*r)BOVCB`<<Fl$di?YB@XgE-&Ve{roP%qwYN4Eir=9;d%W7#KdAe zfUkCBhd+Wdc>4~vX>oaG1gZ%YA|&(eK|LqTqPtB7;+@~3t_L2^pCO|5kPdV2dxB8! z_D`TwtAxPgx#M?-z6j^H^7w2hp9$<M>>cd=S;Pg!@b{%g;h`ta)X2c&;RPQq^VxY) z6zY{HgWHOo>!8|s5Mru>YgysXJZI)^1y2g$_k$!SXLffIbF@BmBkx#~^Yhi5`Yi=d z0?fv3XGGF^@m;2xlaEl{q`haVlDe*`dRUhKAq$^a_zhY@a>wHn=FxLx7B9qLfu^bA zK0KxxVVY1f=cSclU^sa)Iwgvk2LZpmH7DQ#zq~)5#c$N>cTBDyt@p)9fvzNc3AxUj zNy&;ivvXL0BXPgl-e<u@nr>2$Vwv9jM@IRf3&N|`c@*Drh)KBS9raU}igozZjo8_f zWnH!glj<-?{TrURrFZl+KPfo{(@cv52$~})c`6kKgh76FVc*Zv*4^RN-%*(G&JEVT zN88ta^PlsMi3%o{Ob>fI6kz*Uf*sRj<+C3XNO+V;1i`y*I}@U~biVyCw5|ynq}|bW zcE&)4iYs*;&-1-8`oSv`n^d3qXFT|jgCv05KI#vA)f@Lj*)A%W&wHOoG!>HN<D3<F zhvw&k4CgZ*ther2^)!t)n(s+1;!uPVJI{ySu0Hm8yI3^9E_!C@5bKe0wmV~?zRUSH z3f`{K<6JMmtWylH7f0^Q>TY?!W;aZ+*H4b}0!7GZr~3)cCEqbE+tkW0*>%{*dZ^D0 z8hpQx`gxOb)WiLbeF2eaw6i1F2^A;CQZ{miV4Z!Ov2k;nEokj~eZJ0EoyX1gDo+Zz zI=JR*3*aDJfC<t7=Got>-n@8u8;fM^J1Cc#W$d9mP2+NcTT6VIG)TN{Z7yElMLR8G zVxTaS)YUt6YH#M74izFc9&D9;*gwP|*zTZ|I30cpzhh?|<#&9kH_(_bvS(HDkXD~6 zh({4oZbnQlL)loOG&?S~Ro%YOT$z6r#dRhH)!)n$L@#7(uwUWf@v}8H%$lQqQHFvt z1!?f71&_ltc1jAYi6we5$*S<(6rbD4kM0@;HyWPH@PdnypX+tHodcU7U|&rd)B8XJ z4aeS~&<zY<G4aF(n3??RoD(n#T+T5DzP(7s_1n32Mcz4vEb2YKz|CeJ%W?qltjX#R zqg(f|`ga0&`UdPvxZrp5q#V{m>#P8Ko7jWg`Kl&zO6#1v#!{kbUw=gkmHsN7W@RB% zTnu}uK+@)ERmMmQy>Ui!Ok;XR#2$~#J89h1sQ4CZiy%>^-;9#57ChMVu5zkn59hj8 zoM2OXI`(Nfu(raK9ins0eZ%4s2BQqE*<83bdGgk<-_dq&4VsDRN)CK_rqhc(>)teb zUF+poKkRC2eaLPsPqhkHJc|x1M6qOIR(7Cj*_Q8(k3~wjbnR`K`B-jQ8ycIMo3lgm zLi{cmO*K#vYF~E9HIg4Ot$0R0{OX~u*BSpZjwZe;N))PkE-GL3SzFuNpG9wrM%mR0 zzgb&9ld35;R-`F}=T)ml0S;y~>cbmRT=9k_aakkPiNRV!p}OqO*EBfi96tUp@23Y1 zLymEq<A_g@hZ6h1|F~aj>S*+2uY+9-EvC!J%U5D^K7+e;STK}3t1>HFNmS5J6R5x` zRN?VdR^h4OBxBx{pmC~EMvRFz$sw^w`F`_<{*JNzCz8P)_nrW>&Y@X+&M}Q4%T;34 z{P%L;hB8J^o?iPa@LC1qI#Sb@Y{$#)TcL3D?piXQ-Cl`ywfhe@t%-1eKk*H8jRjB; z(7*4N&LC~a=Ns8X8cB>2Vhez#&Z6fXC=y<VQKynmLY9Joa`P8Z*ulOMz!lyh(4OKz z4~%OkuBL&MJrRJ5B1vEa8*EEyh5%CmyoNK!f4yXi^t}hJ+7rE1C@#vt!({MBZ^7}E z00VQBW4k3HbiMpPvOOtPP~A2NGBBWfCKWo-qN9Sn`@OiJ-tB*OXtg1{iW`{q)oj@C zzbyKk;GIJ5Ar<pkV@J+gmDxR#8u8Dl+co-HsB)r#DAi1HBFf1t<Y>=Vov!8?a&tzN zSBSEswZzBp=wysKZ!^@~k~`4WX00_6TmS7*b_<7-aUTa6dA|mSbUJhXXmDtxR44U9 zZr_@kdJqrC5;A)8`^cQ7TV3$oe5H+4C9Gg}si4jR#SA8#>93?vjN?HDzZ0diTHAS# zvim9>zHT-z3oC<YN;)t9Wx1|$z<u{2@4XNd=cmE@c_D3h3!-wwr7e!)7g1)+5!|Fn zf5F4d*$HL&&W?mHD!0OCh-^nCYA;>~{GRYvuFpwlwbHOZ4=+!xakPA6L+zzmT;=92 z^}0)C74ZOWn|}01RXW;(8cQxuUznhHP*HHQve(pDJGxP0=jZE#yE`myeB@S(8aB!r z&?om`3<Kza<e}OU<23L7W`E^%#s@)<U)_mQ4^-Ke1G|3qOSKOgSLtQgo#ppv9P_O` z{2H!iQ}?bA-qZ7cpNfq*7Jn|rJ;l;_bSULN=_qSewp_GbWiLRL$^LYM#sxRnJ9o6F z*Ku*H9y=G-pyz86WoPqSd-O|#A#JMNfqd5rKDRmFf+Tlw8SJTJX5meJT2_Y9GW^OU zdC@&Qwca9uEC-orlGoKfe26F0$CpHdecaCs<7oOmc)Bsfh?mxlJH2f7RqN~0ux!a_ zqJQ86+(JQ3*s7v_J){~Q%!NNE)8H*=#v;E~vYp0v0%AAp`6ScmJ)>%^M(m3RM1l1j zIWdl9mvp8=m_Hwk_$chD-*|2m|HMp6JNb0Jhs~(CXZqgtlA+6==q!-r44agwuz37s z7TjOnZ&|pkA7Ap?M3qabKRwtQR@sxt)6PXwFRb54`zRLd<~EF8w$2cfp4()-xbuN; zvL<z@_@-#`*g0Pdn<P1E2C?4!@8trfa~mvGe~(JfYwKz!y(Gh!3)|?+F7HTx32d<Y zLyIm6XR4hFTjbGgd~Sdr`;?}Ct2LV%euE<A%<sYzGj<8usS7ZXlGwXtWw?8Im+`6x zqJH}*>+te>N)nzvV#cE4US=`sX>1Ko<d1)$_i*75%gMStr8ASSee#YsZ<H546=_5! zbmU*ne@%U%pV3=Sm`?C_5SaoL9owjQuavUm)Uwt0wQLc9rTrU?jirpfXs3^$46QSV zXROC|xKZI3v0r?DT(S71Z&@3Ea9mD~o=ZWhuewYu-GUpud%fZHadsAcS*OEFK)U&J z@%^Ymc2^<pm8(C-`0P1;NIY$ztzcm2t<G{8;XY_y$O+K1whgt=*UogUGpE))qlMdK zy)vfOERqc&8<GkPM9zGZXjKW+>aPn8=uN;cI}3^%A*4+nn=bi_acpmtu5Z(wxfJW3 zMAzuZnTf?HpTBWxQ19R%|4zrJ-JZ(uCN+ab+J#T)dOw~*f#s+hd)>4nyNWXPujm7) zRqHhYTbhc`T|z3#8m~EOc9@KUMqC5mFov-+9AWFf+m)1K-*E7`9F1;thN~#czFOX? zHo76ptBbf}NuDViVuJc4$govAHN^Aq5@MwML&gcs$K&H49eD`m9;svZiZ__4wAZ^g zMokeJS2e87jj~W&bWAGg(;1h@q~$fjfA%Ftb5TZnKf1_{Mn%5+1$7Ktxl&JwDEa)7 zg$Jf5`k+U}-8!$PuC^glz*cWU-Aurqy5H^^gh(f}yJLELS?v6Ru-m9kPkcw?&!N@t zBrM+`7Yhg7oR2$<28|;Pt=cSudEO8KLyI(Hsbh{H?FJE~v-@@AKQ#z9h}!(0@x&Y- z_`wd=LlS1lZ~R9#F%&`Ybb((dJ*^Bp65OplAtn|7lUfS3TT0IkgcL(d!-&0cP;PJp z!&=F(8SK_s2bw#}Ic{kW|HC@$zSAf_cZ$bDaKZS)G$j#C@c-sIwa@+9`)_bs=azBs zJ2{#ukecimA}?-PB-F2h?2}2ByovCoOY4e@Btr<&<xW#@aTY)lt5ikI@OG4bux7A5 zgsH8|F`CHU5Ywi<(N1wWb_$=gNx-gvd)gqt&P_zpg59P%=d!4`XCA}3J$sONCt1BF z(;8^*M;;9vH^5x+*Lr1j%_j{FUR7ZPyOH;xtenwK-sRdy6ouv=9A`}>$1*jOI)PWQ z^VWj_OB>7e7F37%^tfnsX|f>a(B+o{v5}Z*IjXk|`7!D)r~pOMr|R)Esh8^7&2v7! zGFL8d<Qpg_%b={MXJeLy)pN1(g8W1^GV>a6%Q#~YB5|d4BX4bV#D9Erdyo4i#-4X| z?A4yNv81u=Jww^C_~&|S<bEV*U!97qYi_|1`s;$?TPSiGO0kKk1FtnzruAk}o;Q)p z&{&z!m_?Us#9F1nHY$A~PP?*D)7m)o3BCyI%~)$m71_U>qO}8g4Ls0QSnf6JoSodQ zy}uH&3CZU2BD)hvaNRPHOvwHv8I(Sx#=*y;s-s<3M0jEm|3Bm>p3A2TIOUrTbF-1W zX~3UH%p2_KV$i#X|MRsqvZ5G(#e<f?h2)UiY@*AD3L$OftOyCRHLg`0k<Szyz5vYR zcL2pHoKBH`>|MS`h*bp30XVOKH+jb}-iwTj3uZcsE;+hHQUZ2AaY-*9(>$0BdYbhy zc3tJwp*}hoqQlu8(l%s1RCR5A0BmC5nWhaH+UkSy`p|8&Lcgvy7gzamkf$}4>+XMG zHc`70B4sGr7_X^ZD^>Qi7r_2T@^|wqV+L=&yQ^eHsr>AAwe{?kjMZdazRI+upQN?J z+WJP9|B?$;RioQm`)w(EjZPXOc-YE;vzDNjEo65d+jMYthaf@fPneCYs9t3v*e=k~ z$8f`5#lTkXlioJHT_KC%!n`u)D)6C$8ak4C6`WLSS-|xN78FH!=>1`EV;0uWMf{LE zxVnFv!pdT7K=`(NM;vh+u}!-Du8H1tND+F;o(17d=n})7i1iUQ{wWi9O)fWFt4dI} zhroS(=6?PZMNb{`?*<tIto>IuPlU?l(bjFxJ+$xDvLc5zY*geG>r5_un2&f!gc|9s zS>j+@bl@YKv9`<bg*->+X$^S<mB#MhAiK$h*KWN255UZ9)$#eB-hg>X|K-E=DlL4f zUf>u&?MP4XA*TtR1h1|RLQtL87dD_%360>8sc&IeYFEppS)cDkk;Tk+Q|{TH!S$D9 zXDntej}7WlRe8WKP(1eG_;f}dqQ8kDl@pPwyY6zgdg2ux-s?ORvOQq|j|p^MwNV(D zh433VG}XRp^+wfBUrrL5bsspd_84YH4sJrBLIrK<iTY_w!H~X%2CY^%!HVD?3>>*4 zz$%a74jSJ$eVwoDy^{O+72eqN>2hwrDKf3y$4M7c%Nv^v=7s5UY%e}f*NRhxa9h2a z`fxO@O|Mf`){ZjLe@L%xYZf@s6paAPJL!w97IW^Ei2k(dD+{@vMMj5t*SRN*+9L_E z&nDt^T<KIqTY#jnYG|oCDLY4^S)({vPXEHB+%$dU-9|0w*QYeqAoYIxsI`lV)C}iG zS{gEIKB^KMwAxKQzc*`=Uu}miyj;Y`)0cGs7rMj&t@V`$1tBOMBtcQtW?!)pO%N+_ zsWf1vGo$V&kA)5YyQySv(ie(F-Y#|us(=3I?sajIop%ZH8x&)Dw7?t!89w+m^&!8m znWTi9AyqmivwY}NL?@>sh6K~jSXuiZ;NA9e)|@_hKWZ{8F6lEy4d`E%XL9A6JrO+W zNd}XV3&ZT*5#h<zP32AwWQ^3tpKBM+r14n5vjK%R$5+Y6ms&`#?0ceJ+N|J7nqZT` z$UrB5Zm$Al@t;WcSGK&b*hGlDypP|F%v>1cQ1W}YUZrg`*?^<LAM!JD(u!}l&>(vA zCy8E29Gg^$s*qzTFf$;JF<K{91jHt$fl`Gl)-0=Qv!5!|GE^14pi(EqZs02Sv3#y) zC*Z#Be6gqyyYq^w*sCXA*%^Id^TxKadBGHho!OVBFH0dWVfJ{#$)L0g;SXlNyf|uk z_OwbZCWJ`!p2-1@Tz7#5(w<hFBqtpa3nPiW+o}y)X~_SkzOIU=C-hp~yfxsF+dU?m zU2qj$f}AhDuZt&D0!`fuLNXM>3_|=_x+qbxO7dW0PY?L0pN~*cPJZ`~CcxJJQMkUN zsaIzzpY$NdxxmQsAJ(onP4UF*b;-0H`Q2XV8jNILJa=0n@IXwFQK{p76G`mztH$E3 zg(163%}6?@oLJuy-ueR`fbAfyOAWWIRQS|05b_==AThMzXumlaOAC!BMU11KdF5wo z*JiwuwV8qKgkq?5QUAO&W;(QEbydx|45bS#FAF$+p*ok!{tIdlr&fdY2Nk)@<DNj} zQ2IUi%T3$-dVTI^Umj0HS3b^@r;70>1-W6ct>x9esZWb$xDD*5L|GS4A8gpgnr?u) zwWT^aJM8ibi_5i#Xk2ahrU$Rle%6$ca;fDkmbBwdr@m;Iw$$sk<}H4n<#G2K`4fXD z_uhz4Ql(`b{v;L7e!(Szlw(mW47rIX?Pewi)~FzJ2%En2vk8Trlfy>VoCp-_=j_<H z3mVXw1$!a)jnuGgyO)&`r51_%ST*&2hI0L@$(g=Ztq*c`E6FD&2D^IsaHr*U{8M2I zb*_5sHAZ=1hi#*L3Beato?7YfTDRphF7$Fce4OLmE~NEgSGA|NNEeG;2rI7lsS8oW ztW?VOhBCUb8u05VJ5AlZK+fc@zflr!TceiZr7DAHt@(69b7g2PG0|0)0G$)T1qK3G z&zQx!me@evCxmi5Bjvx77IdqyoBc&zJFX;(6=Z!D@e=9ds85!{bD1*^P`hL8oX-^S z=-m_2!_E0kg)9R6t$umt*cQCP0f~Zz6Eft)&wk5z`i7=|PXp?5*aiM_-psh}Ke8&2 zguYhvhqReo)n<ePdBatpCXH0#!@_Dv+$ZCsY;})m?57%Ry{i109Ab)~Rt!GtaYMx< zsD{`^>}EaM?0Z=48La8>xIPun3sP&7A+1`Mo(X8TbT27+;H46Ch=Ro9`R=DLKac7j z{WifHVMlIzr7_s2L67eH_feo19G@CRaQjB7El3D;UtedW=R1r<{0W;nt({eOZG7s5 z7_OSDdNh8mBLxBnH#o8P)vDP_>`U(V<ChBd29>ouyKDRd#+0zvyt0$JpQ&sqdL;>s z_Xi(dCzR|Gi%~)+FWH<H^u5FM^F(+!n#SjDHL!_~8d4o%eysJS+dUzFoV1jN*zF;7 zsj@I<b+bF^4>x{geE%@;gIR~wY>1Vls-CQz$Ok}~4cEHjLmg*9TN^?SonN$A7(&lf zi1X|n%_gJCf}q$vOrqq%+Z>T2OAmJWA9BW!h0+vl2XUTz-d^<y&22K@h13vwR5z|3 zcRV-L<LEx^wh#XlonB_-QZBk7-k>DMPk6TW2yb`D{C)JtUSv9lqoj4Ffy%>O1D|?` z!SgxAdKEc+u9Br3n=0`K(`0DexPn<J`IO~+g=%7G*UOca@8g9O-H6Z0Dn5mT#H!|~ zEKIrY6m+z*WZ+W+M%POwV)$gS$YsGUvx`4W=xw*7jSCxqxkc1pNAu&9@)6cb8A%1q zHaeMn`i3z~e>)G3?%i*U6ZZtre5u-@gsnyU?Jy)|F|_@R$F6foZLlcnKJ5E9qdMfI zYst<g+&!sU#X%u8zGjMgB6m4u!|v4KXWEp3M&<O&E4KhTLoEJ^sdCbJDR1Q!e6V-f ztIqt|MlHS;|1D)5m<&fAdkE6hVnQ5^#;uIPhd|Ky#<`83^P5jN@O2^>BJVPDO*}T^ zVryy(*3Qc<+>0Mk%MXmvY?r(5O}=eZn1(4w;u%&zmLXxTdp#^6&=2v?Fk&cd1x-l7 z!(NltyRbh5M2F1~f)9DY3N{S9-x#sYWAu69;sCKNtiF}g+;J<wltcme5{O&wpxOR3 zYwEy*Sr3)yyC9b&p8<th9ugA)mUXx_XtwR&3ZI)o3*2?5n+wOdjQ~tL1;hrDQ6$zV zWpP-go|~3U5gSUWuP-SglLU=OjLw6%976f-#_!{bP5;$=cqEA@-~@!Shs0hIx9ko* z_>_9jY>5h>jyB#yAi)Ur9jJ>q242(Cz~drPyXKY^XE}*lB&4W;cL1-lj*ni{hn&|2 zcAi8L(o<+Q5I0jYRLBqC@J$7ekmw~?GY;*p&P(mVet;QpJ5DU>*zObTP4iir9jv7V zy;`pbFtjm6aiR#JbA~9g?D8G^_>bEhkAM~V!I=Yy6N_1__x*)*lKVy0F-i_w8^#5w zo`ieu<8FRrbc2Z#8e&Yrzyo%?Y8s9Cob$$xCyRQ_C;ONoI*G$kn)I&p?=%bX6c2j- zxzeqCAAU&=(J=7C`yTzMJscTd=ZhIpaBP!qxBD6gpv2o0*P{MZhtBoJyq$7HppX8J z_}@ns_TKfZED@PM&8;w|G3CgSCh}xHx1vH;8H<~<P#^rYVh^|?_%g5*!S}77HM8da zf%SH##qjN$qUOT>-sKMQjGVg&_t<ZAtTIkxPb`?;R2lp%j)^Ya-*~->Q-&`tT~Vw1 ztl!nWAEcf9`McQ9in=mn^~gNh9TBwtv!)5IWHx*!yBq7+)&(t!KDf_WN^$McFurvz zcmBtev9$(wF6uzz(T$lWqV$94Y=7~Q0ua(L#R_|XixH6_ay+35W~oUT;M7*TwddhT zCiz#T1Oo$KBmae5n?OdMOIaNr>m!~&v^i{MF3f13mm+t2=n)+n7&Qu&>OsL5>@Dxk zNvPcvcG4E+P2-YLdGBL@+2B*}q*>jL!34?T!+)i4pmj8hiwt=?_)BJEVc-OSIPPCr z_FHuBnbx}9d04@Gomjt$CU&0kh0o>UW--KM+iyekypS+PXahb@0@_6Q3LJZ#G3JO0 z_hMPHwz_-#K|oNa_8t^$OOIN8RskCy3B%^>rdnb#tduH^q%{e9Q^%l<2!FGyd&LJj zH2Oe+yU6ihHc5`7$Hl3fta=OK{96_RE>mz-3uOZ6xVC`&!DZ1qcN9Gzhq1m|X&Isy zaGx6G0+8V3PUU0uN!Pi?AKpr=Grlre?#>UKv<#3xZ2B>Wfq#C~as4^0m{PlZak><) z*bDvR8uLm6n3ytGXqgZr<`by0@>^6gYzR=7XiJ?skgg%>N*HJ>D%OS0;Nyw?3&ow& zHB4+*HUwzP0#95nOZtJ76Vn5Hw9zc`p#x@-nKKHX;Y${@CmGL8CoB5q475~K*TA57 zYBRggs9F#Xxduu0{jx4+c(X6Qb~i(pYh-uXiq&7@BXRp37_;#9%<aUmmQ*jlWSizH z%-~hNGi)A?`T}|4aNEJS$uKSG(+j>kOe6R-ki6!ePX0IiS3FBW)^pLQ9XbIH|9;gc z+b%}Z<Y1sd<T$c@gQB9`oQ`ZreS{ZQV`iEDfRIOHh<h=aT@}Tdqr2e?wHe>Ne%v2G z0x=IEgRlT~?&Ramv-@^YTr#Q2mj91`4Pp`~%i5TDhAExvPap@#r1fD!1s2AiR#MZk z@kQ6*nvZjP4ndO09drHU*sOyc=X$|gxk!D%Gb_N>%JsZ)e0$LKLy-lp17T_v#9!r# z1a0N;4K^a*HpnmW+)Os&_WXl;1$EidJzdv0TJ|aKnTO(toznxnv2lyb@rStOFlyw1 z<RNh)8EOc=@dxgv%=Ha5wQZ8WU}eNF3efMRK%Sb<K8f$WXN$ebf;@nlgHt(if2X)G z>`bdsAOO~nhYdn&UTfwD7Fe0r&NO~tE?qUnoOJc{&L1^H)r!UBd~wemfeUXak?%Wj zA-p_`u!2y`9$@b{gxL|vDRDcuHS5(@8cWXM1TJxazDBRL6~A}}8(!}2bSlTt?gN&6 z;PAitpP|UzvbhUhKR6Kl8-4Vt4><Rk9on9l+8HdJht5G=fVGHglQyk2xHcr^0kl|m z`ivO!*QCt(Iqr3W4*6^VT`SZOhIn1Pyo5!_;k+)V!rvO$(>bQy*(LVlvwn}?yN<qy zbLZH{x>kFdS>WS(I_?yO0)ULgm-_V+YDIXn2jzDhZE?`h9$!;$`6AvfR<$bfC!_DO ztbK#Q;Z=lyt(HYzSo^!1$fI(#tKvan?UG%`uig|YsaVSfnj`*%w+c}Xmv#CdX{+iK z8hx`Hzh>2RO|tTjMH|0_?x{l}5d{U?bSyEOn74U4PoO3S|2=puUZvU=UKF~`ZS7la zdy#|O47)#Q(l>3A!((WvH;!i_mIVO%3-9u~Z~k6_KfgXf`Kq7jsd>zt@i^PDCcWAx zyri;!S<@~5u0}}9{3@8bj>-n>IF#o@kKKx2MtGSYMoi+@qJ56OR*=QlGRvZ8jSMc$ zy>u-Sk-LA5F?Cly*{o8grDJa5U#zH0AjI(Uwj6Cksr4wP&2vvnOs3(fkoVX~SzZT& zeLUX`;-M?No0~$poudD3vieVp=RV@T9GBk(Gn|hrVn9liz2RO>`;Tm>-X^I83!<U$ z?-yp8kA4|cCrcV%yr7WKT+Zp6Vwc06pgYr`J0-JZ|D*?FXvN}O62BlyTPCYY&u;lD zu#(MnUW}#2cyyC+i2SuNWm_RZInCvRYEr|mMtli9ZgoArC}K8UCn2e!;-I+c;M>(p zTM`Dznk5&`P+NIC_U(2A{%0q)I>7(q;ve0$=mm~io`|sij5-f4Z%TW*>f^fyN{}bq zT&EUHA<CY+AGXY~{<Dc(oi|f+#I-p*(XC_B)03C$?y_CcJPC}>drSV84-vTNuH_<4 zbnX$iN$A>g#wq6%EjglZHH#!PC@`z#p`_XkQywQB@@-?i+6YX@9SbvYg*t4;!Zl@% zhs?JvJQ{?1n>jV9;YGLpycQ~%Ak10f8Q*vD6)PU<GkFMoLRWHJrMMQHnTBm@%x|-G z%t6EFELcwYV#P`&JmNr8XnV1WHWMdb27zNGsw%_zv?@FL<iX1IPx=M*0fJGJFt1o? zk7uq5%@4FK&jQ2MlsUeH97NDVDk8q6v<npL_o$>LZol;+I1+|_r}*TbhgDEe3;mR9 ze^jq*-BMlM)g7oLi*V2(Yl6-ARw>_bS;}aa=m50j0dv$3L1|mm%#;RW2d#5QzV74e zwQ|q(I#P}vNcxX+Sdn#JpyhqC^NFi|nA>8>P*Br1^|Rg`i?|EHMy%6Bv2(RPq8Rsk zyE9tc(tZ%)QgB?^vpv%jV$AdM$7U7drB>6g_TM25-arVIhbg42^8d&N0OP0AIQ$EL z8cFJ?sYTEH7KqJ={lq6AXR?>Yy#9H<h-i!!!BoCeg#{b)rJ-`BW@pwYPJtro{;;W~ z_=-73@N<8W^cvVBzooPW{7Od(rHBM_qO0iB?EWM3W^n$GY`z3o5Tg#vQMuo>U=4WK z2VGFbS8$t{c|=ioMlYy?E-OI5>4HQP5P-QrQf)WZ-#6WGSasQLfqsuBaa@1BjrMap zc|)-j8p4!JV)xpm^m35dkssoD{Yf1dXe>O)u9GcMgD^zWp|3nftvCYgu?Q3ybmIXD z2x#S{1K;5h-)}IIJ$B+)OLMXA{pwh9NCG!eZ&<2m56lON`D6?%B)_q6rco7_Y_(2q z)&nS-bUmi|aa}d_I%!AaPqTl$c9t4b>OE*tIbAiSpD#s6Zpi;KfZx}?OXKv#s0q{( z*)*L7iTjTNsc$!gXWqfbanND|ceu;!!`M;EiY*GP1|o2Cy6?`=S5aZ+A&#cPrb@LA zbb=0bKVhA%f$eG5>wEfs4s#a$2_R_PZYnDi0Ju`gW&uHZg>s3NjQEm*zuo=1iOBpi z{_|ZAL$BO+(n0Uh9)OI5<KIkAXG}VUH^izsm<tY08KkwWd90nNZ?o19^Ro?@jX+<A z5y^fMR~;Wxn)6(oc)KY5$NB@Z#_)=7Z4i2={0X%t*#yLI6eSnOy~Kx9De-@oniLm= z32&<G6oWkI58`!_w%PRco7*<ey-+H~GDDmtcJ$QveCw7;3rG-9hnDC+&$#o%LhPp4 zt>r=ya~#yv_=Kz^+WtilJI>NSKRW@8Kld@PPWcr_QB$<HhhgWUZ={7_+sG5N42L|2 zP|4jt1y!Q(|0C(T<Dvfl_*oH2goNyo8L|@2=Ip&kW+5|5bk0nOvx)4zM`V;J<4_{b z$j&HtQrR4L-{1TE{=K`$=RV{0etll=*Xub-#l9{ry74f0(N)@bJ|6V4EMO55$hEan zc6)Kb*<&0IH5=l^fVYX$Jb`61PjyR1Yic1VL9tc*`YWy2tgAd_uZuHf9JDX=gCT$u zZP#J+WJupHE&cIJa92yu_E;YA=|uFy;g9VHJskKS?Y0x4Sf|y00cLtObV*ABp7$~> zJRDi2jL3lmG+ya%xANEbUJCvEuN@Hn2#b4I#BA-O?XRuEQVJ0qYHp@%mhb3?aLE_R zkPnT`taM|x4Y&?wzN0htO76rk+{m=XK)m=9;EZ%ze^nny_SH)d#2V?^dvKmbJ+1j! zKvAtM487D93{2P4wC&iCC5=4&z%;d1e}A0hUDrogOl?_h@&nuJGiVZo>NVU2lShy6 z+TF3#UJA3u3fbZd_0`v@ak<s5lI9=z#V#vq8%{~`b4!_`(Rz%lDsBhJE839A;g#PJ znskoBbgJ4;2ftj#-tC4}h7P37@2C89c)KW_Y1%txC}3W%%c7Uo+9t^)b>iF_sbat< z!2!%8r*RB#Ziwl1w9EKf1^O9$w9`qm{F?LLf%bwRjRN}XUuEIYjwRc;={JnpDm9D_ zv4nS9ix*ERt7R{sdjEr5oVS+u91OK_tIcYtX%ye$yVp7)xWf!OSe$hlSD2y1WqaY> zI}($`hJrl(<fe2k|FZs}_04anNgODb-a1K6Nxhd3VsqcYWDJ@c>y_zp<yX1i67{Ba z*6VizOy)Gw4))0X=3n!dBL}m_^nU+YZ%rSJZ7n=-Ef-i^z&jX;U!!}sN9Om(9y%}P zA@u=<_42ZmsK2c0R{AooG&P=nM1{I`i+5Alhu4Gl*S9avP;f?CUlyi&fq|NE1xd49 z_v&O@{`i%+Tb&u*Y-On;uyz+INw*(1C%n7CPJ0M%2*fyuBTXwcQ5Lp&C$uJ1tOsWJ zz&Tmr_2WQ=2XiW%pY4UXy&`{JGJ-U*HXe{+9<4I&kk#|0Y29T(HXX1=-(8t|N)7W! z(8}gEY%=?7uwh&wF)_l|Y*%ee?knn7#g-WM58{ul8%VNFcXDj<3Hh5j$k~2s;m7S~ zlq}a87_I1`2AlH3ifcx&JHfq+_q?V3q5xJylwOJAD&Ng7-#!)4gk<LZgL3UX8UtDI zHFc&91zuVEESv<S+E9@Drae~qSC5E#gbYT+o%Lt^hm`v}$eoSzu4~#E{*E^sx&*d9 z!4Y#K3j|8eoksA~{4?vztO?<j1Z`q=v>iL|fCt0BaDOOM02bWD1G)E%JDvIT0*`L+ zlWPB#nxPl~pajFuTE`8<GO<Z%Bjo0uZty7%%|a4RwL<^@zAvkwqy-qryLxiu_pb2L z2Xi^?oDdK9%D!HVjjj6PRud;yzNrW334+T>%`34=M$&6gy(w$^;)kk!|KMdD&OYCX zC_IL_u1BBpA@xaBI_esPtbYGiEsh!LRLKF3C8?WKAwQpWk<sVmK$x5e+o^aTt0X;m z@%49TyqNw3eZy6~mzJ+evbRu_Smjb8jV6fJOq=QPkCN(u8xK=0R#`ujp}%-YS^V7n ztCIi`QD_B&?@n^t5g#xyoM%#$pYwWAR^`Hdi!X4*m-#yXV~t&zKSdHMw|XJxooimX zdUJGAyBpGc*;7E9pZ{*WDf7R<4D)Rh>4)X?tS;8k`yK6y;9uhxz9-;B8!RtIWa-A} zI-AfaDX}WJ5EfY73>`Ae?;NBKeCR0zD!BBOq;uh~FH_;H1OLzGDHppW6cRMMNMH8L zdZrFbp|Tc1VipdnTg5QI+9`WwX`@-mU6q@~P^L9*AeO+3JfMiTvuB{g5gQkV*Ew(I z7RYJ5;G+>%$>x#COKS{QzrmI2eLg>Ey>x{@MYgM4XjDo3vHr>HQI5-L3JIB>j-HDC zW*QbAd4-F?GriUyJA24y;YMAGQIclUi4<$-*UE_NuNcZNH8{R5P7^AX7;^P!(Mf=H zbns3X)Q>jYT2FQQv8DU5Bk0fIhBnU`0!*Ej!{N)d!R*x_7bpD(S-NxH?Ot;Qy<%G+ zLaRMagsOx7mWIQv{a^V1598l;_n@!_Cpf$xvESg9)F*F8Gr#3sKtYHmPEodQM^##6 zM~Jh*ToD)oXQDOuY*T(YKltUM^^OB@y(zq%Q2bdtx$oP?&yQ=j<AiHBN<Qa?X;-_o z?oVA9WsElNP%!E`vS3O*xwDHXZts3Pv2>jpi>td>!29-zI|bW-136~Be}?`2m2&-* z_YWI?C7Z32;g*)R7Oe|SpUutP{TfZdVYe+ySRV<=s=esAr%k44{7Q<6@s5r~ku@W7 z&h|M>N7kL36h70X98wpxansZLhXMUm-wn0Ov^%N^7Sm~b&3O{SzSMbkc+hzR<x8=R zN!qgGL-_-;J~F&2_-OLtrBZeOkNa(-LtL{!OPZ(;FfC}BcAI8y8h17Pj%ir|2<qUa zQk7Nf{uYxdeZ`Tk*Arj<gV<=Ej4ybRZ4wu}@CQ}Wr))a$3GvrIB*4aBF8|iK_J1c& znQ^lO#f;1#tcJxeLsf`zt!b&gj1$@m!uubjjt(r$EGl`yy|6&#EaLxOT-_6mA4rO} zW_Eqj9k+kp@LRXwkbscLTw%1P5ibauCr;ObIR1K7t(7#C^U#T0a)}~g;t+U+rTC0+ zlS-uM>=eWUwdbgq*k1)Vd8h$V=gMtiA=iEM_C4i7Qx)Q(cFVoEYpQ-j0>%y7I8E{q z4f?}<;a}@FQkxePrSX~z$q(Oyg_8Q+kKdkzhjD+uq|3uTScb*3hT{f*4S5VU6&-i= zZ5qSc=0okSBh_gOT}$(Ro%HRIf%V;!m)Wet4E22wwgZ}lFc3lH4ANTR4mL%y{y2R< z%!65cF#HbZ|7lU;tN4Y-i(WQoj2YW@WESQsZ(vM!vhFZPd8na=xi2S-SRS!kdn#`& zicZjLo1|7HKgbPb|MHY7rrGA^mw)ea6Na+S_9f>n%Z-gl@)E(IGzR|eMd(vG12H>I zEAvTL?2>JH$^hRmRlQm@rLs&Q3q>bq>L?Pd*^@8kx2M+JD<hSEcJoIT9<fOCT<{|g zkl(3kmerKy;-Dm&A!7`ZTh^+yb1XuBRK6UN@p`Osh0;RI1*&&-pDP_t42if)Gv#Ty zJ0}mYHC)+)x#r=gI&nI{1LYz#+7C4jZedrQXqHC;jNA6K)xVk|Hlr*pu&dju2YuDA z_!`I7qV$HtkK&<Ot}Csc*OS`x>lL4jTQBW0yXdu}!-*Wox*UbA&u0n-TrV<<GUU6u z<8$+4j{~6r4=GT9gbQ3lt57I2WNnZzpL>aAx{9Y;ycYuIOB=xlih10pCGem<M$HCT ztt=?-hdyhQ(wazLLmCJ)|GWtkF8nU+OC%3<&nTKhH%$0GuLt$_@o7C4;jF2&lZy1y zvuBzLq*^6_W5nASoSEIV+;90PGnQZ*!J^8Nki$vtOJdBtvY5l**UM?Eu*HZuefov2 zCKKx`N7VzjSP#y3J`J8?;lBlFrhcfJ<(bIs*5}VF%hQ)b;wvPy4V;!<%OO#R!5@^I zyeqc{4)8Mzo85#DPFA=DyLmkGug3qreOGH5U=KvU5zl`py&%Vze@%6?LELBs@g7__ z+t3Hy_==XsECWqfBUZTP%Ln3j+Gj8)#Oo1wAyXgV?2R<&X*Gh5pF6j%#C%WdzX@6J z2imou%|l$T-$}M>&nU_M5f?jpmYIr9aAfr(^N9K0qxCboe=GAKSv$P{RHE1F322cd z+PD<u!oNN9VSpkk*!e~*0e_KiZmG5a(T6|!1(@RGRm?Xxf@l~?NL<3Rp?S-=1v-#U z6`e<GB25=cMU$=RSngeaR_Fu+f)B*fB8FNaQkQ9hYKn~h=QR&gJM{HgoCy*=H@$`g zOi-H^rzZjz8dwBc-;B6$+*+_HP5I6%MYDitqdNyH$e2!W{!z^M6UTyw|8O)_O@ z<5T9nTfN=?Hx{~kZ)%w$5n;yJl7NdQ6%DF-Gn)))LmlIZF;(sRP>gWQ;R||oM@Vpz za-)x`Gv;PUXP9|6LB-)zc&;HmYCdtodjF}T>Bsjk2MUc>ZfF-C7XwG2DGH(KDj~xr zql`yl<R7f=lMPsSu-fjzZ)i3=R0U}#bUdS6p)rml9~f)v=lf`6B1PIys{O7j3JWVu z>Tm+Bypdu}N;?bcn+j%DZai6(LH=dja^WHDIPKH1cfr0XMjbAdH9OsU*F?)zKY+cm z%!k(?i(p^|wr}Q~@6mP&Y?cC_=~?3P#9cgKYNyQeS8YFNM<a<0*z!ynlPC%SP4o)T z(ThST1Gr%G`STUl_>=HerRh@p&lN0r;SsSaQ!Y+k%CipCMDfk0?t_+v9sVE4RxguB zNS_N+@#hlC$+rA3e&;_`w^@sM2NNRMe#-h)r=0>(kH_TP;&`1b#4r8Qs_HY3Vp&-N z%$pxC>Z_zk2k0nt;btbbGmQ$c>!ndbThjqfd{PoA7c3zUWXTa#!2(A_ne$Rfvw|DK z$^0Rh{+BanF^Jl;8v=4STwzue3PZYm)H*62J!z^Z&Fy4+-bi=3FM|$bLqT^pye;&u z`mc%WFzs_<PZhk9yNZ>R)kf~T!T2~~W5>7<&1-WKUzESb`1xHmPd!yIH*s4p34So- zmet?LZ!IW%>x2?#Pqu9y$TC-2BJxf;Ut03VcwF+AK3S!l-gN1K*}7C_s-B<gHyN$r zPkY`__z%|>#T+J4jK!c@&Gs5qr+;VrOmkJF(-<j6Ze)+Ly%)QYjASmyRsJ%lQ!39| zAAE3oJPPG(mw8LXvw?yFF^lnOk$paL*M@KSNAt<Upc0m%f%Q!xFBjXn`<@o1yY<mp ztef9b!)~ZH_U&}FhI27CYF>N%Mmua@^kd933Hi{;N_#l-{QOk#R{VTNmx5?nwTTrY zW5)i$ZGD5e3f<fwQysodv)-P`dG|f_)QQddyCkMeak&Xr<MafM(w|il*T2X(((*pj zwK(C2>C;=NWOCLBi59UX+HLj9;Z9o=J$udS?d=x71T&*m80$3^xaMbQ9il!PB-d!r zKV|F3YGiXJ4!!-kkOKb@$ti*=x%;*&sa5x88JZQ5T~24{H<#SLZ2h|nx9N^(8Tk~P zQ(j!n?J#m#uM%rYG0@#p`Nl}oG-2)6R6|mqYR>%D>rdtbHpsdc!$uZlSkr``a+7%7 zHZ(!|ZBEKX?6hQEIwbVcMpc%lqgJ3zPI_Q?Wn!4FN<}DR4aw|lh3w?otm~=4ErX+5 zJs5?K!_}0^3c;5;F%y-=f}C7}_@IvNI5Zw!`x0$7S%mN9+6VGm$bV;u58c3Uaxs9I z8#T@`8`FXr*6BDEQQG4s9MN`{DCMPD*m|UHG4)d8;itP0Y*~`wn45PpZ6g7g5qKl@ zzE<{sOhPGEm9JNEujj|+;vVwa&4FsaaO^m2>XBi)zEyEB61dwH9=$tVw#B^8^m@ye zQk=5@NBBTjb<VMK5u>AV;1?jTTH`_f{R@_0P<R|c1`w#g%B}he>se1fk^R5$IWa*; z8CbG2$T&o-<b^|_ySKp4btOep2U#TAT9L&TxD>EcdVszZ+@Hi*=1*G(+<p(`z)%+l zejqFNYv))nO6(Z=*Kspka;Ey%j1y5cEL~~2F*rV=T`?RnzxSsjV2bVCkFBe;P>|P8 zr(>}-A~Pn9^#~wyH;Y$}#)b71T5?{;>TwovB9D5)v3Q9M{j!?q8bOG()*Q_8#|x;_ zaUwA_WrYOsg__sO*55ao&?V5FyQ&wFtq+J%SZV*Qd6+EA-fE<&FNE1hzV230msReX z@FB9CazN3FpU+T*P`X@@an^MhT14o=K5KVBRF?Cam@@lO{!}>ph@bDOTlE7B<~1T? zxa7;Xh58Y;#APhi;cM!Z;15Z10cUhye|N`bE(AYa@bze<trSEik|fla+4hr}r;mwd z(dYcZm6AU<LCIeHn``a!W#^{L^D+ias~vwzF1OH$0=SHblz2H)CH*d7fIuzs(nM?d zgzX_4ZoGO~en+le-ZFnr<a*jOql?^E0+suK08>@fN+?|mx5@LC2!VY1_bxU9Vh2-x z#qF!WywVX9?WOs1AuNxVSJGCqxZg}D)y+Bqb!2hzMu(%d5ZNxYu}f|&&Jj!LH4JYa zV$Hs#S~Pd2+~zHLv{CJK)^()uE9gh83hc__L3%Goo|d0CTzj7qcRGJY*~k$cFF8d` zok@~I$~@N~t~rbB<;4-;l^33OTU9PlkbmS4E#tZQbBc{a)q_>9O74ddXJS~m<or~e z8V8iNNVK)~OQp$^x0!a~l>0r<EzT!fi^40V$@wx5Ohni^*=Gw6_^b)Uf^M+b(t<{? zUXP}fR<#36z&OtZbB44E{7~$4<@Me~I$BtT{*>1@Q|VsjSIFlDBFmre`h%V$9U38f zWa-1x9aeN#Qjgy$BfKTDY-(7*lJD+SJnS&99%6Jk#f3R(Bo%w156tXAfiYvl!|$Md z7=1asFcrnQO=O^CSx;Snt1L#cqQ+@e(x6M-Re<yAI{8&vRL?<abg<mC1P7P<P<Yt4 z=(bB%&rtwcQZEH+9#e~F?8Nkty|V2sB)-F42^@3MTMjg|ceP)n1%9yc+%XjTQDqr& z<Gt9L^;A6N8Eph5=C4Co{W4CF^qo@)5DXD%Eu}}p;gqSVypLtr9P_xjZoa0uo-j-F zFm#&R(S$tfT2>YOJg3EWzj4=Pz)UV@@Iy(+X@X3(9?7u+74B4QkrGq-YzPzILbCa? zBwI8KxAbY*geY#4(!;u+pc_T!Sa6H;MRDiBUN4tjq#po%&xcI}Yz;@3?Qdv}vganu zN=))ftm$kR_G~@c=PmT)^MJiz`7vc6lAQf7JcBP_6^Tbo&~g54{5|W>xR3es1|HtC z3q8P}82K1EZb{Qt=-J~kW^a*m_WmSHj+rqTHCnn)P#UJ*!Hb1q&@zuu`(h`Ddcn*Y zqVJWRuqgeGy)6moDzuR-4XTJ}+$J^K!^YJC&QCgF4-f2twl~(MU}Q*#s-ELL#AqYp zkY{Pz_Q3pD+uqF%c(wpC?jQ=33>6%3r>b0;PO^fh>u@mBtek^0d0l?5R-p7KlN6%O zMFXDxS>aKkuO3GPU8CLB3*0#?-TcQ4(&4tS*k=mPsn#k05?@~XlM9n6H!_$oG9fg6 zuKU*^{5rhI=*$@LLV1d7yj3x@i6kUAFBAH=6VRPz+SokL5QBd~G&YDQj35A5Jq)N5 z_P~|^aKnV^8uQsK7{i}E+7_YasPU{aL)x##bapbExah&H|AVMNK})Ih1#|T=qHjvg z<b%VV%hW0IXC!zi=yTD8*?cPEc)cZvzd=|gXoA7#pYE^*m1N4FGe5zM)ej619*?2+ zww9Gk%qLr86xDvtSzq;@-`kcMeK+(;2Sc1j<)+fGHX0{%aoV;N?l7+vJOzl@L)*=f z2P@Hgm^7-7C>zF<k8xNt{GF9>CA1_^evj7Quj%uxE8xzOFW>uiQKpT2Y(0iSbo7ch zMiBWAnu@<v-!779E1X;TuYfbV(x_~d^YRVa4$-f-{U@=N*?p$;<W1Seyn)Kknb+wK zi*%qfvn^l$&<xaRCH+*Q`#v$dZeu7Bdg*8yP2e=`w0{UQIx<uy<dAlpSSQ9~zFU5S zg?TZ*34gkd#S}m|GOKrg5E%+|j^PW*(9cEhxQ&~%n%`0V3Y<>Lp=32`SpG3|?d;Tx zEhD#xlzNA<J`OE3L3j81E5*;HLzM>gpB<h87ptY;qmJE9hN;G1(EuPu-iE<)SNZTQ zYM5RC0>4EZN@!Nr11w-&Q=h<0c(dwsO|#E_`!0}OdcGydxs?n>%|EY<)B04ds_a@M z7_@zczwe@L5<B**IbC)-Sxa9d0~3<gGr;%6N6?77epnDdy0aVYL~0DBQQ3y-E`NVk zR@D-K;#Y{C8g|&h3?>Sw4q}S+aKLLj#D&9W>DMXkgj8#7w(^zx7i^pf1o4lbn|wqL zLv$vdXO=ikzkybwjlN~rhXvDWD&lli1qF*;tGm*DT;-JYo{l=as;!xqHud1u#f~W$ z88=HCQ@?7h4px)dg$eXw!nz@~X(1$z@3n*#r18x4%wH;obo~TO8@bb5+@`9rHM1h9 z{RwF<2+8)p2N9v^(>Y#VK@H1yJWfL}%t!V0Iw+oPcADx)LPQ!=`46h;a?P_i(;@_W z{FMu6mJ}s!*e>IG+qORq;i58DXUb7Q+wg$pOS755ZHR`X;um@2XF3j%g1Gsu?M8YR zywyrX^XWCvv*n(GQJ0TFL{4vi`*n<e{?N$icT8p$Y&QqfPQEK7R((Vf^y=RA*oKi7 z;WP+&V&t}*=%;TFE&mEQ-kX%H_i}eRXi$8yLaBGi^x&{6F~Hv*^waqNgY=>|1D<m+ z-U)t5dZDsy2$xT`i<my-gQTlY3~x;6@N{4wPLaB6+F>jpSkm>m{@E}@$>Y^fgK78a z9Nk9FKcQ1sY+f`s-3Ou>vTO6S%DLzu*UL*DBpGXC_~ch?f%;kIs@#Drx91MeqDt|8 z{|-NPIQNy;z8U=PqDh&p%kH6Cn>t&<twmFDgiCB*+u7DPbnprlde_GM1;Q7l5MVCa zw--#rE;#$`9R7v%(f8GDQHy1ecssm+z{A^#VD%!%kExe02P+%2_j=dot#D`Ur_O)x zlUCNO7An8tC8h0ov&l{%0ptc*&^&sv0#$w&;6iz-1Efc0=nvR|q#<~9z2U~&BUBI8 zvb+Cp7m36=<89(*kVi-&SiJ839-))-H)3TO4Qi&XxOLF`f-Vua!p&(2UMyAne&^Z_ z@pp*AvB`7ClMb4<4dSGEiMzhxS^uYtR*U=kAc~wS<<^XNam)B4z*)iavK0==;@IHO zMsTRye08+pAh4#6u)}%rrGk#;z0|%6mZ~%xVfR4k6B{)QYfw@13SIE{hkSYddqR`u zIj<k9-Ri1&aR=rw{yZot6{@R{=;ibe>J<9mTgU$ICy)B6UatHHsl6fF7gK7B0P@?6 z^}H=D^|?}i11eNUKV;$9!gi9OhVT9OdBtqcaK^qd1+|oyO$G5C557pjpT$cRvPlXY zscFw_{WV2+z&$6kLOC|bE-^@+>^r#SV`oQiXJ;;C%dQWVd=d2_?4X*qvc$|#)sOkD z$N8QyQp58#lU$SBfa(*eILxn-whT@JirRS$Hg~2vh1rqOpQ;HOv5Z8u^B#Bk8dGh0 z&sAF`*PwC};UC<mb5(ho5z;sL;z3r=;v=1wWw(dJ3v6dp8Y@l0_kQ5*a=wa8<VqK^ zy*n6r7U040h{m2%;oWZC(+Qc#fj_<!|3OL`UUUUFo<3-2lFq!jZsD3MUk>*%Y-5~Y zPPC2m&h%&-1<Q&!oiO%VOF;4_))%#WncC7;4B!?sVKz{@t=1pw&Z;UaOO7Ny=}Kej z7d3(v>A!2PtOqig4GTF--ZnT@yP5Py7ve_%mZFZBul8E9-TiGjSfPry`GG32nSP(5 zPe9CdX`r2DziR*GLozY3H@P`+sKAP!mRpeC9jp&y%j4|526A;M7l%?<U6Tvfz~K0& zbyGtV*VELWK`F~;uj-Uc+K!!F#70rw2SpS&6<iifOg;rP8^4(5zM(ngYtHOH_*Dt& zRNwgv2Ui08X#I#sgvv-)L?aprwjBzH*Vf!gJ_x-Owkf_eCh>j_6+60tSg?r+YWdu1 zHq+!OGk_eZ318+iZ<)R6S1B-fh(o*wouUgYXRYXr%^&4;4Wi$KtNi9k`Qd8oWL2{e zN^mzan^?Ur)^-L(Mag@jZ%d~srbTQk^vfGBWp;n)aRUE)TQ9j{fr6n~X4vNT79`*N zcr#l^12HtUe-;G=9OVN_mFI--(8Zb;0u`y)n>CT7+Imu-4|ehb_BoM_ZykdE{g|Q> zNu7|*%BD+WP){$37jcUh5_+>gZu;_%092sdi?uUlft2I{2ZoE)+Ah`oUP)ZNP$ft7 z_Sko(e36dIFCM&6&tx5LOYvI@7d+Srd&6s_f_D1&pjo-GDU0PSI51tLBe0seO3(9A zrGo9sQN88iT*%8&=|&T^jPG}NPIE4K<a;{i-g&@jJhlD;%3o*DxX(KW<xp92xOm~a z$M|#G>DS)B2$!>tyI6%s%U=&e7g07a6ULxnhPbFP7Ad|TgoyNDt{uEmjTX9XGb$uT zDrd`B5$82vAT|7mH!E3fge7ZyiHFKKJey;C(&0M1T903xIqPBtEJvG-8>y$wZd&9P zYZKlx{T~Dk_OW4=<!Ft<vhejnM<2W|-Ap04$xrUx`*kWu$iiC@x5q`Y7YPI5MR*ve z8TffM@_=(<8R%*fgSQDe4ygW#1mf0|!_*-D|Gj+|Vs}Yl?E#F44<UkwCusp$*)E!J z?HY09_U02JKpWR+geG~+OvK{PM20Lr6~+eT%XK$`!Wz`+AhcJ%)djPb#seF+m1g0U zG%~O5zl1qr-`^-uJ2+GH`k$pVZ7}4;pR3Ga*xqBzRn_e+T(YFlfx;3Ku9NF8Z_0L( z%N;a<KbW{pac$Ak#4Milx_2?_NHg^ZgC`=0&2uQegz%bWv%ivN$h*t5Ju`B|leM&< z`<JkxC4BXomHR~br71o44)z6mWEFArvne*X=3aO^y3wjSn%{UnIkYA=*upkc-(@Xe zqK`37Ws?7!Z&``~poxPEE!+)DD5(rH+s@MUlzihlZgp!8Tb<UpJy)r&+Yf2}&iX@# zeZH^~u-z2f=<8~oC0zASL(H_-UMluHGE37=b-B+9SCdAw6i_OIJ3`U!G9c?xWBpU= zvzWVom0E3Z0rlHTV}p;>Jk~KT({0=PYhV}lq6mG5oSp#etJ;ZoOZSVuWVgO^TSn8R zavj%l$W1ZlVS)Y~KjP_SW(-=D)!ehNtcB{={XslBG#<%yUx8btyHFex(bdKRo=X*0 z`Crmr={)hPeV}08{F9JExlVM9+G6qvb;W4Zv$sj<5QM#SR6T_&oC8?rBZ|T+1S1K( zVYRZUj?i0<fFB%6`9xFMRx!rxr-Nff4av=9PVUOmL>u~v((t^h^$5Sw(Xm#kxGAeu z#FSzBa4nFu>eiXvZM93tXQVMQu)4Z5L(RKK1Od%~s@vz}=mE6#)O)&E&`CYw8rL48 z61u}X_a`&>MRXMs>^}Mt-E&LeX01@fclI2E2euWHH6iA=ML5MDoq2;dDfyo336MGn z0boQBvjX|S9HL+4uW_b>9}u^il~gQEX@}%j&gf7Rs8j;6;SK&;`r{wU6+{EY0nH-< zF@h7@hy0S>X|MBB@O`K5lwI2EpAfsu_GHqu+`f7I>C5exBc?L%|Jk=Ar&$H~Gr%~_ z5nB?LUL<#fI-7g_Rpt$wGr5s^cR;}OO9!{Ko2pl5y3#d8I8_r|biCog#G&2oW#-dq z-Dd)V?hQY_Ot|gX*gw~1(|q-XPuilq-q=$}Sj3(UY0L6Gs+~Mgg=1^cK74i|BQN`! zdRire+EhxM#Msq-j6$d|j}X@dpvp3yNdJ)-+2sb@_oYg$-`E%9<;bvLt%Ek#OxHs< z<u-SbFu0K%*8%|I1Iv5j(k|1A;MOK7NmX&@S%b0aHWA+bpPSq;_x#QS?9BzrDC>fo z{guWVsnm7)bg~x~@BpVweCz4lNX)6reOR#k#a8hHL)qkzxV5FLJD-UKuLSF>hpy?! zD#|<}lT@wlUOl?7{6o*&uPwyU0`Xbh0{>f#9%hH=Nhh*4(~DP7v%=U#1FHSDC7YZ; ztwslO6WP1Zg0z|r7WDVCg1ij0q+_{Da|^A~GJkSZABWpT)QO&3R~F3(rs!IaT)0r9 zlhenPC@I$xdM&*wU*z6HgVDJ2i$<Z<59MD7y+_lTnAk|au%A*_+YwPY5V~D$!}rLa z9ZOa6*+b3=z{VK(%++!;e-#ZXnbrqkxv#Ts4x8sv`+v0Eh?ElU&XD7Z@cYwB8%lk9 z|J%om25U2v_7UGF+>#2TMwuFtr`V-^;<vedG6fQt%;!JWxG3uw;--^(Ct%9|L)kmw z5hix^u<xDgsQ~LjL=jZxzt5ic=OHa%pE4I7@f~6|E({D_eD;FMTPj5d=adS-0oei! z@{eS0K^u7wTbozYinZr>3m2li+OJt&bx4lmS5*)6g@B^rX?%6%!_iPvKJ-s79j{C7 z25RWLHN2LE{4bc_2wh^V7V&OW-demrWHrqC!@XLVH}+TKt&6vZyoG9PbERRfPAnuW zxCPH{)Cw60oF%HdjxNtE7OwkNmr`zOOz?XcQgkXbz;J0s;E{D2k1}ZlU$~O$RiMr7 z%Mx|CJ2L7IYsN7^+9x-a03gJSm+ra^xrz}(8spG}2m>o4axW~xU?38>3kLs5Ke6CR zZrYT_{9<^T!I%7-0hc|bq;(c33L#{-cP&af=DNlgWwGX@tE;lM=)%O-cb`%*pV1BD zwGIKzuRch?wPrw5`q53Kg-S$+I>v?@Zuov-)_yOL$f&FMvUpeH6&X+K&Xjv`fr#*& z#7!kKgC5<MWFN#B$G#3}Wv%c`S%2_ITR_WQ{cqpK#mdcG`9w|>8Ln``AY_Pt8`-&W zH(1p@>be(&o24e73Qy@CdtY}eD6|;SD}^<!JqLww|7pvxqmp33LeY<jWUAHMXoIU) zZ0_0cunR-75=P|lyueQ_R83PN^zwTdgzLT!Gz_ln9EJ$-Tj@Dtn*nq?qEUQ%8ECRJ z{x>mODo7?~7tfb`|AEDvk*R{tMTY(^`EEi{x;IF?Sc!@s56e{!oL~w)<)F+Y4(euJ z+Nz3Dnc+#~4*YN70Y)(dd^k;MQWjBsjE0@joy+q##84aC0olOJ59M;QxWa>;M)2Ue zq}NHDKRRmF(rr?5+7S<LFHw?Y)eK2LrbL3B{`rA|<F>|%>%vR7PTtUgC=DZi?1+U` z<PGxEze9O@(bPTq6fq6{5}m+`@pLjo>K8nhtSO~nr+sD}@s#*Ro%p0UdgHe6Ncie~ zq<&q^XIA@A8vEI_r+zwQXW<_}1~Qj<CX}pOlYU9^#AQ#f(q2!bzVtC@$<+7W6MZUp zKA8j(7=^duYcki8oP%pC9;{8RwFqRHdvrqPca6^7;ZSdd`D#9z!i3*eon?Gn_qQpo z%qi1=>$F6OPAekx&M)qVx`Q8~W9>}bi1=#2)EH?FM6RAWuG!h0g=ei0MM4*)%?Bqg zGzt9Lh2d<EXb##4g+}00i7|37@t4o41xm^dQyBeK&j`0baFs2*_$nj8nke(}C(7hP zFPvDwrnT9;N*OjRLP@<->z8n5VGmT!ZtFN#!BPGef4Sn_?HgLZ%s4mw&OuGZ>Qp8> z<B?aiZj#wwv94+x=&4$_4+n3iAY8Hwq}rV_Nn;ta&$)IEj`}TAd)R;HAo`w7Y@8xd z4>f2*)A;4;Z%B6=b6bNb<A0C_ZEyye=$6^;k?*m;RfUybBOK4MQ&*)tSN@rkeh$NR zLYy%E=Yp7+iW2wB&GEdjIyJ2$?*Aaw?PsRbN7`n+PlL`F`1FIL)i)n#k5zcBjyF9b ztGY=ob4PG!3m4xriF{BlAgVz48gm*13)4&pMqOEp*sW~TAIqst$-FsI8oAD+c4zX0 z9W0D6jibQSGK6wW!0uEOJ+F)rFpMz1gnN~k_H~9oUa_#g0ns;S>GHGw8&<2SC|OcP z{&GvLy?wYZXp0Aj7r3V8DulyTsdpbL3G_ZfP0nSm2%$<a5tsY@F%A*C=F+WOicJ`m zA#mx=w!1cnYl`V7hi@UH76SPcM~`*XzL?ASd!Hc<f@d$)8|oaFhQ6>>)4)cG_Ebeg z<B_ZVryh1sq}F&#y=j+5?n10%@5x)0|Msym(lkJ(xzxf$q)oU;zkdFVdw45ceg&@7 ztz}Yl5@b;$#3v`LESZkpQ5a@m3;(UIo=8vuEsj~db{9vchWBJpdG75#L@o2Rv)zz& zpc^bqqPnTP%qCp;WVMDlSCAma`U+#ChL!ph_ne)9g|tTv{*I&+)IC@KG`;!6!Y%|} zbQ(()S*7%f)z(Sut-Hh5O_Q0`uQIxjMfg-9;@Wa&gRY0Dm=QRV?+=ErAbFGX8oaAZ z?<d&iCI}x^Ctv4HsJ@0GONbjE;ivr+VL`Prn~q_WKo!EA0~jMtW=bd9-!=%;MA2I? zjGF0HyIp2XqshC2Te?HZyL;yv&Y^0JHX2n5^K%ooy*&qqPHjvYhPl>XLfR#1d8yr! zVW`#P7djhdu6?7u-?3f|oy5FNl>af6cJfLMhMJjazzFr56uZEhoR6DDKt(olSWIyt zR4hwv{XoPH;dB)F2XECtd;{<J9rYDfp8h?j8tVDZ{m^_~i(eztyBeEfXBr{j_8(-5 zgR;xp$+3#yz}OYy)y}aRZ?W+oMB&944xk{WRR|RT=sI74la~+WL#=sMm-;yKnl$Q| zE^oVCzC(zf^L<Umh}mH?jXpU8OGEhsdVkp<krn^Bmh*G!!8OrJ3|^U-e0<$`W`3@& z6@Da??u;D}f!-Y;IczO~uU3Bc(g61OYvP7i%k=<6bR3wART492OUz^EFw#<-B$S90 z+!_~>LlnuH5SZ6fL1L&|x2D5Fmk{gP%U$0f2^`I-13gRfzwkRmO|Ages4vQmxVV-1 zP2$V5i<cncjO%HfIp0t<%bf;*y;3~T>bYSYQBqn*S-8`Fj6kAKm+dCHpW3O?;-TwK z$Z+hUjvzjEn{Ys6El>KYk|2jh*fm0~K?^R*;fNaU6}pj}5uV-A7eoRdvIioT5kuWG zT_T*KTk9oQ)(kBJnRjutTEi7)d>_vm7<jLrS-%OS<k&n@__x{mOn6TE>5YNz-GhwC zAHXhEzRPM7oBS+GOSh93cV(a?J~|OND-gC=hL!y4IOW6oj`jEPJ`tHhyGRYDKx5fX z$sG#~%T5MC_lpv$#UxrQOGMY9K%vUUU|3i*8$bK*m7fphcAw^KPSokf-3;MH{`)n5 z4<a<vMcd+wZKHe2sq<J_K4+LGrsIJd&i<b~xFD^#))Qc28-qen^=n=wKkbTlZ>$g4 zFylAye#*D652H|}R#CJ=22aR%?yk*rT{?9s&!$g`k-NJ7{gpgk!t8b_=O&5r!qy`5 z!kcJAn>wRZglrSf@^3%9(uCjcL1|yv!DX42wqaHW6{n@JQ0K%`4K^A{(h=p#c~!lF z?(vr$HS#6aQ`DNQC8Dk=Oxoj4SnFM*gTvDL1Bn}4!Z-_a3JY=w1ZNN4Gh00%Tr^(e zdI?d>PGd7f2u2-~#Xeek%);^q?~5zb09II{)njUO9QI9`Nhz#o?XUY+x7>!X0V7?y z`A@Xd5_CmQyQ3i0o}%7HPEYOL@J2dJo7ACq6?nX-8v18niB%k~1VWea+r3nfEmTn< zw;_73BUKu+AulI_sI}W0d;5N8rlZg>_o?TF%yrU*!qGah16*PFu#A#-IlDNQ&P7+Y zcI?WPrPPpkMf;txceTt4c5!wXI}JtoXj9Ga(-s<V*~fw~|7EPN&;IJtfo*r_QK9Z= zHv@`Po4?IG&XWp~`3S34-qQ<5a1{n^Ij}h;J199VE^eR~)iwSg-?fMH2e!qN>UPw( z#qr7&4r%f4r)Bu-Td>E7TikklEjXB=b{e<%tWIw;iZ6=l6Uu;Gg=!^=do7A8gN8zr z#3DQbqSUap$mEng<t588R8Dh>>~>%MEndoa<V@(_`<)j8m(;{Gp5^m*78x5gY6QyH zEikhq-f|XhogC_(iA+2>4qY=tNORGu4?gtqo9F|D#&@l<F1WTqbU*GO^>PEJdbKQ2 z+Z{9xwy~gUhZdq*X9Uf=<GAkEH!~IOZ>m-J7!NK_%L7ZLe4eu~>6e7u_Do7cWCWsi zvTo&37@TqqhcF5gT~JuIFOkjk+ed42&M~hZogtip((12cQK!(R1H~Jn)QKD+lu6L7 zaHW!vsWssc`bh)b`_(nQU<j5>I}i!fs1a_CY+jW)yO>NyMy&QY9O#`o_2LkN_znsK zh1xU0D%^`lkM`H__vntp9=5S5D)iWBMEuji+2d(@X8(i4;yd`rF-qQb5i|&=!{Xx} zS@1IavjXC(LA*GcRIC<5n1H@HIJ(c8(TJ;^>FQlB3Kw%8!!3OWYJp)DxaOMc6vvYR zm<!9>+rDrt7diOUxS^m-Z8{#oY6a^VhluTSOzGTqa(o+Fa8Z^QN0bG8+cje>@OnVh z)H>6}4-2`;nFg&=JcU!JIw`lKhkjbwVJVERF>@AHcb^=YGK$f0v`sT5YkOFl(m(V& zaNxxuKH$PMf4o!9>OH_lwF!q7T*$kLBO%fY8z<*dBUOQvs&X8W;7Xh*_5p5>{Tj&O z#9q#fE&`Q@oO*;fT>gt}gWJ_bqg8NVYshvE%)P}7*&}rA5ZY_!Rcghv1{7wj3$lci zBO0L=I7G7}<;>ju*5^iIf*S<iyaxbb;9FCkD_KXXHa{Jc#B+q!UZES~m`Hre?Lt+9 z+yAC*I}-=1>$zwAFs5Q?y|TI@4ffu=9{F<YZVFIJup-m^P~HL3e<+R3_k%eZmitN2 z!ou&9(}xpZfilGUZO7-n@Bcc)^|;xy{jBEs{N5{d(yA;YzzP6;O)P5~YG;|qql_qL zbEp3pmxyePhgeb2;Yq_65YeTyR|i`=bm<&<_x8_l990TeUHug9NXevcJixYnHoR9H zifFGC7-M|V@|^FAx~C|~S-{^XR9q=FHzB_WBIQ|cQ}lCZa{*hJvV$OCIf;^<zyGAq zxJm|Plw0<|O_u#tji(-uFdi;!(8G&mV9pOQMz-V&-wkeNH0{NK{fzjFpTFnl<9w{# zgrpdy(~OY0=8Y`BV=PQGE3-phWq6U_P&fFk{C;^+b5!E<1h0!R<}%&JWEoTQ2JV#0 zWf#UzD~fJtDC}UCyPQlZM`CmV0583Zow><F_bZs3Ii8nmI~ZN^o}Je<cmEF}GJDcX zW%{f@IQOaP7kPI3=#!(Cis#)nA8rlpb4^`fnJd30*au1?>znU5k5Eh1i;j6-n6b-g z{<>EvoP!~=z`%z046%f-HoEn>;u+4;_zzX{arc_m0cmcfSX|lQIO9DUi)l1t(iJ&& z8Z0jFveJ?quklH6#f{SKO^w<7;+J!+9r?|j<rM>_V&vvIVncme9Pf)rbwx{Q@NK4d zWM|w`u9zb~_a;yv#3^e`JK008>{)oU2d)YQ$8+m2mvv<ZXL_XDcE~j|UnBQdJzR5- zIxx)GXG%1edg%0OPR8jNv&OJAgqUu_V<_~j#%fo@8=5!v2a;-I#whO2L;@oi{Z!Od zJ<BC}LO|>>)aV%bK#nhE)`->2tlFY+znMT9>hk-poq`6<U0PvE20KXj<hPx<8^tZ2 z%^^zN$Y@2O9qYMgE;`2t=^vRDUaKVC7NI$jc97;~<~dxa7<c+!WET?cslw<wtVy|D zp^)XiF1GdXjf2k>>MF=gdW6uwiQ11fTB_xm3f9|~3e*Ee?Q(}FU+{SHMbnYKP1n|F zfV#h;6MuLqSsNf|_2|5|9e&m|2%SN>zul6wv-5FL`Y?5Hg(L$&mduj1>40tI%aO6G zH8`8B-nnIy<4I7?aC*2|6@{iWu&k4f2V3&*4X;xuJtPfOi$EBRt%Tk3no*(=d+8!s zD!+!l^3vdB#oB4h8CY%}seI^m$k(P*&YXR~uOh%evV|WSNe`YJQ?#Dn1a<=w)%DsM zVHw~4gLr5LL_6LPc6nRei$fl+7r?8{Y7h4fX*EMZWA9Atq^JAf$FCVS+jUG=BrtQn z(+N1b6y3jba}Pdr_Q6#U@to>kBOehK3XhPXilN_ELx%-Lp&wO%)bi<(?G`5}(^@J8 z&wvY<m#`n<ys>IM+(~#Jd4QwCfC4|P0d&6M$3z4pc>S{#)+6^h_2^HCJVAS~A9p5z zNemouOe`Fmn|TSkgt$b`bCTeIPx;t|&qHU)A;h}#P5S1evQ*cBzoVVMwvIVK0UFKg zPdB{=c!&ryzjNcNJYhF_ZN->*-P_^v)bHUwplwO)`ucHK3`jr6of-ZINz6i^0OL^a zUvjI6{sF^N4VEVRlxHfO2O7h^l*fC2;eHL56wUvkPN>@{)0Cj<1SnCc#_-sW!hzY0 zNjmBvl_^=u*H-pL>5KGT?MvF6GmAFC)Iq;5yQIkPauL2pd?8HN_DzlOKDVkA)i6xZ z&4i|ufN}&;4T#k5c!Py}-j!VofaqMhpsFN5%WogphN;l7j$Irtv2OcwacyrqUu+XP zb+Yfdrr9q6E!6etj7sM<b$O7#uU$PJaIj(B*+jM#2=5{1&&_A{wTqfpZ78~rR5w5F z6W~xMADZ}4nNarN((eOlSVO2qz>rulMfP`ez~*(Vbk}R$fw)&#tzS{PXTg_4U&M37 zQn-|PwS@Oc<S$$Q{MOX02PY9s-Ts;y^eeZ@?`?UV+ii7%p8YpkW%=!kx|x9?Bx|W7 zDFz9|a$jT2OygZ>an)L-dzr2-?l#l@pwLenN1a93N<Her8Nkp2H7@<xzmEUvGA(|> zgeHogg?`cTT1|>+_%cnMo75OafZ&MWdzdxqx(F^QZU$>aPCPKTu$KX|VGB@aldT?k zZ!tT@AQ7@|vZ`~xLu5$BuNOExf)Jwc(B7``Z*8OB^6JV7VxrI1ereqvpRjpv``~9E zu^$qY?D;FtLAtl_vesL77Z_*Pk`yod4PKodkiKI(iH)4cV7__z7V6g?;Rpn1_5N2E z{}pfdsWO`As)kJ79f02^wr0@BCaX5%8Kwy(7I4*r+n)4dzkO-{(4F@ie)7@vL~iVt z^C+TBnlCVl7u7d@rVki~5NA4$*k@@*Ox!j+koCw{uV+Ku(ubBL#~{}Bb2BU80x*Bc z3@WY*+YY=AaV6=XFLh{uR{Na;t8e=)*bF<*4e?3;`oi$Bj?rdl4NEjoJhE^$`R0B~ zd9`J*{-ciyN$^C7tl!7OnYcYn%|83%$1`QiVV1QNc7{M1-pq=%ZuirErsUh=jG`-1 zwlz$hNidSQqPZisq#im$p<N~Ja2b?E`^_g-PQKl3T><ZqZ0a4@$-9|R^^#BP?x$s9 zYBe%7nfNlUT#nd?CmEWc>|sd-u30ur8~w0iHcsVa8NMd%nS&-xQJ9Q_8TE^8>MQ66 ze90^$;?*>bHNSmDpYkGogI=c%R+ec}QxtsW({~Rk6J=>nG<TB@ob_MMgM^m?D4Uju zoB1T#IeWXmNRzt^A#{ngq=50Nv}Jc`=YI4_CypKvQZlwMo>qxlU4S$lw1zAqmN+W5 z%s@B`gu#sjkYOZ2Tm6jg)DOgtUeC2NKw8?4J2L}o)|%`FpVQtDp>PY)NZeywhHD^H z{!g@f*~Ga;+;nX%s?_uK0$4#DZkaeemBdrEa}^#9E<2r*976y4p*ZvKDn00P2w(N1 z(x^8)X$>_iu`3MiU;{o+jKy^2uB!YzlY-YmO%v*#!YW`Fd_Ly=YsB<Y-x^QGWM_NE z%$Ju&jLO$b)AqV4B&02D^NEf^z@qVV4CJ-cy9)eyGTLnE<u@uF1dSS49M&kYKD`}8 zajngOGdoP!P3U+!vHe~5f$OtWldROONy0;1#+6UY#>(%B;lwZ>E+jI7@82KQ(=+0` zl*-#GW@jysrKEwg&g3;F@{?i#fyKdPrRW*q$7{1m8I@|Mw^fpNs&rz6XdjxGL#H%K z^>`NO{&f%q0b@*F2ow~1Jigthn}EdeG7ee1=dSnfO<NvE{v&oK#M}OP)u=_Hwgpqm z((T^8X&vKbvnRFf!)kVenNcpQ7I#@&?AXdI!l?0ABslAGS%%kb8qa@U@_)BnIEiyy z2lk5VY~bQBb6F2ClICd^pD!_PWrn^IOq&auRJruYOdxY27=W#TgKrRMK{vv?WhX2q z-7mFC2OCdm?0tUfg5a`y+ti4<(C@FZwj3?uZV)=om5}`EiTLFYUGgFUGG=D$Ri@T! z$wG7F)fKM^znvT1Q^HyD=s&h|%w^I%;U2=K3GvkS2fc3ixQ^(OGD<1%lrmkvH)O$Y zpTt{cJcu^#t@CBXaOb2^e5jn~XZu(iQ2*#up;UxrZ?K!vyzRCLy3a=U=N-(VdwlPO zFHmxs<92d-Z_bAogjG2lB+9C5_Pa`di)K6;{7!8vgdw~6>RuA&XY$>MJuO@gGwClF zv+~ll%XI$aLAzhPwKi?h7t!x)A;u9DQ@ufoPXB!2^%!lF4ICbNjxz>PMhD`g>FOf{ z2vU#dCTz%|4iJBw)5N~=WKs2deUeG%fsZSkhr}MOt5_AOz1Pp_b_iUR_>OhxH;j|p z$NTN`aaN=rba3h+h_TLpl>BYL@3qFPV!x-As>P-KU~?v6_raNQODXCO?*|LV`RJQz zX~h}u8ES@aBo{4hEt>uT#sMcE<o~oS+}?gU`0G2<)7+fLgHAFACNH0bO&EqxM03NO z*q+zMK)AEa&EX0e3=|+-?!YPc)NgdYnUYUh$;q!&hOOxekBq#Mco+ICBE{_6_{CaV z>(yNUp<13yT7e>~)XK%MTBgMCRkKlAxJJ<A<m~}tq^S5XAFRPmN8KCFJ5|jXb%y|Q zEN1>j&ftAlua|HQDU@r8%jzF<TnM;l#AS*3DYK?WS42zL`3S5kh{Z!dpk~L}<?y)l z^ZB{j&j4@Odx_Ib4;@VdCQIsa-6|XY)U?psjk~|CbUM!^RGm=b9cikrRi4f#mn&0& zaVm)AM#Ycj_IbNAWD%5#0OU$6SyE0*l@3$%?>)9DF?v%e&}XSz!_Ai_+&;7YgKNR| z>l!`)Or->+qgcvw>e61AY`8nww|G+I&fuDfQ)Hc*PHb(98LN;htPJ%&pwBv<VO(qT zjUI1Sk7%h?`erYaF@gg~sY(X59;nm9=)G7&bv-IVzdL;vHz<p(;SiRuQK8zEtvc}B z5t~WtcOstRUbhSzid{Mg`iNglQn-B8NlHw^!dEkL|M}A;i3wWQ)LxKS?v71#`&fpS z3$5&GIwnaE^JTQ|M{=2;hA?>e38l?tkO8fz5;|ZZE0LMz((-Sr%bfEqgUDper06JL zsO2@7sD)iLT#nO(xWGTmlntA$39r<E@lIOLFyp<_k*Fege;OOZr!NpW(q8&eJji~6 zR&J#=H7`dTxU<p<3c3Diy&2-Isz|<Sobd3=H_noD_YRR^VtzTe5oRJaY<LkNtiF=w z;Ni^r?})2K6Gx3vZ2Q<mMEqd&_4vl8ZlZ-;jSZwmWDNCA3Y4s9T@e0+qHK0fz=hKL z60V|+%+Gx9tv{|!Z61?^DUtr9(vnA5jm3*ojP{a&8*dOqw{b<C#7p4`t4HR%-85V4 zXGR(TYDqJ0YrPDGIstq_QRdGm9%`PaQCcm<QkWMtQj~t%c(_|2QG0gU7JI|^Zm8a8 zsm|&0Zx7#+T>D4c`RfeP2M%padke#5gCsk!U0Dd&KPyCmD9LX&9M^AZrnvz#H~;1i zqnyy}!K_Vab2|M4RIuv2M4PChe)HiQDsGUg)drGD=)gOmag_c8<IqIWyLl%Dn*;qJ zw3d9-*~DsY4|JvgSTKnoj?|(w+i7Fav{QWC^)|(B%Y~7`4xty0SS>hw{=A^u^ua+z zD1CsbcR_o;(?5uPz{upTbeMIearGut7~`AM+BiEun7s!F;%uhS_o1zDXyvsd-`uVL zCcoQB#=kb;*Q*((&(-kE;;J*Y9a(`(rx*ti8>(nwMdw_jOZTqwGVza<UrDm;AP0I_ z_`jf@YjF!8&Cx7gf8y@_j!QEz!pp-9r<s(UM!aPcF4p-}+U%iqe%=T>x|3_*t~4da zqN%P4ZtX)8=kbxm+v-l9*u=Fn<Vd2Jc+Oc3<~NRI1~SDD{f43HL{@SrF+@gqWGPf2 zY_s+>Y<YC3(`9g|N>MX;GV{n_2jjLzOph!WWBCzl0_Up8I7t4jvbMPKs|Sz5&p|EO zhC-gN6*E?gK2$)mtS01*5iNe+whNbuujumI|3R+Iz4FMSsvebb5KFsmBd(RocEzVE zS%sbKTs7Q?4V1nf&E}BL{9fVm0%BI{;eG_-Nu|DdJ=|WsJlTIB=|zKm#29levl06! z+%6f)0lp1M^+QcY`^x)ap_RwBOW>1e<FdE0W>v*Lp-N;hiwV1b(~4xrl;_@mDp?|e zyoIO(b~u8QD34O6rB<UkI-q8E$cNGsMpc@gSh`%CI_4rFpg_FoTNgR8)4WM1KL|Ps z@W8+NE)MG^78WT_t?k{m$e)N$dK=&AYI)9XhaBT17THRxO^r8`L;J_yOPHacaVear zQypS5Qsd|Sl!{^*uc;WwiM1oarEh8jgCSx_+hZYWY70@~m8W31L*zfBFABQzu|+(D zR@UN32!qqax*RjlCih3UuvGpXSvZuO6XQxeiEIR%>4pNEVr)`x_t051kk%r8T5zQf z?c#RfH?tnWe3>W^8kApMDm6VIm-bOBCF*x@bQu3hJ8(D$Cwtf63O(ICdDFPx=wJb{ ztyur3L5BMV)aO>LRJW)4gm6o)&blb$u99jTSL87#((RGj$P`(%y3fMBEUwrVI?i@{ zL7t)p-W)k5;!DRG3H=+_I_L1_TW6M-xu`<6_KgjNSoAGnU*-2?g!#o%CK=4Tc<DyZ zy)}Yi;aVlB#0bRlUc#*~x@u><0pSChi~LtfryF0|FD3EEQ<t7UsY%KZHk1E`72{gd zA%~NIu3Xchvk#ls)b1v4_rl=#F=s;2{)ZBsi9kAGUjLE!$0RAcPN^Sx3wI9RMz!s2 z%GI|<PRg2Ih$-c?ev%_L5JA!!!M5kOBiGX^l>k-q`QXZ@ay9pUMaO6OV8KO~-s<jQ z<=Ox|-Q--Lf?QI>se-Prtx!Q%Cbs43$Cvpr`b}QR3fCbUztU4I#?})F@`qXOwX_<s z|3N6Vrx{{n-}BLOF@4peQ#}MCQe)=-W9hmBq5l8>S;>m*tdo(gYzb#%XYVbm>|G%a zB`fP}%I3}<kx@c+Dx5<h3dNDK$K~$xd!6s^zvAxg^?r@#>-l^<AJ510yR_alB`-0N zvT(Mc3~0ObVx0Nr7+w=(_Rk{Ab=?BZc_R*LS3cZYaD9c+=1&fS27n4d`Zq&6x3Xw1 z>Bl8Me(-qaX~XlkbTsCoS8i_!LlD~@9?kq)n`c)RKE9G;Bd3S$g+c$?dkimjzj&7P zIYWJab@83^N4LF=%I&kfoyRkDksAB>D!XwNrH`)RUNa4{8tSgyxht!gk^gS2PFf@< zhdoqre7hX9{oDV6C`-9TvXae@w1<UMHCBSV*K_*ZHl~9EMtgC;Ge|~oy)%TSoWUpm zWYV5rQ@StaqF)O)D%&D|c7I`Ws+rLH*KMKn$)eJN_xA`R&j(n+&E2tJ|7kP&G1UqI za-fHaT*JeV-ONpwYUz};9LRidjp~$XIv6NWNwDADZmiceE$)<IX%Pq-`3F5gcDPkZ z%>c=`SU<Z&f0zQ!2?*AegnAPsRh+W7H{L$@^Br~hxhsp!*Qqs<9uKWEy^)nwQ;@rS zm_E@UHDQ9wgB)I$HyqAR%~azh{3;97j8f#m3+35e*%%@ekpSV74s7$$oKe^{Nv2KJ zN__MSLe#sGi`Z8q_1Xe^1yOcDY=MS`i2&Q>*`Dpbk1~{&%V_%9WA_*J)#(W8d>&1@ z*?f%^`<(dzl4`Y{0cv-N7f~mO1~ds@fcw39t3!b2qH;6@TGF((fIkLENu$&=Px;q% z4&Hd>-9XrRJMX74uj++ifU>7Rp1J9X`$7WDQH_2XGX+$gFnG=qOHH2xGHFCkI4Bzg zEGS^b<vULBaG)jFd#*-0=m%s-4~fUVQ-Oa|wfC=c?76{A8wQooXBNP6Y+VM19l%NF z68fMR-e0xkw+{Gx<@M8+{~#35?cO@#r)W1xMX?wg=t$)=*7Y;+R4|t67LK^7{Ne0_ z3|~oNFP28t5@O16qx!6~A~(9qYl>zh?OVR>nknq*qe>>VdaSEJO9!n5*~DCWXf%*g zbBvby%XQB&toPnuuBST%oMOp#-a@&bol-buD$(L~2Qvx^t(@eu^?ik9r2>cV>H?zv zyiIToaO{5*%tB*r>dZf&C-6>NL=DlBbX9L&$KpST8O<VD^{=G`i~-PkWa^e$RmYIW zbLZDJR!v4%#TCQfFCF>Z0cwq>_n#t0(WisDI#o8};y)VsNe*f34@FvFU}VIug&6&3 zSCdIX@I{vZwGR@x_n5!wQc9E0TzywEHH(5bhm3fP0yekh5Td?<V}Kr}zq$S%=v~fO zil0*0MOaXrW#)SF<j)>SM(2^9#eV9+=9wU!u*PX4>M7L>np-}bxsJSTt@fA^9LcBn z6P_dHOWct)PC%OT7)*RO0HwF!=3t{Af}k!manxVY4RP0i$!PSqa$1!ug^B<c*Zh4) z;;&`XrJiZ>y-$ujwOt%$Soj8;X>TdXP%OB%#_jH<J8c@uQETcm-m1x8?3g*^Avued zAn+VO9Kg5A1*FuLv}kv0csmr_jb~02gs^{S&MZfqHaHhW1fK6XF8c5?hLgXv@_`!< z;j1@$1T(|rlEfaEsNudqN6vLrjN7lHYU3qYnT7Ool{;xIij7JCgUk|+sJN7lA}lbv zu0v+STnz~6UK8zBcMl;P!51#HoWK>dwJaIGcx@r?_v)j{f6ufk>dR^q6%+W?&1$b9 zA1xdhGSTb)I)<g#e|6j6`sSN?Ru!#c?w9O0vut0&wd?<FIyRlMS;WVVwYJaKJ9*+* z0U<kDJ89v*o+dnJ_T*^vCVs;EuE~Y!)mdD3O0W)SC}~_OfA-IOu3PXwh>Ykw7t~3E z^X%6{F>}1$4HLdgurK?kN6_Vc|Cn$N!e@jdKx`v~Esk>-HStxnz1!CIAVs{}<Wa&% zs(5)C$~YDA!>nU+F#4I;37%FWXk>0)!B1K&f+KpVz>G7&ahlZKMLp~l#ILF#sVC!7 zbT1}$q|J<xeR{5mW19P-tiF~wThEy*5JpyOf&Qj{)oE{WQ3q*^45p@+tZc%-%?TaX zmVOHxMRc;rZoTaDP-rg*z*F_EZ;iZZZctw}YFJy|+~2(SkG?8_65k75-4?oY$j929 zvmRI9tBEDdf&5hi+=H=7psA+p-{Wq-csix*M)fnhWrLKWV!EcFzphG66Ak9|W;bR= zc(W#Wa$$4$*wuMkKD>r9t~Rbbp%L<=PoZbxdlB^0yVt$1FY>2bZHBr_2i3)p^v<P^ z;_T<E{B)J(9NzV&!ggV+gn_NUQIYkG^ffrA5iH1vtrTzeJ;xpXDXLYMx`Eq0>44m5 z5r|gVgr&k~uru%}*!8_bM!kbrMqH6)45(n!Bjf^J^|pToT|}>O?HrP}0Uzsz7w<SK z5ssL<RN!s+A%*8AYX>W#V|_k*@2q<{&*tt+gxX@qBr{>Sq)a&o9w~(ojyN`En2~Iy zOk2;8RO>k4TeRPucunhjL1{**IE^bpw|9Djifw%(x_9dz@<i#_7Oo6$R9hJ#$Pr8B zoSml$BgRO44+xaPeoRaf;LD&q1tjnq^>t3>m(ySi=Q7i?mVVCX&{qa9mL(^pfZ;|& z)`9DFrRO+q`|*QXZ!fVu8OOV^u0W|!kITYcz!+VzllKO?v%Z|mns3cZR<a-Zn{`{v zIu4*-zc)yR!j4v#r!9ZI%CXG02#Y|nFlvQwxl`&l(239A4ifH3t@pb-qPiTJ?>9G~ zCJJ-;7vU)QQNH4i3oDP4=C*3j&22(4vfuw=>r9v2*wpI!{^V5QJ!HNi`vtbz4EYkh zGhVhMOoyk<^U&&gCXiMv3X;C<W{K7vYk=qJ__!Qja1L;K=G|QoH0`CWwskCvlVquJ zG7_*PCoF(0hR*cDgE_=JHW~Z){xiy5q0^D^qtIl|n(byPbi|Dif92fO!IB^Uin|rP zD^xi)srdJ_c-JahZa}{53iwlU1sxs<Cv$S<-+p~?wevE;S#wkA2AkPvj*hGfGu@B& zy%Xx>?A$F0o0mVD63Gm*&4%?{Ge#>N|7cdwq&fsmv;{ASx}Z*>{L_8{wLYi=o@q<J z-{w79+{)Q)huMB~4@BA7HTF{^%b3?vb;HO?W7KhE+sb#`+@6Q-EsC~3P6UpFb%}{+ z4c0y)43mG{!|D1^mLapgEdFllCs=L2t^OW8-?H&UJFRwMx@s<IV?PGNanM_%&LY04 z;fP(E@i%I?Fxvq$-Z`4zL0ZaH(IeICZ19o>r0VT`Wcw#)ktXd`#(Ks`+vaR2yr-G3 z?1{PQxUt!!^o6u)J&S(oPGxSv6tWZ5Z3etP)Ohdk0pT+eNDyUJuw`z2^w+=nGfr{i z_Qsewd4`U4Y9nP_JF`)gz#f$W08yVzwDXe1W3w#xH`qtqgSp|EV{R?p1%(k*(Ic$V zT~`cMm2{Ad7HG5=k1;c&uBB!Aq}^Gh<~`|g<-gpz)>MVlZJs&%bqvv;3zBB<Wxg6Q z9w$4yDTfV-8+*VLSnrjW{EU@XHs4qF{&yxEMYL8j_?s_<u)q7r^esYBCa0mievL&R zk1qV~bCoGd5VKB=^ODXn9ka*@Gi~5YV%NHqldPhn@up$aER>*v*3e8uROK@r(c6W( zwF$`lk<w9R;5NL&A*t5rg_?|xvhk#G(bT-EY8}6LdkULDS|-_wrHq3qoH?JVY|_2e z(Vj4S_V?3vm=^El!sIBBt5f(n*+n*zP*sTp(v4Mi?yZEn{rcEbc^qCc>IEOUB^hd% zaM&m)c`9&v(5)xV;s^FZY_#GpAj9dPcMXZULhH+t9_7Qe7OeZOj)pAgw7CPfv;Z^` zC#rJi8X%KeI(OV?%vsdTR}k0GMtP*~*Ui3w+Vq_la#HADi{-+h7-&9LkJ*PqJSe6% zppQH%Iv3|Wp97(8j1b8D`sK~q;mzm-d<^ipK)a%dV;5mzrP?!<d**>RyMFyzHu3{) zQV#<}BMv8dQ2l2m{0>e(;N+1zn**s)l(w#9R*g}@&NzGXAo$jS>haIhw7NMnrA1u) zIM7s~KUwYpfq6lN6*XGeRW%Rb*@OR%?a{goN}pfs25gJ;&S6J80H<`en;4lklBYU5 zmvZe!14HCT^e<by-_`L%mpDb26oarXY_R0;U5OKX3APpuLf-eo$I9@YG~zFYZ0={_ zBcJ>Sxv)wkWYy6239V*?b1ec??cC*9z6x8Ns4JEPvdzGq!)9HZs}>pgqofT(*7UM< ztp2Z(?~?w~MX$dBvYDkg1`Y1pBzVv)6F9aP%+PY&D#LjwD-W)3ZfBeX7!fF)qpnfU zbURBt%usB8S8_}YYi)RI5r}fpeBHg<KMoL~qp)^Ppt4H|kUn2VIvs;~*y~TGQ4?vh zv=hcky6Toe_}ID<lNRT#$Y_<xVPuu*H`!2L^h<toilh%cTDEal?zhP3H<7<LRz@*n zQ3Y;Y?k18Hjk;&ioVZ6=4KZ})o8=3&?@C@F7i9zWShTb_recNChe(C3&6-JvHG0hk zpWW_S-SXL48B7_d7JQR?SI5<BA8V?oFS2r%@4d&1ByV!llUcn2NH~v7v>sPVhHCL& zw6va_imvWzJgE+cfNqtQfC;}P%;KVAhtMui;i$}>nzb~y98faDRI1vAzD+e`vG9nS zHt!N(FdX%PqE^qF^6aR)54yJ)t<+%Yw3W1Qx3AP3Qa^HRsIg3fWQ7n>6hZmOmJjCT zY-x6nAET|5yu!uE850p1!%IcHyjyq&9%HcZPirRmvg6fmGqTWx)Y{%O>rh_YJI4;x z-mNsfe5e9>G5xl!)l9rxqo3vtdEnkifPO}3nmC-C2@d?t#p!WX4R4#xD_N|Wt(%q< z-ZZf_Hn#1OO}0I;ti;7r{QPQ7q<S-1e7>L!Mf+#j?9(_8#TXHZsKjgT;*C$BV4TKC z)tj!tvG0}iEf8`WF7shXUQVzfu%?>krq)ubVX++5O34%a<s3<Z#cPBjIssd&5#sJc ze#kUpY;EDVc}ctJcfb3ACiS}{TK`@R6Eb*1IuRK$+-se+jPP$R)xFw{aH~!Rif<hP zvBAdcM1(?oEFG$kbG#FDTUlS1c2EcdHyezjJWmp8adofMq3QxZ{N?hHz)E*#ZkPvN zDy9U}6=OJ+_SjSX7cv#0psH(=)rV`wMbpEaRHkx!<kg+HDgV^C2fAx~va=~-ZSOVV zvdQ}M&00L-({by#K4#{=XY6jy!4K{f3Kkjd2|iL?$|KCKzZQPVHpS#H(B@!Y(^Brj zOx~zK?XW>sP1SRV0D)V{w4%q?H{hzIiUfNnEamd}OXvD8FXH7j%5&@fq-qG{m*2Z* z&Sh%;VQBKHqn+hVG6Wq_E1-hp6**}-ua|ydxb#d`Ki1{3Or`m4-C*OX1c7}#B_y&b z6eSjZ?bnA;Jgl{!k{6uTt#Sz}*es|c=OUiQTQvNa!a;oP1VjF#2h-(YeQ;g=AeOMO z9}S2pz!Xff5&>CL{a3FpA2`>AfRbb4g1fRR6C_~^P-5IzI;+W>^oQg-BaC!pivTuu zWVJPI?L}M=(d-bP8H`MI%<nnilPQY!6$h!^Rbr;(CMx`H5<)vQPWq(?wplfY7q18- zN*g=2>CrzGckhXj?rG$hJ%AospA*nOD1Kpo-xI@A4MWARW)Y5}K;V<T{D43$em!D? zN~rj;ktEQp0J}-1xy<@w+jGP3m4&+R+j~5xxHT42#eD&Tl}J-~7Wfq9lR+E%2)7u5 zI!_!n8edPQPVx&b_u{90<P#+cB%#4my1e=IY73sQ+^e45j6ZV~H9HC@`;m0U6tJ@f zrnLWQs?fMconY$Iv9;&Ag|jbn_4)!kpw9Zs`$M04z{oZ{P`SDFqgqM>#x{b<9#_}B zT<(|C2q~Fo_?CXzJtWp)J@FpBQ!O+Z|Fw!<M9ed-kR9vFVZ9+v*Fc=o3jG7j4cQsV zjOq7RDiNO4;y3wCak=d|I-q~@?RXZ&t=q9#lL4y##;AV!`dVNxYaeRX6DMvB1MXHO zW?sGH$X5-vqEhLT&~zUXI+yH&JvvNo3jC$OBb`Tn5QNdssjil*h<}>3rOq)tN$R%= z$?HktwTUdt)w9+T_4zrQ@+#RJY1C18fA5N@g!olN$)_8BYMPdMyondg`&_SNFBik+ zjw6FLS+;_>3IjLn#l~<9;`Gq%zsTL~d&Xhww{uyOb<y`d%(*f?bXVjUZ>4D|-&oDi zO79Ko-}*+$f{!$m*(z<4Eq%lGto9np<aOueHV?yb2gD+Y3niO~-Ir)GqXMZ5qbm1? z!|*KPHLBXpb0>>R=0lf})t(wxl!sDeXi`|n$q2`7uT8v%d%th_Fs9wahW;8Xy5!$$ z5XBrc)Vu10IrwWcp#Wl|b0F5n*3bXEV&nU~r7<zZOeE<UgPnMr&J*Y|g8#f-1SbO9 zf0M1{E>1sXp`-x_a1!^gUfL}hoDNi*kU|jJ$NLgB*BYgTHJBaS9eBk1o*c^KpvTKw zkw8g~f%I!zPS>nf`WZ7oUDClyB2*GyZFCT(7T-AY>ltJw$i&r;jHHiBx0C1CDYwat zwo=|0r!7^syd3jAg$arM(=$Wya9!8`UDl$R$=YgT<3gA2kJ>)>P1nmZ>dI;-tr=ot zN9fAuyQ2C7HfA~};DCBBQ`iUo@kjOt@C=S=6*pGajl0Nm`%YCE=@$i{?cxGf<zh;1 zZSAQWG-wV{XZ&mz?3wFUK2WTsm2Q{grc+_&Skj6smf{M!6>KL6tzNdLp&_0CYvxRq ze1%G3$9p@z^i4Z3<#YIFI$mtJEYQydE>9E===S}*YAumeTXs*%fNw-Xc2g}PqC1@Y z0L>3YHmC`NxB^+Xrm){WH`8oh5Ppyv@_r+k_F@T#BGh2SmX}*{9-3N49;qG(KfUj1 zS5afPxTOS2W~lfbCnkA_2vaO~zm-Rwx2gH@jVV3R`uAJMEFm`#-BsDU4-lKZsiG1@ zLn0t1SRk@horH$9+kuPR8&QoEG_P@~juWIb7vV_fA|ZY#gndj{#9h_BP)YPUg|?n% zeX8B$i1;?OXpV<YpzXUxh-GUA0ld(rl!S^SE%S=^hvACcY|Jo+$;Rg&h<F!k(^W1E z^CimqCru^baoXN@DI~-iyH*g5HlFp_?cxlxm386yHGZxz6K%9coE}G~DzV)l1ocEA zJEtPNwz{D@SJ4|JiLNqd^A4Ds->&7SA6E{RBJJxkU;<2v!avYpO$EfwqCXX0OA?*} z#Ul=;`b*U&k1qMu?RpR`*Hcjw=1o!NrzDEspL{L{pi@-?0W5#$zV>spju(%Bc-a!4 z-2?63%Y3+WNF1DvoM?y}rL-r<R;gK8Ye+If$5qm+$fa+*q2u3t&8D0d4i;I9bd<Gm zRO4+%jreSdNoIkYRQwyxIJ@s&yyt0X<pKRA5l?Xeo2;Q@YR4wtRO9WM&b!=yboo~L zY<-C)7;DtP)wUu%!<bkM6$U+{^Dje8`s|Lg3`a18^Zuz-!{!v0GyESc*WPq&NPltG z6)Fm5#`_%-?`<Q?ASY;<yvP4;35Am$njja+=n~_qb4o}Z`|jvj?(@EJf96c#gVy~+ z`F5gdUAJXh)V9G{R`OZmE?-T|y>Q$@cybmslV>ub&l@FFx>=s4D_WgO$#ao@?Tcdr zeD^4G^2yYibREjSb#f}pCQH#rOk#HMKZyHv3@GZyxK_V=X?Kr=P6WM@GRAeP{Z!1( zPK|kyL3PfYB%tm(tENve728pZD#>KDn|YSg6X&iECvwrBORn$I!R}vQC-ARM;~IX> zZ0_LwPJ2Psx(fV1%=|++1M%ID2bq#}x>d^er&JSYZD;<TK&@DN=XSwrXMKsUEUUd1 zK%X(4?a7f-f#a5x)MWi$L-dcgdWP&7wfT~6x4w~lsdU9vO}4fDw2NzhXoARf)3rwK zOSD14n2?#+v*oRT!*eAz|J;JFsj(bUqL5zf*^|>1Vgf6Vi~KfuvZYqm20KY)*2sF= z&GV;oYBRj#jYY+`r;Z#5M4#)0ViGfoFTUbd;G#cT1}tXc{f<T?xgcZDb_8A_u5efK z4zd`}N)0&Uiq2DGezg}r4aF~8X6iz+`p)lc!#!RX!#=csg<<{NcTRia2@#eWN}F9w zG>DCOD6cm5z~$neg2HOa#!Vt`2D|Fc&n0gqsFaOCP^}-LQEa_u-o!Cav^*c65jU%C z3!0l5p}It4)5&;2jl|e-J6d=BTn*A~Br;B1kM??G5Z({|zg7iPau?8YEW)n|378LX zs0rQnc@k8lq8m|xUs*r9&~yZI2IHYTO$@zvqt)q`?$#=Q?5Kqxs9*pidFux5fx#(U zn}xBQg-bdL6+Apk`1Cgb`EL%Kxq|2+o_G3995*~@HYw4gvP+8#_{b1&u4)h#wc5N$ z?Sct9W*=AEuB*MsHD@9Pp^<$w7=d|Z2o&tSLjIMO>(~0>?ACVZSBY~Xrc7Q-p@X}0 zsgYx;lqMu#6sk_lX&jr@dNBw?7hcynt<glQ5j!GoNh*_PGB9l_D6rv`J5K1&>6bY* z+BwOIAN%UWAe^y5KqMu7haYSS{lLs=bF9@>(&)JB_u3obefBBDIllSC;i;EJduyJX zc&i#(M(QG6pJ}BHqau_Dz+<fz&1uLUkfe@~SU3V-aE?HH(w#69@pn}}QVGehs`S^u zvk^hRx%Il^adOk0;K@#MIYRkzhNJ`*C`u7jO79mKMX(OM8RCn}mj(GN+tp!=h`q-5 zQHul!o$jOFf6K24C5qglw_2GiZj|mFU<t~Cn&yMEyQMk9NOAU!-su?e0JqblP5X{q zB~AH5|EEu~2C9k~A(a&3jVzfj97?arc<>S=6_2{*&}|z+4;50Scrj$@ud29Z^o&I? za`M%fN9g(N^o{V2)iaeYbTkq(Srw&BUH{%fT1M=`WY}J5$00~Lv>ahFw??sHRoD*M z6(!?UDGBGyn(FF%UZ~AN5x0nNS3}XYn|d!O!f=aa0?}$msU}^bifK<n9HW$UWMjNC zEEv@H4p!(FPD6PDlv&p*imgyywY$c*@~x7%(CCeTg)|!mhZ~d$Ej>xSTvv;4THu<- z%bcd8?uwGIQwhqTl1uVoYkU7es4pixC)FCYU;d{+cJM0t`pHpVMXKYnWQOhhgK_f- z4bNRU^Eij<*YT#kc1@EEz9h;3blFPyk@0>>_!F!|>t9Zxzx?o6zDO|LqfE`g=xF%; ze>8?h5?b!RTd6oiex)vNaTSZuMr3V;MJeEl>03x&mvUmPQ4tn9KOe<XYF;+&o6L0n zoWpGcz4MTO9$48pS_&3V<$5O96V7KR%yW_S(Q`xBL^Tq+(UnCT`UsDiY4LY%6(udV z$oxF(g4`%NgK~Td8QD>VW&Cx;!psHvCZn1O2GH82<sX0Q>Z~F<{pZ8e7bXcG5WKsW zeMoO|Ee1-$1{QiEEC1+_sAsqyURE||q%R~}$!s{72{3>IcsuG}!(}H#SdmhVCWrT^ zrzLOg=XB<ToiJ$!XZ+niwcQbu%vhN9lksUyk$(Zax22i5l5I+HIaa(yQ4#?WVkpdE z)a^@2M!%Drq&lA?bOcOiW-J8EK2=_!kkWM|_lacgwBmwy^c=@?`&8U&4;o8)KQ#@1 zqb&M)fS|;}l^KBbhw*$-QGBap!qx#8(8fnR-w4w`jT%O3?2<{4y8|JIu-~AuY9NG} zTW0o(lePxQp*<R|Oo;m16qd&D*zXs4-a-4x!Tfm0iSqe{sexeC7&63!1OoqCgXqD$ zow8`A*=&ztiw4wFVmT{noJ4ZN(K0h;(&C0|IMCMxN|b;I@gmia>%N+mJQSg~zJJg= zeNIbxr2|dXT{RUlmG1$1C+CVg-L5**xCI>17qbDkVOW0`Y!7yHf!O|Vu6qbPzuq^T ze^Y|+<y_5rVE6A*l*ySJY6(As+tPDoL+BAo|JQH3nw*04{j5Ennf_Dn3b@I`hJ(VW zA-x#qO=kKU09zB$qQa#Yx9am+)-6xz1IhpuJOGT8{M&?jT+>#=x95vtm@mH{SaZq= zu!QhSOPUiX+(=7BZQt&S?ABcfqpkIi!p88cMAou@4&XxWJpVk)gwaXQ5@a!-dW#(3 z8m4cr%cX#R4NR;IWTybI>QQlLll_K7_0!?j8Tp*d=@D{YT92#pu0sL%rXj#K3_pI? zgJue}5D!*rzAl+ZN+DVm3ybrm{P&fJv0VbCXd?p2{7KB>zA<g(vr0w9#+cnxexgmT z9MTsR$yvS=bV2gd$!(7OlB#;jZlU*}T(H#RlhNuY_r2R~7Bh1Gu7zqNhN6TSB@Gy_ zFjo`>9*Bz;i11aV3{Yp3J&{q69NB6}1PB=RfH>Ljt&5GJKfta5zCV#jSuZr%q0o!j z9RYy^@xlq*Bg0<@B#HmE=TRHA#J^<T<9sISma-8bP*<e`O9#_T<c*eoTbVVHOT;;E z`YM8TCUQp1%M!;#%hNINri1m}1ETkrt*ru^r)7Xp#HSzNLWX)(!3cbtF7f6WKt8{_ zQQfcg>1#R=5cf6_acYa83&!lhHMi*CCc!$mMk>%7t+)qmcJX4yW>5MF$RL5d?`-!c zhQeCi6-KB)4i$%}aO=0<dA&k=#%N-{RvXVJUP&x+7c<v<aO8Ccm+d#(yZAuA0hJAo zw4TWybM5pwU-OZYnIE$E&4!1_F1lB~EKgmMKWK5HqP+;yIB#3tp#xm3j5kcpuPL1Z z?i5E-zLvI)%1K_3d*dgnd}G@GIb$Qgm{IoRV9RE>$iT2ht#ELnEF`Lo(CimzH2ZM6 z(p-!JZ9G&btoBJxgk9yT!t349yD#5&$|4(rVfQx<OlJEt5+{rVcTPEE!`&udQTzva zpb4)n8Hl3mc`+dUxtPx?r&>#FA1awsN6C@fwo&|e5}Eq?uY(1TpyQ_(NV<b-GS8S; zrVsFHocO4m0B@(S^Z<Q-QthvXrdpj+8<MY8Z1U6X)-OR;gJyaOt@f@Q-=b}>%AP2t zRnxx0)tp0`{~&EIHI{#aRuEnuDDv>Mf(e__K(r_#mo3nZQR><pnclTec-4w|QlDi) z(@7)fax)qKoborXxU7xBg_QwoHuF)~U!AW%3+PCbXLEoTtj}O6cd7cH8EeANS=`3b zAjpH4JS_b&*IjgIsn9b7bYvbu)9)LSnKy)eR@m)s{!TK%wz`jp@t_TPnyu%aMO3&? zhF#w<EL_fY7i_%VkA}|?-hDBx(Qf)WqckFN2sgO?Yi<8i;#v@4dBLn^#u;puVfwn* z;BW;2sg)JLq#%ig9F2=q!vR;rsR#J6Gbp$Z+Lw|KwB76bhw&y6TMGe#FN7Il_r62W zS2QZJ@kNB)5iJ>m&PfP7ay6}ITJBC_OHqa<sRd2$wfPwGXxI|uXzZ#WW%alTmZ#?$ zRzMn)=cn|76^`;~X*PB9fv5HqjY3Q)jh?><ZK+nmYT#`spThxD;BWNQP4pr6qwfb} zw=%^X>~+X;*VDovQ8oJaK|jT2K;Db;rRw-c{|U$|-J0u0G_I$7*&WU#W*oKdM>|H= zm}17R;P%u6q!BiN9fn_Da3>pSIK7AT_Re32cpt`A589iaEi4#SJqp~c43jgS#@PV* zV=$fbKt>9%BK{GG?Xl)u&){uYCmqxHXmORg&2R3`pNnCjTh|`~ID?-`o0WX8<0}rp zp+Af2_3@CK2z(DLK+)V8w+gNIi1``+DeysNVXtGnt>SgX9S4M6J}z5jgapG!=Kpog z&cmuw==#nQPA80wZ&*&2jE~nFh6(DmcbXn>`1SEd!3J=VG&e-`i&K`rt7v*ZT8nZa z_YW&#tcO(qiHU6#a_Skdjg*FUUaOcZyQ6d8->+j&Gzsz`0~slAR%saluhRa!G_xT6 z+OjTL|D&TWX>GQyCc_IsOPQYjFr0m=v*t<bw|B->`K^HgiQ&-vQ_x)S(SqjVbe`wI z7Tfrr&)^*h+FaGJ3%YCF<K*3va>&hOEg|#(K9>JWZp)`DcQbz}*+1iE{WI{z@L5&y z>rA_M&)96;iiSCApO4Ol)>2c<4lb#Q!{uRSdIHI9=Id!$GFMf4C~QzZVj+<RzX!Fs zt{Gpqwy3nzE*)L@bQ5v&`sbujoH$X&kUm<w-x+pjT{Vk_{>Ib6CG)ySsrA|CcXdm1 za1pvVP)Mn|t!{UKLU(S+#0CABRPC6a_^HEXpB7cC)?S8%8Q=16xUk)SnO#~LbN2(* z&w$%nsVNW+MK7JHNf;lxHR$?qE7whxj{Z_zV6rzUv)*<Ie*!HP?SPuQQXQ?68kb@b z6jZ7&$vGoLLkv~I?vQ#XcaLor6f0Jmnp$5ibh{_8Tzrw3o|ed_@u5l;)38m)-4je- z$eIou<TK>Qlzc2K**Oq$sZ~Qj1Vq?px9$ekCgDO;BH&G{CEk+=b=4kNNlHb^Zi+wX zK!o~M)LKcJ-JsWjlHE%cN&hRI)~iANgyXWy&DD*lt`7Q|x5duF2g9oKmc94Lj9#=B zAXaQCGpJ$jBd#bsmOI&;4@<u1o+=>K?JdEfKc8j&-EJ@_<oBYECbEiYQF*u_?d5}C ztI5?a1zzmbiuCgc*&073k8lP$r9_^rpaB2Ik^!`%rL2ksN`Xhd+QwAWPK47|?B;Du z;vj`!!yzuN@?VD))|lHveDs>Om4<#CyWE(3C+T_?VR#9gg`e_SWq(h2OGa?VM96ll z0cHm7fVWZf;Qm5tmui<Tt<g6fb`ayPt!(!%WUh-({3Qa2;!d+}15&Gr+XNtl+cU>X zVY2W~H)c1O@+2CjdZyHR=E&Rnrm%>4Pe(YXQqLxT6@qxO;Xjgo*s%RXGCd_-JJVKq zlNy~+DfWO);FSD1M*M;vwb<ul5{fR&>+jC^^?5iK>%qpTpR|BwnK!*;u43w%KvQ!3 zs&|&DLUOTwn5SJ5+h%4-Ro@{)<(FXJn@4*Spz^f*UutLK^OR)jjK|%~X2t!s`3}w3 zhQHHe381#UU4`lJQ|`sd0@6{(@uE_SBs>>9ejBf{k)e1PrsJlCWh<;7bJf61nW!4@ zu*{cTrKs~Vp0hEo&s@M(%1CsPhioe&^mt6euJ3bm*?zHe%;G{PRyK<5bbRQ2if^MF zuNL>mm5sjlWKh)oT)+X?*%BxBi}WaQ>8OswW8J@|XWf<$#~;cM7oOF<03NBMSc-S5 zeO3(_om18(M=XE(*7iO1#?IVnrjmvNie9e$phMz3dpS@z549CP5;~J0Py$E8;robz z71^stcU$b6-^hd@^`WTstdSFEq7Nc4I8{QOpV4L|`iIBlBST#Qf5w+5_#(RzVkoOH zv;9Fo&pNgE3f~(w%~!V@;U)#fg1QhI2CXq7w4=*$B3e4G!!`9*&zQE@&{QGm<)<k` zq|MGF$R2S&6bj@NzAME&_M#S@A8Mo<`(No;YzA~!o(rfzr-MHc`bv)@e;|`{j5#gu z;LV^>oX#N|uxrGz8NCUSxFBENUaQN1nZ7|$G+Yj7X~A;M-@Pe~Pv8weMil$cPoNo{ zG{c8@**c?p^vKVUHjy%4an-0vPit+_p7?z6yRoGtkN5RUKj`KsxVlH_caO*$S?bI# zn-hKCqE`iqQlS#E=)^BM799=4)h$s_GiJu<7YixG_ooQ|T{!b-qo(eYp&Ylt=c9z7 zT6Is8Rx!lKJUGgXesZZVvMF@yb?`HUZ@hT5*Xo#<p@CWHvxp6mu^Yl~nr9U$x4?C- z3_kR&ZIfH(ogtrqJ4)L8<sFOe?A;5zC3?z$Rdk*wkqo|RmTl(l;vPZYQXdrg?3u3H z+Xuy@x-$oCT=rX|L|2remFLbor}Edi+Pl)|&#!d#=gSpM=Y_`r+wGY2e`m4qRMbbX z&}5}nXT}<p+34vPzza>)9v+A#wgZT)qIDsuURiTa0o_tdfSwab+jUHD_4gkBFJ?iq ztJ|{(FwB`Lq65PCw@$$arrRuYMBi)WqBnJ<ZLj1bg)e@$N9Y1BRS^+g7^;q|W`uZ$ zUmi^1DBlRzz1VlZ*|L2CeN6o3Fw+2Ymc@9bpt6fi2etEt79fQ+pF6aN9wAmzYA`QB zFMjf80XFT8ip@|p6%d=mUx~}64Q0Fn8q^1hv!`#~B))ZmV;XYIyp5?e(6GO!;3Dg6 zE{>SHvE#k0IZ5}j&%#Ymx<2^C$)R>|t)?6ON;x&;z^uaLSR=>#(5!1jZ_d!0MDwz~ z*Ki&=w}#dXVF4G}VR%UOGkbdMwnrG!OF2e_O~~jO?|+bXVaPu(dn0-)AWrY`KKV)E zh{@_whS^p{#JrsLo`sHzam;XDCv7hZuTF{WfAvlAqOy_{C!3rx9rqo%WH0wDDSJBU z-9eKa(5AVxh*Rh&2Imk6g2Q)DcSfzOzQ?SCP=zMvyn>}sz=;%I-2^t6OY@YA-i6h( za42A!pM!iWl@L%_m3c}`9(8;6lHu2hIL{XIACpR{FFZ6sWA_w@C(r!-7mBqw$SO97 zxK5aexO)0&tPga8atGc7zFDfLM_WD=x)bh1FLa&}>x`;2z5QNRsUQ?#R52ld>pX`E zvrSJb(0)D$Nr{0V*K;Y}S9By6Y?Q_dK1{CBpka$Rab0r7l#}%pg^>m-?-}8iBPY9K zP-8H5L51-P{V#<pspp-oNpvI*U|C>~Rja;9;&~&;&$RXoahZLl@<w6EPeJ-k)tt4c z>*s`1HjCw9`biln{!K;Vd)SDvkLW%U=N#@eAQgCVm4g`Vl3Co@GaJ9!6Xs{(vm!dQ z^6Y9AZ4FM>oIu>EP{3eynPKAT=eptLutDCH`gZuo7lZ+W712-2D$s)^Sez7U!KvF< z+1x(mP_EHi3lJs$)Mht6Pi}vuyTwx5c;S5<W6Kx=j^82^$J)1?QZh38qsGH#q~>6= zzW>nyy~lpe>Fd-wTUJE_S=q^JiLRb_<3qvx6w;5;PhxI%D`Zxl)J$K}yRu0qAz|rW zUYu6!T{9~GtXM`MUWcNs2{iTQ`d50TN;IOu_KgltJU+9dcK7nEm3z&6VRw~l^2N%# zYst^;v>69sdJj6-1W;^bd#x8gkdBZaoVmoBqp>dWS6=epMi_*1vshO0I<UF7C}#m3 z7o^g!f$2*6Cg_UcyOMO`DmOm?ULgtagb#_qV>hUj225RIzr(rP8RpnSSo+ool$dOF zur+D|k^N)hVh-9Z5{&20`*}EA?8O0@RHBvC$%GGJ4?2kXa*Ut6(C)!mFszA)MB85e zYIDig7&g1CG23ynOf2jTQ&PC6VDC*?(!YkMg#9>2l4o^1DBv>`yfmpWdmA1}U*caX zmKCo#gj~Qxzn}@E1mmm1it1qu@q9~l2-V8}AU)^Y6dJMi*TbvjwL^a#F0cho&g9!Q zrd&_2YKnVUt*vjJ>CMvUO1mUYH+x20L{oWZ`)$?U!I7AG_M-uptEk$#viA*^hT6B7 zBz(fXD~77{!mlPRwhi<BPX3u3PfmQZ>$!~FWku!;)_MVESi(R7#czqjGbqs=nX62; z)9Fb|=x(300}LKBHQ>;9fS;o;y$Z7Soi8Z=pgWWQb$rI$LR2b^S_7wi2V6^hQY5)+ z8DZxLx&2DVB{8MKmcu{{OKZ14^6%&4QIgC%x-etn;#3>bTq|J43NQ7R^5$Zw{)3SH z4+N6+l-_<WJ1v!HZXnL~CVwsGX|;Y%+V>?X?kDycK$^Q}k}mV*YO)vq{aKyNr-mZ< z_Ir`vntXO6X%>s<YryZPX{ju=va3-D-oFz3vsY(5Dw3~d=E~D>MhFDxNil`^S)+AT z0oXL|?&BkE8HO;tin_}%W2Efe&uc>?V2ZQa3Y^zUpQMRW0fCJ{hC)SkgG_^xCbOrV z!j6@e7L81U;0-g><s!^)byr_Kc_J^s$cM>VjtOO#9Z^$ORvOcyhzsIt-Aro2x`mWw zZ(V&^I7pmo%E+$VJgNMOWE)Rgv8xa3k>N!aK6jq-!77y;I1#<hWz-NbE~!;E{Fupx zBiSE5h-g;z;35`O`@omL#tIchqYl%UA(B+k=@d9IC_^`0Hsrm3kHeKo|88uFZlNtD zuSUZ`dWL{NjQVtB5U@9mA?As0ZY$7WPjsvIK|l4E<|JmjV+!?N$d_Oe;$$_*$;Kk{ zDJ~^nLwQp6b4gxj=b*#Ga}=)4y(?M<tdoAvjF0o}J+P`wjk=gvxk?v0m}X6*I+yS? zczR9t4yo{}>(An=HDy;H2l7MbQ#Q&1T#Ye6|B84yS(<6P*>raHmN9OXOZ%!QGr*b- z{~s7q8fQf<La{*yYiV#*@KIl>3`O#VEuz!$>UP3*t#+}U{w-3~ijR6gl_G$+VUT#w zCg;H%Vbg?3Y$YU<05y%ogL2-6ICaz}*O&Ql{a3Y5R!wxt8R_ukO$S2X^htfDckhhO zI5oRrYs|d9$0)VYvYA(4m2$UN9^g`n{R4tPhx;8ZCvJa(yzJvptl`Bp?-c^-XKr>` zXBUlO73iqLqq0zWDA#1j!ydYD;;8bL2gZ}QeH88I>;tc^Bm61Z8UpkapQit2=2L|9 zReyXc8e5}{Em%#}|CWFXs_LQu4jGi_Nuc?(o?A<$Sy_hEe2Wq0ZZvvk@1wRzO36=5 zPu8<QJ`?mRB{x{8s4rD=(MW@2%=8W=aRQSq!??vNcOc}8HQ)xELlEu8`}?`y@ifAa z6nk8-BFMaf{bv)sq<z4k#^uE-e@65SK^mgP&sWkOJJhzYaZ%yit;jrzzeZEJDD2a^ zT(UL71=NYav-pQf5gpeL)>3SN$wY!letXcJ!J?MhM^~2u9VeSOT;C-ScS)ovC!;2l z&zGXClV<*uDAl(_{{}1!gxzn9Iro+6;HQS7bk0{anG>@hj{<EXj(wu#`cZ+b+47F) zH8#i>c3-;xAZ#7PrOs)!jF)%1AZaB&_>)Sr@`|Fz-Y#l+_YiWfs9*IWabOzxPXW3G zcRox2Ln^FJu*mF^sG-TAglwi8!<<K8KL|ic4D&#(vIGgXlV-@ozloC&;_b?T`r(~l znL}T|s{1|D()XSEmL3&O45Io10VBR$e(MxB1M0c69>-j6fHir|8Yo<c=%5K;P)33` z3l`ZdEGd%P`^6PI`HNwt=R}%6$w{sVZEf_&GWVRn4du`;6kVOYT%<%08@VwlU5kB} z8EE^tjwI@~0vL)hpmv`NY2NdAwyXhh`D_d<xf;oTkWAu)<=SnB@yS2WQGk4LKs*u) zXrd%i+p4&!wTHqa@^q?ac^8U9fi8t}1Zh5ZBr>I*LQOR*7|y!BVGN$V3ScIr%_ePf zt>F`=Uvu*9gbo}H$lU_(r%=CtT93oB{^AO*QviG)7#pK-fk$ge7plliAi17oh{b(E zJK-I8&-=W&@5<G2F;vvB3b;LisJMRYpdFtnx9OtwEHjYew>o7JaSQ2RbTkx^l32HD zdqA^lIWs2a6Q={9)ng|NK*gM1^&h9J3uH;Gu%wBM`dy{rrfp2v05%+mnZET|pC0Bs zs@iE$D%KrWG$XN~t5FdGd`vFzWo4OJ<)w%YHVQ*6$?Jbs7)DDX*R<?z(&nalVeMzf zMlp}pVuQ9-2GJT-IX-EsCHD_DRy`LQ9$tBB{+ZwPeUhd%&t3Z%w>6o*7YC^c@IS)q z6)2{GmDtHo>OU?#YXE>;U^j!KT-v2PdA{!imE59*RP|b6<+tgY9zRo28arMBi2G~D z4Ug_Yrhmz-Z_PRwtuM|*K9vx>Qx(GU8@=*Zx$~r=E<fDXRD8G6J>lN-I!=cUp>O<! z4-v`H`~%~#U)ZfrO+HTo>XS+0rLK`7Dy}FBc0$yz^!05_T1-`9wmJEEW0g(cK$ip> zVjudn0KnJ`bewzk+#I#-Z^Nzgk>JSY+hpmES}C*xys+om=ncC^Z$r(spI3dd1eIo0 zZfQ%e7zA3NmCj$?zI5MP;due`+VG>4RS&`4p?G7yA{XRfBKjQhxK>-mSS`Rk?9X=J zw6}I@izT_*DJXAiJ4EyhwoO_TNlks|RFlB_M%Bj6-w5jnf;LAznb_V?>Ds4Q`!H#r zPQsa3BYi{FcjO1<nASz8ByU@!k?xr_IU{@G2L@`SxN0u$(#`exKTmieQq$WMTnvgK zjNA}PaW-AH7CJbfzcw7K6`Z~%*mD>386Md>_}!5^Xg6iE<wM0cBDj?^-fxVbnyGh! zCTzX^Gr3{bktY5hJte)TFNw+68(l`tdw5eP$5HK08eXOSt@T3t!xi;4`ibsk?F%Wv z;z<O1W6x{--$geEcHYYa?bUr^*glQ1WDe8kDE6R*w+Mn8#)*0VoWFRxOG$Xsy{zzl z^bc1rr-CP&Hk6w=;}M}Lc=hv~H!IKB*EV#3ox>2bNu{}2QZN<ua7OJF_?T!uS%|<> zmLL9V&`D@SX_eBk{$|+y@>KQSGOY=yaTOk$XU$X3KCNPKZAfdZr?8J?<fIsm?7i=7 z)Q&nV{=S%AcI@9i=LAmG@JBcpQ487DxlYi35N2>FIrA<KOVtoc)PrGjXA8Ix;ycWh zg>&3+ux*dlYJA;!7Y{D=Fpg?6*~B03?LNR!>v8nwLbz+YHBOKjA8#_uVi3`+p(4fv z;HgQ#1~kLAz$w~Fg8k@Q#RnYm5iQq<k24Mtj@tug4^*}F{-bY_{|+qCIcpaB8}$0x z<spu6pkxR3<DldG-*9lL0-vJiU+r$dD-;1g)4e0Wpo96Jn-M0?jAOk1X}HWq^?zBi zIWvgPY=5FvbMM?1amLZcq5k!(9|tWw_GczdrlwDgYEqv!acR4e%j3FCQM?q1_^auZ zw_`xdCQFee{C@854>*)CY%I`(BVQQ%XH8D#I;kdBQuk**1+B)rco%h#!s>U90p&My z%L}i3HXX@v-ma)Y`mjv)C2o3>&USz<8|y$o&M;j3uC8XTQbVoIyQ12rP3N8V`s;mQ zJd>J*$Z&4~e8#AXQa=Sn*PF}mqa(7CBjT&x{wWf#Y-no6UB$P@Cpd8c0r$$%DzI;A zX}>?rP0$_$qMlLb++X^&XK=;Y?oG5}XXp22;;(<#RE0hj<wqmY7c%keHo@1=WjY_D zd=28l36)<60WNf>=akIXp&kOUqa^8=g)@MG5*GoZqeI%?s0Z4z!oT;Pw;c`ZZ>yug zJWaWv9Q}2AG~|STi$ENlj%O`LYsJu&x6Jc#3kTy@@n+5&@KTulxfo1!KNT7R$n!vW z%4vDK7xciM>xK_baq6k&UX7B6e2Gc0?Ifnov`eT!0hsEDHd+Eh@+mvbU!o4gHM4}x zWmWFT%2|s+1babBr9m($X&7{d(EIwuO!w4=@@M_pVa0id!n}hNX|j+_g|2IZ42s7_ z?Px=jj$8vsZM|V{`63{?I}x`iKb8I~Yx9hTe|FVAP*YJF2Y5Pq;G5wErNbyCQ-9`S zef`1+-Jhspu1FRwHHQmb2=nWhjO4+6!d}#GTI;5JWe<_LR$tkF-T&%}=nz^BHmq!S z69JGyBj^6a+!F5Cp8G$D@N@a`Z#@BDGd%*+ZM)<zffQijod!dTU(ADlCEj^Hfg0#@ zX}`NE>|Ggbb({+l!T)YA@Jv69`uAalVH!nKi+tu~+J}Do=pfDDmX{ElWP5~J@AX%8 zwbj*eh>KocuDT-F72VRf%lB83C^DJh>L*7J5;IGarK&7UNY*Iz)gTlOBvbOIt%H6> zZKlx=i+%CFYK9$whP@5=?7tEO@#1#acWlyskXCLcF4}~CSzmS0?<KpKigfFf^t)S3 zx?ff3_1qNsN5hmtXFt+kMSQpUvgl9*Pw3IVm8j}g+b$P&A+rs|dcBm9E%ANx3T^~b z6h+_qOx8QF$xsSC-_5Z5o0D6Y(6q=1wL$kkEzvwZ`zJeJMJw=>z(~Ih{T*5^B&d($ zsdgZMYc}BbDpF|_X${kWLDSC(K+>viWHA=SS`$DZ+&rME4Uw#?W4D!el-fv-qKUc= zq}YxIE^&#>*#A(`(-u@;kFA<u?JkOuIO%w;AESGExOtskwL33|%Yjq}rY&FtPk()l zyM2Glc$Q%{z?7{yplaKPEE1F({S31FF&*WB3`7XKLLzBGe0tI2pd>vsV`d+CEFnIG zfVy-Lbl-)KbRYgHbn-%2b8LGmbKW52u0cmy$2?yOc+4ap^xvaYQM+#<mF;Yq$m%I} z*mZ!XoZC@(Er`(5?5f#J=xSHE!~8leTu+(QdOrxY=zSz~kB6~kpIh`oGW$W@upV5L z=Mj*`f>z={3GaNkl=jxW>h3<XY7ct{xdF}v!^04_$Pm0rC$bHy+B0Z!7{i&_--6L3 zR;hyMed0~pXH`&+hkCSvixS|G)LGp+T*a?1r*evoG==3eed>gwVxp_h?7zVVfIHhi zs}=m357&6bUqy2t9<lXJ#3jRkQJ0D&K_L1fE7->^M=x_z)n_7p^_u=2+r9Kw=>z@0 z$u0sC8xRUOmoZ6#QZzSGEye@N^YB#gL!B)G8GdbcczUx^@;?aa?&(?Y#2$8I^*WGV zt&UR7X&;%}lqJAtdtXJ4557ttNG`02U8|To8$ebDrl`+B;Bx@~<+KCq{9ADlVOy(* zz1qandFNfm)(N;F%n#QhjRV^q-Nw`HWUp*qRDEOjJwoR!0OW34g}u=JRl}p&Nf5C^ zC)ETz-1};$FisE9gC=Hj4hqAPtCJNB8R_|WEITpPiwu55IBDWlVu=-7+X2c;Il^~% zZQuUZRqh9><+=l;@t`3%(=gn^QVOcKniWLoIJu&AiwqS6GFC?XnI)>vFOh{z`s1!# zi#6l;QvTYQYu!23orA+Br`O@qqcu*b-Wg-sCLdLSD$`&Dyk(lPhSF{aB=OXX*S4nB ztz_Ofk$w-SdvKY(5#?@gaP4M-P@Mfx^hF9dvU?zys^Va~r(cJ5$@%++;^-VlZA7Jq zn7IMnPb)L3bmMA^3(L-Btl#lb1*P=*q2ViHBP&AGZg{623Io}U3a7P_k!dVoUmi6X zMn=KL(E&=KKVN%S6@_j;Fr8SsSdfepZzokpMMWoU{psDnoQ5H*V~>b6Y5Z?D=~Nf$ zpVO!~WMeX$(7$Zy`c`*H0Q;}#V>nO2T|4>`y>7L;)s@Mk>{_+PWp7{*(g3{T(U)zz zVj-1)DkJH3uOUZu$VD$3{p}C9L@Q-ZvVJgM{$&sh8tBrVhOM4;x6`NF@W*YcAlEe7 zZ+-|rmN3bXe09y!O<5@!@5k_*W@+GS+5}GuMaJ3(JLBUD)3cfxKb?(DSaQQZV@+-? zK{<C%QIy&Ji61fGeu(Q>{fg9AGMM%4)*Jc}bmiJes=#3QF5;~{QF6#pY+CjW>uqri zTH>p%n<um^eKJNJU_C@ahW;Tdtt6b;Ov!dFh_={X=4Rp-8<e5u6OaKfwQ{0tg6Lf8 z$y&U!OP<M2`#AMFhaRVw`h%-QCKpy?{dIb!ngR;8J{pru-!58}=1qpNCRx1nl=F)q zVHMw_10hQD>Nof#4*BB@mu38=!2OwG?Nx1$TwL<IoTt~7UK*8$v*PHZcU2t&OgELI zV)K%!JJLR>cJ^y$=1{#M-BbAI(VozA64w*pq#AW=>Vcox$KEjG%W>-;2jj)q?ejXn z+c*^MQ1+ZWsk`vQDaRRW-t;T3<@3%0rq!*Y^6?9%pCY$0Qgc%JwxasCD0Eyb9g3I^ z+ehA5mDkOzmfid@DP}G6_uCK4C;jeMUwY-w{0wfJU#}cqb@$N}$Psz;5g~ELQ0Leu z5TVZ7HMNF#vadqh@W;=$e&C%=+RP#B*P#lv>EY}b#k?WRbaLnVh^fhhRog*!yScHZ zi~+0TJ)}Axrp1-L!1m&*@$8=yDJ**6L&<M^4=;Y};VRXtw`mHAnbsxh$wIHQ*wdW~ z0(ybHp@Ka71S@ur35L)MW-+rEtDUzPe4(A|tX*X?^hjKXWOUUguy>-eV=il%+Z-Yc z@aXM*)vkT)gRHDi^{U8X2|{~MZ-bJ!nC8BUR`}ZnRFQoQ{Q=?aKlj4I;@om_X6{hi zXNbyYY-<b`xuQXd!0c!v{UyZLs8^{?EMd%<BU)KC7bh$kq=v+XFOrrE9PH7hP|!wq z$R7=6@-te~M#!`;Hr};Nc6AcmyUG7s2$m_kB}kR~<O=E9nr`KD_Lo(z7hdYTmy-i` zC`B*os9M5+oiS(w@gL-U;pzOOr5+0TwPbzP&LLN_`;qW!<8zhUA5)s__HtWmB1w%W zA>q9pWMx1VV|Jex^C7}nQ-|5bQL|*s!@dab4;uk#i#vz8rgsA&&F%j|mg0MW+rm)P z@sAX~KulDH!c2ia0p-7FqB}E3hq^&qn#KjR-;3mk4&?OhFCXvx6-P`?y&Clsh!eQ< zsQC>N1`4%+kLFV1`y-$I2OVu5<bJ_84Jpa=RiS-wJSthWQ#UrXL<_FDMN%ZSBW{YC z2EdQlI*E_-FqE*MRz8?k#}!#%e>e(v7sO`iHai&t$x`q{+uy^Z;=$8;Op@11^#sD` zJftuYzLUjzdXN^M%RwVV)L%pNRN%Q1-<CAFl<ZU)Ta>t_4PLd>z61#c`bBYue^XJ9 za}B+`e73ynHoR7=gmo57Ep>P?XoukB*LMS|M$e^nvf$t9XH<l;P98UK8E}wNzfH4` zc`v7w&bN*uRRL&XWBFIh{S_>`yBD@vntIKd94mfZR^3TN&<a;$>PiXVk|HtrX91i{ z80{9zc#MPDhhJ727hOg}TYA?>^@#bGatT-C_F>h%iuZ9;ZQT|8$*V$t`(~BP7aUUw zF90rq6*5<dw_<0e+0juZJCz5u>EPXr^6?>(H93!KyUm>BSSZo0fNTN<OQa-J8LaxE zShX^WNU0B#l)}ETvEL$e%x!^<3w|IkWF9=Sg-lt%p1`(=KTzclI)pk!3E{zl4-g-G zS+dLprl9n$cZ;~>?p}^@aeehJtq?y~!#vA|V2OTZ5IbRqd9PUD)!TcCBsL}j(bu;{ z|5}R!=+rEZzKOWxpD7QCkHjCJ5I;}X#gCM|JDO`3Q<S$|cIhW=%KuUI-GNm9-~ZQ^ zosjIAoydrA?HSk33WYMVDI=~C71<e4_FmUs(IsSO+-rmo%8IOOT-^8Xd40bB{Ql#v z*X#8h=XuU~obz~4#fc`P2)4|Kqj-93e3St>R&MLY<I0G_PsR!s!-YjttJ)3$?J$Ra zCUhV+<)1pmba_oFLgzuTQ{0aj`f887Z(ktSnXnO{{U#WO3i0g*p(9N{%A8njsVu^U zfUS)${3GFF7LjLPGunk=bIWchPqwU}Jm=15H{lPsL4*Lm2CME{zWR&axjv!9dGe@K zT}sZ8gwOu2Xj4CFhl*U+;V3FV8%x5X`DeVoM3}L4d1?i$S<e#WvD!WvH9inU8(|^1 zW>BpI1>^*mIUrWdHBcS2k_6Uvb=vIv5IMkTB707Y&t6VRk(93{#zW38<SrRh@GRcw zrq+%D+2zGwILKwqr`m_GM6oO*Y_fJ8?Jm?BAEmPDJRdJUx=^R{n>#4MhohBY(MvSu zOR*QX?jrF!;hV;%f!Z(0v|L{9k3&Cl;!EzQZdBs9NVX9PU80N1eOquakudG~#X<E~ z;zgcC*Ak^RIsaFst;2q_Tg=Xztev!4@!;(h%1V`MAFL!!DZSyBbiRezou%;#{Td{_ z`uys;#~h!y3~aLKG?M47Q^1Yn^$3!`j(zXrIm-6G<|liE;o(^6?|1Lplv_mA!;$qD z5Wd(0PjK~{HNT@w-6X7al=N2)Yk73o8Dit*YGu!9@LQ-b%0Z$+v;579p_ySpHl^h= zahwczh>2@8FUq&u_;O3MU45m|$1!){)Kmn2Qya<kXBL+4{(HievO&z`l-|w276fG0 z;$tqXrbc)jg@@~P?D);pOwqR`Cnbl9gR-)iSiUDKH=eLj5}OJLj25Cj<J#WTg6M|; z(~8Rm+JF=n-tiwE2&D=u{cOK`^1EI{bWmS?{T4*{0gNkKBjE)3>~3?hycyl{LdTV& zx5=x?+Sruf0}N7W((m|TtaZXBeAOJ>@N~i$&@II$1Q7mVlmxvkt(-6fKGdJShJ{`7 z<NWRtffw~%7OjZT=-?tZ;J_h*;TOj=DIgkL$r;7sVeRSrCBVup$RV*)_#oS8K?%TQ zIryf9Qhp20O)*gDf0+g$mi5trxB_h{D1O7ekFn0O*sP@pO(R{N=d6nR4}yQyOTF$# z+PxXlW|Uc9nHGl4V)0UkVYi+#%j(Z+_y#9>4#%@-2j)oEoOn~ISibQZrlV2`c}XGk zk*n2l$w!$<=FfRnw#WY{RqudQxWfF^3!pfs0`91+;XufQxQF@Y4bohVMjE<iEJ(dJ z@#2vhIh4r&OTg1)IYXjC?7P<og^}KmLd8b$Cei1F<$fda3HA-TSMZ6>U3!y|65YXg zxfZA)U^xLFc%yJyHHpspj=XBgRzsF)m8qGS7RjwAf}1qG=2cxt<lv)n*j$P?c&wp~ ze<>cGX(>1{x^abt3<eTikezlNt~>x^kB1hGUnD#Cb#upAIhN`=a2qeMn2QNgp6DAe zFfC<YKX3qf50Vy1(+!501C6B!`;l_!J<|qzXawW$>*xo1NUqq8%VfJ|SKBYm%7e^F z^LXNDrsrj^v=}iu4(^h29s!ME_)TcD>{L>kR?6-@t)an&A=X-rd38TCt$c~jiqDqu znTkD-IR#d5mRV?9@7P;XUzAGF#i8T{sVZx4YE}5;a2ZcDCB2OVhL9q80R%e*#c6ME zj7XsyDev@|+)cu`a@~G)?JMKjnR+%He>JLRN0|`={jg*f%eWopT2<1#kxN+Ly%%wo zl0QK!O>XsPyB8D-KDs2bQ)809yFzLn^@KdPv@GRY(Qr^=Kzf>?ipWULVHPbIM8VyK z2UQUz)<cFP!k@IOmPJc+wGgp6xes}|b2dPaQMPdDv}Ur&2kMyUM`iTCZfU%hS=;LU z3tBLN=$UFPo8;H8Pb|(ofAK2cArWCUy}cUM!sSJNX`KSK5!`{yZ`E}T5=Yqx4C&S_ ztcLn2nrap7@V2bXTl3o2zptE~_B2cVq9?1IlJs|2dZKJWbnXBLmCAl=N0a|bY+iki zcNASHW&#ws;GtrI5q^KZ9W8~s#a;wnrsLmfoyTJBHhjS^R~E_BuiBvd7E;#aj^ z^y(eX0Z@&)en}U)H9QS)k7H0IFm?VV#J<EZc@S`&W}ol%BT*Y*Q#GPL!7EY@x!_;$ z<J{+Y{25f8;g2`F|EA_Nn<75_%<O^kg%924iVzKr1Kj<1$+C{I;LPG=XP&blxVkYk zscWJ<Pqok-xJtJId2zg8*Gf2iRJ@xhL#Ui9nP_Dg_&BzonCOwWuO~<VgA=%(T8E`W z{c3x-DXEDxdTwF@>;9O!5w3QE$J<l($E|iUJr<SSAK@SuBse5!bU^rjXE8^OPM=x1 z_i<WZfczF7NGTip%DlJPc*>isfqQ)pox>j<QhtM$g&qIOBCldALG47sWj60Hsn5#} z)VZMd9+yObOe}!-n<qMnZOIg3Q+lJmAn|MurS)oF+C)Ztdw>Nyv>lX(_Te{^L4Y$t zE9cFfpL_9Brshn_3(2st0|(sob9~Wy87n<c34d2D1EOThdy`272Pkd3!EyE3oR|Ii zYO%b*$JeP^iQ!u>K9eV)b}2(cbMW6Pa$FytGKNs}VQl|{#53UShV&3C>ANz5#_Aen z{(@R`E>Ja&2+ao5(aVK~Fd-GJ*5Z{{@E_!VLEO!$Lt^(%#}#{*{7F-|i9lRo%c=$Z zHQsC*ZWhGu@V$L_zdTk%U{mSNx)#JoiwT>JA3usr@}Ay@H!9axzCAl<Wlh@Tw4O^8 z>jzT_ya;JUIeSKWx}LJ6E*c9QBb4{x(q>7@1#CDtCGU|o|Ct^5?S5KwNm|G&Fdy}S z*eHSdiI0<Lu~W;h2WJYQu<6UBrV5O!EMCYA=r<Lezo+hJyEJX73^&!^)r&=Ei4cTX z1z@bt6~X<;Seo|GRLt*<PV|B70|Jao359(4FTQXu>bKX=anS4d2eQd8{mk0-$~tHF zd@-Tql2Q7j&=X7Me&%{#?+_Uy@A5^^bppmIsgQ$#fiKBkyj1LT<x&qM%P2~Xmvftu zE!^!thzhQm^B4XSFa2N?8@s2x{4B$TAFf~-dHS|a&d<h5(rq`kdN`Q|a?64~_~)Ql z0vxB3vcdv^f?mfzgx`pin3Rw5gaV<X<9_#gCbW0F$_HMul;H0)RV<%m)Z=&2{%yhU zqwtpqYGyN7e}X|~j<X6QqY2B$YR%G$Oy^~JJ!pK_O^%|be9CK&oSLU+N$U*XxemWX z{#buNc1K@&*p)YixRk~~nQ^(D{2LjE^hPsltt|E9+%#s1b@EAm#{#2=K@V3V*zddh zJkutfBEt&k3C%4NXpI&ORXfkx4?lCd*`jj(R*De$=`JcS#clhY$HF)t?~adHz@PpW z$E4*zB4(a<^rev-ooHnY>zPDzQw-I+96L;)-<6-TpQ|Pt27b_Sz4@lhJDd%oY_0%5 z5$#+}&E%V@k&Lwxg&LvdeMt^|N@zc`(y0zvY5BUk0k&t!WhQK;J(6^4;tJMT0H(+% zSeaC-;f@ySUez)@IEk^zmduW~6O~ZmXo!zazEZBsr(Pu{n8C^H1F?_ztH?&QQ_ett zy`0{nUgDq(suWAjY4+#EO*LLdMFqdZlQjkmWAX@R>`9{kq#A(%CC@#nxM2Q<{T^CB zG@(g36M?*;Jy!BY@wW$qvF8H3H#J40#2l;vslWuYeVM4KmWb$HTNJsD`2%7r9HtT% z;^K(zkbV++dqU^ov4u_FoQb;Qe-MF+q_s@{U97pBR9H^yiCb8^?RjiK&aJA-!`F%q zKR#15DKs&~#MIp#T`)Cj_g*b64oFQ`Lq#xuN#nI*@E3@Nrn^mH;-hH_{;|l5jxdcb zq&A+&Z7vkwO!v~RH|$NxE;vt)j^!#ZCV%^gSvQvuQeaz5wAfYyD81u*_`azv>R7ud zgvt@qh30JUD4tbeUQ1h>uv1}b7_9~^KIEqs=unb*I0&E92TWXP+ztgh$ItZk=ZMdM zA1W@?+%&tcfXDu^wA!!ew=X$8kM^*Nw?wCy(AGM5s)~^yW@WAm(pM9mE~wzpL})jD zM@`P8iQ!5K9(n3415fN4*c6qUM=P6RAe{urwty#g(-SMmiT6lqgMm3szHko?4NV8> z(o47Q*~$d%+Qta*w7R#zi89?5buXUoYWZq*Xc`;-x2mryo=gTql$$Bwjh<V0BT{S7 zgozww`BJ<%hOb#D?QQr3jZKD6V`uyD2F*`<Z3_<4cO39;yn|g$wuOV{U_fz1aCHZ; z60dSfFspXJK-8XtZwF*jVDK@A(FJ(xANaOrQdGlR-UlQBqRlmK%>}W^;+{d$#dk3) zcDKT8(WjiX*y?yy*YtZIxtS8KYjWs5Pg>nO+1z4?N=P&f(-Ue$C-^@lA_7c)b+Z4S zJhuz>pl#fnUbXrXRO)@tjZqa9bya6Ip2F2);8wTx<6&(wBg5ReIgXo6TMorllQm?v zhVPy~X-fMX=!Du4k)R_Iy=Rr=;xVpc#F`pZ#{3FZqFSAYjrulnEgp~;4jR36`CaN9 z*47zrA@Y`4g!Fx)*rP+By}4++L6Y^}#5lkxvLW-$q>Hkaz}PL%KBlEuZ!iqGm17MD z&P3|ZbV#M0$M3e@TuWGguz`<nWS-PY=rg==nA!_tlHoVY(mrekRR8$HEmmf^SX#QC z!kxU-mbs83N;3z&nckSNf{g`Jx^d02$>D?lHwEJ$=3GcRG;t}5=yd4-|BC`o=P(pf z@0mzG%x5Lj9+_!jfK&2s24TBVS3noYBP+IUr`;HzV+0gVaF-A%ndRS9B^k@oJZ~{$ z+z&4`EeLO#kJwYrsB=yPxR2x{G)&6#dTQnIQ(%NYBKca+H_!2|#Y0iPjvcZw+i4j? zQ2>5D!r|4HjnlHvIS2?;IC9~nU}@Tcm-H-Ls7w#hON=2D-$Rs=btWrvfOIRhkNojN z(~6$zqzWdU#X`cO&_Y5uG{OBdim2+^1R3xBeW~`emRsG2KeR9kHgLOVnCi%vb%3{f z!WOb}q4V62aGwBE18Ob7gQZy#3-+50>1KzKpaq+Xn-77e0@ykm$Ifqx2j8S^8!0O6 z@P2l-7!OaeTq5#Bg~HlCt|0vO9+0@3wpxh>>7T>oc-%ieen<i6mQGpzs8Xj<IRA`g z_1!tlkDM-3iBD*fEnlw*p=^9Xs$?24RWG0=<u0X*4mf`n$r+bf#7stO#G^0B9aG~^ z;X!`fMh#W!h&ji$B3C;SvK2q<i}3CB3%SXrKQu<^4t^CX?%V#GGRY&sG|8MPX8vbb z9CLJmyauQkzqW(Uv}5=Q;*8U^?O46}PjPXl|0_KYS*4Zqq%O+lue1L_e!)xX^j9Rf z>`ZVp$u>rYu3&lv)U&9%``4f4<;GiwULngl>Yi~O#?=dyf{eQMO0JK5P*PME_QxCI z#n^)r&|kN#Sejw{x@wS>B<M*ZL$bx27Mh#nu<5MG3%Jr4dBOX-mNMe2s30{8c*T() z@A4DIyDjNwrlUns15W1hkrL2-aleNDAdEjLa95(0#uMe|L+ZzN9|0GnuO9nJdIM&& z(#m_`0bjA*5!M1yCeTzqFMrCpEJ{}3lm<WXXMWWE+G-2Rm($zdyp#x-!n5LOt+sd) z3u9S1#0qOXK&-hkcR!aRzM*wzD~nNZN_KfIE4P`aa}FD#ST}3o&4>#LSam2}T=6Y} zm3IOmAkollR3a^hKrwb5l<LYVSZy-E?fTjz$ar@#J2^}$e9p^L!Y~C3yc5wk_pFeG zL(#1m+tbii)h#Y?QOYihum4Q5?JG8131^q!%0n0_qm|Enx35!S3=)65PRo>UrK2}$ zPeX|WIfQ!f)^o_!U~`^6*q3}Zp-)%#j`ZLzg8*epOeT$jeAQ6h+#M>E5<F+L$V161 z871L%N-uSD7PgaH+r0c|K2#CGzDKC<1zLFk&7)s~6TvA>p;L<bo;Ep(?^%h(VYFJ8 z05<11Z>N@8nWp16%4$BT4{EGN<d%Q}8bZy;ap>g6bbH&s2Lx|ywe2iqna-I&UF*ss zvSj+pL#GGL@*Z~yd%~S?W6O*GlrENEwqfLlX^N>aNbcT|z6n60>(htu!@Ntz{^GL< zLPZdmbSLa#X`c-?%BLeZK3z+O&VcgMU^hIoWUF8;r(Tl%l|~Hh31VfgKS6|i`puU8 zweV@E$dA16#M_Tny^GpkQrpm0Ts;)nI6Zpm9(ZWj@J!gv?C|^?pliG6$Q*;#s<66E zY-}xC3WhJ`RB7m8ww5?|1;+=z+On1D+oH(5FYqel6fht=;25j8sHVNyx2b_FSzBm` zkit}F6{=lJ1!srz?ekbbqP2Lj^@G1hpKWavRoKI*_`G~|UP!_Ea2L8_yP1Scg;^Cm z2;UeaT$1dlyuPjrFzj$n)a;hGFom{|0a-}_x;?=ETYf704NIcV<>3+?3Mkkkc6+Bs zE(~oo0f*RHfx^ap>!;kL){F{CQj)ee;1<e@<(XxyujBftXo*7tk7^%AyWkK9{@!E1 z!WJz)jj$;9N?3jp`Q0~iGvi6xLYYKLE2e7a<$X28nc>>(z1T+=g}fYqd?+a4kNgvD zmxXpkpvXG$G~{pKF&ov%%c1ScuLD=)nAe52%E~u>r5w9RTAW7xeCUy{-S2<%m}h0N z>fe20O^nFaAL!`hQd@v#N~%D9%9q-ov2g=t4$gbb<$^|6B1KG0Qz@;PmtgvIxZ)+D z>zrz%we-lCycMppgY{ku`AJDyot;+JFCfv`^bO9hW~rsahHDdCAeBxv(@rW<wYfrA z-k2fSxV@7LIbBvM`8}PHDEM+<z3+%-Sv<A-S8mGD%6|~iR25OGx=&ZPnxT3iG$r~s zOdAb<YPNFfPpI(mz-)k%Ds$2_#e>JNkO<d_Q>@#vBs}%6PHXAn_bTcAR{3<~cWuj? zq-PVaD$8|2Rs7WKNWw{Q#kF4&oCyt~0sle7O*4{i5Dl9gVS)}#8BW@CMfD|L755q$ zI|!vR2-1xyzfYQ>-K1Z;fIluYeM_v@rA)Nnr^`TMSkP}$#!rs*#hn2tz<Mh)*@G61 zcYM;p`IWhUWB4W%WtWs+63XyxzbxIvYG~OO7#YNNQ}W&29-34Yrx(5#@1Av|sX`Z$ z&Ca^rBF4lXvg`4ZI8td}XCetrhZ=#>iMU}kNPKGb=*v#oXl12>QnbnTaAf^S>aPnX zDp89ZG(;A<l@M&16n)q4)6r1I0F_{n;iszb(ip2~9zkB!VKqT@Q<fZC#HLc@+}GEi z3q7x@6-CKY)xCBwHAGE2G~bfByE$u7J2tJG5hy9C&VL}r`<qIlMvbA|@*~8kI$*6= z&0n=(DA!k9t+g5VJ$J;P)TpFrXx8-^MoOyAMA*n&%FJtGT6>hL?#k7?WN96`;$mDn zB3gbNW)SfX)_aaNHl2KWEMrA6INWP<O7xo4v3xEijIUSw;9G3jK=5X)YMcz4x5u{K zttM$Alkq=WKkLKhva~pxkMb&`Uo*lO%p}cwoGMGpK){>o?;{+TAv6&^WlEq7v7YlR z*gdSiQ##cSP1hT{OCiSv(GQz+IOOtDL=`DBN-I8p=LuTI+!jIdBp~8jLFN7fE&96h z_A0Dj{(OYWpT&QzE1McX_>(umR-2h!Us--hpdiAI(X=j5H)4Q7g3fIzaQ=dsMwh_* z6foNLE&oDQ?rd3vm6RQvDcRjY4c}Rbdp~gHaXN?UYzC1VZu|B0x#A2nVCIJA=oIQD zr6GRf`i#^6W_)>FvQPL$pQ(jEgntqam>F`!f1|`!uBw%PB4b?{WkY*?(l;2>?pMA2 zW{^5#i?cMUnKKODH+L;r$bemVZc>|X53yztVNuVJQQ0KlR;Pi|v1FL&u2N&CEqgDL zMM$=`ciP;rG&WuEmQKNmM3Q`c$f23(4zHR{QemlX3=2RKf-<y|ZdiJ#ZOEDv|45rA z+u9D0W?UENVV=+1-^zL-#G%5XP4#L+IgqL^{BgVO5u5L52gV?lFGpNHJLjYhXdzBa z8Jg>Bz~Yj4rBmJY3=bR4=%qZyyV;DzRz<(9t0;e4x|zHwSk49{so8)0y?(q?@vJEP z2Jg`Ra_B>fELcNR)8RMcsikI8B7RE~2Bnuyq~>W>vsSG_=c8Ij@4lKl+FJF)5o4_8 ztQk+(-(5K*3qLF|@A!Q&<dGO#%BQ}3BQb2q%C$;J?dZJCMA2W{=y!xsSppM=wv)&V z0e3Z>bbZ+-=*U<sul?u6Hvxk9@_t9(tQVZb9KdMMeK*vgs*ZdRmilC3igfF-)*%q| z;EGh6fIjn_fAM7dW7PApp-M|}DKx3GSz#=vDMUmX`kufvFEqKQ_X<9KaLaxD)MI2@ zZ65s@=D))-*veZ}ZWWa2>aaZWX5~p(AAPhsgs{F}R7F)(nilxOtSkfOMN;|{1B@*? z?mS|xXod9a#5w=#CmPi<V@^<!=rL0nd#G&2MytCkc0z<t?^ODyzQ6s$)kmt~k1^p} z*ZjCoZx1)nD(Bvp@sfLT;c&F+fcl<h6|=WdnV;3SbG+s=$o<P8>YJwcD}=tgrqxw2 z9#LDy6v99E=R5Mzjn_@=e&>7SB;-X7P%ZG$CWC=lQ;CMw%8px%Oq?waN#X|T+znD` zZfPvxYWCWXF3aBQX*y@68;r~yB+;jtf&W29l*D@Vt1vXCacr>`IDpemw~<!Vn_e?t zRgeH1)I@6h!`$GONMo8D#f66oZ;EFgJ~tE-pw5)-Pc2pXtZ<Ve?Jyn=7~Jt;-KV9i zw}~OIcFjBt6XA8mz@!7Cx#?|deCH5}ru~Zx0TCKsm?#72!wVll;$@4rKEi+0@P=Q6 zHeY6nmWdA`NKkYHyJY-Zjnt*TJ5iG45DXG;ID8hcHsRQ%hFdq*ZlmZK*|{4C1`Ni9 zb`h)VptkG?j9Cx<dZunp%}^E0TEYe#e^YhgaKIOVhl9pKh0^kCVp@d>-~Bl*S{sB8 z%rVz#Fpq@@4avi;Eia#5A7!k?#GThS-IXe*@Z2LaPv}=bVTnlW{Rk~do&FGKznL)e z<5v9C@C~!1`Cwnxp|4zp)Sdhg{hrW^u&0<=-0Ev0cj~*JWS}TpX*6K)KzpAoMUS+; zacT>Wsd@x@16>#Nr`tDuCrYaCh*A9rNRuwzbJ<rBb$S}3HA#;ybl5DOYD>P0Y;N<T z)6i1QhUmO2O)Dx+)5vrqPA(auN#l4W{#eDRa}uKf68|AryjxtKdt<fv;I<DAF5q+c zY=D21_TE5m!)x9PH+(L*^4S&0++KgjHm>ggA46Y7R4z;rO^A7-0Ro4QsBE~itaY_( zh+VMzw^UXD;rRb}_UhAdkr#MqHupB6iN8bnF)y~B_Bj4B2l=kr*o!&wikJ3vXdLf@ za~Qt!$v|Q*i$eu;MLp`x1YDSK1N^Nllk{;;ryLR<;}ZiL$$um;X8ft9zL<`Y6F{H~ zZl}z9K5@iJ_zLePN&jV$JP~p!ri5J+;mw_0^7ZSHG1uw_r-_dkpxD^@$<q|R`)AL& z(!^GkJVb0rMC0rY>`);BIs+zty*sb54^8YLe%N}6@p4q&;}gt<jKVhEJ`rDg(gMX3 zpB7`ClUxpaS?`b_yf%y2ZM7!MC4wV*wXPEr;O~Wj(uiG3&)A)((DnL$c~Y1jXVu)M z3J~VoQvwaDtp6TQ@96$`K`K+8VH+LKR8aaLLeuJbh;L>wzZR8fkrrxeTdMX>Q&EY2 z8<RA<gwb{z_I~iMW~MY39{-6iH>@I3rwyYs%SC>^A=N8eO2R4aB!y<by@NBT%-tyP zm&P_T@>B&m39ozahg68_Q{3rgOqMgsRJGE%iIHrhD}@Pv?KGT=SsL><VVTaO5Y^x( z6^^_Sr<0!-tsWo8o(8%+s}J<~B9nXOKbf!YLY9=u84UfsgitER2se0nD<}|Kgzc_| zD9%-37QwuBfJd&B*MZ=G)&`sq-)b;Ts3>qwg1CUKTqJ-Gv<fQ7qSoEr=0ilGGiPAC zW>MCx?45QXFDc3%rgnTmCiM1Q{$o?+?b)?_v;@}VPanD*)@wdW1+gL2aR@xk4Stas zQn^aQor!w;__EzWPCOJWhlC=PR=agi&paG5j23fAv6dKz4J|8QidQNO$1mM7B8wI- z7qKB9F;B$F1p(ejY^pya;IfGj^DLu$tdEAn!1eCO>i;X*gprVQ!m9p{?d2EMNN|WF zarohX5E}wq^BMlO^u`>5vsH)zStuX8{W8x4i1E5)Ij6B!i)!FvMT~c2G-52T9p@{n zC96z4z;M84E*0qXe^quT0?`ucQ=p370kUmO&x<?r7c-#sN%_TtM)l}NKJ>k-@!6%t zDKNtaQ}*fMH>%?vhR^ZK<1@<d=<~ZpPKN)y<rvJ!3NYOM55BVXS@fFoy7#H)RNB zDt^2do-ZS|0k`<IVN{FA&rrtUsx|Dsy07_!ZM43~8Ds5ikN_q$rOK2(G%N+faWRDz z7=J9Qxqr|d)i-KKEDhs-Ic3H6Qcj9M*oEGzioEIyha!cCHU{5ev1#+kvfcap!N_ar zFY>NI;WY9ZrAfu5z6^eejSUKWIo7#Ugjt*CpcJHbIYup|Frr$%{1Juei2hrYOhW6P zbG&QJ+XsXGiNoJCNLW!$#xSrfULlE$(5T8(`ON}9>1##zY2IFceP8O(hl8@uVO8K2 z9|@8SZw@A5yxrO{DH;iu0%zKesS70bT~EeXlRI-vTKE?F@c3(Pa1i00`%{ocM)o-z z1+yjme*!CHkT;T2JA?5XqEBugQ3Ou(5OrH$=&&suFZThs-8D?)w#yZHdSy`_!%Di0 zPGZX)n25dh${r9x(|ySzY}RSXQ|3r7`L+9K<~@yik$agaIq00QRZ8aoYtEdRQiRYU z@kVSwB0a%a^**0HwJ=nNE1?L<2CP;8SRpl+JC7#$C`+A-s#ZxBu7+jR_YvmL6j=P? zv3=bY!sMTR#i=-ocDf{f_VEOW8f^*Q_Q6bd1I%y#rHm}sq-m<PE*HS?9^eWu8KY!w zlk4;9Ua?lK4|=BE92eRQls51s4V#{;u~t0^Am7q=x!Lf$5djwX)&jWAV=&A$5h?=M ztR(Pqbx`k@kKkB5!SC8uH_nwq<XDIj5`~k-f9JpHx$zB(tv6*;o=<3+&BW}>M+dHB z@!7Ncr^0-D%q1n3hN(=3io~)s)pC3s?w)=4v@MEwtdBtbsw-$y^oTOs!M>i3t-avI ziGW`$ZjbCWx$)|raoE=ZzGpW~^PZZULSroeqK$`Sip9y}EFQ9|)YWBG%w<);Ve9UA z7=B7aU93O{Lu*zA$8?=1Tw;2k9*-4hO$Ks_jZSZY1P}NWT5ip`iwLb!OEkGodJYel z`GW&b8_iJj)J2S!m67xp2{;z)!Y`Cc!0kUI3H8vUFP<X&Ht(}|3HbfEZhgDsOZp1X z&%j=G)uXb15^VY;-F^4E*MKJfmo}P!IH7bc%Lj^|>!jMuNwe|B4%0m-YNO~cNGjq1 z!V()kXWz3JdR7zdCT>M;f14C>nU3D5%KuR$2;Gd*D(;N+J^ba~rv!e(#cRCc{X2#5 z6kWF~{(*$JV$QJ?oDAL>X&JquY>>5xg)4^^oP%idQkH`CbDmi9*6L@X`{+j1c}8ae zYmU%n0q`vPljH@mYTV{Go3F|zOc3l!4wEJUE_l$sddU$j;qkg6Kc7)5Vdc})w<L)Y zLj1jvoF&jp?Xbx7%BmOp3U#j5h@uSPoKpMTgUia0X%kblsjz6>soz1_fEcFLC*bBH z-W&#rhCKA5q%t`6`l3nV09)6~7KL-#A;2w139}g$7Dw}9(-;ZQSua>R;c*whoME&_ z*qo%2{k;Mk(Oz)S8~}ELblK#%he1Io1h5-*oyX%}N;GPXBgs;!JLuz@9r481x}mKy zI6j3@1lo#~MnHQ*)9}thk<l<offI@w5=LO+S=EgTO#>gCh|Ywuo{ILca|d8$IgR0S zA&TI-=SkAm+|Gw3N2x8O-IMkOk(Z4OrYjo`q<5FmdCF}_UKobT-2rz7;ygD6*zakU zQgxbfsiNWE<zmHMikh7ZD=DGCiSR5gDH84<q~uWH+O@Dt0!%Q#u@5e>GD9=QB>5v{ zm_YsA*+2XU<UA&MsVhezs+2Rk3VH_Mi*N+k3X?23igz9PZaB!Z8b=!+Gr5IOBk>E! z{IfpKpjvg#!8^v6L4&tzm{v(zRu<!_X>EBvX^|>>{t>;>sv>^klZ&qd0l!`>QLoxb z8I_=;RHy$Rg!ob<iq;*`8RQ;%?I>p#lf)bUVc6?yt>%K|N8y<Pg}AEK#0wq1ef<G8 zIL!T)17ft;FNZwkTZcd2E5bma8UuXcF`$JUJ6ftQHe;Qzt6&!oSfZD%NU<wUgQ-ve zThgej26(>hXGYV=u8HeDf7uJ#T<Wem?jFY7)Kru-(_)T){$#Dcx?n;F(v)@W6xnu) zz_z#fq6%fM2YTQV<73G_6yLyowrppRo;14yr<<d*!CE!nuj0R#Oi>uN{@5>zod=vt zwq*T#>+*jW6Qw^71|H$WyvOW$T`iZ>*^^xVRHcfqMSpQ_5HfZzG8Lk9SLQ6nHrupW zd!e*i9`{TQP#Kw5=D73yHlB2ru6+F9T&I8a0^W15(=pz8VZ~6!mw2NE`WK==1J;Cp ze|a>8xRb&K^?Pq0C}>v+Jja{F&w#w};(u7xTjcp0LU<3}ygkIfmB@qzoxan1xU;?g zAUxm&hF6qwjqm68;JbLVSf75VGR4#ASJ;wW)>Ti;>q}4I$*o!SFvuT0i9bEzZaG`t z82nBjwvcDFiR?vk;lyzufy)7wyx+n!l?oQ`H&#By&SVEPqp*9PV21@8EnPinh3?sb zzh49=l;YYC{>O)X1^<@-P8R<SpV0sLOySEb=l`pQnkI%D;(s-A(fY0@m9&ApaGA5K z6Gg4LNn5u(qq}`!7hCKuGowO?s8(A|X^HK6w&}T0mg4)McYpR`gw;#Kr*wk?%Ox4T z0$--`SSM!UB4i$W1oF%?wR7@#Pq%SgbMRkOc{ZQzKonP0Fjy>89v^}-V;lL90i$Uh zUF=L@ar9(%dJB1n<jnCfa<K8=DThJR2R(jHrVlxmTthqV`!ejM6qDl?^%Y#azi!m> zVv|E^uo?beQa-%VP`q9Is;-DlYA;LZv*fpFQ8H{b>~qMc;9L_qo_>q`ytldtdO9{2 z^cA+N!0Gb9&m~Pv1b^{a^oxrfEslET3!d$M91?$6syzP>GSnTFACOl{{m{zEVr~Kf zgJGYP`H;(=bFby#j}AYJ-~D49DW*>0=x0iWUc<DgpGL8!fta1onF0ClB!tTK@5chl zOF;NC15PE7=`GI8>@P^L$rqf~jh3t-u-MIozX7+Q_4y^v?k}K*e>dfyp~nchx@rF4 zgCb36F?tD47HF!)`!ncRS=wJJI={3fiA84!@gYQ0Qu>;Ii;V1NyG^;{8fP%FUu!ce zi@!G;_j&|2Zz4O)TY;pc3CeY1#HZ?c8?HKVb@wuOH2dXM@lcM6NQ>r!6OkSzuFyF2 zV@m&JeT4Yq-irB*!)S`4sGZ(h1gl<`2b3qGPr=zDzoypuJ^6Qy&PVVGPuwoFZ|;66 zQ$dwOp`y9c-&F`d_tcSm_#=CAz)gc|ZZeSHBlceBuk1Z>N^*=_fpeo7J?)`ApeJ|l zpX1fOD!;U06J2)Io26r-FRWe7y(}U<0wB9^rNg^GoARD;lyj|rE9pB@`|WGQl)Qx! z>v}qUeDipY2E|}SN_K}jw-+=|V&qv|>h9(6h4!)PCY8FXBzv}$Id_Np<-YKB6F>ZO zMEp_w$8`N<)NyDqYrXt|Cnj5fYfn+>I(tl2%-xM~8gY(TBO^u!w5nw+x<Y$NJN~s^ zXyj0Wa$eAnUz2P9LBtG7sx}v6Sd|ds)Ec+k8YC@meXqzbkJ{K2^giv0iS+1FkSuSz zXE@P)uOK#(yH;35T)oW%blDUfZ{s?~g-+9M>~(n4FYK)z^R+MbKL6Ioc!HY-mAuKG z3}Z2&@TCp*5kYw#i$F)+7<Wf@?*`Xr$~8WBLBM%>#1PdmPn%Jq{eHr(x#<4Kic*={ z$qV;T@^jF{o-r)k$gU_rlV#zWQ5ANR`&3}+E}#VF%yIgCE;pG#6nW$~mMgt+Olf)a zokAjsCgZ36-+s6$eEUl_dWf_kuUiORG8W%3h%Q~0w~Bs1G3d`rSrN(%x7+ypRfZ<7 zOjV24AT<pg-l1j5z?!U-widg14h5T$U{xMrz)*YV^KGoKBCb98?saUizQ1HC<sX>U z%?!*|eFcEL0d|rwfGYr;dx~z={0Ym8daj(CNI=#xXE6U@sJwQ6i+cNT1se}v4oQ{C z4Q@GHeCP^&_+aHCjPuup;!b4?^JXI|BIvKIjJy^k(sKjXy7qH&(|IAp0th~JFk}`u z&!psTLaYyKTYyT+_uCYw{`FH<rI>FcxWY{+>LMJFO*`+T^u)4h>1zu&Zq#p$AZISb zPLXRrp!faWkMuoBi47E$j<-~g#ZbU|ykMxA*PcAVcBCy_3Hzb*(<K^IPB4q*)Z~~{ z(=^BU+c*ANzEhnJkvR`PJjx%Jvd(u*HEdMyj>&Xbi?1T*;pd3RsV_=>boSBDOyty} zq%r(LbyyT$a<0`>u$=<?jrt@|?dirkA6wIiI0ZBWnC)%Yq5R@#W!Q`>o3FiYbw1f| z$m-(UC%5WpLoQ!?QGeQp39DCud--S^dGgPCOY|AETN^7xx|A>(9HN5za<PUOLcDDI zpf4WdoRKJ34=U_rr!RH@WAIr8MI2asMcQm(P?_d6GhCSUCT+t*w_Fi_539dvwpRCF zCQI`ZZ^IZBxSBKb@2mtC37bX?KWon-zzNJ`e*eMy>JH5jqX263oc%@@opx8KK;CNt z4JGI`Etv7_W+u0^A=j-BzcKBPr-``_7mincNTVZkKBPoBD|O*Q6Lq@^`MmZwHld?u zwEmkNj=-Oqz8%`!h`=3yGC<Cf4hj?YU<7Mf3+GnOG2rIjQ`!*Rrk+Z$iR#4W6#WN* zZUZZM=1}ENM@^&ASGemrf-J)Z+r(jmUYiq^RIabG0_71(A9rxT0!?Cn!Uk7=k5SBn z;`u7r97;aFLSfJ(#fLE}wiz89LZTnk=<0X)Dxj+=S%sLv%e^SP#Y>B43fU}wtojAD z03+s!6u+luP+q}!Kix%WZlhT5V8z}asI%j8)SH>w=4@WR>_eO>O6{SKz<Eu3rl|B! zvFVPNdX!2uwHf(1s0h$Xy~S@JY7|usRp7)Vcljz-98G1r2B9SzU<t#156Wwe-G2_j zq}5ck$90HM3U!57O(jj|RaoT+w{gX|9wC3W@wX1&$V>9pI|o^AZ*1WVa(*S8G_6z* zn4Vtm`kHc)La`AiMahY1RMJHXV;akDtW3nGu=H>7)N|@gUie?bAh8wMS`BNBAKIE# zm3oIJ9?5<g%dBgQXW4WGV0X)4P_yyDKpc;HS~e-u<Af)|U#G~nb}B8Yo-&ZO?w6dp z>H77gcI}rU20ub`%v+}w2S_(6Y;3*PT`GickSaBinMITbin|6ybtGi~b}!jlrJS<s z_nN=Z%e)o5vJ?_z$i_4gaHvECKPg!azP<6imC`P!WDO^<3w#IvujMxii_79aOuBLi z(ccUvp|7*Ng8O(jP8@MPPQH!NlCkhah4D<DCo3(|%h;)cuV2d;mHB}@;|4qPH>_qF zG^uapVr9n1EKyF(YPu}*YcNxzMp#$_bEn+KU9M^_rMJ&IYxt6aFWi0Mi0L^~rPoE7 zzp8}ghhQzPGFZ04Q<D6`+=c_R*>~=Ol6S0br7yV6Jlsd8H+I%{Dy94;M;a@WWNHXe z0vFkJ|3=g5{%(@n&mJCH#tcs^m#z*tew2}k)_u!zqmKFGvj>?Sq7KM7?I~sA2o;6q zpqS=sXtQ=}=9|0AgEVAd(b6hs|Jk6y{v&zqy)#%D4`ofNsxIj_`7LCg*4{uL@=dbY z(_Pb<yQm~xRsBYx=&Oe0U9s)`O?g4OejkE9t&$aSD^I15vo}EUWlO@$Z!*wvXenB_ zsl2vyCHuXaoxU|&r)KhXv*)hQogCl@;zdM&=XhM;^3%tvKd+k4lJTEDf>%`mWf_wy zXT`^H_TdkIMe~!&JhAxtjg5q_jGP*fyn|F}4R#%f_U4&+)QT9Q)o(`R@x1#a+9=Lu zQ160_`EI_JP2O=)<7^;rn=K@-o9wcBr4M0L!C%nV&9ABYB{_z~<Y`%H4EYa4k%vy} zYM5%I+rdu!V1BhSr&8LShUhSFQ{1P~-3Vvsa(#CAvz%u|B>pl=;UpRg(xsRW{mWOx zGzeIxGPC2ISoo+^^(3q%%bd}!#9XrFRYg7o0~pSyC-8Jt^zYZnyrO-2lFPzq5w9|P zA3@=Yo@<(bGf5&ig(xYGL`m~?f3N>HSGxYn6+6VkctjPxuw&sqcbc4JAxHS}T*%MD zD1J@5!B5aDTosbcYPv}a_sHW@E+UAmrp~iN+6R&3T^kgiua>uLjepBHN~?P=HAW6g zvz$}cz9qHwVkr~?^fcRKozdQ?+Nq~k1<^1H?{)e4;8C)crScw>HtIhJwc`hovemk` zeCCi`VM>w-HP)GV>z};Ia$Sa@9G}|jTW1~PEt#^p?kbrAY&T~p|A6$z{8@syiB9u| zBce##%5~tTuZ})z`dIwI<frRia)#3iGu9hOvd_OK;elr4MYQR9+p!Iw#T|dUJxz<G zRGJ&^u@-t=*w6dqQAKfhFZB~?Hh%fxVLyXnulTBRY~n*@1_pM<<Y9l7?AG71uk9Ug zR_4y#6Hsh?z<Cx(J=$Knkzv%DL7eXCP+C+PU;ELOr`)n#kRtJ2$dqd5^TXoVyFbdf z`w}@qAbMkSG_sXIybqSzKW%2}C@Dt)$gZZ%(XDCa<t~P$qB}am<qRPZh?j}CCqp0R zjzJ-HNx+vm`ZRTZ<^5j<A7C1PUCrXZM8vI^FY7qQTk!KZ>k;*sELue#a$WU;mrP!B zPg~lu;anTby!B$?ekjQhS;E-v#Yg$zuD`YK1nHZ(p~;NOPx{U8ns-b#e4tJMMG*k6 z+*NjPMX%+D%sr3aoNq5Buu4)U;~Xk-@Hf9Epe5?AN8kT_lFaPukokFgDmDL*98`<% z>L?#;u-vN{qo6o(y&KX^Fe9Nh*J`1{WU6g<UVUnP(dD!{S7FbZ0CWt6S)Sl{#ciHP z{f}^L*V{DEuQr9|9pXYY%gb&26&f1+Cj*6?%Jafk_tlv0Mbu{WQ$>9kki~kDfu^;e zp@&(VI+{Nyu;jvfUcF2j(W>Q7D&s$>4p>qvyrTB?nIL^kw})#6><Th}PsNhDO;JY6 ze|ksQ^^NtVa=Lz(HA+>RJvx}wEtVB-`{9?Zl#Zqa5qjdG9e173T4u+(q$!3cP{`#^ z-^2r*RUJwVR_*aJBag>CQ$$%fDGd$z@hXW4)Q$NYFXz2WtJ4^gO+UDN`5I1t#R5w& zl_oiT9ZMgeVE5Dd!S6{cWV+79bko{TUoA5eJ4+5-W-DRgOxZJ*m>?5jG;_~;H;!Bj zLOq*#@5AGAWQi5p#Wr%*wtn8<LUH6(&Wk^4)01eY+6ezx-mCqS=)g@^R{n<!joKJd zNK)>5V*49r9zFB7737=pCbAw+KYebW8Snb+r-9g`y+YG56O-?)W-3IAnssy$8cF`t z&s!Ac7O>4~Q$M~NIu>7>9${CCiubA$5ixjj*z=I&ud<BH631P9xNFyKo;t~5-+tb3 zwea!3$_vJnNH_*~L4f~3I4#@CCkaMXqg`-5KaiWVX$DB_UW3sC2*T$8EPogg5W2f8 z4t#q3X3r*c<ucDH%uhOvlvx5uO)c<HP-xfU0WV5AF<k4U7a2Z5h#t^3eRr*p>AFAy zYT*AMrdq+a+zX8i&f}~syLdPrfk1to5w5O?>;&@VQ$S!GU+q|?Y-4RV)fp;>r9E0( zY-=LBiq@%P-jpV+u46t=ucfU3r|82lq|%&=gMmQN?H>y^oMZ1YUv>oeMao&pe^8G` z*toYfiwZ5567y=jwGhfI)K%Hb@<PHovB9(Lo{1`3zScH#pYCXy=A=PAwLfYGWyfSk z5ci2b5xN;PaDQh5aMHQQKZoqUWBgZWLoeo`xL8;T*{CC@YRE2fSC=nfsO#_YtA&+} z?Yj3~tcPjP>Zc;^Z?RIVN90ks28T#{<$^L9r5ONAqe4_aY^@u&HPdoOH%!R)-x_4$ z_wzaY$1GYeNM*7ML@&?wYfYxQO7w$iKmV!tY4@{zHPA}OR*?4wNw<zP<I7~r<d+e< zhZB@^j&H35T9$mb_h7d^GVHH!I*7bXe3Ox9n6Bg5{nH=lIRoZU7@`C7<>TX4O(v#4 z(;abrc%721@EU7cOc?0B!>30qK=)NB?HMKR64mo86f3u1-Mj@NCF^hpTz3x0Zy4aG z?(V|&%9DC8v-B;ueL1j5rrTn9I0aS=#Re`wsw89--^;ZzPF5Ilh07*k<g#J5pAs;S zO@kWY(MuYd1Dh7(DOf4taU&9OhNt{N_-9HC5x8^ff5|Su$RhE57252_@;Sf!mO_;N zlo-kI1=&wPyA$wPyS5qh%&C=2=CxzAS*&=DDv9%E-kFs%dSCeqK$(d=fMet*$}>A% z+pc~AEyHIaTafY$;r$6)zK2LIaiG96ihu2!g`jbpsgV0iYTIgf_qq0EYUxV4Re@kr z5pl?sH9)hB1CQp0cxC$7b@^44xWW59LG)hY_riGrQ88@VGRWj;f!k~kxgkfj&EOl! zC^@2H;DlMvu7)>hzNPN0s}MuxabDJnTBd45$7c#&ed&c(%ZE->CTUI?VTjf*g*m4J z6C#Ruxk%zal$+jgd_<2@cbMWeyl$BES|P;^Owopje19^brIVQjYA`1kH`^Gs9jcF< z1`{z&S_{Diw15~U7(bO=&~8w9kn=b6GOc2Jb+2n>SL~1zNDYF~v|;yKm`{d+N;q0D zjs6}GTw3GnLtG^Otq7ZFKqh%~Oq?)+ADLDLEL_j3XBV1hc-ceuM=H*48N&H%bSYu; z|A4>hA_G8A5fmuHc}c8RN^{-lx=JBkXgV=Y5zHm^_q3Xo2WQiOSnk{tT){HZ(lGWF z7F1}ejY2>+^^(LbBc`rqtT$l!7|GN18c^f^f}a4S!=~UBqQblwL)ROKogs3&%syvI z{tDZt)3eLg;misTCBv^&nCZ}Cj@im#{XW@dpyGhH3&xgG%@e=AAdN;wPdM<_y`}t< zJi>b<YNYRE?i~L@cK+kqZ{3@WqM_|Be~!-aC?G6Gg{v)=_DJDsZvyy49w_)<0yucU ze~^6S0(cZZ-Ot~$bssL0hDMV_<$W7B8c8HoMok-WN~we|=@H74ILg{<oI+^*cV2rm zFYI|%m9aldW*S&oyZg61=OEUS?NM58_~Es(se&y4?cj$VHnj6nb0SFPeTggE6HOQ1 zi0bHQ*EiEQYv1z6*9n{P+vaJkcwO;{E1x0;mq+AR6jT>7`Z1a|Hq>qHp;5YgF~;v4 zlBNBTWz2M)`{cD8V2#oqKbb0aJ^IN|qng~ob~qQKoGi6J!JOW0rw4H||D;>#llBW; zA$`bh3o5t;iN{A0gs2r2v<0%$O?Pt|I7s8%gnuVKES`ued)(40b|`~C5qfVwNhEtJ z`Syl|f|K6E#t#{r_Ur?g(sPIoSa}n6KJKrFNy-Z)C<X)C-B{^!{1|s?-(I0;B8yo3 zd&z_Qp(fZtTpzb8!WB*az(j{QnWXA5fp&plGl6tarCduZzSDPNGmV>zMRie|>}#dj zqBePXj`8uYDlZuR`o{L-`u?|*bV#0(_2~E?CbAp)I$=|n@sqE|{GQm$AndO{1Mz?? z>RZm3I3x)l`{sg8aIY8JP5#fx{Q-K|BAb2@wW)uKH(43V$Tt=h8pT?l$+%Ma9b&hF zt+QqlI-8ZYe%{T`7z|P^HSX6T)1ASs*d6p0UbY?ks+A8C@X4ZMS#!$HXKFfd?SK)l zijJ0}zN`b6M%qa^10ezD48UK1gXQ=CV|7ST=n`^b5#ZXtC;K{sy7*!uj*SE4JuhIW zi{_5QH4EG?crF(HdZW3+Zz^r;zp;51|0IkSmZ6?-DX3+6_(2#v4{wh)l7T<!WIBP9 z<=XeS#XztBW+e=cI2#3-Y(v!Rn*#ds@9WTndEF`g6H2c_b+C~*ytzw0&2$Yjdm3lb z$CsYUm^JatL4J1Fe-WJ%A%2PVQPmD?T<M2AgvnQu02~2v*?TL^=gA8hy#7hVw+pJO z!}-q^%t7`RODbhI4X0t_jCT>72|xDwDfzBWT>JVbE9Tka7g|s}#H5TSDqp|eyh)tm zi|gL#BLW|@-M^WR?wrXnwn-+(!rSo+-<yU#fK7rooA!+J=<?at+=Kz0St?`Z{x~|e zykb)Z4T1isg>GE~!&z;uPZenO>QT`MYXRJFKr)&3aMkycYxk32!_D16%2IkGkqz41 zR(b0~+Jo2e@Dluyp{rB)pq@}s4?z4xmnA}3KOzc}6)B27Mu|TAm`ygFkc+)+^+hP< zi=EagT)=Z3;3HM|rj`k~qPlQRt26(Xw7gPxy&=~)g@I0@h(YKaz-_=p$Rt%Ag{TOX zYx5N%OFxOLg>aAj2N43a&tSZ3J%X6BuA3F!VSZ;4$F;B}K%sRWH42=QW0j%p^2xZu zNro6@2RZ?(M5Wx2D{S8IQ4}^9;SVKh$hnPbR8{a&D=?uHjhdO!l;cF5<I7<3G!rP^ zducjI{eARKi@mj8{aJ|C0gel-h)t>A8Y)zT^x<!~YJtQT<T_9(!?)rT8mm$+YI}8N z`Gy8Iv&~&1w?)K$_On|)g;{$S0Sf<<I4e=mu6f0@O61*l=5WbSpkFu65=;1X&|3dn z)?P56+PMTE9V00YGCr|0dKNN0mJR{*_m|$-L_K@-2fnNQUs4+jClr9G)K^;%xSY!S zhje|F-Pck)r>K(*vT6a=l>qeJ2!3}XO!sbV@k?KmBko@+&f&h<r{Bmyz?X202qhc* z6tGsD`93W_*DP?S?gnASI+?nt@xAid&RCa~|8bj1aJRP2#M0`39?d@sU_A~e5d-W# z2ZiHATU^$9$W5p_CExv4^2GiwN#>#^fEvQq@L*q26zjxfYqFGokYKW4raA?RL0{ey zUV6RuxWMif;8t%G9#f<5d?YHa7%pF^X3vQ1^a<H{wdB8ZcawIWj8I9DjTVC>)8_oA zwODo^(8l&#mb~={;ko7M>y1G+CE`8^tWA=Ag_+!FybmaU_3gGFh@Ak{wzDGA%yaCc z>xY|)L7vrRQvKx0=QCxZm0|<D2_;a}LfZttWRP=7^|d?qQo1?k+(-#QJ~0%JWW6Yp zY;jAnM{Z_>DSg}p{o1w1p556UD1pVVDd^7XwtQYgdN+GZ|1u}2UZnT-h}&e>uW5f| zw~ti4@v41HU8Zw`9!xT#I&Kt#2cH^WxNMn?u8lKnkHp5z1eWgKy~_1%dMh);SSqGb zn*M`SB3v6nM-kReJ34hCH)eDCmN-d=t<8)=wx}VSnO!A(Wux~}C$|z>+>AW#a~e0B zoYFE&FRCc-n+!twsSzzCtwGZytkL?H>s*bnEe)H?Y0GB$k#&alBmr!9U(d4T#r;cW z^A@~!l8c2g$$;Y-jR$-E=d$Inp`l34wS-G*26nrq+14>jHiA$x(#5~j7vSXku_D4X zMH7Mb=N!zLfUksJOx4@A(s4byAw0l8nJ_k!eFgW56LfY?brzG^q-NZU=CT@G*%&=? zY(}AJ&+w5#^|jn4MBeh+1z@KDN4vz$9v|weN28p0OJNI8QjpSkixk1(51WlI$bZPW zoIU*C_)gzyVw@ZY;;54rfyFyoQ{v!(e9R_CS1$ftc!IzEOeyz9kKSG?309MUqX+LB z(;+@&O`vBk;xz0SU?%zsr*{inyM&@ZE6*fEvd14wktKnRhl&ouNVY=gsKoBY3<y6) zcTpvkX7*p#mo4iwa=VbjMK8=wed!45Q2F_4+`)&2@10_4drAvLgSU*uqPB$^S88Lo z&^~=(`!F~^=hG;v+q_|1Hd`zB`*_WS`E=6Q1t@E<!>O;?Zt!O<evQry8h}Nor3S>G zH+D#L=IGV$GT7oblE}RrKl2@y+05CDe%I&=?u<gIO{p#loFWh(;L8c>qv;rXxi&>p z(#9dGeZH>&azCKS)qm2~pvscb=Jslwmhn8!6Vu#Qz{I%qQ))=;iN+yXXVtsMb>Y3S z)ilIQ{32uy;Wu>a)3apZ-C<Dk#T~vH3pzn?N;&x9E%aE@7kxJynddlJnBrN=h2*1? z<1_+q6lYp_OWe9r!^Aba8tI8Rcf*&<mS9<Y@4V3?Rx7MU`7p4ub6LzM93zj&fSL5Y zs-mZ-POb3B)}hQV?MZDzXiaEgmQ7CI87TjOZIR7(>bZEbeA3AL`X9u+@t=pMC!%ST z^A|`MS#1cJkBTCjc6iaxGS&DKCRSPP=I+nN1s&@*-ez}DCFPtoH^M+uIkR>Cg9IO! zvplHsWA$L+xB9{M)qzD#yyWN*F{KRW>C3uM+(P(q6yGZ0PerkDFTW67b<w{anx6L0 z8|&^i3&O7FMkWRwW35_EOjZH4TdXX`O#CcSt8Zr{iA64oc{fhhe(JGIwQlKm7Zgo? zU~fisyvSITX2uNstJ*d`w4ew&SILZ}ZK_Q=VJgq!8fER{e>QvJ#r;sC(x;8Arm@55 zic-s&Vo<rMH#2C~QnTxZzhfQxgY^0W54>rtR61vN$oMI#jqgCzY)rNI+4FCmrVm8( zi-Yo5dU>vUl5qQ0Z^n$CJloD@m&?R7@~axDQA_hP7@<r+Ho;*-$R$xsjGu&xQcpvR zOhJoEJLwxT3KFVVzV%aMLKNB!2=^C%dUYfG^g`{q;D@1wP%<U$dS_XS2hp6fWP5IN z2Pa2*ZDRm@RZ4-~_fs3=zh^AJs5&I?i#gOO{SWd+M(L~A58)c%9E)pwYYX4dwcZ%z zt7G*c=iR~_xdx}@+{%%AD1a)Z@f)~C5c-f61|enhg7*Dz+!SOjh5~MpTOVEWo%oW~ z?KGIMkppfCPh|GpUdd)KoMVITn4TV1|38whJ09x)kDnEhnNij$M`lHKI3s(n>@9`t zkr8J^_TGK%b!SsXN|a4yj}Ss}Clxv4xa;>mzdt?PeLna3yx;HFc)niG=W9Ukdvd?# zg<Dg%Mv`NC3DJaA-5^4^om|tS)6l00G(IGp1evw);G@^Sn5eMr3X0)w`2r}kGR+5G zGZQZgETpmoD6<ZIQGKcXRJ9kYqBY)R_|Sxd5&OCeq{ZBT4(h%+R5xCCIWe^&%LDky z4l>-SOEYJvcfAPZk99Eb^$7lLmoqXB=7XuHygbhoQ9}^)9oqP+viTIZYU^R_?SF8# zY=M^{TPnP&NqOUYal4#vMV4+Y6(9Fngcf`qQF?|jcp^`If^~ODt(ogd%?)DhR59S) zRvVuOH4~P@4+74WCs;!vw`o54@<$nIGo|pX_uN_IZ~&nk>iIJ!8u#3pQfHP>ka)=3 zr9OAz+x(0vF6#)giD>%S=ix&mh=o3&lY8Z<x{uB*R)z_ABLy9Mr#*1>5F9?d$Zd*# zX?o3#8SVMZ(Il;~=;u?BF$a3aVaXdCJ7L5LS)BM*ckXcSYH4+Kv0_VmjfuEUDK@fH zZ@l;JUgg$&19s`Mf7r5A#WsX~&m5}!+c+ff+niD_W{o4QEC{ZDvmOE6?S4Ji^`lYk z^$b<_FAEayGW!8wal$+PJl&Z)#tLvG5vXvuG-A^j<L>9S8B_<|9WE};t3qisW+x8! zjcJ(G*wSM+X}F==REGslL9m+K(5?z8^RY_xnJ<}r+3uKXOM&g$AB8Cg^%?UXeg`j= z<+2)-UfyAJQft5-dITb_cKq2mUU-O8>=r3r3l243cPz<Mg>-;fIe7bxlb%+(^uUiy z@KuEU6nqKsj*y7!up~OM;cyKc@FSqtmFVvt%+NN}4z5m=U^H+9Odt!7Z;cg(dRBT` z1#I(82JcVLafH#>nP;2S2PM`%rRXD$B%9VTVSUF(62jzqy6=a`V~(K)H81b-hZtr) zqSWT)dtRd-^H5LjA0)HerM3GNx>A%2SkgpB?4eV$*s)r~`{~G#RIYm^4IM6}wHwLE z-WR!hEtG$Zej-*LD<G}I5}#7m#V`D!ti&7G{z|<5qvE0sGZ!pYi<#+hrMyeD;@hz4 zA)%*_G``PjW*vt<sObCLrotZ2AGMMBF|$H&My6T4<*<K>+1A!AVPoR7O;9{104HR* z6)n@x?DXhBH}Uyw?fQ?qKBcSpj#p*;Z=P-@nh<U4!|JcP&$lL&m%5**l_WNi+3MGk zPpFwG->+?w6m@P1e)tU9|Cq`V%R^8=#R-b6>iEjmj8!q_CYB7?q(&9W(Y-ILM3t8H zZTO`znHU@Y5QZV0MVKGG`a3QkM4l&P^>ZEuz@(RVm4yeVH5Z@7)fxS%hCt<`-Th7W z(Z^xgZ`d)gsBH!K*vSD_HECB?$x_INIey;caac$N+jK1)mQr^{_aZFl*;)x0E3F{M zBxP<lYxLvuk7dh*zXgxbl|x25aWZJswJ@za>bbU}2Zqcf&e$7E;@s=>qtDM2jF!*j zDOIb;4Rkm9r|xYp=4|+LT%ZjMe9%I<513(7X}9zXr`7nnnt%QG)Bo*l&y-P_yICaK z<)wbG(Txqm43}LGHclAuNY;|wcH{NGp1J@t#+0_GfEb@bey-<MQ27vaLEm%FMA`g~ zqEJXb!w0tbi>$_pk-3lzA`#wtN$jg^rw|xgBJ*ZpciPo*!%DNf5_g~|h>OAYoOygH zQEDs{KgMa#m=<SV#A5F6^K81|TGo6C$YO;KA=Fi}y2`&Q$_b+x+oAm7FPFO=+Yf)~ zzi>3%I2!y}(bUjitthyI7PDB+W+-?YSU?e<VD_nBi^g(+$%Xpj;rsUZDnb3czHTo@ zz*iEszb=C{T)+=47ga5|Ui#!}eLH!7bb+1vK@y9yR^!mmZI@S!#|`LQr~ca)enz0a zIwbfi|J_z|^L_oxoNRz^?@ub^>2vyz2f;z}#*TX?edalJwWB4}Z-ddiRW*sZs7*`8 zn!-YYdV&!EL6mSs8rO$Y`lganV-s4fG4s+vGSFLJ21{DIITXqYzshpfQ)i8vGfe)l zLOsZ^VhGpcOp8FE&Psx!emop7&^ofV?c(sWfvlKr*q5kgzjm(;F=MSZ+vDbiDtnLE z19J*>rO4;xj&dS@ir$!t;VN?9-kf9Apm*$5pHh%VvP#2?72d*}`^ry~j2L$ZLQRzn z%6gET&|Xf00&@E`%4C}E2@8dhbakrB12;Y;(M^Gi<n~EfCvEtu!rMM-8tO|AmfkOO zqIxN(%eT_2T?$<sul*UjUg@93%QHJna!ejG0=0Kx;w9B6!`OBd*-1L;uU+JY5I$!b zn|Pr1Umwu&RNUI($->?^)7V%-Jl81ExvN9AEf-Ka$fvIbL$c>GciI`Egx}AV6bDO_ zN5J2kvd6fc;rPD3WsMyD0y9M9RegWp>eOKT--A~Bhn#lw9f|E_X2x^oCLHcF5Zo$3 zs!Q*oQ0T?Qs`AU684dJg%4y@(v~BI1A%CZ42lArR^(gpwhG!KtYZHu$-B3DQqCxUt zx(5B;k#QTBuvSH?!8EhuK5*tL@4hZ9SUF++2dDLf(6?XJ$6qRy98X4drIoMl5ca!P zU}~3Sildj_eN))UFA*ynTG~1dwe|d#)Mu!b9O5=1YNn?$Og-pg3B$j<PO}_)kmv93 z5%#o;?nZfhX`#tNWz;^}M9VrB`RL5}{oU^9ZAZQlDOPF&&?HDhAIMZDL0JQP`8q{M zE}gQ;r0&rgswVfcK8KZNRR&8wo2|S(E*hk?K`dbIFx2A$l6jk}Vdv@&<|}K<Hj;n7 zF@)#Y?DR|8>oV)C>PoV-9$C9=(K?}Y&)m9(*j*?czniF@oCNIX%q(eB+^c<>d#_%Y z@v_<Rwe;AIbPfGl5HG*)1bZonb+3`;@-+QhyW5rS2`8XVshG`(CCpSs&*aO=N@RK( zrWk*>uy~f~sVh40x}&3CpulMA;;mn<?%F?|Pm>{iJTFOdPLGr7T?{UisJ>|@5Lk9! zu*t-3-cAdLmpKXq^F?4eU(j`FO-db}KepvINc0Nh?mx1sdIU=`)BP<`Yj>eCo>0d! z&G&n#cA3MvS`KzMZL?Ury!w%o&0}Bm-YZ#|Pl4hxMkouDEAc+n7>u<RXY@rN&QyBm z&f>|_ze9RP3byu3(_;$qe$$oT#<X4HG6fu|?o-$*y~Oa~;?EV$#5Yj>r|m87?&8AC z_I?RMFcTe1{gxE5#LyrwrJn2mAo^<clpq01F78JM!`w^O6L||6d12pOQrvZ$Z^zxa z&?v$BJ)gllj2?JVT8W}CT7J30{0-;o!b}NmM}zBK_)ZmF<B>j~`Dd)j<3roMolaq3 zZF;LWP%)DvF<C=)e^I4a&77}NvC2bX^dCeWs_X?HsLr8Wnpy}#^T`eh&q=X}&Gh?D zPA6);9c;~=@;Hsot43A@4^yi~^BK#U48;FHZq$x<j4;aiPuqFGCJbkcXUzuG6r8#h zIQJ)Y*X6R4kDqC_bcRSW8U5!+1*9R7Xf7&QOv7Dx$LX8P`Jvjnv0kj13?Jl@139Lo zl&`1%gS_T5xf;ytw1X6E@!netYYKp$xtvgT^RLddaiwH7KD}w=&~I}8{_LF5Iugu3 z@cle)a5Y(ej`0HWTA(zHi5Oo59oNs@xsg_#>spOUDW%@Oqbvf8HtmOz*D)y5R)VM$ zB(fGlQr)yVltZR`yt1B}i(Ai<X!74X^a42)9*}x~H!At5P26XB&<(>Z8D;tOu{qwz zQi+V9P0VzA#bl|h_NR1fMJ#71NtDjSUl1Yj8+T4DA607d%ri&BuVo!v-efoKB~act z3$N+~nDyQ^V9PH}t+#$8VX2Z+Hg)lM;Ad6qKXk3qNfwOX>RS}I*t=1tZM9Tds(dPE z<ah^rFg?K8#_t~FGRwIpl_Po@C(T{vIQ(N}IrX85_RLe9NYCP~Yw~bHRquM|sgO*- z%{q}{1y&*L)^w^hTqC0DJ@9y6(s|RACKnzphmv<h>@?QZBg<<t-9xWDXx3aVOIHa< zxYCdYb8kC7RC^NieN^z8$4u4O63Z(ow7>ZC?BtpIIr|5_Lz>wrWC)o=>+pOla7V1t z@>wT`c3k;0?V-%aV#ujl$O&Bx+T%NNc$4?<+gH2xCK5Ca$)R5kUeziV#y5AK(Yu$! z(&_Kb|G8fJ022BSG7xb6Ta9Z?oL1f_<A+60D?U>~|1+Bs^v}Z!A~_0bFY2{ezL-|4 z`A(%~6yM8#!{l8?qL^*VDMViiDTW*#sddXv8Hxtdx!==tN=@Z_{3}*R?_+sRA;V^R zY<`Q!o`-dYdk*bT!|fTtX%?8GP##~(hEMrGcFAtc5Ik*Lt-Do?R_<{kd%&fjo1c&) z4}@At-Ln+#P0Y@iPK*jXxcPZd#xa+vN`^O<(;EG2_>tSr+<cm<y}tLySeJyT;W-nR zhn2Cs)r4zi%$5loHPG%W+2}jEB<yt2HZ*=-;oZ|k?46Pp(GnSzt<5h5d1vZ-qTwq5 znF*X^BL_g_&Q(^nEi_&+4{CtzIhS{&zB0-tB_)cycHwBo+z>j|mj-qdDA`;FM8yB^ zMQOhNp9r4Jn-|+lj(VDaO?VB4LvrX>30=92*9reWiXuZl@cfkigpK&$Do`@q1D%Or zpW7rZM9abr4xuGYfTImGSoJy3$Apr!24W>TodW~c7Y`CFrS7!C#UMK~&wQPS3FiYT z#@dlp(JAhw0qzL`zJZMQ1|0tyCyrdX=45^fTgU+FI`-gV)I!Tq-j$Cl_QJSj;A_OA z_rtp06G#%Y*=<ZC-UB6L0KAf0<!FiMs>qHQCxu(Rb{^>=JFk6JKZWgzy!1%V{7sJH z=%~GNtx6d=bfD+*hvGfYUm`O5+GK{0pV{<wPOJj&eeuEX%L!B#{odZgTagIjA=DG~ zAIPou)e(!X;j_+6VPJ93Z(-(FFpR_1>G=<{@(?Rv0pBv}GrMYIE?>EL<TGF{>v%m| z`Si!_E8!|l*dBghVZ-OU{DTX%w-R9Lg(AwSdZD8`#ihYm`xh)Gz2^WeTrSc*prX{O z6`2yIUMb!T+$4j{8Ik2!|A>k+RSUj*PH_O`{ht8uhMxDb2aQ!P6Qy{J@|QD%K@J0e zu=9x|!<E)R<^1e1e8m7f-rJA22pu4RO*=CIpSAS>3Zi(ue~{jAK)wcF;71s6?gztF ziErWs*MFn5J!Em5^e2==(`6<80F+UZe0>bCZSRV~yBK$s5-E(KLCfFnSYO>BoSuQ_ z8q=(lmG-iZ^{$P<0_NVimYbhFmX%G^>1T*EYY+CE%hLLugAy+y!QdJ0bO;nf!Oe=- zAmYnkx@|7^QYI~(58bnT2w{d~U~ve8GATj{5e2jrV25hKtm8nvGv=7M%k-6dJcDrp zpa2LZ+D@11yg?=J=^JcYaothG#mX~I5P94{s6Jdjl#e*KziLaZYcFi=puDQI_l55= zdn7hOZY;PwTIUaj(O@%T6NeGTne>9-J(nhx@2gV0dEz?PaL1%@F_be_<c@?6huP$? zTdmf^Ye^E~8kGXlX3maY;d9Mm6X-9&1%7YtiX50<l^5q<8^|$zc=}fBwBY*vys2`{ zdo3?H(k}wu(Yxr+JzuxjZ21B*NBA!bxxt1_bzovVZogUh0x7PyqJn04GZ+}CX6WZu zcD}O5XSh00Uu4oOs>fMLsq1isdQl1E&-*{9#INinFWWzad59PeG-kT>>rj3%)BJqH z<BLlU+}BXIe+L?=1lDs#RA{fi<@E!rg5IdX7$&hx^@y^-_R<bEZt!+;m~2=!X_e4z zug`0%TBwU$T=)E5!tOjvb>wt|Rgoo7_jBX4Ixw9)2>UWnR4Gp8x-FiakT{A&UO)~U zL~BXU^uCZLCs3UMe_7R6D{6c9)-J@gd&%Z=KSMnk{m?`V@CLz(J70yrCER=PD#cC- zpfIf5b?PyDVaqRo0FO6VwFenGce5%POYdTo2gYxgw*7+)&g1Bb%9`~fR~|}nK9kex zAfbqnDj9}O6DiQB(b62KG5w`E8jlxD^fMX9a3Y%Pml6>@&~WXbM3WOZQy`oQASz(? zFi!oHKaRFQ^T`T$;;r5@`oq<EqCxT%QtbH+@C^VS^8q?4p_2a3MiQ_aI|;^=r$bY# zKSMxk1dvk$@9^sPy%;nnDV%@R<lyY|D9;>9f=;OM^D@94{s6+nJ6P!Nckhm-i+uie zoDSi@cv67ro)N9mzscqB3d#}x%7~xE*?g7hdk(BeU{R)ZvyY<Yl<GeP`KVe5@RS!h zaD!t8wzC$RG4cs@4aP!@TIAgeu&o~xjmZ)pBT_w887XTRHNvmJDR?QOWCB4nqXjO5 zdiwWqR(I;|AxSK+Kx>Yzqr6eXQ%r@5^r=s*41e&3m3N=wmkfLd(SQesGsd)BFc>g| zt8xAZtiYt4w+En$>oa)5E{IgR!S~JHpK&0Ri48x~VPbPMvHbl>3|fTQL_FfWoy6H` z`L-E*>?;x=3E;LFu0gCYT5L*@%Lei+(+@Owh~e<`;D;5pqbTn}*5cx-ltmwS8u^1d zPw+X6Z+!b!g`W=9R9R*>>Gh<DC3j;^yawla`BsPbeYZ~LB1V9Hlo`IAIAjQ~IUtmQ z<*CxKSbkwc=Y@c05uoSH;|~?NxF}b^M2m=9-9Zp#19q;F85~*x*}3cUl=zhAr-;K9 zpr&SiEjO|8TG%HYBbKIv{d*=+$Aq5q_6|0!&#Q~GejcJawt8$6?%em?m3=&YT_FhK zb||xkwm;h0YcR3k_m*!}Phu{UfO%H3t}U-@y@&*>8jv-DO%)1(6;q#8-RZp4|0<BY zdCSn%40N(Pg0I(G?4r{9)vAQh!fZ!W85@Pg9?)_bPi@r*3y8)s*kI`P8t7{mH{<L{ zWp3n`@+YEK^PbV_0U>G5j8dBOIZzlIDNQxuO=tCbOKX+-WDM$9P-wx1D3^6)1v9Rx zDP*Uo|806frB=z*z7$a^m-4P83oKd3U-a<I*g7|r3>jAQEDI|&jfJND0VaNDHju7# z#`OMZp-JBr`#Lm<#(cEJKgc`o-T5|>q3VPVavwppT5S}`#0vTSiJ_P$0D2&Q0T|rD zOc9?;4u7b~ZEps^B*bGg`Eg%QE|uM+k|zKL%xo8<8>Y<D;W{tQ+;($sDVlYCp7*cs zxdX&x&PYTt!P0ZE<m4$*Z6}-bM`;md<ha0AF+vmeDefC5(~0eW!xw1}SV`#T`XM(B zaD=lvvw(XeLBW8YfiSIX%{yKLGp>B#Y{Zg%5!d+X2rOJv-fEe6M$=8|wlz5|mMsm) zqJR)C(U|#HT;{un@X`ciC!Bw6Z_`E+9r5s7Yq7|VjGumk;nf~umyEoDN2P7df@Q*6 zf~42N#nqE1vWkRV$&0SUh`gj~oJcV14WVm3x!M`fV&s9kezuDCCX$_zlCySlS?qaC z!h8!B(U0kh;b7kIlJgqATiU4lovDI)=-}l$thRO}L4?^hUyq1epsT9sTg`Zb30Rie z+Ab}%qy-3kpp!?KX&J9Ez4xm~`bKZ)Gk0pVfZk8QleIeIpg&p;J2Kzl@={S}r?EA= zTpS{drU7JraK<zb8y|i)OZuWObwQpHnGjFTh@HB40kr1~O@AHwpt#a;92zF6_sx2l z2?9xnKzy+{|KFCgC)l54lm5RKnVXh;%;UG*&=}S`qOx5YG#1STdcU5f8sJu^m+*Hd z<rDoc`H7SmQ{9JUAVyxF`4S84lLg1)MHxHNihQs~ZBvsj6OG+WS87h(61+<t19>=@ z;QYjfzsce9F?ps7V$XvMUgf!7-@<qznr4WbIG`d)5|;F1f8XHb&CML|VVEC+DCUcv z6ek&#LcV|SE{88QQxuB}kEkG8dQ`?oScmi_Pvjr?{8m~+FEF!q7`;xKgU%L0sdWtD zI1K#F-EM?1bdrFhUrK0XoXE%gzftN21nEUZZPw%wD_@6bmIB>X#8W6vFMloaT3#eo zv(z`hPZS+Lk6>;tGBYT{+ZQ{fw)zoJ6;a}ypK2z{kT=BlocbW-iTRXN4@DF%#`_QC zyiKVw_VpUE6)p{ZUVgWQABP)k;^F;CAcAVI+{Zk}!N=+&lnFIpXwX}OJhPdVZeK4Y zo<;C)^l{G{VRsB>_We#8=wy&bG$5YrESfhy@N|N&qyWTR;j}KWKYH~ABC@S>ef}(L zUJo<9G|!-3dJD^&8d0*x4Sb3z+lbAQ>nYhCdG8}XlXohG8I^mLuV%)C1``Ra4x|fc z@+=R8y<0);0d^;xVzM&0P$=NPyJG@0HJU;{LJ|B)`;TR|{(1*&!~#ZQ&tdyUmaV=V zX~SjXNdq1;6JDKl$8Qgv0%;&>14F0YUV*<7W7SL<!VjHV&1&K#tPq&%A{~?LQ9=H_ zZH?ilY24itmrF)ww%pIExH-dxI~Gl{f}Tj57)fLOWQ>l_&X0aZA^)7!9IX%Q;R8y% z8Q{m4gbpa$hE<0yTE|o&G~qf)OIRkw=U~{E7P=zGUJG`?aJ44GyL|6><7-YJclW%U zDgOiNk2eiqepMQ~craid2;_uSt{9}rzxUcqAJsJM6*Kqn9RYFlPXzJgyT?7dfA1IO z<7XB}%iq_MDY}yg@KQp|-pNt(#c#mp>%;|*Hm2A183sS6jqsvB9f)K*`t=p4GEP^T za<j!18G`X5sIV`IS-8evb}%Fajco@l%yDvA{eM1`t6K$_(T#bGcv<5kaRk|;+V$=* z<m(Xrj8W1LRCqq`8f*MTZ;TA+74y`p&fl0z)7vvjf0qM`3FF|1Q0#fZVZ9Wh;8DL` zk_wp#kzV7VH*zKn?O?gF^Ih7%9vhZ$DP}9f5|NF4>6OcP`uQC%5S1wIe0{id%2XRI zWMx&z|1{SK9TlbJ8YitRA~u>b%*vj>GS~4YQe}tBJ1(@DJ_$i14IO^>;e+R*CT8!h z#^X;H)_-;{Rt#vR4b8x#Id6)W#TB%&P;)ud7)-@}4-;Ukjw>3z!u=3$7cQMEgV}%5 zwEqpwbz=0qa%}F$-WzL*LuBVAo~o)eUNzn5Ye~6EpvS!&?S|3}!s|+AYX4<IPjAZk zP*Vr^AAX)(v<++rv)vs$Kk82{<_jS@2G*Jb64X>RE*JT|%fV_%H0%_*Sr#pP&CfzS z`KBbd$3tEG-!6!d$U9CMfGFhAeAkY_aoPxA*{&0vtB#^w^o^Zwo3JZ?SBkx^NGSH8 zhc~`(?+wDo&x-h8#K~Qo9esa=i9QuYh{>q8+rq~mG8H^pb=-cZtfEm^T!J3T<wKmb zSK{Gj4F`u0IXn`q=WE`xlVJGlI_ESvA6++?QY@*%MueBWW>-E9b&1NDN=(ty<C!wm zV%V>x|LBeJ0L{x$zjF7Fjg8*15;SV>X?o{bZvS{B<di|t>yuo*DK0xTiueHZ6hFGc z`nA~^E>cb$oVF=mR-JgxsU7<&+LU0hMqksMeKgNTewChHKVw9=gS*p$CN=zqITBAl z;fs|&mFdXpPwm0fXgj&5cD`xZ%p}gl?K>mcTH0eDb(W{6>(IvpMt!|W`+?AeYQgyu zmX?xJts%v4S-OTcP4I0!TlmN`g!QT0w=AvN!qj%<Z}Vw91hpP=4lum|{$XW0k&<!? zI3AKc#4{|@;p?-72oZSAF{1s@#r)8GzUCEy`(=HsrHys;+kX%h#fm+Tv<R_i!MQrZ z-{~L9SZ8-=OfA=a;uwS`z{@_gNz(dohC^Ph(fUs(^OE`ZK&XjL{xSwf2X<@3!t%E! zpS9I*&@C>p>nEwL4~inbWT)s}rE8E&Tt&Z!PW&ZsFDx~z+9xk?Dz3CAdel|s@LFPc zFC02-;4Jor;eg;6Z@or8J+pgB9%troV{iUS%E8RwWD=MCYv`{V(@|kiw?-0|*&p;) z7<GLpm-198C3z~{i!`kLy2gRx&Q;`2xby|GZOD2*2^zje=6k}%y}V=VM~T~~IJV}% z^(>s$ohf)Xx?o^!BOTJXvRMZj^^lD{?=a|1E)NuAvs~W3>{*mk@M~$xk^oP5iS_n{ z)dow;?y@poT}g(GZB#-$sYAg(NMPo@O^g$$1lcJT&kia95l6B1DN$^AO@$eSyo8Uk z7HPeYi7J=80OX)gzgW`9>lP5cITe`sILjF-%HLqpk1c>}0s&sa(XPh*o!juA@Ks;H ziS$_1uba=qZ=HGL5Pgg98bF`I5TNCzfk^sg3;_o^sLn;*Wl^h^0Tg}vN}P57ARcMM z@ZUZCjhL@zs<04R^v;wUuRF$GG53_I?2-8BEc+!h-?qC$;?WgGZ~bncG0c&jUF<m) zXxV$bI`H%YbJ;)0MfC6vw{^uuE#qgwkroSdj7s+$y^&<83dtf(#=hSQh3U7Zj=$5U za>?96LqUlWUl8yQVp$Oc((^O;Dt*L`Gi9UrI=U`iQsUKqdhc^&EX^(KwfI?tXR~TQ z*{s#`MjZ`iX@&uI3X(tpl6a^N6m`^Q3Z)|3-|2<i7M!~E#8dsViH4B|dSs&hN5Rc9 zq4m7H>O8Z0Es_e4q}v@6e+t(>-;J}RRn`qJ-J?9?ovzhldP50v2}<0{39a}FQt6@L zIH5w{>-D<qQtSo|HgLI|CZCAnGbgGt!=NaGFVmwC!-~jn)0M&cUc-S*ULU<~5&DR% zlZpG?-Uj0eLV{xY*`}?J_;fV$+G|3{>@_=X?17FGn<o#exh&d?^N!zg`cBISQjxa_ zo|fng(hH!xhou0rdMqd}2U^3v8Z4dYR*!!+{w}~LHs}0<(~lQf?fth|vqvSfVIUp| zu^#?}RZ!~lHeKK`-Q(ie?e1u{&J#>tU9ifIE)K@dIzO+~)-Lb)&Rjo)V+zO=F<rI^ zyQArxGw^|(UTiyDj`=2D*z=*cZ|z$SP`7@lO5PwhxJz1@xpX+CAvS37B6PtfQdZtC zym9+^<t^vOALC9x7;gwjOR2hl(z6i42(?5G&j$PuWt!AtY<7%rc2ZUy-aI`rb2OTw zr<kzyPP1pR6WDUE$(1XtUH<Q-eCy}LF)>o9g9NfKkuA-nhn*5<h&(g7d^DQtb*R3) zMEwh1HVvI*!+SCqY6~~Q3YV)YXA@Ig*h^N51Tc&2&^*wMSJM&*VpS@{<TqS<X1NTB zRTGl`2btZPQ|OqH)qVE8_0p@6D|CCBDIWHC!)9=hmeV{3Tz>C4SLH2#@w_<gB?&c} z%vuUlrR_jHlbEQ_ye*yc4`NnC+FDMyd5f_6rP2_l5>qOAhz>;DND!<kMN8)`vFw>? zNlIKVzi4l`SEQfEhP?pJ%-hwk-24|R6ofn8C8Ucy*CMOWw^3ETTJT;giJ>=%K?i?} zz$zaRz9_R-H(u@4s9MDPTt~?9!E5*~p~nCd(Np4XpqA>d->MB7PDltP_Pu~AVZHL) zPPH(A=J#VWZb>0O{h!~mhbK|^4{LZv1I~z$jV}tzf?W0}n!Jvyzg~Tbq!6<g3b5bt z%hHi`i64MgzmIn%M;I%1D2^7?29l&!URg8jvY06@Y6*)ISWcW3i-UwP>R8ZSsNzi9 zJ3PBwTYMH^)Vb>iigu@{O#_vif-q!lq}q;_iz>4DVkz$VDXC(Kfvd2IcF4h{0u^D8 z_f~|J?AMDw_hIRty1H2GsIC!}k)AkH$6wQNzO23B*)RsmnXsylFE3dOx)SV5wA*ca zy!~J+)r@NWnfev`hIh_TTRRgKQGGDeSDD|Pq5Ub6V)cwOdLnM-8{L+c;n$+P%cj~% z=MEcL97;z9qkFtdl)FDXS~S<W{!~=2x|H;OcjqUue$%bex|X17KfZ>~P9C-VLnilJ z>xKrkXH-c&a;sZlX_^77_6se(P9HY5Gxr7c9;ilrC)gj#G40QN>!?l=&hO1gA^R^{ z4`Q<I7uGEQZj#b*H$UhzYoXzX$JOeE)LpoqTZJo+-nL8`_e|VN{D4Ckz2WwJxLd|h zs`yyQ;6(9rLdVyUBjI-YIDrIHE0d@)XFRWgA{kkkVsuchSRIBAxHbC`sk3m6wr%%2 z-zQuHs24E$MfM=3k8S#em#j1JHmq#+s|r|HEtY|+D7?Ipr_EY<;X>yQIhL0C8H8!= zMb8BNr{|~8Cv)9W5NG}9UlTu*p*D{(_<`Jxl3_vLnaNf@SLYjd-Q%JoSv+1Vef(+q zOv$pdZF?$KPj9-#N-yx%b1I-<LAf+*7sQQS{n}#2IIeYe>!NA~3MdIhqivNQ8oqZE z&eIv^Pojy}q|)rTu!~oDUA|G(>d7Xx_L5fRKMhT7?v$}jKSi7GyvEA>3H`5r-2SU) zsAHl=qbp)!@I9SDFW%aEu{bdxb7oxS6Vz;7>aF|BDU~*pV5?%|7Bka)6kZgDO*wfj z&jU%avGFOk&W?XLUZL0XsQ4tckirgzJK*<B6irh#H`p4Sn&=Xj{;FZXjoRcNs9{gC z$np!>1n)6MFu3x_A;2+kEKiIdsp*gI!zUg%qPMrVC)Fg3VA_)E&Sv;qm`>kg_|D(m zC(4Cps406N*YY8gVT`kzWjEvNDFt)Bh46@;U3^(*zIxYN+~voo&R_KzqM3bp&$!5P zUMDVoDSnvUSgNFXY)1L#7J+-z?xDYNXhuW(j`gE{_tNQ)2iSI@I>qlsnwc^S3@I4u zp-gQM)ll@*ba<}lnR3eAT=DdjXZk3hIdT%9=!9mq$aH3YWD|i-rc?fIf_s5z8hY6e zYcMdfof7fSF^QVNe%Sbt>E_;YU}hk6r2r!+Se;RU3mzMNhUR3r<^2Q=SLQ~P9tLWg zjX&=*>4UY7$duP)PpEvlaoS+aq2ZCKU&Z&XCIbPI$?Jk*OTSTUJWIE@^yqH0=JB?> z57-%S+4Dl&_bp0za}yS#P=?*PhcCqxK_(-v@MOt4EMyn$e<d;B<vDw{vos5bo~ciP zC2GpD#n^=Fj&PYHHdz3clvx8%0qtkMM2l!22cH~qi<pmHAK;?VyFQD#R$$&wIXAqv z((5Kq%(y+d_m}(zdwgFE@nl*!ro^hyjLY&<h4i3$<uusH02JylF<&j(7nvs1YHBEd zXE>=WQ`(a2z>gFX0?+UsdiAp3`n4Rxt~uHp=XVC%+lP89+q$xsQ+oPnT}pC5cphXT zv?bp|@Q9&B(yP|IWmY<zb*4OoaGkz&yVi1<1+6P`Z7Wh;D0VG?I08_W-fM`vefu5m zk9EI3{no^oDnpIMwSN#9M>U-eSbY73ayWUIxKWkTHsjsn`p;q}1n$VM^X)s^;wD;$ zf3@`F_s7V;UCo(OpRZ(rBI#>Suf6FANKdD|xG~c(b~@1Zsj$p}ONqiGT^;U-MPIhc zoHYJ)M}0Db1IGTF6}4&Hj10mth4ieirn!;p4n8{w<69Oh^IISr14ErfW0$T{pw#QC zYE_K**y4;}$e-53N!34T(~vawUy9l)^6EB9U9lfo2bZf_F8Rr^3LGBZ_vVy1K5<HJ zD3^q84g>utTFJ%`s9ngR7lbqhx%aio@0YuQe#=_xt5*37nU<U?FEtrSrrsBDG2pr1 zYjtG}$%n0)V&o}xBy!(U@5QCKOt{Ws9>8Dtkoh{EvqN$$o?aO<-n@}3@Lo%BGlAz% zW%B1tyH8ihIU*$_M@SD_db(OMr=fMCq1vv8J7xpsOzIT2jF&DSysEnYIdS<fcFNP2 za4@8IaQ`Lt&+bnGTsRSx5U8g;>z^-Vx$W`0euz`ZSUp%%fJ^DZk7b(Ea32X=V1S}6 z$FK5Tiw;@|ng6mEj)k&COdW3&yScl?yfXbeAe^Mh)g~NHoq<){oy9@z0m)^WAO!Na zz(k!`yDPX{5VNA%i28cq3^*7nr!#q3t<fW`|9Byqh*2#O&7tTSrDCN_zXd7;pa=_) zn8pV`r+6tS0zg<0-62nM04KH{qkP(%X-{}EJkkz{2##ehD3d>*C-BgKt-aIt0=nZR zdanO8OmeAwIaB!`#DWO!!#w=*<>QB){KRI44l_?|<4Ob_CDPq0eEt5rXW0gUcrX#Q z<f<1FF{7cw0?xsxZ-k%D(UXJCCp`JH6rMubNney^`eTiOx-O6=RUHgJu2jtsV;|p- z%O3c6Pg3>DTYCfj6e%J!r+>k?T9ORo#JPuEiy~e$r`Dh&N59HYSW_Aj4<>ffB9Nj3 zO$Rt4&!IZJ?b;)Eh>%epcSehGYg}du%$N5zcG<GYAA2susn5(PY&2s$EJ|)>VyraA zyR?h05kX#wR8nV;sNPB<0CKg(N}ipapl)l#+;yLb$`j#MMav64gGFEvU<W1f*`2Rc z%DT0t@uNtO9bctJeAT<1Fh4XJ<7Yu9ia2lH*9{}FHJ;KeT>6P(9&`9R#(cqC3{THS zo>sc`_W&4-Tx~a}YJQZJY>K}`=*cZcmEDu|kDy0}Xiat?WMF`FFm%Tcu|WJY!-w*e zzGe-q=MK&7ExgAb0X{`6wDf_8J*QY@7*qU%tRje{;yG3?+MYS!dcj+>y@2P%K^s8R z%{i;Js4s%3bpnk#AcAdRhjj7K#Eej85r#6)rP;dnnDnwQJLAD@LE_bi>m0oCkn3k; z$86pWyWm#!juLIZk9o}&mM=T@;z+!~YtW1Pp~L8-(sBc%3G5CBacNK=%xFD@5YR>P zWs>tAP}yFC3ya>Li>cEFqOPBXpUXgHNJgoKMH-x?opYvJqLmyTD{tU@!3ICS#9{*z z4NVSo2MiS<-uLkb330{Jcy<l=B!jyXd=5e^Me!ZJLqGnQrF@@xM&;N0_hwoGl`nLe zV2C+!GeE*2t;r-(hH8ptJKUadb2qUVTS?YZJ0exkd@KPsM%1jYS~G6=(A=8L#RT5~ zuj*bOo0d_>sa^CNACvx^D`#~M`>mfu4EyxIJPsLB&a>wmQw!3ty}o&y?YuV5QQkh2 zCE$o05;3NUGnN=mt-(;i7|#p1_Xf2oKWrW8&j`)3<ZFLHJRh?N99&>WZlY>x)O|7} zoCKLKdvO@*pozXn%GNF0CY6rbUp^<(nJ2C=B>Kv1#q9(^m|T8~YwG)^!76FU3n-}D z9@&!AmscY#-o_;YboQPHImRre+_KUGJyDV2=Q#ove(K^?SH{6&(>Ot>nk>yG|Jg80 z$U{~|lVS2bfM189v}3PSMAkQ&Mygs60-AA4xK-j?bQtAB(RL~-K|0SW!2ZI}l9Eto z^Ervhu?E^cG#9;WK?rVH2QVx6D13u7G12_`&*U+j(v()$oesI!rh(_j#A3LP<^)a4 zbhv6-4dp%?V8BswgJ;{SFuLXN(LmIL=e4|mJc)M=vG``Z2D!@toshI(+1RT+;sm5` zV7`cD@XG7C(?iomJU&`I7~ZU*2@>K~qN?+vh%47P{=cebeKEM|H+)1n4l)0|8<@dy za6vop=<}?QeFPc4=M-oRt|HO^AJ38sG~{%Gs{61M$S4xQAwtVj8GCyMv3qHfu1;`= z|E|IP`t5;(gQC1nL>+n>+^y-~)bg7N=lo`x>a$cEj^*2=bMT!P#IKfzJ_`-aWuNE| z39;do#H;i#TN`Y>0Iv(ppHm*f>$X8!tS_lH8gmjBuGvE@ZhV#Hof5uch0$JCj5e!a z!;2u0IIx?6oZqz0+n&z$`*IC**>d-JN6cx%)mPQmV!-XI3wRi1M4p}88m!Bq#L~hs zQD?+ERCh^C1zfKGW4eGd|LgAsCVzs<!|J%+3owwqS2y#BhHG8&K1a=U`=w95hCU{h z;mq7z=F-S=LJ+ySfl1?KZ(YQXM=p`5lphM|ov?wl%>Z1(HM7BWqRV*Aey1vNv3C^> zWVeaurQTTnJKy}wJ!DTzRr+$$-p~P2ae60L&X;wECzeS;@2Ptoh6edEo$ANxPfsGF zs7CGsN3hc(&?V{><S>n`xY=hxmHR!Pe(GY&d2tx6g=CdWgGK|Q;WnaX3#^$Xjh(Ed z?*pl3icaV>E{ixqqA8G777`~RO~I>-7kvQn9f$r_C9bXzOj_<$SB5VROsL@`?!s$s zM&_O->ZG@pemEL0F3qs^XgNgWIcS`>CeXfct=&<)X<Ygh<K|_-L`pbtSIq4}BJ9qa zN`h*iC0USqkI%>8FaEzADy^k|)q*bgJ7N<tjrTrI3Tp}&xG5j!RF5H%YGHfb0<$LC zpC&3h%Ye2;)2Xg*WeY|h?IfB7;>xgequd2oat%7OCv*p|t|j!gX|hj`j$x(-56?)6 zMUU!aQPb=xv`enLRkj*KnVY-ObksNHv2cXJ##c*Ky4t>unoG0VZdPvJ3WZEgvnY*Q z<z7!!tC@UA8=oT_l+arlC}ujbYdcKdsnZYyESCH4DlT*JJU7^r>Y4tE>(Q}oiW{CZ zVk@h05E4RRMRgOd?$xp8Tpo^SC$tk!7I3OIHDyBc4+L7(mEv35h9NN{9b3d%RxC~0 z>_V>b3;PXYAk-er={OD#2e9ylsL12u^r}y<(D%2_XwpDr;Rqh1ayC$YxNn3Z8R^5! zA3OP-&uV$)=(YR`0i4D(Cdp5~s9vvGZJ<BB`wviofeCRR7$*01@*d*x8w5Lzc((r& zuo7^0&Ur7C9MXe!qM~)ilKsUKV}q)C_rEdgmaZP|2aQ#B>g9+UXt6SptlK<-d_8-W zj{Q?uooH+$0sv{?mxR2t$KXr8q1$Wybs4y<zVw>i^7X*ItBCRjNcXzJ@m&7SipEd$ z9TTJPO%G{<_ARV{h`uZTht)J7IRE$C%)tsd;-Lk%#{RIZaHYS$<G}82MeOV>eJ?~o z<B1mtni&tepU?Iz0N1%{q{9)(y^35QQ1mSQU(P*78g8pm@-tnrBn{g@d@bKqNV1FG zCer_rH7ma~{9a8}ynBc<Q)6y@WtruAk7B({M7VZo2;b1e2rnytCh4czBm5hilB4C* zx~H~}rpHR3yeWJX<Sb%zRen~GGr3r4q7S#CN7E-dBRK0o0uHG;?n$}P&DYFvXC!{X z(r4UoVo;Z&F~sg3>~k_YjQ(ggeP5MAO&K{O#G@wO`;HN(azQ@Y>)e$m&ll0)@<m+d zoqFAR<~H{n32@Nb^Jk<KJ(b%i===zUamdNbV;tdVUHB6qc;hcnHNjlf0=j)eagTc4 z7_+%q$Pv$Lw1uKGg*6w=6r<1fW!rjCM_w<`*2(qBapJP@duFcC67&_|q0e<{Pq&ia zMPe)<mdcy<r~IogpyyK%LTKN{(iW?^F%xJsJniQ(@TGIr1&ai|=jh;GS3*===Q0!> zmWIUxLlq}QnWFNOzWR`F{XnYNi-ag3Tuz7!UfdK%8+#AnHO~+6FX|js{+>EN(j_dJ zGa9TJSc*o>+(#G=(+uVtD|Wz%V`wmnbyk}(1JA*0oG03~CYwluDNq9(P}r&V8)~GJ z0mXNyz2`p&*jaV+4I$X~$~_0b&;7jhd-4SP;P|;s?-U#bKs7KX^LIn25Br~;yf=aG znwvM5(sl@^skgv2tIvu8g8y^XxpB8#HFaptTysji(!s<;;^>J7<f458ewM)9w)oZ9 z7V$zXudcCH4kI2SQsmNj)@+4(miXUa7jl|#nZsl$6v<9RxYAb^#;N+(tdlnu(qLk& z2O-9}JHCWwTv!`|zHh#ZFYI0Glgbbmr&+&XOqJT^MR%K*P4Z|q(v?F+-jl%Jib=or z6`i$W=}4#D8XM(TfBoRr%vHvlGAY4z(w^*u^I%YOw+)4G8Z-wa^%pAe@DCfSo!DPl zIg^nW+X#8`%N@tinj0&TrKO<Lb<-jFB5QlowxqwuYH|2)P>!5d(-!7ZO_i1E9-mvI zlj(Sq7K#0>*sV%BW=b7%>e3=l$Ov+R*PIR?>32_ynvs6~B_YxL_8BjVTl`8^?GWa? zTc!ClR8T%$lby6nDNW~&o|h@afDFe0suqV4stRHCo^d5miEU;*<6G<T^nW$=KDgb$ zP`vJtI>N9|HwE%uOi0<xY%jC6%p0PshS5s@mCA%8n>q0c$207KzjCwPo%wr5#uUp* zBS{Xf6N1~iL0oZhX9#p}8#NT1IIRzB&iVzCRU!-m;Wd9wu(c;x?p$G?0N;@oLS?v4 zm{(k3*SyV*#Gl4<<W{T7uJ&cPaKt<})@l!oJPuk}CP-$+RU_TXhe|qK+CJGDOO_@l zMLgp*y0POC)_SvIZb;+J#`B@@p?&(+M~6R{qGiM+B<RzZUwi<esPB?ps`EEXOhG_F zO(2CEa<)x-?Q#`~!?$=Twk8I8Yo0&@^T&j|FP$rIzc7nx#SOV5bK7fFzxx*mrc-}h z@k2d^q4LvyMrKr1B$FFbR~bgfG&wi~@WLxuapdGBhd^FD2rQe6lg?$QkNqw1`JDs! z{8!6Y*iDtKapbNMJE6l=-hzvN2=BieBVY%k%N^=i{@9j4L!W1-Wi(zDMVJRN<F#j} zi<%r;v#zgl88wU*CnrTtqWev;e@TO5<Ta<!KQu!q0a3Mhw8Kkmdg8!b@_tOYpp`+U zodW+o?;(u*U+<&71*_i)+g*>@!I2uPk$+scE}$tFC;%-I9j^t_<lQb<J?@gdaJxH3 z>Kk^|W;_q*B$CPuMIETVgEpC{o>Pvnw%&ckm?rjl1=$JBrvis+F0G4-06+$i@D8Ep z70F$XY2%Q9znqHZr}5JkB4v|m!yTek8fR&X`2}AB3W>v7>J&WP&40+5PqYAX@EuyR z0bv>@IEV#jq7D>Ce?9IK%Mi2UoyOab)xNUx7((5-W=sPeV(sBQ1D^>!(y`Qgvz@h% zLH>}Q`l=FS=ZX0Tv0BwhYnuL&oqC~wZLCT}S&~cY;~ImfuLI@u9&kI(9$~UkG1X<g z2kY!jMp%>-&L0c?hFyyQ#JC2B%0C#qix%aCR7um1p>2507MQWOnTQ1gU+4793I9O> zx5gTcJ)Bj0^v>3(?)&_^4r^b$dC758H>&2OYcYklCO7ZX^EzWMW7baZ-k#ITgrP-B z+smQ~p^uWcD%%wj&F+czQBtNtCXb<6zIcO<TbKJI({u@+Yd_Q}57i_NKTEitqKI@+ zo1rJaS*l)qYiMhcL#j+DTzSXH#iUY%iNv(hhf5+{>m_|TNEshKzAF&wLw)1RbU#x* zf1HCv{-&kuI*wy@h;o~rdm)h4FkG%lhx4rmD3Obp)^@Q1FAwB14@!>G9yv<L8Q7sE zXn$!)uaTUb0rp#)ZCK;)p&1BmPg&2|<-f!nWu6D2*SX#w<&QlpIfVZ1;Ra!7LPJ%( z+6jD7${QuWgbPDKAB3(N)$}{N`(+mtpeu6UB}ye`mbF3Iv+B&#wzW&9<~n=04=?^w z-kR&{RJ|f2AIczDefd3SbbsrYT`XPA447xFv{N}<i_OCWC0P6xnpg$|fQHrF|B(_G z`#&I@Ae{a`w=DVH1Z;VI5|G2$Ic_8L*q`ez6?l68IScm$Wia~l-rDqJ(>N0+S<00H zRch|GiG~j8tH=bNqTxb@%D)(%aK7Y@nJ6sxBHbV9FTDp#QpqF}Eh(tD7821ANLSK= z+&@SyWC<UC7It~z7u2|mJ*pSqqnM{E)mF34^{~7QSvg{EaO5{@xJmBEC$T9uIP-xT zU5WT8ev8lGTI?^4HfJ*}SRrVoI+P0_LzdW;M701h(N&A$_di#szIl4lpI1$KVWxp^ zr;3~(^-`PKtq~$R;J<m767@aiqZ&h1ypp-Z?<*H+E+`BrJkn<y;n|y>Q+U^7&*6V! zGTzlWpkYo<r*KEJMFU!R-#Gql^OPjV9}@2o_|I^F$|mS$vI|@V5lNF7j7MaFOSFA7 z;dUpA?@_UqTmR3=)uBx{Dsgp=l1HA^xOmpbPabl@Z|29IsnG=&=Zq%OmBRbZL=Rp= z*TZY4?UNJ~rX#G<MyOE9b{3RK2;2|4GX!gzK}0F;0yTN87e3GJyW&b&Wfo(GP@9iv zK8lUTgp?y<^Jz2bKwQ;X65LxhmY|V#f?JRal{=WdZKlkkCo*YjVyd2HGENhhYEj9Z zr+Pw(3s>Iw(t9mdT^YSndAe!`Vvn@jIhsb^#tT;9)W!VjQg5(zFKDt6JgYO3c*daQ zcmhfL)C5vZ=b>&<caOQqktQ4Dcjq5Y^=A3p0A87g?f@anqe{seO}8#j*Jg%X@5kQ) zw0UP@>3-|}PH|m?=P`V@i3p2Gy(<#(t~27FJF_{@vYltWKqnhWhZ2YgjjTI`ys@sb zBj@A(aElk#pdiv6HYve^*(=NVK(Cni<9B1@XV-`ig2p3t79mqqu%eVn+XeK@;Aj$7 zM5$w{pY7)U*f$i$W?}bROA9W6E$xzN)Ruu<NLKHqgM!+{u+##f%GwW`OmZ-$nXbNu z>+vZn4r4y1*16V8e|PU#j|vUwQF5nje3d$(uGOu4U7omEV$iV}s)v8;N$9vioCmKr z8I|3%G=Xh)((+CJ#C}J|wK~hFl{F>tWg3dpYUT5;{}p_ZhV}8ECL3-j1NJkbZ{l0j z(2!oLI+z6Lo={{UWLvox2lOf_lw@#Ai?i_pO+}$JdI8f~CcO~K1v%e`7Xz)y4q!_d zSsVanA?*fq%@_znKx?zmXs>uzv(Wo&0#zr^p7ZZ;o0}E-(HM&d3t@@uh<BMyZeILV zWtCO6MNi*&i;C=W%N3Ulul}Jkw&T&lw=#2!gqM?{t7xn$CLoB5`!&OVP6GII@}4e@ zJ)?Qzb+sVd$pykDs*ErH)>D-!|DJj8>eB%1tc2<8Ob!e4l!BxUqkfa9q;`rYdAuy$ zEx?<KB0OJQs8ktHzVKh@CEG<C4bo57S?;qKt5ac56~l!AymrVv6JWZ^W+Y^&8!lp& z9clpyw_k4nPT;q0SzM^^)%1tYm75$MKDlt2i$$Hy^X67#iaUk6V$!w4oXH_{q9Cd~ zSCD+sCND=-(9Bp_p5E<y&V&)0(ZTk(cUwonNU{AzF%>n9kG|y2&p#e03$?F0{Z?52 z6U2Q>+B&^FYAdm556gV&R~)C^dP#=!KjSN#FC$&UmZPgw1xbwFH6!k~oysv=hF?_? z8HV_NHdwNm|K1xQ>=@ep2W-bI=h7g)2e}4(H|k&1-|mFv?vbi+fX14ouX3i#f?Ly@ z%^GTYYlY8u`yFza`gx@h*qh573k1EPjw!oEI<j)XL;Rf`UJ(zw=!Crxk@3?Et5CdI zPHOsSbf&h<o?8G5)KeHXFh-LiTG@2G_&r7ZC97luB2V>&XWM#$ldTYhd?sCoJtR_t zervKBvus8|_o?sWu{*n49XdC}H8b&!i5-bR&Md;GYIZsFnadYtNSH*MkmLPQ7A}$} z{RK~CotRkve7dbiiDcgAeiweL?y!+pcpVw)Zy;6jRidV!&$v)2lkZ>|@gR~Mk=C}J ztY}NI%#v9%UtY4v5utnEdY8vp{<^r^=3M;`DUU^;w{`SY@oa5?k~r#Zh+z*l0qKG8 zS9M2cep-J*)BXWd74xn@+P%mOJpI;}h};Ibt5?@)kQoyR?P5%-4V6k<jgi|AGI~(= zab(^*yPmIf#e)x+SAZl2i@3~L7nfLef|dre_7ys+OW}5nT7a<K^m9d$I+Ctp3{~j1 zs9poTS;XRbfCIj97r$DGce$Ynff@l2<@(&YFqr?XXS$P_LW8O9E)H&J&{R9(VOP^{ z_C*<2U1tNbp6yFxPoE5!&6&*_y7&cShqJhq1u@GPor2y*Ijg{7EO6_naUz<oH17P= zd0EC;r!%M;Gu&-i_JYFbp3uHuNh>l3vx)Lvp0oT<P*FjwF7_aOaAoH!D>d?z%=^1o z&WpNR1*0Yn0z>26+Fceasl{x}uS{oi@*gtsc(na^Akw3B<rMsk0jx&guhj0!>eA6! z#MQF$jE{^{Mp}01lM?pL@3hH7Ff7)Spo(@p;xsznynyakwB-~n+1K&<4Qr@mmX)~D zrMXkLA2{>s;N9ixm~^v=*VAOI7i0`S>OR+Ey-89h;H6;e;xd{^KUS%zx_Jo^!eR$y zG3vPe<6+g~xFBsIb7V2xR?Q$<I(<+At;(qGk?AGs9Y_V)eZS+U`&00m2w=Adl?*G? zWwVR#^UF_{ys8~}yN9p;TXxOetz1dx-X=tg2gSqSjQ~YR?YDVBKR-TXkSMrV^vvF? zHd^z66GiQH(Ln3lFQb+D=Z}81Qx@rk>J0QqNjuC=ZtMq0$`t6fp~^N;?#@P>dhC4K z{nbO;y&N3jB(px#_v&%+Xun@<hC|=fw^BT|(o`qr_1+u~s7b=|KfaS{d^SxU9Z(xp zEaUc#yr5wCQ7_rSFf#}(zM@G+P#BT!lorAAD(!j#_f-$x5QkiqpSuj6LbwX!(#v6Y zZsUkLg8{pVpB-NYFuEYWey>3p!Dx*P_#|4({GoY$lKJXuOzg`I@oNByoNqPd2&%nf zq<FKS+Kg(dwhdldvZM;*dt8+=2D;M2YUHne*l_aI(KArDRvDI$*WJ>K@o*j{PrrIj ziuz>B%HFUUS||q;$GGpOkYtWMm^t(HSb6~x@<&MdP}Mo?+=mg7q?>c^XZTc_GkTtX z$jr^k6&4Bd33=C`1R&*}z*5S5bQa~z3mSJ9-r==BNohrnp$^waT&mO(29^#n{OO^Z zm)coDU~*a)0F-72_$0K2*wyc)SbW?O=`gCi(@B`bWu6mo+A5523mw9UUil?FafjQ$ zO4DX0X>ZQKE~BMDXy0=>4$y>B2GcK5CMT2_A})Hdv#4_|3Ga!u)9YC{Z~F&gkqt(p zX@=054Bz+Ap8ydH6u%9z<*~@Z^(>_w67l+vgLBa65Mm@NNsgzSnkNt;>0t=n#n){q z?>f%>z;^=j8u}d3dBW-cDd@S}elv?HRN{@U9G$#oN?xLy9Q>Nk9A^PO6}_yUSt4|h zF{2=HkT1k;(1o1a<#M^yW)!?q5O`to!CYPS*1108bLtSX0p0(xblrha|NsANkz{6X z*%es{XU}Bsm6^Sj(K!@Cb_m&fg-S+*Y$f9k86gyRB4nPs`}|(#`}@;)-@V_j*X#Wn zkH_Qrc>H{N=IQc4b*AQ3sNF3LNQZPJJW$J5lIKl_V$7{Q$odE!K+6%pVJUYf8roO| zi@J<CUSGk!7<-6#DO{k5<SG2(5mKHFAp7p^&$i^b>UlkPe(4b5>A9sTY{IyONwMSd zA15R?&MHuP3CkvFZGCQZs&O~<<gCto-&Tk967%zS!oh{We)&5(f66wax@q>{i=(1h zmIw`9e2!r5z*aQnSVPiH?>kTvZE$}@&S9=sCg0y<9eorxHB%vH@z51NMRoIxxsA|C z#-1MP@RvvmuczkbqG#f9^y;hT58BA5YDB{>Fz2rK2GT}DIgq;}2h5bs72aQ%p|i)$ z8(`=V5>j*{_lNoZgBa1IBp_Gz&n_$<hYb2KxEt^_z)%uUcqc+fX%O(d6Z@yVP(wnK zb=-EmFsssnn&JtMdQrSL!PfG7Xl)Y{_&+?Uwv0X6@Op1D4h~HlCt!VVbT8=_6qio> z9<CQ%sG&DZr*GU0#B&7uI-mS+SBDf3bPYU(5JMaBxtIlD+zBqLr6l`vrJx1jrwYx$ zw_TJ1n)J$nih_bD6-e3$7EIZw*;lw5AKF{wNNx9^iv(9a(E6U^Nd<PnZbIN9aL47C zkPH|9QvL$RJpfoS5?by)&w|W<5C|Etv$?PZ8|)AxV`ku0nz7xnp-h(fD`WU)NE(PU zE`ha!5D2(MU-qVE5UFmjTk*vph(EYWq#RLYCAdK&-UjZ*u!-=QT2SiDs;|ylZ>6iv znBIR8cq}J+NBc!aU<gnBRUHuN)On)0{qgwYgmv`Nt2))|k1oHEUVccI&x71K34y|i zS~7p>)o`OV&v*#mXPH!{fcEk_&HLdE3L^TY6z_cwv(O5r#^h!iq!4N*r=0#S`R{$j zFD$Ex<QH}39shRLvC!hv<MRsiIk+7*^TJR%@J9M2Er}q)l=cxV{*1QJ$v{ThMKJzx zW`16Xih=a=ky^$_wlAZsVnL2f259bb+Vp7TdL5s|ep{?HPeAF{+XHdyd8*w@bi*8u z0K^6HlrJT!==m8C#yZ;^js7czW=;9hL1YW-NTO9PRc=SXLT#z?haoH667^;4CEn0) zhzP(gHFN(V%op4OxfL7^f5$&Xhkaixx~LEI9j3W8Fe1TY*};~Y5gat8*-lXe-oi*O z02=LkX&Ug-2EASKLX;8-%r_0og0m$Ulj4>yp{C9TO{fl|&LS)=u%_MV0Q^dRNe9v= zG1yI^$$y%J$OYeX!ISXvyiYhRAe$zOS+$KBY3JU#u<bm3qX%L1TpN>jtm(iq;13CR z_c}$^v6llrP<%{)<qz-_hk^;1W5W2(RxVipd~ZrG$5T8ocO%q?Y=8Z5QFeEMof4+C zVeuBV%E}CW(=&JClT|A&gNX||MaJCHWI|s)aj2Qe+>Y@EYlkrHAweH-FR2a<6N7K# z%K!ebqaRABb@c1e2L~s^IczAf)(&p^53!_Mk3xH{n~HlJ5o_j%rK6;M?1n1}GQ4AO zlvu)E1<k3^tZN{bsY*%Y%$vkwBu~oBVPAk6Y|x$qY)}Y-hB=m3t?5x`W4E|}Kn|7x z2PNF-g!Sb_u`|XPlzAJ(TB}(il2CpW$|m3KkmJr{C3kMPK@8_7OoHlf(oE#Ze=!y; zWx*63i&2AMuLa(v45lpl1!H?+o+Fs_sLP=u$;5^8UdXGw4STMDg_Ie4Rm2h0-eM#5 zf~NMDJae5Yw~^|Y*7ut2+S6=@IuO2(xJ+bPMa|w?M==@5C^-K|2|t>ptM9nPLq&D7 z$)xpgix~sCxZ{An8C|UZwa=vInM|%E)0cg{<1muIyb9c-Yk8K|k=c8%YC)qLiKSFs zK0ZVkcp|XogM&YczV*8nx>~MDI?Ay%0NE+cZvRMq6OjeR3*qrZ1~hKTU0-6t$fSY! zkig}?)u&mfqC5)l4N~32>TX`Ff(F}kp-A-`Wn+xrQPT@PK2cqShS#7XA-%qO>+POp z)?pjKMD_{y!e=_y_Ak8#+LBpIq6cF%Z^&iF5{+UBWYLyNWjOCGb5qHGD$G{TTR!sP z3$HI_1i<^jNKg}yp>y5x*e+wU=zM9W@yye0I^+vG$wcX!9*2t-Oxi<n#L7c|0;tRp zw+F@}!gW6#CX0w{26Fq0`Ik&rujWPc)y&>#-HvI$s50!rGU(`(EHH--Oa3LV)Gh4q z7x`!xkNl)*a;Jv_)JU$hyB_UU?u;jDC!|{#-kq71vS-R*E&>=}M>V%mRN2P<?u(UY zp%%*aZsR^^(Ruu8q6{!09cH%{NJ*_$p~ag1=&WnYKqX1MORfr-G|^~cdo}s?TB!bV zzx@bD<eMhwjkfyZkcujEopN#F1+?z8pKpb1@nAwXifLvhMWl#ReyX2cC#EvJoRP>} zUkoi^1N!Wk>tqw*vW|Mt{LD;E97F&<I>bZ2gB^Ddk?Q@z?aXqocAgsE81LAqE_QfA zcUrLn3Ti`tovy@_P2|O=j}g!QgS4C3Zq;aI9ChQsAiJtvk>N}>jI@gAd0(DZ^S@xm zS~Ur^FD}mh0d4DeVZwXALkgpX{*6nyNP|Anwl`#ytT@oK)~;6xHK|*Ed8G?Yf=Lb} ztVP^G+2Rw1yzamBZs!I%^*%Tj!YnU=?nRZo`*J-^QaQn*-K2tjk9uMGP=~nNW7V=M zcA?HTw(M6^Bq)<w$3uVaCY(d(XIM=5D5|YEbM10EK4i;vw{t(8IKrI!V0l7KK1XvY zX=Hrrit<HcxX1s4%$~gIMrykwp9NQp4i!Q8pTfawxExi4n~e{iy_;6g?y!lC$^{FQ zE$Xf*&z(Fz9d*gidPAx_6o#+2UT8&i#j0}ro8a0xg(|n5!j&tW3M_=U#P!*94sk@? zjeX=xk^ivTO<YQl?%bC$k^a0i9`7@<F4Itrv8lOF|F-8y2Kxi=Sa_-O3Tip2r0P6} znD0udOB5B(hkc7I`eI>RJ1qK9)4!vgW0vv>?@^yG|KnF}Rdu>Yb;Nh1XN+r$BwEhf zE`|`~IGr5kny+9AUbDvm4ukzt)sytf(d?i)M55=_v%R^}Y7yUL!MT~QqKs^o(L&gs zRg_SxQ2kRmU5UF=^gjh;f0ntR)!{Y#`+q*nRP6V$Y(4B5_B;1UmZ7ZFUfhU~^6*QB z@w`o5d>VX&v02B$5*6ZUL_Lvc3*lj1ZdKGKsvfxl5GcaC{_>U~J#p`c>JZX2lOo7w z+C|m%<GhK~JC-;EUk3zc9-l*kxyZul%|4KJUWHt>au~q>(Vz>&GZS_lXn}r>M$wfm zK{Bn%jzhgmvJevdFnFEq#AL`*HP>xwe}m9OGzEqWdf{O~I%3|Mb#zTAqmS7s`1Hct zKGg6>Wox%53d1mFGmF7#pRa)XDv7n)@1@8%l54|c;JFSxH)o$WalK{0QIOIOreQW0 zqqryPwzd<2o9_OJJq>Cmq^Nth+q)^!6zEgHw_7FQpu>0>P`L%hYl-8ApilemtCj4l z^qIQJ)fE)z5KC95>X)=fQ?D5C%8OAmLUm~`j!eu#Ge78EZArcS=aRU=#?v8HC?a`f z!ORYQfbOp_baJyOpvf}12lsiuD*(5S_|Q3g$)a_rAP0(Ad^rTn1~u7twY<N69p#8p zVoEy_VG=&j!`DNssO|P{{&gjJI@d`S6k^h<Y3^$>mgOq?u(sH?9K+OGm6)##)yn8= z>!Cs@MOHL=)wmnofC;p4#5>i;YOfOgg+*2j+QDmV&3iG)8N)~d(ofJMRs3+Z>DaVc zg599`4^l#4wY`n|n?hr1Rik4tgMVng*ac_<w`1iZT((kVwQoz?c74?=Q<ZOjs34k? z^i>P^9B$j<2ze%@$V#od56lLg7rfYn9=)`B?qt59RTotSHlyIQ1gtTP+bXKh6HRAC zX>>pWl~XTw^d;F2f-@`XCNrN`$NM3HoNz~-C|#E*nEUV5|JCiA8n%rqsB#46=#=jl zBr^xY#R{TqvkrTXj^~-gmA`=~(>l4b6t`zJhbY&8%9V3V$bq;v2({8#7%eKZ%+;>R z95w>j$>+~=7%P}^5vux~p~Jy8HNqUh*VXdgTNs(&ejV(6xl0rSd|+=yJ-WSX!!VcX z-R0U7A)dDJJTPeyjF*dd6h-IJn-r+=5%Nb&*N5fNs;pCAC7Zm1d9nzP`*$hStLz$T z1ue_J^8W{sO$qp>(wcZ&rp(A;Xv^s{xIbKfJZJgGYX4&}nQCkr@9~UDzuxniP%{)= zQqnsyi%YkWV>y|gy1(*!ArLAvqfqo5f9Z6El!AUBij<5bbNB#W)AkV@tPD*u2c{(Q z5~)^$_~kli&aPo;38#lFnRntI>lS4<X!5Z!-t2+!lP0$l`YmwYrT_EM#cr&jpZhmT z!HVAC%~J6;9%}lh;v<7YMP&?KNL<NT=t4(gj;3=3U5!W^P~>&$ZS{5PhCgKbD!~w~ z$~dxB_vAfs`FVn*fgsP9Qs=0cIzCd`Z4ij!JBU?fW$8on{_s^!g)x!3C*T|k>AEU( zG9@n$oA9UJSwDbQV=aNNQy8w0PEYJyAzAfiYzb}2OGtk)lD4|o$5v+qtRMHZ77Psa z5{v~RIJN2d)B1?Ig^E!V@5ExvYE~62R$r%9OeMTf^c#&lV;(lFXno#xPV}cWK=?_g z(`>z?Bw~lO(p@CVHse$wrh9h9^z`_{XzU$FWBipS>c<{_q#@<>I2KQ?rc#_DeBj(# zussBEPHT9T_P(yPU&*_Gp?>2QTK`g^149JnoMz(6>swXuVqI6G`&mi<LHK7Ws0J3s zK4S~!8&9F@`28K}AZgd3d2X<Ab*ZaoWHY1+88>0o#SqiHw;A3(Bk(uv$Kh>Xt6CWT zv7)x-RZD&%l{EH;PwD(YefMqo`tU0+f9H2A{MyiW*r4mR{ReM)|Jz9O$%OefpZ=*p zL_0<CN%67rf}Z!xHYncdc0c~>fcCkfA=A8MV{@k$c|)H}mKzYMT=TD7ZyoU00i|t~ z&0UFm0(&=9HZi3jO>FVERD@3;CzPT?r8jGXyCk_to^P&)V&2MtKC_F~mM^}LVqVzb zhFaNOnBc#g-0`?CQR3R0^Go-*Bn|Hu8papirIzE_o8@tgrJMnqBbVJm$?36_L5u6R z>;4*?`>1-)(=-7M^#>?oJ~-tz-9|(+>MmclyJ@hytUHgrZo3?`Akv7Eue>qzGoUk8 zVto&B+W&w_M<g)aY~%1G4N^5)XvZ{uswPb9{nm*bfxecAKDpMO?@@$(gP^@NtBf_) zEl;29fp|zd?K(E<>GInv@}WJVhd<lAvFMR)0k?!p!Uo2jQ7qLICaIK|#YKintv6ko zlG8v~XXuIG#H%-k_67#y7n5!O9UYg~hrZ@MB0wps;CcLagv_^dTVb|uRHCE00s)Z* zJ3P@i)wbaT^~zh^$N0aqn2}u<+f*HBItBMO_i!7Z%8vSMZ*8?nt*AYRE~{&%6eSN% zg?lmzT60oc3Ne05>masW6emu;>Rm3z6v}V+xUGJ>)*pX#s60uLvtY+?pmbfK-0SJ& zXv&DDBP4^xn`E|xdIb}M?*S(YW@`tDjfgmzEBx4QmVV)ks3@2s2#(wRn4zlDkEQ?w zS|lNnb>4v1f%8G8St9jFNQqdm_xF}&;9R@dIn=qxxIGYOb9SZNoXu-Y7qyf~Uv`H# z;6-OTlw4B)XZ9Tw6HR~35)qkwO3uUyx%-i}U1X!7@{YDu#n6oDx-{bR`^;HgC(e*e zT9dEIAybjWp|;VmxU*!xrKXZB)Q!szKZk0ROuPEgGq15w)o_q`4}`?xmw*3a|D4|B zMC6&Gy>FSKO?z*y)bt^u`^NYp(r;V*dnZdE;!90iMk)8^oenu6w4u;KO8)pC*+_38 zUxUkD&oJpyurSQgNBR8aX?d$TwK$>KLJ<QW<i5@*(Eh!LiUH1;0)<!pikzIQr1}*x z$hGE2`f}{^F`pa{8IJ#mcI5a!$mI}pYw$0Gc;}NBduW}bcZ1_a%Aul5Fp0tL^ZG-V zh~&3CWksB=uNtiOk5cfe#>QJV98VX`B!sB=ULE-PG)_PY#NM?}FEhO6;^xQuwX$a{ z;MnXf*3*VhlVPfmKyMh7Ydiwp5Hq}qiH28BoSuUdDo>O=7TyK7B}o3<%$+N<9aZc# zW50W1ypR;<U~74y<F*?dohCwtQOS78U0a1k760V|CkHe>XEjy2z|N}3$M8bO?B_1X zFVMuDHlgVFzsU78^Zy_`X-7Saw%Zq>OI~QvIt*J)ZJE^VfnH8;7Sg>dADRI!vJIr9 zI+xTas`Y#Ytaj-Zqxm<d9bJ!JzG6fDyQ7!y_4?U<*s3{TkCMJQ=n_5XX%9OJ_8&ev zj$QaVG^9%j;QgD&5e$D7huS73vfpNF$|&1()o!NkogH5P5?7MR&1uF5)6!2{qFPo_ zCocW;i~&B}IwZ)iM3Hk4>NVuqk6^@hlAg#JuWt+d+o?=Vs?)0rJZ?4h7#!3|TJ{$3 zu*wWsDJUpD>I?ZGJk-28myoS+ZD(mFkbY~)Yl~=v^H++<!1QZ)t{zR++sb|y;tj8y zyGR33^~-MebAwNFk+J>LRlf%ui~SeXe+sgk9h!IhsRwjOP_0Fq6&t>z*!ek`t>Iac z=xJW~?7<d2vrEN6IK+<Dzm|i&%#-gWzLdC7*Gu7%z^lRWGvpG(ApX<epIA&uj*9RV zg+y6-+hdj$oPNOy?%^6xe@y2MMZo-Y2NI4$l7IX&p4wU3cC*wJ+Uq>6%F&awXkISN zmkpzoV>?8(O{Qy4|5WNTk4p|HJ!s0+X4eQBZ}0uk;p?SBQ`N!5bS`%0G9egQdxDci zj%pg@FurfcW`~4^-$PE^Mk1)}o=o-M|D_(Es>{M0q)NI{+$Wg5uy||#)}>nidt4Q} zp1)9!y&px2c4d^BJvSn+uN8V;3VGmO&dF9-yl~g_5o6iF245DhsHNGoi|BPL@5=Iu zdasa-wR91!5Ni3vCLXPiS1uig`ojGK2Kn!dLiS6bXzBI)<w}2F$`uwyRUPp0kug;m zn_V7b%O*vVm?Q7%Q(cipc?#ORs}p!0cgXl)>mY|F+~um=X<*&vb|ibGjs25O8WtAU zr+CA~Nf+hyJL12bQUz0OMBFPYL-T%UNKbo8F`JP6IOB~f$Ndt1b-OrY3uDl_(^xLR zuqL6)_fqJ~ACfs4yc#JJ%h%RBaWslWMg|6)b0*y#%7U9|b<JEzb3uFPmoi^D=AdmR z#?@uVw$0Clq<NyOlG)iI|HSiM9-aqPw3Vi;AHn=AR?^(wio8gN--tiX6?sgh%gQ7@ zb9{D)5WhA0y#C;Gra*c}#&ts}Pa!0_0c!p!VNshd^HZUO(ur5f>!k1~$A_v)CX}4? z`L^0ut&&J;H0m)%jl1$#?qiNf@t{zbFQu)WLsKW04^Qwf|FJtKrEv+P>L0k9Y3I4o zt8;zqiZz#e1hKa0(>!BlKCTm+cQ$%ivz2<DBko@j`Sxq7Vw|wy{4YFL?knXbnWM)w z)!CAN=?4wyP1PReS8MO;%BY6!*ZAvDRnSe$rMU;#v$9WykS={-diQ*CW>9yu_mDUb z>VI$E<Gx;%SBHzm?YsKr*i{3^Xq!#o++NK!+od`lamChNT3tsVB$?ervq>i7-iBgK zoV?1_tG>QkSok2U9OEpAr2RFS__)&BkPP|2)I4|^pTJI!3OC}%8Ior9{`2304`U*2 zYSm3AAFXZmcro06sn<p1{T-(KX$eJZZSH$SJlk{Xhyr=k!1U(Cc`)TEk<(EJ_s>Iq zuv|Ns%y~z*@eKf34M9CyrPZ?zEV3dO_b)Q!1f4B^rr(-YY2R4E)uWZ4q6ohY8O`}_ z>mrp2`z@7ipw>CF6)VH^{69#oS7xug+!4d*I)(s(>uhdu)*5oS(3x8&rzpM=p>vLq zuguU%^-}dUeyNbSu}waFQBOyFUcLU$g~xGqCfrb*{&n)Kv)-_&wW*lMC37X0JJM(u z+>Y1ROQy^@YzY7rb_qD#-Typi=58;-s4Hk-ZhqGoIjWEpFKH_9b#`{AZrOR=2op|A zn44*w*nbywG9|rS<F$B1?<y829n`P$biz=AW2AS4e%M(5PKyyO3D5<9S~_2N5l89O z*~m&NrL8Ti{8p!~&c}ql401hHW+t+k^y-bSOeK)#{u7P+ssE~B)a7ls=Q|2)sc@}` z`;dXGlrW6-k{54AS*F>8-V&qjqsuo5x(v}4oM)%^^@KqAkf!>=%cpt~{!EI`(t8Fj zBY#ng2^(3M3BFN<#J~X%{7W|1txApu`BrOcgUy&(uoTx2<5Cv(`xR*zi_(fCBwhV! z4c%_{<m0&9&f|?9m~p!lt$thWuOymxhCsxZ;pOY$;+ZUJ^4UnCHpu^Tc83-~(&l$| z{`N@010^D;@*`}d8-=*ryfkk2l}%S}7u}JmPiHypBfUiw_xuEyP;g55)0{2Juq;Fr z7V0K>@)WYEnx-c2qD3S;etLyhO+LR_@$Fe=Kgwm$I(8rReP<(mN?WJ>qkd<_u-x(o z(y=Tp&MZ#$Z|RVg0Ax_#^^D*u0qd9F(NKL_pMq%l5H~Ia{|jVDOW)(7&8pfVBe!N$ zdeuvvd4+#T1q`;tI;*Dr`nviu8a};VwEQSi>X`bcVZUfoGnc-1w+)2tZP_Qk{eV;B z{y4UVV&vDOxp%Nu$U9g1s!D@jPC<t!l~R^FAws<uQ5*6jEuo}-&%g*7uZ7Uww8##k zGPlyznDnw{Kz?dofT?Xnfqo1fK5-vzYD#8ewjr?=sgSIvNYc%zdR)bqpKrw3Wx|{4 z^k4*g^#W16#+y6V8Qt2;U+_bx-TwmmNHNy0$>Z;E@zp(*Wp0OV6OOsr$ixLKr)&!* zt(w4HSiPR#l?Zf!moj4l2_QP+8Qk!sxOz1e0)Cj)cUUnT{5!mf+rFqb>a|7S5kURU zKzRK+vNzbleivxQxG(rKy_v5MVe^cADf0JxZvITHcA_lzWZ{V)C@8K5azQ`B%gE}d zvtCzg7aM-lHX*e&H^E6z3|BF63tGXXqS*tzVD93dFgD2wQH#+%E-9DrUVLR%;8+xO z0qrVelab(9NpJ?yQ-Xiy2sD7f?m?^BGo*N6KeUcVE06A{ubjll@1fQ23oC@;y@prl z=fC6I6ZN|#?ClvV_NK<JcNo#GirvWayWmFISgTWGOCLJ%mee+;3We@>YsyH-EvZ?< zFZXpoqXE<a>?Ac6X8O`<h|G{vgAQb4ZzXJqiOezIV}j-`cmU_mQ%RzX3H?9$tQUrL zA4w^f-@Zz5^NSUZsBMza)_d&9V9$msxWPIg`D2<%_g7wTXL<?cR2=S}6^+;hvZPyz zfe&O1U*ssc1W@o}xa0wDC4@UU_Xi9Yy*hhZN!$524xCITT_z9(cwgWmN7(y?$$SFk zuX6-{LvWv4Eqp6G1g$^#zk%Yt3;Z}?4GX)8zc9YL|Ne{jEpMv>&F92Rgo_QsJ`cKe z|8;uc4{wYnP-!2<D#P)`roC%(CSinrC#OC_1gP`?(U%F~Bgy76RlRZWImrGI_J35| zTmT8?54>6k6HFKiuT9nI?~q#ILelmyAXEu_0`fFQO`9#Mr0IPAf(jnJDcb^pg=5)c zMlbRPjotv~LYyDWp=soQm4`q`_CQj>NW|SaB#!FFSA$Q{L57EfsgdHu0)C3z@6%az zskOE9t$1pEXZ71Ej`0dVGd7DbVyB(>!hi6jC}!UOayc;V#APf*)D}bU17`+*o6LRx zj>Ojzc&A7STD%_P9~x(+S7rP~Z8pqn`zoViO*-<xAb&vx?5m6YG^U+z{S&>v2j_TZ z(JgLpcUTX3d+2~A^MriWF6a^|f%<Pyf>|>8A*-u3JlqD5Nau>gI%U+n3%tELqe4zL zB=ct|yUoCoRb*30!OqV6$8wH-dcx)OmM*pTAG4KcHXzraV;hOCuVPp-nX)<m22{jE z5@i3HKy5E)S1m_MYs|Xud@rQQq~$rP=HApOm>{o|#iD!Z!)=2>LXGx<5`CTR^Y2y+ zN1>rT2&^`@EiLFwvY|Vr?#X(ChMe{qSJCDV6ocb31o;u;@zr9Fu92_DfbN7-D~!r( zQVLG-zOWIVkC}d&Y4AtqKgbh8-_r8Zc?AwNvmAtNH0GcU0c#Qi8V=!phc;2dJ3Dk^ z-eeuS&OP3PETTQVSW$6mjQTW3wqLm37TdB)XO<8~c#x3?58M;TRUgodZWeGUzh(ff z)kF!9XwjPX9+03|+_ZiXRo0{tXJeq4BC7O&h9~*yAinr1p$n0xD$TOW8As3pKtYEQ zUTwP(q2gZd;@bc5)!}5|WJ4&Nn01WWR)GjB46M|HF!Fr@<T{J#S1c={D4d#iY4Ig7 zCQ3uMKw}8UmucCm(mMBWo9!U!$|ELoAr&ONL}*Lm!esBqg8=CmJU<w$O@x1))k!9% zg*u+35h_%X-SAcDGVHwG%dh7@<f5&Ftu#YYgyp$4(|7~Fc9FG=z>*x>@Noj^#l;S& z{10z!o^$ECdfZEwfF>C9Wft~bc^e!U7#wLsfRs^-ey(JK8gI{BGIgEIbn?E?3U~&f zziCGEJjI`YR;uP+-~VQ3_8j#kC$qQd`G{47c}Mr(VZc8TJZJ3;44>~mqGHx^Z8xn$ zOSt%f_hbbIo9pz?FCCTm%u9bW%lt5VJp+G{KC12dER*@lpiBES30?hx_?_mSi-Vr4 z^F23Rwo;t1SvJf9AV=Mx%h2MU*Q+nL@V}#YE6me|YzDexe!LuLibv5a_DSCDzEpP0 z%hA`iLgB{$v%{m&(0{N{7*1VNBI&J21mADRL|rice`#3LBvO$n+jTFZ<8%bXu291h zX0hNKwih@bPkPH6=kn0^y~0nCAmwEV6-+PlMpTy;eUI4lSco?EMcy5-IsU=<L2K6u z<tU|O47eKNOB^^|?i#uy2-iiuc85G9x@;+`w4_A<2f_CsZ3$C<6T4OkyKqZu&$~wl zaBo~9bell`X&dONSlBMF{XWJnEn;C{$;q!y9@g(Hr}PmOb(ISsxvM7lkth<Lz(E+b z=BgsMOqEg=@-NZsw$ZXc*Cz-?##<T-hmB+$NVP{{x)CE*t=O9aJsp>I)(@#u9F2qf zHq(H7qpr5MyMtrjPdu!RFh_apkpoY^J&JSh{~gR9GePU-pm7w*0bztua!6oQKuHce z3qs&A?^J6IV)(^gI0p^}Dq-rd3c;CtbOo{S{uGrc09R^vAI=#aW|C+BUP%uV_=j(X zf^fyz#WhsbhZkC3`1UxgKm}*Ga&a}5P{!C8N;~w^FXK)6jfKA>JoYoRhXB?2AvOF9 zk*t1vq)=d@SB+fXVl!}ZRt1Z&9QQQ<w;!GS+%J0HsH#3)%5EhJ5hYH!NA=^i7c+>H z+2B&@Koq*`RPe%Ve0%+C_;Ciq>zH5=97K3A^e}FF`ZuzXE%=`)*UXZ-c*Qk)P2Jb` zl(t+rBP)(`eEFYNcvu|S^l#Cea!<mPKnNJ0q?4cj5%dp)&`kS|wHRt!9Kba$$aaRt zUZfB7d+`5KU#%#GL&>SeZq{D1;DCjKvP;4dp!OxA^?~MtA@dB4l4jAVg;BoJ4ZA&+ zp1HIpCKnCpL$fC$N}A`MaSriXbU)%-fB%8&OdYiyweIXz7>mp${u#Djp?76_%6Wg` z$qT5*+cX_4yInHQ0Ehgg-DI;G+ZFNjI$If!KH7bnRRdm9%k080$6tK9(i!T|45tZw z@Fw+(o2k1w^5pQ<UzmD2l<*J{m5X~-@vn2d<M&f;lw;Y}HvT{EP>BDTScjk_r_d>T zjqUAg(6E8%@<Xeu@Zldl6q~cXWq6qS&}8ckIZlYygJutlOOMhMZT^@A&?=@?W0t|P zO1EvWU;G8z&HU|iyhi^+W+Nvjfj9bb3h8E&MEZ8r1Tb?Er!-|XFf!qgL0Mf_lQ&>w zYRYdQ{g<B-OU>vEsHs(2!fZBE6S_P4Bix~M==U|+>vw~YYTL^5Z|d@MbcF-|c<h^< zQRVe|Uf(ObMNdYO%tUx5>XY5!rS>}k6FKpeby7%ra~98)Q5x~diS?TDg95ZG4SUuD zO23;G>86h_zvxT2lCad>xu8v=E~rZ0<Bw?%z2>!c&jdFx)tq5ZT*{^|vx9=Jg{?2| zI3bpoBD`P88KHTe#nP7I?WtR(=e<<Mjnisl=+t#Zho*=4<#0op5-K7sM>zT8u6MGK zEyfbsVuS75I(`k|*TmV;%54I8r7iTEu%pf^#geUFZ-v7-W7Fzy;bie21h^lkv{ctM z|3f{z+&LAJxrLsh2FL$U32?--SxP<+t_$rG?8>-H|4Ang2>9;3$HqaY*ZzZ~YJ-WW z#gOl+kyPRBXd<CkXqPUhG(tKPK~6g7_eGG`Hhn+&mN$Big)A2r4JFJivR=sCb~jz= z{cnXXM%S=G%Ed_FX62PVeE+3iBKuu?ib`ESqCiw9kUc3D0cBpa;g!xJNsebVZ+jGR zm!LJY6P>M|sWqRw6jF6tS}q%a2_C$S&rb~h;6u@^PQ!2Bj0c4A7oTyTMxG=dZ0mW> z-G)~-4h!w$`!VOAI6~caPdk6s6c3(Zte*OxtT;YG;~q7Rr*XgxXXn=NxY-&phxV+< zAZTR=_8-0<4_w5<ggF!_&)2Cfi&41ql;HvQH!RvsmC?jI((Sbf0T*+}dZ~dic}&J` zT7M($iz7ppbl%2F`rFNsZ#vkmCHSt1)uY1|v`-_w>knghpFdfI<w#kL%gE+LQtT%v z6fFf&HqV@%)E&=&EsS%lJbw5l+q{MWC%Zze__&2e)-_^aoyFXa!6}`6VwmgHc(~O_ zqY*H$>!|TH+^AINW1$M!v^>-?s)Tj>2l=}J)>ojSvN3S&@e6i*WzK@1_HPi_UPlg7 zIML0oiS8gl)GeeIph?hCxmcXiZfxuJ4>{PYETd_-V$3Mi6wDQs@yqj>Za9;h3#P&y z8868L5Bb<r;R6eE_)oh_Ax#cjzKiT?;(?O=5EY7TA=9VjSppR_8hChhr)16U_7A<f zSOs1QCF#I-V}HbN;Kh>BZi-eJhq5PbHXD1}KW^P%{hcu_@0PtpQfeeA-e24_1s}%k z&lQJ8oZM#_f2vFa`h8Z|$~`geHUtEBXL<69uUH_)7Qr4Pp&Pi_*L!%D+2qw>jaRTs z4@A;=R~w#j>EbLgwrLSE)&34!BHt9s71YR5%Y(W+F=Q0mcpw-$x%YiZBl%Wcoyps$ z8`W`H=7|8_fu|j7uW#>E9~^Gm-*NR|=NYAptH^jwpE0!itM?<525Baw=hOzU4Le1x zh!4<fWCGIoY;s+w->Yc1$HoJh$uQa@49QL(yCtF#Q6GkP;JkPAejavaVd3#FT(+;H znB$#zSYxNfn=&15cP^QKGtFswHO~B)Y}w<=t5Np;36}cLsjA$VO{?ybZ3vS#_RMnY zM@BY=DwigG4u#l1XETG>`SRl;124`u#;z4MA@0wYwL=bWr*hz9cl=Z@V#IY7-`w%^ zqjMD<XbB>2Tw2j-#l3W>yp5Xt50dkSDLV0a4Tr*g*d@i~rT-u!-8qNyd_51X)4kU- zb-4`(+qsU3<T+({DNBly=Ek;sRo~XJYBSxjF^JG{dms39G!R#G)4vh7aL{R5lbbgg zHlkhB^zTq7NXO0|-pWubF_yx&wzBUy{5Cnme7IWmj>;&9$TZAPMeYd32ozywZFAdy z8X!^%n$v3qC-hQ`E&0OV({`egB~3t<;D%#8<ymTObO;qD^g5&Hh|e7)r|*%UpSU<2 zXk&AX>L*k4(K^BG_0+MHaza_|7~5n=)K0Hn^Mfn2rwSfduQVKDMHz=EUEGbd&*_4l z;VZNc^~@)kR<-r(8_2l|U2OI$hI!}MX~Zv)Z%2BueR{@S{eDh%R4V@k?se44ze5CH zdnwu{w3MphO%ua+b%}2!${(C2IACzD{;bcv$ndC@W<bkTe5;JQL6UHmW+LQK)hrO) z8_I72JRKZC$v3~d1r2K{H+sT>v)^bPAy6xD*@gdKK)*$<BO1B}uYNbOdvEkL-2lA) zOC`~NkmLsO;~p?oIZd4V?<wyf3WF`$yL;yTgP4M|pS?X29by=8bNmndz2Rx{xf!J! z5;{85S#TdC=vZAN#ijCdsJK4r4!&q>jK%24Aus*Z%{VZuqJ;t@=II?-PZg^;aqkd& z+zziiJP;@1R?%q#A&8i*=R#?@_u-W&Xs5{gaYK_jU*TKtu9A%f#XW-;a8I;8N>$5N zwnmTk*Mwl62}5~(@x3H|(AhTSB`+@}P+U;AI34SSV$FV9l1&7yj!h*l_~*@VdYp># z&?t<onVIqw9UwZ={`4k<iycebJ^Z;a{8JQ61!%D>Prok@z>^&@=RFSFE#Ls`17U_D z59Gl?q#7(59S*Y??g=>s-HmAFXI5Zax5fNp9+Pjd;Z%}+FT+G#m#-aZ<9Rjbna2He zN;i@N!?w>}$%<lADV-#=@WKeX4;E0#_?#|Re&7=evPLWlMfu3=&gi%{;#+<hlI$NI zBRlOva>Dr{q)fVL=-%qGjr3H`*g0ZuVYrXd-Y!VBO;jmtu&t*xo&O|M?+L%f`{JPM zQ3$sQ^YuAt96v7Ye5F;%_KgEr)xQ>3z(FlbBw<N2X-0VCS-yMWKVV==JrITZncODR z)`D$ZGjxu_5iq{UucAG<7CuQKf5}{51~rt>_oy+SI7QMq;rC!Ux@=>ews^5BYxN|q zXJ4;}u6m$7D}*ef$9&9t!P$C@Vgv5z;T-Ps5ZTUuOo!lkZ;+~V`Lv-@`TlDI>Ki4H zoZB#u74;gp;Z{`9kj3K`hrvc=-hl{s%hU^#L``k3!an9UB=^KA+(@YjwfpK_J$~IQ z`ug^I@L@aU&%|bY`Qo+tw-Ha${-HXe_eL1E#0%~y3-N2)8p_t#XjV2=xtvQ0;%?Lr z%XUBiy*|%WF+rWf%F?8}CKx<fY)f;+CNA@Vs0SJnBG|BX-1(Lc<LY=)eANB?TOMOX zNYiCydmiDScRP9=f!XW3Ei<A5)p@q6`f^qJ!G{=yg>|(2agOG6Nb%wfX_Q|?gx<Vi zqq~64&47jU@_&Op%ecR4M;m7Rb8o1QIf|4&0PqI9BHeCGR1#5U`1-4~1Wk_x6C+q) zC>Io`TK~w9UpoS&^4!}n_?idDoRXA)Ozjp7{buW&wf51_pE?S5UcDz4?vFOvc@<nL zM#ffb9$^HYEla^1(x%;f9}(?U${#2f^CM8#Logw}>M*DxF{Q#&YC9&eBZ_3YNW4<s z;a@!}QC_yhO329Ao4QaN$)k<H;Qs-FzXW}8qOmK6j*9R;ZAhfgh+-$f2lJY7ifN`H z2Z(vbfV3cR`c;}6@GIK0B<kwif34F{sd*?>ga1~hbfb4q2PjTq-*pr*o{b|+oVRB_ z?@`L2c(e0#1QvB$ECgu5y0us+#FMH-KHu1vTRV1rWiew=$z@->?yII0j4NW4k&eR! zQv~QtuE~kO>rLcrmN>fzhMh=*k`H&|*K|~S;dF<_zaz|j6=l~4EiHAkM-Z-=b(uv9 z?(w?mg9>^!VK%I)_5wEF*mk@<xlX9=HH0>MrRFVFExN}sf8%G)^fsc=yyc~cH$yoY zOYigM=y>@wVjjf&7L0CDmha$CYwYgQ7p`s69Odvqn#hOe!xO67<(MSQZCw;w1I(Y_ z`(5-Qwd~oe1e&#o=(+(rd$R(N5Jw!cQCy^8GHb{IL}M23>(b}X5D5zrPbxKMHu!Dg z$b4j|JBajR`T(c`n+JC-AYXl@V%GHi_ErE(3?{}+7K#kU5C7O;Z8DEHe{pg-<TH|$ z_@|2zRr-^ppJt8)VCFeGRi2;XmEZb;_KiJ>8Vf0Zp&Up5Hur7p2u)&}a@NQuE}?BU zdx9(J^_wyym(5wDHq0&PHU_q+h6&XJwi%o6B=auMBF5MDrUvG{I=MeQL+Ydtij%u# zR^<ugPO?tkvXmuiL~}p0Z0Smu_S~m4{FnOd$-BqCZXZ=cBjB3s#+AC{&%|7$$+NkN zwCm2AhBtl&r}?;R9?0At*VWdg5r1cBZccLgEA^EYrLQ>6$l4OV2==UkUU;gql|e;h z0NXiYE8;7dZkK4J5q-Pm0deh!gpJ9k*WRh}TlW_3MuzQ(Hjr=BFLeCM;<h|tGLpEG z=N_x!QCB-P;(J{uFU#10=ot52PWDe$m#>jm;IH4%hnfZ7He38}{qVJzOV7@buDuzp zN!2Q8bBjECT;a=n4_`3LY#-w1zR6mS)j^gUN{Gv+QB%zHxhD!$A;wZ|+K^KtY_m2d zZcx~>?D||-6JawqTYS^7t!&xsczXJ*GIQ5S#6W>^z$s?br_fHBEk=EqQ{NtSg@J)N zNW`2!Glxhkh3|cKCi3%j#z|qEPuU6Ls7<#0<X6XJtme;qPcU5{uXeOYifHP%)H6~M zRT`FDFO=U=o~*AOF*lo?)*-8{EDxzmC9g^}?uvJ9x$$QfCl2AZJ-4KpziH8=y7ML1 z-1(}S3M&Ou?Ljq=Hs!)J^Rv4$!q#7gEm&OF1$i}j`ohiApUTguC#LbU$)#ehrX^hk z>{d0RGfw#d5cuHw@4)H2(qRPRQgui?>tyA~6*na1`+($}o<owwFU+Me!)3L9m-#Io zP;G>V=%0IiRC<d)xf?&Yaa+b5#J5J=i!@-R^7H&vm&Ehu%L6~=V*%pu)y_!SlrP~= zI@xy=hke8S>VzqWL&Y2wLbA~Y6M+6_3hfy4+&7&p&^NX^8Qu^|>@qc)9yeLKpMd@2 zs6nPVDtlQ#tDDu%u_-~#OWB@<<4Hk;=ch$ZaY2uAYtaQEdIiPJV-?<4a*(C8(qlJb zvi=aNWk2`Kcp?iK#se&d<%6GOaHu3QJJkoqUQ)wA{{FyIHjWWrA22>1jluc;nc|SI z*`iSDYQ96C#P#xSf$y;HlXw|o6Frr>c%I84e{qTBh+ZuW-JvO-{4-8++E{ySWudi$ zV{r>0LZK4c9REQE76DXE0FvzTl3rqnv358j?%6pE9!gMq8i$ApBj;KVt=`?HH*8qk zQw1yNtVg=Tx-r&ffc6+mFm?&O!@RO>W%oVpw6PofBr3?3bJBVS{d;j#yhDZ@Ya^c} z#nbE@wSnWD18TH^?-6$@3-|HTKfE$nn+I7HzR>=`t28sqVQQfJJ>Y!#prL<VD*X!? zj7do&NK7n2g)@7iA>86C^cn#WRk{9mE9p|y?`k6AE^|YUw<ce1F&HaKgt?XF=od68 zX6kOx5fZefDM*^%+1hlCk}K!yJ%cgyUx$tgRJ0cPcTtT~&3}f3Ka%^E2KF&8v~C8u zN+J)Dce=#G&P2*Ayduy#BBH;oOc0~osayF8q6-bZRy7X@2jyp7j~p3ZR;TSOWPYnm zxwB7S*EC$$OE=z!;Rd&D7(pdcE-51}`r@jM^nUu)2(`CY!A1(GhPVM{ZE$->{PLeS z-%pulo@T9E9!Py?m1@YPaT#fsg&KmZwE#^fQhHm!=PlXCu~hSo{l*zrj2&%BYvXR( z-eK7f)hCB!{Y66`yhJ&&w6&9RwBsr&_Yrz^W6M-<9t%u&T=Yh9<=L_0nt9DIC$+_B z=Hft`O*>Pis50!bx|^?{5i~}HqH@$z^j?x0zA<9AVg*SS12yh_hi8ijF+7?xZ%V`_ zoOOl``QqNGWezj*rMTo`w+*<nzc-=Cb^WmLhckW0f4u5@Lo(5xo241`_@;Tp^|b|d z=8rorZ>oniru99zLMtyx=%uLL5{>!jsbB@8ls!J%>W-e7a{t3s`Z;McHb#?nA*Yzy zR8yeRNw4T$V8xC4br+Ot_jB$^kk0^Oh@0X%NxT&1LXU<bXnwMP`dJ`h_ik3y)LfS* zN!QE*801yV$^A$knMxL=?9aQw5*b{77#d(-`MkWbw4zF?ie;)&x2`73US0f!>8_}V z3wPTk?=yi1taeP))nMqT<G3uj?XTwKzs(Qjp`ZMk*~Hfyucn#OP8e6lUdwl`Tc{1b zysEPbg9~B7&<^>*^RdA8aCt?2n1ett$oI<d;Crezx5Rb1FO)=MzsD-Bh>O$C%^VRZ zMC)tm%CT#6-JjxD_6cKq<Lfn38w}HP67+)RA6f*#4{nPC_Qh7+Hv3#p`aA+7s*vaG zu~Dn%$-q)|by|}91MLl~rD%c-xGHJWx@K=$$K;w1m$@3*t338yH|f<S&v$Z_YFYjS z8Z1QW=jFhkfmEGCNmM)*YE?QrELYO1f!_9laNFQ?2k<D@L(||W!8C+-;03>;+d0ac zSyt=CS@g=K<tRw(B~ejPNh0%j)#q8-#}J4AAVo@ZomugTyiZ<JmuQ`}g~k2sN>2*O z>r&(L>3qq)47Rw0SElfg>~^+!u-Ld{Gbu4TJ@AlOv}Zjq3g8DPR%?~1newGCh<U2x zi!kQ4dW};$+{q+Pgg0`QFw9-eu?LrI;Rzd0{YwcLGb&5)jeL!THEAZgu*lNrvS&rO zmmW-s_@|!)kPU)%_)wYRxg4;mmtJa!9OaK%a-2n1{XOj=fOY=PJxDo1(qY^A-_yCy z6Qj`%0<QkiyhjdS{1=`EzAi|_2?W=v{?D%Rr=KrgmT(5Jz~G?EP(UoWfR=s}{f;`z z1;0NIjyU1quZWa83NiTdRBb2#Zb362#IHZC>t$a-E0?SQ2;(B=Y9cC(0?UYLkUs(e zLqeeEjS}T}*we;`p~a0o1W*1S8qR*Ih{1{J6K>$w0{<TkAg+yubbtCF>w=^CRBU+C z1pZCmHkl#F|L_`w+Ohbe_T|}a-uA%CMD7}}EeEq{rUw!ez4;GK3~rY87<w`2qE|&o zzaRA2CI?3n&^T$oh8IXH5w|4m#QD;Asr*pk9F-R&@}eXpE_m+yFz^JIKgvPy${&7j zVhz`pLAx<Oav&2yl}#Y!GV46tq;C<cAqHL8M>c|711P!UOwWV>u%C5zf}J1f{FqEp z61Tw^Bq*-NeJh3ENwV(Yt5;tJE7^68R!pn}cfdSbi{_5-)jSvR5?Pec`KK;M#zbc^ zeaG5~u5I#+Kjiu`=}Lw-xCxG<crBaDyDolTwBA!o|7&>lyGR#ZgKi0Y%0R-45C~Gy zmu|6h)PWii?pOw?5z0#ZBkXc&+hvLwRx7KgV2&kNAeJ#aTbMZqwg=>L%vBMWuj`cx z=Ch9L52n;P0jQQq<zbwF@lEQ7CgmtNXc{XADSsIn($Q~VTC3kSF%Q8IJV+fujRZYx zu2aj+bHF@Xf$l|+c}uv#+6$dN?$P1x*2Q%B-&jIO+a87KosV}F(o>V!7=_I_OI65D z1-O9W6rsP3rS>YHTB|rp8grG!w3FW&M<b5-j;|A1*RukmdCAR0&02*klLmLMKU4dV zaK-(@r}vZXJRhh_{8-otFe5C5!6PcP$IsVeXZcaV1VS-%gc>N;)6U_g?Q$1vwKb1n zJxsI13AkinX!p4PLjMwGl~+b})a=PYQC*HPfftwkXm2~8!}^0Su`i2(Piz*!mw~s? zpc3F20FY}43JVCPB6I9k`xTCui%_V(*O3iITWxPJUu;cY9+7QgVU`!<v|*XU2K6Ek zJwyR2b{)QN2&%?j8K#P`^|?NtrrBK(C$S;OAb{|Juw$@Rv@zGGgCB{8BaSEtFl%JP zCkFpX<=j?qkor&zG`@t}{cmPbPAIXVs;(wghrf>Uvxep)<le`4DPbN?usV9kT?|Rj zx~iJ2JWDkzvOr+*Jh^TOiS~&q0$0bB4_T_CJo@>H@4tzv0*Xt}K!i{AF06Pyq+%Kv zSclG~I4p2jTDho+(?|$J){4WNY^($>FA0v%q&Fd(R_VMM2#V&A#$n6pU(#Cc<l)Yb ztpr^u?vaXrmB!yt?LO-vY)#Oz>g*yfM&|Tob0$^Dv=1q^0M<e9AgsU|qh{XRp-i;O zb!Pozkid@#^iBoCH1w~TxDQF`gK##zCNwbQBf&vs0jmV~p$b#JhDwPM;Dt>riDeHa z%zj9P5%Y{9Wx6olM1kAfrZ-p94bT0-7?p9!$dyxP%S0nSW8VoWblWt-dllfd+}mJs zM2DIga{ZgydI4v&)*L0#FPV;R?Y1CPKBLU@jj^`m<}y;F71@UTR(c7OmwvA}q9wrX zR<2fUG~)!)FRdO#Rd6?92|Jf|mT&RA>U1z3E?*oYpg60shTyjaV|h<1UzRnz<&k)x zSIQi)M0^9}6M_fh&_r`rVH+EVFAB{<1`Tz}nu1CLOq?1A^S5kX#a7^adz&w+e4Y$x zv2*GQCSWNNY4X=&Drk?uG<q>O_VV&-<OBtn=)K~-e(JcUpIv7}&@zSqSX1+gC9dOQ zyfGUK6pXp4r7+#wgAt#R(xUQtXsJ}0@fE-`1vn^s!0uVyY9ql}POl&`@Sm4KzwbCB z0>LmaJZb=Tt^|G_xgdOqEWwa#8A<dx%hdFo(;gG_4v3Efceo2csu>pgoi_AbK4ckA zVWlBt1b7D9J<zWXOXn+Q+e|PSlvQzEHcwjRkyYCq7WSdL_?pF7QGueP${&LQ6HZZ^ zV~pK_Caz<4>q~#_H8K}m^FYm&u5Fq+EZx!izIWu@I<~WI4ciHem&s6dqjn?xJe+}_ zG?W7%;qLsuZRbxg9q%G>X0USVHyzI4`+;#JS3B7uiWCHQFU&pg_pb&Hb?4Ar2UKbE zt{#>96<gD=`E1P?g%Bu7@s_U(4h|Z^b;LPEAf%H?5v5ISsg?iB#Z)|{w9jY-sFbZB zmk3X*@nCeQ@*Q>TS7Jzyq2)y#xkGBI_0rYq`|oKgYP=boH9^0)TxgH}=_kkexjlbJ zE~uZrQbbAIpLRl6M-*KGo2jy?qVY==Rw4+efF8qYWi%2|REHE(N2dMUPkfS;o1t!% z${PNA78{A65>)uNx1F{?ef8SG_~|-UpL?Hc>puu3y0JHuOE0+M2TUM%crH1eb`Iqq zg6`HlcfCv#BO1OQ8`j!1vI<DN#@!#~n{%C`YwM`9jZ}kAZ9Q`r0b_$cCUEu*4UzkT zGxMX?Pd+_D;6Kmx{KhY_FrFQGJwj|EUz?K#t_x?E>#~Zxq~T9*SZIQ8;}vNm`~lfj zk7$(RN=|bJalC7%He2b6&Slol3Mx|^T9z}i<$judz`$##yBpCRc-oJYANaupoHztR zLs=St7TeFu_?~lBJuiL!bG7u+*cz(wAhJIcbBn4o0D9LhzuxM>V@<mzjkmW7mG-?X z!K$AS`Ls5=8(<*v>tGY|vEB<MHY7i%L}LF}``QVc;>TAeP5ztvt?mErN+oX8Nobp@ z#Q0GgGBB~lK#0R+m5){U5~|GeZ=3g_Naj309E5ZDoC&Dvnj}jI1hcCgk<uNv^3a-+ zx3@I6_Z)IzAuOC>?<8wwl-O#vYWb)6<ArC;NX;};)NJn;+$8gfieFt>#x$vd6>b|1 zAk}X>r-}^fbv~&#DF1`Fm(hpnTk2lLU3vYkgw4t>n(|k5sXTf$Yq-S7jBLM|82!xQ z^G?G;FWhmz?E|JwFUhX1L7!6mSqv|dQ8vSQwhd@eaj+WlvTo@BPh?WvoV9)U41=Zu zyhe1p^o!&EAs0vxdzMXmcPu1!oU|>-&$>im9n^G0Hv?AuywS{}P=4~;v|@guy&9{f z-goxKM0^4o%%Q}zSDM4w?d^R1OC{sq#(CJ<q@f}mR)FGT4!l)4ncLbSR~G1g*}@A{ z`Ik4od-*q>GPj*aOgB)XXLz{U6VBsOnEOi8be)HG+h$PBn3##9bzEy_O)0i>@8gZ~ z&zY({vzuGGgmR#so+q8l%3SYAB5h_Vz&Zj54j|k6gn#cgGyDEZ=fl;-eSZ`VzTCZI zY3N{HWoQ-371li-mx3?WFY+D!80z<tcGRRd3(dFIj}6BX)UtLmIBg_e0(=x<Ng_Lc z*y?d?PO>J65tF;FR`}i&!*w~7adlWw)3bx^JG0e#>jZL-Y-{{p=x$xsoy1(u{F;Ur z*;N?>r|8IJbyirgmc>%~N(G*IiMIL!u>WnFc5K;)4}a)d@mg@OdNG#DxCL^J_`V0g z>lTZ^>Op6Gzk5nPHoq*}t5zVyCeh2;{Z+rm!pIlSQrYgb-`FUE?tnpp<P{Pb=4!?z zOG--96tCfF5O*dkgoc9My4P9gZtT6UYGj$$%+u)|gi^m!;&`mBl7*XP*OxP-k9O0| z$I_gy4YZ_Mzm{X(psk+61cjeObx+TE?r7Gec#EZ<e#;`I-MU%#)$Jt=K5IfjsLa@M zEh|YC&`7;2dcf$=Yr6$qhBtP97lRdoio`pdR?U<ww+p50>LEEFVbG@E%Ui>STwOX< z5sA+h&MyCO)>Kz_d|BVr<iVG~u4!y9fcT2xi!InOZhFK+gjYVU$S|T2IfmcpB2rYa zb-K0ZA|+$hS@$@;uBZy&XKvB`ruUJ5*Xnf5|MU;3wkwkSoo1fYa8J1h>-LPPy5fm6 z_?uT2&OrNO>V|Tvzt~-2?qEKc>x&{Yi4jae*3NU8S2LBTwMBLL?^EoaV2BSwzDWNw zQ$$ZGu#@v#&v?{KKHH4NEA`A^oY*6TQWa1X;{NnMRIDbpGWxHmwpB!trG1z<eu{JG zj+}TS|3`Wz+r5ZVpeRV?5{uNBj9elKWuIb!Foa&WxkL82Xze$($BTEIqEJuer^w>_ z1(_Nt)Ey;YqyJ@d>IA4{USv%_xNUB}Bf+&lvh!z9#p|mX0<kVK$1c#~;v_3Bkh#(| zc8PScfcx<W`p&Q{8o~H$r`i)3?FmGJLz*$$cOwGAw>iZ<HYLb`98z!*bkhi_Wr?Mq zRyl5KxI$d}kv<&EdW}23K2LSF|D5ezA(NCedGcs6l;~@0wOG4nc}kHZlOkhyA|y%P zar(tK>kVNYxodJ<NG(;>``tEsTU*Xg#Sf^f-`oz!Wu{z$ry;Pgm8Sn=>8j(J`rbb! zNH-_~qdNp?ff3T(4N558C?SkcKoCYN-Ha|lN<@?vq(%rx3ye@=BL>^&cjx!_?_PJi zclVs<Ip;j@cz~{UU!xb>Q&LL@>wWzGopSt<-y<lsDd$qYJS91Xl>Fm48pwMG)Tx;K zw08WqFNzU85*=6Of(M7S`tl9=u9FohaXT?9jHsHGNVlg06_kY5Oz$r@-Jq%ya!mov zGPw{j=$%zlmGz*B;c84Mwy)TC&{sV;{y)6uPI!c|kpAf>S8*xFM-K0-Dq`5z8{eeX z5$+7-ko%2xM@Ak5B<pLhflou&{$yfwOqGltF;zZFW0zV~Zn_kT3sgDR;mUxOSrVnD zw{+Q&Q<n%wV3muVTz_#O+>#4d^Z3<+=o!5n*FBNZ;*(70KJIg`2!E&MJo1eDJ(J<4 zVeX!S;!ii2Kou`UV14D!2WQ+Nw4p9nC`$&V$9ab;X3k+CJts6Z4D{D=iNj0^QG8W* z1*s016V;k$?nUP46<1@YI?y-Q4sHV2;mPl?O+P@smyqC?ry4;HF~eR%hd)pi`6Z%? z@=B=>N9L{ghjugXrTa~u8|^NUzt?MQze{+YTKl!UI%5ZPS0*WDyJ~~y4dln{$436d zR2E6FX(WUj9l?<?Z^94t(^Qk}OJq555;99FSl~FhMQWv0``d_ihr0SI9J&~8qG6(! z4x{=Y(%khaP;)_O80h#OrFFg0=G;&dn%d}ETD>vreKKmmk#c2utK2_Q4E%N7dTk#J zI_iBdQoH#%s!*9SYPD1NzVK7o8|d*(Y$UMq%6|#5gPz=+M2Y`F@a4=N%;CfQ46~-% zW@};V@uI_cpcgMlha2+Dlq9$BKCY=Ts@B;C9fW`GTUd>$CixLp^&XDmqeu)f{z6-U zhkvWdhkKc#^uufd_d?B2?X9N49!-lSHhO|vxi(r2cY-E&F@E9kE#Hfkt3$UcwiO57 z;t|DsX?8XO86C5)zLa&eXfk|1YM>PIFqN_5L}__A_}!G><@zE(fH_}@ZDCXjO=1bg zWW=8;B*$<a*xB|EqZfcfRqwU4Bp%SM#ISwFe;K`)v-2O`Um3z>j8~(2G3;`6EfxaO z15)8Z&uh~Ge})eN+dnnSfz{9j$MKwgy42kPdaQ0{@>D&oZgh;tCwwL)Pn&@sepa=G z@bh9tBozw<`-vm$Xp{u6!=-hXzIYw4V5H6fy7>`E1EgGhVtSy%$v<}&4kU|eu-!jw z^E@vg?<(YT(aYiu?AejH?E%LY1~7A3#T{T8f$G5_co;{(xTf|*ci1Qad;D~RHvrRE zxg5*C8bf3r(%5NmxqIvfK*vDI^1PPXNqug%kyiQ*w%llH?c~UWkx@C)X?J!ot`aJX zcNPFSpFg+NxF7CS4R3G1Q}bPuA<oA?Hh8Q67p+Zz<@#EYbgsZ!`hj;HN9mqP|E~75 zjjDhZ6Wx%(*y7rw8o++@T1>O(hyO|5{q>iL2qj0pVfJ`dzRk*!*C~b0HM9Hint1fS zwtRkYfP$JVBCGBDAD*EuPf-!z-~KYF{%d?R@+AAMfvP!Uv?zJg=JpyCc6n|0BLBtP ztJH$b>j%?TD<M=~zg(W-y9p09aGCU*VOw_ApsvQ^J_`D`NOTXG&T32FaMiu3NT~-I z78|o?HiApRg(`8_z7GPs0$oVN)Pyco*E8E%54tw@oYcoW@u8`0EC~P&ptJ=5lV2*W z*jK=e2<N8Z?bPg5j{_A#jK>VVGsB#HNfq0`>kwfK;5JPC!bn=_!OWZOW*M0qC(Jse z<Ko$6co@WN^K_rk;=Up|#?J-Yv9Ow36Emx%Fukqlm;i1&=UaKdhA~E;K$^OntKkY4 zHbNy76lr)Hqo*7nh)FU=Aq{{a`j<u9@9yr_8_}uBIn46ApB7SbpU{&9OD9tPiL0mE z#{p3>GSbVrbP}Vmz)(O4Z@$PlWj{)D`^srY`A1=@x&yxw=>2J1m`Dh_7NZrV8<Sd* zLaprx$UewyyhDfk2^M4=MiS=&d0N?TY&BVan?}B70}fumnJv4Z&et@Rg6rSnYo&Y< zsVJ|D9trNws5rg-fw~&a9(hnpqeY{I?wd30`CQ~zVNZSBC1V2F*J;MWR?&UHUaY6s z-)erVB%_FoRsD9YFn5tq?ru$Ww7hl+^ya4qkIaYuj?0)zA8&KhxXC61_mAmXiqScl zobD=kEUrb;r!dnKz*U_}u)O4rvuA>h&~DInO<lH?ZoB?~{nCm6zScT{0kXQ9s#qDU zTv!zL=cj&EsRl!sz!fzLRBXuQG_pAm{u-#ttKCL}o+Dyw!$<h>yL|op%IP7;=<5aZ z5L>fqn;XTjaAFTmkE(K;XEACIN7gz#N-P{B)sxB3{9d>ZB%94~bVYcOs;l@z{Ma+@ z*)_LhJo7kzZT^+)ytF<i%ax;g(A+>qq1t55#ly6cQHU?`OsJHi?kRqZ%#&vt@9jER ztY%Nyd+$!R>+!8De<duDQ&+7vPs;I=W-m~c8<Z5zF^vMkyM+~EsMNTZ$+)l58m(Lb zNDpqVFU&bI9Xm6OrUd`PbEfVK@$JH;8lsl^YR0biq-Jyt+8&Z{85KGA&dSnK$Wwv% zcp_#w|GTV-osoQFeN%NjYoX4gs-ampV@P~XRsf4Uzk^Cw@N9%YN9*2=0PJZ%MkpFm zw@_-a*ta56ZOYHiQo>8Z%spN_pp{WT=%gG^k|a3$D1B&eom~vyshTrm%>+aJfr(5r zG?>YTjipvwiJm&6_#X9RBaKhbkNk&xMZ!guqO?aP=c<^pq&Dw3r_2Zvx#hOYi76*} z>kvicEOy{&mw2*9{itZv*?n^!#`5F2GW`vQ|9pV$2@%>~i8#{jWbLJ^|NH&J^W%i0 zy>bS*00%v3hew^AqeeWz>zW+5qRD>PtWfHE-<q*IO5q~C^O}(0bMf|`UeDPI(+g@J zmb>I^rZg%ny`&sD+>>$}2Rhf^Tz$p*JRyB4!YwG+keB<GTl@=_H|1VG%hR*$BUJ&k zs{Xvyu3#Ia-1PD9$NaI(Tb7SDVTtVJ@L*T8VIQ|ctKc$ca%@hvu+Y}v*o?+QSHZi# zgo?_TSTfb)U&Zru_DuyG&VT8cosO>Z0CKk#Rrw!pYt28l%nFGPF5EhJ9;Ij1<u9Q+ zM<;C0C+p%HZQPm$0K7byk?v<zc?i3D(t82CTSV^*@a}3Umqf1Wq`+9?zTNzi_V`$J zqixGmOI*6Gbpq`e4+Etmh?blF;^7+;b1cKRv6@ZivggZAq_+eFXVS+~JkfD^Q2nSM zotqyo?5#w7G&jB(n~w@Brf*HKI(cwE40~EvO<SAdJC7HrgNoE*biz-CZOwL&b`6!? zRt7!Lzlq*D&zzz5_b%*uTNl3iv8u6u^ubicv5DophK9h~oEqYcFfvB8yCgaNP?4|V zczZ>pqW~Xy?Vs159gD%mnntiw>A9Y}n<KMx#+KjmM(V#C+bd3MawjRg&eTno*K)ko zST&GL_i^bnd!&|X<RM4T;YNkk(d5;zns!dZZ{t>OjncHsh3|BlmNPspMJirt>f}ym zM^2B}h(hvXg(wj@OLGjSsyga%&_F(~X*MGBjImKsHtqCAD0{}pn6@kNzEno!Lbv&& zlkqnqbQ)5ULZ1Q$4n)LW*-L7_BZAZe$Iy_W5+*Y9UoqPfeN6ntlQ_YF37k!(@=!Aq zLxLjH=)@J>_U)f^_U&dq!Pvz?hH-e0nTg-zF3#iKXBeoaRcU@M^$kPYVG@9PDo}3R zEV*J@a5SeAM-a}9{`<ab!b}NPcO^BHq!`AEE0S58TW0_&0pJ(xalh{z%WTDp@xcIV z3<&4~0(_!tJ3nJE+6(17$M)eWf(H+#P2s{}kKgvxmCJSa5E~Fl=y|SVakm?L-pj$i zz*EwgIAL_9lgh_p%Sh>Lb=tu<oIZ&|Maq};h-ScPnyGl?Y@@BwwZxyryv2N+<$xW@ zOgpo#P|nkt63?LLGB+*%3VVlX_&m{gUHp5%ULlzBxy)Gtvmx@cYpNN&<N&_-{m+>$ z7%`vWwionxf>R0Z%Xu5$(zKgEhDk5GJc>TD?D?=}p>(WBcwXl*)0L(<rTdG4Ie>;U z!s43MsJ+l;q0*Ey6ZLcU6y@<Fd*8!aefzddm)1%426_Xa7iVj=WILx_qz;d!#usc~ z-0eo%ADMAeYX9N6WlSi#aZZ6aJe2|ZU&;5sg&*Qt=XM1IcPPyJ4c7*0=_X6t`}LX( zpbI8UyT6vq4SB52kr`~Qrw7+^qYRr7T1QGWVwfYLPuOkx&EKP{Z@+}ir$W{=M~61l z=Xr(FxKu2^Z+qnv<AKT&D^7?@r!9`km*jK=Yje+F->a8Nwn=NTBpqjF4Gt8@BSvX= zQN?7T5q)Acnma!m4d2*qV}NqeD*}OV6%8%TNl<phr15A<O_5~o?Q9Kq>+Ov9_|>oA zWWR<hQ3Pbis;m*m(g!Me2qmGje3HKbS#y_UlZ@t6UUli~RXO>*ic(8N>HTzqmfi6J z6@m(#+td;Jzj&VeZj3s6Ial5vHZYUgQTSw5Zl*X@cR*)4eeabT%(3AGQS4270$|oC zlha66T~-ZCcTF{v=7cjgj0e(QfzomH|B#V0PX1JbewhyN77jrO{!Rar8B3wce1iv& zcYzw^g$>VRV@M1j*+?W<a{`Kk&r|#>BEvYa@_<$Y`2K#vG{xkIAkiO^9R#fxIl!?s z6ww0EDZnLe-u0c^c9!%*$@Lj#YpaV8GO2XiQot)pCIYCFfYb~y!0i$zq&2KA{8+wb zXh9hb)4r>@dZuLv%SV5m_}*;M+^moQ!rfC$CPkNw%$7G*!$yF&POHekG(kVBZ4y7x zPEX*2EQ%kEQ~x*!y3ehojd_&itvH?>dxI50z&E*Gi)1dCkC_U3RFq7bjHFtj%=U5w z<&Z53ISb7MH#j{7Ou;s6mb0VCgf&RVz`@Rf?sHqbOG;AKCHqQTNcZXjGq68x3K87< zZ5_lAoV_XpONw!<elV)2eHfy-^oDGZl$Lg+Q*jY@H$}LVc5>zX;Z(^BuZIX_>061I zNB;P%nZRA@=^rM#x~t_9NEk10&{SYZfb+I0?hG*Re%n2*_^3?cKRhP49>^ykv=R9n zw6z|3@pG*8wlbMIp5|%p=0KU0jpvD*tPF5u1V+U$L~3i`hq<044{V@>D5EiC#uaQw z8wD=G#W1^tg!Xg}g-H^f9ECZ82a*5;eR&MB4-KpaH;~>4AbD`CM?+xO3)g@DwRv;| zYF6v!kzreC+kXiwBn1PMt?e+oC;!Gc!KM?y$}oQaio<$IPX;HTKz|P($OR5pRa7^= z;|@C1^FTw){-GOXA)tPlE^Gk=2M{-pP-PfZEf6hjA-pi+xZIe}7DJRdB1^omc>(Ze z!~XFl0%4hOpR1ki80^<w1TICvD&np!(KKO%dvZ7_X4e}n!eixxeUfWG1n!+J@a0;} z>4h6j*#}@bf^f&0S$%Yt>=8yxyXQU#hYbP$5h2@0kGZDL?ndOKXPsKj8pBSo%NPjm z5107xQdT?=;96S-`1m-(&fv%Xx6Qn_($xh$nYcBQSFK(sklPc41VjPSGF%YYd)Aa9 zr^k-93@lVlb6Gs+=-|Dw36IienS=w^CBGv(QS|?WnOp6TD~C1(G$<)LZ`|&O3UX8n z-(@(G5aoJwD?5bFoVvQb6L|dTr&qKZnTxslBwj~9+kVTSo`dh&@?}pvd?I|nI8(Xt zo3el<j5U?cP@Z7*;Foa4ABEoU>Pn730kiASy}de5+pt?c4pNLXSG<AK_F5j|EZhRT znmsk^5rD>WIYX6Qo!f$iI78pnx1Hf+kbYZAf7P>)hy3oHmJCzFzA^&b|MhtO?cvdl z;8O}GHd4{MoF;0`v^8G-B_6wgf=&70m&Bjjqa!&$3s@Ux?Gnp*7YpN;mGU!pR!1}v zi83$Q0k_;35k57<ei}(Gx%^DohUGj3DQGIl*9X9NLy`sej~S8&-rC=eFZa{l8NQ*$ zktz%r_6c~SO&Q|xRa$zZK?lV(fX?CImx5ZQw(u9CKs&hh&bcCa6ollT8>ODJDw$}Y z3TM+}alaB7-1i*|8|V?uGCiO#M8~+6^LAKn+`!cEJmuBM*R3HrwZiz709{^jxPOsy zG@&2j32>D)ZnDQmM<qc2d7bXync!lP$O(E;cY;N){X@|&fNx}WC6ep0#;L&b$O+WD zt8Y#omz{$$A;1I508oP8(5DQ|@`$CK?f>wGdaoPOwAd?JTT<_+^14`=cfx^lQ0*G9 zCfgn~*HSJ*hihIR{o`eXywm*`6Ajg<|K?YIe7H;0np+a0n>aC}kr<eS{-j}h143Nk z9ys%7Ll2wogIS&csf@e4Z{xN^`}sJO<KhrlTt3+2{O+<Z0L$euRcrY3s<EjCj=znM z?Zw4cM)AvJzFclGJKH+D^uZVl{)55(zO7R^U<~;yIx=(!vQieK(eNDA(Pk#rNYeIy zhB=78J`3~4mWfa9H)r?=wGNVFzRD^~nc~lX`47+alo^2w(^vBQR=h^EpG?MBRC#pA z`eUWzqHpy+0^koL;HAjwJW8*#w=?n4m51kfGk{8(w}YZ^hg{&V%$ffwed`vjpki|` zg#-P*<#XM?26r$P>5~B#H7Oc;Rpw5`RFZWJj@(i&Is1;D@uWW7sMPjLasReGqywl; zd<24IR+Q}ylv{fsW5Ud+TwSPI*%1HfhPLc>{=E~NpbI{>nB@DlUYg!P-^c&3yDb{v zPpr-K;fA*|Y9ofT;TscS(t3A$=tLZ;)CY2iYQ#U__fwKsq}9$g^f1<l4+wq88qQDv zQT8aJ3E7Ny&svsX7=ueV<x*r!8Wv0$Hg~Y9&Z<m1UrvxWkd`gLe}hu{!nr2Ei;W)z zNV_rMf0}!J<ad~8USa~VuBVm=LFUuf(H&E32QD}_;t=6G9VHdr2&3D0OpX?g-(vh= zKrhXI-T)gKuZsG_rKT_+jC3qB28|@Bc^{|bXm3=;gH4{|t)%1H>6O+HvLp@hsWc*6 zwdh4(g(J-6-a<^j<S+vdKa0y`O;TVp6d{lp|NMKKw)gT0u^sElKxOXlMISIwPpcfH zX=JBg#_f}`m%8<KG2>V-vwxwPkaLbm;QWmbV1X&P7!i1t9uWZW7;lKNpHZ`H;qG8( z4X%rnCO?ZlMMm5XSAWfyWk8ayuYx?&UtR{i1~g-R+1-a!*lZqns>0T*7jpa4${Eo5 z7rgP;(V<s<CP|Kw`>h~vxdTs8C@Umocy<+`YS<<hj+%IV`4}>HkGd3{A_H{XSw*i3 z&Xdx_dRMj+h)=XfiK9CH;nY=TBfp(Bweuv8eoy&GsmNBW97DbpMFP32Oemh$D-GY2 zHKsaR1Rt!9n+`LYRT=WT&q-PICrWu9f#T5$kz(Hew26CLZ&~!a7xzWj`z_umBr5ns z6yxUihuTFn^s@K>xsF>uVBRk&D#kUM?$XBNUn=Hc%eDZB>wikrVpgG$4m_-n%Ot8# z8Mzb3=Fy42Kugf|I4b4}ysyy-ER>*0c0fovR_KvH)iSBk5F!BBE4L56e$%lFy;z$s zUf=JP!IUzSBtrmexTNa^JL34>;AVn&K<oyEfdS)|r~?Ncm|89cJZDqnB@sQ6<m-gL zd<VGL7t46l-MOy33Nvd1T6%`L`X^>hQ#T=@(afoSej(2I&Y>Zpn;ABWa<6sv_*dr0 z`MBI|C8sBaVq;YC4(5U3B?nx|jb2bS92aFNwH<@zOqHV?sMw@ChJ?Kek_WhJCk=&w zB<T}yOh}0z5ai=xpTlwQK9N6lcWoZinUX+;bHB@}>dhqRELfa;Q5=ZOqr^UL%*E{T zFTOqgwfuL!t{+#mnAt+4y{tsC{=@T3Ba1&X)5n+ONp?pzcaQdOZmrhYqjVVRjFBei zt2*aDqVx@(zB6&6v>-`qi4l6WX|74Qmq|{(gpLM|8ncn?Y#(|8u49Y8-(xX7lTu@W zy<y{b*{`6W%#Fbi#(s$dOe!oCUWfl=KwLk_sQR{f;I+Rkp-x2A9nFgxsglbQ=pA(? znO#d^?rE5>2sYx1*STvhEMYR%1TsPLV8EM2KMkd~=0;(LT<`1G(`?{5-KQGZICKD# zWC;)`J*pf}=gIq$NBX3bN#WgmTyh-pCR+6G+B3%kQSucn?i%9{Jf+6=*|`*tilSl{ zaG?axv(ny9u|41#RrHB`<j&IyMGZ6E-~rP#Bs0eTQQS1=(~mj$aa#V=*M8yh{Rb8k z3YjWs=-Yel=Fa&1HYDnTCMY7%`8p`#AX1)J@%Hx8YMO3Nr;5>mAFx%XKE5c!??3p) zs^D48MLOblra!!Am<`(K@BQ4j@%JmNmcUREy~R-JFtfmuOcM!)89xT3v**~0IdpbC zjm9A0inIk-C;!vIudm|=vU~|-j<v$zGGPea0G(DzCZJ|Pq3`{V;;Zq!^*Yg5Nt4=h zUQ6_mzH{BE`abOsF?JR!G$rvyf#YrrCi3Itw!)f*TBFVWK7U<Zp3QzOuSZqUGjX1o z`>2OK0B>+(BH<%;wRZ;ed@2|5q&g);NjNR4gH~6`CkS&JI7Q&H#)WG67hy&Tjl;7Z zMTG**(z4&Lm)4z5h8Lhw8%2QI`(XpjE@q;9&=8oKHr#TOr9v4sRPc>=D7uB2P#(~+ zG7<p5BPuivbF$%sX4<JXG(g|`?b|k?qV!R!y-;|>n&aO6Ni7|1!qMc^g4sHrC>B|F z$AT5F`I2hR`bbNjBBeQlpx+DKTAL@N>GcmV1t+tnd(K64qawTTWMS>Hbtfwz-#5Lq zY6=!Mp1GV7CYM0v2ke8){36!-{2UQ>s<$(&;r9eEnhTvBQ-EQlZ`gBGW5e*qf|`%Q zM32$p@|vH|(o%R*m?l}WxR$2JcHH-a2@A}1p=X6hVsrcaO-)BH9`)dG1EvtfI*&St zY8w($_ka2^_4_cdsD%dM1RJr!U5|j1uzlCEYwO|ka=U=La9_OLU+4w%uG5}vKJK2@ zmgz$uSklnZp^3O&_rAo`lyBr_EA37_pvc@!$_g|sQnN|P%}*nwlQvBM)_~Lqd{O>Z zagL*Vg<xAOBUH~RAEU&#wF>k`u=kZ|5*2BuC-HVrtgQ615!z-=a=+|t8ZVBPySa8( ziV`Dfu!4mO?*7=;<cnphuI12PC&nZa62be$NO(=93AWSluy6eQI9fVnnTccD*j+Qf z;16IO9!QN6gl0q*dt57gD1Hl~ualTE{i}5Js-diK<Q=VA^{Rb9CL-he*uF*OtP91< zz21rZy_~VJh}`(!5Zkvyugr{)i9nCP?@;#4Z{*{fn^E9bW(hwEZ4IZE+TJUe=utk( z4mN9illSrV%!@ZMI*wKZdj<KnfYr-6C*lR6`h0I6SNK=o);~(qud8EgDISIW-2NtN z;Pk7lvpz+qaaeNxzJceaTIpCat>2gP9MwYhUcWl-Oa8(iK1wZo3oAMbJ_g^+AKcMh zN0{Hw6`b?<T}p0L9V%o&o108YRgy+1A^m3DXhY}AF&NkuKC4ofl*!rHhKypHF6%@q z3VQ7WIHp<ZvP>#I2=o3KSB4>uo*5#K(Ql?|y)}L%Hs22Aa5{wmy?cOI9JR2pVDPZO z6Trqq#o>0fy|@6?2KIl=H|%(z!>FP?7ox2M-HaFN#zFIPIYkdRMQV*xv_@dD;z53} z?lLZP$cvmEe}-5H_q6ks7p0PurSXp$?n(6?iB<AaxM?e?b0GElB6SlyLbWT~>&gC| z;G`W=Q>8${VW>qT!-`;gqOjj6QP5#*wqY869UB+vNe-)nLze9YQ_$79T4?$ig83Yx zfQ0p1ILg<=)=-dVK#bkmf&C)k;nzWgIpWeT5fQ|y!$bBFKkdFEldR$zrtibuQk(Lb zNQIDT8~>nLUh5O>WF)s?#+oXm3D+L&<GF#AsReMdtixzkARh~aq5$k9`M2If^?gq7 zCJ1b{_#AL&nqjiKMM?e6Aa%ZM8^t0NV_IZ^QAiX<xjy!_NVuN9xmHMWVw5Jc8V?7d zo*g1=?*}-6l|L{)CPANfOku#Vt)<kCSxrZwp}4=aMdlXD?s<dRRx=sHzS_;(QKA^- zS5b<B!RMEE`>%>P(7}aC?*tU|Ox(Oqg2FuP`O06s>34UvJC%yW---tr`RWk`lD!3? z0uIJY2jzl=oCD!MFCUp?e9-bS?#<CIAm4ZN9ScK2VLPkec~Y%MU|v)t-?0KH(>pKa z5M!QXN&fm{K0o4_gw_tyuh`f0Qe5;>#0?qyuc@!(Q2sk@TnUZlKmMrM9Uw{e!5@PB zd_8AZfJT$LEUFC5U@I2u)H|N6*&J9fXzTBUcv6LQs9A#qg;cR}?C6$MvJ$tho2SR_ ztC4YQ@E=c056V%+#moszkBhI5_mhu&m2}zsP>>_I*diWG#h93v&Cry4K%tQ#myjm7 zc@wL11GEr^bexyIwmU*#yk-FI+Z)cLr<j_pV>m$vUiVM8$I2z33#fM|4>7A|xNo~O zqDuBePx=A2vmzLj{Mwn6`xp#Eoo~8%2728<sXo4%fe!WR@2o`C#mcqtAFBd=F)kZ{ zcA2}c6}xRGIBLtP>WroFhziogw5rc8J4rCmHkHso+Sy3HefnYUr42jyrx-769Z-O% zwTHexaCl6Tj^y5#zxiJ`U59V)tG+t#d;Xr|fig^+eU<a5a!*O4QZ+&GocKkF(Ga|x zP>5P0>B>|)z6<7@Vumx!Nk7ah>viTU%DiXZZgz<*$!mEx$Rf98GGow$WIk{8i!++6 zT&OSO`0V;0UR=2>;V*4K%)8ItXxN0Z0yyN#Gf&%;7=yQT<YG&Cd8|LaYf-Lnap^yY zC)r3{q5fpArOIOze6ZXH*p~AYWzK~J`{4zw&gMCActqYrz#I?W0~>7s#QFd2Hb2ho zR<&<9RopMw=v7GRy!=E`Dm4kP!)ikAE`5i90n-bI@WFfGpUc*ant-y$(bJ-}VnZ`F z#ji_g?8?yr$a6c6^7L6A<Jm^(0O0}ZsrcDyfA6g{pHXx~_|FgtkXU`!(LS%#ob}ZJ zvTFRDI_TWNh}Q`XJ-(=UV#&h8NYW&^K*C*0!dMvFrLp|YjJC^ofX0YrD`=uON5}i* zg_zbELgLN44Mbq>RV^J$_&$uRK;4SoL!x6^|Kmo&%mvZCAWUSg?H~H|b$hz+UqBMr zVO=IIE@=9cmcv5>C-JO`R}&9P?S3V?gsDY}ETE&rkNlwqQIQV~VKZ!cPYF}KRXUI| z=W7;-C($Ds_gEb)fv&myN8eAAIhjMPBc(d#jMj?*ooEU)5LHF=Hn_gnWzaa*mZc-6 zfW#tQdPsa9Pm*SV<m~dimc%923(H=AH*qF>q|<waM$&4wzCLy>NFVE#?KA$`oAv$; z+B>pQqFvhTJa{+$*L|VZ5%YL>MZ8%=9Oe!PHoMGbR$u03*{ry>2ME@|!-zj)OW_Nq z>(%Z$3Na)pMET@VTEH%<0z5ce_gWl&<!Uqi)My@T+}?k45AYdUy@BZ*j9IghaF<g~ zV`?u+AOFl9wbf_yUifA%ajWGnS-hmu1Bt#X#Y0F_=>+zz_vfYXsC@s^D@e=CwV+la z7dV;l2;s66+0Uz_!SulEcV3ae@ATFOQ#rb`LZTV6={}_lnP2lWQE2Mmo-U5to1Wpb zP}67PhbDNle`q~<C^=tSore{7B<Qg9{AxbB;gy!CsH^>Mx?N<~nz-lL5<)g(VK&z- z5s0;u>~1X6aUR|?8+`7Z8f_kTMSFIGmg-$JMIVlhGs&vjQvD8yHutY8pb6L}(K+g0 z?ur~4(%sJ+e8WRcEE64>LO~UOa{rOnhibkVd6$S~gTuQyJ2plEH}NEThtDJX{A^Y4 zh-i?@27&C0@X%ybtf9zygaIlR_QT55^#vdG-Si)!C!G^LHcIyLg8LiK3*C~+DtI6E z4BbgA7xBTA4OH7bHu2OWOaE4~D_uE$SjVbw`oQ$-D`Ti?n(`7=O5v!CVx%0}E>*eD z=xHRu7kEUtk=qO3UjuF@p{%L83idhn9Y4R`aA*+KXPf2o=x)2e?QwX&7-6_TJ9I#w z$FzZ+)O@~dxDn<ddi2SyEP0drhD@%7)j*D_sAA!{$wcFw(oT}IK)FtAvB}ZdwEA1C zk`HYM!h$kXe?n!IWTvZ&DbrxXe?&f-U0N{leRe0CotJ*XQS<g^!<}baGZn{9Mz4Zn z^`(^~O+SyWVPY}adObrY<2$mN52Ve^ySm4g-VVsCCBYd{C#q@5!xR<_m0McY3}tfu zj9o;_ncA<Pre>Sj0-oiyg*x`{7%LFUKf|pn4q%!d#;Qb9Z{te|f2$AIZ5?2SddlLH z1#j``(Rr3KN?UusHOvmC{b8+k#FIogG+x}!wPu>1R&nj%C!V5-mvqI>jd66i)sauw z@z73tlrK|dUzI{bNcoXfCp$^0HbyxQGMoxtj&PWQG}7rX=+$bOn?za1{D;T0cJQbE z%VX5z`kf@9aPRyFx&>ObrgEG6pCIj!q29KqDi6cWb4-hq;;QMMu`UX6(O)vVV7qu? z{uIeh!UnTkcrvF9dKZ(HY!_y$TKSW_v?{_l*25R#f@L`Jqe+-{mvpfAvAv|vUw%Cn zUzfgn3SJ*M5CcJE`0~uh=4W{+BnFx-t@NLqXwOtC(mXt?mMLLArCvx*-~01P`Y%`9 zIC5_Fs~<0=XM!C|wux;LozYkpBD8BMsV-^>cCC)L(Y1R3v}Y6b^Q0K;MCu`Fha|nu z4#ZZ7^K@%<yK1n%c&xrvH9Wwyy~_xFW`)rdq{`ynuduhL^I^mng2UdSKRZ|g93M;T zm>P!6nQ}a+fja-LZAfy<G4iT6x1iFmV}X$Y1)q4pB?O=0ERwNVM$$V=Q}=i5t~PGb z*|l!ARRgSWafjZVzZ6}ij~k3M`-h8vPPxq5rFcEZ@X@(FuP)ck72IKDIO8m*OR#?W z+U`4HiJ$IBj@xg$lOwjb-KDg};>VE8QhpihOWD8SSu@)N0$L%Gs_S27rQ{T~%zAP> zLqEEHR~VTPQ%h3tV@OJBSIzxq*bu2pBU@p;g7JYwtlVb0x{6xO|9yMgXPvQ<phcS9 zyh@4EV;J<kET5sig2o5QwGzQ|m0AIu*h&#g8DXr^l$U+8&?e?SG<Gc|MR?j`fL5S} zO|WLhYIf5UoBo)ZKRF+w2XXTJ!p~hs`c|dzY2h8mzMP^uLN?YRA%#!gbEKT<X;ScP ztx48}jD_15maNgDm{95V#w3tf^u1}5U{|%<kHPN!2>fNGQH@z^^!SA3%u4<nj`+fw z1OEnHiEQa?`q0hc-k0MRyn(6`t*gVc)z=o&{2F5Ke#5Mvoi$Lq9kK3=-TPdX1KvV< z&Moej8$Oa$&98!*!;i}qzN!r^Wzj4c0o+!t1V5LPtk7_VuNL1N5<>MC$MV9;s;hER zpLsaD^S`<k!rcBh$k!Xkh!4rlu6X9fL|Di*PL_Hr|6mfmhAVdlzK#S}tpxU2Vsmix z-l7`B&YE4Mmawm{a^LJ3P(P|97N+`n=V`8xOY|Vukjdr?9tQXwMh<+`x>Iq(=LDd@ z#Jt>YBH-@nQR%A+=Sk2e{<4O1^0x+{-|j~DaD4+Y-@JCgS*qWTuF(r~+G$gye5M+e zZ}XF>v`tl!7=zv_4+q<%&o7OrQc9MOwqK3%lo-=jYS@89q5!Lq-|2OAgM$?9&4Z%s zC3Di|&YIVnisCu+fu=WMBzS=;7cMeyJBM@G9b|d}S1f$qAFwjk{5l6Yy|dZKk>5&n z=Sg+1#4pbfWO@WXP*{lwrTJQ}#H66;ZK`6P%8|rgK=)PR38uKenIDbr{acITd$@Q4 zsr(Pm018wOaShtw+Z!stM&1tKHqZiZqdpn~)SkTYiH9)}K>7OMy&u9W0OLzCa{*kt z;JtRJbz_912k$Ex!jdeUYRsMhVmw@-!%M|8T*#p#sZPILF>gDM)Pq57m5-DtX?T*L zZwh;__~5Yd&x5+sUGWvo$J}^v#b$^p_UVy#$}&8W+Gaq1s@0ibehMltxDI0$iG!}W zC%iH}tN2IdHVD=G7slBB9OPK(;_<X0+a*Q%Zmyqer>u<F=E^cUzu0Gpr8^vXTE<tU zsK6RnNJw?Ee0wsD;X!0q*uJ11aV|G1u_`70of9frmZ`J({DpU=%cM!_ndId2mlCSe zoGT7b%-Sm&?K#4Ds_ReS^r}3mNv-%sqLk(nK|%`g^a4b5#-7B3gU$xj+HM_>pw{w; zfREQQ`u500?_Y|5Be}viM*Rj826#J(A+(E5%Z2r=&+j*XLg+%72xr2A2aGSXXNSvW zKR%>uOi<Ub;%OUK|D-yqNqC0hphs;jKTbbJ?N42#zLTeT`EW+(0Rx?estvEuut?gi zH%U44OnEBga=exoGCb6i(*wXWScPuU9;iE+%+x)zR1(u{Obs*Fu(q|H*OD}s8aN2a z{cgK%+t2hR$`2V-fgw#s`CSS}K{g|S@Zhyw7e~!3fM<<3mZ3PH?!!Gq6lLBySoO&z zE;11NbPPSfMBqx*qkl3n*t?f@%gE9~#9aaLTesHcThvm!l9~kHhWghp?ZYx4M*v-e z^%2~zJ{XtE3kH=BV}4EaDx!Dt;@|yQ7q1^GCuR|((<Ga0{8DJu-bWJixo(CyBdK$4 zOP?+&tnTT8s&y-)MULc`>|BVBsXTWK<b3tu7uh|o@Q(wG*^K}j(Y!_gFK3oN#~?7$ zrd@vb^foa6rjlz(>2;-ExP>xX5j~*PzKwkcNCJRaTfsHK#u`S-2TL^;92dUrBW%K} zbvO}e*_y^!5P$+KyMWSjIjoLu=hhwaaC;@9#%@*X-?iCU?%?%m{9T-#;Q<dkYbI%P z8j(|L8|M1>l+w&(`KS_oQW1l&i<HOBea(CIYHF=*z8P1%DmImdFXx#)IBtXXam>v6 zq}CBn#vku(xKp`Ou8Y-p{f>#xL1tID+Pi6RYlRn0Go9KiLYO|s&k=Awbw7?qazJ!4 z8^`M+@Lan*=jaPT-ev)$<LTTL_#ZS-Rdbr%k`!sO7nmXyYb{b)n3y~q6oD62_0R5> z->CY`uVL~g8z5=o`baJ?Q%L)ZvFrjZFn9pQ>pxM0_2>sI3Ap%t?NIz*RL4aG`85H9 z-g5)_%npq9z!-2wq62*9{eT>)<u>CD-t6GUsii|QctpOTsZW^s_pNSlLbRH_@3r6d zKPspBO)_%>ha7;l$ORy@gRX=|#JjP6lmBE&_J#dKQDDHzymA?FiG%#~KSa$&G7bFl zLvldBMFLb9oOlubo<Ju4vDPfS&j|I8onsh#N4g{<#6Wkvw1_c14KFWNp1tsqDE1vk zq&9H<e1Pg5XLap)co><8&lli>+2FQ4SB|U3I;2SyDfd6E?LxY%1*VCcK%2r$+Y5>k zk^A4RW|^+vSN+VB<&gSoKz3^*`6|0!6&p>DlWtw8lv3I9s_55`v@|7~_4M3IVY;ES zK0$5+qp~-}L#p#ODVw5s*g%8THaoFMI*GRa4Rhg3b`=1(Q3c*d)#LR2;qj^2HqGp^ z>)P}C=E;M<DL7@6xx^oT<XJYE?gw5@e1`-d7-W!FbN#8Leq=CpgkYR0DYfd;Pzto7 zHBQ99nciSLyldSKSX>G|uMR#Zo^JZOpvPuFWyNNZA}zR;EhHe!`H4<2q#2`o(!y+I z;bk8L7$G_xDt&qG>+~Fj4co7r@Oe9@Da@;GVkAZFV4AW~(o|pVL2fSicF>r|hoi2k zVs#g2m1!17tlPCO#ERJ%GSicYm&wUX<dUFf%@NYY()v^s>v-7%$g`)6y4O;t>Bz`e zQZqeH<8dKZE@MiJ2<2cS^*@%sbx?Gb23t0*cHF3l+viOckwb<enrbGH-5T&VO)}`8 z@#~vBV8UO%2+q*mH?%VgWX8O~RoLfQOPxnbb>lVD2NKLz<cJ8o{g7Q-ssFGY&!iOx zz@J0%o;4Lfr6-Jl;1Fe_=$5AuzdjcvW9tC4_7eDsnL!Z~xfw-mU~V-{#X@jXcNlyH zV?9+NM-uIC?j8VjtWe-Oc=w&J5;yHJ&dRX^c36JkxeN`X;xIUzwX=@K=MubtgWT$C zL#TlY5AY)=?Qg&;q~LWt+^Fv>Ld(aDYb5%&QIOj7`hsIoTvDl0jB7h)CQ~CH`pA8A zCf!aw3HqnpeO2}i6BUIEy!jBrTYu#H02qe)5<r4h!q<<xSTwqrSutA3t$*wc+k2Q= zG^7LrF<|bPUxS|Gp8vmvUo-$aI^<sYy+H8@3@~AFcdO4c8OpF2s>>(0j*EZ-y;^`P zsa_aT=v}mPo9PHT-AQ?$zG;U656#Qq(u#^jhy<n3eTf#QGb-zcH1k|*$v|l0o;u9g zzmA3%Qb$7t9n4yc@dFlnT;Lb%)rgCTERk#QM9C`VCt#j@j_E7?_bTYzJ-Abgzq7<i z{TNc;l4!>!+2ViA^wkFV6*vZ+V_l_;gSO%4yViCm2w`k{FOW+oO&+y&519l%!uued z+l8#|n2JM^0N2{M!fb=#)%d&ye@DPD9l!wmUq9xSJg`t(0QyzAj$qv*$dN`LM<zxC z_?-}9#fOz{_wu!yCkbQ^PF8f~U1fQ-Q2&@~6KTWW*!MgOS#s;#bMu(sjM-Uq(;ai2 zDCtY|GH@$h%<vt{0X?o^w|aFWphjVO_vh@j+S<RBEjxY5G>>pUjjp6g2qMe+kC?MB zRW<<Q5JaDNWg?l^(}6eDIIW6r?TNBo4+joQc8DNAS_Zgi>Lc#aM5@*^B%`m;_V>tv zr2!$!>K+tkw2WVr^uE}}`AhO^QVa>}GOlIjz7MO{IgQXe;X5H#{)EKysziZuXzG64 zd@N9w6}<6ZFgE=$9Y>~T<LYiI0s50=hHgUgYTz!IYGkPCVbiw|Ba@`>Z<$&9%YA?W zyj215HKocu+f87T3Jj>(B@WT<l)kT=ChFJFrTD)gZd`|bI&R`NFZuO38CKi`n!yR} zE_97LP(djEeUgnZ^x0nr=_E)U#%Ui@aP!1h8TOiQwMec5aAn``RjcO`dghhiQG!3X zh{eMhJRy|XixH`kzOZy(JTyIymcED)MP3}<Klo)B&$*j=AyUfIh5f?SuOp-Agt)wD zRoR+vE{Az}JejNv-nWZ3xRl{X_yH)`ixMZ~3J7uO1Y`au4Bp;+c*{7fgBx93$^`u7 z1%Wn9uht)H;o+~ZyGUj$PKI&t@9dtCz*NJcP&|RrJQE<wfTD5M@3=s5txg&AIF9{X z@z~&f&69}++=dh}9y>;Oi)Yzls8MTbam5-~?|?O_16WUm9+j%nYWa=rnGDs%iVp&! ziAZ3ErCVb4Vh|(;kSpSOY!3VWss(Dl;rBV}2WN#m$jIOiWy0=$<h&tagKXMCmH=6r zJbXCj3o~e;xT$;eBm}kvpMyP_T*wDqF<)=|DYR;=D6=xuf+sJd?TS(V{$t9GcpB4& zPVXcDBU?v-m5)jRSf+bL`^=Zwf+w<omWk^^SYMrnbZfcD3)>`CfIO%<_A*OJDj=vA zEaO;CLl8H?uBm-m<5{SU?CkH^41D{3!$!;)+Q~%IE?fh&LDj*FyhDhgUVwUx>nE_0 z&Y)K}73h?|%_O+~Idp`VjZDMUO-#gdJl3mID|fDc8F+fKSl^+&twLO80Og0m+7nC2 zkZjq}S+(gZ0rUFr9zP3Q3lx}9e6C=gAr$UUKL5%4GgF4{>&NN@w*4A0EjJO<R0h;k z4V#Z@s<M6K&?Apb>YpXB3I_y4tffIf3#XAQWMsjGYc@@)RmVx%LigL#hbiKVx<y%j znRwnCZ=@L$9sJUT3xdxzQz<&8mt%3JX%+QKYJz$q1{`XfwWc|OToT>Q=v1(xG%v9h zdmDRP&t&EEpqCbIE!<4WW~||l=|{#JGehU}TOR1uj4VX*Ta2`04on2+_DdEjye;_1 z<(TP2zi_aD;rWnWXb6QlJa{~V##1h2RQRT$B3c~j*2S*{?1Z2_6?rKNK&eZ8p0PoY zE8R~$m!PXl=%(2T0raE(g;@R2Z^2qthRz&vFo&MK&i+(3yaxsw;gWPG8C3zDt7nFN zN3C|1MteIc-5_8XKz)E?6@{3YZ8fq`{&)=tb94*Cm6*|y@<7U(Pw_}C5{%ZV3hBtS z%QjxK?v<r@hh78B?Pk#t4anaj)34HAOLFlfEom#q`f<gAVf(n*&-sMwV{=DhXzq_X z9T*ZgiFvjF7y*z6@Ux>`hKf~Yw0-!a!>|Q7szZ&omh6px7zV8Ba)nC_mGTPSs$f-Q zd&11_4X*LY*Uypoy>p+6eb?>iQ?tv*o<2EltG02gDt|%Sqgq}Vcv|N-h?!p2K8Pf^ z=CAl*v*<kX=dSA)7hcTBV+oS6In6LQM-->2a=f87*eLk6^$T;V-l<-@scXJ+R(M;2 zsH)ADGDY%y<hLs=L>S_ynq*5m+yelT{%qjeQj67k3Iu#B`O~o#5@cf0W>=L|+o%xc z3afl+pl@O^o}QDMyF;}koyKe#=d4At`UzZYxA$fzK$OiMrKhK?T$ZC*SzTFe#mHcK zb-Q_;+{;pJWii<){dvr-5Gpo51_b%yo#7R^JkK`{CM}KabSljDb0NkJWwR4sV}Qcq z$={{d!9X=XIc}qN1wK39;+X;L4DOUD^F|rSaShgcFF5-|kVm+|DN@<oku1L5Ld6VO zC`Lwjnqdt^Yz|+BibW%zu*>jNK9v@F^)Kk#LIPEpOF(vLXH84HnByaMo#cby=lK`X zAE74mw>j+Mj^<dPc8Dv)fcN)CWl%AhhhtP}ZX;wKTlA+WsxSg}$S0F(I|4WdZwVI9 zNvqdqs4+=*zSUq>c)v(Jta#lRfAH(>WdyhTlkoYXqT)_T8~q}sXYrIVR1f@z$uxe8 zdbB=pOyb$TZ?_VMWxDt)w4fAG=2vuB|M_oIe0=Zz=dYwyIV^%+yVVu(c~q8<UN6=- zuXy5;VL~sRVfcl^$KNCH20+{8&c(3dK`GQ+Yt>PEFHNn42_QIOHu?~K>;T(TQOwAH zZq=&5H0~PJ3YtlZ4B%#`fB}0DDx*GkC&OODci~Tl8^pMXXk*{D!KY6T6U9ztQ7)1C z2904CS~GPGiFg4AkD`UbTfx8o&ORg&P5R{kEgmr2mAu3Z-pDfEXm(8K5uNm37+HuZ zNySc)n7<k^%&>{><9yW;>(vq=FJ^4Qa3i>{a^|uh8WueHDn%gsRO_o^!sO9aQG+ur zqlmMRHD@d@`}=a_(5q9!XrIT*3FvES#QxL1eWjq&mYZw}!!qT1yqg;I*<}k5P+!Y2 z7JG#^O?xl--8TbryBBRd1(`1$95jd|4YFXdmVEIa!T3Z#D2BY7Mawhoq)Iq`Qpi0S ze!BgU@%GPq8PZktFwnsL8FgrC4%@H}-Q`YW18=3fr+NA|Oa!0Xln%C<W=yjR`Op;X zA5c%bK||a|p-Qnk{B#`+<x~M6qst3_JO;K<7xqGtTyZ2g6W|_QFZ81R<c?<wACKSW zf#7x<fYT<dZ7{EoSxbjVBs!Z_q2TvCHK$3)+a5?t*XHUPzb+hUo!9`5hrKD;lO6vp z#0}rn6z6O$c|OAs6a=tg*+>8I3FqzBP`fX!XCznPDeeh7p#l&>xwS}VOVjRN9y(o` zuk!%GiQ1iM$2fGW^x@&TVU~c<16zRVSBG(oae~ZEI?dVebTD+i6t&?ydcv?H9Ork{ zg}Mm){VYCVBsHdB?xP0r;u-&j8+fwz^7+SDkw|^&OK~{$@B*fzO=lPGte|S{nOaqW zSMsLd9#&pN3fO5LrVp}0bAj7xzc<bcNAbnic<ghf#dErv9-uX#W!o5t@?S!aELqF9 zh@hzsqT27S!W9C(@^<(x5m8z#WGvN6V#XD_2?n{h2V!z{K6%@aol41yB0E}p+DiEW z*Aea+4^>74t&MPf2Ajb?df8Z!oNmeI@?uAW?Dm}l^O<&lZv$&6%CQW+Lo=*5v{Iiu z$pb9~#VQxgY6%Z4y*p#?<+pN`cFa0i(2@!mWgAPiv0sb_nR6GZ0_o!1ozI55Hn?8< zt~6C4qKdw;f}{4-DplHFT@VNFO*RkhyymC(uZArfvhln(X-|D07<&KDtck#F(y*Gr zraOI-8W6y<!sHSd;=R@(j4Oe>e|Wd{J*Yu&iOE>zfU6EYQh~0%o_fyOdhzUVO}DwU z^glcjU1jk1(uenY*f_N%r;^?yqdlKk(EaQrc5iz6AD)8`wxcc6hP#120l1d)^uRD# zH@LJcpW5!ery$V7ag#|b!zSuuk_u&m%a!s>8=abvDr^!MvRgt57DL)lgs&V5VyJRH zLFoY)b&#GR=}fK6$LI}2?PJ|pv!;KCd}@xtR^Lkl!>;?=Bso(o65$eR9!?(?PABbn z9)}@87MA8_a7v;*D@A;_uI=csn`{4Q&G3$mx!sxgoYpeaykG&Yoe9XX7vyzcQ=c&f z6+o3^Hudy$ROl0y<DCO#296VF7@@a*nFJYeDI7Nh%*1ltrR^tPr^Pa%$)l9^p65|1 z$@Nj|7MOn*mCCAzShf?)w_r^2v0<C5Gum;EpWD7k@3YzFKphfYy-t0@nx6#tiephn z15%Ss=7=un_Sq#y5z^@Q<j*g!isu)@tRDphw%l`?wg2k7a@Yj#z0U_)vV!Notrn_F zLhpy$JP}ONborVE-bT!Nuh%@^VajCI|LCSs^zkW&6sk4mclOa0;8?zQt8XFTeM=2O zs`XQ&O`lj+x=aE|KCM>^p)t7XTXOO>%zQs`Shf#1Swc`8xUH#CYW{>izHF!n6kGcZ zNsk2<^YHUjiy2_nE_4SHto?;vLK>A?7P@z;0Fij#VgLq=D@Qmqq1O(<dySEG`@dX) z3^vb_2^?x|{=);GfKHk`MWgtxwJZ&lo}|S1hJvD%`!=xb3t*}OCB<1b6-Y`SY%3k; zNk3&MfRS1WPZyVv+d1!SzDbQl|4JHz?Ji_Z#~d(d^Cuf`<m}&Z$`A6xwKQrzFAFr) z4Nt8fR~<G6D#-5*$R%|P5JaL^y9iVt5)BGBCfjZDa4f7o!@Az@skh*~>m6y_$Aknh z)^C`O9^UR8;`aw$cb{H`B)zk5WlC4e#`Mq`RkLdYot~8EbOTi9z5~k0N&-QsDt7`N z_7-#-IE3kHvxb*QkL>H=3wd-A1y;~i++SzpMuT2xmNr?M0X_8QS}s`cvIv~Cr>1Ws z(vkE57ipXrZEfas@W=9e0I|+ne(!24$I@+_=aHI|(bY)~v}=Z<y3RYv$U*{A%SUf1 zZl3j1BuB*XXb%BaJsBE*Cwmz!FJFhFZh0AI++E=nU!E{|RP1L)Cly2ED4(raWk87p zJMh>o>C6i(Od;V(44!uo@~_`b-hD8j|M+sTdxexlK{^NpO20h++I&aJShCSPxJs^b z>~0M-bzYKsfnI#p5+FC6LSQ{v>c<7B7Zz2Gd4=qSgMaF8hyE0kS8uSPhFhmn!y`_U z0=DKN;w&P9k-*7$>l9h_@kK`XsGg|Tr!t+4YD!7%abG`<4+IOqu5zLE>1A=vtn<o3 z@X}@{!+g13jK1W}r}ifaBPibIfA}7rZWp@Das5&kFfREI?{!mzeX-AhpJQrljv}># z*^z6(guyLSNefL{*E}v;8Iik{pIq(s@GiC;d{pP$p0K?06BjFL`NbR?FDRKCUp+B5 zG(D-CnL=v@pBa0WRGXdt>D}k_$~VMcl4(cZbPy}h{+@d5yUMnHycjSMNhR>I<^Y(| z^ve-Fp6)}g8wvg<DlXcF8mmH=g68hGvzr5VzCrIhQ^V7d`tL57b{`df2|s}?W1~_V z<&B>GTG+22jmb}aTk3~|C0yH5ry&UYWP3Gl##HUhpcO;kGz^hhS#3u=Gg1cN_us7) z;}$qMweawLl|RooINW<ju`WOm4Jj^VA8g_K<~jA~NLZd?Ac<@y%UF(j=Or4l_)XsM zJ0+hPuaUm%se#cg2Yt^SM?Gv~h+VPY&&#>87Qz`=S*nXqS6W+hxst%0+Dz#8(%Pu} zpAXkr8-M>?r2J;F?&(@PSw2r`>&?cMo=8>vr|V_-)M-7n@_<C?v<X}~LNXMsaf=#H zFg5!jf2G2*^GN$W7dM|J`z{?z{cL3+Y93(|=A_V?%IbN<Jr1(|_c_dc@HJ<N-OM># zzygGqeu{<uyomqs&YsSQsgaI;`-J_Jn6h<kp1{@vkrQ?7^RxkNUWceWZ{M<&h%-*r z>Y}@VSi3=0DsU9JfiFo=lBrAIU$?D_LhbYVZf3}YB7!@4ilvgDb3$)vu|o7PO7Jn2 zGUVaI(8nzHFB5bSUi-CFH3ePZoGyTrImx~xVx%cZrYUfX#Cl)`;z-&@?uY6dT1Cx| z#Vt6ieR4X$7y%XBSy2Nm?O(f=CuYWi6pyQ`({pdUp72Qg()}K(9?#L3PwR5o@$nhI z3cJPLcMlE8t{W9<F!$+R-+9iuzTxz!BAtGAc1t@WLt3k*sRvmMw~k=5v2H>;(BNZv z>2AKhD^hH!<XMl!-73i38S)BA9m2zw(q&+|+_-YZV(VQXsc*)sWK&{d_$|pox#8)- zR;mnMOpw2bS^uW)OBy5zJTEw?yZv=6<&a*aetfnC%Lhkga}@u=Ipt4G-BN`8wCnm0 z*P!6{ve$XG`?~vY3_$6Y@|OB;s?Tqa5$HVLHxBYEG2yZDPuobobw-l#ds?~>Xyf}w zXnu${{{L9I?m)J>_aD2pt5(&jy<2LO7cpw@y{XmOqouD=V$@cf8m&Dd_8zTOn<`=! zMU9duH4-W$@9)O<_n#m)H}{@<&U2p6(o!RDj)Y}%r3l<UW2FiTsI8uQE&tIqw_#1H zX~%JG!BnzUWH#Po-=9JMkG198NCeMB0=-f-f&FeYEzu$GK%3};`fdUw0WgEBiCcM7 zd=(#Xk(BCu?seXhXz22xnx{xE(fFfC_oq7XWysGfIILN>(4#l|Mfr*3{4$bUE_b3; z{EKAk*X`I~5GYj}%M5n+N+%GPauVN{6Z*w=^b4`GdgrNsNtvI>5WCbE{V9<m;I=IM zueX=^SxI6vpAf<^*0=Lr(*h|!19=Qrj)8#RPgM>rM(`hPp9d*{a5TpYwfp9~|F-JB zXfLA^2qfQ5Ak3-=3lRwY^up!bEX2e@GdnAr{M2xVi@>;q+t;v=VqF&0<hmQ&ouT;F z#O5<q`LEA3#yQ_VuN=+Xb7HXy=T+3$c{4hl3PlL2<w>HAMop9rXCG-;A!hR*-}C1E zRs&H{A}a`OHJX`66`q?3seHH$5Zy!y9MDedi3A#Ha1Zmp>oL*>|9Hv2U>UBwSM*$* zR$Y$F;lM~u()k)2LhtX^KvQlDdgp10>3xs;94eW#323palxzmHT1Knfp>C&7ke{Ec zq!c!Aq*p*o>x-fBdIn}XhLy6#`TRYDM7T~)T4m7HtMVRNpFe-SRRno{C@5=$tjJld zcepJr=$Mq|XB16RUK!Wd*j&!ny;IPUb;PjB%mH4Nq3w!Rum1xXPU*CWFUJckF=SME zp-ICNi<<`t9!kl#O7(UUuf(O7HVKgy+|LBM^u=EPfil_t=_)TCeK)6-G`_ek{+*?> z=55nVg`F+Cb*-7AQgN~*<$e27kqTurAsOIk`$I}k%2s@S))WpztaPM=2yWF>J&4HE z%>R%rLcnCR=78^4R(<uRZ_D_bP4li_y+}vv{I`Ayrx`bzM2Mi13E%KmQIHa0-j}Dn zNAB^ON+f^f*Am*g9}>Zi(j=^^5t>IwSy`qLG+wV_w^O}ZJP=M?&`UIZamJul=>26u zdE9NH)P}kBZo^wf_H54!Smy>s0_kVR@0N))>C=~$*gOgZn*mu|>t9_G?<^Q^YH+$O zM^WDb?5#DPz5W{1b$X}Yf+I1bdZ(%+?rC8uK}fEH3Gq8zq+;oY@?|+W7mQNWPtKxy z8eJ;O%ezZX;G8<PX`1R#bQeBVy&rL_DXJscs>08VfMtR`n7dFd^{>Ax%hFP*0*7K| z@Y=73KGV9{frJ7zMpKd*wuG|)oL2v&dyNCB+=oHAJEv~Rhgf)btl7mLn^y#(si}4& zpN;<6oXK(Lkr2z~uqgygZIj|tgy#-hHbjNuz+xpXS9d*UM0_r9?VQ#y5Lq%A{7y<L zNUeyx_|=v027|JZx~^4EG^q{p`L<$ZrT34^gHfGY9<Hur@%c~fS+rvlB;$=BK#&-s zlbZ`~1uJ&EYWATOYm6Bd3P?;pPkGCT$=*yy{{rk}8V)to6hg5vfEE$IH3ynD`3HVM z*HJOBve;^>qf9DQtRGcx?>;j5pO_F6hWW<l(n8^O5BLt=HC-5gbtBBsqPU;V5)p*L z>7};g^4TR3e(S!i?n`s*FKUm`>2IqdOg@Sv8%qk&pH#=~q&Bp#EHIxZ24LH-0`LEu zpVI6t);;j7z_wZnz?`<A83WFrtjcCSGj!}=MgPpM2>lz34xKvxwUaGrrl?x-T)RYr zY-Prsz%=}Hb+oR}QW*vQV|!%^GD=Bs3G=RQfeSxwe)K6er;_q5`1paH4p$7zN6Gg( zmcYiuL**9N_688z1UqFkloRMlI>CetD2Q>e#Ye#53QrlbX-o|4%#9+<gMZ`;YEu(7 z60ha(Cj~_Wq1B$Nnn@}!c2$RRI8O1O@Q>|4)70n<&XYtHSVo8P^XV>biPTpNa1Bw@ zbjQ#8A;x)w!-XssKi;eVaJclvWylIuo==|d%PPRuYBDK^&92FwN1TRn&y+K6t{xoC zgO*?*eX?r@b@PsZLpiy=&m;GoG81^C_}Rfc6YQ4EqQFkTj5xJnJ7Unb6j)VAr~QRU zxw07$zR^?4d2gpcLM4!nLEDC%(3i5rQDvp8H5P5&4*@e6O%vPtrl-}&f91?H;J-)u zUmbqSKvT7J=JwOrP?a+##{!;eqgtEcfnij5tV1rNG^OoLqp6975_45X;nO^GHLPYp zrqe^fzBq{PNg#!vh4kaQye{M&iJH!t#<ls5dDq@<MerpNk_6VfK-fZPxxNs2V&?mF zBd5y3XpWr|s3q~X_c%9<tdpEbGzM^QQ~;ovB?sa_`U0_Leo0Amp@*80@FW8TdGzae z8}owuZI^fm!6EP{`$|mBOW>WOCW(}ti$kkHiV=Zj^4I%UK3=0qct-<mGDtP0GRS)I z8e#)!0Op=buiPG@2VL%`rUDSJj!UpGrxT=E2hxO}ceLf0sl-%exMGb&%^t)zk{PQh zalx6_(*37Vco6G@mXp>_=Ja1YR%i!cCI=r}a?FgXEz@i{%1GPZ#q_P?pNevIRcacR z_)fkd1m@B84T_Ur^W2@ctX#x7vD9+Kfh+zyrN&rs({=%95D+&5=LEgSGMtfKL7duG zlRod^dq&?8BlZr}#k8G--;62Lpe-Q|b$>bjFaj-I9B?9I7r!nDft^*|C>}1c{P++l zAL#?Bf&&VG)c+S#&w4%doriGz>Fovnf5LoYdvxgxcLn740OSOJfd3l=7?T1WU`H-s zcVS6EVb@y}4Rl?9I9pk<k}&llJ3B$)c+f#m!Re<a_p##VSO2qK4V)g^SA9uXG=@(} z11k0#)gGy;RO-;&<*Av`oUn)6b~`LT^KZ(noZZ}_>Nem>9=6IRv8kgYW6z`yi+npa zF~1<WK(Ew2s*e_?Pyc4GOdqoH&n+OiC&7^5Q<&Jw*Qyk`8DINOpPnCT9fLE@l!4zP ze)7JJ3$dnBVtc9GP7NR{`BZ)ovp6zi-MbW-OGzedguz0|wQb%u*&ZiW#{HuT)&>UL z5?Xa65}k$&nj}UfF>xq%c$1UILW8N)_H6yi<!y;i5GFgxSa+nr&$DmZ;n%Z#2^G9g zb_Z=OEu+BfOC=%^h4qy%8soh@`B80T5c$YYWlU#p)PEqAL8Qh!4H~;z6PR;bN3P6c zw=R?xzefW+kAb@%g&Q3&N2C6>I5M!1rBO>Q=!!k8!m6xdUK#*@Eogsz_iv?<5U<L7 zXMY<V8IzWW6eQz|^5&^j$5Q0qPW&jl@4;kze}wm$s(SN%bvO;2txtv@;RD=^fUg=k zl~Lt1-QtNuPQNLQ5(KY3$vKRiju^bh!I@|vguGmAZ~p3~>`K|+Y!|7SR*GA<b<gSy z7l^YbZp}agx?@3Iv!Qq`GNPdR)py6v#|02xD`|7`EUzBkSGVi5480kAWG*aMcwAc_ z1lcfb;!URoHe}?GRRo{UFZ{Ong53V4m%OrgrJj5uD(w_2$Z`9<6|EKJaZZK%Ei!9$ zikC^iV6M<GIU=iBZEY}Z85E^fAd$NL%2bGlTbH4-F7O`3N7p3F8b2lC4FJ)vYuwe= z`=rNaryH^jMQhc5Ry|UOmTDNP^%FnA5RJ|u08n8)g!4sdS^+6_z7<x~saso}fTZhZ zD%pMzV22Q}7JI-gRNC8Tn#^D+AQv!Hx?ZZa<QWDgN(F|p%6N>sljC!C@M^dj$H-49 zp@K6Yp>N|_1o&1yi6c7&%bk53-+THhE`e4jaNgB3A<8_0K-Ta4lf4CBD6mn%f0?&0 zt_%5yAqB~Zo=fp{j0T6nO@8-oF$3S13)0aOJWs`F^a^qgT>k2S>WWL}FBy!B*AXmx zfVkui{;=K3JE<3$z)$tOWZS7X{(~Xl>6@p|sfI_zOfNYlod_lUnxGc4h{tX7`LmNV zheSrSqE=7M`5uS@?7t%Xllj3~paes#=j-`M?64;FV7LL#1@f0ta5N<<TEJ5E{m-FW z1)ySK|7>(GOG+I`G!Q89Mt1H{gSmkt*!iI#s+hipZD9580AdLN_<rUGowYl|$LTqv z1zeX*Pao+uermH^Kp}lgI4$kJoNr_MZh+0OH%9Z^f?a*cUmM$KcHpf99j?R~7LyVp zMuWFB%gEn8?mpd(_VfPh8F^#ro9mXT;t7&irr$n6ZJ*)rD7UR@truusyBTPyxmaRv zU*EXQ;Q0>lIg0EQD?!Arw9}va5$e(RiMB<irWOEh&W1gH)Ys?dHnmhNuS~xbA>%m# zehsu_f$Jf|62=laW0q3hO{K(vgsk9|$MxRY_4)S^D7ij)+YJnU5WIGuQQo@kS6d4W zk1Nz_1NvBa-wONDxte(q_3i6Y{>By(b{+SQnX};@V7e=idUvvyVXBh@Ef=lQeLiL? zM1U=}NUg$u<(F$ub|EcP{n{1smh@?9liR+f>3`+1!FcFv<;z604wGV^33VXRG^@k4 z0sak0ZGWyj#fWuG5YrBz0RncS7kcSAR<6y*+9XVhHKVXiiq+HGfVDgD!5MDZU(y=< z{e}t%5cA=^z`LC-8{Vfcz<(u*_Y;5DBJT8ofc){8-SZM1<F{!xx@SMUiq9T6`aRjX zi9gH!2g3QFJ|j`(4F!v&aiTL{=?LZpd}I>KN=<`bBy`}Dh74aejGix29nmaKqV}+O z7_MGhGL0Nd64{5?i@v!_R%V?K64R9YG(oF3DYk$Btk<fv!d=j4rM#I(<*_@%_usd0 zpZ$TPR^Y5D2&8ovQ-!B_C2I`l2F)GpWETQMrQ+oPrgNaP@)@$qU=Q9u2D_IV1G3*) zrWtMk9yObTqaQYv*4>e^jO;O+6xMsE21__8;9Q{F+8L7dbr!@(mLNPeBk-FHIpX>J zEi_%ZW#-tYSEE<c?b~MuFRIdrp{#a3mPDQo*P6Hw;ZM%@tgGciPJcXf(vt4uq(MF$ z-8;i7{M|_lxuEWnsBWP%#nSNDU}&puECssFUszGi#88B;{Dv@c6x}?{A(a6c*@Ky- zgC_Ua7k2?V8Ge8{3o%x_@#GfGR7JqaSLgru1$EveAy>!vghv!1ANr!>ZrsQN`{O7@ zM4k|zRbfNVaCjbWwSZ)KbP}7iG;0)OJ@~?8h`KfW!J=lvmgmVhM}}fi8X)R^u)vXO zg)lNxZ<F4EdKR>BRR0GG^9{`0I+z}<GGlV6h`WLu@2&Qjg^P9B6aXMSHfH)}X%DJq z3s3_n0f5fw;;0SoWN0QsQTO|>@^^WxBijc-)@))tiJ)WvvambX>s*yYp!<YO?-5`v zZ2j;6$G)1mg^c4bz8}END-g&xGU-FLoQ~Q~tpcn!1O8}2L2`kFvfGGhG;tVyT*K!$ z=mRBZ8<nE?Go&~-92CpSfq@LnQ9TYxQI%xx22Qeskjcu9zG#(EtRs-I!+!9CY@vY5 z_QL^T9+EK&nka3i=~QJ-@+;RWau2l}4YbJf$<d|mqZPbn<exo$H?V165|`pK%W=!M z(LB-P9IC!vbXwJj`usQ6G2dg;Lr2Q6MjhKHSnugRIs^8$jK}lZ5fp-;f)KEYH3CHt zOo~G<V!Zu+PIGM>%Hy2_fU{nDUbFCer)R*0ku!A)5F+_I{O#`awQn9U{i0<Xp2xuE zCF+cG&x@PqsKVfWAhEA9DoY($M*RrgDZK-OZ129nL<Qf(5(FYKdm52wDO3|bQVJ5c z1e9tX(Q(>xEMqIs&+!@=`A1`4hQ5k?wZw`-&|^#&M;-ISHEs!!?=4~te|P*eGOR^v z{Mtr@li?j{mWa4v^Y650MqeZsAcel1eD=NEhWn0npaDpoR<rnEmP2&XPjeGugH;9t zE*@rlu|2Xwy^^Gx83dd-GGr%5QHa#(!Qi%n%T>%R9cu4sY1T6|7)b31MPkY5uT=6s z1?+T~`_R|bX}2Yj5KlDE&6=1Dmk2G2X`}&DZXroM$uvuGT?kr<UO{vrzPCcAi=<)v zftLaM#bP8`ob9_qrw@Q_l9CYw?Qqz~j@ACv%H~GS>UWS-BhJ{zw6)mv9CIJ2peI7z zaSiB@!0x$EOJ`Mj_q_Y!zHKA@yWZH5gs~a7zA8thMg1IJITb>Zoig8#BDmNR9<56s z=&lQ2-CtSn`?~l`eA*&&HSknk@|7-;R$|P!a0-+h)QJ09=XB0dNFgE+vZ2P|@3=b6 zNrL#W7R)Xdz}VEp*b<2`Kx0mh-jcF~7M}$iKBOnqevzxelJ%~N%PO|%b)H>cyTRfG z&~mP7H_I;xS(>a|!9pQ%+Y){v6&0E@Fd}Z9$9#a5#}c<*ykmdg_9}GHyhy(TuHVA! zzDHZ~SVH2Gm4YYv%eg__AvWxD9~>7J3U#O3ajVj{NXTk=nmQ=pW?Np-w~`$Rvfo-q z6eR%|l-6ew`N)bubq3mQEmtekVb?pzK2BVC+{QcM6u>)#k4xJuFrTZ9u1F+5!jas1 zT=#v`CY8fBB#?))uxBPU;=9>*;;a0+fF}rU%O9nwPuo1I#_lL%Ial9v19Vn$GU^_9 zd#cawS+Gd>-1lXc+C`skgZ9Cn{>R9C2lT72BNOSxB)j=43>qRDOdIylI=S|~R0pc_ z7Z%=Lbq>#rW_=ZhH!NkFfYcfoJ#57LvqFfyT~phl!`QQC)1`<8k;D>7l?bU;a@sG& z$>@^ulW8?muaAh6s_+-b0S_&t*Txqr%=v<y@>3bQp3!)C#VTqt4^k<oo+A-Ia${9p znHb%<X;Uf93(bHQ*0qH-=%L%`J`SCNtNu3kROn|doxGreGBm}Pl{bQlQh;u<>{QH) z26bLy-Kk(xG7~a<RN*jBGqbYP*at4E`s6=`Y;E8W>+Cd6Wrgu1EWq7%jCj0hF-R3r zUx2Q{Rr)dL_?w)|;P2mx)TNaj43v*59N2kddF~u|zl4qTmc0y*taC*5{MiICBm1`x z5e_=cMmwAl?_TVPc>9jy$}mOKpICwe>$5*Iuo#p>XEf%t*fSIk>Y`QcOX{9HtSNvD zgMs8l4TGc#?|=cxYNTm=v-)hu>_Xa^FSKJDcz3#yekOO8-@y<I>W+_)V9D!Pv(Vv* zMke)leL@=sE*3`3`Rv@)4$nTtn$nGE{Ch|S|H!TViBOW34DZ>~6DmeNRTvYQuIYh_ zJaV(^t_q?Rb1E(?+&C0>DGt8<9|-gib-pclJceQ;x@>M}{>Bs!!i}(5hy-d|soFB~ zzvGV3YY4T$LcHAVOJD(6_1u3vDP7o%KT+Ur?>GR47~e&<GCEe_7F!!g^Z~RqnER8P z;SLQ_mEEfkC|eKiO<R*oS(MzpFO1ESK=Md>B$rzrq|O}TIFvoH8ZDn*VC7NOx9=gw zNy{l&wuTrQySkdBFM>0NMki}D89sGu?o@w%+zd+#0$CsU-1-khtua^R?${7l(o#Nm z{o_#)b<Qb5mWK%W)^-h{m<`lv-@!}Q3LT=23ge@5Fs)l)YPp|!B3Y*%4)7&9el*d( zS@`?&JhoEb_qmAVYQ*55!omPpl?+%zrJtwCdis9kC1&-M=4wjJ?1diH-gWP{YVE{; z_L2Dk8@hRuH08zzF@^k?R-Y<>UikUWZ^aXN3HK)`?&-Y+rQ!op13LI!3-$MDqQ4?F zNXQm8)!P084MR9m5x;*;{B7fYPj(Idjj9wBUJlWf(oq&x<)QO1teSm6dQBG)uGsr6 z8VLaF(^jOfL++IorkedTA|+DG^)F=@_}8*b`TEdt@O5Yltb1SfV93;@f`Q4WoGDHr zrbct-t<>_)nINMOUq&t<*NzxmRyhc=;q$F&?RrN)H*_b@<d9FUk;4OJ!HfJdq(h%r ze61Y#aCOz>x_dZxa<IE;zUD$(aIu*+hRs!8%>_=Kd4K3XP(}wwR26ntZ}Erg*VnYR z%WDjVlU#BqicbwA)YR0Kgx-AaUYi;0RC-65#XwmLE~Hk|_$B9FQyL#DO`?|=jp_YN zr*SnsSL8%18POYkh6ox4A*H~V;3agJV&BZl8jhp~Q`slhx_pRqL2Dn-C;OJCeObh+ z9vf`oE`}`T6g;bbn;B&Ao1orB*gYj==;PQTxImC*2+l>p0#NlMiaF`QBr|e25&S&R zdgem3kV2+^m*j=>zM@W(k&hIv#CduV@I$+DyQ_@}*!U<%^{@W%(4mwiz;AN#0B?$k z5ryP!FO^R{P|Q;P`y5k9f`u{&H;e_Kd&)cXDjty)X<_q<GW}d%W>~mcH*~y(n?SL- z0vX2kQvBBe2hM2lVU%0>36B%xVN1o*dDP+$24NLFgFJx7VJ3IiHx${})yL~&fCiNO zkkZ1Q&^0;`|G@w{>?YC2F99v!q$TXix5$LC#Z&HEw6_}q5bufx3`_T(_N%X?6l!&| zLx9F$==oO|TllvQc+C&F4SN$@$2RgI3iknrFW{$w+W@xd9iYy-(O^6Tiljy}4sCyw z1qKIMJTIL)3G1<Xf@TrkIDH5iK755cIebOE{=tJ_Zdjc6Nuvz=%-Wk^MEmyqF4tOm z)pZa)AOf?#%&K8}kafHG&NH%^HA`y9dRQM%cS?P`o?ghX5p!CW&4E$P!2m7-DEZDy z@2o<P73@eJ@6IWh(WK?1j6cD8V)LG0?);Va3;SG`*kMusc<xA$V(?xT!wFP_YLJnY z!(xZyToEBm3n*s!q7?+P$QY&3)+1{kz&>fk)#<aGyT%skfG<@Ov>b^Q^@mLLbQjUs zQ0fHIX~PobV8PW$o<!GY`$kxQ-Po})8u$)S0FU-$4ETk-QlRKm_-Q1Wg}QXxVt<yN z-#Jm4z>HXsblQwYq0*fX5A<d;9H`$^OEy&5q?jCcP``D*MGm{=JI-AYE{bCxQV>Rz zHt&txV)WJ?#6$zkqv__JX%?DQxMwOioQCc|qwD$bgl1*!A}nc4>y{{e0u~JL!?zSV z+%fS4V6isF9JU{~YP3-kQ+FQUr-d{Rar8S(1N`>;SLQRCrPb+kyOxgraG^?7;jwlh zZk`x#>!kvE?rZRRTsQe8YU5hw5+e5T^{#SdT~HuNN|&+hL;ru1*ZGMeMDz=a2F|~Z z8yU?EX2?8n{Pb5$BhF7U|Cmyd=zJ&Ifg8R(ELJB()zwjT43@vrnO~|4m`5F?MrpdH z*kH0Fc`_^evEZT5K>BDCxN!B`c$0~bR6!rgt+d4{ViL-f@2eLnZ6Mn+ff@x9DjTaT zWHJq1@@vT$*%`adnZJZh$vq7<ID!o|BWSzRMbm846nG8(rg}}f-9xjp-CI6mj#?eG zJ|MfdFE#$VQ#_cYCja@Bv5lTA7O?G^AcK!$<C@1sB(>^$dZ<KYJCI(<a!MH=Ami{3 zGE1b&Z2fz+IcPOdZzPNM?_p8^Y5f=ZzbTQd1D)e~0+q>-B6VlyIkVBItBEc?kHpLJ ztlElJReFt4mZx!%u;E;s7RTIoD2z{zV7Ab?p`z`%e&!wBXifKzfwfA@O<b5=e#D=z z2h7FD<5iu1c{OMp&H^~*e<5MWLD?nPIIG7BorI+g&|2Jiv7*W?KCN=Awlq;rOu?YR z>J}x?WGg>b##n{}nNSBXBDGPY4<yg+l;a7vv7r%Ecx^z~NBLH6lfY3RcE&zGNU+2m z`8*|`_-92L!cgm{@^wadgl*<gc?^SBplgbj!&9XuMOCb=-0fGg%+1+<Ea*P_1#PR* z{bQHxiOkL_5XBW1_>uj>&5jLh7$5H&z3^C^x%DAxfu92`7M;Anrfx2jCpbiBqRdjp zt&-7XXZ<a1=K(RPk1Qk8_KG`qFn#y&{?;O9Wx_SZP&NNoD-hRy84~zU{XVqhhb1sl zp^~HY4N7q7#Gq61h`CAOCJ+Nl6rnd1*dm86lt0s#x}*%TsFIC3+*$cx-7%!(Yux)R zJfLB+%t4PL@2=W>4v`V7AQ&Gvc=G#%KDn@T+|`gOOiue;-{gMes?<E6b`bx#v6PgU zv;c8Y*pB~&xFiz+m;6DRjoJWv4dK*$5-YEt&?5!N^8V!e!=s1)66X?{OV`Ls&LN5( z@5^7Gz%zYaPr7Q=sLZ7`b-}*$4!-)$qij6soLYi(vP#dmxeeqC0N>-~LRoqV<1B2E zSi1ennzij`3x@hq4|j9opH0aql$BB!*Wdvlty=AonzcD(t(C2tq7OJhMBg(w5BYx2 z-nuH&PC3v|meI@ssgSw;B*TLmWCCa_mAuZ+#XR6_rVSucIZbjm{z?xk?j_cyR^NL( zA-9?^VWMb8Oem~AUH{|91m1Uoi*{{qQ;94L&dnqeZ~aWu(vaFo-$_T`ro1NdMH&Ou zm-69L?|$}#`kyCvBDOSEXLgeztHjb3j%-<kU?9OKG*t54@Z%ZwQ?b+55;h?tO(U!} zj;a=-xW3<-$P$>Y)>rpe<~r%6C=Q@2*GKs5`~}D@*bXCu+^L^j-g8>4K#~`Gq7}4; zZ?uf@%KdqCf{VIbsXLKPHs91}_r=q=mT;DH#hLOx{oU;!LI3;*qRnK;EClN6re^pM zTt`IeWn&dg?6W#dHHXJ$-=O<Kb2=H!*#R+iJ?LI~?e%rt?p1bOdSywW+y}+Iidy;# z?x>ukN6s4W#zfZadZ8nWiU&VzWb9t2%zrb8jgqhAd;hRgV9Wn)VUNqWv0|q1+z&Ie z4-Ps+j^PC0qQIlLJgy8QL?hvL0id9+JF2aSm3z%aKac*FQz&JlM<1?}5ondav{{7s zqun~by|9~>X~y?aS13JIKer#3V>EtUggE?`SMB@(O=`W*py}`ftM!aJ^Y2cfEYLg& zSnQEc(+t|Ky!-lPcn-!U5^~G|m|KXxp>DagxWp6fTkY#{t4eF3Eue79$mw5Fxf-gp zvJ{vUr*@`T=SRNe%cpAkt^Tg^v>KFE`zlt1niZB7Wx|3!B2_lIHd?1uEYXRVcSh%f z*%KGH5v;$sk0e5wgw4`pjI|uRU14tmjsMQKx+jbm=^PW*N`dG!2@M7WGQMbD9gc%% z<ssZS)vJ*7+ROHd-xS_k;`jPb49&tr=Hk)wZ5*>G;@xSN%0g@TtiUuE@n#n7M7ib9 zcj2Z(0f07vX<m*)hh~8B{EPN)w*_LSxH8$_&k~+CGPv!GxsGujb7I&P{w39R4NNf! zT1N2LGEj|vij$hwVj-z8N!2K;?O^i>^_`tedxjSOk~JlO>5P11)IxOG$UZIV`jA<4 z-m2&OsQc@2CPL4vkh|fZA^MPY1=xP-Nx0oh2wc4;qrH!D`*a-zB8;w!)Gy$7a#5^V zdno@30bFuGvZCgU!u1&{cI@3m0j_|8rR8lfkVafI_Tq{IaIYmHN!YR9!73J+0NGt? zYI0};W9=ABn20Er?CM5!PF`Bbk{AyUT2vF4vy2R+RxszsocII%tn%j$4UMuSZfo*d zT;20ZlH|d6GPRL5w#}!$D6s0EA6|rdWNN-a=wA=rU2d<&SLsPSZcSy=^#1p;2IXr~ zPG9HZ6t%i?3eK+Fl!3t#{qc?m|ACmZOfTPb>&#dzet~8RRZ|Z&*F;x9G+(o4XzlHb zDZCGOd`F#xgj7!YhlZAkg6PvZ&Ecx2w``FX#=Y4Ke*t4eg}fD0a`s5pFGe4TiP&y` zx4!2o==zqyDot*nnydu10@vWLh?G`rRO*<yvYB~NT(94=HaBhbc=u<nrsTYuv6H3H zj{<XOS&Fn<=0PpDpl1O{vG?GI!1?;xxZ|l`4L5vF=?>Dd;ub2<)rU)SExjf}ij*Y| zSd#(##O9->M^he)^=86-mANkwUs-iDV@rsSYM#}r#1IwzUf)X%JW8{KRmXC3rtnnF zsTr8J!YjLezF4Ibfj6nB=Mb3}4L9ILflDlJ-?M&_X2~<I&rjzalTa3tG^(!a6y!>3 zG;14R;@gD80kEXqdoBoNP29YzZKc}xo#e{S$}CzfaQO!EEgn6r_@@fxBMLwp2!H(K zbkx}^%`!4t#M9KbF5irRoF(W-W(VLE<I+9T_$IW$a2wNh+MWd?%kSHqMGf0G;?qUC z^6Uq-gzXiK==DVz`6NrMV#ojbps&G$IJFxQ-=4_HoVrU|T5;)j^-59h_!$z8`J#q7 z;E+IU5GsZ67=!_ViSTW1S@S%BUAHl@qpTA<1&7Z8#2UE#-YV?PU`np$%skxfL2yf6 z7ew4idc-KbQ#1;kc2fjo6$kjK{LfpNA9HpITD_^IBV?qn{l|dv8vy?BD#&t@j=9tD zD#Xo~?YeKtf&POBDHbV~i^i@u4sK3$<j_@GzEBjX_wXnV^k?8BSK@+~RS17{8_?TY z>MmgJ+>C;>I0DLHFvp+1B>>EY!C-Q?_-bmQQN)S-d2N$)|CEPkaJ_rCw%+f4T@=DY zt>BjS1O;+w7R`g!)YQLaLF~jEjZ^$}sz_iyh}A5_M048QPkPiRbDmIO#FJ7WJFSaR zHVGvtUq9cm$=LXb4Z6_pnJH>Lx4pdGnCI?3>p!atj)$9HZdd1cxKB!M$%5wV@7)XT zC{OX7tiHn|^WFwD&mPx}36Vou$G`M9nbvfKfPd6_)BCx9PM#KMrWVs1t~;~>r5v%z z&gh6;CRTB4b-d1c+7_l8@W>U$buy??m)N5xMV@M(O&t4@0N6}hJ~rJ?_CG`B56D@h zs;IF`vj}NcKloIulpw^%yI1&v<CDoh9U@1;&bYySg<cX8xkh?=q#hTcX`0Ww%RY_+ zn!27pbtsmjo{zZ=U-hgsSfw7BPt@O^WYyDGA(@lt>WLsm8UlM44xoR2i&<BmnKi)F z=#KDzppURTixCeGtKhWgSI<P^!62FvJm79zW2&Vm;`$~^bD6n|)HCX-1tX_aS6k;b z9{1)pk<1!N)11<u)SW;D95pMm8aCWfZ|CTGDKfDnEl*1Y+((+nmrQk|&TcDaCKs4@ zRQLBK)ID-XxtRNfOg-IcrE0~%hKj(yDH-|vT9)!ZVyw&{*LoSyn)k#xQ7+m_!~Q^} z&6u{MDv^^;O`7CmpzQ5HU?j~}uPsw5o~`DIFdFA%3den&ZIz<WBq_}3zD+L^-(0BN zILAe67U9Ynq0xPz#u!&)0rP0iS`Epl)GNv;PCYz8x@I&8C&6Cyyk;@yRn6hlBCah4 zLph8=VN2Z{=e#`VP9ZnPLT!QdEZImF!8c7`r}bOr6X-E>`fW_03{{$O{1n3|;lXOh z%bF@*n;p*l=GX7^mHyGn6`hxs)K9j)ECK^IF~*k@NKap5U~xWyt*WGsq8DCz<IaF5 zfwJa((D!)f?IzxUXlH*)*C29mMHgPGkEk$Tqp)4WC=(Sb!NdEueW!uvsq%|r2kBxH zh)$WK;KrpryD7>!o|;yTEuKk4n?|z_uhKP+iE3UBQ(i#xyc($wFFM2nG=(3a&qT*L zfQq#ag)6%TH{cHje9A!?3VgtEgLFD4r&?V7slp>r_UWq337h~;Dg9FJ&bzpqz}L(o zV@piE77%#5_dh%0J;aHQ|A8DKBtjHmss-I>E$JOJx6?!*J4HyyC~zDrJo2=FYsaKs z^r7)Tf19=0hwN-r9Qxk8{BQP0s*Hvd*XM?Ep_1NWv%H2EYC_(_Hxfs!&n3S<lad)S zwzy+}W%J$te59S7EA)Qf&4e8H`~f=oz|iHDVWX5XZ3f3!#;;!7W->x|M=AD20uxEG zbkM31fy$FjLZ5cuk}lShn+sT$I}%}~BbMSF*u)X(djgE0d8Cx(cfRCD>CBHh%4IPT z;D#-{>&Q%>+7&AC=-ZTpNCqQkjdY<Q36>jixpxy4>=F_hF`CAB-Uvv!c?d->@#8kG zB&&sCvrs{XCHyVT82C>g9(-vI>vWeA1dRGI;f(z@I2rup**SP8rTtOq1Ybl!rgJdK zFfKX;ya;^aTu%seGOAzvE*u7U5pez5PFlUOmi}<&?o!dM?rnlxWF4(K7_*0LDF9e2 zLP7upE1(ykv{kQ&Z0qCsA7jQUOhBW2*-kH)&VWR!;V%{sKON$yRl)lnPPdG|)_Zk` zx-yb(rb8<J;GvF18#gj*+IQoPJ(rDpXVYK<;F3y>i@4jy81sp0j@m_Jq6;XnqBtPv zwE<|8%!~%{yddDcf<-t}!5&piwb`#>AL0k*ho<b=ZHdOu>HP7fcV$_wHH_5zc9QG| zPs4yy6_{I?Gp|~M6AJERC`Hsq1km2sPA%@-zNW!nBE`b+63tFDq)8gQ30cLDNwz;z ze<^UJdx&Rxy@kM~oz(N^gf@{fcIqHBM7nQzV!dQJfPxEnLXQ-LMRjKd&*p_nCw{xQ zYqxz>&c)R$<6<`eLw{>Z8tT#|$tZJ1IVKHC%ZQaQ^J_v#)%FjEp9f)1#8z6YII<qp zsO>^x#x?0C-PCX@E5xDUe<szxv$qyI8M{|j`bKaUb07a1!f9rg^JEU!`e=fUfMmiD zAkEZ`B@sPkc2x3kT7G?zy#`pDdpnkHbE6p@{XkU3X9E}j0jI~W@}IO+HZ&3v*x$dJ z01}LeFhwUfm5FLh)tTBqV`5?!TD;j2q{z{0JjOnkH7j7*Z^u0ZGk^-rqR46RkF+Jq z1`+xSGCYd9c@>{-8KDu6=w7=!x(ztq0fTs~Y~g+Z&F>Q&(f-4Mj-Ft&!|-JwFXM?g z+~VLBRtZ>+N3b)AeP)gy0y92}k<AqvaQp#EOD(qGzbRFbzN0f?kkK>8!*3rB683P) zfPG=-`Fx?B5oS~4?|n%8`GzS%%9L#7MVGw!Th?QOleVmI**?t0`QOtk@YGy%JXq}G zffO&BG9Vt;675@71GIxBCpbH^C#c�z<9Q>D3A$zE0s$qd3m+u#GA?T_fl9Fd?W; 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%0A`f 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⪻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%0D1$FSu`PRxs*Pw<J%@KJUpB-?H@qoo#C`l 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 literal 0 HcmV?d00001 diff --git a/src/theme/themes/images/jqbg.jpg b/src/theme/themes/images/jqbg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8fe56f8f0be5a68a074f73d5ac566da3027df96 GIT binary patch literal 272303 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 literal 0 HcmV?d00001 diff --git a/src/theme/themes/images/landingMoon2.png b/src/theme/themes/images/landingMoon2.png new file mode 100644 index 0000000000000000000000000000000000000000..51ad53c58cffab80a36389b9795b8fa2440e8e00 GIT binary patch literal 180491 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≫C5l5A+rM^0dvU<?IVOyz}BQR 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 wns?j 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 OaOmrpXxBiTU;YP-C3GJE literal 0 HcmV?d00001 diff --git a/src/theme/themes/images/myzcbg.jpg b/src/theme/themes/images/myzcbg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13c5116d544bd59aa46622978df96bbd201d3ed7 GIT binary patch literal 815898 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%0D)H*&5k|!evt~j=xd}t&@tua;=tKW9>iBZ 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 |Kr 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 dG zbF4Sk7tbGmo1wl4BRqqBARUqaAfw*4^A?OOF;_JT^@*KCsTucuUl|{zzR3PiY8_Mj zbTd*ngKAYNFOgQvz30U=ZDQ?mr14_~I6EQRbfHF<?T&Cub2W!sPkuFo+^CF1|7XRf zhA=+QxY5!v6sU#>-xZPL`sN-NcWwr!82RmV#_Z)<B}b6AW>h-<Tb0iV6>sejqIgq5 z?84)%pTF7c`{l_-cYInGi3oAS>j2gU(bq+S(w!cT-m1>rYUTZEc5cEZ?*w?Mce>iI zc@=Z3{FtrC+=&T7BAf)f8b0M%=D61-?cx?NB^Dkt=JcVScyzTJo3nTXb@8|yC)#=7 zb;Y;Z&eWN0+$zN-&Wp7*m`5(Xv_LL2M8N#C^_>Q*9!Pn2qJCPJnbT$T1fgS;a{pMa z*WuG<FdHV2S@0J;b~$(v<6swGtGgyl@3}G_yz1ypi|T9mR4<!lC}u#X_|8UCH;>-h zB0NErSf=DmcUxqrRf4C(yGr*Boo<K6OkaBrmJDZEtm*=n$l68rUB**K3iiDGn2tj% zC_z;~-NoS=KO#&|fKf2df{0@`c<C5L5VUw%RlF5ong*0b-ON5U>RYBD3D=K>L=zf9 z3rdN~*R9-aB1%<pNb<a1inAiSkNMs-k7<4mdm03-sl76}@yhhlHv@%ZYPdfH7af`o zjrdXf`_6T_qR37o{x~s?O|Cb8aOYnicHDF~=zT0w{tDi}@SFy6U$g$~{uC!e>vKie zfqBEm>0Or9QG0gZ!Phmr=SQ`S-&<dBNrDW^u8h7uy?%LnBLL>|9|kW4Q3#s#XGaNV zA}8!R1SIrAQ@sXO=W>S3<BPL!2E9E0f@E)^G+mztP`l_oYC8z#qZ=&HBH4-=KclmZ zY7(3FI#?2CDc+}k`rM_YRlamwFTakyu7h~ioV%=`RMf={^#DB+G~7^FUNj#RlvVPl zM=h7KqA2u}z%nvrl#ZpKy!iFF3e{~waJe{wLXdZMzG&ViLLDzyHrQ`Zyfr7y@w&vK zb*6ekOkXplCP7Sddb3KJxG2bfQKqUL+xcS2#4-ENoG!!%E;u#&(>YEyr0g9)C*e{o zNmCL?dTtXV*V@2AjA;Eau)@utw0323PvVCN;6QnKKxs^L>CtFbo$j=5J0CbP4rclZ zNY$JQ0%Dmo_aM5M&Z*lrW^1GI!shcCG)KKFxu|iiKsCOv(@m3g8bC-dsfoak^|P>( zZz-g;OMR{n*62p7y4ex_AWM<L{m58QAYS6X;7wE1KDXs-tws>1gBeBa^Mko7RGK;o zj<P~8kvVJL-cI8o5k~pJX-mRvELqQ@y~HJcE%J*LMM^oysF<1YI(EuYNPHJfV^c7v z__+h=F#$JJR;=@U3wWj4kd>^_P5DAJDs7kHJAGyAwWoG-^TjV`|F6Xy`=_E%?}O{k zaZkrAgz{C#B;0{)+qeGdY~>s4C4?qL>AZWT%l;GoZ^w#OS;`4^YIN`7ku3&?sdg<+ z<IKl>?A0H56EALHFWrghQ{5jJNJ%p#@ix@ZR+i4C-R;fkoiH)3a`Hazz9H`eDoQn< zwa7PTc_}b{w(#YxWe5|0C?+BZ!4-r6i&f-;wphIwm5^%(qDe#WTFg^;{VCm&%p2m7 z?@5uu=?Wt{Y`5sXtg&6u*#p6r5NtQN(ihm}YA9{U_%Kj*w`bO>-Q}o#ikkcj;#T{a zReT!YN=)+PRmMF?zGmHyv`AeN=M*T^A^d9X<lv>yHoHWSr#QO2S;3?OUEE(*1IX6@ zH|h-l$NcxYk^e4iTQ(s~f{ses($s=f?)(6D2(e?|OaJ<e$NrT(8KRL)8GUk(aMoio z>HiGf=zaC?2CoKpo=neYMmQ~(e~rN2N2KY@v*c^|ozr=#s_W@E!YE9))l6d%`gB?( zTJeeoa{N)_X90IX8SahrOMgMSMallD@Jdy(sa!w15^#>e<RFkKikn|fbR2<?uEsU8 z2YG>c8VYK{e_1t8o2<P2qG6dVEas&4ts=F5K+MOyv_27P$#3l7RK+E56Oj}W6zAVh zm&!3y$ryi=&Gn$%wQPIda@+Ekm2KT|tb&3HjtK19CPN9bmziTV!)WkKQ9mq1gfvu2 zt<L65=&mECYH)+q$e;Qlwck3kx$+$e*`491uuzo5o`(l{A)$wGer}n#U%HjnP>4wB zaAL<6H)cQyhrTWF-7|ZCYOTw6Ftk>G$tN{G$U(;%T<DB8b7M1wEJh>(ya9PVqU|;> zrk{Vyly4~do3D_)fkKcvNEV1m&peBM{!Lw$_!;ZLjzhymkoS8QRbr$vd6w}s73F5P z2SClWp>Zl$FsZbPfKDPxtfUbela1%<+A`6(#g*m7kKRf1zrfuY>SDeFJdB(NkL(=l zN!|eb=@-aKwCrcZ+4j5~fond3IzpEM0Op)!!$NZRc)I@a{{Fvu`v1R?=YM!0i;bx9 zTri9;u8dUNjDD&}_+10K*inDX6h<SiIYFBpBj|N*Cg`?SURWF}ixGV1CFQ!L89=14 zHuL(6useRKVRwNa$teFkC`@r>(pf2NzQZH?e&Yxi-%kXm+$6KEm4(wCRPd6F#-XEl zODOOA_UFjB2|rK&wyv%pYk5G8*!|Lwmx(Pc#wJfNU9B88n{~?%i^Y4c&#O5;8Cc0o z{~enz&n6Vm#Z(3R0m<D%`GC(%;yC2?zMe&S2rABAqs#MB+MwXh@uuz~ksy72`s``^ z_2ztq<*-M!5Dlor__rUQcSdnMrU>Hy#CN93THpWNR7v<3L;*BK^~`b|rt6gLIXP(< z`~`8IzY#SrFA5pf#Stc^vT3W?1)W*qjst@@&ycaAeP4KsXPDwc`*YJ*4V}DIdXjzp z+^M*`oPIaR*m-o!IuHJMgoxK8`5O5WOKZEmyckv|qp-R8c&G1h^j<(pD{i`K<zJ8z zhc}!kMFp=fwEMJ1T3nYTYAWW9^*td0S}6Q7DZp$wDVMx#JHu9)8WnS2<X~8k0d`f> z(Dj%^b6m>auBS*%<V&4iEjxEGob@iMQCpl{M4K#-m_7wx%`=t_Jc4x&Uc*R?QgK{( zR^oZ}u2|r7EjqbeU~a*EUilp16ADH0t)u0@chDU&1GpQu6UMT1@)PBEnLoSz1zFoU zEd7i0!`nI2OH{v16^_%%^I4x*Ss{R4+x?){RqZHU+i@6Cozf>u{9H?@AO(DE>SA}e z1h+U2_v0?*Y+qrSJUHia`r-%{6JNH%@2i)kUQ$S%tcjgTs(N&NF_>hH^7<IRDnjO} zbJD9;8FJ5AscUK#(^tKa-Y3o>hbN*d`z`iKFW{Vnovgtwb8NqicwVNkp+!>YUiuJ} zyI_DYgmI2jx+2w1ua>QdYs>?%hI~%{jR)Xf8h&2se|}o*F)=AUg&jJKe)|_hevuVj zB@&?epm=5C=f~Pxnj0se!5VZiYaxWPU_(?}rbpMB-_R_00mAcm={U>;GqqF-Y@R}! zx_WZFc!{|ib%<*F-*f{N)I_+`cbC`;li&Bcv3e@+F~TXDfV!)z9G@!xF73QHkkHK% zhQk4EH>_*n>xujt<EDIo|FU+SX9U)d>71AmvoV55{jrE&p1n%l{Jf?XJB9Amb`~Qt z$4b>?d9Idf<UN69`;I;Eb<v?06A0j77)SBUoIRN2p7vy~FC#yfkPZBvw@aH7*oxdb zfvrH`8<TWLf#f#h3&ONs(qw5g#(dm}kUiQc72^I0PUw`xF*JCl+M8?9sd{TI;$uze zDdfxWaGs9nSIT3S305MG4NMKs##kD;ajDki&$*``5)G+;@fKg0qds0F&Dn8nsC@jB z8W;Ak_aXm%FpB<5&YMv_=a=2nXWJ(Sj_UzY*s#9BABINcVU=e4DH@=p2jGbrAgE=& zq;|~&g>MGyH7*<=H9a*jc@v=J+g*+e`r6E|0u`Ss0<y>66+KN^OJQx!NxKsF*T7-D zaShIq7P>*+!RjnZa-`g-&h~)SxOzY9UT|<uj!!v20jZ;Zji@|fn>@b-NQ=cBC3Fx{ zI>{H?@^i0pIN#+@z;9~rBV%WfGsgbTJu+&AooaC`-FC?uD?L#%flv7=N;oH03Y_ul z37K|!4=~-t7F0Zgyep*&!)0SjHpWP!{->{Ucp;P7Nq(P_iK6L06SGt^xeTN5pfxv` zKaTLrQo|PibHc?|Qidx2sNP$EVX?krH_;;gJsu`8QQnBLHzyaJV0(qvc)!=}nih5e z7@!9Jf}C3gR%J>nbjIV85qUWcNJ`$B{+5mq63STRhCqquz}#8!JHKLvk1B@tk38oj z$N0KYzTtCiaJ;ZrofW6va%5{AZ9w%&n{o3{@njQs!UNyH4*%G#8MuS^jUwE4;0<kR zFBbC&Fx6?(;ePf^o=~g%I24Vi8qs$f1ev}h`W+n0!m%}S<}!Q83QA!Jyb&}thQHD1 z9-;wxz9!`wo*=$N+;!FIW(`@ANti0O(|^wke~FkKEk*RKkrahsLBT8CUCqw)P2$SP zpwdsDd59`5xBh4a9cfN1(R+LQ5XbIkAzHMXavlE&6tKy}A?ZAX5>HV&t|_GUH5nOC z3#Rz_`_ID<2`|H4VV6#wzoJm@gFMd-0H}%Ot0}br7I;<R<vg;5iNEL@RDDj8i+SmT ze#B!^^%Mo&y?LsG^rkZApWbN$LEl>&4yrjj1s}D!1#sZXG2T3naLZJcQw|AY6fCp3 zS;`h){e$-41Iaia@Ri(uu@80<!YtOWC3%+}72fO-7IPT8eYPX(=kR}Q&3F4_#Lxd+ z!=4vP%GNb7#$GkCzmb~DW8oZKoN%X<QMRtnnhbqQf?jbQWU5Jg(V>b@f5}*0%Pt`$ ziIGGBm(-Iq4Wr=v!3nG#((LBGKEl@f;)=i=Ws>9R7C38{jB)4Dzgzg`HmyF3aW0y0 z{tJpvNoa%XY?YCP`V`L?+EdAOso>_Z|HJ_1AS>17GQ;F?G;lHIQSW)*@oUnMNbJ+Y zyAPg^kBk;meC@WI<B^N$T;mz#Cc*Pa{+CAt4*J&b?g&nY+2!cOm@eO^d`iKB7za?g zyRe<H3LjnEwl{=wp4DQjrD6rnetZy9z`UA8dIlFWKnMM%44fQFLb$wtPvv7(s1rI@ z5!2AF!5)|7&ueNr&4<Ru3oBOKgL4JG>U{q^bZ$P<#0&qA3Kt*lSh?!Vr#DJs-r%_! zM*(w(RyTpHR%{bRY!h{<aznPS*Nn%SJK5raM|aB|SDP+Deq*Lv9*Oz2(J^zz_dMn3 zTosqC-%1}`6L@aT-i1f)4#nmyrl)BWJ&&HtNdLmwO7OW04*NA;GV!e*5Ee#dz=&3} zKU2o&pUtr+ZW7_Z#28ho?Od1a)~*7q=Sj$cN2nT!z4_~^y_T~8z!%G}r!SmPT2p3Y zDcyKf_BK{`Kd~wi=L∋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%0A_mG>4df{ymVZ?U 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 W*F{l(I3s5oy`*E4*IfJG!v6sLa%K1c literal 0 HcmV?d00001 diff --git a/src/theme/themes/images/xnkl.png b/src/theme/themes/images/xnkl.png new file mode 100644 index 0000000000000000000000000000000000000000..dd61284ad88a7a5800f5e10c49b01ed4d3fca62c GIT binary patch literal 627318 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�g<^M~AZ`)4a%!6y@Dn_PskDAaWsh_}vP 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 `!SXq?o7JyGqE|UFOj!hxYeR>=4*Q zsM3s2L5LGV5Z!=<JQ3@ssD#1@Wx}u^+pVVvR9z}nlg7t+7cttau0GGvk7fPVDEJ5m z_E>wY+2p=FtrGii%ZIJDj<|&4u&b^O*1S9_Sw%I0IG@+$W0Buqh#xJ4)$TvA$m5Mj zs3PC9W{_);lad1vEh6&AT61nqH{0b|dH=rum0+~GdB6Rmm1%&znEUlGP1W*Q(7blQ zLcmJDM~?hS!3uAl%mb^O1{4-Tf)qd?#m2eh4t|c$p6v&Xg!J`)iYLi&!~3>wj>(@b zA2#+&5a5_%x@xLLYw@%D5t<}oB8wJJnXW&o#ox?r_5_MAL?Nk3BThRqy4t<*3uil~ ze%Cd)zJ9dN5Q=^CUh%W-kjh&5n_n|{8K8y`Gx0u=!ns!!IzuR2FJ6o{1-<vZQd}oJ zs?1s+w{+({@^_b!nkHfrOsswA^`wV~uW{A4{;cg?GbW3e%z;IP1(ibt_)xU9Wf^3F zst4aZaO=KBqWvwV8YHWJyDahmz5xbzd$1Q�C=FmsG?8616lm@}7)#;slaT_?$3E z)glJK9#ssKdKiZZ;<0GmH^`JDKpUG(wt4W98Vy#SljbRBV%o5+94pFt1RK@}^?YX! zNVfUKDuiLV6{_F-9Daupd?qzkL}<CJ1$w@V#=@&hHL!lsTA@m*Q#?iFRjP09X@u!m z47yr~b(Fk%{>mbrcmK&43PsHCAds1a!G2<gTJR2y#K)G@HF?Y$#=GK3R*t+dJ%S7I z(nL|NIjH;FT91P6TVMIjSiG+&oivL*d++^GsZm4Pjp_xuQ2mWL`9M#Eqw}724TlLC zB26Wc%!i{~y~N!SRIOB&gi*9(CChtbD&$vFy={fXeiA99a29CyZn)H&R7pNA8v__D z>y7#I0K)|Co!6dp&tXDus|2!jLV)(93fwJzORIH@0s*?6ujI^XkKnWZ64%>*ljQFw zL-xq{BD0K@Bl)3OL36L|n+fcH-~#9nf^&x;L7nUH5hQXw$hST<YhpSf72-1N`^!Xq zCLkq)puqdPFIm&1Fe8QQTlRdyC_$PKz#1^Ewf){BoAKH-t3tHuD)Yh@AGT~KZ<YP; zi$5kp?npyZpyNoL4IcaHworl(oKTz=04<AKud7<QKA$#?Qf?|Sp!(s+F+C7&gcS`| zHw)kt5P>7mEtB_*1hSmQ<5P}~?*-i!*@1$~|2!_XY{Cv8K^mo8WonNg1i7*4{?XYf zxW4;1`&aMhcQKdO9iE>I-@ZHRkorxGz(S+s#FDEIsuL^0@k85xhxyxNXbBS<I-HbV z;Z`{<e<)7HM4wD~PKIdBY|b&zd;9M38?USC9IKI6#3dY8zCFURd+c?4$)0~-F|(Y% z9-4|I$dUZ;N&Ax=;X3u>dW@RuW<0}X0$=v^3DtIj8wf|0%ZbfjIiK@eVNcj?lKoNo zX4?MKnA|U!gJ$2#zzuuhbx**oHqrDJpD@4q*iz;tr6;V4`w|dT)@;8WwRmPCT0ZDx zbFsH-dA7I7m^)FNE91|W`3Dy(vsv@$qB`}6MbfNNdu?(2*oBR%j)EFQ7iFepan+M? zx=k}9F?1eISZEr|8|-|`rN3f%16ibPk^QqON8;I$h_CqR+(d?aB2-E2YcYgT{lDvH zd0Qd2OjW(P;mzmDmSPgrhRc_J)*8A{ED-9dfl)A}RmmF*19WnlN*1Uvl7nMyREEXF z7D-!kK0Pu}7%?JO6;5*pVnHkyegukMXM<9rr{&8MA9~WcSKeh|s#(6bT*lom7ATy? zN{JEhxtR9)lF|HgxnD{$BmE_cnbS?glvyP-AK4<BTUwZ^x(+fCwI_oM(O5w^pS6hJ zQ&Vv+jw;>e$rwpiEu2AcOYgh}5k6()QX_2j-RlwOG;%jAN_n;E1B{E?_JcHA%ZE3I zdB+-Q7#d<0>703MFgOOdNzmy}&)N6oUyrJaomRHOEDf?CQ3Dhp^3?Z=!&G9rA>Cws zON!1rncPjN*sda;$<3^&TQ4H=`{V9=d%Nyc1+KCeRNo!X=$j_5TU(@Fd-lzq6eSRL z47UZ}PD6h0&=WGUTh~uSRNVvXfAl9@N6Z}D+v->48mMHS=vkRqa?Z|H6BCwR7unYr zqfv(-oQ;$S5wz+c1;EYAId!`r4H6Z`6VH=~%+*0C+{;use^2gyn^4hV(D?U;{j0sA zgA5OTu6ZS!(+JGk+Ndlxk#(|ERX5HZg-fGVNDWH+Y%XzA_50^Xa+V97xOtD=xxWFk zk!|AgC$6ho*C!iVd=htfDZ1B_hPl^;^M)@MNDFF#^}G#hHLe1Zd90J3o*G10+mKk; zV?Qv&_RdT|(hC<c3q%{VyTAS|*tw;16su`Nk*1=d*Vge_jgl77QfV6%FpdEN6n~h$ zHA!(8QAMX8d*2N4k;wcr-_b?-xCleTfc+eAKQcN?h`&LjftUHtmHNe_wgZ9THYu(6 ziw-55<Mdv$R)33L9iah`!Kd2@3+MAat(hQ+ojnj7^@O^EFx@bV<B|Mb34+&HPl^!k z*Y+fCXY>+5bStu?(a6JFu<v499rk|@6Mj%(i~Cm6n}u>(tCipn*xc;YEC7w(8<Juw z-Cn<y*5TlZidY<|<5ur!sWg7$pidE5m((r7rbpb@AoFkNgU3iGh!P=yc$G!HbT>2n zTgu_#%83&%oc2v)`=0pT?7$&sI(1)FSwKowYta`^^O7k|CFRx-4Jcd^{a^Hj*hwf1 z`{YS#SIGfg8vv60QvFyQR;c4=u|z>^V29$zp1Y&KqY``{OxE&yfqTTpt(d5@OnFW% zz>0<;kyt;4<T8pCX#NK4vWswty0m&G%8TMK6!ukh-7Rn-T<iX#IsjCCyNLFHF2}%U zi)a4XZaw%=2x|OkY;HI$nBi|B)uDXxlc4hlikDph)~TtKh{JY5qdZmfr1SjgtZoxd zhDkr`InJ+@sd<~Hktl7H)Uo^!mfUrIuKTV-fe`G4p`k@g$t`{^TMYgyU&`FvBWzzi z=e+yMI=xlnf>2>69rQlu=_)`zH)uNA4gMGgOL9e_fZ&ak)TldjrQ9OeU-uMX(*h&t zDLyWz^5tmEa$J-Ydgrx)z8imgxe1<Me>G5~XKb=B&uruRC64nq6lwL^!nx5TYqhwS zLzy0|^sL%bj(`nqAp$g%K~P-;I)X5n2DHt>JITT`$sBL4)7@9rVd2asI&I=v$cO@m z0t-?=Az1bGC043?bf8cuO7rckPrKRmv|UtY!0dv(PP3f+TX6R+!bRAomXS`GWR*h` z2!*ggJ%P%ma3<5BI=1>Qn()**c)`4($c*jeiwENu4;1&2*=mD^@gTiN)Cw(p>Y?1d z7>$*KsW%MdY2{}V3<(j944IMb?_XX|&2G5KN*g9j8Mtw;Jy!8MALL?klubLf8256~ zDOg5+V>EgoDe7n=W(!Wt2O>Za)yKP*ZH*>pd4Jou=&XJ~vFg%SAcG=(5_cR;jCKp` zHpLTV=cdoGBkTf0{X*Lm_aw<FW??XWK@p0P15dP+k(5SOYk2s@!k|`ryA*R=dD-8E z2kQsn)Nm(_6pGI?8_p5_J1Zsv(Ysl8SEn^*hlg%8H+E!d%bB2CI@rY2PhTLzV_+yU zx?4Qtpi+6P3q%Cqs1S8O^fx1o^$jK@`Wym<-q*+$u|O*#+-wi1Uqm&aV^sb8A&@0Y ztarbjlAjrq7$x!&4acx?2QsIgW&$D$2>P}T)gd1bS1JmN$z|jA#yxBtE)H;=ZW7v@ z|Cu|x=z58G{*!<@f|wETvI11|2TckPFbzL{t$LfXJq{(n);*e-TI&5Z3|Z=5oR|zA z=_)QV8GCvk)OiaiI%Imk-owyx;U2=pfN2MCtrJ(9e4_usGfJFK;)#9oB{1eQ0d3U4 z{S5Z)vA(9c=K{Aj=v`htyL;szyx46>f#7w;Jg%cMq@aWhyt2~n2l!?~1Y@hFOdZ^l zx|pXQ*dfztNVx>Xele|JXX1uD@A#q5*#ebo@He0iE2Q#&_tzv~O4~y4-mo!T7Hm_( z-54SGC}BmlkB|GK0t?r=-ue^lQ;U^s<2I}K_^@GQY`Bi&O!ESP2x~G~=c8y)%#D)3 zq=0VQ9r^%P3fw1=Hxr-6$NC2CLDl-o6)8Q>I4!?ENvXjrHyv<Vz=;xS@&*@@hTC4X z+#HVnTCKgXJqj7yw0_F+k5G#fD96bp$8s(`wu(`h<O4S-YY6V{cJ&dRI&3N)`@xtF zg81%6IBec#m3Q^W{zL=-K838k)DuNVvyTq2NH?muLeG$8NGAwE#zrN+W@cn?;V(cA zNd_(cnx&I#dGU`$W;EE3^!LSfJo9<2M>?R`mzNa{QFi7CD+)V|7KuIM`|`q<DTBOs z0+kuUnV1i>i%_g5aD3y5hByJ1<<7d?a_vhAUvKZtD!0QEH-3eP=dqkEE$Rh|ZAquk zv;wB4u8SrP+;;M8$6pMoEXrmdSCx396P1;}!b73y6O9H1@fcE0%fwIgCr~8XLfIld z6>yk3S${c<`uWW@_i2P<dLtMOWQ@}6gWyzAnn-)>JpeUXhJd>{U|6<(u$_kV*ACck zh|N}PeC~a1@#QRyNy~KW^vxlX$gVMG1H(HS`>m*C&@Bp_M-0c-V+5!Pba#ssyEgvx zbUynfcgIKwNL?oGmntL?4D3*8OAPC(1%f4_-D5hBVC`{aBS;uHs^K|~T>zQucwdGA zj+l*dhoS??6yPzPDxI-Q;udHG$TIs4u#hP%n9XbG;zdzb1~CU;A+_><+_1i};xAPq z!?FnV=5C-bEoLu|f<eFQjm3cJYk^E8XzIxukH-`kpr(A$fA5UEBYepj6vHG^t`|q= zJstuEaU^0j6vvfkSfgk;Kt|0q37ALUKtgFAiT7hCrmIy#8tA*l%L_dsikI!I`l6r6 zaSx&q#^E?kSp^Vu5TQ9n0mYT8x)mYQO&!RFLmYe1eniXf@|~tX#@K|vVdKjjQ5^s4 zz_0VLfl|P}&1xhzPDXarQQ*9SN4%1;sTf}F<*qM#7$@s35jeY+g0ExFDcio;@d^Gq zV&QZ_uK|0|J34M(Ipfc$G5cFm^lkFmvu?%*${jCFZM>j_N&*JRDr~AimYuk3inphW zR3PICOd$NJ`Y%>q1ySGD@?Q-JWh5HOgJe3_ZZoa-HZ49%0%1dGY(<(u<F5^uf#4D5 zPz21w$Ye0b141$N8aVP)Az;%4bgNIX<k{ixe<fQTLf_L*6ul(`?o*)~9S<sXJyO53 z%jB+khJd0qc<sGiWb1ykzY4^(wBvcnMM8KK06o2Gf`{CVv7FJzKXF0si76>zTsK?2 z&u(Ttw&!Zo^B6<(mAqN6j?aR2I)e4~gU)WkCHMwgU8=v-GjIXkm-J|q74~)LKw!~5 z>23|58>-bt9n|ji^xrJN3-M^p1Hu>swuMs)QiX;ZoWL)KfnfcVvbNQ%nDDsaeyJu9 zVMxQ*Y#<zoC2$7J2r^YEha$+3RUp<7^`@yio=7CP+m#AjKz}tXCm$f&<0@qB0f5M$ zTZj=w3uJx-*d;-O0BAV;D5{mkuquscI6__PdS96mEL5+tIsOPXy|d$1Kg(okKz$3e zFRNjJ1RdW)cLU}R7zpggTRDS^gL7$FvT7KeFZd8QpZcyyE5&geQ0TD#hm}<&A60Pu zy%!kal!As}9tMa{dp^PvY}!^nkNO<DPD#hNTkwkwDv1UZLG)fB2P6;(>MQj7g9aL< z+j+LVD1BLl9DP+ktRFpG1^iH2EAtm80Qf|4^tYiPK8>s$Ny*MU#t&h}Ay`lb5Epp$ z6R?iuqZtey0V_ao#CI714_di4^`S6AA?XX8Q`yXOL24feY>JPG&_fA$650=cfshhP zT7VS~7J9x^((Xl6fs2*I&{B#sw{BZ(7dPecx4KtXy9VwV+sQuL^(WtAq!d8D5D+ap z(J@Z>G3akp;ZWJCwXRDF0uo=M^HWwoaTB74c`PW5w3-EG4awpgKbx;}l^^yMd$X7E z?=Uj;zY;&Y#GJ-IUlDQRo2Y(sr{?x>Ex<cbdWD4Un^ic7ZF*`z?`|h~)1lD~;!rKi zZJ2tLeP|CK^+4(fwUfMz6uvLr<9yUne0@U!tan_H`hMPkCYGvbC{MoQ*-Wcb$bu;~ zYZM~+#khs@qv3@3o8zR~_E&4&g0eon_3c$(nq|%ClwcwsNIBKo_NgYGj!BP-QH5iC zOJpSEE`8;F2FMq)_(fyC6w({dZ#zA^ik}KT7W~(f!s7RDBUoP8+tTC0J>aa>X>pE; zxVrS{WDW%a#I27hwO?_D`HGi16Q(sfD#aMKJ(fKL`~Fti{LPSgwWm$H7zF?@NZt)@ zDcda138*atnC%gQtN3h)V>E;eVV{UbL&0?RzZ@x|Krn2v=PJ(Ks6=E+B&*tF^qpTN z+dVVczBP}Mk-uLOO8bB8v6{dsJ8LzlITW0aHy9eCP`PR#FsziY)Vs6e)<Y23b}Lwf z0&+K-t)HLRozs0kXut5#Pne$cNCv>zq}E%xSiy3z<WzylLINiH(AOvsT;EuL-YLtC z6B{M12>O4Ak*16Q_dds|vH@>+QE12vaj2V>s(Rk5lNx!-md0k^P0I#a*AEvjV`T)s zPcsDs!GRtEfnyEoSbGR#3$1<=Ixm?S<n<B)D;=ij6_|X2Jwl)r5Go=<DwAFUOD-q@ z1<)3J;C~!lbyU;u7lsK)J4zZxcb7;blG3Sk3&Kc8mw?ipQqo;cV$z6oNJ)&4t^wj0 z4g2l;d;i)wgLC%T?tAZZpZnZ<Bh+DvT$wM_u?}KqHcbu~ymoN(un2mcS^8D<aEx}+ zum|Q@4!S6!+@mP;=%cc6vDM=Mpy!V?erW)$=suv@OJcv|D({9Imhuc^ed1FLocr;8 zxh9yLmGQus+T=+-Joz0HwjS^A;9JGZL4`PXl=@EZ^wua)x%>Ky5gtx%+OE~JC$tcq zg!kC7q&kY?76h*yK65VFkrKT+x(k-@7tMveYypvx%9N2eEWCO68jP~1De^to94A@N znp{b8B^rn)6C}@nQf!<V@*&)lz#(P+DVHEdb^}oCoB>ocxJ2RXE#-Wg#|&A}(YbeR zzM-9`a1bkQc??uiY{<Mx$}W}_S-Ts~t$$JkznQy+wH+^`g24Y?Hz`N;{V`ZynHT)c znT%d!8wx$!-`z6baf00zT1th$kLSOXjRX{(f3-*d?VkQ&KJh{>mjR?$;ReerV#vSA zeqxO_J-vu+qZ!&$yX`^ziMV8zzs;+}%z-JL-5PrM@nb0Lta|lyIp}`DS_=KW+|Fz_ zkAe(KyQFfS?(Xowp#jr!C2BAbu~a3VuC=WGd~$SiTrJLrS(p0c?MaYs>yZGl<xZX+ zPHc8udkm;`1oVRn^F1^uOM4xM6bF5I6GZbmZh=!DKF(3#b^ylOIdl&8nQpl(DO3j) z4wa}^`1~cXqQuUrUP&`fA_d`u=LD7m!xaGz5>dvQL0{N@xk{MVI~f~qo%xH?85?tq zSgNdp3fzck_HFQD7FAzaQhjjhm!$Ylc3GYMs5z0zq?V557%+eY+AM#ZZz4Qj++`TW zwgBw?bpxcdmJJ62sD)7+>Nq%x<REomA?KdrlcE@=Ng2FfWTwi4-<xt|YL)t>)!P+? zl|CRfmtTDj{}B&VbTbt3MbRWh{g9ll!M4G&@I<vImBz(VC~d?6g#n(Vp1D$wX%(M+ znbb=6e2=65iu+DdqXmml=+Ot!YV!Pa8}ZYFSrCB`HcRek3AtbjZRCr?x2n%Eddm+? zCa*>K84D=3We-JvZz+B<#ZASkkylJfNo6t}m2&r%WR~s!6=D3BWPSPZ#^~_te3kh^ z0{lp&b^w`hS)$`!KCn-ZnCac%Wh#>}zRYgjqNcM)LC1lvSy$%7`WF1Lz8e4#Q=sSD zePHP*$@$1C2K1q%_DEw>G!XFNZyZt1cL;&!+ez#ylM`k}bo9R!=c-YOy_`uE0w=+C z;f22>*7><^A?I#r!#%tw9wZ9T!MC3tX7VoX`|`HFG~8z5;~&^PRmSwV=*pcHF<S<C z3VgG0Hhss<c%?upwF})iV+n8iwI61;b2r7Po1K@2trL!=j2FFH-(oE<;&-|RyF8xI zO{|Nt*p6tF_P;2t1d{Eh`3f4P`)_j<$s%jHo`f84(08MLpY-KUFGXmwMZE1!cj#EI z3_IVLMQ==(H!3W`oMFvv?v9q=r*&9G(HEk2{0mInrV8nTt4s2KjYk@!?9IEeX%ss( ztL>I20;Q<;PT4R_fmP6cMk9xohx$|NPu^w)JwmIu5O!^CRS?T269472NM3{%)&^jc z+<|Ho+h{fbQ$JKq`M?ISD-Wi4{Y3Cj3A=`qlT%=qRpH*&SvxnOSo+KFlmuixgKscK ziQxgYEq(CuC!v!YhSv%HN=D1J-2|A)j#V*V8wdH%_y=%DpBt1JV+f3Q*qCUK8IMuK zC99qEWq(|ze>wmL+S5==@yEkf!i?!iD`xtk`Fon|3#K!Tk|i!m_ux_Rqw{utWvtQe zcnX*zkW$I4-Yk4Ta%S{<VTLCNAKz3x+y-=@fhGDu^$Q-01xZ911N$Z|o*oW1=Bau0 zh5N7!tSEUtfUE%6C3PQ_u<#$k5E}&T70#gxexYIL+kiEc+k02zYRz}2c^#|nZGInQ zgj0Z^C=Hsg<Xo>Bgwq}HDY&9wqA9rE7#*IE(lEeOeK-e480W{IXObz+E|-UEei{NT zWd_IZfBOX#?sbRx=v04i@y+zr(cs7|yF~I3e6k??#NJ`k#95%l!;<On{5#$NeL^#g zv4T$Av^%qsy7pn(qGH;*_G9I+7%4}YY^F>M0P;gVLK-XDYx)n4i<yNH3A|uv>^zvR zuw-=yST>_XyMh$K2{_q}1I9cO9j<1|a!N`Z(8g!)Khex(uUFg^)NA%M{Td&rWfTcP zHXqpc2+N?4%D;&`tJ#mRRFABYH|Ri}m|`m3H)8Zf-LheJ^c@Ahk+(x0w_(BO!^s7o z<)8)5A1zQdebt%A9+;J-J@+$)VW%TCI$L6F8qf&{s<>rV!K)Rvj8#MKOO4L<c$apB zD%RTQ_#iyj!kH;}m#AhMcI8i3COVbQm%ha;9e{}BY6w32_s6Vf(O5yCh_SU}b>ZQ* zQTG0wZuf0b(0WMEeFS8AqH&VSE-PC;7}57QY=2teqT1sQF_f*~8+=?^`8#xbVCFWt z+;-I}&ksuak~nGEG4z1wxV-UPH`xE`kAekrh!pHSl&8NR0$Ni~uw)ErE2P<cb-ryk zp7#l>gCr>U#$FwYEP7i>y`Xa^jK_`yoYd)s8S6LehBpJ(hgS2Q=u=$Xo}MtN#>k}_ zi9)q6vy4zAc12|y?~&KR_V!Sh-F8Ex3TNGyHo4BU1O5LU%RU5@W5Q3oPH)qRGV|7c z*W4gFn!LPt$;*R)o@Ky~0M@g4U7`7joXC&k@gjhj9B-V6rm3!99!_qSMg|gQO~VYH zPSsO1(;x#bV}AB_+Q@dQNKNy92`ef*>J4d~T(y6ys%})Yjp7J_Q=+#60*gN<vc606 zjP!%Zlw5ddKgcN^#K|Z}z(~ISWUAHy;n46<b1U1B@?mMH%Bn>W4|dW;89O*A(hxSL zu&bAkDdUebp~%ye7(S%vsXG?(kPh=c+j@FtQrsI5dOT+PI2GAx6&N(HpqcCADXI65 zK@<nK<3+eMx4zT7O;<zG_U;>_NHFAmH}ZIT=3ZPzogsrGK-b6ksaedAuT)(bs+Jv$ zHFY02Fi#%2#I^&@vQxnk1X-C<5&1DvWZoPVf?qLTU$1h7@kqg^t#$R`FUyTe-yC&y zF1g*UIyc;%?zPJMHFrEu-U)plEZp;qcD)C)u^hc|cAGR&xHzs}V#WA->_8^$e!B5t zsS#n7pK!vcYMJW30+zbGTk}ger9F{tc{HaM1TTVhUXLKVwqC?N$_=rzHe0;6FD($V zg58`sCq4XzLM#1pGN-$K%qj%zZaNFm5n-3N(;4$=@j;1Zr|x2PtsW5Nmv>{Q%tfyY zWuaTjKA~;$&x0?E9!7@HTT?~1Fb|!ct`Jmq;hR8oYD>}cmW$F$;uA&*Ov?#;dEl>q zhHTg0*xi5Bc+R1-e~Z^MRflpt()Xf>MLifwR;zzA?F;nOF9oXH7qY`U1880@bqPPa zX6u?&P(I*Xf5<~Ezi_!P_$H$qoZKYFf-;GX+aueQ#%r!Dm;uKt5{&n+4kKc}P)<nk z*azBMRk?h=4t`38@JbET@h<$B5>04li#Z#DY&etRGAE63d4_b)C45Oz7fUr)zo}Hw z#Zsr2oM+{_#}UUycf`5VMkc~^1{b-3Ap9mubsSZd9Ck%a6NMr-EgR@cuvxcLR%0ch zU_=1s<zf`aTCBq3?W{5Fv&wd(0>ETu)L#V%gj1Zqb$FW?<%9sBy5v)25stLuEVNPF zgD-j5FDUhtEO|uRULeG#*c!wl{HgGPLBur5_()BSL0X^<gGn4#gc5`5hXn5MI4!T# zM50^bP3=aey#tujUY@=X0pFhZ^Otn9mOH>GPpJt(ja%;AAH42HwbRx@P$Ii+&o-2R z&I2XOcrm`P4LEYVJFP~a$EPEj9jwFNarCb&j!L+(Ee`XXM3HPNp9^lU&dtMMOQEu; zq`A_dIH*>V?W&CAuxVZ`dTh(|p^eM0JGjN6lI{MX%f5V3u1%)X`TRoRn(fD@1t(oF zfe}qULspW|-N?HC`CgB)kg?X2gppqau<^00{Xg5u1#V7^tp@5|JEyX_ejRH!DR#(U z(c28bP>Z#+-*%-=E$LVI@$QwHE`O2bXAhlPeG+wm=Ea{yVX06=qe9^EJ5%{9kKpYq zOs7IfpaET*DW{A3-#^Uvp2RirVLSR<mbY_1F-sWR&QI*s6d<QJ9`a(cQ1Kqoky+)k zK;Kcv?%QMZDPq$jVf`ZLqcd75Aa{vs1hmGD1Dp5kdVX`VduTf6liCMbqa-f$P(2;K zDnLK8dzfpSm<sdW`GMv{#T-xp*9{53JkaT%8Q`=p8AzoAaGW+89HCsexKbS@?QQ&p z_8l3l1SwJVbI{>c%2P6;|BfGX1Y30;pLUh%il)cX&Swj~CbeRxg_?}O&K#=D$M41^ zRh0VrwF$-rVnTL-<4isU0ZB?W=0SR2<euRu6F87*0y)@OK9QyQ>v%@CE6Hlf4k0Mo z#>z|cWTuRtM}z7J2|4o0T&rqy&vBfR9aH=@(y+3BAFBiisu&H^jFUVKVgNOWmE*_5 zLEMUp!^p{>isA0_WcWx|a=f!czD~kUE{n@FtQR&GyNn=q;m4eAgl3Yh?4N)!ZTQqB zQtMZNaEp`6Bx-nZpg*0@Gs1kWTy`$|;r5?+5z@e|S1lQMT<}C8a}~PDHfH2`+6~_~ zLo1mN09<3^t~trPudlG9u0l(;V{5zThH@8-fA$|~Ne+wR8q+mouWG^9Z(!H6JvDQU zStn4jpZb+Ii|q*U?1yYF!TWkHNKc@Eu|6}SYPp@voJ9_?F6sI;^WE^DjrpZ?_;8Bq zWm3fyBJ^ba_WW8`R!mmz)%|uu(^UV&;9Vhehu<;dyNSWhm^E*Yn~B7U^>)gmkhlO5 zB!7q1sYlqs=t*`1f7oAtpMYhA_?WY4Qpn$J`>-u@RC{Yc7EW~4>+fNmsDX<{^ij{v zL)iU`CwFX5bcIfKtKk!>(YFsRm#O#T)*)`55cVAT@AuoL-NDz?MY0d@$%Zh58+vW$ zdZ$2?FHY%AcjdUGWY3lJXRRV;OapgS)|BYFcdk~%&($depQHa><m~Akc>q(jHNLQi z1Aqv|dHOxC?yh&ri0?_pbxVCC`f`3*=3`}82AI^YD5cnDzn+|`%^^huD)28~9VATT zC(&Hlq{aiwTmEHDz8S#YtULUSFHlpEG6I+PS+l2^UD0bZGqd(b?D64Fhx<Id-O27e znjW!BSq?-juf@$znDyDM6#L`0`)c;+y*UB#(f>KEaZGGqG9)C&Cw408MKlLwE!sDT z5rX(xXk$|pzrG+d2~W`@S0<k#0OL1MY)Wsw-o-mJ7!aTxm}vL)*I7t2x8+gqE40vS zb`4}JmruPCv;}TDjmvu#tWImY?AcNf0O%iWO5-X62!j%oc~W3<Pes2r<I)g~umjtM zXxs|zxxe<YCIm#g0hMW*sFXJ|Q*lh9*$1E&;~TjlgEed_X3DQeFzBT7pu8Jiurxn~ z^PVNHQa>^1N08T0F}|i?fGVLa;Ups<LYl^wqWX~ebepb{MgoaM77RW9k=&0n@a{+W zVrkuerTF+NDcMWXPyAM2VwS<)GWCZ{|GC74>^{-xHM9AqfL%j#Ycx^7o`r<0MvcX? zUKz!smu~l6K2vusYHjj<(x}ofR~j-J!c_4N+1jid5A>FTxIf$#x!s_`GI&Ya)*X6G z5r&|E>$)W|n*lm<=q+B2>@2D!RVo!UP73pvCr(+sozxAi%vQ7kkE$?E{B$}>r#4ma zCU4sL8_O(vGaw}Y##`yOeUipr_PK<sWZu+6N6}}?!tUEAogNU!HN^Pm;|hcK7uG>x z&{?b7@>AkT!OJ96De<oEvHU|3#?Xc20yZyYeYY#8T(u|4Uyr=(nl}=fD7^L$I)1n1 zclWRn!fZHMX#E2J?Bg#)SxXygVO_54?}5=1?r14dHsL5FB-g#6^S0=u=zgO2WZ~fx z##8=QxKp$D?VsgSMnEk+i!m4YQDl280Q<ttuw02sDkfTrSR?b_w{g)(V-~A%*)eGY zZHa*@oA~JePDdPeq^DZP*28Ci5e>z%(1XOcelL|(HNaZX5gTnBA<%`&&I2!0JM#ni zEzYihHbQJ6mzDleYZM2q1NNW^{s0N~1~9D`hn!FgK*^obbP?{)bT%5B&1Dsb6}jmA z;=pLxV3)VR4f6+X776N^H4%o)xI&!Zej4`PFEcX}!#=Ptim@S1Mg9@WH5zgji-!4u z#^>o!l1<2VZ^gHtc((Q(C#Grb0;(W(q+A6Ju#psQ1`@U@#<yajh&pT{Qe|<Tecc}f zeC%XzYj}B-7DeK%8ApiB`mzn4nGnhb%hYtk>&1h=(B+rClBSHEf#rPw0R;u{d}vDA znF{sJ<F!-_CZX?&m>KScHQWC#lLfgM8OZTEo}{sT$OEd^XcfvxXv*a)b?WdwwX!B1 zrei4m)?s~3)RBzVuCeM0uE?m{46N2Uio~Ecd9+Wm#eIu2dtjxiJ^?)&NF1I|t8ngt z{<D8S^qC97fOstr_1!^cD_lc+p0DNzt+uH&PaxkzWuHsS-$YOxgWpNtRKwpw<bx#e zjKiB?xDnM^f#yX$vNApCs#J!{^^lzqwX8`&ZNXQ8V-iB_TLw33H`Pf(_dPwoz<#H< zFPOt;j$0kYveloU5s!OXq~UktI~!eEf7Vh%-_-l{bfNac{^rj21f3MFU$$mGDSF%H zyy_HLLRTbs{QH6$?HhD_G<JIJEdG3On@}{SqezAob$UI0@KbjwcOki;9E)}UNsI9< zICxRLPaPrB<Nt!t*BdW-9xaA!H=fG=GyQn^P_gl-CldnL#M^q+rFn=n08md!m44$^ zim=&8<gOX6ucT+H)7X4Us7InsMMFe8z~}%5{y#Q9b}}AK>>!wrG1rrWfQ{c!Rw+`I zBi+&;=*WfG_2!uBU`s|k+`XOiv<Zn=FT8P#$`t!WBcj@MRKuf`@Bz(3ATV%>3?nkh z3E33Xf1dr+*;{MGhJ~FSD9K^2bZAJTAs5+;dCw8QS*UHBCje}Yqxn>{%>iUVl7LM; z1Trq&p2Qz7rg31$c3du2B#bIk@(xcNU?GU;+r-mQ4^I(kOrc^i?#GwjwpgJW;4|!X z(W5=pCwvoRrP<GrgrgcU$iq*ul$cRMx7lwVj^sZ)OZ|ktF7OHK$dlDLzg1h)m8gJY zk{*6;%aK`?Z~<yM;ZHjZk)?n(bLpBDa3&alJ8;BS%4@8p-I2<$l8;^M>)56v2W%|D zIKfn+RPkpftyAuy*He<&Jv2Y;Yi`QTif;yn;S+{vRJP#59Yp~2popP{l#rK(mTe~> zyDjfA`tPUTq5tO2Wn@hBr)P4{=BKQ0wtG-#*Ct}}awU{`)CaA3Tg=azgVzl@X4%zR z#22qOGgs9b=4(TGS3WPLXB{qW$#ht+nxPNGkgKb*0zZPX7S@A;kDAqPYD1`dgOhPG z^6fKJxzyILkk(0?erP^s-k*+X$U#{~X89{9^TQzX^%Y{}<nQ(`S{}Ti!O69o^XLL0 z3;8n{re~;ICZ_z?U_qUI&BOW(@%-SuY~=5@Y=ysJ4JPZ8!I3i&iYq&xSJ%#-piI}7 z+~hPpv~w1+h|>-^zE|gIUl`fH<fsnk#~EByMx-V*gVbN*reVV;vf!(0%Rk0WukKMJ z%s3V659Tt~_daw?)}aduY7!3KuQi7kCvzX-4zZ<TsKtgQCpgPrQr!;p(`R_GXa1hx zyqBO{$!OM-nf)zo5reb)`srgXpMnYb+z-77ip>rjJO^N!J0{Xb^N;;>84;l@8P8|~ zozYQ9XQzp=yjGPRx?T>L^21`YeTq3J#02WDoGQsx?F2;A=60cpcC0D-24I)ggGQ`D z<rN!6{eY%HxA+xu0-Qn6Sq0YxtuRd-Hpk0#9<mlA7B8$#yt818Z{*pWcK|-N2QI!W zk2LV6KFJ_*xQGSf6D7oxkQu$Gi745Xe)`xhZ>B0Q)!dekvOnAbX+Yd?NW~LTpjCJN zZAHjE3r6yxMz2ivIHQ17I$IG{l{MhbI|viQZ%U<n-!#=}hf87b5@<pml?f-_q#`R0 zG<q3TmLhxluTG0cxu4<VLH>>Ln}bZj$l~-HeSwW}^YCzRn^nj{>Q39<$SkL6<d$!T z<fbrX`M74`>$JYFBp5qq(JcuJ_CIGs))vJ-q)tzV*&Lh?dB%%15)oxreazg06?}B% z?hNnMQ{fE&PZ*JS?Y=i?{`;IqP*V<Nx=XFlb6>7d;B4CB`=rVj_U42nDXHOp`MMIl zV%pl{TmD><A^){OGtm?|FYnJni=36)WQE{=m-2J6a$eZ)f=~UCdGtkBOFatk&xtyT z1w>M%<I|T7L+z9FVj9&>dqmmG69K1d9Q5P$F(HI4+8y`hd`HYOTf*fkcK0Dix)1f+ zthUGyV#v98yYqPq`sAI6`sq!!yfCb(R2r#;e8??-{BX*A_q*rpY{|*6@!S9#9=lfU zl?&MmJ;}=}`tEr;)#-6>U-`Yh6`mtwJU=6Myqk{sM3>oXXfaHi@PX4OFlTIsMXsx- zoA0T|XY2d8K-__MW32gXfd~7M)8_9xX2G(*PYU@Qne=(^$f)$murVnGEn7*7@$<db zZxmWxJGZx$n1V0bL*L^SkBl{%*^l{}uUz~c^HtB>(Atl4Izl&xj#4QDIfo*pPP2$6 zqKOJ`wYf$9&OU+|O&G`NpM($8VqXqaVV7#lMGw09fj`~3+cBIAY*Jk?i5=BD{57gw zDZDs?GqY7C+@Hn%f<}3OyR|!`Vx2f!Hn__2I%PCrAx=b3^EF-4O=O|vw(ykw3gY|( zt=~o={Qq<-t9QJOhCylbCk{97g4Smb!={TrRT<9Tyt{}2k&9dn6eIT%pBZ;}2=N`( z$P=_BMR}w@>d3uJRPN**c&ELRpoB+Dt=TLlm|^FqXYn<mU!5Ct#!pZ0jM>+Am>y`b z`Ey``7KetL5ymoQ{Dz$p2pE6A%R&3ixrr5!P#*Je6OKi^*{VXQt5x`3hu0GOGCK$m z`AjxCeqU4+)a1oMM1SU*qMmB`ii|hcfIrvti!Vo@zJM`Dc2vfkws&D`4S?T)bksyp z8n0S@c?y=ZX+V=OZ(iZsX^b<0S2MeBMY&B-o;gsgva_V)A{AGnjK54!{wPAaeTF-* z_Q}J8_pTqXYoD2G>aCyN-{(N74Bo6d*ntWF$pF>GuM^Zgbj1QhDs{GEpanBW4NKP< z;tc)%s5VTggl^Sv1=b!GypK4&%N4S|Dq=d&JXq~vAjd@po0J_G!qr0mF6Js+bwf%I zKD(Jc7b%qOLdGgw#9p^J`JQ@@6tu_AWVyEdcSB{5i1lA~6twlUDiye40`8c4Y2e-w z{lrg=dEM2zcYg4BKL*--8VIz34sUn&)qLY)E>sKpLhA>rFS6&9QAQWc7ZeH(x@H?X zy^lN%xKp?_psT1#BgRX|bMeHebaPid?qhWe?-C#DpvOB7g9cZld4OA6<*RGgD`EN& z!GyK5px8L4$GCnXY%MYv@(8m#{PJ_6M@65$6&rwl#SOj$<0-FRU~2fiCf&ZrrKyr@ z!EdfB2~Q4!l#lzx(GQnXvIvu9fy!NZFeAtLp3EJc(&S&U1db^NU5|An-?uEmlC_#| z3d2ILdeMDIcMPJea4?PB7l2NIz^uLEd53QdJ^<`CCX|#4XJ0w6*&-PTWY@>J<Wo-3 zJaIl9@lbrQ@MDfbj*@ouX?l$jj1NapWTe3%QdqG^gqU=S|7G>yk4m)W_iwS#<on?} zgaZAsWX?hi&=OwHEF)S6qv~)B)ULtgc4qCfl<htpFFanaL`AroX;y+canw~~A$Am9 zjzA$Njq~hP&hLy%+-FXl!h(Xpk`sLtRSP8m$sg$-DLm{{)Yra<M`TDy8K9d=MCrC< z;j9;f&p)D?CbGEr$ADwb^f2`%e9<2GnDtRP%hWy{%q)W3u1K2LzSb{FoyJq;TsMhQ zl)O#NDAf-Ro-xtVh^lujH_)9l;UFDi4PWtXCBwrtrfLT{jPtRkd?AI4s<gZB6OuQE zLyvZ>x-7DFUY7C79)CanO+fF1FACOrF0Zb33nmKkZU|B<VcJM)18yXNKRIhKnDCTg zyQFaG*1F2}aDqPYlX7vB)Rg*BI!l=ra|4ipywQ}^Oz$To3Bjsa>Ksxq3@4I6ghOd% zPDRwnV-KygDq%tdZwVa-9|=`HXwGSI?C~1BhscJwA*;~{q6PVY>gOUfiJvB)293YR zi_+^5X<P`r#9#~cd+`vb4|eS{m|c!g^n-INGu-TZ*b)a(L;#b<)75X5A#dFe9(KTf zh3X=&phJF6x`;Wg_aNFcQDT>BsW5N9oBiMao-jIRA;D7Jex2ukMt7zx>OMXamU7mt z{-|#fRCKGWu%ICE9F=#nbUmp<DY3^{`Oy5yuR9R6xgP2o3>jGjX7vvI85o8JpEb(1 z-lE=J-q)U5KSXRzM7!krRa<$_!Pl?i9U<-qA!ye7f#63RCnjI_cZrjen6EzV_MAz$ zu{Oc%qxd5o{%!aFxq4F5BinN&?IAm3bsZNtHlON8oD|a3^8jW<N1XlP)^nl{2$j$k zY+quL5==B~tQo3)<K){(S5Q&Y-q3Xyy#%u^D!lbCluy4=%U(x?(aE28tRT|p0Y=<Q z`qgdyKE#_Z6ZZ19N#`+cKNmlPyWDryNPxu_X^HppCG_~ZwWKD0^~4U?_Jcc$HPbD+ z);2sK$v-Q-Wcwp{Ql5oFIEWa4gKN-IcYud%twOqqxm)YC5$sBk$GnB!QkV>W!$q<_ z9X3cz{J-&UWxRDxDy)%TSF<opKA_`%#$wNqxg5)J$nk%4E}3?i$`;UFpQh2r6fgBC zG9krSw3SU=&Y;Lhs}C9D9Q#8ghFUnrbWoCVX>l+`WD(!3$xT=i4{k=o4+kXlf!J*o zqx708!?6q%Z9w+GB$e~nH^xucFEH8eCMZGcg_N;NlRhhNZpg0Z0MlLr6GLL)68Ocv zfo6yu&HbpQKGjNARq1MeP}}SqYp`beE#Ljazb^$6`naFi+^Di!F?l8XJPVOMxTvo` zD9wN|)0mwjb8_+}d86XNsEyH+->P6jh~~UoCC{wIOTvK&0?l6&|3+iIJl?15F$RtD z<Ed2*elzE1uqdnubh&p&_ahFewK_5nclxH2Q=Fgqyp51)d#wz3Ofzsa@=T3R?OVCH z0RU--r>y@^-1reYCdvFS5*SLp>@qItx!*xUF5x{XAGu2Cp6!XhLY+;|TZbN=q3@8Z zI~8G&I(A1Qw{A83VQD{eBnId|9y&EIlJAZ*sHx5h>N%^F4>(KT%RXV2p$4<mfelQU z<wa#BKU;mK%nY0>3O;%h6!83+d_RMV;+#m2Y(ell`)f5_o9qUot%p=U2G~_BQnHQH zo)G0NB!!&1uhvBm9IT5!hst(5yX-uwSp6^b95;f;g|v_CA5rsS6M|j{C7zgn4)#IP zhixyMqF<cKJajO*HclcZE#^V0m90fr=CD<(`#(L(XnZIMYkN@ak_q}enWP9qemqc! z$Q$Rw#Bj1w_MHkX&7UJ@wNBC5F>_Y8Z+uXB6PZGL^&Wfi){C;2UWZ<oL9l@+#`(h+ zsAc%fOm3j(hd>pasqDP~NOQ-zL)*0q^m^iASqgcctKQYuoSd+Ry1gA*p9=mYnvT;C zdp2iHhJn=pJlY(Os=RbpVImJnyJYf7Fz5N8!JmFV+DLZKtp535$0{Gy8M1_JN}HhG zTdv_mLY(l_!+i5hQe4eJbwo3EN4Oq-%Azw4p>QM1<EgJeA<kX^+kcqfiozfU0<TUZ zmtw=ccig470fH1W;g&$uB8YhNHTeP$O0G_J-QYwI6zMNEOrxdKQlfUq!)v9DK{NHa zApkdF!FENjW{X#;L}ulSs(5ThiU=`$;iu{=paG@`WeYB#6o#DcV5cV@G*fLU<uop1 zB0OX5!!UkOi<ODYJ@2t@MZ08}HeQ*i?hpI<KbUG_#tcaJ^V-42pZ%sT$#~v&MiVN> zwj;^BjeEZO6^Vc*`5Mz8XuXR>)iZv5#7c&ux=qwgCQuR+7>-$4DZ9AW49mWM<M1>2 z?;?1IwU`PRTf#L<X6{@|19VE6KJ8VUPbJK@yZX@)yrL^$=h(%KjeaD${aQl4<J&*U zxKwV#Wk&TCQVk4w6uXeyt6puzJ7LTX0&D7P=5@H#WP4$9AG#Vde*s#QiN<|_(0%qS zS7<X+0W0r!Ns}AYzdyO?lUm*T>&EmFc`*}_ml&NiKL2t&v{d2!&A@4}O=u_phpE6S z@LWjY-@sH@P;lT#jya!d>>1pYH9C$pwr->}kCLK)SCLW>CtXc)tc)!da54I$cDj+9 z)1Nl_>}=!2P{#TySpjX2KGU5Wt6mye&2;iyzd|tkFW6(k%qrz!FG6G?SMEM&aAFYA ztbl?Y_(3M`;!icYY=hocU{dzW@yUC%(f7<J_v<uuBI}BMmSX}Jqi}RApJ~sV&jK|Z z!i}Pl3E`q$6=~UP*Sbk-56P+YQ<8_MOAMT$?K$>qgD1C{cCWbym#zkP!sQm+?;542 zN|=nh-rw*Uqt$D&wKTa$g5F4VI6_+TtdVzbyt47sg18h!pQG#}#T4q-7NI07EX2Hn z6+JaoZd&2~BF&XcM!D&{!WagSi!aS+MY~!JB)mQ(7#CNg2KIMU-oSW6Hb5RVa8aeK zkcXy;9UgNu0CnruLXb5|=l-7^jEPH(`!8Aj&`w*)G@tgJv1-wtEjA9afayug6H&*Y z_qGmS!=<Xt#L>k?QfU-rW{KL|=4(m(vpCuT`N;N3yvRh6uVk%W5v+PVdY;(uVOrv0 z8ukk_{NrX|nj^~qlUHQBz~G?SN0pkGG9z<|w04rO#oxAbHEYxQRBW23Kvo2_ZRc6D z`%Lb#s!!-Hb%}$Vvv>C(;tkk7ZwW^`#j`8*dDOw0Ei3eOPg<Ga;!ih)6F4#lC)F20 zb|7x<-W9<Jc1<r}*XTmDr@a)d*R6`n=$`?M2z&YX_fI3R(9}QiA<>`#CE6y#pMUxs ziJB}ayTs)av70@)vpN{RGhz>dIL7lni2ULS{14GU45o7O2n<e~Qt?<>kjwuWEsa~< z19^4NeYAqu^`y|yKGVy_?FK96>bN0v>3aJ)GI@UJlS{QX1O%=~AJfS*IW$C%%f#<< zx&wctYtdUTUmX_R+qGEKa#8oLC?9BgwDdsM-^_|fGZ?SBz2Z#vc&BIUBb-HK^uzV$ z3gQ!B!gvr+nep1{yN6@bnup)seABLD`?jd8ggp9auls?z`=VRn{LyL|R8Fp^<H3B= z?cwHUe9!s7Uj+HnoISpidX!er^Gk(b`_RzKzM}iS!|kT7CiCi1tx7KH(5~RgTIPp^ zd25V90e827-O1E`2QdRjC!1T}G_sLUWx5MDlE!*Id$lIVTv}Rt`jCrxQJ&kr>Pv@h zXWezD*mZ|>Cn?o&d||)(+wb3G`sxJ?45=1h*iDb$Zf!4ih$!(sEO({6pAS4{oF9FJ zx{(P|TW@^eJ&qdTV2x@@;92Twu3-Yv4qS@-LR1x`yN>tgeRfOWu7}4S7N@v(7sVSe z!(sY!&+=Z7Exi7)39bnw5Z;w`O0KWsDOin@1K4}oCKFUErYb3e+$?%Kvn+%`|0iPb zvcmEAq>rNl`N73fU(I)<^=+HglrhL$MeeB(=Y<)07l*0b=U6Si1OTpN5dVOs5}s`& za1oT@-ju42@z6C?EmusDiBbLpf{?z~(MJhx#3tBL<MQ@RiLm0ur$PK~kxF>>1MdNk zl<{qqKtO!qEMmJNY+Fj3ixJte&6hYd_PuFXj|OS<`9VCqm2vyhX&D3ZUO>DvS%@0= zfDZOkHG-UmXk7km6yKJ@xXTw3*Y|B;dhN=63?7E2)%r<Fs$DF5`dQ2Hlb&Si$7Www z-(mqWrDkayvZ#NudxC7->Y81n_=FhrWT~M=)zw50O>PO#Yz1z%(mE&WB-YxxN;;Fy zW?syETVzPn%k`VTvAO!CnY$BXw9JVzttp?)z-#uzCpUX~8;AKuwN=cxE5!vxggCVN zv^5}k$Zs`SUb`*E&7OO?M>S+3D-ZvQ@?_8AU4oaZd11B5$vJyN539OX*Fk$9E3->T zoga$|+29L<+7@=5A7Fk0T^=Df+mN&xTVwBse__|rPCoM8euy-s6=kmj&g0Sh+R~s; zt6=B+k0RH<FAyu3=^YIDWN}KXR)sCPC!{B@4<Sy+WsC(3g6lHf=g}?_+m1`Bn1!3c z7?Te;kL1z`Ip6+0YcB4KJQ+9*@<&3ckq~+<xp5=`w^5|4zZ0hNqOfZDj_JlPw8_u4 zT3R99DETzE0L@;6o?4K<`edBEiqPz{9O(^ych&3R(Z*CDd)9->o}_%~wQJ03{0;6H zS}%W=ntA!~imu2Gk~kCl1{HH!y4LP@e&1Dk>O6Js3U1Sc9xX}ubx2D==s#8&la%(P z-Kg378%0W7e3N<A7_OIwi#Nh(Y~3Xyg(HNqier^kL4Dg3NzuX0M6H#V#7@akyd6GL zhIBT)D^VGNf|&6qcFE89sad3*+lmS4g{PeP>ImPrW2F(B;Q?L;xm{E(+FZme#I@`6 z_dmsJZfa`!`<!BdCk-BJTzhyHGSEF^?zA?-XoL^}@l2o47z)M8;hiyf6_gBp*;`53 z+cuGA(+lq%HtXyr78S+YG5`WKCG^SU)No^{$<$?&Mbr^q2g5$zTyYte2!MJx|57+M zi!i8JS5__NG)=KTO;J`&RxLQ0IL0|wP8mU#L(dN$vAG}!c*3j99kX2(^SP=HgUlnv z@G%6<OGh2BSFM2}H*lTfBGxo|$=S5_iHe-(L7eNJXy_iD*87E4&4>>#M7ifI^0OrQ zT=%j*Pj`)_A(U}`GUPOu$sTE%QhK+NyXe(oZDx|))+m)f&-W=#nVbCHI>Ce6Hukf+ zDC>kV+agY@Y&+L^3ZY7cz3chU1bVkY@#EIy`-p4`lE1!7fJFDX?m&NW&R*0a+nVfv zyuG@<@m9mq04U;Go;4G!N>_pzs`jqjZex<%thKiA@a$v(J+pmgt-cjhwrp9gOF9a^ z-N%e^e^>NfToziF;@;b7ridLITu$2)f*Me`vFVsrX^wd~>uY=1l$s2?%RO64B?5s* zSXcb7$2Gftd$iH%ozEaf3cfD=R{O;8F^YG26?}7bk;>dt`GRBC`ZV#>S`K{>k3T*p z=3*gbp5BOt2{rbds<#;Vb+~tnng>oTpREU=XTu(jy2`sn)~7g2!XPe4DM7h^(4t^? z&m|kGYwO~GF}kMQ5bD$O-Mlej9W6AP3rQMSRnPd?@H*hKC&h14%CsjfOUE9ZtRy?8 z+JAhWOL>1L^H4nv50x689aGn<8q}0%v$5&snRf}+ebc}K6mp1TnVpdB;DsYn{j-*~ z>^N?;HcfEa-_0RP2ACqv{C&Q%SmgUqv!{4Y8rH=yN#2el)qh5n7QqR=GW0*S8SgVo z%WPVCWsw}^*4r7bkINFrY7yttOhS{VOlh0WVS&gW!5#Ob^%;r@k#;sz<j0&9OZGUp zrJ4adn3M9PF#uvb$&CR7)dn)n@j+wCD{sn}s-5>{B)qj;ys~id&H_apM6-Y?Rd_}k z`lSQ!H*KQAXWH`&-e{6}tE=L~hTug3gA&63{26%H->&Bd0^sWNxU%x_X0%U&z>&n> z5by{|dAWnK!518Wk6O#D>-B@UY(eEzRl}H$Sm4m|U&Px>IJ~Qc=@ZwNr0d!APWVgF z*WgZH2#n73q|Sl#hgs&bi`P5c96K5lc3U<txC&Xh5AmV6`ed}6Qts2KdPlJNfu`I^ z@`)v{dlu#Wz9jsj-{^hL3qDKQo-hFc<A9)#20Yqb|Agnmmy!sYoBpy6zMcnp!*^Cy z+;MhsmA$?4Iy7obdqKjDv2oEdW1x&VbC+)9m`w7+4h>V{erEpB){9f|<cDTm_t1-f z``uKw<MoRfy%n!ID0+?_ZnocEY?B&<b%mkK7rL)~*7q3?C`$f{vQsCY(wj!sEalLD z%~9w!T>hZkD*fye$PVMLU5GM=rOVB_{WNUjQlDWtChH1X-rPkGJ?wdOBA;}JIZJ76 zPn=wx277LWDJ)pzm$QYu%Gndc2dFw{`}M$36JbYNr+4WJzZE1t7p)r`NXWL_53Ha6 z*`I-jJt;4Bz<KINflVl7PRC%5*-PtvY=~CsK)p@S9Y%<JDzQmUeO0pLDZ|Kw{&RJV z_HTL6StgiJA!|2_T}#RSHNovuTjK7p6&3!W*Dkq9>FF>c^(WJrWh-HqF%Rv4Hii|R zs9<Lm#>weO3SblSOEwrRwKX<oDdbp63*w8TqXuhkfK{Oa9JzA4Kz3}re9PqOPu?51 zDg(cFTShJ<vLWI$4GkogUvXOv8B4b&eBB{DhTo^(2HcOkoLYR9=^k2f`FV25=Z*cJ z>-Ah{;xP8!181+rwc~Q!sO5P4dBqOI+pe0MD2TruiyN4r8Ib4EfAaHJd8x0U04!Z> zQ5okpsy93l%gaXesb~=Y1-@I90D;@ZqD=#o{7|3Ez}+~G-Jx&_K_N8qQI>6Lq+Xb% zMDppNU2;HD9}r+~CG_8aIoL;HYjIbbzR=d>*653WjUapMq&EW50$aYxBvw^2lGU>D zsoa6#9if(g1RRkamP3|Ny2;t0e-<yY8w0zN`xs2<j3%Nrf?R(0`2A`bkbN@6|0Idj ziC$ZRT=Fre7M0`jZfjY0?_`;mQKY9*EZo^)ctE&>x*Wv*QtC)Eo5jl?P$oOV_e3D^ zlyUDhHTTD^RW+e0A??|w&E5oD7*7|fZ}f3;_Um|Vuwl!b%#ENT=@<r)St(Ki^@XDM z1Q|6u&9I|uR<v31H04&Bbyor~BFq$`4-7x-k9UN?p*vG*U3KF8mgbC%)hH?SRi> zSinIyl|8V{DX#8B6M7!OcBBwe(IwuJZ$MRg(~O=foy9C9c*378n3rv*BB(!fbv`@{ z%v?OK*n=2z=_foBe*ML&$F(R|GEcjV+j0^K@pZBgLTT+){lunWCrL_Rx~)wvxEX=+ zT?!mq<+kNP`$EQs9*Q3qUd>u3%rgN7hzJ0-B$EkT$zX+lL!tMKVTVJ9>7^%k4F*(^ zTj?GT<*vbYo;O@MmP$4!&s7PXvL&9kUc5l>{@z1Fmv)3OZP8?12;yBu{^-Thm5I^d zQl@pW(A!hy74(y|z*mh;T!4spyD0KD8^U81LTW7l3sg6UJ^?HKl<b!OVz|AOi3f${ zMZ_Tnr-a}Wf)rP@qxyD9MkQa8`{C+q&TGwo*}cx!FFrvU+-!daXIC||v@@#eUBaTj zOAQags%yQ%92K)QBwS+UR!tVHD2z2Szt@Mt2AB2mM+H|IIK~;dQpF_yU%sJe)+K!J zGnC;vJb@oGdQat)=iQpN$OR|kO?0L|NmhSxX16JAS5(5vOY=vrK(lt{y8}!SVw(&k z!$960T6zrYM|DBdVFPT9dX>UU$<4$2Qj~=N!(Z%Cv|$hsY+H5Jq8zu_CK)?kZnFXh zZ{Xb&NU;QDZ%-einOgU`DmF^F6X(o;cr$24T520HGmIM*MLy+h#fPik*yHnWTWE{4 zcDy4qIluj!C^<Vo<2`xK3*oZR&(^sUg=<Wm?l8BO<1*TOMB-EfLiT+F(-U{naqbJ> z^oG1l@jCut7~SvlG#?fYa5lDvWs+5#EpJDG2&7QlCKhhPp6a~%FOn}3HI0}N?=UhR zFIpLayNA^6_QolS)6cdr%eCB1mL5a$G{zg}-g(q6tf_Xy1MO@#DlE!)%gY<wV)8JG z$}w=JE3h#W<F3`bd0d*TII}VOGiz*pp^kU6hadyl8!q|g>)5d$w^;)ARv&RP8f0$Z z%vH(673)jNbon$EH`~#bp*yjCBepz}9{`&s2^}lev<WAcBhaTY-w!48u3?NQzSlOu zPsLW>s4I_mM*bpP3;nc@Hb%~DS_<7KO9=<C+uP^(P$v{J$@h2m%y&`>8Oj;F)-FkR zk(G^iGZg8ST&UFU6cHf@AjIo*t^C--P5$4I!u<vM@6gP&ZIFB6%&;*OwS%sC^W40C zWonyTbESZ?&?0I2W?Ajwc%tzRwq)3|8K~kxi}WT2j0mo>OXV4(2d*~O<%0jT4gJl@ zW8BR%*!*bs>5!$(=F5_?i+anzG4NS-m9fy7!7FH@Oi3C>o(}8Ck?S|>Or;@e9xCzl z6Atn&rYvOZb==IiZ*l@|{v`IMtIpM5E}@)UVe)e_M~O-q#$^U(APnBh96B0FOa*&~ zo}9MjB}2+JA|;A<4;LEl4w>ssnCbE#njfl}Sx8nbr~v;5$-g=9r8<&$OLm`9$~{T) z?=DW$w<~g>$jq06SAbXP;|Iq0fNyoR=MY}a(ENEv8S|f${Xq_e_Ly5JJBCQ_qf`RY z#55@f;b+7|krPsew=1oXJ}Nhq5`d+~0||kCGSEt_pNdf>ti~!Y=Rjw{cwRCNU%rjj zYiYS;YKMQo=eN==DZr3E)!C;<oKsa+Cz88kr<T^Cr_=9>y7kt@Dm=MAkZ-$41qJ7= z^Dj*rZMmY3YpFv~v=P$Jnz^PYymMQhTRq~)7O$Bjnu_aP;UqA;DBEG`+CKg$R{;lG zMh$EbAez2iw6fKd>H(rVmh8=aIeQsW5)#GUDFpI<+~Bjsk)8@VI;~_9>jGdbwtTzl zBd?)%B!;leK#G?amn4(yPS%>W`&bxAU}5woJtOJPHD_|=zAk2_V_jSi=~I@sGP=o= zf{!FOchrwtuCL_YsfGUAMjR&S8R=_=-Zh5uO)d9LcgG8iZT@Ee-b!CcLz+aYnT{(` zRgvu8O7DZ>PDzo@-yaHwx=iV2uXX=+UqXtSF(>E<9$V#@*k9ykQ|MXHFq|r&#*&M! z1)P&ZY(l(k)3^dWom}qQ@|Ui~tdrP6?7@Q|p1*&_|LuBMTwfI3Azq*-pBQh|ARvd# z(<fpw);As|@;7RwR$gra1o0iolnATRp3a-TumI2V5X^OGf!xCN6X(n$fKEk(Pw^v^ zR0W|ch~YWRaK;m~dudRp1)uXsJ(p>!K7h@3_$4YueMR$NZX%X2GD@0(79O*PA$|KW z^F(?aQht)`3fcpoeUPHm2sfDe@&3dL;8Vcen%a(w-R1b1#Fl?xgBEvn+@(x?C5o!W z(AoLs$T2Wr?;ZLck*k|i638?2%O+cI8@z0FHFwuv891cy?XFNECF|tuoDhWL^q)+= zo`>w`xF1a&ix*Mc=)JL&IWI0QIUZb-@U8P?{SnK&dMBj}J4T`c!X-51V-X&vrG~c; z|CBUaRLwd4s-&z;9-)F0MX9bVo9vGbPxI&bk9hFPos~#6w_qhtZBmjg8fS{f2=SVi z*uYJSG4#YVwDBQ$%~QeIWNE@Ndt$c(+KV>5fDgbL%1lEJV{R;rWuJKyZ*p3^(NqI- z*Slkrr{ednko*%TNk%2zD<bzx-+Q$9a;VOyhW$Bj(Jk;3iTNR{u2Ozb3NLgr*7w%0 zWIKJ6?8RF^Kw8Q@*P`79SE*CC^fl6Ye_jg~-J?o5E7a>U7_<4sv}-OP3Ggw)lUn^d zY=dHackG*V9O^0sU-j^CF|#EdR_62&*YYs8yxl)rYN6%b*12!NXomDe@iCHcQqdrG zAU-Y)weT)Uuc{78)3hND061e!V}KPHb;<LB#tTfEJs)!fYR#%W93t+xW@qG<q*?K} z26fRt8?CRdhg2&~GaQg#ad7{Alex&7G&zbq@N4Bz9a5!!co5r@e;EI>-wVUq+}Wvq zJd_pqt_$*8ql$Xsr%T)XZ?(sRsthJo;sFp_yK0>2-NRu|PdlSGS|gL4vi28cwx2C? z<*uceWiBFz2rM+ABIdVev)Q2=BVcHCwkudkRo%|h$@k2(kZwgr9vK#buFI_&qbqW2 z2zB|Fh;}*X3JaHQ7E@ozRQ?9vt_i!SJhVS8lE1&)-3#l22aLjq=F1c{()u`RzX>v? zVvxVzrsX{a^C2@@kyzK@d4*{+N5mqV5;jF_;DFX!F1;^y$<nfU2v-Ju<P5ukKm&!J z07lj;!c+FAfy?T%ze!Dj>LEmL;+TwbMQ2~=(IzKrjkx^ecK>cAdOP?i)-`ygritWP zq-Yggg{y-flBj4>Mz<k!KiNo)>Eb+2ME$><u9Jh7a{KpjYakz<EpS~;Kl_0WDX{ag z3Zy7%Q<8S<l-=MZ2O`1pq99+0r6!lc*HhM5!RY!hI#k*L5=_}fl-*0qsi=KY5uCA? zVInB1US*ezeI^G;h)y7)AyzUfivp<N#K;j^_2wKUBt`%vKYkDy#_OOQ8T{HCb2QHM zh}Gc&lk?Sq$ZKMN*f<yk7@1VeBjH=4=X<oUQeSVS2!K~)Z+JV=VpYb&NHRhm#V2T~ zG7ldA9eOu+WqE`gYCS9s;a6nHF&02UnAhD3m+EzrMt^rMxtK6nVdS0PklQ+4Z@g@j z$+lm+K)%<+<$5)%8o#OO&=RwX0B}3ZYlTD$6H?D2#4}hO#y4nQLRT5ky=Ob0OyI}A zE0~PaJ;0NN%i5)JkJ5RHA(e8dCoASfbW?>ZoUBsxKhl}&P1kjx6Y@|`H3D{q6s-db zQPyg;nqnKDHVVPw=kpjcgV1;-s*E?AbCkaZn}e;XJ)QUI36NTK=sTY^Jal_+)`n5V z>va5Txv?PVU(bzeh{KoA_MAt;+x1TV=$U`I`EHU<<VG8UVS645h4B2F5Ngt47_rVp zt^WM6LrfE#NQ{t_gWaA~dkKn62Ye+a{8%{%fHQow#2flZ9eSM0SJd<ErjQL9pZ;}~ z^u*fgJ~n+1J;T<uQ|NB>fu%ak^=@t|#OLpy(dMx2z9kBC+W=p?n=7G<r0zDq!%uQu z?8KXb9Nv3NJ5||(9=B?roWs6%{F`?=YKH9bOi5Yp@<KE<yK1cFuN>s$%^PJiOmryZ zmSL5qSS;*T1CZ5h^0q%S(-W}+?#;cqRde*sO`cqHY}wM~>V3roDSCx4;@G%THfPiV zGT84(3#|b~`gR3B^=pMGh5KifXJk$8j$9{B-K!lj-*1UnT)IV8HT@^r_b2+=Tc#)F zH(rGY0{1I&!+Lfh=9u1)zRM_((VJa?&-$0uc%T#EvzqiJ`<<*A4DImFT+<9eA?5g` zeUY$Sr6%@`5qAoPYamrx0rldtyAiLkHDMF^6r{2$BJ{%tFopU|avGyI-dY%6Don`Q zq`1<x4S`yPEqLCCq$7)})GBi_)|RHv)*%-%=tiNKh*aUnY{J6o6JqHHZITO2Zzl6j zDps%NW^QhitZoNe0_*!3Qc?}JUyH5hs}=NTB-~WLX>ckCz{TlLdtHr>t;q|`Z<8_3 zbSKr00h|0@3##)gYr8#PNx_>xS&-_eg+5f1J<Z8xZ%AKGe2tFSm|pk(zUs>FiKki_ znxFCZIsVfVabpP2gwEN@Bqf_@P2iY5Ni%G0#Ae?h;p;Ah4_C;6P@UVagG`PxMQKF? zlhuVc9~S#S?<dgJ85WmA<-Vw9{oC`CE%Z<7lDKacGI^1yZ`(eXqW>;!<d$E<EPwqO z{_~Hz!QyT_db+tdzLz0Ne`bFmjZ9MSxzyAv2LSf&FC6vbpFB{8VuP>gkGVcZd6J3l z+PIZRK!i@^QDf_vPhCoA>us2HcO_>Ub~XYoG!$x=h>WXIva<-=(+vx_YGo^ZJT!3~ zTcf1YVZMG>w2<5>7RU#N3|PKOi-c@CaUI&87BU|fJm`O?Jsw!C%iw=G_u^2bI{C}H zx11MGaiWBU>=aE>KCXO-fbe2t?@BI$4joxA*=<PH_S#n`OzHQNBa8m?@6~~0Hoz%E z%J*^zCUpGTl@r~%8jm_cOv>=BUGP_UsQ2wVG-mx0y2&6p?f=$xM2?^9L?1i1$2ssm zZN=QHa2iqLtAcTY*qSygGvdBt|0C_K-<t5huyH}U956~yMo3F4h;$>}C7n{EN9O?P z?iA^cQDd~Ezz_jxkQxmlCH>v|^L(Gb;9=JV;|I6~=j@#Gy3c*zFNMSzR^1Ib^twQa zW}teQd+S%Jwmln743Mo+VMu=C+M0{4UGiPZL5_pu%*HhVTFW*78z<hlr5=c7n`d>) zpJy_aJS1P!mIU!Cb~3iQDTDXkFUMd?V_-s)dA(nUD&wGaE|x*3ur!jv!|!*y>V@!| zo*=uO+>c$UPt%`xXe0nj&wlCG)!qMsvFXIUyD3Ulzw2+y*K{?<9yI|A?bM2}r$xI} z>ED83*r-ctwuJYyoGr?IdQ~0vb50Y*l>C&Rb#m(3wCL}DXimNklg;){<uQ{9>Fdmk z!_Mkl$a`R2Ta`fY-y_Qy{~js@ADN)Zyq++of&Tn5kT-mV!zMBXFH8)wms6Xg@%;Dr z%J^Yw^8Tv3Ku=g~TCZqf3>~-0aam=XEc>!WUw^fldBrenIM^-dn$W(TJN4$iN=^NK zfk(A)zAoXJ&b#*I42RP9f2aKI3D_9--{;@@t0RSSX6ondNP1ft;}hboV+1H{j25e5 z6^u05OT|+AbrT)&_Ismco;K~`74ntVNxgJ&^Tn%1j~i>jepijP4@zc?F5^QdMrJ{4 ze*Vsjngo<>%u&+8&hy~$o-?z6g4PC|%w_rD+LgOsTa9L*3x@V3nxrr=@{nWN(UaKz zOW)KRahh+%CE_b_3vbKx?Y&(|833p<B^JM!0o5$A(&BN=5crD}Li-9GSc9uVl$a*s z`EQbOXWkN7A&+B8(Zbm3x2@gAX1C1WQX%>ygV^J>2Bn^S@A(jD!DoLtdZqinMB@~& zEws%|BjLp!pTJAQIiFLS70S+IpAVU5P1BGY^(22wJ1)4QYW#fM8-Ji$k}d&`6dm?= z--OIfP{N3Fj&@l%Xt1k5ydbVL(7e_7O9T)B`|`Y_r{Daw-xz6&Px6yc$$&&j5LmwR zJtlhJrGfH|GjZRuEnTq<iod2@kp*jhA$SG24Ud42MVoi)7XEWR+4Vm=<RC5ZbSnwI zqYrFv9?XvrriQ5xZTekt>i>-}d|UHk%Bf9Z&D(SDp%j8he&Plg;%@42jBmorT$bah zniUtUS3#;3cbFb!wub0b<~PG?D>*FO4BTN0HC<NsyNE<&8%nZk#-*^}IN-p+Xiq!r z>BzgWGtTMKtD3@pFP=5)vlQVKrzqG33FsDzDp;bYNQP8|ZSfX-hCKQt1@o(8+Yt$V zHX^6NRj;br&pM{jHzA1*FG>rQ7B}#MlB;v^@awA5LXgANsae#6`<F2P;oHoIA*;+s zB)o6$mEFmDZ^wk~UYCNxiIKC=^Ju@yRX@vvepVi$g!4m89JeRPx}i$%W(c=IRq;|z z3+>r1tH<q3>~*@JOJ>DWwlib;qq#A$wgn&n*KWVm?{<0XZn$vowLZ%XJMr}2XN5`l zV?&)pR9EVW^?^72@SbzU$N4BR$Xn6(x5)Y}&b6Pv@dRC%hhF%~w<#lJgcv5>a6CYR zVGaWm(PBrkz)K1+R6uFQ3e8_<4&86m4MmH>fPcfOv~(Ev9Se)bqhCfn1+Y12+fs>3 z@%@kX=;KJ9L52k*MnIpqDeEy`=r4cts#2vy$pK>;dWnw`P#+6i+7}=~9(!>ZXV1|s zG85^mg!twJUBH>3JmOw4Heinm52NC}jU$$>03rYsT{brgyRSJfWdB66HYl@9+C$zf zq3QFs%10{PDH>mX$5%I(IC!qPwCuV=mre3&f)7_O3OmZ-yj~y@m3>#Ey7I)6!+>k| zu3v<y-iURv;!TNwsui$gKV69Pm#Dp28n^*gQ~oc1ouYnc@(Q;&ExJAUXq4iVGsIU! zfjH{hAMx*^g*WTu7Y;m=A9EexZ5I)oM*;}@tR!FINJ&rkRP}rEXZi=w&fMrUySbZ# z6Lgbsn`|>|pJrCEhct=EJtK<PNw!8;D!I@>TIoHl=L$3KlpD8-?)L6N5x+?YDNSw2 zqN`Q|H(b1@$29BPHD2tgzFZ5~55AK(I<8d12z~d&s@KHu;m2un$|piS^qF;Cn+j66 zSeM}-NvC74>{2>sM&qffCp)9tHrq_=G23^<AFgBTjNnTI{{Gp~V>HL<wHGJMy!7g( z<4^S2*+kvG0_hP1cGq3pHN7c%#7rXn)jPm*okybS_FB1%oGFvc-nb)wh4ld^OQ&(T z^VNJwsMg@?_U0{NW-P4FObvWpuRfTgGlDI`e{9|y9Gf=cf!IXkh%HniGFa5##V7Tl z$I&YNr3u#W=c1L9|Je?F%)`uP)_$|ppPk7l38<{^Bi(<+={gi4#y`mq0%{R6c<<Xf zv}HN-FZ~Jlcr;VmDBvA;MUi<3M%jM8Mwgcfp|@+L`5Nz&TUb*R@o2|kTmbW4^K9Ny zsPt@cTmNsoSq-HSzAPb-hso#`JQx4$^@Px})0FB+ZB3Mt5<tGm$12q>_o9;idBGh6 zOQwcTfz;LAw2S&!<q9}?e2jdaStmki2Q5dfu^byLeRI8)n73a~($Q+L@uV3SZ&J|K z7ZoK*P~9W0F_NYKB`rm7-vNF?qJk#O2_D$yGiHC|jbWSSM{BoEnaY<|NZ55Nb0M^a z@K0#fk!d7|Y~p(KMt#kH%jycrqe7?Al&A3QPEa@SFHxhb-3O#95~hJZ&`5vfSZVe| z$V#J#rPy_?praY^=n>zIpA3x(C?p=GsR=hxLbHC4pv2W_RWMLR?z!IN-LlnLd3je$ zkTvdxIYF~(W&(+xc*F6BR+ZWX<lRr!$?6p4)0g9YX@XZ7H(f17OGLtCD??n9O({Ou zI;@lK{x)RklCLuT42bm=N?Y(qz6qA~EcRSpIL>vum$ohPaIYXcgV%hn#SV@jP;1iy z6_?6mNQX!8DQ%N>Ppbz}0&+6Asp}u@xqd8cFgJhRN{847{|NZBe*-Yk9Y$!cxQ{+I zmX3^ca$8$lt@<%u7(WBS6i^!0NlxjM^Q)`E!4KJIJCl>o%bRM!Pj!JLtQ?bV9eXxf z6aOb^`uY{$A`47B_MV*m)k&nTfwyfbwig4dK{6vL5pZseFr_ak>2}Q`<LLDG6Hxr- zBbdcgU}vcGx7Z-cp9nQLPF(g|Ec<85&ao}n+rHIaP;5;HRs{LDA`36F#vsrs3hC{a zHXjX0bZSVpNoHT*uJbEx+kc3u>XuvvVQqkI#tCT-RSKrmM3??JrCzson79*0g>x__ z@lK}r3b+!+(ck3n^Gv-}n=&ro4*vbGa_uqU@;g_iG275aDK#bsdBlTK@PS7rq;S3} z!#~AtjzvM-_3+<k^=AF&XjzPGWno9WFHHD@mwCFh5&Zxt4<5+a1`qZ$ApQoY{+h6t z{z1fEo1&jCOPZ8#DXZ{qSFHNP_@LE@bk@k_GQK*M$7HXTn3K~GWh473$YxbS{N0(r z$?JTNY0RT@>A?NZeykGT1GJTz(1PTo;<SvwuzuAK;T^V1rE;O;D{5%ssqEW<A&iZP zk_HbXIWS6u)xgI~PFkh#Mg+c6@;piTWd73uIaS@mU+)`M1#Y?+jkehYdefJp4a-N( zUsm0_u4^6jds?SH?s-6c3@LxBxRe&kzq1<qFk$-<B}dk#EUAIA>7IIzzj-)Qf8%(c z5^F=kQ}xL^SGmWHPnQf5Y8ofu%FN#2D~u^KdR$0ta{EtU?%{a)-b%*l>rf6_1U70? z^73{dH=6;0mV|=)UU3Q$xcM8?QFJx-ne$Q;;XwaizKn~be>`_C8iR1`|NWQ!_gdy9 z#Uh{Ek&J~@_#asxWP7Nab-VkD=PJw2d?!aFbHvIdlL1?_f&ZZ&T!-X9pk~cAODQQX zV?<REPW5s9`wRAY8an`bU;cp&jdoy_vbF8odLrH|jkmq&8M;HmBRQ&*ZOcxG6*q(o zLPn%$rF6jyhJJ=Pf}~#KOsm?`<~aMcZrkQUa>3GQ2K08EDps<_mnUvdC|h;;OC`TP zukI;(sL~=v5zC8KTQ3S9kxa0hsoE|%cyDL0DY6wkIb~t-^?UomcX+pZP0LolM1%b- zHg&q^%Gpr@;@}6?X9wU~@Rn%iNQf=m%xpJnA=;Z0f|hR^1t4zv?;2**VUB0lwt74S z+^TbC2l|drCt>ZX(hf>q%~ZvUa7F6LIzc4k0E5?A-Sd)ZiNIeAaOx<{mec6iiCM#a zR?`GYEpU_flK*3bH_1z5FpoOL=uzE%>GtQ~X9P-P{f>Ql7^hlX92#>@sZ!FYc#y7D z<<KBUKp`j{j9L!qU8X^63Z6svYPTKN9FW29ZxkB8>QAK;1|Mk(y&@)ykRgR+4xb2X zy`F;|k)%e>4rSI&)T_ytD`Y{*KuZ_N?{zElz1hC1T`%VO+P>~x7NlKv7PQ7=OOVp7 zokd10St@>Ozq?kR<~*BG_bupJdfnyN^<I1gX8er9G=)K9NJm!J?B+ndCg|KV&Osf9 zdvL~S_K7FBNc`GDwf+x^#Taw}f4j{NtY}wdkcBxDp<eff^h%<oS94Gz0{Cg?(=$rO zOGQP%awJENq5s2Oy4n<Now-aS2+QJQKV=q_FI$Yk=|2h^B^Z#UsFCHO#iL0qT%oa_ zdc*w!?grkbq$R|UwnLN5q@^vABAk*itYX9BF`xrp{CG^Eq;oVM@VM}mo93A?`auLE zXr2yLYGbcCFRDXw)JyJMQS3vA)FElxpdd9Znw!G_Y8N<E6W+}Dxvs))&ddN*#6!;l z*mx8a9Si^Z*2H@L!NFGnM2Ws_HpXj@_1(cY^<X5=WTe7p8bWK+oG*$~bEtap!1K1k zsV^L=;JR`3hu!RpXQJ+C%aG5*k*&fZXgQ>_hgX?5H}tJ{mw3gTUn-$MM$+p6h6T1a z@5C9gBYWd_sLGY7J=jQLW7B8@r^&`=^o7RRq0{d5zJ6DW^%CTqVos)Nr2S}b9QC^b z+{AmPXM&T51aW6hR@)|zI!69k*ShG&N$!sRAAf9!g8{kExLx$^v8k*t4VGJsfx1;U z&WIOv^Q^qLMAD(kNQ7?9hNQWv7dnl|2)WqHChv^Et^22YS{?iIKW88BD{IwFpVQG- zy0T#_anEXr`RydvO_Wt=wN0De|J|-YU(b=Jnf42sE_Kf7A{2s15!#tYj|=@DY&?zy zIk%ij`t~J%YcabihWS;to&EbY#6&wR?(=4{1Kf6$|1$BV@#@W?4bI!F%v3<c{;uoh zn10>E3M=|A`&_1eq{!hbF7|kJKu+J9V(cTpsRalG_k%>HCrTT*V!!eEGaIwj0$ilX zqUJu&YscjII%-Lpd$6&4sd_y8Y{B$O$(JK*f>|BT=nEC;n3IglYgU`~{kKi9SQp0R zvJhBvXWx&<aMOs1si<(XPp8dPv)<u~!)kgJ*Nc%7-%B=0w#EdOJ|w>->La#H94Cyn zGaRAjvbLt`?GJe!p~0V$Qp`wJ_3Bh~qm%*=Ww(%qJl?XTVoSrs8Qbs=$Hoc|$5$lN zW3y%^BlBm5w&TNw`CI$ii>)=4z}sOHFlI)J0WZr!xLPMg7U&a%`o%}TIf<6*?8hG~ zX*%jWM<nz{LBGvzd)pog3-=%h>Igzbbc5xcO<up8t8)&%*+@>z&zBH5?L1Godin43 z%Z{6fF>bjSM(eYm(l(|nJKow}Mg=={%A8&&|6H%C^^cx^Ks6W>cvY#zkH{rynb_J~ zZ3tReG4SGQ=j8dht)2Mg?rS)HF{<Q2FGi<bT%M`LJDDcL&g3n<2>vs&CvpDJw37Zy ztx^T~EFswS?#Id3d@Ul&bv1zz%`4@C1v#|ZiIO_0DzAL%f|0oBDNKF26zf%$1&8yf z2YV=7>JS!=_*JRBugUK%IoMw<OWF16#Pkz)kobP-A)VJJ)4GSB+F2F-Xxaq;nF{uq z{Q0}Pv~wDBw!J_U4!a(ae_KZwB?G{&(D$p_B4eKNJW|`?upW2j$75csg)fE8Z|3=P z>h8bd8bI?=mAcR#7)v*cv#AmRn3dM$rK`K^>GA5Ozk9Kg>FzzZGYdp-a!*vDBWHA7 zEvOBuGgPttHim6(ln|>FyN(QFJN6EIxyY!KUx}+zJbd6|rZ840uf9+#;;=)>++9Hl zC%w{txMI#;5Xh7&+z!@yy;3O8Ix6tLI%PWWMMLqZPFdL{Tahm1D~kgL_xIPxG$iut zd?X_+8U*kkV4%)RcCx66Qk3P7#^WrK#E4oVmt@zo*Lj{vV&^1jZiwc_jC%>X_eI4y zGZ1c?7i!`WjxwOjSq9+NiR+U3soW4XdZR!cPPS%6slki*C2|Ta#tj<2EDnD4I$w`h zLP+dy<LybH<*mr$w!Zuox9}*y+%zTxM8*A>?}1)cdd{r3j@KQo-cH*U{#!~kyZ$+N zTG<%mD@>5iqRy?tMXr&C)3rLPIhRf_is_+vti&aE@-Kvh`6Amace1W|N|_N2_(-SP zLDV0&vb81L9U#7uc{r6zPIV98wP!5wczNX5J7QBEx*mV`oUS`iPY4K9eOZZlW8`}! zp*(BlPJ>NYj}Z#f(eFx!1QExOf(Bxv53o$yR$^l+*s#Y}#<(-Is)iThW0HLud4;`G zIUJ7T%-40Tv|NI&VMoWpS3~o&e!&N4nXMB3m8SIbsHE`kHAF9sk6*m-F(sO9SPZbX za<|Ed{E+pnA-$?1gLBCo7o6W_^x4OTOH0WYF$PmX0|H!EGvuFH@iAh6bKOC;`JPIL zZtTTv^@CsB1#wXu4~yo1XB~43J2hU=m{+|y5AcAT3dl-F2vu9sJv_obv;OH`{cN&! zef<zLd3KixD?}*k-`XxTz2Z5gB+r!;{ABP~NedGjvm}&qF+8%hgjlA?W>2F`rR?a3 zH6HKy8|F|TTj(1svZkd*=%z`llX3_8<6z-o33eB>R=~s_ZQ}@!bz0*TJMpIbbBCp; zuZ%$xYkHDC!4kRPByQ4dLn@`^dh9CCSZ-Y7cm0-uhpSHZOSWEa{gi9I&h){BU)K&9 znK>x|yl55D_S+EEgdQD>CHcP42^iQkp!%LeDK@e+ibCQ9knh%sP!U;FOk6>!HoWNX z;$ZQy-v_fCve$FuX^DOrb89C6aS5<fcyXQV>cT^p+ZVK9wYG_14E!R1hNKh_0D2-X zFMq3%gh>$2MiKs-S|f>(U@L^dPD=}%Zd9sQSya8}&|zdEGgontCeqXxQ3_y_1!`jX znX%=98$H+BbU)LNpLtZ2czA$=?h?CEBSI^DB4VkpPB*Y<tZ{OoD_8j|fscdxe@4o3 zOWkWb&vH*7j4k-5KjSziCXpTXs#q`=S4&wM_wVL)#ztFx$y0wu-o1XG&C5o)vokU1 z%g4oM&i#28<xDpu(sTV18?iS6e}^`Eh+t)<hrgMp{+>m}tf7IJHR!(eUu$>2l0VZq zVslT;9o-KMepk0PddElr@-xH4ltL0f4Y-$Z@K2?Q2-**F@Nw`5yj1X5BRGa$rAh@b zu$M+4uo?cy0d~8LrKPG4&gkVaG>C4w@9(m0fB66g()p;<rvF@~^Kvypfwf2KCf`-b zf#L0<f@H`98)~jh_*iz$@0o3g)@M*%I-9hSr|)Vcqj@f`!AmS`5f87tSk1=UUF6+i zGad2QG|HpjTR(sQ;1zn2ISc|4*z{jc78bc_%Hpyq99=)tbkUB}z&RtZrowLA!hR?8 z9iNdh3!Oc$ssDPKS^*S6%L~!v?2`u<ZEf4@KaN6u*rk)DSB#+->#8RpR<x05{Z%Iy zGYPQC{&Lw##9RIl#>b-s0z^$RU`I&1RiJZ&qxdb3<I9>3I!z*cY&=$X+)*V%e13lF zI1DBxC<Bz?BMq5n5@<afCP$KNDf#x&Jbmi<Y{&Ok6fzN7c<6SCANmf>UkGy=clpx| zmhY13ss=N#0yWa0bPbYp0F-@7a&n*ff6cnVdbB@8lI;s9jE+HCG8BLp3cybW;A3Dj zGvgT?3V;AzJj|cU!Ywa|gE{m*XSoPh<nnZMp)ODST+hT<QRNV4I}6^)NdV}}SFV{Y z*yEkRu~vm;QklAHV$W?^?rPw{-Lf>_d}oOP1q?O~=BbSPP+7gSUsmb>XI{#x{!#LG zM9~r33ztAHPwcI;U3{3^MiX23I|;M3%a*nmfwzqd*Vt?c)!=fmEAm7NIZ{jDMuc$H zLiLhi;BfH6k9`EVAa6m=5K<uC;yE@)1b%!zhcKYy?c%|JKE>QI;2O4!BgY#!BWse) z_Q+qt-;f98#adEJ+vHB#k-qZsRYRxSUxIT}?rp8bz?zk79qJk^@{F;Y)0LHA?>Yne z2qzC4Ea4qqt_(G95gQdYOR+tcL^Ug2SGjO(!HA7^&(=eLbloUSO$t;e#T)ZIHVqX` z{e*RcZJ^3^V}E`?(;%-<U0pTSE#gRyJ24KIb;x(sZ2`*~4eza(^}Gr6K^V|mvdJH< zS{+?70nryTn1=E<l5IpZ6ONqw)sv+x)!B<+H%>y-n$kaxi+lO|dMdxa5t((~#M+Si z(6`n6PN@6-VB<!Nt91`ulU9|r0GcM7wo6Ad!VC<iB%vA{dK{S*dZNZ>=IMPLvrU^C z&#@>Jt*w}H!v$#g=c&hr<jW+}H$yB{TBOmBvUQx<s#w0p6oS(xz{v0ApDG4UQ-|zA z0FCh8GXS;Qpf#_)!ntYOz@2oX=k(&iW19WSF{w;jm+NKz<3;Y=s+*IWgC*MaGq%a( zC5_ADckRreQ#6NxcRMYYxqT;bS^u^EiYe1+$_9uFIf>dq4K^f=dQ~MPRLc}EGc&kF z$f~`}HzxV^6&7##W9!`1;XQV!k3CDnd;t%=S;xV%m9+^nXWY7k1n!4i)~ld<OW#kD z$j&FBVf$TW3nt5#E6-kDuXuB*oh-1iO%`xG>$2Eu3C^2IdXCQGr!p~vN*d`aA---} zbE@tR_{j%_0s{uzMNa&aHa4Vr&&!4JXwUf3x$u$&crmD6;-_Gd#lW48=z%l}3setb zW7SEgZVr9vuxIBnD$<A;yuLmkFQHCn$sM!fr>5XbP_|<tJ+fDT63}=MJ8}Lt{3}|S z^r}NA&eE7;IlH>F0<x+~pR4tbsl%8neO7gI+0d99rtU_)bmaFp)Z@9lJIg>CYU0;0 zsR6*Jlux!l<SB{}{^~8;&x0-{Hb|v1J2rL!18Gd&M}$m2$%>x$`9Y41*^7PFqNk^H zIA?E|M7&a2BU!s00<MInkpOgwnL}`4QuKvGzFRIGjU$b#iBKWFIZ4t|bQ%e|wY&zU zMrY>veL1+*b$T>4eho_hOMvgL@#x;=rF%g1OQ*KlsMPo?H3ta=ftw^~d~6^~NBczM zq&=72uCf`ETIB@iYp*3j^s+4dwrAy{PP>+RiO@rLz2Nck=)gtfeXwN;-^Qy-BF4Pi z#>wVXmbh5JOr8sggwMY^moEPx3x)xVvwlm8+#}nYEoKtT5ibssXJ}>&`X#nIQAS!< z|M-ov!5*y9Xg6twX=`IMn1=BQCM_SgUOlYe&K(<7^B^_Z^ghQ5q@GDUu*VZf112Zu zLm~Bht(4wDS2Dxh7sse^m0GA}feGFi>#x;+CIqi85~O9zu52s-axHZR)<%FVDi9_C ze1(aXxz4-a&;qatuq#j&q?XRKOG*Op6ic4i6ou)ui9Exl01a07E?#@@5Qm41Q}A!S z*H=*3MuCJDD(EO+tlm4BD2`rZafZ;;O;E-+MZqtC4!P;K9~fMTv9K!fDvy6M4pR3b z)4p+#SgJ)=vmTCCzIac?@IE$dePYaAFjE=Sn*g;uk)i6Sjld-(-)LA33ip%eayAvV zCb71x1PFr)#*&tds4=@%tHb(Q=UHLu(iqqukT38)*mHYNybgZz;wI;7H+6>?GqB_f zs8W)FO)(Uba;f%AJqWF2evAej5y{ri9bD8&N=8T?r46>`Mtcm;5`svgsJ?>aEGrGz z^<th5V#vv9YU+e*aZo5luwf5S@lKM>jUO)~4Gt?-wH;(N*zhoz39-I<%QOmH9PeJb z7<6BK%r@cuAg5WFyOn}?`1?_4)y?u@m$?+_j&l~4XF~V#@D6cC6})jeHT6n_`4ji7 z_ha8}Lg(K6;UQP}Cpq*5AYod$<>io93?jlr-+pJ<&^Ev^4Ux_y)!VxnuXs|R(lq<E zgXia_bZD{wh<zY1RUkFDXMgKx&2#en&=@1^`$gYE@Za6@<fC=e6RQF<lJT|!+j{us zq?qUVT2EV$Lyi%7Y-f9grTtO-8oB&uLt{zO+||rvat572d5z}OLBiB1;kL?rDJ+kt zBMe+cpPB}D0G|rAGdrF$@>HYa4~i)&-&yL?22vb<chf8^n2=~8*TZdv!U^DNv&j~X zMjeChT;C4IYjRsTtaCXnMi<;b#9^rmROyuLvnF`PBDliIJFm5v-`nZ(k!(BFNzsKb zEch<kv&Toscv%Ch`bW*Vb3t{$>B-~Q;t2hkG#1UcpIa&-fq9l#+4^MHl3czP-)mou z{Wn~wV?t$r3loLrsYHf+?GSSf9QJ<G7Ua)87juKQ7UXPmXOI)|K0CAblZS4n<30>5 z()K76eOZ+cMVEpD6Ks4r;p+Uxc{f-tA|ijng@2CFEn<8}U~8s*!KSektbVK^nH-3+ zFY_*L@{kcQ={Q-E_YPv3_Gs6RJA!9(temZNU+m7UHThU(<i<GxczRhXjH{7%Bjsg< z3$-NAialU+18x^L68Dk3aT8#2C@;@IR`04+YO^8%1|1%BNgv3NJ!U8A`%8CNVRm%3 zllQxYF}Ip}x!sPN#-EgMX#?Y$OcI`+OLYl0_qI<klNU5cLA%QfkN4AV9z<lQYqknR zgT{_X&&dR9_r>bqLS?Qj9=scf$LVrY;C@6h$z7y)GN%5HwEC+7tSR4DDiV~=KB1LE zPLKvK7)_#x{c6w%8>ec}*hfJ=4~((?@TbXo_o=+Rvz<DoNTX2)Nxx7xIXB45vBO-K z)%TL_Wi?R=5U7=lvfJ4;G$s{c9kw8?+I5oDocYl50t@wgWC*!n%IpSu)eizf!v<RL zpq4>FrYBs|6fc^nOuRk;esOpUZYYH_dM-^It{?H@F_MifAD49v<3#}KnFV787$(1k zXvK;!^M0N4_tJ<<IUM&;>@Oi{oWv>>^YXu#syA7_FXT~sC~Cgc8`dm?<Zu$<46nA{ z<VZkvU#|&uA6)%ZbMLZ={$F%s0d!1Z;3C^Zzom%+ZD%`x5SPVH!t%S>W6EROnWZZ4 z4=n&$ymM3baL|v5T}sYp0mHk$>W^5|-<Jcd{EJ3i=gfT0RD=H%pq6WL-!PaL6kcYx zo4!VJ7u@;NCqgAD@N*>It^}M-;dY;0TwF2=(VT|WSkj>vq1@cu8*Gc7XJGWQ8*W(I zvH2H&{mqGdTP=}b)l9RzoUY2t+*X7aT~sFX-%jP&W8$@o$QHz0nVlV(n-1F!>*F!& znW;V(m7rN~$l%?0vjO|bJ*SJ<Ut;f>^0KN_>GO>g`~#O859qi0v9s8b^E&!towyjw zL2D~h4NRs|$Q&G+a*#b33furi7Uf?DNcVxYg`mCY03+lvLqA=qiL~f31Ca#*exHAl zVq?2)$9*?=`TV_|Az9_w`LfOihaw|6uAC+X5(k);i*#nh8<^#%#@4YeXAx0+XFbdx z*)(7rt5K2v=BySTgPFI;UH9zUI|#cW&G<GSVC%~s)5jT>FL5g^sngVG$9)>2R?An> zRKJ^(Fh<Y2!-?=t`?>tg=orfl1`K3Hpx3How_2YEV3=_HSPvlQQR7-m`|afREUpzI z7e%E&TW=D4b`^L0FvKf5en(bG!V$jv-&EJaYap$~AZPO#BGskbm3|=R?cr`06w8M@ zK0TgUAZ%V>A)e{6175dH92C4Di8Yz^uezF1Nq<i&8~!A8l{5B<TpPLf#CO_<;?kvH z{er?&7{S|2+l%Jz3xsL#t+zy)U8Q)ND`<?;jO}aETXDhe^Ln+y$IL`s){H#Z>EZJE zv4rcI^P11jF**4M23cmnq(#ZQDqFjqY3)>Zok0!WNho>odM&4YLAz5Q8?A4^oL>Uu z`@EX(4s3}T>hocAnw9nHzHe^%4&hQL3b&&>TyHFeJ^m9|>Ity*3}Cm#=EWnz|G4#~ zP8l`~8NRAnxs~YjILc?;XN7p|Yb?BO4UHEHQg=INKxKxJe)WFA=h<k$z0s84;QMmJ zo^b^32<fHc-FW|BXNSjG=kD-h4dy*}j}4bZ<zV~G4b2m5ajO<Gj|@%OFCyuew4>jF zJmiRmWWQg8s*;2=HcywWf~85@-35ga6_#vUPM0=2a;?C@w`7V<+wY$men%2i=pdsV z0al+-6C0M=!2U92H};GJ86kYEjVAnl(75{KVr_&HLka&x!Pi_;%q)EZtIsJrtV<=7 zA1I?%GZO$jat7z7kVq#>>Sws}80+H#?l{?7GYqF(4D1uqfu?Xsg>~;hSm4>~MSR@< zwQ5t64G+a|Hf)>EZ?uKny1oVE`birlr8xCQl}Gc4xk-vn^a~5mg6-<O4V|VBlPTNN z1@N$?Wl6DRPbkzvZ9g{~_<k!i>NvY9y<S+Jps-pz*!O@HuR-Rz9`8lQHfIlKz-oe& zlT6g<Qkxqy&jKt@_m1}G+3fraa_p~u6b4S8w$Uy4Tk>GxyY=2tVl?7Slq~sLS62`m z&UkGvn(rOIox^v_CaNqodXaEqdaxgkpT3{(w<CbCFo>eEip$E&DY$#l){Ro{>V`Kc zI=7m<q(6B;oT=a4tLq#*#Xfx#iosw}x!{=N0kc~3S?UTt%P(HiKN!C1P2iiDjC?om zGj^4sK!1Msm5;3JAVv<E6zl#f^1C&la8i`Bc-Ocb@=T5->mZwdu$$Dn;M)jD*lPuo z5IXplbJv8BL56KvWqO0L2p9wXVQSE9w_~A^#mO=vIO=9F&_eLEtVCoD^?@M0{W*<D z8l&`vy*u=XgrF{c%V|e0MZkRh_d7hnIp!3q$`uDo(kFI<Qc;et*q5jWY)Gv|NMdge zJH>_QSGpEwV*xn6K@2>QepjgICIyqM^xzpUo43cd9zoJ>V6-sQmqGBj7ajN@meTD~ z2XF7T1Fa}hS`3`A>}65{-a=(}hrH*^z$23X;YmE$u}?Uh31wvFlEN7Y5~MgZJ=scn zGYbUNkTk5z9IQK7^0=-I)=B(jSNoP4t}xc}^tnL)nvAQL4;C?cvr6Df^@(4rki+ht z>vZ+INqVtI0d*b6Z|(1y?Fz<z=Z(cXxcS}eUIp)V_uO1Mv^cPubcvb0fBz8kh&qyZ zG?8fY_w(K>qj)vGGYY`7ztt95`8w98)bD$q<3;=wA2X9(HTN`-w)mr7=bRC6)BS3F zWwi1`BXA;C18-5R#s43%!s<V>p10-8hj06UxzIPNi9wI`<-S#FaU(cHlzj&MGv!zP z?ryi<VxIp#9{(wEM5>rjZsnD!Qz{G9N}Stm-sBgU@ngxJ_%Urhp&9&Y<dXY(hZ!4? zHOY#nmE8fCrq}>@8&5WAk_;MDwus<!k>EXT-Fh?GNaPkm9_6TwuJ>UY+t=AMPUIY% z!%}=ALXNHb@8XPwp<!C?!U=;~>q!2_DEnWtsfKKr`ZCr)Xw2`{O?$ZNJQ)w}LfJ%0 zk~Mp{B_N`m#l38`R$DO1BLOPasI$fWVZ@k4Mo_l2t5u{e>dM74!*aF-QMo{{S={Mv z{RV_p@Hqs)1hv6C@7{7MR_Y8fD0<7RauUl->9(mT>VGLsqr@H}Y~FzHj)LbMefi2p z^c6jd`<Y2&5;9?hNj@PO$~Tg6mQB(nBamhWvc+)PF`Zhfpn*ap5|SaZT|=~CpTal^ zxJ?@r$M&n|$7EvvIl;H--z^-Mco?vYE80VynP69bIb-VOvxn?CZ!N_YEWE)j%#&!; zFQ6U-G{g<Uu&m`-Ga$ixhvX9fPM5lGi7N}HJX2xQr=#g@_ZQv|XlvD_z3jc8s#c}u zPto2gv^$nM$3YJMK@h?DiX8iC)t^7b4xr@9v4m%qrEw%1gLqAfUTuGKE-Z^bAzLwG zG+WO8Kwxia>1eIa=pvtl0WI_L3c$<o)7G9#q~$9la-2E6_^a_t(Z6e5!8hwiQ?+Ai z3n@>gqPc!HJ9CfEtp;peKJJE|(h5@9*_kq9C%fl}8`Ak54dr&T5(#CS%!tdLytgJX zNWyDm(_ga1r9H*uzdf8$1uA{WI>_Q>8**QsUD5+il5H5Wd!GSt6{!JP)w(|rltU>o zyAUBEa-frPGZj_khrutut46-F+Z#k$jGG{>F;^J9V6s5{LE-AC+xOn06DFK^lp8r8 zAjj@FG`t3U?i12FB96QKQfh{!v87rWaA`(hqa$T3p@1BKrNYr2CWqIlm8HTpC=UIH zN$|8kWHl4o+X>(VhKH?EE&SatVi`QDt!?6XbxLauy(Ug^N2<=f5Ep$po^e&+)OU`? z0Z+zM=m2Pi*vQr*oYDY8?lW7ue0UTiCRP-c^#?j$bD35T*T}<VcDs=+r>6045I`}! zmx>?P+OJ-3gQm}Z=qv5&-LYkW=MMBySxAgRVc3IcZ$p&iTeJ(p`??S9D~KG11Z^7| z)I}aVrHM=8Qv}(&I_-@oit=|jU+<puSpEIS&FgRJeN=Gaeb=&fIrg|c$x~oNlo&sP zA8R+N5f{6VnwqcfymB|on)@MlXJvQb=l3pJ*zjfl{*$=DSY<dh<yigFI1+>jo*qmz zX~yqI!3RRo^}nE|z&LQ&%zy6BypOw|I++~N@KE{V>NoUpaB51GGYfP|6g~60z$lG# z&>3wy(C7l!FXr_RP*80Al3#xF6Fr?8`mT7h=@sN>GIkwg`b3777^H72Egg=?hf;mf zNYZw=ig6&e8NX0E^dN8pY_NHq0SK%}r~w9iJBx5Vx()P<j^#HePmL>t*un`*f*vT> zeq^dk7*!&HhK1(6h)!9wSCA&tAI$oMd-`TG&pMTFj%zb%8+~I4Bb0pr!{fDVPH7%d z*3;+1bk<hfnII6Rbw{kKpp+ux+zdIhDFYY5U<{QN8fYXxmBvDa>;)z}gKJ!zYP_AN zTZobGHi=Lkp6W}>^9Hoon@%797i>Q(T+XjiVNRubEBzC)6E7!7Vx3<@bWVOA!n1!M zKiM@4wEg$+Sfn|MgP?2^Z9fmT?!Vr5ek%gL{B${k{6MTmsU<1J@FnDFl<7%?A*B@9 z(20Wf%B6dghd3cfE~j90C5&1tpR&As)BhKGjy`GMoD?^x(K{RVp8o0qvSKK(6(O=R zV5h%*c;@{0b7891kzWx##7zj%`R%L)T>bg+>F+=q8#75(IeV3f=STYPlE5SwyFrkv zfFg2aBLbgj#Z;)%%XhDZ)_3x^gRxp+9#|rPuP)8~$!V?=kpVh@P42^JXR6_Py0z{% z5@NH{@@-ruH&lsYr%&l$lf+At_6{jhqL&7@TZey^61z~34|Tacn_kC@Xs{+G<L8~I zX-)TKV!il3dbDdFVR*>i3Z8YG2t~00m(6(WC|gOV;tCxFsLlhzl?k+j*e&q)NR6~R zvd)9*RKIw~b7_F>-Z4prGoH*G^E0^W5;aNFSdxxX1JiN@x0wgh$#HdX#^&)tjT)HI zb3l^YzI%g;;G#Z|e{Q_QH#dI@BgKk_LV6@>%!Y)G)M~`PB}WBF@E<^M8k2maVUYZE z;~F2`pqNRbR;kv8hK3rghH;=$b6(C%i#W{Nd5CgdU9ZFW#`p^_(5u)d(i?{Vr_@6- zBp3J%&>(6ECIjA<?Eda^FG4SmMfRgKNY(!y(gMZ#RrysPf3$pmf#h$J4Z)-c4}rS( zVp=pv8l3y_sNi8?<St+n3;tUByOU{l_Ic0N-c6j1U>}XBFVbEALYUqPtpy!^Ja$i| zDla$5ZQ@1IEI?<aT3=qD1bJO1$9_w#*6jOxyeU#$Zy30<cJn>n|5sU}8XrN}h=7W4 z9e2=H|6#u<5#g5=`yrQkx|QY>7S)WwGXdt2zKLcN-#@Ni0b9O=9QvO>(s#WRYtc`z zWI_9i;z{wn^S_!o-~H%v^S$Tdczr@Sbz1wNcQ<1;zc3hWC%6uEtHk59Ik0xsfa$9j z%-4cVJI?&qJa^1|Z~wF$#ImxiaDD!o=20MS$i3EdnQ=n9auE+^nOP!`3fWx&Y=uN1 z47e!<=hbWreNCk+4ldpGWuAD5d1P2}Wi<7oJg9Lg)J9k6@UtBOyCx#Z)BS4Fc;1yC z-w^a?bJ_tImm(^@dI-`edb#7cQSd8<Q%9gl_ts3NYAI4kX~kAPP+b9Or7Cs9lW2Yp zEKC#uUKm3-WEGB$?WA&yq5}xMfnsL^<m%`A?Ke;V4MdYGB)&8;GkeA`j})eoYwYOo zJKvomXH|<Ewklv@V4}sujKi4vZ#Bpx!Ej1PX5OFy!jhIGl>=(Z{`ZL)>%S-1Kv0O} z9ZPH=|0G%0>NanWT<Eo2$HGsswdT`|$13CQu6%JRur%Ax&U}ehS`uRLBkbAA{oGpX zwFnqF4GyxccT9Z+eS#1b-Gw031J`bC3s-5DJHz9%#Q6+6Y_?xKPI?yxTun@C`yX`@ z@`d;q!L<&9ApW<TncrLZcV^U<)<?Iug`6S&ucN3k@;&muZ(ClxR`5uLHDRjl_2crC zAj#fAF`%Hxui4Gh(`O<<lP_FuY0V7L>>_oQ<m92YnxnwqhfKlO_X}wUGNn$RAWMUl zUF}Azm#p;dCur}EA183wlJlZ~_9c7C_4TsT>y=Z4(AvXVTJDuUB)U!>11fidV<pR_ z2joDkU*j`<%|n1QlQe((vA8A-w&OjGGY;{|L2s{0X{_;#p^_*2(SiKGI~xS>*6WHH zu+XC$h&Mw+Qku<*iJh@7gSYisbt6`$(>ShlMp{o2CCNq+CZMmz_WON#8fIu91DlXF z6F7hddk_QNZJXkUH{;{ur#_`=?RS9R(SgC>gkdXjeLnZ&xWQ>0+7a{rc5~?Qj5`(6 z<Y;hkW8`VB%RS+kccAvZZ9yRgW5tpKN?kS6%zL-4=MM_;_*dVld#8le<bG?w%N@XG z^o?BkB4Utf?Uoa!eoW+II6IB9W7*ca_|@}JciXcW3NFvi&t)tiC1{!UTo2rl0b)2c z&8_)zkzhItPRfYBjszo2d{>6P9|)bP5f&NLUA`<dzWWV#Xu%5giFEz3HO~CH<MYFz zjLUVb3zezpTNyUq4lmy;{mH<6o=%=gZC{@(4+rnX<7oR9y_NIf<DUNlf|7W6PaHeA z=?@1-ht8CYl3N5gq47}I-(GJroPvCrR@oCAn{|~h6?#ymrB0A?gvZibe^8ybJa^11 zX2pP)?AwCggy>L&t?CLy+0ElHG3Sk%NMpL`65$ao;JV6Uj%8JYMv&$oaIl611?PB* z0f6YI8zHap!;=A7W9f2~N*|EnA=cJJIH7R2(RU)~A=k9t`z`Y+mxrWe;N^X6c~Ev= zm9(bWU4z75=;p_6!MYXHAf=!|)c<1P*OkfKASzPdxBv4#xc&XzkMrrr_U?ZN92qh# z7Uifz6*&X{gXDDddG&VoEc4-lT;xPVNTN%hD|7Js6Ms)j<HBt5JF|zMV!@|JV=nKT z--)^Xyt}h**XeptmuNrjm`J=oN_3J4u=n%?4wv#nXZM%u^K%OdGRJg<_7;z9uZzBM zy38-%{~nx5E_Hgk(MFBMkc?=4SOOD_*>nlK1y*lI1Ygf@&3JkS^a?a5zEO=;j+J>v z=l5H^=V4?i0a=h!DpwBDb@Q?8JcE@>-0QCu8tLcidVtpj<4=s1{yp`kzd2(4>|OH) zadCL+TtqE{6rMnGBxD}n+;1X+%&2R$PLhlw`cruS183dz*ev0zt(m=yAyVcAGE#hP zv2@h{`Sz!$T%m9^gF_D%okr?XNEiW{dW1znU?Rk`sX->FU;4#+*1A^_MDCN(dkccL zKgT3Wd1ZI@W?My&On)MZHoi7$J8(l1X)W?RmXj<lE&|x$gtqei4ziYJ!1n9nv;}lM z-7v(2NSwFrB;H$7*F?Hcv^!odPTtYSPWQB5{w}Oa=vg_7HD^}&?+x_dE|M1$xT0ci z^wRhK2IXj*_;`LeRk+KNIK0j>sI};A`;xF0eP_txQo>Q-`Nprw{Ds?e0oZUE0Yjbs ze{Z9O1=hzqp4C$`(dKKfwpsNFgzw6@mWSWTfPVgR`{SSThrVHn+evZQd`?_K!q}|) z&Xh9R$)IwnXRmJ0bDw3HX&ZGS3O{=w6sBbmFO)^J7<BkMADIj<)ylDa<|wnjn&A;E z`bp5o&ROAjwy_-0F4+DkV(LHHwxVCB<DaO07{{)MGrQggr+*wTeoQn|_aZ1=T!CEl zO~luC_--Bz$L7l0w;77^@qsKl2IaQjy#JdqWzthF>M3FJ?GTfI?Mc(#%KSk0a>Q3I z!-Jd`XxQu<pk(GPV)hHOtjOp_2z=EboNn`7`4E^POv+qRc8A*w_SGmNArPfRab6cc zjzJ-hxfBi<`-#4s$(UFMNwSb1H!7*|#0emT=k^+F0YZ%x?wgSt&H$=Y!W-GJZ)L_3 z6cSuwB-y>Fi}Xp?mc)n~z`*dQzb{%S5AHPRl5tD&aAb{WGUyWH;Xb@uysGaBtX=M0 zJBt<k-<<MaffT0phlm3=PhYI@iat=l6oTC!wkFFKvNdWeskaYrDzh2Ulck<naK(L~ zH~4-Zo_|%49pL16IlxF{WmKYmU;1qM@4)%LU{@Eq!5gjG!#(n8hn9f*LjTRi`i^Uu z#N{Y!@F~8Xum{Rcz3^`FqYOpIuZcmwv$p)sa~`#$AWuhECl$dSDY_As$&PPpu8v+# zojy+byvuaPJ|_`p^qsu()FE1_J5;DyEw6)<j{9SmF7LC@2|q`^K+9(q+AnD3BG6Yh znTgzci@(f_-JWx)>3-O~5lQ5haAm90If7_QG~!~6TF?2H_`==Rembx5w(qquWSKNI z0e8E8M&(KKCBT(ebU6M=^HXxTF0~?TS}-<3dX2r~;w?3~S|&(tf$z+FB|)WzQ^e7) z)QsU_t8d9}ft+~MaWT|5--V&Q#=?YQyY9z$x)xs2MO=88&~|reGV_90xq%x-G=NE7 zP?8ESjz?`t1qgr>4javgA4qRVJNn8&5w>i@zXebNwx32zf)B%ebyFAYiYqKfFrYpp zh+GSqC#M`X1q_-*QX7QxYAtyxzbTZ$0K2FXmZf9cEmDgg#{d2tP6Zp*tUliWwWTf} z0&t~Dk9gnzJjyQ!_)G5+Fc@59@b1<B?QppbShD5VXTBA`GEN?!MG8H(E^JE77Wlg4 z6lk`{3-_y09hAtA4X&^GAE4$|MT4zfuGaDk?{3ikdRLU{D*u(Sp4;`<wnsY`y0s=9 ziMQUlIV&C6o}cMO-T#GtvkTrH9e&uho9ww-E`Hpxb9vZLZM*9hu~k<&6OD*pZ*=K! z+?iXOdz=5A+9?QX`3b3#Nk9MY?xGDs<tQB`CAD2y7}T6wVvq*Q?^+*1?;G1UTi3jH z*4yYHmJo*=Vkw3SV{TUZPM;f>V9$q<<3^V*kIfgunWk;RqHq;080-^-MN)_Nm~v^W z%(%zj^KbQM)^4TQB)>VhloVOnl@hai%y!HuJQqh7CF~?cDOEI5skXwL!P)-QL(<rV zYb55I#+%Aq?5~Xg+&E18HLjtz)<jX9nm-VNLrv^BBp7irXyL|p(2{XJU|VoUP#4Od z-1I`hCTeOS#+V|R7$=lem^#VYV-{=3AS4d-6xk%#+%Aau9UVVw62;16cfqJJmXZE2 zZhLkutVv=i#lfhjsK~Mq6%i_s-#cNQ1Q~ol;c!_#haHf#-k}wLKq)2wW2{-*y&53d zsWtc;f&zmhl9W2wZQwqCcNjQHv<2Apz^3AtsurGa<}z6l@7fW*bk5C)!sAwY_FpHu zZP5QA%jn8%LpBM()I4FNP;RRc|3hDv+T#&)V|P%#np<YaKKznv44KNJ>Ok?l%hu|; zmUS9wc{%dyd~*r*%*Ev9npNVCHF*7(#A#0a)$$<*yu}<+8L!*9=e_KEx6)?z??;3} z&{nG5TJY(vKbR+DsB&-r$oAe5EOF;ZRd|=I5czrd0|pUwx!enBufHNMIRy3hS$B$v zpjMmHkEnAdiOXH{Vxtb{`-J-TlYcHEZo7TOYQAn383+~KMs+RH@<b<>$DgGaSIa?j zX5H{kFGD%Sk6wY06z!-fO@{J1XKq8C>Z=5`ZhxPR7gZVdw&UE4(Y@latDG5qaxFhm z+&gLn0VIv;=2q+|2&HtXLGnjD<F-SCxO~T*tq?lj9IlA0pT@q_mJtH_6<@raovf(_ z-8J5j%(u@|hcmttQAEYyCw*!<7;xZEGD(0k>QB6Dp;7Lqan+QU6(k+k<;TMh*O61k zXUy<8=Etf_Hi_fJ<;7Jg@Z=x(?c`=i)D)LG<xm+qpUhX}-Z+i{ZAWjUB>O`3g-_ow zVVj0vP=v=>pYAhzNJc){@HJ%nvJ3EuAp0%J7FFuris>dPa)6=&a+H(or29Wey8ZJK ztz8N947ypPgkI#a9BoLGn#KO#DC?#^;o&B=GVXHry-$n>-{#zmn&lJ*_FTPGRosrT zw5b*mv8NX)#~2${;B0d#yQ+Eln8AcN5fizNP?$Nc4I0$+5*DHLZtyNJ0MfQSTYcC$ zS$WvH+-RJJZWmo`*C7!?ft$APyYhBS=z!+2=9C|gZV(Bt*J$_E3*3<e48Gnw_s`ZY zk1sxUKm3}w6_OWv?d_E#j!w%G5Yz@k%4BEWi?#dO6)voTNIgzITHe+GKCdU!0+++H zD-38}29Et15W!VglNBz@=j#~}k6x_~Cl5#C!UwV0+#2q^0VIYY`3OioQEo*@9Ng3< zf`6z~@FdJ9!CY&<j6nx)oPzzoT>wmdJ4MHmYv<72qk_#wB!)9Hv_hvGoQz{LFuGu2 zJRs#nrONhHU+p(Dtw*mU(V;+;V_F|0a6~p1M3>iOT^9{Ad7WOwb{G+s=Wfb8nr#f? z&UI_G!h^OHmFB_HD86gdnu7x{t=OkU%t;%$2B^@2<K7fsT>&y`^u_d(8kF_sq~UQk z%Hfi8*q{M(yY%OE7<H`Axps_ki7<fCArb#~UV4k4qS_S!R2Uw<3Oe}nYi*(6-aPR5 z>BX<%v%{JpM~iO7!aD%NOw3RWhr;%h5JiwlqtD;d^CDIqEZAg-CjSd8KDwcq5<v!x zV>HDmvn^OTeZK-!z+$b(cC~-?P^FDi(y;r}xqkYOcTH3+DjMehtPO;XwE%jG<HQcM z8Oi*~$bePmc=ng0Z4Lj!=H_N@@a>=7k7Mz-QOS`0yD*CI-L4KiyNItfzm{yrkOcjr zi2!%77K{qlaclfy+=MNXZ%%kNYBCv0pp`kzI6%s5eQ9VM8MfMz9FEYab7)A(ec>w$ z@wEm<_Q@L)X9GUK1Sj9ed=hRk;o}~gl@c&?eOvQorgXUskOm7ihy+*@Z9LB^kJgYK zNog8+=S36k$fQ}P8`B3#a?k%+qZ!A5Ug9a~RsP-W9UUqu(V+aMnkTvZ0}F5JmKgIa zEPU?;+9;U^eYucaQ}2Kz5kG`L9{G;XfCTDQzBnuIz@tWgJ32cT_!(#HOyS{!$K}06 zL$*gPdR34pJeT$VpFA9y2QVx?K_rW)iNUw~eWTvx`RYPD67BQ1KCm+j8A+@yNfuSa zn<G39JzO;!rpstMyikVM{A?qjq?jZs$agJQesuv#h;vG5@3hW<M)=KL|AHi5=o$!P zgT}J(qfC-d4!^LZ*SRWm)8%<hm)_X$y#C40W)L2Km;S5dR7>5oYUi%_Vt|>XA_wA) zzJ8>oikfkoQ&@~;<!J3F;~y>>8RQCMIKxKB;P!vn4ppi8<|;<?tK<5b`tzGQ65{U{ zQvQwca=iK~k~%qM%}bHyqx;lc`h!a2s;DZ(uVZTRhlE(V*22$Y9T^&;rGQHFDGm86 z2B@k976cvT;LR6Dkq@$H&<&ER9NO-LDU#~mXso9Y35GGdmrvn9DYTT)@JLH?bn@X! z?aH+iDapWfC;ZRMbqmwxY4RM8+GEX1MBn0FW3WkrTE+8Yw1V*eWAClP+WNMBVVnQ~ z0!2cBqAhO4-KDr|a4YUm+})u-aW6$mi#rqv?i45v!QG16$$!6l@9+A%dC$#Rd7gCx zH(8l$&M|&A%xmPCm-hG1$GU{8SNE-S{y|3J9YaSuN^|y<62WkDz|F_YRVr_eN7=Ug zXOYNYO=^)0PI^k#{8#;cICUz0gS&$yAaMv)8QfDG2=8N+qUy0G*n*)VQ-}QFe5@nY zc64DOyJbP@b!DoI1Y4sXgOnSJRc0I~i^2?N*(g%G{WjIEay%I<lWp2PnXaW^GPMJ# z!OO3URcHel7e$+ldSN+kzBV{W+saT^eh9@5tJ`)Q!RNNmsTgMYqXl9Q&7Kj=;fw$a z3x?DKi_zJX&#$20AdBCY_0;Lj^1QsuSj^Uk8)B;kcwUo{mPw;;K?bIhi}dN{;onq; zQ1Y{eh}%ie-S-c~6}mt|3D?!!QRV!5#k!02>5Ye(M|*%4S=FiV1+JIq{f$J+SJ%&0 z*08<3>6NuGxN<yLRUH_G`iG4DKMS<dGWw%6ufZr=jOzC_8mhkdUpzGhmHRvH8t}0h zJ{|sO>ff{_I9!!Y;KV7tRf`>+364cIFDyuUoFl>Pn<5%KG@MFxek?}`^w0B<(c4mt zgH9_Yz0Hx-WsPjA-r+HT5aJb#jfJCffceW*YuznA==DD|<Kv^0wz_50UR&Z-s_QKf z&CBz2yQrd|=e*thtdX76jCSH$gFn)1-ipGXF5NWSm|7jh;fxBzG)tDD(}{@>K1AVb za`DT7ujYRq3Pz|jf?Ggk-j1o7))cpAOeL#!MXj?D<WKpgVW54pkAY)jR5<JlpDVL^ z9cg9!7+ecb<5PL4;HlkEvGFdYjfALJl2ONg6ZrLCou|=hg&aJw0~N_tum*}P0mpe^ zK?n<feI}BqOo_L%%xv({`*z(Z1!l{0@i1wsjo<YZL3+k5#N+^R7ESyUE+}r^m_GAz zJShz6PDS9wh$B_tsS$R#oOV)+8IqJ+&A3OUiFLRtFcCYRBc+)-9jT>3kO@##rCNkf za``?=9GK>Y#*|*(a7acyUsO4>H~6WUXV4=(G@_<cv#HIaL10}z%AX27{=^8|vJWl9 zti=x>4jURtqwv)HF#x_x9niiO0qv9xVwq)DZXVw+UGB|MAJt!CwK3hi@g50mxLWPX zSuEca>sgT~)PIOMWzlxJIck?EoRV4eZx?yu99u2VA;Pq5@!7rIxd}@%X#W%PpEG8p z9}a5*;B3Uih=iDgrCN2v@mp7Tq>CICw?;U1A0ofoiYqmaB**9qnJEz9Lb>Hh#4Uw5 zYDvFm$Z6Wz3TgRHMkYVzNI&4c$hy{{PEN|*=0HY_Nb3^b!`^6ZZSw<5D|y#&zVuva z#HD;R*PMYpYQ&U@zHf5Y(AE_Xh59WTho;&>%$G{*oFkOiga9fe?>zMx29#>?>Y3YH z`4;uL-Q6(CDPeA{TtX<JYj$Nr_wDKx#F~kI*5&6L9Y;D36S%bXR7)I1qk2x|aeCT1 z@Y{uF0*yp@E6cTrk>kq&Y>$^Ga*e#)>T-W|4jtJ+8;IXu_*27e!yI~WT#-)Sf0f$x z^J%K9*e8~cnxNSr=cNH!9@zHyD<8c27p@|s`geb1^rmIx(t!{;JSHQUGMG#M71dZ% zxOh7mig)8S^fPkNjkI}Y*$_;|?3!ecAf`z7aFK<I{+CHW>>oO>F(YnzKyprt$U;)A zS*cQPE*b45kYSNw+nYIKXeUU#{b$JP2sI0r2$_zf&4hoDE7{lM^_|kvw)ua|3_l@% za8S%yv#GSDeN9)5Dr9+CEEntd`sw<M$6Pwv3Q+niM|i}&^V+_WN+a^OkzvCqze;05 zNI#4-N^sB*DSMI(DlKv6N~~9aLqd@hnwT|`azcv)4>&o|tH1m{8P|EkC)DZoJ-boj zAgeh*p~n5y3K?8AB7@c!i*Lg0!!|@|gc#>Ccc$vKZ~Er0ds^uYS>(}gzBsL_)awY9 zr>L!+y)It92bIGa(btvOY37R`#&KpVrtL3kD4coqT5k-NG(@{DH%@iHVcQ02OUtu0 z5Z1`ZEa>$K`inOGz-%G99z^OtfWzwrg5Ha>4uVpx3!qDUNZKy3b2ZM25~bi0j0C3N zcP>*CP&Y(9<GV2QM^28?o;`{*g1xH{3rbl#$1NyM(&q+FD%x-L{PB$^$r;T>c$mJw z`L~B)t(Xv#0+ojc5ZNsH)x&5k{ay!iPLx)S3$FDV(;$CFvFm<(Bz&rAYBzwyEnI?R z@q42PC&@~~k#K2$adGjvk^<bTU{>y23zvK#NxSA=GUK7}Sw`p;@7cg!TME7!;D|#S ziULU(B@yc-SEg&|;EZe=WUNr3V@{Xk=4V!bbjD-rFV<yhj2cxMy9*U!&lfvhGyA$A zQlUHAf4yk|ejzrcxwN&y8T>+Q$^JzL#nkMB{EW)WY0CnZ0^I6Wst2~;x--I2`ZlM= z&-bEX`uwrw=4a&<Brem~%uk5XJypZhk2WD;^vy%Gqi18s-zimQXt%y29mA~Y&*Usa zs40g)&bu<J{QDZ)V<R(Z$A8QL@Kd%;CiWOM=%2mzoM<`f^s||0Th-A2{4`KwJa$a< z3>T8HJeI_vf(3bnH56TqJmu?6LO?k<WWlT{)(^*SgTc%FW=G3Aj*Nstxaele9*%T{ z5E&A;Ty@NCG4FK<I$=K<06bW3(5I`fz5^xvM@jDydiAgy>f!33bzGw7Ka)Ha?b0?6 zEtTid8B{BG%+}BdsRcO1WEZCi>Wp`s#({<@StG?mCbz4zo5T^Fclj8#(8`$Ebw1Fi zs?TdN6|*zej&(|`6dms5#{AO4vpwVz5HJ#HSsc|@1rx>6-DJ^OL%+dlGm%${Sa5N5 z)?7=no4Owa2t&;-MdFxg993a9{qG+XPu-%3iBR4nj#j47;{1{OLTpk$0T^WxS8Z8# z46IlP(Cxj-*>%lx2v|AW@p9_B^rd(ZTsg{-m6f|R+np!Vp-;a!vS&`8e{-**1#Db< z$hiE=JTf3jOr-KuG@Qn+>p+x2ZMyyJL_y}Q;r5K&mj5_4InK3gfAi*))xU`E9(48g zUkZIVPCDPC$5EjVO&2F)pQqLSEXj@o)X@TJewGvJg}jQ+Syr<2VPldM>uwoap>2D` z6UH95jgOS=|DK2!o}XF%O<Q31_m~8IH)TNVd&)&e^>BIVXwG@6&~Sp0(&~Lh9zbw% zn0j8MCIb%TWf7(i8}5{HY=dCMY}@XxC@3OwX~oCy@L(}JA^)x{pEX^+I-~^jHGjoJ z38akSyE%TPiefDWc|-FvWdEa8G~i1Wdo}DQwMzUi2%))x1ymd_LfVlNT%OrvxDxT+ z`K>*&fLK;pn&6zwK);Q8HW`}M<)8W%U7gCbUl1bkl<Z?@p;xYMt99Lqp6>9mV~d|% zLjdnF3az6qn&hBnWf)TSs#D4*#B^{~?L?5b2mXUSts-bbQmnxid52IUY|jejxwGLj zb>cyKD%TXSRKLK4yH@d#J~Qw<U%T|7(7gstyUw6$x%GZM9}a~e&aGVsE<LQjRA%RV z1xMN<=VX6ip4UEop_z?tN@?5pZai}=%;9@P*Lx;+04K3Dr2qSyC{tS#`L@SZ)MST; z2YJfNIqueex&uu4@@M+1A6S)V!@FIeyZ5|ftSvT1Hfh|?<QP}}-8p4-#GNMHqu8W2 z$0lH8($AL8C~LlOT|$>Xp0C2AH~@7M$}3d>LblR^o7(*-OP4M2e18gy%$$zv>doEf zS@V_;(j;SP$=}6u{5^lP{ET9%$!^JRu)C>BOkm|s{R&29O|+m1Ps)C$q)&*b>RCmv z9g-S8)&LrMEx##eog|?w7%!-aS{+9Ft5HI{?CODM*u~!KeF`R=AymFhkEi0v7*P%b z;dDG$p>>l3TD?8CsL<?2*+QBN8M4KgrN#cTM*bv3jnd(d_J@Vb#YE|3fs~RgYQrUf z%#GtYrgxoF{gOEkA0%u*!^hXR34uR!Tf)nr=QRggZHKroKP>sv(_CzC;38%9+)qqn zT)WcXH|q57`2jgplm8F`aL$KZBZ^v=n&7V^fa<H~bfa%Fk~BL2uwF0c5f#cUAxp$d zMkm3He(2yoq^yo|=`Atp*y>sKjfXP01&1V6qJ_XM)h#mQkF{6~Klh0(p=6G?X|N6t zN%n+k-n)QUZ*Op`&!^i$vwf>3H-fC#%k4-UmaaQze;4s}#y+*Fyv*@8YYCh0|JbDW zH!**Q3;2}vtAkL|+Zye>4(TyWHT#;?QyluZL6h5Nr7@v!t+%?M&9Wu>F9=oivgfvZ z%X8LM^@oLTs;de!DyL!M1YbsoejhWZpRDP6FD0K$_lR%3(>x3<cA|z)QR51Z3nAMx zL^L&rySN%P<oT`hzLuI7f*CzN+d;2?XsbM33JKvw%2sHIY8&0ovucaiqPjSLy5A3c zFM8z^1iYjRw7EVLjSG#pS0rLYi##X`@V-7vRA&j_D7+tK8&!VF)^%8C{anl^Ai?uL zoTbk^i69;pEU7!jZTB~a?%Oy*#+*IFCW(#elf`HN{TKfoy>3QzqY^7zB!JuIkoLD> zSMs>A%R$wxdS`tQ^_Rn>5+G(FIPzQu(#2o(hDJ(IFG!tt0PYgm)jE@ZdnN*c=@C&1 zZc^r%qQJ=uA{kpc)4SWfKiPEf&7($N%@v$3+jY{IYwTU&kZJ}1CAGl)M}@hKSG|Jg zOim{ua*X}k{dTyb=XEO1gjH5eUpYAhtkG&9BvY2v;zVeQ4I)5kxl0^X;FV+UB7{L~ zC#HPGZtisDPqTGh=5HdGmMq~$-WRy#DkDi8@`i3#THw*6iGZ|tp*%W7y+gQt-w=Ag z@>_6uFOEe*>~D1xt<Mig<6A_fnWN)l79y;r6nLJ>@WHUj{@3op`7xCjzZ#!NS3$m~ zUc(l=w*9@oi5{~tW?JsC)eCO?>J10WilUEQqf132;UafU^bw3apLYwFMqH}Q!gJ{I zA5GClwl7$GDelE%brV{LQnz=WW_Rp9(!qPKe?bS;q@L3sv9+$~0?f{*0uQWGhL%LH zb9)~GZ_a|(6u7N?read|40UJ);Zs~`rGNgR3kXGED8-03Z|OmFL$3L?Rbr<5b8%Ks zz1wXFU)Q$vJEOh)+i?@nJgFdXE<5q%a%Wk#-u;vNZX37Jgbfu#o16YOGVuY#b5u;D z?wn{zEhc8x;2J{tic(FLkXL|SlXxyV7S;7dfHj#bufX&8-F{&9v{1jAmucg3g889S zo6SSUI8ZsxnLT6V$n6_!b)czjMaFXDtJ0<8C3d82WTatkjQCdVP?*G+GThsAA;Lgx zCymo110g3V$syM+8V-v8RWHb3O=DjDWp8JtFcL>6JM`K;v`Q_<->kCb=eGp5g{Tqg z@{XUn0Z)Z+_;wjm^;WQ<&vt*u3)zziiI+!GCK>LF<)=kV9op&%$Ku~DqK9j0ZmzH2 z&FmKz^ZpPyi)>S%7`t?fOAvrgZ3gNjRdNq-T=C;3es90VWf6IpXkFoS@%!BepLjFf zX&dgUb^I0*zVzbU{x|k&ylnGK_xIES%?n_pFm9HQcS*g*b%Iv|UQqqF78Tg2vL&?J z&4013yLlm(0A_muzEZrL-^o62+-kgZAMidWzOF7`4TsO_rdH2&V<LpxBuc(4l7#89 zN=C#%<NG{`V_Xy+<lPu9P^AVPHH29r?BsM!s(CR9dha3w>`!$9-JSn7Zj9lE$7geW zcR};A(e6hCke-Jl{Xjq>iQ|MOZ3uv^ht;xjzpK2E#n7t*4NsLt&U>r9q9s8!dyS&W zyBPpN9-eLd!k$d)!J}6hvec7`Jv+j)Q%$N)dItwmg_~VB34Bp4JUTLB5Qg2vqq)Rm zLWOX`!w%2myxI79vIEc8sKMP3B8KS`u9h(>6uewWm5wPWXKWUe?5ANBt|p2iVA!ML z=0JDQq8j4p)&hAGuo+#gL}C`l<$Yhsf=un4dBnQQO7YO)_4zQ(I-UUHgpJcx$oGgw zB&Z9S9~HrnrUe<x$<d?1i3Yc^-AgQD)-VuUB?ahiEU9HI?zt;dJ`Fdobb7k%+w)v< zQKSc0CiG68@Kq~1-b;=tof>)XO{gc7HxbCze3Ph(QaJDoKgjO1^u0WcZR_%97nx=m z7t{{Jhw3IQk1un>oh;Vgx7fc8<o=B#8H$>H;P~^T6KHc0yJl>^tWVae(O6qCCfKuc zJahB3zS{L@1Pd~gJ8dmK!eKUw!w8%7@NLNz?}N$E#JN??5ukgboueXIdZsRsV476x znEoW1PwyQzja<)JD5HetWPg4~Po1Z;E<-FuZx19;IG&^1EelBJ>!W7%sw=w|x$ENR z4vSH3$(~ht%$e3Kq?Bq~dfvn3Udk_lj3vb~D&;H2UiM)kp<CEnvnC?Y9hDk%YR~#O zmf^IBh#LD3B=;J-)d~yJIKO4q)Ry*gsktn~(q|lO9)qfT|8*E}?V%*3WQ~;sULJe% z9utIG3S=Dis-lf*aef<d0ihq#s9WX#<~Ho$)&WvhCzW`%@w>lljG^<i<?_h6v{X>! zANe1tx2T(vx{#24$<3_}*q$2u(b*!b^Qt6Al767+QCZ?wJZPRRlp&*hE?Pm86elhB zPN)YT6aIK7OnrTQNuxM+%F-+`wpb&<F@tlN18mTTthO$6q!lhae05$ONX6-$n^EB9 zwRxiPAl=f#b9-#fg^=K%V4>a$rx%qrn$z>rM8#euJEte7;i;PClPo#r9NS&Tr^3@W zEB8wse_a28g#Ot>4e9!VyKQf7*(L(6B4dhgTEQuJ;t~tup`ZS8&jjA!X30Kt&ti5Q zCMfdkNMm53LaUcP*htWWc)?htkk6Hv((m+kTIz8Zxm;`kh?$2eCF_GCG_oM{dNwaC z*GQxZI%o4#x5l@GJfDlXM0uZnCko86qLp}ai0A`xwyhFD&hH4I7h{;ngJHw5#|5>z zozW1c&zLT|G@_G`N5Cwj#jj8gSkP!1DE51^_sw*)m&X+mW=W3qN_61M$-$0Vn--HC z1Vfy}Q^dJ*$wBgM!IE8K=hdH!p;E^t@t|fQM#)9H?A&*nYM$c+q*`ReC-3KfWwJBI zjEOsrb%t<_jg`J5NNJJiS8hn`c=}_~Fsg*#x9tkIi4s|t=`$jj8>K8OwVF9N!*Exa zhCGHbZCqTO|1wn+JAGZ1f%(9Vgo`UG{{XIyB3DgiWzU&y<vl?Y=EXtOZ~(=POR0^m z|BD+Mxrpo5EnL}_K!(9l??5b}$y}Dof5mV169h=YH>{dKqazHxv)@=q4IvAm4a585 zuC}GiI&lcyn%<-eD&hcyIO`ZA5nx*U=h%C-W1}y0@ndC7i#7R9$tqux!*e`VHXzF% z?&64*q))PE4V5}t{GiN9z;EKnJdOz$bcY>{BAzp6#}!pouegoVJ9oS%>Q0A8P8AI* z8)iwY-=R3l!ANH1+peN>6CZ!zfE2vyx|7i*8&*$*<jDk@Tz-DwA3uJB@@u?ry3oX! zS-k^319E^aM;|J_=>OSK-=Q<T8tql&RpyQ7jK*ggH|e8gxTvnx%w1{>rM#mayi(&j zL*cEIRd1N_if89NfF0_?|8zTdWWMC$PpPJ|l(sbQ=<_gk<rs<oKBL={S+Z_^PB2~` z(NRN}VFVt4ILbZ9KcJ>or8ABZWoh4d=s8^hOlkH*3-?@PS*i6qBIliLix0=-IP_c# z6k(K#9!V+%9*5u6ICYvI7Z#7*wP5~crI+0l48(nKjSU|o&QL1>zltPd&tTIWU%4(8 zt@Xdp=O$ijdMc;*lKX&KK`5dU5f}Z>>o`?9-dMuwp)jJbIVHzVhLcDx%JGenG$Xs% zO_bl~2;Bl8>2;Yy#G3xOt=sx#_X0MtRcam@`{H@F_p)R}&z$_)i?auT%kMAxu-gkY z+lsd1%RNl;MUuCx#Pvh@&~c6`9=b2ZUH3w-sC+|_>c6Co@FM;RfVk(WTpYzRy6d9O zFYmkii+;MTvjh}Lg`+sI4WRncxG+>MgNo0alS5Eh3qgHP0+%{k<rBD7yVc3!P*!Wm zaP;B7?}DOiYo;0y{Gk)k>Bffg;HBBQyOo8z>M-Zpv-#I|+@2rY8tB<`2<S7DJKl&G zkO!tNm6(ymsM&fcNawJJ;iKl5OtP?so9S(19<$E6`tGNix>HxLeyCGwm_8A%xk;v2 z{&Y6+vB5RV0JV^k8}|OUpv&D(+ESOx4ZL>PPBGWbsZ0#mBu~YKG@t!Y)}qTmL4BX` zmPi^dR(wk1taK8#J^H-VD*U{pB6P2jSlVJv80XEfNGvIAvy<_agKS)E)7C@RUh`7r zv_CDSa$A6y4h?Gi!H!bfrAF8e?$ObOXG9Pz=AO(sHQViv&+ezT@oaBw56QABintd- zC>USivGtS$g=W)Pkva+bz}C9jL_`NHe$VdeoIIzSZ9484fEMUF0dQ?O!@SFItQ(^Y z0dfNtEo-XUcuc67J0DTy0*Pf_hB)l*j~-E!e~2e+xd@3w@y88jDQHE}O^^vvp-{eB z%rt}%UdxPDV^AO39d7(h`9(6Lvae<_*R?%!kq7<&yU~=lGbwOqWH-mr31s`Y7r)#7 zT;%r&Q0pC2WX-!5?T@W<xlkLBYaq(Pa1r}94O1t36Vof1s`BjQvcI>!<@?1L<=;!= zW_#BkiIAqyAIzT51ZZN6pk#-8w-$8LD-Bmal;ad4xcm}gBMo0)o)whdRt3Ugc|H?I z06!BB7Ms^GD}kJe7yy`{$v-Qfs>-}cgaR9p6p9QQ6|r`uAHbP9Df!6Eq;8p2olUsS z_+SqL011|LV;JWJXCedb_pg88Zf-hW_bfW}nmc8SUacPVEe)X&GBuShcwaAsQEQLX zyGhWJ6uL5~t^-}$41l<=uomM!(v=OvtwcTKHTpTvnXbokus_+lkPwN&(J@B=A(hEx zk;RO1WK*EO|1<JcX(D0qX1Q{WGTqD8;a6NImhlO6*?tSw404^y?>8bITjzo>pR}8- z9re1q`(D{KpQGO@qK$qtDGpRdDb7XwItprkGTCFcH>ffz-^nR4@{X7_99Xf0ydP!z zJ=RXnk_Lb0M{HI#NoQHQHZ63T#^u7)4Z3bMn`W?`-k2DLQKFK`We`DqJVpX9OsZn8 zr=_IRh=?oG+R`0ggq5-6sL!Bg*BCwDR_+H^TLNds@>Ie0%XhM|X@WLh;*fMjdWo7U zd-x$QQPV?=-$x(4OA~(o_+Vun_^$72qi`OVhoX<34fJ*1Hyoc2=X2<1H)86Ujt=p& zgPqqc9iMg{SF7SVv@)I>BnF|iiz}b8R-Pyv;9$aY*J`~%3q(hUm^iS1J7!bgzA?+O zdftDczcBk<*Q5U!i~&1=fh|U%ON_&_<;04Ocjk)sd8pZQY5d_?UOxx7n5I5;-}>3x z;}$!HMjiV<9L~rvfUZE`y0v^MDn9%cLUddt<RkjvieBVp=ps=AuF^RDS`R2hxP%c{ zc&#`x5Jd2Wwj_gHnRSj>Jz~Yy`L|3A%Cp0D@#I}$3S;#6)L@hy5-KEd{CC-W^c7d0 zjj^iiIFuZtC$5eXRf8CaJ2t_jL29%FCP#b%i$?diTQe_hF;ow&p3WC5-kx)*b)RXb zi*&nqy)+JlL4}$PCyo&ap@dA4Vi5()<J=HgPiA;F4oih3?&NGA;+Uh?e)1HHG47vS znZrvB(YnixmvFN<YBuGNb<eN5tZNSrRN5zBF%MWrBY9a??pJV!yHgW>ZO1A=AJ2!z z*@U&Ka1p$ssq-Eq3}VF<9nzuONjcMx%cG0LTL}`O=91>4vm8mnd;)Vnorfi;YWR2u zBvuEuYfGTe``fkzr%uzl4o#YvS=;kJtJiFK@s)3P-hQx}EA{p|%=dmed%l9UWSWhZ zdpf3{KJY|TR@33YVp-zc>io}>DRgrl-g>24-MqTGri*$Dw?atZY0@tNs9mDQE&)5J zV|kC|`wRKGMvpBD6fe(1uSCmTp@m`eMN!l-|L^wy;~B`-j!b<LB6DXzhk`btEBo$E zt1EfOM`Pu4JusJ9YuA>O_CeFhmHXq2*5a9qYUk5@d3|l2S1}L=3&N6)YJHp2=jz-~ zr_5y2$S-<2<TOfz@)@LaL0lOX4f8Jpvr0~}3IlL}+EJ^rWg#}S!O^pI<(_sM{2wMT zBNr6>8)*Cxzg_sSm`fLxY@O*(<>^}%8!s5?bo<m?>_x8ri$qP6v<AFD9+hEcy4$$$ zmOBgq)(=xumTti}Pg~J%9IdkmJvyphfWDJrH&&-k*JRSH)Et4|;U5C?Ylf|yBEUA- z3?fq04d<b`AXYyKA}blu44aVOp@_(KU#U<xeWrOO=N3~MkN%Px+jY&``dx+4&daC9 z(4pN*WVvdhEAZ36sa1_u^)gSQ7BBq0SdNxz`JBxFUa$zK4vV7n+G54w8Ps!GcJ$XZ z)vaDV@%%c~51V@71g4|YtsdN^!)miv_KRQq+z(F+$b2|tzk!ppa#|_Ry@3)^L>Vz- z59z0mJGqfB0VIinM3-e>NsYZPzrSqQQ9R`b2xk=QN|R6-eWp@)O-LND^LJ-{ML(gk zeXtJe(%ebd^D!5W1T72<@FouZ*?B8HHm)>NkHN9UQw$Ha6HFNlrmW7v5T89K43Cop zP}lJZsx>BAjw;~4=Ze+*j&u5G==C+hUZGH*-0-$6aW?T-n@$G^gIXxc`g;akQgqy$ z@h+>2)>tE7KQ2#`ca;e|6Eb^-AZ4-%crivm&*U-=;iQk*ss}MUC3{A11Xu!Pq>(@Z zO6-~r#gaQNIrOY7UD8UJ*&155e^oRH=S^3c^j39^s}Ec4vWuc(py9{l1r-%M1y-`< zhw^3}OK<Kg9G~J%0}gr?Qc9cR=0(X^pA|{xLgLk$=E;0i1g^(jPe)5R9gI4xKi#ef zTo&`=903mwj!RRGg`2O0x$2gcHv0|#Q4Ot@y{OUSq-JS4Q6(){|F<}xaVuDuxtMBj zx;<rkKBL%U4fqOadmBj|<d(sf+p}^o|1#U`TDMCazGvvf4B|(Ins9T=!=<?VN#a5j zRCxAH$DW1Q;rMhQ_*U*iH%Lzat+-5glSsDK3zDWRV{MqxtuBhYn<lBA&A-i<xq0!I zAqBukvW6E4-$a{jHXhYKust(XxOir}5wnC!=Q(Ndc9{OX7R_4;SB1e{wy5)6w#5Ok zGHaD*Sbug`1_)w|N$Q20*y(+r8CZM0^Fl_##rJ69zi%#?>H@ANo|S3xYW?Gf-NH1S zR-Kt*KrpC_ni77{Ar`e+T!IQ!Z@bY2Qxxh?n~9H)L2+>sI#7{X%<DPs24Coy$qid~ z4Rnu8Dk1XlXg*Djch(kp8JuJ8?(?VLn?x3K9>jE8J`5eV?AM5Xx_KP^J1YA4dvDIN z$igV+XMsMcqDZIz`R+u{t-lv@-k0XLVa~g}D<0Q6d5W<RO+0&}I2V3qqFtgZWy7k^ zCsHfg1G3w;X@VMRV7Ktva@hLEeX<bM4|Vh76ResT;yfAMy5eIkP{TE!iJk03mAotf z%(dZ@t?PN2icP7+U^^%@d=mC|b!R?D=#HYZvx92{&Z@5*Et_06Fx>=@Iw(1+tt(K@ zzb1d}DDt!ECQ46(zV(j3$rtl&%SNq*L@=7RL;<KLXqO7T?^5BCvt^+WoFs_Gv?=M- z`%wGOvdok#|29k$$(!Hm%uz~KOn~$tHONX}A4*Ph{B~NRH#-hZ<%z;&x1$9TVJ|ie zy+4CZaPTdXJ=?yjs1w!6ePJN349a~AwRLd0_Mf$OqF6o0E_{t_<AMi`tD>ZS0RG2E zau}j(ujSRXJ4taj(Drh`)@Ut4l%6QSs5A~W|6%ZwyQZ^pHQTb<oi26SYK{YV&)?@t z_}e43014>}af!dD<5F&|ek!It&KFXdcm1^xyDXMusxt!=IVum%aBvLXxZe<cBe5vI z_nIi<Tm~Q+*((30)a>b+UFh?S-$isF{$jc+rD+mq<vRTk?umNdT%Hq$heed3RtMS` zy$O&M^ftRVd&zf=LprwKKXDqrjD<%H+BEO`csV~hAYRP%QY8%GC=96AN#eN2%aCR& z8kmC^WmKb*W=5$Zx?d}oWcf7dccd<>RW}lgn8j?I|8Vd4zM;PuP%nIwoHp+#*y2{f zE%F=k_-F3n+4jV$kW4?5nAXefY!P{lB*RhuGB$yV4IVwbdTqVxyk+NDt)gO2`>UNj zl(O#|Bjh$(_E4cgMp_EK`O!ED`;5%53J40y!fRxdiXJmx4pGs>QZl)J!rWrxgNex- zTg+O9wq>;PbWeyFmZY_QXAsT6Id#oHI~Q{Gf@9O?=ecXHUV=_?>E%2X3ZhSae>DVM zzW41&1G-_+`@;qa%Xh||4BUpiA7Z4dZzLLO;cg{$oc(Lnbp@#sO_nu^7|U&K)6WN3 zEeq72A@4#<_<p%>fy|;L+4Co;&yZU8ZCbr4cRbaZSBP{@3$lZlrw%)6_1srXY(Bxx z-cjj_Q_3;mn*R~<7M;a+I5uneBK-c-g)D3<wYThfXni?xGpr)1t-X2cHz;!aYW<vo zu_>VR&s{^exu{$o19N!JH@0of0W;d36T0WFI+bT<xBbnT#Fv+Yx~|t~b|v~y*BW=u zad`jpFE+qu9>bcARjbK=dqebGBYW-MOA}?g{q7;~?9A)Y!ed^?x2AMC0-m*as2@R4 znN|c*<}v}X$zyI++j;&>{<TaGBypwImi~tay+omE^_<`@{FR{!cGRSEWJnZNCHFS; z-fEalp4XN&G9dR~S-+L6=vTfB8kW2v8la$0Sk)o(RuXb`5_0tt@^kWjOfWkxIff&d zL}3U!@NJJ`WcVwY8Y{<|ryxeLIo$9Tn-OsLFx-m^Oz4`ubTf5#cZM0xXoxlh++sJ+ zo~i0~dIy}-C}iJEjSg>TA7Jg;lnvJCVlcWnN=7XbGf9Y1aknu>6zXz}*SV!vG%S5A z1I``9QZUY+TKyb-6spMzxE?^K>nwtF&0N;KcBuWc@I3j#C31J-x_$i;EBuJ?=Wo@a z)XV9Om*I`S=#%%u-z<h9+SFBmw75OxH~MvICeOcBKFrpZI?G+nKEDk|Dy((9pjs~{ z!*A>r)CdUoLF~z5!zId2PJwG>tH<|G<AT9*!;0^NlSbDs?+W%(*na^-=wPo)MyiyW ze%uCcF9nKUvKD(Tu&g^gs2G-o{`5Pvv9|%BB4ArfCn5Z1+)Ue8VH!CV<hWc^n5H2o zNWZBw{IS9bAE>xsn_f?&Aw*IvmGZ+PbmpnN@?A|%1X4Aj?4ez#B>5Wk95^pMDRNko zCa;2$4dcCMZ%aUDN{g-uCTJIGS@~q>^k;rqcuuqyGsa1$&in~_Lv}sZr(wd!8^R+r zWe4GDye#{X@ddh^v|2|dQCIUMx@WLt-z<g+G^V5h{BnNop>(vrx>E8!Ro%+g|0~(J zUXdM-mK0GYmP7T1QgJAXH3HS|jd&;`C`Xb*h)^|!ONl97fn=ToLJjC09L(TG2EqzV zlS)h0fhm+<ESaExt{4B#uJoR!ePSZB+}?EAePt$Ym|In(YxVo%@m=HJKJ;OC4$XIv zsUL5iDCEVc<6jTzgjIVl98SNYU}~c);rWh_{pMal_|XVEGj>TCRum|p7g(47C$t?M zMDy>97&HwGMg9FXrNejv_Yr^i{lbkaf<O)(85KK1L^2j}O+Nw(F?YQ3C63rMa*P{0 zcwbR6^T&M&D&9x<A4Kr2K>%1KYt?@88}^_e(|AP6F^MUU57`L7iHLTMg{Rr69a8Bi zZnPv_$${q1`_=r{Z$5c()!4xf12a>XzVF3G+Zv^lhjvqnh|d+5FM!m8L0{SNAW<Jb za2mHadA;NpOczz|Igd9ra@}+k`mW<L8(RIYcW-GtwkxC(^=D#wMej4T6`-WUV!*xC zS%VQLA%G=t&P~T5fjKQ^iUO9Z+KX}eHQ@eXL3F%1`T)2maoW7|G<=_(?4g%At`bPS z)w_7&G}SIyE>W~C81P-d#e1`sS9d{cY{ORZomdZnwKTQi-x-~H)(0aCVJu-l%y!)P z@uv}NbKdU?iC2o)yW(@di|@RIHS-QyJb{!3^4V=m@E|9f&Xh_R1Bk%Z@oCc^SxnzX z-K{~1kP#7_hlWJSjFmQa^)2^fq1ABM%Bzkdot{^e<H+Hm3#)&*4?P1$s_m(`CxM;Y zyU!Ps>n3bA1MDy|pjF6UsUMyn?B>~)@m1bIj}Rm<yfaz3Ji7!|-La+#t2lazBXD4d zND-IBuC!y#9t@K5t)Pf)XCi8L&~7&Z@>{BPE-`#_6b-+;ZiGq7h&rsNV(Mrc)@mb? zrC1X%$(?mDNTRv6zP0&1r5IMlS6f)0#FyOs3G2?z_l@zP8n*0fw68prsLg6jes7HO zhCBSQHGE#7{#<0;NdiVFwR;aNc<R1)8gB}?{PTR8@lE}&a?~fy{yqHidMaigIz!8% znwy3KN`fF$i~qT{dL&d;zw$sL7!{LQd(cWiG{l6QAI~~ZQX8j$Z^z>)5!5y7-W!G^ zxi^0So3MMh7(%33&;eh%&)7o>!jf#K(1r5IEm<4RKR#_c?!4!9%QR@37=s*Gv3kt- zmUKkBXv7kziq?(9J6z3V42>Ff1q9YUGm3TyF8-W|cL+xds*ncw|3XBeY<33O#UaFj zqO(KMU+TTqag*z%%oH*z42<AWH`QJf6u)%FfUFe`el7xDf>l33kAEC9xMH_`_wCM< zq76)&5nRp)uabBC!5GuhL5SnSNNT8dw6*R~t@&;OwPM}dIH#)Adw~L}LHKL=-N~E5 zKb%T-`t_Szny_~7u|)X6PhTRSah>3K>c=FBNW2LF4r-@5u$3QsJMcq7(g}=5aUsy- z$A#>7j;riKQy8|C=Ov?~i36eNzIA~C^tJ<(;$JWK$DI~yHo{3C=pH~{HkN@hKJJOt zM7?5EbKnYt0q|7FwDU8Nos;{!eL1HmJ}`lPN^~)l<bx0)Cvw$Z2CL^o=gY;ngBT-a z_RNawQ@y;0SQ^J#GpnEtd!Tj6fIx!+o#)Fm%aldVgw+|&>)~#Q{{!!DuddhL6I=*= zGgi8<n$~S8H}HRn^?Fl-m>rLabg;CO=x1hrrV!-Ng`@=G5K(d%B54R^k<9VoTNmEh zg2!Vt^?*h9IP-skCkJNCBECgiAh99>X=sSCLoc7koy$4n+KX+<qiA+f^wCaf(km-1 zg;y^87nip$q;**BrZ9TL+4&4*IPcOa=m)9|ggjqTj>bHnf69l{I<X?s*vgnUZbtUp zXRwfqe321+=Xk&Wt%38e%D%Jmr4~7BM0XCw61V3{wx3<3<p?Fm`~SIIyEy@$`v#>W zgSs(Y8u+p(O^D7k!$dyn?=T^V!>G-|7)Je;2~JHhC&9po36AM-GZQLQln6F{7j5`T zuHUFFRY+&mZ?)LRztBP;!o<T(O{zw)4V4BGC$Vx&a2(lstzNvLM*t8Hk4l&lAcSB= zWCqJjij8PL-R2GLzPS4Q_3uT0CQIW$O22xY5m=TUx>0x|=h0Ie{;4;9b-pf@!hAZS z+{u9zt?nlPpl)Ngij4Btov@C~9YH)8uRw3#54pgS{L6j66%%^8mt<>>;)(2(?EAbo zzWJ4L1Efy1&q9?N(0vu0T}LPQh~Oaox#WZTudxbEPeoR4aoG{veG7PnQmal!-bxO; zOuf$O+LS4N0rZ3mS8lwDe%m`ox+<|IT)nBq*-_SO9-o|d)oZKY$&eFKPi@0tj<g~9 zPIZA(1lSQk%#4?hpI%%21KDVmn5Dr8FS$HOC3HHbpsHnYC!MgO;8Jam_{rSAA4g?) z6d{IBqBeZvWZsa+f9Afs98nr_1UXW9`hgx3&TK1%aITAn@@49``=|E#R!`drw$&U( ztqTp|B&)$lw^=1NTch(1dQPTD2r^RNj42xJrsd80@KaaAr+GHQr{bsq2W)J1A;Qpt zBj}YwXQy;;kUR9OK236Rqdof5TS7*B44N++Q*udto8VCdg3!$@mMPg%OBY|ZVgasR zZw^&cOk+0R$e9J)%(N&v6HK_17nMNufBlA3P!N1O&GGtMKLUM05ZuuGzkd5FU9)@~ z`)dkwc5tXQvt~a!U5`Fgnzi3KfKsFPSoDj7&q{$ea`r>Ef$?<vqwi(z3*(QYm{@6Q zcOQSI&?Gd%N&2@TnRrHW0tPw0LGih%yd9+;P|`}$uA=w;hW?ka1{r~Ceet5lbk}Ch zQUG|){=Y6(F)q&V%c_LfONrX|js=;fTQEs*A?n+UbH2WA0`^{h5=C0|G09a#3?z04 z7XbWgP)Tf*d6L@i4dUzX^nzkRAa-zP*eC#>Qj7+hYZ^d<fQW&@0Y*$hKtba>EfO%n z<Oa_rSy6pPmJqvaHUT4Wzw=0ztFr{|LVOQzS-O5c4mGh?=rjg?$0piK?eFBRTD@zV z>a*-@LA4}u@(J*H>^=Y6fOcu_JM!!Y&T*f`(8*-H>;*_hc~ysiD3J=~fUhN#qiB`D z?#@{vo(&A_<HVvYY9kGv1!NyjHK+L1ySB1bfnVw+Z!As=y|}7x-{|DmJ~P`L+BY}D zy*e6tUT%lO6k>D5L_r8BKozMXGKrFg(>B9FblFv=SrRuF{(R|I=Wj*bB!yh&_eFi# z^D1QG0f^SpK^4^-b(<ZVfzE3u`CSWI=3_C>5U-=!bEd$v1C{4xI=?Y~wg@*4<MYte z(C4A<+vjsv-2?VSUfQXz{b!w86gtiUfJqZQxv#cE={{frnbrzmf|oB{Yv;jPi5wE9 z%hP7)Rg?YlL&V55^fMYw(N)7;7hmh`^Q)<d*96w$swHIUcl)cq=j~U{Q|GDE|GMKU ze+<X5swB;uZ#{UCqUSnI!Z8NCFSo{e`T6+kG@>>(X}G-WjnfMNn$0+lTxi9=`C)B2 z)$`O#ZKU??SO&y{JO&9~DH)<nj#A=55fN1^K5-$7f#`h(m<iZDI+N?KsZqWl_T91n zn%An^Mqkak!RbF9SrqIPc087uLIu)To9mi$^=9CU7ym*q+rj|mZ~L!Oq+2>GUm)y0 z-S2bY5$inOXAXsL&(>-dN^Q$0S@2!Af4uPielDZ_9Z{F}XlyK(c^H34v*9LlcxsK8 zINHvJp9_Op3#<2_`-Ki$lC-Vmh~iCEPE`XP(^A)0Gq!Msbt*BDJ`+TOxPM=eC`Ba_ zEwOyzv(8CllzJhL$TjB%7l1|(xMeTtr&#pn$M(UDF#;5^oL3(xdL~^j)v#zso$)xr zFW;DZcQUj0kPzU~h<%!=Wo{L54DG86z9oZk0E0~8H-NCZdIBB7j7WAA^6~Z8*yZ7` zb8nj2!2p3tkCVsTZ!HZzLrg4&4bM4t4kT^oWr9sF6}PtSchYnDUh!jB$Hr@-e^0In z*AkQNt{t1)19<{{EiZM%lu~MHz5dM3-wjLc<xRS4y*?a;BB4fe<0DIf@e|aLl_ffd zzhMyfG6Q!u=ajMd{b_{ny&TPcaPd$Y2j8wfIsI_-{~+Yug1w__ToxL>t@8ZvX%j2! zVb#QPtw+ocSq<Bpm<kzHMXIJq#r!FTf<0|@>PG77%DGyX5i;WN5?u-Nm`&~SqEr~M zs6gWezZv-152iI*(|x|(zw;u~e`#ImErwI4bZrL4HEtWfrbC^&el#@LAYfDG{esZ; zZrA%Z3wk_pF=L1Kr=~47?yPgh%KUN`0a8YpeuK=!Sf$kJ{Muuz_ASX~E&Z^xnFB<L zBf#06If%G_emN8XNp}@+<jKVpcf9HfY^wA*m7YbReG`tL$6QuuY=56H!V|Donr^_s z3)(e#jpjCVpS`5>0w_rT9umR^M5GN}Nc_AYF}+wyHI{M8sC^RCe@&B%PM(*7$A$30 z?q=OR4JOfvUyG`<WV`ojS8^y!#{5I{2L8u{0V**e9C3ugz|pWmvc7l)KL^2K5qfqZ zZlsE+%HEkKq9+;`e}yT*X7|${%Ep&iteI#8H1Kw1Yp|6P0jALXy9mwS%nAXqcd(d5 zM3$B>m|{8_)s6>0Lo;a?^e$fCBgr#{3V`~JB-XTTMV>Lj9m7iPZMjZmYzOuDZt6@R znwVi|;ii94@axvN#h*eV&*%rFmi2mLAoY>9FoZBf_NqdY|CI7b(x!3W79IwjJfE+v z!O(Z-Fp2<$2f{9+g&WM0SoS!GAJAGC!$sr`+a+NgzB?ZsGX38|Fv7U3k{DvIbf3ID ztk_Dg3WP@$w1HQGYf5j)tVXWg1Hfk&dH`~DZ;~Jo&xV$=qY8=9*u0ME%;4w_4`vUh ziYcDEUJZVk5<C;tv*C2K4IFRstgn7JfA01oDswXTUqr(iipcgezdW1tO{!-(eRt?M z>E4YNI|<_ErBV4Vw_$hoVNg(vmX!yof<22b$f|{3ojMF6dBUi{j*&}K;$<#~k<N5e zQ96q~F|)x~RP!wPvc$`y-PrycEw)N=-#K9W+Bk-{v!LY^d(da_K|MP-d|dR|r|}bA z3eR{jh(I{3%4POuzOk$5D8KeS=fosSZRy6>({}gyiPa;!sk2WLbCU?5L~%gy;D=@T zgr|+*Rm0e!)_3uR^;Ox1SG_tv0-x_!&l3Rq@D-ORqs7vO%Sw|pJ{4wk(6&T?4!zUJ zLi>K~Si8dv28BVqKfWyqpWJ|il@zD8Yp5Q#2D%yA$ui}VVs2ExUU?mTzxh0XKJ*C{ z6ESLnqbG{HS3`Kx^LcC5AiyGUfh~4Bn9o{2{b^?C>yM9yFF&a8YAw}KXwSph!wKW# zjgM0qSRUMKBI*P0B@yIsIdjlotKn?+;~3{oseZBAUMC2n9Z&qlKlu?vjEvN~3GdRt zC^h{O;5>X|>A}=F$9EoeWV>v(x>FQ+e));7OUyOj3XO{WUnyiT#l?VVAY%a-LJAW8 z|9UAG43MHk3WAA=<#<)oV}6XL4Y?VKWm*y6p>d+6MEaDxt^A{|Ic|_9rWK2csUx_u zesebPvpbKJQhK?S<icIVdG_j2u5Ke)5ynTNiOy^Q^&2aAelMEXe_I$+PGrVo*kq(& z;Eh{VLn;gJz^ja~jp+m5KzW@6YDe>U(=BRR1k>Pg*rGL2F^C-k)<Ev6;gXW^(` zXc#+E_g(7^OGD5AI|7o<XG3g~J;YFkJP&!!UuSwK=lm$lNy%Q=oX94sSxL&=T1u!B z{794tbwNc2D|gth*lrW=$_;cJU%2_$(motc+|P~gJX4U7`B}Go;;qz3XPx(Khl~V> zyfE~8lq*X$#NYL-6f`di+{=S=g8J~A3izuCjFACMAMj)f>fRF@m;TV5!}IyjFE-nq zQ~5oV&peZD%^<Tq3slZ^sX-yj@$K~9s)VU3L9g}C-ESvtp01LXU2ZuYO^rFLo`dA@ z#3#)uQP@FtK@6R^_^Nbf<8`2l|HPq0XIv51ZnB<F(bDrUwr}7Q>i5I1=(26w1z|LK zK?uK#v<ZBm$!pEM5#de)>_nCPLe>74m;IjcxXL(ta=ouIdvuCtBhzQXf79Wx1BVx@ zU3k-UiQv`JM^p7!Ti<@wU!!}5t7F;}dvaT!Bisrwhu8tqP0a^%)p{=>aC^BS4KQj> zN9AQ-@-onO*{P~G4nbTfE(mj&8kpdj<-3&eJdE|VYd__$g^n+O4(>KPkoaK9c&_t4 zQV-2Sp`h2Aq?29Sy=ds^d%Q6`c2Ut#D4q4iywQgj=JLxqPh!~Oz2ng|JAx`uMG_m7 zgNqDK#$lI7r8N1(h=!~Rw2pNjr~i9Z;!pBhOagnidlWQ_R<>&FiA()vMwOkS{>JY| z<+#Zf1Gw||D7)($7$3gC3}uga7JTg1--iX*<Hdz-qOu$k&=wQVg_2lD;7Pe@jePXS zwNwsPCNMEu0a$?JKGRgK>7=XF*lZ|j0<!J@7!vwQL=aZ#0DfbN@c*q;n(@Je07x6w z(0GPo`$q1oAA!E@=UG3`!~$SEQRqN;BR=>uA}FmO7KV{5)ey7+ceIHGhZR*yQ@{{< zrKJ$Hh`Bo|zYrq0pt(e3s**@dp%PFBZRnMSmYOw?whk0xg4q4i@wh1Y%42D5--`E~ zv9sKV?1D`Z2!{AlIkHTDt}hDq8~<ghcfFg-$GD?DJhW%u9q^iEdl-kGA;guq>^3v? zwcC{!rGmXCh(wRKodtT}oQO(!%br>sFl0Flkt*^BJ%&aQ0WKaBR!^@^!`>vFVpcjU z!)Oyva5Y3|y{OUY_<g|<*?7k3_hY}eRZ{Bn-4eUiP1;TE&5fIu>8!!Z6&m~JxGaGe z){LC<N}Xq-clR<(f(08NCaF$~z+BgzjqoN(GC6G@37V<rW6!;?ynKnp>-2acyj?J= zj0;4Fj>OA14`N{CoE;~}8hBn>=_G8E5(Dm_HS7<^i{3mgYBmJcszlOJLhrH;$q%m* zJ^fZ@n1K?O3g0_BGH<YQc*#G{eji&L*WTNvG@QLs`Rg0m+KIP824ojc-sx?5?&LjL zJOA!`Pls;BRcE15{4xYB?($8fh}}o*-NmCEX{m<{&vopi2zT8--dk?=77H^0l_eU@ z7Ua!OyFMPhh!AA%Fv%lEv0>J{qnP6f>~K1sb5CY99gHj!Mc{}UxKl@Pv1|H;;V-wV z>e&reiAK|qM{!{<r3H0+Q;yR=$ky-a4*L7YI-Q6u^uESd83S`W{N&5=7ljE7CgoLB zzYGs=d4Ne;K7BepywX=AK*^D7${3$u@p$MRj1KZv^GP0xMvE@e-0h2IX7(UX*KQ9Y zV2RMT3VMaLQ?Y%^ZFM(1R6LS)=x|^)lp$W0#a%)%K=|#yFeSA_Rq`;Hd>9(452UrR zZN)rY$IlVZF$K4PGuPt~-p33;wMLP~qtQY?O{YOC(j}t?q{9$^Uqx)i+x0L&szN<f zJlKVM2w{MapRU0Y$@ZO{F53!rZC%PRl&sz}dK4fIYeg^u5SPYq5^@IN#AhWT^ON<w z-~6UbRk7flF7<GqA6NFnu;pp~0_v-q-R(S;XsEt)#nRgwNZvXiwp%eX^qYHOUnPrS zQ$}-5(=!pNv{ISWq?fRtCF<isanxkD32i%q6$%99mxPRQq?D!8oHR@SCJ$uFo<FOd z3||%JLZeBWrz6P)E6%<7kMNmj>X>n|y>~P=5tuvacbnJC^Ln>eef52E|Mr@Vv~k_r zRB+mds8H0L++dt-kX~8qv0eX<z|`0*=~MV5*^G&+`pNI2pJq$DKDjxlRC?8G{B^?w z0@#H@(9~@Yv&&u{3ugi!O={udJqcdES*PPSZRf<ssy1|?8pu8&eY+%zZ(a513|hQ~ z=<t52R@iA}Wh7>J<9$Ty)le%s+8t9ENZGd?{4HJ)-|QA>&AxU;s6u0MD})RXlj34Q zFN@6ZpLka2y1Cf!Q>i1fP0O?mD7u*pY>zK}`&~*?%rBk)v(19&T)BP4@$&*{)6?y& z%#iZ6G$qWvnHJVxeOGgT;v_xQRLkVfg$OhzOQC;op1p2#LY0<`kry<)*R1j5P2mVd zLIbG;)6X=wjA+fFqKpwscA^k(l;f#R2IFZ$r701i=6Eu_=6FHZ38W!5nOtn)KP25= zyBGm7{_cu=!Bys4o3npg;b3ccam?4teo+FzH`eEh%PFflKc_9X@;2o<-9urGk<%dv zCstNU;2zM|c;yfSPhr7k7@vx+Xl*{R!^X}GO=Wk_Rq53-v>eVs!It4HE}yN$KnVTs z%I&d?;KszC#n7Zv%|+m9IU-FVXJbqZaNl-V>-_uD+4-e|bJb6w_UY~?(*OJuip^Je z6ACsBWBjPbwF4QeLIF~a_ZI{uRS)Xa%ZVcb*&)n|;>1w%0`PA!1exMw8Fh(F8*m7Y zOwcFKk79E+?R#|Zx^A47*6y|Ez9xGh!t%kUNLbW_yS7${`I0>?P3?C|pH9FgwEir{ zkM1|CFNM9^7WeYn{oDpMNpBCUFVlwL8!z4g-Hl!=%$C&Ol3MWkW_p>n^Pqw=i#2Sc z{f9$J2_Bjo7aUL@6L|ezC%dK{IaJEyGlRcbR%W-f(ug*R){tDCmQH4n4Vd-*9_Zfy z=|p!~YG`~PcJzC|&&`gjhWP(5_ukQPy?wv%j5-($5r!zEcSa}L=rz%zhUmSwAc)?3 z^j<^s=q0*A)CfT$qKxQ7^v;?4dG7ajKkHp*oj=by*RsYRd$VWF?0sF|@26dw&nR$- zyE%Vc-i}4)I(_V0Oe3PulfHZTtugQ*>FWIT6P~`%Z{?L6e=l)&s%n}mfm`whi0qCA zn)K|w*r^ncGZ}ZhfHJ@7S04_up%1YMbsXK8<2y^!x-{L>(Mlj#O4i^^ZBxrZ?dJVx zqfT&+&+%s6`L{WNCOUCRQOWq9c;>z}76zS6%WmU1g!no!H2qVxO*qj$NFA*vZQEBZ zj6e8nx<eDSNNEDL!qhH!^o{r?(B<^1yeuy`b0%=bf9SDvyR->aMi^;Xp>mP$Hh1Cv zuQsEf)8SMAMz(3Qot+TiUhl@c+J^<*v+<EQoyv0NE={@ZFV_ufEOmD=cGnzb<B@q@ zfM{D#OmgSE@VNhv8JhSJO)s!sb|=~wpMdmZGt374LWjeClubQ<wemgEBf8?ZCHI>j z1I}#zD*i!BJ=FAr>y*aWsJ{kxsX?WKI?)c3&v-pY!LqR@=7^<cuVT+jXE!3qxcGru z5Zu8@C>W+#5Nec7f_3!Xe3LYqQL!K=`Am^9jsDpU`3sr3A}R+JK>;CJ<`ip%7izm& z-}WkOII!4o@IPA53e%C}R=C){$BR9sEvme7==ysxic*@>B?LB)ZPt6wu}6~qLuc}Y zV8=PA8?7Ow%ZYDm&$sT7!j;YICcHe)R}85i<U2f=7JU!Ci#%jFy5eX_T!x%ZM?v^S zItXBLIQWV@PcaZOB>F%uJ5>l1Z5-gp5bK$o>X8@U1OSCX^s$k!)0dG!n4-T}PEV+) zAE8SPxdDvk;7!e;A0!y6R_LH=Hh{9PL<Q)3PKnOSP3PEYLcafl+mWTK%l;eh#vSrB zIT|jcz{2Hq`5(-nnjH`4t?}CZPYwAEF!A&L-T8V8{sMK=^!)3n#-ML)uP?7V`AuH8 zB=Ded{*a6`e8H%CS&6YcFAMwuw#1Zl%mK9}jvH1cRfAl1f7Urc`@>-Rm+h(Uk~xdS z0yI2?iMQTeM-fNArPMMFbH}!%gd}bYtafvDr!tGxo#Er{gr=igf3}xTZa!M<cLvD~ zBNAEV5YFwevxIe#hX<UC9%r}hUq*^r{CKndm2>U1&R0F-Bd*K7yFtHtkJnOJw6m+; zg=YhCvT|IR=%3JD5B&@jcX=h2O|uueU$~oaP}sGx@XB{DS9)H&*=Xe(fG|?YU@2Pv zkI5gpo%uGA+4Sb^%@#?^bd!TWw&Y9AkD~kCT#EJed<6IO)x+n=G%Jz6X1h21Gf*}b z<Y1)bS3Z-eu~!`rN_8Elgg22VVU4C#+dos(ZsnwJh^yNs^@T;AJ$3{Mq{YcidfjfG z?U}YY?q6qjrB;mG$QEnPJ~updL_^a{7y0q%)FlJ}5^0-L@|o)8tL*wEU7M44@x+<Z za|TkYBRow`Kv=;$_U!;i;!P>VXL0>INVivlAc^g{P!%xgmQtKcb^)9qeRsaSfzX<G zYkaljem`o!Y+gusb8!7^XG@=@zM;gm7z;Rn1{uF9=a~c4*FZy=_z~uI^g<Xor6i0= zwg5r^P;|?N#j#d?mP=QN9wk~eR|P3yQ;`+o#Z<wJ$3pa(g*EH^{Cj)3YD%$F@?xQZ znuYa2aH4nQF=i)KfY52;i}Jd-;ftbuAkKf-e5TU=A=0@Uy1RrwxNqMZi%qFExt}@y zTshX0?#buji<TK$D5<0Y=sjE{ol4(H*RC8*W?#p>Ejdb;#^WTx{})gLg8<yM2+RzL zkN{F!TMXB4job1}?=cA4qwUyxc3Zf{dDwjgi|yIQpOa}|V1d6-5hD6h`E_DXw79>B zmxU-ky2ude#rwis4C4B@t>&rby%)#+_3!tUGy>e)@6Yv3D+aAqsM5U`D8?@~2nrJy z#n}ty@H!p%9_%Zh3%GpxVDy^k(+B!F_VEm^vbvsEak>K2%+tmJlLH7Q{!kc`EL3#~ zY>tR!noQ>DC{xg9|D+V?t>`d2v@26qJvuR$%mk)rdPG-K)5}h^Vri~yiVm-HmAc4Y zWL`;g>Kcty6SVf8!SVd{>EUMe`-<-T%J;<wIZ_eBbD#yGy9-lviBinE_ku!g?Z$DK z^<nsBm8j`v@&518&FgP*BD$?@u|r;eSF1Kd9#<qr3gO5tMUSOhY|PJ2I#yJRFK##} zc6OzTv<i!K+gWa*LtE+;OwpT<P|+$PCv0$Q)rMK?^T+gc2sSG?hm04mes?(zhkEjd zhI*NcUd_E^F>UNH9-T1AubEnY>hqhIHuhx!3?UH@Q;xQ3l4H4FEbKJDsJ;MizS$^( zL0c?LH4^WRX-<Ot${IWHLP&9bj~jO6>0Y#o1g==;_T0=^Sqh0uHou@J0xwE$p!D{R z4=WG-2xY7|i-OUMDC7$pgH=tU+BfQnpwPP5lG2Z3zt6ywQ<;zSDeD3jV;@s!=&{sA zZ1}43G$vQXJrrHZT3-*hw-9VVlC0tF_(N-2$IEN|qr_NN36)zTsSCyX>y?yd(J!A$ z{1Q7AZb!=QqRzkn5y7wKditW2T~HHK5b^)S4|g91mu9*RlMEEZVUF|BNQum_AOsf8 z`;Mcw?Ej&+iT<>N`Y^bsF=T<<fz<jO=?=`5FRHbuF(Zp$t0wj0S*E+wVkGr8a8VMW zgBl*)C%IIqxws?J;SAO@;Y?tM9@Q8x_@425zcb=byJe3hW#RuH$-Ty}H{A4TrQ^8w zfjEvcord?t<cZv2+xyZx@#PHZ%eJqP)yAHdZ}-=SDm840?+;ebrIUx%(RCvIOIoyi zhri{gYbW^zTCc&3fuzd0#457Kc~>L@gdn#_Y(W$10x4Ofz*vFkxL~xbCuBgD$X$^U z6kMdKP7pH9YNKe30AVN&e>Bqzh3zaKZ;GsSSiE4%x3#9m;p_za33k+X{>f<cVUoO- z;*9!=l*%bqFZI@Ulwx}x6q?RXA!1@3j~d&!DVxbyObdrZde#YZpJsTMJuRnC<+pub zyP;`}r3)uT_~FQgw1;%@x?`G0Cx5ygZVbv(Tv@IQyP6iK)!4WGMzj;a_mK4UbgrkH zkV^ABDr(tMPxy6Eb#-l%Q}!I54vp05zc7I7U8}uV5tb*e#p!xrWn2&lGlo?`<}=st zw@&)rch9VsIrWH&xFEV~&^Orp)dz(+zF#B9%HQ<7BP4!3@DVW-_XzmmZvtEHlh;!2 zoqoSMt&}*u`1!`g6|6g3cdCUQ$;n-EXSGY;SUCce*ds$|pS=3Wo(9ChU$<$zjxn4J zjia6#{x~e_vgtIw$D2^@Xm0S1bnZ?r=(z7VWaz_VAd(TO!d4U1CEn_fDlhb39;R^K zE!a)>gMCY4?xCf-YY~6myRK>NsncaJZNW}ZZRl<5IlJfMe0R@DrT=VW+`i!*rg7<z z!)HB?Jy!>lGsdIS^v|7a*F~#^kT0T-iY7`odDJMH=KPH%v`&*)YP;)NDa`>8jWLiB z`>5|%KiD3PhgP+)J2$i+qaaT-+@k#wk5jKoM?@)s280>xD=2UojyhudF;j6Ip%Lvm z*A@__VFS_5BPKy6+&A>9XG$}>b6Slb(5#@pm9~HsluW2&IGMIGeZ>FG7a$e{fd~y1 zh%fh&w~o~!w5O=5d2Rp&peF?!Jp8^WJod6=S^WRoFaH9^0p>UYS^Z!eI3T>8pLcUJ zQ~78Ln~+G6KYZp<*{S$=g7*z)YNplrg;A@8lyIizI6N<XSN>+PFrMZ7yBm-!6iWHu zqeC-=sAuNkGUz$ot-)SKkkEN;Z?044)4Wb`$?LBkS7wb@!!h~~E@!(zT6tZJ(x+bo z?w9S*j_>iewO2DiQOyEfTY=iH`sdxGIfHPI270MD97ZteQ8KwlAA%HV2xW)sOy<ca zgI*xq))=MKjHv~MxK-$*m6CbvIO4a_5(`<m;ztBxW{M}iL_=rOVvPY?u0yFeyW+iu z4mxZ);LSD8Gc{8RJtE@7JLii(ZF(ZzqB-B=YF_?u(=p5))p)>UIlpX>oLMI6e>{FM zw4SNvm|M4G`WoG^5s?QTeCZf#f3F6RXGn`st^t)zD<c%39y9$z89XtrMH9^vCYF+d zbN8bkTJq;Ar^R)-Xq3zA%mOiA4DNpQx_>R*Dq!eSx<O;t?<*mGl(K(XdwRCHv9dnG zBlFqmBZ5T5$c=ACY5;=zo5lujS(8XTYH)ljY8qsD5z>~KAErFaT=nwft-OW<|5?J% zkzR}0u_z7h+sUs}`2-3G=dNLSb?zUUY8u3UZWic%+%<^^*A<LCKV>p_DjsiizZ(>I zhwO>@^!8@zPs%IrKn06p2Fke1Lt|sfk4sAnQ{*$#>>QtdPChB8SPuN=8dDj`3WJ#a zm~p$!@IK=lIo_ZLyL0YRA51;0J1r%eBN@TM#>(6y%qxwyE5ybmNzA`WCHp46Y3Sy+ z5BB=r?3+^8xj0N`O%d76cR2;zzRzXp@z4=8;m&A88GHdfZQ$o_+W64g@MgzHudN3Q zhlb}J3|oU3I5=w-jKHk1bGjLB_H27B8R-ST33=_$yKNTBsxYm-gDPvWZFh70yeaqe zkV?FWvLKIrNT%y6o@Jhl1UcT|dU`jb(Q8i2o7D67Ajv$6FxRL*U;CGo-t)h*@toUv zQoZ-e$qyF-EfB_t40;QW6mZZ1yooyO-b=b)5r0@Hj9zTJ`}Jw>32#Hc#5UZ69`gD+ ztOTqwgsX#gq0&Zu9@QbR4nCO>oZy~vHV*prn}GL#=F;>Bibn4>b9SZE!}T@uigI5w zR+<|;_@9TONTn=%(<B=Cve352L8^SS=Go^<B0!xKVXWv@iBZ5PfsDgEqZz7U81CU- z3d9lEav;5FG>8Bqe}K%2L<kfbcGvk-v9O>#7=l?LJgO|QUL;j4vW&Fm@>(^+{CH2Z zPy?iFDJSVA+o4n48<VaBo?*c;8r$!@uKwI^-;Ce$>F1|xvIKw5WX@I>UIH~atqJcH zo}VQ^SVyy5Yj`v1noBrG+h4Gn%iN5Z@DGoLmlFsozqj`*)OwU5fYlDFDk`lMBQ7<B zD8e!EVk0MXS!6q5btp7p?-{N&D<rbxR%a{;O*qK7W=XSe@YVPso>S9HPqh-~(bxW} zMoLuTvcLoW^4IOa?v#GCt6i(St{&@Z^$_Y;H)gK}-OV|VL*xk}n2b!$ZfBUMvhEWl zX~bOEQ{!+oq#yZbeF0B96Ct7dP{K2{MU3(1XH8f1WYM1+M7eA@=_Is%&A1#C;@iiV z(Jzz~YM6d{J9r}e`<K_opA8FWfTTwX-BkJL3+we0;m7$HIQnPWDe1(8jnQs`2!uoi z&aC<OTN?i=|B<-4P&0lVvHRsx*85FgYkt0W3{0_a#U%1uTSe+`8ytOl*Z8Xlw{VL3 zxPBOnOcUMRIuis1eiKUd5Mr$LzB}!7U1>TJKNqYoB+8DsS_+lLGTL<uv2xy9XgTlY zE9k`VqfnqAqjG->4k4wdl6w&W%n89j1we|XWjWIASx3!w9+9?<-;b7cjL)?hK!cgk zh*&HPZ<uK|U0lnnWS(|qDG?5cW~EOo-$Ai*zpQ({g4%ro(UvI4Mv^5dWkoC>^@786 z(i2Sc)r~`H2rys;7$kEyBg^UDf5PRx5@JkT(>}yBDuD`kVh~gqh&~Xi5Qqs5X(2DM zxhTGoK0SPU?fUlj$e-)+i_Mc0R&w&li(kEm-u0{@kdKj2Kb{o$-YKrNCP~iDH{T}h zdhtU}EkR`+Z|<1gecHZ#+}Iy42i>$zc+_`DN$5J2))-9l%bCjA8zTQh!_aHX3$gO} zuSyQxN<Q5NyF7&Le~v;O<wq}W#Qb#H@O}N@f8%ps`Q#_HZpCcJr`Qhv@l>DFha=+c z_jl>8$Fu%gV7LbfW3)hg@K<IAscnd6GS(3kNvVimRF&P1zhj231qmo*@?@A9RmlXg z!ERVbXb}s>iy>Y2NVH}J!yIPWgi-Z}+x6|E0!}J6o}6XVpSPs?h3xu7?<=JAYL>rz z*fjbnqtLng^AoD!*P?VfFCAP!KfkE{W*EIWuXC7TOio=Z5q(pC-nU_es;9>9$_Syd zEIs(#NM@WcPb?XHY}j_Z3^d!uEe64DRVVxi4Ip~fPChl}@MkSKf30uoI=B&V^gN7Z z&o!+b8*wuA7l}JKhIxd1-$GOG)?%+lq4H%6isrI!Kd;`m5hewFXR53D^oqmTfe5k{ z6V4thRjMfA`ONxQmB8<Zq@4n8k17dg^R|_&;Kj4}ZZkQ{2P;8Zita8^A@F#%>ySA# zV<l*5u5>;@AlShMPL^NNSl7Dq{^b+##hps?i;y{fVxAO>_e+0o343Vm?Q<Lhx4!@F zcR4IzUQh*rqLm)m5QLql&*t`=G&bhG1l6I0h%fFg{2Pag>lMnvWxh)P(x4ixTlmv) z&03e+>EHqXNgRgY^R0BMv?V_Ka}$%q)AjJdRln*b)vRfY-{6z;x}Ztsv%p6~MO@@M zoN3Pib88H;Mut9?H^+z7E)Nc!2D8jnp|W|rVf{m=llQk#Xfx-dxmFeD;btX9gakIq z9BV@M+v3afq|Lj*Zvbvi9T9|@Q6D8TRV!vBb`I0<BBZ^8lXk_H{yh*W7K8a-I;eVs zGd-K)a`$OCILS5*#52G+)?ayl)Jt|fpQ!)IY9>~S-B<O<V4LQZ<ZXpljCKC`c~FYF zX@XM<M1tEUnxhEQvNJX!4NE2<n-S2Y?H~|*^E>FWcjf5d;rKr3?b6_)K&ndVvhq8| z!XD2PU4IsyUZM>E1j6`*nKbfkkO9tPHn!CDXYbfT>xVkxH-72Nb@(uy1U)7{<mjy6 z0>@*#A(S%-gy;8iOI|g6e8c46nz{HU9Q;34j=xaQvtJV%TK;Np_gnX;Zw6<It!B?G zSFXk9x=l@~ucG$<;?B+%#ti!;b{{V|iUgSQ`M{(v`)|M3)(MN9d-uNR*hLf7fWgm0 z322<LJWZLYH8~f128f2-X*DKP2|7ISwgH&Y1XRFKKpJVPMKKHrDU=H#&PXB4430!U zQ6Xz!lH%~>&i}&H>n`!Z89pTZD~mZ!?P9bm?*}6+?xzB-XdT?nxMAiUh3#ot;$Fm2 z%PJ|+qgmB;0+VC+_9>r*gk=S2>KcWy`F;lubI;OK%1J~(l%}_lpil@YM2Qrx>U4!D ziL`gIUJ(&7kYdBF2(*lQQPJ$vwNLFax8u9(asB=HZO`9qkBwKE>UymK>8`GAP7$c= z=CS*jwUpi`w0C<YKB6v%_Gm?M;DSi!hmbA;d>ILDCc#;L?@2<mJZJr!mNQCW>*Hp% z7hZmwS@Fy8C63(P+T4W}*H@-1v&Y``za&n_oy1;V_Z@wF*XC+K@r=c~7jE!_SBM~0 z|GCR$?6WiP7AJO^iStZi9>LaT8yBO@dK=B_NDY>E?}_sn5WJy6NXD9JI4C!0wQ+Gd z#^Qajy|ansxm*R^_3X`hgXqEUodKA=ervDONV;^uTt=p={*c>iSP@V=F5p+;+Z#FJ z`){?@y~Y>MGHZg)>IheQ{881yLjq@wFUiN{2tpWafIE#D_JS?F-aC7HpG+C&*wr#2 z+S(x0?N`u@Q0K_XoZmKa<J>3Nr~0|=*;>B_k|BAlq(;*VsNG?wBVoqzQ>&Tp2UNM- zr+EFT^jt9e^qoqt9kjNlGTuZ13jstKvlY>CEg6xiwPaIVjgiSlj_5>(sr`)(I4kHM z?L|w<gj)jz==F%~v5v~3Kg^3CZz*gAJ80#%x3-*kfA)uCN1s$6_!E<PmM=_au9A=m z&UKx%^vuz`LBorutKW{K{We4bPJJF={PDG>6uK4ym@ut0Z~y9x<)E{Rw-hKW`Y0gs zv*&1s%+rY`*)E;1Ql>L}>eZ3!io<B4``7&KD<$OX!lhJ0lwbfmYA^n!tbW~6=G0sM zDrYat%%TYZc67?W2LTv3`%cTmXm94rZFa<xVEz7O?4tL|n$eRP{|DJmtj_`jTPm(l zL7a21-BIT#B#k<icA;JOsV#IN#T(K8IrH)R6O;vEhan6PVk<L~y+MV)RRwc*hbhCN znOLeelDz;&Vv5>wJUk`7#-boipeBRdf8z{dh?l88P!R+B)Tv{s*g9mbFS@(;D9jkN z*wF0o=uHpQ&n^=^5?Wb|gv8#vbL%lXv=6h;%Lb8a>c1rB<~B_q!)nID2z-oFjEN?{ zFtC7wluSU(p+`2Pz!HTox-8se=IyI{PncZD^TRUg<PV(dTIOP#jU^4ZerdoBee&s6 z)F$a^tr`N%eD?!~mS}LQo!-1!f2XfBdo#qG;SI(2#ZA7%fC!SwMJ~0p>CQ{@y143d z%RYo#SEHznxnkjLW3SjB>#vCL-G_2dJ`sL#5w9=ujlS{k@*_?<(R`;53%t3(+G#j8 z`JpN5E6wKXal%4A@lhe%zq<JY53YSB@ZP6a&YvglI5ZqL80uLPehh|~F^4ip3gum2 zA3Rz4*k=40d^(5a;B&iJkwL_Dt@>?|uk|kXwdwhA_3MCHo`rbalMZs=a_%&<)(=90 zL#df=OY`G&@wU6|^jY4OS1TgyGI1M%V0<iXYQb4AN+aZ~zVPeb)}F1O0geQXx@400 zc%;Z#Sq924nJzE=R(%4jXY@rj@51QwYt?_rMjJjS6%6*}2sePLT4K&cju-M1AU>#@ z5OagDqgh!W+hubv+c3<<IBq+B3}!XQGU+_U8_%HHd&PAG6&zV--(DjXV8nyv-)y_x zTec*a>QMILlWUe?$>d=Y4*N=Y(Hcpfv%>PL)%Wk;DmrsMEnDq^1RI*oVEsDAd=Prs z)uL=0myS7lnXW!uDTWBR;%BSY`GtFUL&qDimhxpuQc~cN2$c=?eT<=T?G%kfqx*w( zYNn~Bbs>{t!OP`{5-3>Uknxeqtnrv8OKO;o&-d<LnKE*XC+29Jc!&`U^HrRgsS%gB zTl>&Gn{?3Zq5L1%p4xJ0rvG?`F38sXdRE)?FhD!+UNDyH(-ut_=Anh<m_m!kn$*EW z2CMYkL)1$8VperL#dy?MDP67cG3h)DiAQ`uHed2`hrCc2wl-K1Eh+3%#^uyi+j4}_ z+5p^(8L<YisJ?k<yWs#aL0R@Y#u%hnc7UTL#(7QoF8}e|m2lfawczRQlioApUZp6{ zvi3!ADxW6TOKc&kPh8nuvU%alqg_4*O}a50@ebOBDP!$6G&EB>o|W~PABumJM10dN zFV0TKjM>9@mnbL^iiKv*qLmnxU5#d#1!n{17UpBxr^Rsuq~GGLm!Bs-&L3nuv9quh zd`rn3Y4|zg<Vs_!sV$=4-gHIt=k<)$EP=5%j`hN^)C5#0MUag|jtGj7c!q_C5ouvY z9^kL!J$RCO?vhfrU&t{lRvHs0Q}N!g4RkjlRMz2B6SzKcd1AxjVpvgZe6@{tdOVgv zm2VFMa4!TfKl&PTm-@2zjiYlX13BuAl>$OjNASEglDIBSO>V)BRE9wn%qi=w7Wgyi zPpZM#a~y-2*rbPpH61$9u61ki*WIr#3eXM3j>40`fwiTg{Y=3ypaVS2A!|?3@+fk_ znE&-1S>=WYiC&~pmU}`(Bi#)47RQ{oh>%ZjUC)hfPj`YJu^%x!`7#uWFy)S{n2FGc zjbqb2YN<hY)OS|9I0$oWdQoXCvuLAF$5VIoxlI9lb%$OFwQNzaBQo_8#fCSoKctPa zyM}c|7{EZ(KA0@}3D4V^ne@fT`m_&t+<$#>VkVfeWT4aH_XQqqo#^Smr;|w2?l}~Z zhq<;|oj>Tx`-zyUx#djvXd*$Gf}KbsjIU}yU!Tr*&+VMi-8of*rExi|+$g_?l729g zSI*4)joa?`hX=p5i2_l{Zg)(38+=GoQMRba_F3)1%Edu_g-&>I%2t*_$`cy}l5gV0 z#roIxW9(9=KU3aQC1q1ejr@h;^Z~Na!P;V6n};7Jj9KR>)8vx>>A{nspUcGB&)RP2 z9%}8@g&x)4AC7MBH4W0K(OrK+o!XWhIj{3RoGm_HG0JP_mc9(x|Epw>>x71UL|pDe zjxU{e?hZ2-4I1~D*>vIq4C$xf({a^Vn>MQWQ;B4@^dg-9>N7Bq5nnzk8kZRLVe9~~ zLBV8AX5>g+GXNM1VGNpJTV59{rd)OSWSYyn@<@+vmo^}?y{g_dc7!KpQ9N6{UzPi& zE-;2}h2oku?$4UV5v}~Q6$4&$0d%ZNlSi~8YaqGJxo7P8iO^<zEf2}<V6GWmiVfKs zS0!<Ub4K;>zt4zTdl#2eqv6<TR7V?W)6+UNC(@61{7OvJ<ovnOa%s|fc6I6e^LD5o z?hb!Is8t?LS=<$>V&=zBEpSd|Pk|N<{UF6y`1DNVNiti`BHgn?4ZT-6UzRg?mg@2u zr;Fy?Lq@_b!fQ-BK^U3sisBAEW7bV7=hI<BG!@2-jWZxBgaL3oAzn<#5U;!I(#!ri zAg$kc(DlxSoB+=<gi@-ysPHep|H|L~r4*d9SG!lMn{-gugLv@xkK);CpDnBffF=YE zfg^S}Nrxs}rR{JA<^hS~uLs!2R;ivizU<*J^wAOQ!7W2$XwMmy14xvOdR|cWzD70D znfk5v+PAL0V>kT)7d>0x$^PK#&pczMM~d{L9|KnD)Yh&vyRDjK*Av-FLlR7ZN9f7D zB3u4ZPm6!M$0wpKc+ZM5)l?!Dke(7-$r22m8cPF23+2>@|B+L1v|U=n?At~}aKJ<f zFo5Zm7FPvcS9Fhy7dsnU?;Vr92~{z{TO%;OfNsz2gS#IW3Ug;g;Q_h<j4t~hlV{1` z#$_Pr)MT=t*_uhc-{gMfkL-lKXX&saz!3-&+N_H<R!`&V|GE42{rv)BOUB~2*oz!r z5wUqup-(TWRDb8yzt~zPNslY$$0QVGMHOasj-{PHKc%}&ofneE-zo<FBTFECid&Qw z)TjOJyqkZ~?Xj@&hSYIxPAxp`?e($mf*Rm5dpvF^3OZM^8M%0`57hpIdWmxp0OO)T zQsHx%{T@$BFFQH%&91Mq89)oE3I>#8WR+9uuiLR78FN7q6hpNPFSW-bXo&@&Y%;i9 z-6!5qGbDB>AatZ@5-<Q}D`}wl`ujb=sXecLS-*yQVpA%eCx9jP=gfCVOKX!bCcBCE z@SKQIkM`?C$HNy;G_iW%uvhk!<hqGI-?NxylxYk&)+0}tg{GQqMClas%;D+nbqeLy zE4mdjbe*i4MB9!%4Fo9X_7_ApEe0VtDvMu#r`M><MoohuNN&zf>n*nqkB{3lgoD`O zc|0+!=-^5C5Jd>iv>B}fln2V};1W0ddcG~tx%D#J;(qqWZlLuAlRqbyr)L5DfRT$d zJTAan$->?yA8m^n0NX;oO&rhFkznCr7CTtu>z~a%Bf<|31{TR1k!=`rgaZY2<SYmJ z_x^qktqj2j0SCxnQ}8?)ga8H(lnqA?WW(`2`(O0%Cx+~vcXKKq=wF6lPh%3n0~+FS z$hxgIuiZ^eyDy}p_M2bK7xTBgIX&Q^t#|UJpJmRXL_joRLeaXp_L83a_xYBG)LcPT zodLFj4J(lZWvfdQ@$yTH3fC6C%@~a6J8R4g?Nvrl?-WHg6&VIossOAX45UQAE}e6@ z<I&p0!$Q1#!5BCK%Ghc5I~Vpnuu(71kv+(evcDJJR8n?GqKc>6spMVhVZ4JtS{XGD zRIKO1RCoTDg&ze<#@G(52$EmL(gtEB6@xI-fN*F-Bn~7=ZbsMjrp5GjLdnIX*9E@{ zPW2c@8wLny>hOB==QFOf@ar9+zkG@X{(AO;BAve0?{kgP!{qkgav-?{hWrF{=F8(c zevVyzx!mDQ;XzmZ{~i%?m;jO11in}~I-1r8HgR;e`@KudPp=%>fS`x4UJTYj+~x5y zl}?NMzOljpQ;$)#nXsTQpqb@x0WhO!0Z3;?VbnK;*N{z_7)l$41APIthobKV`#~~v z^^OA^#E#WuWTb10b(&LG!C<m`kuzJuOFFBdITSHCv2Lh1U<P@U<Y8x+<jAC2Uav8~ z63<V3x2|wuAZ9RqFM*0>TCaP${tj<A!S0Rp@muJW!}6TRcEB%P*1iU~v103fNe&-> zTKKAG^ofNpGy={@ukwVRcqlg7){%3~OSJyV0YoXY@*P#BlZ<8aF<3L)t6{tF<Gu0c zjAsI>sJ&c{CoVBmFAekia=h@+UL{j7qnUvmeQ*FaEI{bT>44Qbf#cxp&gjceN^if) zvPcb6GJ%7sk}(;`ZXcmMvBCvVCrI;zbPzKwS~wc4%;bv|qKU!0DnT<3v4tW6h>paN zmWD(IXofzitq0&Z0NEi$ha%>n&|DiRO*s=4Gd^7JJ3ABDYd&abYGT^?@p}4DWhs%h z9_f|>$Be14Avds^e72HY8^Cf%z5S&p$Y~#6*$O?yiX|hUED37H);i0QRtkk)A4#_? za6}Oj46&GCTiaj^BE(loF!#G7PWMO>`6ZUA0W$!|CjTZ%txfKI!<BAN%desu_0=6% zGSAy8&+R1Rna~%5t7IkfmpydP7c();mH^QN@#YB_p-~ZB8kywd{nLU_lDXZpZ0}P- z(SVHpXmslhc8oV`ZS>gVeNdcLVwh5w8GJ;d7z~5^k4PG%HuHIyD^n%Jlyyv3aChmC zB{DxT$A?Z4n_Fo|&UyVgAD+<tA4nyifP>bjd%`Qspjqj^6k#{__*6@moAV;~k-rD0 zR?v#V!CriU%4dS6*8)9!-M6+YD|f#S&(M*K992JEs($@7nZ_uGUh&%i)7a2fq{Q81 zH?+AJ3&^-$gvq&j2Su9UK;Xt7<3$;xtFJ$gS){w6WtEHw1-97dT#poIz!Vr%h$P!= zbHZZ1viRM2M;L@G$M8o*W%X41=4(hs-S4|cIkg5CAI_iiJHYJQttNz8MPuK`>7Am% z7RARgKc}^YqJ0470JNzlSe33+c@Ez+AFdh2$rj~+ub<$!mmM!h`1IqwlXB)*z-VKE z5s~&g8|#32M<)wwu%m3EMYI<QPH@pGrD6>pW*TO+vU8yGPZ2O`g~Puo@@d1c+bi%F zY&k%eqZ2ZxpTSNQKbjYBU}6S)<@-~=tK5t~cL_BYnlFAi`So}_xF(q1r)qgtyeB9d zz|u(2^D@YHaelL*{ovMlNjx-WTM|>vm5)n3)ei`N!7=OZ@7i-|Kb~P=LVU1Btqcek zRb@I2UgJ{kQ<uSo?Jey&JVDbs05B6Gk48qq$!%YfUQ##T&)jl+0i6kgykboDrZwo; z5}};qa!9*dcXvMd{#bgq`U(2J$Bs$vzrA&S*pcR54s<>I-SB5eXTwc-04!B0BvMPa z(rtTkQW!KkZo0hGngFAXGmrz|E}yqX%r@!l*{DB8ramh2K|vLHpw*5~e@Sqr+Yu%{ z)h8&A6v6^;MHCIN`dz>qX_+E7|EV|4lAE38T0|1MuP^SD?sW{>iCcDt&sHc8-?9T9 zvZZ;5gQkPWCN^5CUlEwy&h@T5{C+9tI;FAi)bsbj>(M8;0S4c(^%R+GVe`1UtQZ*( z7QA+(>^q6u-xWuNh=~gYf_SR3(~XD_{fx>X<knw3-3iKr*TihGCf9##Rp;>325h#4 zFgQ4Q&e@~cpT)H5DY%O)Lof(CP>Av;raQTZ8injUp&^Bzbi3bmRooM8(=VEKKM4Fr zI^+Ye$pN94vLtZ3A`N-VNt};)SRCtGOZ-&FE<eP`VtHbX1$Be#sGd1xERvPtuz}cR zBfUr>1=x~7UPVnF03AfMZ5mz?Jj^D88;J9?4}co5fkA7wEeY|GZ7xX}z{(WH-Zsav zBHVPBlTI52A6n_l)HreP$A90W;TZNOJnwu}%Yx<SRcu@;xq~`AQ9(W$4|no6_^MdC z=pGv<qP?ueRrIFV!i~Suxj&T;f|Wq)6}%Rs+yu}8P&Im-EnD5<D-xphaPGo5eeqVE z0s2ob%=Jwcx_+CYz>F~`mhe#Phs$G=hp+NX4)%uz*89ij8`6JDB7xyR^o=6AKL2pD z^?(w2>j{pI{y;iNAd^FOcfUKj9(BLg`g7&Hbv`%9VWryi<TmJHHi7#kFpE+qECdEZ z%h!9yfh=%=P+$Jd;I$dj2?V;76QU;4$bUMwcLrwBl58#J%)sa-{Rn_;O(Hr!H(IM@ z8kiDK{^M2Yhhxh;;p!ZvIdHvwW@W<kOrqu@#8j0y$bgBDU;O-N`6j6N2vr#C(*<8X zk{y4eP6epxMc^y;?4u{>)pc_A;{8xX(LOYy`$Y@E*25(ZFg6b3;K8>kx^CCCv!^fh zm57HhHt!QKUUSr7MQ_nc76j(ZvYzGFPxp7(sF}ALfS;R*F)$p(Af2}ywJ9^l+ApaB zX{OXHO9hR|Jjf)uJE`z#>iWDVbn~kFv+eP)P;oX$DjhpKk|XD7Lugv}BTz@Npa5&b zw~?&o?L9aKb~EBDkeW&MMU-z=KY&vcEZ1tafpC~LlP3Tisq+WJ`#_izcCcuI93X67 z6w^Ht$P~@X912UBQj-wtI5g#5L1T$S8rQp#{Dm(&A0Dzh_n)Z`Cv%4oX-t7_f5V+! z-VV8KB(B|#9DDP|vepl}kuXgq3NoarI8p>M(@{V36_|?f%_@!g8iFB^7eRuf15kJ{ z5X*Bs2#};zglr)IOu=gny=+bI8}e6ZMOx8R(JeII>~jYB;dK(I<Hc}Xf5YM__j=|X z1c?cohfuUS`FT@AR|G8`;1Wi%p@L0b)*Gd+fqNm+ce9!IyY;V*OjZ<T)PWETnCSr* zwJ1bMkQr9AR%rl2FQF-0Q@gvn4VEJ>gc2<Q91UsJ7TF<a+_WOhCR{E%s&Px<ANdqL zJvuxfGOj30BiV;UWHxGf;cm5F(|FJEZGl$TZKm{(yYH^dnLS+SI=_*}B-{&|iY+uH zh-ktsGGw;|C%ADx7;>UGWXXmI;T<Q6KsipMLzE~4WeEl8T2x;O>u9@0l2}Y@p35^t z_hG<%T_`0A0*&6itNBEW`Zx?g<B)_`{4=jU>kC>v%^EbL<sm&f)m2qDO=&kL{bVH@ zfSqHQV#L<G|ENGK!oboOCkyZMXIaWvqB*c)EE9Je#{d=&4w&2wA0%%kpN)=D@vE57 z*L*EE-_&fWpcMBig-1R;X8y4>Oa*fTVya5+L699m{e?`R6NKXWt;uYEiJ}B>>SzK6 zo5okUOw)XwZX4-Lx*uxqIxaqqsm}+xU4=aGzuie<bYVOU4y|DMoKe=%(Xo-6L3FG5 z@a+b5RK03p7vfo5Ontdq-riHXF9qP131Khz48VZNhm#;>)Fe{SK_)QG*K`omq>*|g zCE94=@X`0??<p?FtcXZ!0Am45C{<*f&mFE>W}r3yVWFK<fT8~vpS2Q(bR^(I|6frX zv}Q)v=wLVe^!a4Z-KXA9p4)%9AMR~c_;fHqH4>M7W-h{YEg-7L8X>?B@kugRj9>ES z=H>>Yh{d<wG4TnYN!}M|B$mVmOXeTbemh8qOs)?QZrPST9#@;&+w^A82N*4NzS8*U z0YXl!_@pk9e45lzIsVqu5(kGu2*f^~SVHC-hT<b5%R!eKxI?<;%slwzWLxWcDfIxH zXg&ajXp<&cJ{u)2&BR~h6W>-!#0S_O5Ga@hOyoIlIs2gWN`egpEUveX<(K<GoFg;N zZxSL}gh?W*RH;o(nIf1)8EuP!hxr08qFQag9||`h5^5?gKLJ%n%*fW!x9|(m@RJ#3 z#FCPOL@SG=<l3ISE5D>FZEcT@phx?|!;m?eMxUQ~X067dJu#GarwpN*7*(-RB&KW@ z3BZq<p|XQb@qnF_T9`}AMUPfMx6g5XiIr3PG5f{pVe5GpNl&Z?2)`gUW#alQJF}di z?P5#H;N=4f4Pt>Q0HH`j!<Y|`+jyQ#1tDW~J2_-ySsBcN0bX82UTB>;Jm6KUul~~F z21lwWudwK;?fZ5#5nd#kCyfc3{phv88+GrV8K1thGo0w^=zK#Cz+sGz3-|3$Wds_4 z63+J4T@EFsFAf7s->hrgKY3?^<I&!jN7!Ukt3qY=uf+udg9Z;r5~AtxEXq-?@kAPN z76vV{Y|1IP9Grzk2u~7#gAU5F3AP_?A4a2Q|IG5{0(t#q+<54GBlq8_L!&=q)5B)6 zjvtA;<M17S$p(T*=Ohiut8IW}eSiJXApu#BuT;r&jIqhxv_2wK0>0s2ae#7k@C4tz z65@`lOEN;l2t;osjx>!Ua%34UL0%AI2o6G~kE|R40O~(74FkAg$gr6+Lo|tme%q8i zwy`J@)c_T+<K%?M#ylgK6fjcawnHB`ufpc;i!VFzR$D|>x$&7WXg#jOe~SLn&`UWv zTa;h`9$FIKeiv)n!vFq}>|X_RuZv%5bXfY}=k`UM<<-68+x7GuA0Vlz=-{BTL2!;> zd2%fVvS}3TmEl8~KKToc;m%7Q+wwS^+e))(eQG%QX%?9rf=p$=qE~poym(!;cI@1} zeyB2B7p?~J$O=IkR_c!MJjuKN>EXsf^)o6N6$1`lYho+v18X2K6yc#63Wu8B>-uY+ z(M^0%K<MC)B%)2JZ%ZfL>F4iprol`FvDqnD9|KlJV$*M!s_a{r7SDdQJTnc8B0&x@ z+P8uM*yX<bf`snXQbc#vB6mL%M3$PbhInxZgDJs9SeQW664;Tf@7l3$=(A@CQ}Aqs zMik^<53WRL@rwm;&*R4<AvVEO;H@P1Wa(J=3l@mSKhN>DGABo7w?xm~=4o*+HwE2C zhPh?qJ<gTiBCir^!ctNMRAZ_NxK4D9@DziAkzaH)kp`R9QjwSVHQ_)Qk6n1>WtCB- zf(BbjsDL^os*#s8rW%8p3|7EN`-O!H$h5xGa6y=Kn^66wPnW%*PF6qS!b+YZPEDR6 zJ!>kpz>BONh3Af1wTNYu%!>Z1o}h>kX$v+Fw}%1T1@SHQEBioHOd;}+5cc^jbhu3x z5V!$QgaogFF_4s4WUwB2S^ELspC^CSJtw_0Uf<2{-A+9AEsqG8i_Jp;2b<!`B8#); z+j{YPmc=iXPSdAidcEAMJ2$MAF>A1};CZPb@;#&phmOu~b+=aOh$woiI`6TC4Pe+? z+UF*gQOJXm8#6(7>;kl8f*V6}3LfkW#stQUEz{fSW%tl(gkY)1P4%}a9CTZXzlw`O z$A<~M1L*y^$#=Sc6#b;!+J7ZUzoLF*sIt=~3{W0>VkW~`J6|MzS$+7>bJ%f18)FG@ zZ+gs}lJVY?c1sapHGd#jou1F@FQ!<)7-qhB@VZnKCq_v?*OZr2{6}xK7ruZ5O_@Qq zlBGXn0d73-4-%08f0k+OG=6$<e>V0h$m?=?<<p1xw^#Lgg%5)UI^~e0l!_?P!M__w z0M=1Dh%4@K(>rvt!Utv|v~Hkw4^{6YjU*`O|E83ntwt!uE;@)P<|8vn0iic0hI}DO zvP~s{hYu{wGYc$yWmXi>Nr`?3rD<2R6V#dgHj&aGssVlW>{-6$XLW|?u*$w{UsWs= zr4?3!AQi&h#-cpK2k!&06|55+OezS0fwC}|upPG%#iCH~F#5wnW)i6gJmDe5fc6-m zIsD!5$CSp}MC1}hVc5m1an`<BK%#I@_#g$^Z$u!=S2AIyw{qJuwV+RTD_LAidu6Fu zJ9bTB){cP{?CU|UxtYLS51j~X_c_g<8+`)Nt^KSrXlT!qu44K#<D7U73@gF{LTM-6 zB9o;s(9UUz#IJzZGBuwPev*Z@Y|3I^2@E*2$n2Z=y~x$Bq|U+}ZYKv<A37DKi7yy1 z8IJ<gNTD~#+UXTBb$7GWzm?~2{i1HJN=gC6RO#<{cJS)}NWh#w;x`Q$ww<T(|6Ba! zb}Fd*I_fP}AM*U!+0M@WQjJ;_4&zk6^46Q~)5V3J@)l2At`9Q*k}jB&h5BNI^^*bI zkN9iofrcip*v1*$F?0bqgSIJbZw7zQ<UByQb@j~9v-FTA%7))lQV{Szd@ei!LX}^N zsLOGsK@{SqmP>3IM5uG=npamG-)!Lq04(I^4oc-d01yP7K%i}l&>nTDS%}m*|0^p_ z8?l`uUmW}dg;uH|%TqqC)d5?auq301+8pw-K}yA^O^sYnr6{8ykz27NO$lso-Z~`} z_TWb<@j+>A;Fx4sV0ai?JOB+U>h+;@xdPm1C>)IDf(3@-`vnnm&A~YiE@%vde|A7N z*m_!4&R!4pThFE(yIFIxC^mUel~ZR@?;E<UaXnr4=Q>2kP%xomNr6a8j6S>Yr;Jk& zG#um}9YsPc5D=mal^LQ4vnWP%Y8yUabXr~AuQW6^9Zw%>$RGH6NJqx`I>`S>+5L9O z{NQmuD=nRO<K{i9rUeG}cjzwObb8Xs{s{4H3Wd=|1q0(Jn1lNP5V%C_3|44xji;;j zPat;FV+j&M$8YHDDd7dN)2OoqQ<MB2JVOd2(qJHR{VO1>e`1w0`bqv^(4zD`Pq9yr zWY0xZNrR-az8wx`^oivq7s?Zy1S{afVMD%@P(-24q1hd%cf;STq_#&US*GG-AYneY z%R#-n2`iHyv<%x^EH0SUMl|%$D3~axOy^=PpzSu74%2K0Ul}?TiN0vlFc|BdFmf$s zqGnrLEen7g8Uj$+8LT5GaDFk%#LR$`Wc!rCIwHa~Ccn1df_l*I92|$%@89nU-&zny za{dP@D(1(is?pdRi`kG4vV8M5Oq(t)=LuJMf5l2&p|9fu-NV*p+ih!ZI}(Qg3uy6M zWtuU~dRuM|9Ytqa>I*~nY03eVnx#lBem(RZql#|^II?3hvu@ZIdrr}hF%NZ@(TTp$ zYC;D!VX%dp6Pkc1PeS7MJ_ZYbVFf0%U!?HI=*Q@l5eSTM(djS@QY593QMR0?U8P>p z1Q_Q{4xTw#X)sf`I?SRRDG&xT3l4^Bm*69g9&4K6V3bb-2+&cg*=Se|&RxT04$R3- zuZjp~unQT>O2<Som<O|05du)vYy!dym_-%oArLf$WrlAWQD3}YJOK=itcWQyM0BR9 zufW;o-s8R%2S2Z0elQ(5zccu@9I=M(De#+}gbXiAt~)8X==}Wo1Dh_XWMe(qqg4D| zgU;`UR;|7*g=nJi;)@1gvc#C6thELZB5z|ngLk3402c~DNaO(F5CGm$Sm|N#W^Mih zsROw-enX@v!62nztkO3qwV(dscHxtWxmI=KYq`3HQJgp?1m+Poe*o=~x^@H_)jX27 znSK?xS8yis%4bzFD7E>g4gR1Gzg(b`)4708!ToPmVTp%oK<@!(FY5jx2#SWiFp%pI za<7(!o6f@PqsnSm#Rd$WP{jap!a_MfIJy*0A;BQEl}qk7!|xx8@@?klJt^^GGD8Q1 zsbjk-i%)J1?G%5Ic&|Nj)ljmYEAH^qG$i>6#(xU@EKnAoi(zZ$?TG8=q_+||9bm{D zB6R&pe%+U(U!Aw-hgrUZ;_qh^Tk#=`wn~U*XomH|1PIgoy~F3gZ)Ex*>6gdmAZ8P? zp+^c0PDaTj1;Itx=~uBD!|b%=Zv6rTUMUxoB?crA*nDz0v9&&OR@V%h4UTT3{!16! zG(pxAs`?}zC^V^c>eX&=uJJfOYGAkD<4m*T&Btw8yf8zWsVFDi!DRRll_!tPixA`# zYrKOOU$JNyQXm>fKqsvuf;P5i(?l&Z#fR(AJ{upKw14RDV|a;gsI4*s4~c1N8S`j+ z^>Z{};OY`e*#b~Th1$Zja+~?biEb6%9GV(@l?(n>vGkp&6S@H)lUSHY(|Tl{RlB^w zxwn>EE;j%`?eL+!e%YOytz{h|ht!{OqsIQo%{5dTW;aZ;MzdC|Jy;S;0i4D6o*o7T zeQBCsJlofCb?w-R2oFcVnx{!*6#5gpyHFnl;$sD_pJp_~JMUZi*+R!ZgyD0{g%<mO zD$9N`U9hwjcHS&I)^1((ZZQG1U0@+;{_a6i$8)Nl8i!LNtfOASLG&8{WEdV-yVKjQ zW0kGyol`#!T-YBCgf{O_5t8w-CFXDvVup}Hj!$ig=)9)a-NwFL!3Y?{js_$*_oMMs z&{@Vx{*RlS-HdU{Iv6V!MhN;K2rnd@wDHH<SI(b4w_@fmvOC<?x)wSX$raV!CBy&g zjDMdv3SNUi+tbFVNgLoQoB#ULe;@cCzk<_}^$>Z{32#)NSlez4w>?<azS=VX`ZTlM zrLFg1>7-41?*}5oZLskEJ?R!HE~*E-)|W{4vh$Le_cr$7&eovcmu(9`-yy%ePHmQ@ zUXu!s>cb-X9~b!lUsc)6L$yj-B6<{LsUS!De>m}f^Jf3~Umo<toCgJPv8eF>8r0;a zjxXXq&D`>E<)AmkbhpqZjT82(=MU0yUhrgB9LW0j5cR_=c5?W8zp@{+`=zN?gP$I9 zkqlm0GN$f+ew;2~Di7s5()>N%NEcg|tYd+}<QGk!Nd2xJW)AD22EjX!SNIKr1n+zy zDmHwP4L+1S{qd>UD$uL|7P0|lQc>VQG&#W`=V!~|b)K~&mPWmX*NzW~ZDQc2ZPL-v z3LbldryH|57murEr5wdfb+tWt<cKm+q)c3-Y6GH?p&ro+CyxVmxsE?TYz*Q{ym*Ed z+(MxzbrB56r7>VbboY`)Jb&`ZV`ibk$@VcamB{*!JQ>JP1BjwQa<<qO1FOIz^fu~G zUs7McxN&~qlMZNcbUCk;ywm70|63_tiw<y@<-NmpXc9I^^^_=1`^L5DcyqsHwo}?N z`6XxhhP$UH-F?A=2gwKvH=uCt%6ncY=GmXr>U!IKwCFu9a(8}<ExpEZBK(Ss78zqt z<M&hJ!1>^f^;TVPwR5+u{a|cCGUUS6MwQdv(so%|Q$+nU)^M1pm?t~`JZ1C^-`~*> z{?*l7?Ynx%kFkaWDQ#e4zZZS(O-+A({eGo-43w1+#GFX35-7E#d->^%uy|isSknJI zkB+5w(aq4KMt~N$?(&sk%%%Y@aUW9CGqTWT)Waf?#8PYrd#<dknfEZca$0P9J9qwd zJz+BUBL<Sf%!8Er_PY{~waL<P^SH3|P8Z{XiFAu!s`*k>SKQ$3<?gQEm$#b>-DljZ z>u#edn$EHK7p#BuYDiQk8f3EQX)Q_3B1QQ^kd@D2nCnO^klz!|*Ef^49n-b(u1Ow= zSjK4~wQ`~oHsmKz-1IAgrp+m>t=F7N9t?24{~qq7abx99?GjyAg~pyuA((^TVU)0; z?VMc2o8`H#+ZG2d_#b|EQw;DGRIzybsf33j1m*HB)iB#904$X+8+^2ZfEpyfW6EWZ zYk_#AC_`D0w#v&~WD4SQ)KibtAgrvwf#B8D@*)24;#AC0btW5YL$6e)NLJZ_^$9>~ zwi<_uWp1^z3Wq?Ida6)&{py}*k^+|nHXnl=-f_4LwNEYeaF#fA`!?xeby+3YB1Qt5 zgdz9NGb_&Asv(Y&$K7ynj%u0Npo}`AL<!147vA+~*l}JuFVm91QY;?H?5&@Do=&Ns z>$%hXE+>{={<mnh0@H^n@~C>l`;+=6ch+oa6VbSJE1S&6cgwi<;_J`%(tGQh6~$yx zc#Q895BqY_+BxN2am8`{h~@juDgC)t6MBN*)vLZpD`@Hang-kZTRPK@9TD7dI@9he z;>|A)NvgJ^Ka~TdQanUkww_$a(e2U%sO?R-vK}&wU}lAY=pFNay}Sh|nEFQNA)?DX z9t%TBiJ2@WqM|r-Di}Y45^qw0<zr4g0h4w+RaXQ-q=j%Jxx_DnaIv|~*!Pb5u2*z= zHP4)b6!vNk6=M=I+-TS1U~!i@jW%MUOOk)v1}*87E2grfAG~?;%lA(%`5>jQpEhk| zOP^T=orFC!kl=U0rKAU=^;GT}s_WT*Dy8mBT221am+*NIT6m_CbwsHe@UV^g2>x<k zaCjLjeQg;)jyqx!NU(QZjVpco$5O<2LEP7E>7c?;Z>7urdP3l})VlrT>=a|fw5{L( z-jVzxQ(ADL=%FszrWhY)_Ke53`U9%@sUL4nFK8m1sEs$Bp}GX*pZ$4q6E`4*mt|si zWrw`DN>OV1mN1rokLPF{%Fv*P(JSd@SI}k{GkdMNc3Mo2Yo*|svn477j2YLkE$%6b zi-T$cyLsRjyXrCh03RFRp~mH7PE?*+)(pYPvq#~N{ugiW84Y*a^$jOP3sDmpA&lMz zgG6s3qW2`aVYKKif@l%FGf|_RQKR?X4TI65M-PKhqSrCXGuQLp=k?xS-mmYmEY_N3 zvDSa~9DDCy*?UbmKM4?ZWN(z-=L02)`}X~na*Z8*Kft5tF<Amki2QA#jGcK<zkUx& z{mrsQp_YTw6-8OJIe}oK0W>ieKTOT_oe2TLt?ikTL-iK@E;U*&btXx~RAQq$Dgbmv zjHVy3z)61-#j5~sG?xqbs<c1y#UKO5%0BXYs=(hB`umgGEJJq~Y(j)+_r&%?#_bsx z9-)$Je7lY{K_><uYeuxvC3bg7EWu#S_joWK=7XEvvHo$@7FQX!7#3m$72zd6vx5>@ zEv-Q3o57XW;+rJvx<kHs1@U4&2Rs!GbH|$423f}XN~f&zk&cG0rr2a4BZ=)7%ewWQ z3^e~GiSu>r_;{e1n!PakhIl*aiRpSTZUC15G_8#$cIMpauC@B6PbRBqi^WY==m%Ii z!*{8gBDC9L<+mc>(43H5IG%(?i1K1%Ld;B8yrf~YfPtQxaIGU`;LGT3=Lg3C8_!j0 z!qR~w?O{sd>CNbRe_qksH{vof{_~=ZqnDrL?NHW(ClPdb!aStPaMru|_7f%$M0IE3 zc)4TQ)Ws<alQm$G*dP7nLvQyt2)2cO<+4$<?Lxu$lViO$j-4whFP`@IV!*5yeQN(> z-Ie{+B=KhSpg;HRnw)#u9I`tvR`qH}_9~du|Kj2m@Z7}z<j+8s{!KU2;&EZ1*zGob zKhV{Ys~bMNso|S_u}Ip9k~|OC&>#N*Hsbi&+nYK%Tx7>L@&>i&JEjm}@K}aC(}Lg7 zt{pT)AxfnGWKblu!fRP8M~6KAU88JK!=B+%#%*T8LQ^aQ^ncEpl`S49=ARhV=euOR z{v^VN43-2m6gEJnA)PwiQ8y@|vRw=c+6K#?RORWthe*9oLz_6^Siv=4%@FZ+F`k?F zX*uYmo-N}I3GHv7rfv_*v7LnR=FqrmW(-$bBU?zE9t)%!FFr4%KZk+Yw&`ok2M%qP z)ISd1S_7y*23srC$NUx{)Ttr^&s0RvwH$^t3_h(4jP-!_Ojy{25gBVAF!f6iJ}Ua@ zefD>}gg>^#(WWBh2%90S;DNz7X>ebz?=Q9-P4+X5l3^4>6n}ARU9$Q?UlAb00@Pwr zWzygRpN$9|?h;EESKh@uKNz71kV>DkbOSMjHKm$tPRt*M1^zU><YA{{Mn~fILFuD& z=INLk$5+`h^hG%7DW1xjoStjpQn1sIM^%?Mfw;mKZ?RrNTR6MEDei(g<K^F7KD$ue znY0a*r6tC9m13LwP~LJDwOq~Hid~WNxb4jQ)14WVTv4N#y!pZPA3;wJi>{k=1+hvt zF|Y#R+I>Iv13!tQk^Jg#ccA#N_m>Y-MsWB6k5WHcz*~Cb_u~*$2pRtHTVpO?qW6_| zE{Xwuo5KfL^Cvt=W<|&`E@jKm^m6I{nCEHr!tD$=`GB!hnK+%^GasJ~FJ*Fx>qN5a zg)qm{RBP6_Y1Lox-fe0)q)MX(Zt*i3oceMt{LEz3`du$A_4ht^4*~yvo)Nb3I@n?q zf1i=zu^dl$b8dt#E0W&W2t4QXK$|IVtrfYBlm?v4${eb7*3{LR1kW#i6fS+1=u6Ct z`Z?LLQ@QeS57N2amfHEZx$_hvYWk78nn?+NaF9WWqvL~(H^k-bdx_^NHi*ap5R071 zrxf&D#l*CIp7GPC9Yr0Ng-*4xJE5{o$B8-R!`a`4vy2h1h*<}#N9EN2=VVTWSX4Am zzbk~wRDoy+@lYOC*4sRj9UYO8G?YDMy=3<h3PRj3qZO-Rzw6ZODZ9XK_A~$+u>zIS z7f`^D$7C$T3HLXXdec&UI0tRq7<mnC*VwGSz*SAwCf|eJ3wo%6Y4{P^N$tZ00|vHh zZi$B>VBv$L7p_l8kZxN{+^t@;@Vs?}Og*EEWP%lm5z&UG{2<+s(15Myb!`-d`Ppxc zR5Pj>z(##OFbVqJr&?v-YI7;Z-xX%{fz4vuEtM-IHg*?|vZ0h=r50_E5kuB@{Lr@| z8yUuvSD$Jms;w58Q;5+#&YPznZ>8kz`o2>VQgiYOKiD|F1w{2)bAa*P1n}QxHH?~` zrhaf{S(nl&>vgmrE9LcgN)gxQ(B%HaZQ8mv`RY8^v2qWa*XHl<F<a{AFN}F6NPKiS z7~)v>6M4PpQ<<tJfxXl17?(g9SDOnyT?=80enne&5wMGl?KCS}$`l#PH^4uV3-eI% zS7Km-N8@HQr)WQj<`A%Tq@>ua{U!NxM@l6Y+|?V*{u24>;Lk$gr@$<GQZm{N>R~Zv z=6_nugHc1Xx4PmIFT9pJD-SLo9%m;j;I7hiGW(2(>cCmqbMp3=>w9%A(<;p53LTq2 zr$nWdI>M5r_Cw;~eLIEal|Ez1foHH(#wP2P>tV<Fp9aK!jIcigO0tMBw}vVQ^hPS= z4AJRyRp)W3eP93jSEujl!7aI1nA#LAwDTlo)^Fim;9bh+Tt3ML#Gm1>RC0^(1h47z z?e88INsx<kujSjZyX)M$+Z6%K4<@&>l1C|tX_vaM^I|3^_4-rwhbY@=C`P)v5}>k= z{PT6Ed#DRut}{IJ$!Ozah=}~3qZiT@6_+C|J@;w+Fsw2Egs+y1C1MQLV_yCFiu9&u zZrzlFQSJ*JJ4LjLN<Ii#->aG<!t9O|79oy~V9Ov6<yC-qGw-vD0FDLYqM<KGY`QJN z$Y?mZUoqzt)Ez@LHsuI4)B9K+o91XJ45HXqNmet}e|Ufo{_;wC^^SjMhB#s7Q$F7M zt<3N7oB+%2F}uL~as$P}5>L{{Y~JR0Z70Rf{|HQr;1T984skP9>1!s7_H(m(kREIL zzSfWOsy}JU&tEcG2f!b83*BPW6G?v2h$-F+u;&#tTIRkAmp^cIJN<^bq=MPMUr8Cw z#$COX7V7EWE;MvFDA%kwL<aEOaVxfIE-Yc-aK&M7mO<!0TUO;BHQOHcytDCfx4Y&W z-%YGxxD7gR%LArH7w63L9mJ+BZ_4{R>op4@W|~pNP|5IE7WQ*e`5qR<Ry=#*SB`iN z4eAXZ=o&o!B;oPNdcSx{az)5%JYMf1>Os#>-4#ibTQNlnAJDNOA@OkLw}Jt&AKGCx zdUjdS1e6!-;40;rt>xP{FdIv>zVJTKB~46_^=Hc<Vz193u#kZvv-OWGt_bdKa&U{0 zq6m-i<d`vJEB-b;biS8`A1G<m%A;Wen{O~6kA^0fnJrwmZKj|(%Z0fmdU2@JP)NFE z)zqTLm6z$+VBqyF)8!Q8_MM5Py$w(KG#DjJW}!?-n^#&mcckUd18Lzk{!RYZf1Gsr z4$;X+!DN({<2%iCyJ}c@`<aW*>nC5CiPuO*=jt@pWxmm8vQ3SeG>n;!6Dr7~CbIWi z#Kh?H3B?_@kG{fpkm)+G#Kop6LW&0RB2v3>8nKCKhATbwFZfCai2%=}`_LEh8*v%f z5)#J!H#lRFU#DL3V}p*I4(i8+rVT-Og+PX5i>dRD3BRk0KY9qK^|U4?{Ky9gU<8m6 z29%KEN;0h#8Z;WP4ARREs%F0W_>B9pY0{S_iu<Ziaeg~aLsFu|Z{JB&+0S~TYPM9< z4LH{o09;o5#n8ll#U2_KhbL;Yjg@!sd?A#vFR!scsd`QULc~NKK=mexl}95=r}?w5 zjKt<hk_P9<^Nto3yOHBh&7Y(D(%u$+a4uvB>vo$c^hgh_#`LD=3fr2mSqQ4zP#u&< zkS&xreX?UEiwkc<m7WBAt`rFS5eSM)LEOMgUQ8BCmke{+S$UvqT&eN`1jV$=mITe3 z13sRzZr0{kOJ_)PW{HzRbe0v#W4?V4x+mJY(EM63;sIw&YdW3ST+?oYnY?9o!bu2q zPt3RwfAO$%v5;?o=f?N$ao+yYSr*v*OwHeV7Yy8e;|h_j&v8~BBZ-RzxCI{Dn0MsI zPv?tF$*=<B02i5J(N7&o<0XcaaYTtEESP`lvGng<E~ovrOC0yPV^Umudi_H!bXV+3 za~{I;I$EC72Xz^6f)%_|4P$^{%8P;*F>ygd-+j4>q`p|ZX4jx+VB!yS+>AM}G95@v zrK13XBXp(-j&CPk%IcAk^O;<GB!?CW+0&>E9)amNx~$@M@GPce4`*(>8$*Aol}ZjH z{k#nVN;)tE_2pwK#<rGVvrytS9k!W4IVrZFK~^gf6ZK~qW=Bs0eO4O-hx!9|y)HVj z?WGQ;M0f%Rypd{p2W@^)UYaQ*bt&YFo`04OBzJc^lij^XMLVtxT>{bGQlICTu9v5> zYq|AR?BCirV|F_~4|)0P2ZEPd{A-;efN#GBiBY{G`_TYKhodfTR__@2%Kgq(+9I#o z9;IrtpvG;&deQ71ATgx7g>%Ew_NkKfcMfQ9x|^tq4IX}VH`q2xaezMd$|Q|%?dQYI zOiCN`|CRz!h7I6?r=9g!EyAmfXr8}R%}nP_gwKNf&;1Umg`1BcrMO5U;Y>Arp=cOB ziWHoXgh+Ub`UI<A*NYBS&zw+SROrTXG}UYo3&^dR;bp2p0V$y{$A>{dEF79|pjiYt z>V`3bWI7LZzL*%+>7h4tL0`a(dL&vAxoG>^^5_6Ar@eRYZB55HU4nlOC%jd_jvfz$ zBagnrzPmVU6rHyqU*J%1_YFjXm#Ii{!>2WRH`iWdcBwPM)~yZNv9C_~Bx?{CMr9r> zM!5YA8P#8ZwW`%?44y87#onLC+gGJ&?wtzz`u}G9tb|<d9v`Rp_F^Jk_!~k~J}#=x z^NqwE8<b9h2r(qOzGsZ+mtl+!aJq=5FKYjqJ2a?CS<YbPo1N?^-6?e_$d~!Va{ITr zGG4UXVnsHV1;c}R$caxvDq@7dAg|ez=c3=J<p3C4-J8zsV4x8jqW%@x{pH0)O#NB; zSRd}!Bf|M44x(Nb=+&Zcv0K*@v7L!*vB())hq@TL2qGa$>y>HIca1WQUh7O~8v#Lf zmcx6r@6yjY49Vj$o7?NGU>P;XDlRlG+V?q&!_H%6>`GeXmREz+2@UH#7INMjp=~^# z3Yokik0BE5%B?Ykc6jdv4iaHSO^=7>770Ymk_pzm*@kmZ^sJ`+&I(6O1NF+5|I{|K z8FIbpZ>xMMB8_WrFx#i%X*y-pEYuO4Ukz-(tgpEaT5o5kc0k9}Aa2(*Ov`usyz&0W zJNx5#iY^I_`r$*R7;|&Qq6k``90j7C(cFhK>pSLqr!T2jZMV*JBOcRLdXC@h*q!^% zbx&Nm;Ddc@KMUI6f@EZh1}PJEL9}S)d_({{DXTvp(PsdNh!lt;Xw#Y;zCuw?yhsKM z@7wr=QC>s|rX^b2eP`Pc6Z#jl+KDd3^4iMCE@7r_-?>z2_tx-!gAKEvA%r`%4D$>+ z_?AB3$F*T!fvH#dhGG1#SAD$MYy}1SOJy?Lar~oV2gB<SE&6}7>$-!xE*XMIH{`r? zUIL*&u%_;~E1MlJXM8n|@Ay+qdF-s4PC!J}YstMzLPd(hlBS(PsPfo_i}K$%W&43; zu73FKiO6S9HCkn4XEvOF1-|KPayJGr>KJKd6gA^kNBLUp*&GJg6E*#k{mVOfoE|G_ zr7;|08SF+O%qF82CjMA3T@Q3MD$1Y&02MdCbGN{Sc$~}r`P|2G$pit@0|(>lQ^u9~ zjf__KhiZd%yN~M%nlf49l3AVieBL-v`dJ$LZ^lUUE+=*;USR9uo|tF;C5wdqoWGtT z4YbE-L7p#oag=AJ1&NFIc(-}0-F&SqmEBk<2Sj`e@2WD-V{a~N!E8@A7roV&5s`A= zXz~@d%gSy1w7|6CFe{?v>#4hfY*HBRJ^~Y`pYXKgf0sQ7*R_tGy;=KuhuJAC5;WQT zAvX4*yn0U&v*U@YQOcbH8H3r`_LU5j?K7a`7Qq(e_Yv*6;sWgEfD2nL5=>O-a1fk~ zL>LU7862=VPTuW@!!t&2DAuKGfxY;|WZ((9-s7TxlC8a!<0OcNk?o|hd>B5dl%J}J zXLj2{`^`vu-hpmRM+2o2Zmm|V##ot4fU|`E{ZRm)(F<{+u%j(u%PenY+E^gU%!a)0 z2q3w`b2g&Y?suXmV5=Z|-h$E$oZ8=XD9uYw?nc@Nx>bA3{wN;F7{gvwvLBe&bbl{- zIqaBO+VL{(vkNB0<z{N7y<pn$tuY@ddwizh+cgmvBkz?vOs5Ar`{*?1iXfGu+dGMl zJ|-MW6>aV(PC1U$c3hCs4|De^=XD)b!3!b7?MQk9iZW0UR#5~+jtl=!5Fc%H$y>-A z)wUL9-zw1d_f^wpj=`FR4~sLFo#58IN&p%P4H+jcw;x+Z#4uZ2oL*-NllFPDs}%W5 z5QNb|2+6qo=P4^d5(WuUfE;FV^&fxfQr>>=jUb8n_N@y~b;3$yEVbJFm_=0v@qa5| zn%I7W9vZj~E#f=-yHq}6($YrqxB#hha!mfF?O2I(KuM{9HhF|4?9E&|Z`mSs)==Tt z=}4A0(^a^_0Y4<&Q_q*HUlF$tW|%wU;f*D~(;IC7Z!sN*IH*PwI7~*_WA%ElUrg7P zB^vb-vI62Q_ZkrOLcWXI58!oHFC0_19V4APs_`%$mrNVU+Iwc~FS6%lW|3EabX=cj znZxiLqb%WTV?8vPG@?xg;HTfLd4E#o0!)gTO+Z<3lHG?-J6_bHJ27{4D@UlliP(zz zNqyU%od8m66l_+#b8YtM38G)8XRt?3NUj$)PF<n9a9uY4w=cLLo-D4Tb?YFt@=>ac z(EfhLJO+8yzza0!;IIPX9x{T^hqtxnm&64&??eq3*_+XUf*Gw}R%@7#fQ0YAIyn2P z9Bj4PlWM_>db@4_7JqjaPNwP07=R=wMndvjaoull7Q!_%>fIjTZ(Mb)0ARkK@;(tx zmhc+(D6XTi`i7un%xIa_iDlmcAweP>G>F>;wf#-@B_rdC``iIr?DLe1;;B$d^TixG z3O0Ct9r^muY{SLfN^T%fB}0(B4De1=wzOl<XYRE5OR|Fe+xgxY&$V%D#1fhKQ39x( zS(xU6+J+b{UD1PnVN$E(pt~>{`Cy0$`TdLHO!2(Ig4ga!=gzKk=lNA=C_yR)phgLZ zH;LguOQ#8S)r5f=t;0yf8C7+Kg;o6M666x=M5JY3PX8ryCX^>uw${1qMNNE=Up6s% zQ)BP%!E0>l{*!v+kdB_r@?Qw-@g@Uv<82gdYAmPx>Z=-0MYT3V=Umtjt$TAwWcYel z)kO1mHQpdiV%A?0uI5rN(z{rbefrDPCuphv1A6Ij%+P6zK{Rv>8%9*Q?^_1nhY3e) z0Eu%nUv-i7s;C+yjZHW<FjPj}V^nwl!7yMu`mXw3+#`e~aFv8b{3LQCxcdjiX1}bn zV!zg2@xD)h^{sB3WgX(DhNr}N{DxPDWQdN)f7&3E%zkLIyQR2+y0Pu$rsmKr@_bLl zzt#a1GHS7&JPqLI&LXz}0Y|EUQoAvpVO<eIUqj_(9{J4bqq)N^>elIvp=j;7W<I;D z?2&BKvLy+lwgw5`6c@*%`Z+(RmCMV16A`_+&vdlxkfozG<jhbsDrX=bA}Mj4nD1%i zk9|^6uRsg%q64uq_ZPFxe|RZ*qIj}$Gm6tu2z6|_L=|N4q60N<a0cSh&s1rTp1Luj z)|vN*s7UGgR_)LB1j<GrB2u^A%hg_~NB?Z}FJN!=J3j4AW$R-$$&VQ~25|djNOV4R z+l<~a+72GSlx;jrf~XW-2pPO+>%|{TtSlte(wwQ-XYz5eywDdik&hdr4v{J!M)N<) zV~3b_A%Oc9UsQ@IZIp3pNSQ}@s5nr$Q>~a#`migv49&%}3KQ0xmknn3xg78i?Y-!T zM>u=}DlXQtLD!jTRsNx=%)&e~O{^Mlvi#hIfuUK*VAbtC?RJm#NR~ip-ROguN2>N; zg1Wp<Bg0?m8lhkHF6Htqd0QSFuIA33L{@?vOGby^qHP>JPWUyNn6yN!9Vr3y6?c=e z*xvftoJP-5aS)*h0P;8|zn|iH#~;J7mcM7RgDv?sQue*=y$aL`Q}<CrLBIdWrybNz zdHbwrZ?3kXp`ocsZ1OvO9BGnIP8vodqtSY3`<E?SaS$wQa8*~1Hs-&*Ue4?Eg(?~) zCk&{iS6<VIfSHmeC&!T6Cuf8*jQQX@0j@<L=4{p`t4g!t%M|@e7NeIzlB~)TX>$T4 zP)+>eCP0H13cYt}^$-u2S`!VP27A2B+5EAk8uy4Cn(j3TN>r;Fu;f@JVHOr=k6kTy z*<td5_@kqDB(rymK2Zh7>a#0(io{9gEvy)k$61%R$MTKU)~UYWy~-;nB}m3ZzfF%t zZ9ttM6TkPLEm&Ug_x#d2hz({}7pr8^pRe-c%2DJEfqxaJ5JV2Tv)3nh`NPD~gR>@< zdgIdntkz`A)6JYGJ7BMe)3^UNSNQjD{pOr#KJoKc6Y+|B`6(tY5L$I`0GlJNDNofV z;|`l^7^>YH<B5Yvi(TJNI|On%IhO7<v1G}{Lt~PGn(SXcz}aUPC))mEoi@6*8oacm zvEkoFo*FC{FsO`Da*A`V4G=1@$6k$A{v4I{Y`VPdKB9OGhX<n$hFTk6dbQ_voDm#9 zI({M&At1-aOvcwZBfhel32E816@?r_{5?eB?5>&GGG$Ia78k!3?BR;3QzVu$O6F{y zsUq?nNiP}<hx^)bMFfdY7dV}g-l_?-&a0ZyM5ss<9+70}hgcf!`EX=8@?2oUjF6hb zT)qo=)~Rz&?&O1T;dO#?fEB3YdtHz6+VNd*x&{<Y&Wn;st%^Nw73)oteH+?WyG<Ft zf!PLxYcl(7$H<J^tJrXv>qOkBR;G*3U*sYuY-(jBAsJa`<;7RSCjLVy_NC&1=RRov z1qZ)^9@~gVPun()1$@zx7yifJ%IynUzz)`bqSx9Xk{`W4eL642{XKq_VKQ}hsfymE z-c+h+gNR-EM79p2a<<5ocHh|_@P6EGSghWjg^tVHJUuezH{ZayaJocK!hdN8=-P^q zaBmB>PtH^(tmdx~fR#woj~S-_4BiANzjQ=k9;;FoiQvD|hFN{*i)!ctii;4(c;Z$P z1BlTu?y?7{b!+X*d^=`@SQ53I>M&CK9OfAIh;U6X0f*O;upZ2OG8zAkeK;+uLxwU} z87&pj;!+~I<%YB@i#CXA`8GQ^TP{)=ZXGZ&VZG-i_)ME9Q+rpT9exTE5+fRW<ZxDt zI#~T^ojV}<)x;ugH2?1U@K*&|QkV@WOgGfvGM{mzYAeY=&~@(P-{<uoGp9uRmrYZq zCT0v3(S`13n;-WXWPNRv9pJbN)X3KA1U;nh&<fG5SQe5x{&9qyKFbm~EngDZG52Y4 zT|M25jy~^Ly$v*Jy%Oam)v`0aY=5l;>K5}HVEB5(lPn%p4SR8(dOwuGM-HK)sZ;ii zSfQt@U<9#WS<WX_8h8o`i)I=mB6{zF$vfJ4SuVY@RrE>cv>c#{cZ4C%cPE>X+I>mI zXLdoF!GBxX(b9*AE_`jX*716ab0lkeb2|^kRC0iM7L7j~-I{LjQ~{<Lo*S$Ji0}oN ziwQ8iCIeHNE7us1!yKQfGAqj26o3`JUSBHJUd7clFUaAbKa1Dt316n^12|79oN@E% zhKkIU*GR#_GbGHwxc3rXZEmjDH}B73NE7Sx+^h3ct6Hr!88#w>3LFQFQdhadAKhJD z&8}R<c|A^uR4p}JcoA)(EEuBwDUQKNx=Qx-4BdmR9#Kz8E&rw6rp`H!(VKHEKir)6 z3lFAim(H4xhg*w1WkVByN5X7J;53u98FHp4eyD}znZ*wLgnNQVA7JUp)`LrIaBdbj zlrA@f4L=%hy{b#%-<vZsGH`*d`jtU%t_jShwt6dh;~tCm<42L<P(oNE0C{8&(-4O! z+!q#!(1U@4UL~kaek>fAjUgsicLY<4HP>vh!_@54EHZn^K*cYj-68~2sUL?%TQEd- zOc1_*cmz=P&IK48p7Es#ng|U}(^BRs;G)hiXX3N}fj)-^I`Luvn_oVjND(snd~T+w zXtIbN;VLNmNkhU5w=Ssq$bE}J`Fl~~v;y{h>eMiMHNzFs5fqNMUJYbU6~mYl&?c4v zn(G)5I4jL}K?7BrbDq7VEd1@i;@hX`8^=Zc(K(~E{L1u_e!2n_fgfHNl{p4BM41V- z+m_UOd2dPY8Q+#n%p0#@r&W!~QpwcleJ42Ya1)T!#yf|40BvAR!La*Kg$Fni<%iZ* zD{^>hd&Ow!`tNF@7mgeIC3!sNgWg0`R605P7MDDFGZZ19o;zIayj$jy>@_rdGtm<& zyH`RgVn(&w>z`)j)7s$bbMVJ_Xn(JxAsHIdlo3Sbk;9jy*e?%>7^5WQNF_-a42o<W zw8H!X7K13=adIa;5Ff3(A*e<1ZuDxu(k3{li3u);H!pgp17I}up07j}yy?Zg@c?(I z!rfu(XRnUpt-mL8oAaA!kxy-68NNcC9GV<9Faxh89PTO^xD`(HBQx8se&-P=jqXC| z5LY8i8*&C&Xg^a^o1Qb2fe*`^3d=s1_uCh^rQS-HJ*h<pz(vh4d9t73k}HN(BYVbB zx!0Oqa*N?=H}l=BU5#z1=L^{w^?h~@Ml~DrG&(|MM@r(L^oVM!V4S_=-?NVcnO~1u z>lLd-*Em#nG2r#0(b6{7%b)C&VT7X*iF#?(uPE1HFEaR!-+`2~TO-FPt(R50*gc5> zoB}uutESkm4f<Z0JaZlCp3pRmc^oZ8$e;y`1hbK;(3gxpjn;3JJ@$a(_G>zJws{Wj z!qRJ<s+8xu<PSDGxmt;KirS^J<{bpXx{p>9<JmoIF~z1yaOfE=B;6yn{D)VXcGIRv z*ie*?N-#7;Z8+)!a1d{v5^li%a!AE~TwdJlsGg7ZO|{qXORsy1*iR<khqD~qz-BFP z1h2{r=T4}3!*7i5L=bprzJr<bHt(yp12Xu=Ip^KN)*s)Wd_RS3eK^T!zs=ayKOgI_ zGI&<R0%zHsXt7W&EfYp1S(_`Sj;k82OiS!aqDSwJicKN(C+G9Ao%Me3Kwb&#&oPvP z!8$1=wV>_qY>Ar;`iz|R&nTDPHq?ZnFzUYgLv}mq3~^CNtBw_Q4lC8e)cSQE!GnK7 z#$Z)k?6Ce}HklzzLZgo2+>0c0U>8`PJSL?=)n?Q~WeF5TB&6UjXS<TK4$nJDy@i?B z(;9Lzk`IzZEob4%!^UL#fbzdgB`&_>!vuE$=RHhAo7rRlLWIf)+l>G9Y`~ri1Zy-X z;<U0~nhXd|KN4T-7zVFT85&9K!J-8&8)okz!i;bCM_g_yJ1^rqPlp0Af6=Gs2Sl5r zk_XcV-u<O_r&>mmUe6^zg2)I}srUPT|7lKLf2<%DaH#CzyuYw=vp;EeE`(o8jOe9N z{X#IK@-O_Ut}gXO5y}lw;jQH_#uvgr@)=~4x->YA@{1)t&fJN4MEjp`N>&@r4YKe{ z2{F<62nERZs0@X~0P<f9*|1sI2(4-eCOH_qChyG~IeOq>HS$Zc?JDuE<<s5)X1l#M z^~S_=mK4BmysYD|SM9EcZIL}rPT!nc0qJ*hlgE=E`00xTT1+g43YuZ+xZNg;jK}%H z``=~=zomW7{*n~+p+N0>H3N&nGETN)V6M~ghKv?5I$id6h+XxWMO{Q+zUOBEUut`+ za>?{a>b$p;-`~8ZDd^9v^JF^@r2~YlzykJNPHlHhrFwn#^*rvw57-avM=Aw&I3DQx zFSEZKS`cw26&GjL<R%=CnU|t$RU$~CFholOidgVzB0MoXdG#N!GSh1zl6Uzz_Kv>e z=0`WtIagZklDD*xJ9q<D92S`o)vvULoJG$A{H<@dc|~tNkx3Wuu|7+q^P*8^aj_NF z5<(v@m$PYrMTlvLQ@tT17GKmbAYsZL*VkZ~{vukeiV;zK5DAU4ShGEVu`x}5GkaKq zq_^Gi`D+!qi-t~OI0~0^=}01AG@21Kg7{=O%As%nwp02x@=i?ZxZ<jC2%U49v&nxQ zIbS$*Nybdc$qR2<D7rfxTgGKYt(Wv?BN+;ydq)HSO3VAHw}<fqoPdj_Gp5@Pa>+*L z_Kjes%bcgCbq6CZo6b-DuwH%#FK4CDL>+-s+x*X^bjid2uyt8Q4qH;g+6as#{ro)L zHm;v`9{N@`+svM16A`l!LD#A|8DAp^>9}gT|4Xyuf-9m5=%FI?&5BRKhQQn}#Tyv> z^N~ynoCWd{Z!|c_ZAU1m3V1My%=G)3+!NH4k&vLy?9wmR;{(<->rri1g=s2Af1!Gg z<I+=}KM(>lzKi3`96KJ}6O6MJzy@ZZ{UuWt4gqsXCABvTw-sKy^rfv36Umzm5i{2E z@X@Sb{5yk%b9LEvdYy_TYNb8oH35ut=|*#OwsGN4Q)tgL+H#pTF<&(%>OL81S*<6# zOg*4{tLX}4UDd5Sv8V|`F25?!n>(emI7<<8R?uC#&2(>)lDTHKeuUUVj`EgBLVmTL z#pbmxmtVCR+T|5EVufvTZaq{ivGbe(#U3Mf#6GEYaWTGhMUQKB&oJ(o^JH1f&bZUT z@uZ}r3wHb{)+J9UnxTk|q*wYu;<!6#rUt_~mVLn_YI<2acRJ_Lc)fb$5a8bS`T4XV z`y&t#bwX8bHRZhTW9@kkJ1@V>=`&FgHj-Nlhym0Vd-VL_FT2;@PWB4qHxWY3g762p zbA;zMQPcwRPBfq-(BSHBs$;)B1aeUk8cdnP3Wndu75@)W$#bNTF+%*KUt|i48gd=( zBWwKuAI}ggDjB|;+1HRwf!n#A6kGSG#9v50(atk$M^PgCba6UBH9XQ2p+E!lOnu*& zQ+?4k+ZOgnNBa~TzKp#EY2dp}j_&0-UkE_XO1$oV$GbN=emZ9lJXBga&%Th_-VhK7 zM<wU=&nwYlqt)Q&^FJr)%0cz<j1U?3y4I$q-3hhM+ea>!h`<1SOSI;2nwTK~*egLt z^WVeCA@TriZ)g2RrrO{k$_x=nH_$o^)rp&h0#MYw#bZ^}Nrl3r`mF3Wi*N%@@nE3? zg8?_jUX_7fiTmA{&);7}AP7}tlHdmCiRkf^!`HRrMxH~$_N`{G0So3-D)oFK26m8} z@COd2rw4xiG&hPbMUovv&zu8oPfjZ}ZO*BqenS`paKhL#c|UgYr*PM19Cb*GQ>bE| zRXiICTGtqd?oV)3_o{;Z`i?~iNBi8<*dDc!qLTBg=VnEc+k@Y)?CcmXxr)nP9qm-0 zNvE}Zw-0ATWB2@%P4$19i!YqAL9+IiFFO^maR|&xY`lnAMgH>Vi3{2Vfdi8pEUH-g ztQ}%!O^)Cmu=Ygip!Z}&+A!q-w+yS%8^-Tfjukv6C2O3tZ0ZoH_~JO423Go3R5nin zyN+u_KT@>09hJ<AdUd+nj5Ypj==u-~NbpwfQGMeuA`O}D+<l(4aOZdxb8x!-*qVYN zhZPxMv_khLJbHQ0?u0=;b*x5rFbScs1|W&?#3O6_)+8_(B{NXKSGMjEQ<mH)Tb`dX z)!>T9A^wjq+SqbATjnnOK0b5Dy-3d}pCXT4dI_SH6cH_B?_;gmhIVcDFF|6-5x63r zRaOXu)R6pysJSQH`xN@e+#oDE@DGvy_h-uFVwc$$ASSV2i*<v!hE&E2jd54)UN?w9 z+2bQEzY)l_wI!O|9Q{PU?J9~l4%c*gwV|@YWsb+syYchtt$E8OrX3wusxjB3=YD-d zquzZ(%^CM$Y2IW5%;5~~$^*>RnrqA|=78P*H#w?Hu?64L<X5Q;{l|<9AMA>wMuy4q zLjXg5FI9~Bi}RFUXj(uO?xp4nC+%sIWl`@du-Q}tD)W<lFfj)1FzVN2ISsjrq|G6R zEPN-<s)cOqZy2RXv|ccSz|J%eachGRm%qYWL~jkPcPEQR?=+!ya9ogWsLkT$FDsxH zUDRzxfd^1GT!}r`P}GV{vgku<R7j|aSmqTNkWUm(mTl?9nL26yh!Jsjo`*&VKCI*4 ze8Zh1xUWlYD)Rg@k<+5v$lmEb&jNO$nX|wH9on6EeaTtllv>I#GkQJ0KN84DQg13y z)eUoT%<@6TdsSeV9GGtAwmI)4r$rZBBUibyq`hvNJNvw2$DaX;e&&lW-*t>XKTvBh zk;1<0EZ=cFknUXU+^Ix}c1SM-ki@gnq^XdL*HVAGM@JYT5ZcA|8U*0~_I6hiVgm90 zd~qn*>UBF}egv<z_0w|N^{6sOy;I+9O2zR{7K!6VIIRUa`Hh~}9et4|mcwMJ=brcx zUC$bqLw2&)1?CrxrVuXm!J^!mhC0*=t6`oTAPMyFgRuK}3Nk6r(YowUdWavSse9x2 zrnZz3Q(|2ENf&1K{8#JlUd;QVv0G;l<wF&z2l$2$xQp?Yf?al(uh1;&IX5?Yl90^_ z?wL?QAR{BnqgO#_pPkIgkun|+E@zWJjemEnm2+DZn4O*#=@ug_OcHcN(A2$ioZ@86 zf3<uN^pl0tjjQ$Mxyx8Ldk>jB9bc(v!&`dM&IA9ulO9sYQIU%nsuV&(Xfaff>fC&) z3ygaMpMHlF%KDD9vAHZu2qwW7JlcYR%NPvBa}VFg@x>6ck`mAoH)EoLs=J4O0~G+Y zs^9*HFv0!6<#91ez@JHOG|!K}VQG@=KoJ0iA|X$|v{E{o1{>(Bm}0ttZ5XSHjnzX7 zppUEhqCyW>zk`ak5&wPo1B6N+8H1PF<a_5Ko9@931|92h&FeNc5DWN-T}_P6z{=Dp z_Q&6q)BZdKrp%T<t);CM=8N^<_x^eTe`#=OHehG*K-p%rZZ(Q$5?8PD*zKv>j^;9? zIy8pmLgubMM)=(QV^ZSCLmsCcXF9_YLrhFT742Rl7t;htezEq)8-%TB(EdabvRa+* z{(eG28qy|WmtDwK?%diIxFFj!FE8XDCNJoDF6vq7i$8AfYxV(d4Z{uhojr58I!UIu zo0|G|o8vfC;I?Q}1%kl!tL4SOn$m<^EaFkGTDDDIind<i5hPjSpq~Cv!^eyeB0V7u z(133m?g<lHhAB*J;<`_RmE*<HtiW1a1Mn!m-Ro-j;CSS@$Ue0@o2IgP&^QjJRts0E z_`7tLa#d03-a+dWAzs}b(zjS3%<mA|{iDv4aD%c}Lij<4y&%wHamY1)^9wPeJ=4%t z<q2Md?`uQd!B)|tWbvFAxdfbJ(!*VB_i-cF>fOQh7a0S-@5$MN+yvYNP>eQK8YWI{ zA3d=RqL15Kze}3UFP^Ec{8kmTsR|+MWwl&{U*fID-m_7TPztwTQTy?E`rwW~VWvco zFu}mqk6Hdk2NUDstKn%gbNucJ!C>7Z{e8c&&iCyxz9i`coQ>AlhI+Wt?V3Z!d1>H@ zzQ8So>}Zp%YVyl_`sE@GPAHkOzry=ScH)>wrJM%_0OL7*3tGgwKkw)F<kj~DmC0kU zU^$i)1AZS7z<+Zt4TZ`g{9Z6Hhr>CnhG|Gf3{5TEC3at!gpKO>zO{M{$FaeB63468 z$A;01snwk6!`0mnxCD8J+Oi63FCXA>K6j%a9pD^PHv<i^h;hdX3Y=&frQgR#jsFo- zQO+Ofb_x`gIbLnHy_NTz#SJw?Je+>|CS3Mc$F^3{C^pV&A4Cr-77=YiIi>L|RGLq5 z(Dofa+FqO!bFr3<dk;f=0><d)d0CaGU08)qv>4J^#=X*wO<KoKZ5W0!R3O=99QwLh zsy~jDBX{~HUN$}JNOAH<99CQy$#ki*k8BdGh)Y~AkKf|_NZIbn9W!DV3(sr=)vzUy zgQd$<cajchiY4xO=|w2|y>W`02f1bLwKdi37Wb|3mAYUqmM-o#w`KxQ%ZriOMYa4R zKSy-Z<?&F}meiVtIEZa&X!cI^uA(u#o2rJJ=OkZa-8)Gfnf)l$-*fV>k8I60cjsf= z7Sk!MQ|CJecF&R%N1PsBjuKEg-5@P%=lGlfqo3(jG7!@`SU0)`EZu7`FdA3nzJM8i zl<Dh=@f5Nu`$j{FVc>mm{0=&3J5W^pf#zt$^zrjh9Hp9o|G8hr+(N4UVz>IMJD2#k z1SLivwoKO^@dq+`{<X=ddip?LObbNaexbqaJYy1l`=!zm+N3_NK>q(&xBl0653%rn zzg8JWnOA9Q=<G9o)~y$X%rO6dop50K{^IAoAl{V)#}_12G2v=?qdOnl0|p&BDYU87 z$={I&9>SGm{nb1RL+Nr@SrL>)UXGQsJAv4iSqL_~Qw>+;t^OEbPJbZ(|M%%3ArT)` z8C_@R%sj-)WGx0DaNstTutkdHmw(wmD0D5cCL$@noGn8H4Fv(+1yHwEFp@zW6U>7s z72FgXE9QgBbq(tm!tyNyt6nV*vANjzbl6nOG4>9sn0K=qri{KOwV`t5uLoB_zffCd z{pT)L!TCpL8)RF35VP7@4c%_dNjrZJyIMatw)>pJX4z|P=l-Pa7$3u#_-CA*OizuF z{L|axSqB`&`IENP(YgK^!sutl)k2&85IYOO5S_ZOZ0w@Ak(a6^{ItxcG@S&geYpxT zDju`{cnwg*Vdwos0=xfowO$|o95cdwq^!|#%T6xeCGJ`s>(+S6)1w1i_h>quHS3oI zYF35d$+(IYbG3QiANWe8-feSM&<r6K3J6QzA*F;@(<i-MyiT`DF0Q;}7p7nNv~k(s z#qIPW=OU-p!wj*6WSwn7v^nhMZ|RXGpsRo68<OwuFkBPGrVK5Y->}}nG_rKkWdt%L zaON?T)CMs<H4E_(9Udxr^+8G_duqd|Vbdi#ynlH``fzg<$ys#a=h5IQxbdYX-e*R| z+%FE8Q29<&niF!h_2)O%J|l;fi7!PSn4YjolQWW(w^7%eagUgcv?=Os+6D|R2Mrb` z!`ZoL)iP6c$sQo2d%U@eN09|d%}|S}d+E#}VQM)^$+6D`?yJ9oW~l?gR%OCqvbS>~ zeak_Orxfi=@1AZ7To)r3`wXm_h6%%C9+9J>Efz--fY2TvzvnqrQ8j^FE)Y@Yz?SO0 zg1N;|5u@bZygmc3ep$%e-g#l8GkF>%B!Uh{RY?XPJ&`^1*DK0Ws1D1N+I7aFd6j;Z zy^T!7x^dKMzegLDZye6d-VUUw@y{Qh@_KU-x&we5j5P9cj}g+ngu*}nP=g*ujvWC( z2y+{9%iw?glxb<+4_?1`+mfH%3|h|uyctkgPVl}*LKe*BQ>(q{pdztn@+jFH7^9Z} z20q*L*V~M)Va;TdQE<ok)aoW334L%y2w0O52S2*1utr*Q`4SF9=7W4A)z*bUhqy@f z>75Yux;F!1Db}@n<ctmP?&!>F{#*2IuGZ02y?(?Rdyb<+T})4Jj^B}5?mp+4$9^yB zgtf(MMJ@j*^CT2BSgy`R7hOQdkyLCz5Ov-?G~YA9e$~{es8y=y0v^3ledK<?%I^w$ zoK${YN!CR2<Xy~r92qjzz8_D7#m$Mw9{-lz-!V2$y*`}p4-EZKKWXNem;4)|jvmeN zJ+JI{>pzZD&oly+bQGJk=V7((*gH=Y+zs~@E5BbMA<B)WCgLZdeOXL;{s{JIgkHxJ z40NSc@&KE>cBxSzGV8tL^)mYmo<@ZLGI~a_8IE@tS_|0i_vH4Cf54#N8}S&Vyojfb z_0@HmXG5h6t7iz6MFbtSjh`EiZ%Pw1>S3?v!(9PVdA_qNjR%+CK5l2uWLJ8fX^5Dx zzX|caXYpoykT%<XNIy1J)@<oxaTOqs^(#1nRX-~}82)3+8^TGLX$7?9XMdxXd5;E9 zoXuhYoDlB@N*(ZlcK!Y{DP~3!SvgD<CZ<GYqvNjJ^#Nlat!TM>(iC24AWnM$o}t?v z)}DB4L|19Duyi*|`=-2o<?X_iUrbu1{Pv+ExZ?xIOu7XXi4Tlc=ErdKttk$Wukk-= z>g)u)A6O71LmSy5^&<%Y5Fr{>Dc9L>*=MhWV!{>vz^wLujfc+7+1~!uQpo2@%$umo z?Yu*J>9aqL1VoGpf@cU`Zf>TKGhzA<{P(;}e5KvPNREI#lmMD|8GJV;JPVE>8n(0` z?|ZLa^ljl@{qKoSW0va$V)BJ(kQRoYs=0i?`~5M#Vsgi6$(Rzg6Sj1`;DPpDZiPj) zD8g>*vnid;=fliI2*PjF(bn0Og>#vitc17{@LN<+vW(sLPyivzOYzzouKD!ML^w;t zBg9ko)pcei@dv~DnU&|x*RsKq%OZi8G3;EeWuVS<dfJ7=?2X$^T`H$ut5em_`NCU1 z7xh9dJxiJmaM_YPpa`ccuKvp;8eK9Rlz3q>(-o2)N*xmP4+C_3dUI;d1yi!<C{gdx z=KazFpzzbt|1%Cj2c<aU)IY$@SmDlU|0S1#a_Q~GZ_v9mm%a1=WS{}&_ZaHuUVtF{ z2|a(yPG;$FZ*DxbMW#fOM&Ihre1@513nmA)U0!Xn-F7fLd~CI#*dBi;P{Q|?<fd;_ z_O>%wIA_IYrSfUNi)vwGYN=P<%9VsTr1P4HZc~cm!Ry+DMs~EHDZfSu>39qn01Eur zbXuL?!ksQrD&e7Nz2m6AFxmoUAp_$d6(qn}^4R^X?GI)}8_dQ#PDXe|@0|T7g?AUs zh~F#|_6HkQwdtpKib0wK+OD^ee=(Zk2x&5H^_q0;Q<WX!;d?)nzpkpM1zG%&60!;- zNtgRNOl%GV8&(07R6G$NWJrubi%?_T!<YrpXH%lG!D9)fU;6PzEug`x)bDJN-Q&x9 zfsoVl*{A#tf4#+3`VbBV+idV7cA>6>LlTwe>>(C&3$pu*NnS48tyqPQsBbVE*vPlh z^<Y*-Y=h&z%DQ+wAzi-b&@63br;Nuy7Y@7^U~OTeD?e97m988r)$`$UT8u}OT*GJ7 zJ2lZIqb&P3n#y0&b;8m|NU;^2M`3q2VWb^c-&g9Hk3$F&tGb&gEERf#26IXNR~J?g zd4F{>%*1HZsaDq=C_}+~QoWTTcv;6T{uu10Dl|g^5`$<7A=`LaB7D==`NCKrBRs-l zS~2FCelc8Ve~~_}v?qVqY^y=hnlKHVvW=Q8)6e9+K#DVf>GRm)WWdB&wiAx?e}9yG z&KV$`E?wGkA}(U0>!cTO3QuWtSb)GkB=7w7_JrszeO05fa8*}%F1{uf7IfiZZUA<l zl(6lIVpdMJW9?mql@4QO7>(OLw|!C*xnN^A6!92693Yx#_Q0W?2zkqkp;pnGzG1z) zZ>6J%Zm5v&`CoR~hVvsxO`HD8iF?$2MW#XSS7B~DV3>UXTsFp~wWj4ld=hfz@WZ$4 zW*@R|dh(_M!<#xqKX&akJ()e(e4MI;tzg*0+QJ-n>{j$z|N2JXFl}8=YF$*`X3Y1k z<ko4*$VpvA1$b@_j!brNlanLHp*nSZOyc56Y}<9>w$?69mqAAp;r^Z;^Ae@Y5}fH0 z3)2lOTw%Rbv{b;{grFer2W_Dy!MJL`W(*SqJwq%fdOgWn*jdO))y&aat_8ywE?Cob z$ZEGqqel5qqa9_QVbDlLIUNIFG56zYKvRAk0j14y5uw2YT#F)P0kr7J)enm#2H0>s zJ&DtM*P#iL15ieW{@iR|s5Z#x1c22eeA%AxUVQ=2yxSx}-I}`4SDJmB@zQ`C=9M@> z7wavaim!HAtwnRdL)28Bc`J<zNH)f{h{j8b_TOe%v_WN5{D!6*%)86##G({e<Slp- z`sMt#$zC^nnk<sQ9+XVc)4n2)8G|3n(1Z9q`}<~ZXDYMKk(IWK%n$DqmMt}OZc&tw z3gfKjA&)giTiJq3?`G-wFZU0g&}e}z@Lu=ks{J-M_Y3<COdt{emontwU?jkUtD+~$ zgq}v3ft17&z-0I#O-#(M*~6;)rt5@)haw2@9w3TemkD=iZ^Mju^kZh_U__R|D$DY8 z$Jt|r301^vY^*eb13oz#$*7m<itFo^fH0vG6?|1PO8OWju2m~m&;k4ONbT6QqJDZ_ zr!p)-<E-Mwl9#Cbq_ZDkYGQ94=sMd<?`syN=4xor&KEPY)0(3-E}Z(?o6oT6ix@`? z-#X6x5#%ZObXR?}zpY;)bwD4!<qeaG{Ls-*V6db=_mKpij65GwQqzx(^Q&q>&50Nw z8)T)8J1YD~4o1w*^&X}_dOA7sv@!eij_ka%zUGWh#(|235P;z3B%1{Zyv<SZl9mo# z>k7v*VOdLXR=;A*Fw<Mz%AC8XdVD5r|Mx#W$eh#%EU@z^QPtKcEf>wdmb!Yd(Pdk{ z-M%6(9)nR8lz2}bmlE8H93OXYd))s#I`kyn#2z!h^&5NDFPrdA#8%JtUD23E(dfrB zC*=_4K0q$cn#4##BcJ<Mk9=ZguD1LHr?L3U)I3qSy!iWbXz6HTqu{>HqJnuMSk>4z zsa+De98~A?y-zTVA+2f)W<+dB#cqLz-z#wh6uQ6WEF?k<=GFeF5)6<7=qMMjM=zWH zgB&JU)QA`ZLv#dV1bLkPIOHXl;{J(-$&AFFF>J={xZ_c32wT6jx)iiQb97Y*#zBr) z%JoMz`JOcSs{#Jv=EflXbWf5)KPb`>y>Afo$-yZDbQcVrvJ+>tYI8YBVw8gJFQIt* z7xuPajC|Ly%)+^O$t^L5R1}q0H!A_h6t~1bw9<#fXCgh@Er$rIH#Phi@oE8ug&9gR zM@M~HruEyfBJj~`!I(!Z52ImimRa|4#_8(OuK#_J(g4XGCtS?cog~+68O6Y8c6%fL zb78u5WOCr}`xspSho(x;7a&A~M|h(NKk*UXeRr9V>R7(w;Xe%HVspflf=F8#hh)t6 zu5~NiAl%U+UA+4b5Ui=L)HVO8>hZ_=5QUcx$L)Lf9}a|XW}lQA{KN3Gy1)yS!|PCB z%wN9>vnS2F$vLg3<EdS5|0QiO|8wSdm?6N6FUDU)F($1K+S~GBbXHzWo-D0-$FHNI zQkNE|rVKRea97x3IIJf~nrf8F^O|ktG3M{HO}Y4v4n!Xl1?GC4Kt#qcwDf!n9|~$v z;@g|i)gMG)UA@Ihl(kD*8nmC{FFGr+9S}9!Pw~#5C6l>-{1RWhNzKvnk}khE66Gr8 z4g*AuVgqUeRz=Tbj(r803Kz1=W<DL0#}mLaS>pil><1+tIGZN&E0-G5Owfo7o@e38 z#l%RSXDJ9FKo9pEx(0gVCWqkLdHM=@ezv|UQ$1nOU-){#;~vGF1k{u>mtrHbLA@KC z7LmnO0po|4SYM)*@Aab<qh?Vo)=a%Ouc6s5w0N(=hi;iyen&mAq3%g&Q!7csDHzw) zxpMR4q-YJ%uI_2PpNT-lHs$S^32Mr_ns$OxLT1+=K)z=qV`al;>I@66hGBO2h^K0o z-(k<pF+1LvZ$1|(xvc_Z<b6={WtH@cdVm7g)p5F(v7u8@sgs7of}fL`k)dm{j~^?o z=^8OZJRxpv)~<D`>5>16=Sa?7A9CE1k!Qrns1)hTX$v48hJwQK0*YL!F6^{?$6apb z&uz_K&9O4AGF(t0zdj=GeF~e}S^9MFCtRlP{|01;kd@eQTLFtJUJsBq><5k*|L@6z zgMZx9)zwITtT@(V028<R(&bGlt_2$Mo3_<k7S+b-ak-Tc68O=h?<S*oPhLjrjN+)v zbtoVi^+`AVO%DqvCn<mN)o<LC(2#X-R9lv{$AAS@FD@K~+<SY<K2j$)kN==3H@gV; zNWH16bZJ<1o2EscJE1IdzWX3|K{0Mm=t1Gj-J5ikb<lt63_l)pz5A*Djl!voFtJV% zl=sAjojQuE9vbuHi;H8d+ALzVX6RW(!=Fi;4sXxBVSU7^d&}PT;OYhWMQ3}!W@&k+ z^85$W)A?zNJI8s6_L@C9vQ#eYs6O9%6jd+xpkrH#bLYpa(7OU$Cg1Ttys+wCH%`6# zXXPq?Ke-c(vnKv7x}~6Xc-m1Cu&?hWd+M9#e<v}2;aqh!Cy@Smd6$`5m5q^?T8K1B zVeZQ#^3=kS$%*Y+@Uso@=AOIv2Pr8ALZzNVZ3cm4>&C4E-uWCx#&V9crR^!Y=^634 zDe;PiCkG@18~1n<amK?QvLlQNIZd8*b6v+S@6c^lUV)aU(w#|0Gtlnu|6%Gaxa!)r zrO}Ps0v7J>zHoPUSR`0*ch^90cXtWy8r%sMG$FVJcMBeZy?O3;_I>vk%+|*2qf1rw z8l|MzXn+obx=4X!ZD`Ael<jE(R=aU<fR=%~&n99o8M5ncK*)jea}^)X)ff>`%|wid zEWnx5Xo|SI=0<(Um!tvNLJAqu2jR{GSs-%xJ~AtY+qm{*H5iIIZ4!TMk4Hi>KSC>& zal;tbNp(oAah#}L`($3z;GoESLyMjlB{vmqevLOKG*&V;8d}SHmm(f8G-vccao_uL zj#S@sy}YpWkU+*p9gGee3V*^~cVqM%a?`(0!trP35@F0I9h?kk<;@H|KTg0&(!%cE za5dHUzG2W8*uY8-E3hQpm|#q??u`o7{U2Cq)<g;!4#eUrR;M!Nrjhok)}u56z*|$X zqbz?>p#a`95<or~35!FINO#jqna=RdC3NA+R-x>q4Wly8d{>?X*`>AkTCARHWeJi_ zO})XN)VTFul)~DLO>$}G92P>E(m>Ybbf2|n`A~?D#NtLY<1O~Wu)wB%RcGkhcyy8* z(cYI`dQh%z-56FA@hjQmFUV}*iR-d)#+Ox>u^3^m@pB8YIeBcbvVFZ!WbGN*w>FW5 z39el6K%d{Dt!9je(M^3%miGLwik?sIhL)=llgCrpcVGJ2KAm53w9L5JhC-<0Muc3e zu`Lz3>J9HjAB$=bmtJ@kGn|Afu6hdp0k9&kUr+Y+Vk|ngq7Mw~Q!{d$gqwHCrHe7U zrl;X=&dn}-p}UORO;k7}DnT%2p;+!_YNlH*Gw&<DtY%CZ#vqV1qz{#uc~p{;f?lK_ z|JZN}WwncMED0N!%X^+YpWOQDow6FQN#<aqjlz}STBZCEiSzp=p$pLYv>$9PKFa>; zvt93OA|$VGn|UvUH`&LkWEMJr9Nyr>ezOlTy3#}A=2NipM;YFj`opUAO=p@;(GzFn zpUfSt3rj1_Yl&Zdt%U2x{#>o+Wz|#A7N!tdpjPf|V_DJrHq(n~>P2kNx_TSWc6J_Z zYTsjo|A4tnwaS_9a-gbmxW02#bo`*dku#64P@aTDgCCY>h8{~v&YfcYgNE#Tf%oj( zO!twk_<f-t(tX{!&(K6&`vXDdj*E?2diF~8oR@RwpW^HrcB`Q%NlZc7i%EEu%k}Nv zFJQx+IF4cPp1mV|frQjIO2Af_)MPyq5($b8XGQ%#mH8+cB@W#zUzRqL7n&K-Lspk2 zf;s+AMGGquXNDpljW05#8XNru9qTtsTT6P1hHN}FCKAw|0k(PnlwvbJDj@@fc_`h= zJ5G#Ys1Fm$z64+ggRTTl)BqGj5TZwY&r{1kIp~?H2i5LFYrnqQ)B!kRvUeHkqe+jy z<EJGZ6Rg6K!CA<~yAOVhkrvYe`f1QTEL{x{C2L15p0v{=b2^j3!KdD%U)he`dH%fF z{gmr>9FJG(7Hb7Kk&^*);m3x;f7_oot6~Am=z4(I-r!KR|A6b3!fcFaaR7asI68R~ z?s`%3kI>WYEO{srSK!YV>^XLvVAhV)n0@>9R#|X!J;<<02`Gz9+%_Iw7N>66`M-o} zB1JO<4K$`Shl!Eo`P1c#ap#Lh60+S+%(@Yh#=nH_ZVz6WylwsQi;R4mea~+>XRTw+ zuBLxzahI=D5nTqDgu%mILB5fiT9{_3=4bPH9p--+J3lo9?3mZ9Y=%jPdqFIp_{b&# z;s(b<uPRen@jG}FNvtH{caRI+I28Lx$v8eDS!m}6R(~&d>@eH4+@rlhCPX%-szZ?% z157;P{GP5`Np3EtN46mN{zAFh?WK3IDJN}8j=2qvcMELn`Sewd?D)gUc#cCB^e8wa z!{(|9%`I-@Q=P2#7lL0p52rSa2T{VDNaOct1<57W*=EF#L#ob&yT%e0nCJW@tq`ru zcA~AghVmM+M}f!*rjn-0lC}8%iF1+isi?A>s+y@xOa3(JNa>wni>%c4EP~y1p8O2; zrU9mD*qMrjW4HM>T?G^pP+r<_Gey|<atIudt*{P%mcGYzoJx{Tvt+o7-s9ZGQWA(3 zg!7G|8qxj65dWjM#(R<kpv&2RcA+QK^!c{D8Ha>Btd+&BzO%aCElkq-xvV%l8nv6? z>@WmR&e8-MmhCUy#ClV&6SH66)T-N)ku*u&m!f)3M*5`NwkzlcHru_`srNr4U>*}o zW)oQ%bu5}_vrcVC5yY+#O07}LjBIf1zhT(@?Q_#9zHQa!z4=np`|yg2!7_S>21qnM zS-pMgU+F&ij;Qk%pT03sVEw-EIesYd?Q;9h`F{FwvF24*j0&-U5m>dlz#0uB1<_`f z-sRi6a}<-0y0#d^C8PmCGt*b>cWQHtbHIE&Z+n-`pmV^kLgH7|24Va-ObP;GVi-k1 zVm1>{K!43@IC$y4zE@TB%>8Z^Eyzg;M&zPXoMa8T(uJh<s6)-*xqT<TrZ5T)e62j& zz>{KdJX5p#pldB@LJ0!c?NkdwdO?HqmeH;rQKMd`p8I3}yT6(b+WVrJi*utFCyNA6 zqxGe2bajq53kWIn*qj;(QJ=0c5Rp|V7g4CA#u62yBsiO|G+=`Pi5xyBgeou96!7rW zp!HzM^*Zl(ZdQN2%RQOVi}MdKGZb3b(=-Q5KIfWIN+<wO->{0+H@y^78gdy%Y}GP& zWQg?t2^*^^Q<z8E?2MY>W^+yfIxJ~=oCm5Y2>^%Itfg<sYcRv21{Bm-s_d#Y?y`N@ z(%Wf-^wgA@5pE{biuz#A-BKE}0R|&2Drf05=$B&FRa+sX5ab<GWr3<_KiNe+MZp50 zH{qHOg{CEKk1ESY-=2Vlw$U=(0Vd;ax+?Z9QG~QlXrZ*Z!LWj8maJpTLgT`M6gTAT zRG^=u1y|dcqrb3pj6V}D@*B5(JlmD^GhSVu_L=^kSK!#`;d9t;mCK%v%?dFx%^%K0 z>U^%pBvAIAFTB03B6#63iF7_Pc&V7kIle78Zun!#tV-gs_I8^(U-KjD<Dh!EFuSVV z&93k-VKINUjZmI;$jLQ4*Oj1Is4juBS*9POYkH^BCqK)JpK^pB`m{lb`@Nq4koMQr z!(Bq(q$T&t{7P#!+T8IMLrWORU;HG&D5kKxeei^*@G>z8Hw!0ckER`ja>`9-bU;sC zuA7AdAAxX{g>4lCjv|~2DH0HJ@|Cy!!u2WR56IVFcK;ugT^WlYYM+#xpQu!$+sU&( z*+x!0cYpPn`K&+ER$UgXzT%}Hkn3z_YvZS>rP9`-g^#RH@F5an3%DQ;0|a#RSgynt z<U%?~eq9-m=f0{SOZzIuqZ!}C>%86NeiiVx{d!2p^mV?TOav7)wKr8p_~xbX4N_#I zD`B#e3?>AtUMm1hPB7H~C{i$r@_$#9qNB&Mf*X;2jNRE$WEmow#)HEE?MO7bT9qDa z%)&6Sm@QQl(A6>{?#(&05jKqIP6&eF;2H6If2O@FkAm5yHAhCCc|T1cyK<$JpQ4)~ zDO%V@X%-Q7<wBb$HIZE7Ts4z7?z3Q~;TX{JRv7a-dmL*l&q+H@=v^DgDtK;ID-*rH zk@aBU7?HHg9g9#TqlTZv?K`RCn$Yt*o=uK*(W$P*i(7wo%C?V-Tg=7s<Ltu+Q)2Im znZF-NyuYoP_;+#+yst?A3%N*-Y>4kIDH)<jog~CmZs&QPH>US1;OyGZSNbVn_W?>0 zaQ!A=JW1dj^Nk@p1(DO``iq2MOS5xC9$>Jtz-N6!fF;eSEq%Gw;qLxxW2y5-^$$-K z@b#G){X_cr{6BG!a#B+|lHurRUHz#~LZ{8gZa}8V%y<4%%0y%(QZVI$Q5d$(74!A6 zYHq)WC_-_^DdXKc3<&wKL`O`sP>3u4<+{MhI@HSvWoVc4ppQ!@yW6MBSNrGk{)dVy ziP?V&x3o<CSFlcTZwk<QdyVfrt;J7|`2&BKpaEVvU>_UH0-aJe0`YJT;Mo)Z@D{4L zzz?+CB(34WyI7o4V9N1|ox$M^+W#M@D)=WRNm(&vI?PNXf?YF(TWuif8;bFsXsl(5 zY6(1AUKi_@fqpjoSU%wxqicDkO$tL(GezEwA{jSCjhWs;<4=oim@bAU^`Z2Ua+Puo z7(lWiz)#(4{3^#%o0>Y})&pI8^nZUy$flJ&o%o3>%vI<U{s`EZNf^nD(ZF(%6<M9t z0_Lz0*+{Humf6HgiMfv}xBaqGA<A=sE%WZ7cSUaU8gC+5nb?9Y2F5t!tAOz7NGo@N zc+Z`oa^T;ECenysSBsY7Nlt<dH`|*ReGfWpbz#4nR&8}kt^0j`4{lz3I%<#P@1xr@ zO!qx6*3rtf?3iGZ#+KnGVFGa`Jybt+G628T+-i5fxYv2T+Y?C4R}&Qq9~2$sTRlIn zE-QN`0M8BT!bsI}OZ!I*<c&yC*EzOvCCc*SIu`P{7+Hxpl@c!A;kj+D*SDCOSYbcx zVk=jNB`atS1GhT9REqKImTuqec5%BnC^5}-%Rtoe%)!AoV0HbJIadL?2<+9GiXnsr zFK-Q7M{|5=Hr1IvKnpzNckaK<4qa$nor)V7KvCTF^1it3U1RUh<H-MKPG~VYP#MG+ z(M;+aCoks^l}tNQ1~?TWYk*+TzWrY*aQ$#Z(0GN`HDH=qf|mj}hPWG0>@q`FM2f{W zuKy>E5CX0!B}`Ih=B9FvOrl{R9cBze+vS_}UkwX#b>pOx=2Wzv=x{nq3t^dbI?)=J z+}l<ZDErnCNtvJnxK&7rnfD9}9Y#cMp8CIU^^LGEO^1kFaMGcF!5*)T1IRe~F!fyD zx2O>)a<a<h@#gFI_#PUaSs%7F4-~ygsf3<9WOG>Kav+v#zJK>WfBPZ+dbqR2U})Lp zJImkFx06}LWB%*B?~T6<SamIUoiKJst6*@i@Z7wq8MziS-dyk589U8<1ItoSN2LN7 zmy=m&v?qQO)-Dw?t?_q0QPH)(ASvV_X<zR^!4CV5=ke_cUiN$?yS3&~wM@1xt(|XX zruddp4iNY#bgE4EJ}zrhWKAD(Yi*yxP6yN>3BVllfQ5PNPZ}-U$gKWsH`Og>xIZWU zC+@=<_q#d{z_QTL6Gu@hYB&$_8DwG-p_!dADe?Sa2P{C+;Pi1~pW`im(`PR6*=7e( zuLj?I4<;-x!qR6#*(hbv&VStEYZ%cRVz_}N1)YDB%2yo;ktjvPFoOu%ssF<ui)8;{ zWyzmxo^a6fk`i>G{T6y9K~I}0izeH5GRKrT-xx#`rIpwi1#IoH8poP~j0B=0_JF-S zg&9lq*s{3PSQP4%@A{m^3EEM^tj}*}+ejUbwgF4t0fBGcb*&F#kLwymHC;m5nL?DF zXmqr+VM!pwV3cM~3=>3=(JW3AP{G(hsAD|m77w|(x!-~BZvhB35s5<x3M|zMY*nZb zOH0>#GUj!c>lMF-yS_{3`_6VLorT`?n$w88$Gz>!^R{FNhy2j_#5SaSs)_1btkcs5 zr?C7*5p_gO;W+uxV(YSW^<&FzWGy31@?t~@2PY}cxbKQXf4AOKC4nDjcST008CT~+ zuISlzT&Qr4ifAt`0r{_&!$2FKv(#kz<6jT3`#;q=0=Fpyv18#>J^rrrw_Pa*UfzoK z+g-OgQ?S3N==W!NZ65enZ{yNA`R&9pp<RD96@+>RcwL5qXDTdT_qX?yeXoWaeMD@l z$GwC*v$|quYo*KXJFZ3QH5B7P3sDV3lgac79ZBl8^fE(e$O>fVa$=8WdPWnIH8b)H zf@OD3H@)Wv(wyBC2=y}+do+h;@{|yD6wP%Czb=;Hjgbt4>gy~1=grsnRArz|qj*kT z^VAh?H+0{w$@Uj2{E8HC>TEuOhftz3Q-6_Y0d9zZ>CR4~@3{6yElt^nF-41>wc#O- zmn)e)Qr(lPJob`G%}aFUXf<&fNO75d32;+9M`W1+n>Y#AGv<uXKu8x%$x&%$N`pj5 zc_d4D4LTNdlkgnZE^c4&45Y>_^{#DC_!z@8i?+S!l;=_T6eR*h{GJ+ul>(!%JDvG9 z7ajU@g$Qei<?XB$v^9-}|9;w-5l%<S$$m=p`gnQ2^j5PBLSu5dcQeL5NMJxoIm}#` zT5b0StB~boM!v0482H~eOpE;{S$h)qxNdrT{q6iVd;cuVaQV_|N52ue2|p71DNl1J zfyy+Lv%H#>Q5m8%y&5__+6}pQxV~28c!->90Nsp1zZ9(2+3?NJXedv2xa5N}5TyLs zP^ipRwp0q{9Ip*#Dtui#Z~Z(4io~HZIltzn`^4xUeyUW43ss2!(;cFVMWsFEnZlO# zF7^qh3;lv!it)EwQCi>2<`d3F=S|@0!&}kFvH!!XUwl;tM21J_f&Hb}`0mp~;95J3 zoY`#*(faqH@Ocv>GNKV&_ya-sEIZ5y%DBNe;5Yow-*B$CW1Ll6o6p#8%rHVlhH#Yr zbGV&!GVfR%hK3A(;6-gf**b0Ix#v&IE2UBQ&-HcXF?9}8tBXA+K5kjPZQG;^d<Jx! zA(?n2EhX7U6TO|yv>t1TkuX6|Gw2x88uJsyw@J99r%-?l;pzR2KI2}Qwrh1-G+np3 zy;^fmwOc)}`LPkaL<IJRX~N#4^F^`p3ixxK$QH0IpNod+{Fd{^nC~Yq_;+Gf{15je z$LsK3Z-2%suG&9M*z1Z8+O$^-v^v+M2PU$1OPe!Rv6-!#4MV2W6?BD-acNdcr##%U zQA!BIxnG0+L1EEE3>|1~u)NqWy0P^ftz5~f?dP@4M+RG}2^Nut>T)7SlW>0}MBW#i z4zuaZ{q~i5@3E=;E;nG4qUYgM{FXoP;qrAy{q5}IT)m-4<e)xzVaso_z_ZOAq3GEf zjW5@E$dD)<6%B>>;=zMQ);PFuWCzaw33%Y7H@NK5i*3D?^U~bH*oZ58f)t?4`^%F> zw(T0BTr3A|W?**4;t$SyrULk?GFzxzo`m;8GgaAJad1;?lC^|+THK*2k-HkPL>ZCi zrJC^dluq^A31$UFE`s}U|13#vbj@>;(gZikwn_#Kq!rB0z2m}LMQ1s=D(iZy6f)}? zB65Ggu1^!ROo;Ll?J^uFYZzj>YgxqkD>%!z`U5^3;!K}R$#F7Hmtu&hiKl4)z<(Zr zYp|=|v#dplWIgP;W0?%O9aHh{6qfbztv=fPE4uk4EPgfncBB3*Pw_JMHnN*2+Js1Q zIAbU%@_Z5a*uMGX*dHPUW+NOvN{9TQU}9EUrZnOVjY7fBB1j2y1phbwN@m%{5G$;t zXZQT~xD=vulXCPU13H&f+N5#5ebZgH3PVru`l6Y(?^>4un<T|99r(jW_$NGpldRgb zTwP~|*!*(mt^BkF(r~O@N9YQr9tP65B}5N(Qny+z6xT%VJJm#w@9*3$q(0lL$Ns>( z?{Be^w~4R27q6Hqn{THsh@n2_MA4@Xv{P(j#rWKrlBG^$Z7T2e7P&g+iDT2~lLmU2 zaO*oWI^({1blbYYgiD%eGb3xz7MHL_ZM{#T(nQ2$XgM_-p}Zi+M_oFZQ*QElU3)vC zc=~bqoGJEd{RSw89>w3#DBkvjDFPn6U*rQ(V<sh9q~eTF;9i=P=;=UFI)mw6a(0#J z1SxjpXOdJ?|ILy%9?H%6G^)a_vSYj)x|*;gXjiO?<LpD%c54pu!r>D{!JT!>pHp%? z^?U_t-{G2S*xOw^ta<5F4IzMbw5c3q<{a-PMVCmE?F<*UX}dfP8atvRgfqb`Quvg^ zyv@2;l#r4`EF)6;mz^2$7h|&5I`OXO=fuSvhRa91wf=i?`<ec^8-^lDD&_-pDhEiI z1q~6EIa=H>H)u!IoYhqhk$@4lINC<C!)3Hb&mdTVyG*9lwhkP{ZARyl!(gBDu&mGn z#b-(8$rJJfN_TFvJ-#W-4*l>=b_2o{?iVv!tR7q#d`ddChoF@g=cmQMr$qnB%eRd} zAhMnZkop6fJqK^b7M!jkxRG_%6xRP5l!n3YSe*<&7_blCyHSN$A;KIW${aT}{Toc) zRKbIBPL|kTiDXZ_a2YHGT&H6szQW$%!a<P_{gaNgzQltN;CAk*KEu-G+-aZO1Uo2< z2A{2B`sL3s@y>s(8`YLsazcOUGnCo$UoY35mE4Z=367XO@~u`ROX8zABL6$HeWl)Y zdp^=|v%}mY{lzcKcogvpk&_S#{Sq86MKwiKgvzerI)Xp~8bve@^>tq{aYBz7DAzV1 zO0X5eU00|q%IC_H8mgf+XG_e=-yLC7XB4f%+F?3~^NH{!M}au=#M<L7L^y@=Y~v;C z3ig`meW~+)TiqO<7^hPX@+m>7EUOU5Kxn5AhS@%w?_9&)K?HGG`BJ}6YaHl-!s_Jk zg6r3lYU~n;{!?lH6G~2wqn~5QY|Cww0}Upj$sJ8e@2-2gTF&v6G&&3|%k-4@O#6i* zi5us)@}7Fj*EBskTxwk3d#H9NN5V0g?!Q*%pB0C(@c)Dmi^`WB&pWb-y%J!&U0^QG zg|_$_O)oy<1U~K!y*WPAU#>mAil?_x+&(vhoe6o#EPemnyqUAftNOA3%*l!V$!b>3 zL)E2#Q$?eiR-QtcOq`}6Wj11<HJHa)zpT+zv=f7VpoeH)&$)y$#VZvgnUzToaTX(i zrw`F5R6FMDK;h@!N8m$+H00sl54co&#pkBb=dwQR1=}=Yy=$U2FQA?wv;ZUCv{Jgq zH$e^-u(uwm@KdP2@)@&8u~Ry!^1+hOb)nNjqDW?4c2<Rni69M9bqR9Q#MV>s9k(X5 zlmD%X8-sBJc~~WDDRe}TcU87s=P8GD6eY~W1>b|_=bMl6*SzF`OXg0(#hy$b-*(fe zK3$2RJYMhX`$MG-kBogC3QAM3*Hj)KD=Pm;7%}A4JQ?F#1VoY0N-eGDha1c{Z@<8O z@3OmC+fyS@>+s*lEC)96o2B}Tm*>aLznSKzY<WhqJLo1wR_?BkL-NLdS(v6v5yOJO z+X|)Z^Grg;srtO}X2iB~9$0e<I8YkZbb6(_pRC2wjxrTCxbbOG7<5pyV0da+v@n?< zNfWL3IP_6G9a=~k^+1P<Tpp)2Gh*C8&&n`SQ}JikN^WXb8mQZs^4Bcz!Fv>x2poB6 zPLQNXVf5ZOM(n5eIA*eDBSBa!8I5?$RE<fJ{^wEL*bNC_SgIKXU4L}Kuq0fC^<sF0 zz444R0U9R>cF`dzB}yaoP?fTke_W+e2RxZPm%09%?Y-GM7n?;CQ#}<a3#dSz0<Pnf za_x|8`{5WCM$glj@;#a*R=UtXc8JtnCq<VJIbJMfMAaQ39r3!g9Wps>c_bNr0?H_~ zyk6vgU!2^?5rDtS)@sXN)ww8JS!b#Fw0p$o0u%hmj9xN3=U~=lSny|lcJtNS{6?(K zu%!mV!dGQ`>F50Rhaur@2Gi+f^ev{m1k?j#0r7qHvE$1*mNgKhfp`@~#GcyDjD4MF zZRGBNGDc9d%F@ZC=yDd>P!r3?c17{cgB9%*>x#8nVir%Rb8yLKg^1_FQi`QjWuz4C zWT|->i!|VAnIx&DV3o1xWuzpcJ_NyMV6(HMjR^4<dBqED#bGyOfdz_`#OPEd)`R|$ z9a=?*5X48tRjAd4*G-XBm{5+8rcQ#ivv7aRh`;iXp8ZX2&?>?uH&{b!pvX2&%x~sC z9mInD@2T<$L+38U_8!G921SNOTUP??TkPkjj=anas6DZ|1t~JQFloY3AlAb%WISHe zFGaaOTTU4pJINMm=UY>6I{WPis)Cv6gfS;;&Mh((=3!wD@J&lrJ=Ua+&q<Yh1)NIW zpSbLI63dmGR?})siQh{<-a_5K)67#B47HZKV@``dcrW%pZ{H4ZSOui>hk@<*l>%wu zv(lMKV9O+_s1OvY!s#^>7;)nl1fY~Qcqm{u9{gqy6xD)C$}Xvv7KAE87NdF$BYSGK z^V3`p>%3NuB^Db)5sRm^YM$|{Qz_V#0Rb!(#h>fqIi2$PqouD&94tv)SXz<_CCY4l zlL$R53M?!FJoa}g2p@J9Hy%k?Z3@xH)r3RWkp*^>ZXbbS@#MJoL<X_;BXI0quG4~m zLDH`UCy`43iKB#VXt!q>6Th{IKm;|Nk!a{btvgQ4=UX2psejYK@iq10ch$`|k^_p@ zOM_;x`j;Ae@uvaj-)7%mqG^G1-id?GIkBt?<t-DTz#r(PV0Rpp7(|w@$)ON9$@8+5 zS-G)u03eNqnQVN1<bHs#U?j0YN7=Fr&$*S+#RoS=%t*(xVni-{b$i12dK^39h}03B z!kFVWW)50~^S>_7M>~@ghJjlIH*%aq#|{r9H*jwjY_T@{G@jrX#ZomTHJn*Fo=QzS zjTHJA3E;VuB5l-`pNz0!*r+yOO7IeJ*{Fw!fSj0AWOjq=KDrF#+l~;uCP8xuU)G19 ze8Y^4fmV$A-jiZE<>M<8Yl}>S$&lvSi}&v5>hChj@nh`D?(0R{-aE>KL%hyi(RnFl zO{!TD>RFIw-PnpJny0g=GogNxBh~drsKr9|E_KzTp|l`@2fsOYiq%h-ms)mA2vbLV zR@w&Z)ARMQc%eRGB%FD6x?uE%0#`468qb~1VP4p!pXNx-J~{ubTV32l!&<{PS$KN2 zS+nQEp9dmRe(KBQKAA6-%~P5J6&-edzKif9|9J*fdK#J4iNvf-yUMnEgNmZV3ahxd z(v$FSZ`+!ziM!l7c3doUsU_D}09SKdkb?J|9hoTB9th?N!d6dTjZ7pZvMdr;Pexzg zVUqEEnbf*-?>FPha0LZMDym8Ya|jEfj`r7OLOWR#X&CoW0rQ~{JhV7T19R4ytW1*v zI^b5ZO}&HSRB<B`BP=JavdO}pnOWO4#oE;ajllge-h{?@>wR^oz47T*v&*^tITM@_ zex;?+1XHW`xnahFXqnD*c#QIV-=Yd{O0rZ@IdwR;VSMR)RDFa)i2_#9yW{FSP-T2M zJIBJSQqC`VK~oPuoSB3KFD(NGqk*Vq3jsRphVYt&AN8>W5bH4eQ6eqN|4tnqV>ns4 z*evx5>s0Uu?4~ow-=KEg`37osV&xG)6|`2gvo{32{AgQK(qhcR%36!!W@=p>e+j4y zO$$ov(vK+Gv}fp6=y02CWQ)nME#7-oNLJEgOn`PPGKtig@_dZ>{n<%WwJnm%1t+Fa ziF;)yo;Lhcf~^);S{7DIGDx!a8;dRrJYTb3a#PX(A+iBVaMOT+b%B);{uSv?1_RoP zE@3E(HR?-K#TqP=V)RzmmhD_SBo9o6kHrWk1nn?|2x*{^8zAP{lNlgQ6fcIms~gU9 zH7t`~yU6I-2+Vj&lJT(G7wD)NB4REO2c0pq(y`!$r`d@)u1+hQc5roV2nq|Sw)tvS zhrfbh5%?N%G`la5ofN*Ni(twG{o6E_2#0C}3F2rpbt)6W1JHw4Z#C0U^yz2h0=gN- zc`34pmv{VH-NC59$i>n6dEP^~Q@qxbi7vF*l_=u%v!l0$iMu@*c9(ei<GjHnmyKH> zb`GPEK}R`oKsh&`k1zK6j9Z@9H|Gvss`Y>j6)|VSpNk~+jYOGC!zZRuFL{8H)q<63 zIGfou9;V4mB99XrahPPHP1^xZfABz+1_Db9k}}bjSyny_&#B_11lnhzBm%|(lbNVf zczhOY<nW*Hiz)C@!LVV&O20)G79Qt)w?Ce^ovbhU>p%5&iBx)$`|3^f%nLpa-~Bv$ zZm(YR3<Rn!L+AhzuS#3e0A;~<N-aHd<fKZu9y4sd)+C{vst%OsW{q<en3N{M|JO!# z<!0H(A;3B~`AG#UPgk^JXyB%%S%EbMv$(OnA+dNQOA2!eh8LL1*~(Pdgv`jy$SIX{ z6syv6PQ{4U@c8XW!7g;g*=KtJ4H-trQ3|cBi1%w=NWs&&>a|(+>pUN%H)=pqz5;gL zWV8m7K=tM}D4G%bldCTN((lt$aopy3wO}Xa>+llVU+23;Fh_AU%JrQ~opWhiq_9)1 z$F>DqrcztDTbn7^$32VtYsdsQaHJ9D6>6wX3U2L#{_3#sJ2gZ={bylce^;iR!%I&h z!iL*I(n2DljzC~gHF+WlOvKdm-7{mAX2FCTUSXo2wdcr~2G+B5^~kq_ZG7(Hln_)G zX&aM$*qL1JT<j2{{)=XH7j)1to>4s@wOUC?9NQa}dx_>?kf7qLV`T|vyHFJ$x6!l< zQe+!>h{)z~Dk$+5V$`d)mnf7Yo4fi!SXzbtC!iQD$xl?mx}XPeE$0}p%=qmwN<39- z*KX<^Tmb%f+$JdjAvR=yHzF<f`^Ep#b;<E$Tsve?8^sMfaf~-VBX;|}DaG$XjSDyu zmf4i@;o**qx#snnq2QaIMc5rx+6AHcE*Z%d#^6R>SLwRjvGu&-q7Nn7MmU1JX};%) z({odvZ7^#F=6INqw~<>KHC8lrn~^F+7Qj&?7(`_pW1y~4f;minyVN$P>4W$hQmV>7 zwCigRqY;U)T1fm`C*$FFh+RibqStc10_nG=6$2Uut&|<V?cDtSLRBwwh)c){@eb85 zlIx!JI>f^f4wVqeEcQIV*@?NK#Ex2vd(ZO2LpZs7MD(3>WsPNW<foaa4^fozEsouW zRZ{GeLV3kuHb8;ori5vAp6Ru}5f0cqwtia@>W}$a|CL?(Va9kd|4k^PqE=y@4c<!D zq){V@xOim2_hLUCitmLUl2)sTlV3~&tMiK#R$8{+^LHa|Tgp$KpSYp1>jE5h!dfjm zqx1FMx79>+Ms(w!afhmCW~V^dONzA$JH$-B&F3S15rVTpRT<$Sv*%+9_1QLAX9_S1 zJDm>7gq%~ndDy`)SImU8cAhP>^;fu82G9<6Lqyttld(4^GI)mx(KI_rH(7Gs3%=u4 zz9T{(@{KSFRx5Hu<H=@GD+j9>e<rFscu;S)ZKLxiMfykT$h2xu#t1L8dGg04@2@y7 zbX2~mwNTwAEXQuR$g;dJeWsAMjJ{j>sx_$y)UQ3`Amo@;#UU&51euA)Qq_E@9btT5 zjtn{c`C6aj&HCEpwob&DShZ8?JRiw}>aV-W{6outP6P+q3vyJbyh_t)qw!(pwTr?y zEUw++e0_zL;VhLV3txRtw1tZd0jKM^z20Jvg#bGt)NZMGO<TX@R%SBxh_81Y2M;?- zM^!S=LTWn9I{Gjr<TxP{i8&jY6%5Q#jBr(!&GBE`XpJObW%N=KHBGLn6;0qa5c%oW zKoutc9aJyGxLC@>i^c7zVM3zl59fBKh+NmO7*8M#o*FzRGlXChD%zEqmm>4*F7&bp z{mz;WfvDpQx7;V1?kJ#F@Jx1@9y0Z@SyctU1Gi)8;5xRKNb(kjfT@)VKG=1svQDuL zb(C6d@GkYpfF3``Zv1Dir`4MH#nD1Q0T`pu0yyKB7m2!+n;NefdG+$TSRjsqK|67h zGSWF%Z1qM);|#{^lapn6gk?O@Ed^cYM{V;?<1izjw3rw=tZ%itJt&}v0SPLo(i)0p zMj7eSHqZCM-{YCJe4h5UyN-5?9VoKW-D-hxAxl!hroLOt?_1Wx49k9ajJ*WAsq_4& z&#AzduNhCkgQay+sTZA;R-`maRjMm+kZEb7yOKh^j?ST_``_DUNxM|k{X2?)!BYSR z7^T#@ot5ngnBbzg5BSVJFE&f8=Y^M+&s!RTn5Loa7{O@X=nF9#`t}Ux5Ynz&YF6#A zfAo?x*nBVaSG{6!-<gBkQ6v%g&($>3wq?}5#V`&<YuNE?4DMu5I=svEs(E;CSAN?m z?nD@G^o=p6O8_cvowa0I)Kgo5<iuaLl|bFtG(gE)nqd>2q2JrXMf%A};Kl9yq2|j^ zR?oHby#lNA*CVg!3?U6arSH67k&%fQ1z4E|M*SUEGT`4Ofo5uDl#cy#)??lEjK*Jn zLHb2VKWUz`(jVsBA!)Tw&pDv6CNC=VP6S~S4%bl1G&YO;wveB7p@F){op}9*v5Y2$ zxAMqs<ZOdhjN_+3q7IwcP+Z8eC=^1rS~<h5imeb8cH|8F2yjU#mH#*1*v)*GdvCh+ zNXY|tI8Y&X9)Z^dm#W>Dd$(MuPU4beXVl@A68PU4W(3k2mBp%z%B^UA;xgCgVR?59 zY}H293+r4fj*peYv#E1hQ`0U596jVXDcdTMNl-%C#bWW&=biL4|4L&)m5Nf-k)dBu z@R(Wfow-b-Y`V`)ebcM;@qt2zh73y4ZE_t!bd3jlBTIwppvv5u;X-L6IFEa=FINN; zJ8pN-lbqvltCvBq^CBxRj%i}g&#VRqd!4ie(jwESvNh|OAFFxNiC6sV2us3Xt^0D~ zkqCq4^VR2`G^-|ShMuo_I_4=}N$2OCcypaE`8MfLz`8#ieVZ6`q_T8|@-)9@@AokX z$3*0E|8Sh6NIq0T89r(=nH)Lq>PC0X_knR8^)%_@kQlVzi%IE1H%fEIB>VPn%Fk#0 z%$k3wupE@eDC!v<vX)%=u3Jg*pv;!86Qff+s$6|KXMQV$1@!{4UczpPhPPAPRSz7G z46z0&{Ld(K!Uz4LHob1-ke6#^=tY#!RG0qkrHOR5)||#Ywo=wE*Q@)xpXLUHc*8I( zgog^?uTm0k#xo;QId0{}Hwy!@{fo2O=KR*;+r2+vwx44DaDu94YaP_1v6`A9JE_P> zPY=0q*lFe{QuSrPGY`2|MthNw5P*=gt?%~8i@e;qIt6SQ>U{;CvtR$9#WDok?y&^& zuikm>o~PzNR5&3ae7U)eoS(8cqkb2g`K02lxkC?+ufi8S>;giGo@JZivudulf@@?8 z4)+lo=k;?Xlu*iA8Xfh>Wpp)1Og@y9bhG>~=fzHM;EHes(lO|CL`fRVfYIy0t%6(f zhfZ?w+E?kp1$XX_=P}JQtFG2hKQ^Wb%27@6!j|GI9b+0O&pDZWHluPUfkfnJeSy)8 zfa^?#N|0lakWM4AuQSKFx6EbK6^Yvs_L_pQ+o*6Q;Ze1f23Oj2u}YS5M`8>l35%(O zifQOTmPUUkEd#2=Uw;CUkfE!RvQ3>9+w;NW#i7*mhgK42o%Ts3J?J58{WWehUK8~d zk9k;<;|RQ+o`IVoW1Va}4PBld)-vTUmkjD0MKZOM9iG+?c2;SF^~ib#)>PW>(C)rH zMjeMc9RgI_Q_$<t&C6>=hK`s};29v^wz?@=x!~us$E@C<l{v0bo(OU%MTHIZvBkIB z+ZlnGb7TsZ><Q{9H<aFfRlo;6Bi9ZN)^p`FYnIJ%iKo>bo&)XV=p*4r21kea-of*+ zd)SvoORgum&=;DZCH>o`c4t>02Y2@B@j#asC}H6b=-x@#o#jMIFNw9DLeWO?hVv(a zBx*Y-c{kMd6v;8pnTcoKfeC3_Jq4!OtJd&QtikOtR5L)Cpic(MiV{j*<gOf34iRst z&rNi?zSgSC1bPX72*Ltz5oE_a_vh(Cc~*kJOSh4GFwwL2R$xS`=m;yNmfAE~GK|R` zXtwyT?-Zx%0Y#*NMXU`%WmfkC7Eh=29}+!2B$lp-%7mf~F-_K(fWMm$)Mi<ugql$o zPf@T81)H&{a>#s<Bm4aith*c~017W@5Txo6VMOew&Z_@BE1uW*80rHPZqT!A-Zsg* zaUk3^?fnlx|L#nT{e4j<6M0Of|9R`*e)G-a^wacNK$ko6LP7IqD@atPqGEl)<-&Ly zl*K5_wmjzdwL%#<dbUnZ<BOsSKOPy!i02PC3Yh36N!Oeo4p9WAe{lxP{$B*!cvQI3 zl_{M13LrDk8lf;nzjMD7lF2Fe%C~VD3>sLs9oG5c8qH&0GX40Y6G?H9n^v~k*T~+f zo2@Lt4$_Xbq+qW~Fw}^tM;psUx<zbDh6llS79vS6UvnVry)e)mI`fwh{pkN^LVnV` z@C>tG_t0-oa=?PcaedCfzvI(Z==rBj2_#=hpnlG>n1fkRi{E?5#A+OilI}n1TtAQZ z`1Irj&~cEHsP#kfGs#-!p6GKE0kf+1wT~SeK0#J!lG$?<dI)gXuvg8xv&@SV$2!-? znTn3w-Qrz_3uVff$gZOu!Kiq{Br?G)EGdSriW}NW_P(xF;(t5KyOYWv#?kzeLJuJd z7owzdPROAS%68=sP9ncqe7AHmwryPR%!kr33;nO0^V0eWQ)4$~Xf_V~7)YFBS3b3T zAhc6A)ZpfblxqD!;nQ4V)4@a(H8V%Xfk}fY6H2(jrBdZ2)TNr{lOZV*`A_E5js%tR zJDRJL=#)B{b~>ZDO!*14oP>Y*^L%+XwyJEZ373%AG#>;Il(v$taB;Q5i^eP_4lSx% zDkG<DjV*7_KcogXFWFEs1|t)g<X7tyPBj`kMYFi+aujPeOqWZvt6(r+G=-yWtmdcK zzS0+)-s(qlk2W*U=yxM0_g`Pl75=@M{Ql<hEAZV=2(ml_UE`_5c$9AUvgq%k<EQ?> z`&SB+^ALik>J?PZj~FB<7OW7KWDRK*MRXQAKY?!*#_X}mmaoH&e<m7zQuYIg>i4#P zwDO#H0+sB}FVMIB&ZYact;LIC7Rr1V_R4%9qz5)J3X=?S#ErK4a-aDWnz&n(ExKGQ z9>ijafh`wgM+ZIh*UvA>9`BJf_y|RNuVA3X6=Stqr+=}Z%5nIJv#}_=;Mgf1!OQ?p zh$a)YjqAxnri*P2f`xW>23&f(U3v>~9Av(J-(M)qF@9OT%6u!&xpUgx9={(t9~B0W z58HF2@(;CXbe4+KCh+*yK>ul|RGmH&knbRS(t#38l_s)rbsg1{76!}x(R~?Nd7hd1 zysOJ|hH!YglXZgvQHm<mrxg?uXVOd;O#(r#EYmScBK}{T;V{Y4!CjbpN5yWDri*LJ zK7S1Z0UjBIH>{e?osx2zl!=s_QKhHlkrZz!u|CN94P3PmH;?{8H3Q{Bj)MXAt#2c% zm{i*_zTyRsu&LG(0^ly&VMGAMp+<}e;r$0vTXbO3cJ9g{k!wiT!z$0hwSV{vD9aO{ z$8Hke%G}%(?Yo--sEX4&XAEct$kh(SANs!s{&mg^*b7|#ldvi7`^V1^2_K0un8?ta z3MFK|IKf7@s`sg6J&@@;$NosF?^Rf4X2eLkzS{eP@{apKTKdC9ufDz&pCykQ!}Gt= zCo?pa$`R%OgkB(RVx%8lI_^b=k(n9LaxXu<`jT4bOsRj(L<kFlW%lwQSF;mLaMHo3 z?74ssvrqI>ZOcb$q6S#9gQ_*P4eh||@R9VyF^l%K02$P4CS<g1Jp1tNZ?-z91=Iz~ z(;nxq#(iE_nZC=Xn1NP(57GOBW0>SGQOvepf$dibPP^yRXLZwm;ihk?Q{8Jj7&s~s zh;CRzQ}XmKxL2rEJ5gNaqQ*1ksv>a~;)vy(vEkSioZ9DAd}DkveCl&DPZFiT!M=|0 zKyfddcQc1QE8Z`nr8YJHS2IBgiG^#mhw2<4)e}XpWev<z%g#A=sVN(EOifer0)ukm zyj0zO%cA9+gN(3rIk9^M4j*w^ms9hHh&iZQk_<LtTzF~azQvLIno|iP*E?h<G+ucR z$M)377ya0@uQM;Eb6C^FGbUhX_F2eB!*_E$v*#e==jfOIzka~<Mg(;F1myS#2B)7* zw|hLM!Ag!T+&N4ea%)aq8T$lpS3BQdGR~dfdPz1P<aN6T#x1D{O(muUX-|spkt}^J zb&c3#$4-vRiUON&bwo*bV@eek7RnN{WW1f4uiC6mx4m{ZHdf(0?BAuTA2nz%Gz!od zq0`uWmoyT2G#?tzH1l%xx>_@9-t{jvjfNd23O0<k(#Q7`q~NoE2sMbMwII#oY(Rqp zczf1{#^qS2OrhVPaZ41B+{F2nm&soB0<n8<hP6w_wqL4ZR2%{{+PL#lfx{MP!|{Zn zds?#Gorjq!?624y4Yy;3A1*$fc)X>?vb@>64vTAauhjOI<%=aP{`%?A)0*4cnr&p! zj4sJGk5Go>J}Q&KGAZqyZl&6T96Dc%l^-d+ABT+!DQTc9%E_nq$dv(Rx%IF?-}+Yt zK<N^-G+f@XqLFjGlObOWCTpes_xD;Gq~%<&QB3HFU*>eT`%9lJGQqVAyUV59<Ty=w z>R;Qkxg#^NhVF0C5#riaPeRV*1szva&0<jbyx}lqls4!E?ZldDXbb3)Pa4lo_uDq! zd)N%DBZ9E^6bwr?OgrVLWANRMF{!9kKmR_6jhMAJ*RC$sZ2$7-_O0tp=N0elz7JC) z7Hh~>u&>rjbq$l}lz?}o=vJ&Z53?V7A1FD^<7l8U$J2f35$N%oCb0PIlhYIb%TlfJ z)@?J5#f6h(%gX{L$Gv!Vq$mgb5`egAEmbS1soD^4SWUZMub%*h+g7KS4*Z*Qjv}~o z?LT<Zqy$X^(z*FkLh*tJDUD!sy2y(43|^!6U&l&T@;7eIr$?nhW2_H!MO$%6IudsD zp05_in5*&ais+t-VUqao)?x;Fghr{8IF|_RRA%-cchgr@IFgVcOUO+>DP(h|E*{Gs ze_IpyQS5Ggu_x$fvm)qOPi28e<eg9+LphJ=fT7Y}jqeiqxuaO6sh?}`Cu2O^c}1kR zMdWYi{&q#=P~i-Nv4H4b-wMSwr^*e*RKMKTc8^m`UVCTT3W8%Vlx?K~Eu^sEea`w8 z5=2+&oh}<5L7iQh$9L?Nk|uJ-XzW4V=&PQt`I75Vo#o=1V%j{qJ@{NKh}J(<&U1V? zJq0xNQuIOCEISc#ut|b6Mlr1Qod4z4+KYr3RlB?c)nAVa&3)&4pZu~YAgr1$A8@SW z41hJ5Imaa-V2Ez!iLwA;bEu6%qxSS80>pXknd*wd&<LZMD;3sFS;2hFReG^U6E0_6 z65|Tr-cc62vPt&?q{M8k<RBgz(Quuj*~k_tAS}E1ajEl>iO4PRhnKJtPM#pmFV=F? z+Y=PlGjMADYsK5atMT)>3ZL1o7$f^9v1jP2|KuqDOTxHtps)KSO_Nta`OwIV>#ry1 zTUjD2Kq~*051dMkw|X)1%$**2$n)Rf*y_5=ee2J0Y8H?h++g*biS6Zh#vHmLfVQv6 zR2&tr!K`#*$hXdvtk^74*zs=yFKDZGziLmjn*poBoSi{F8N+i^L|4to2Da@sUE3!W zY6Z`c1FPZA=QE$8x_)2BfKdx9Ns@AG3j)jTk<Jf<%OX~#P2x1QZa8B~nfRhA{=@3C zV9{~lG1(Nswk7AZK1J-xyL)nXXL2E3fyP@ajQKuX{?ZLRy8W3*@#(6;BNy}g#iM0q z*Cx)O5-oa#wleqj0nf^Ov&P4hJU3KmJ6|u5FfJeIJg@eyx2!WG3yCoT%cm$B9<Q1^ z)+qx1zGG_5RrTgvBtPOKcd*9f`|`Blgk5J)1w0>imo!cvm09d%I4eX^17Zw@D8&7u ztnZk&;a#B=x&pb<AUfR1ry&3{-2|nJtA|JKj%>QoP&A;mpfnQC5cszuI4Q%zx$&Bf zARu^yqVaTON)=1%5Be}-Ph{Vt^9l^CrwP(X*tswbRVh<Uv;K_ZMj(RUiR*+T(vh80 zX;<3Z^M}n4qMFfF>cAK>+NEmE1#3vG<L5=UWuF}cBtr9G1s{-9+v|9OVPg5!hmIDw zxAb|tb;;l6f4$u{{8TmHC9iz+NF146<$sMO*}U@0b-&zGF+E~}ODSJFhkIzj^xp-R z*_10N-X<9W-_$c|3KQKi!-)<3_x|h#Y6@dIzD!V*9y7st^KPdUFWi#zk^~!OS_+hE zx2}DuduU&~bmFJ5UD^at!}RU>$(jz-V2K_K75$3*gA)0~{^zC1o$K4L{0*CLqDehH z)Y=vRFd^}!KwV5HV#w*{Q<y;pwZN{1)@jOW#W;KG?=*?g9!A$u1Ddb6n4dhz4urHq z%0C2FivL+raa<&)EDZ9=VU0X>VXSCve~$6LE=X;7&fkBnSiF3*JfA@#JlMlY16Df{ z3}uH@k=GrYmQ&GqOs>B^zEhfYn!b2TSn1s~Ql~H`eZ6)0o&9=bJ$Vf+TU>p(0W^f! zBREA?y}3pv=dWJ(65aQUUgy7#W^nRZhn2CDgnkNQGMuOn%D`FO{sm`o!)mdFI7y!q zEAU}+)Z^nvmNV$TC!sYW(Tt_xTuHG2^B?3KW0nnspzc_5a%3We|J$6`O^1ZwP4hr? zlt_H_CbzyZLZm1m{FW?X_S3E6aq|G8S`{AGIW*o81nn-fnRKzRX7Y)_OUYfQ=w6(6 zR79^wo~mPWkqu2-y;%Qosr3a{8_+s<xv5o+5Dn*+n%**_fEF!Mxz671#NS2kdR*ie zXQbAo_1v7k&aEH?qHR5r<6;p;?o&Rvgqb!s-J|#W{!O?P`BND9edk6TyW2U@CI{_O z;PL9M+3$%XTkN_f+c;vY{=J{-OgjlCh4?*xPIIjQ{b2=3V#^xle?S#`=dx@l%VXLI z9xECVZV#W;h)L@y&zFxMACJ%i*(shqzP#LZCq94S1WH?CELiG55QN2J|MF^WCz$ON z_|MtT*sVA!*34JRRaI6nVX!irVDUZ^V(@^-H0WKLz5}?G$F_H`X2zYDJ1<;fUd3bj zUO4lqFd3@fUAT=5ZzlVVN*ncNa(b@-;AQXU7y|bG%)ap!Jdb^FeyM2j8k~f)!>fNu zF7IB?!!2;|>*PSCm4J`%Kk;XkRhg;Vc-vUN*|2;)y56eDL@K;U6h90|oadRQx9RjZ zs4zC@lF6xBbF_Nk{eqOU@-kN^&(nRB)G<TpG$7S-Iy^koWT#F`lRay{AJZtq=2mvR z?!-v!8b3@F>VpybPo~kNbY+4zBJGu3HuqP&VT%t+K^>fHteD}NJ8`~DW^_FQ)s_j^ z9FnF?*p?<uk<2as!e$ZGNK3)oh^|Q020GkOrPJZs4B2sjRbvdR4WYAO9d?i6UPu8a zK=JE8@tgvqp5$Oq2OJ9M>t|A1;@SP}#<Xx;>Nrj*8J!7RLk!0+HRXeV=5Nsww?m4q z_}J^F(RdO%t1<b**pZ<d8jA)S+t3*?TVqjgUtS^pYK>p`_H-_KiPOrC!8GaKf83uf za$Q5DMtA^~Xr#6X7Q{jRi}NJV_N)2n`&)SL+je1g;I_QStKn>IXEy2U@4~#Em(1$5 zQt|Ej{gBhYpEkMkUZryK3eN%>*FNfS`v%Pq3_z>{VmjoIVRm@22pxC<;c~{9eB$em zah$i$8$M6>L;W=?0Z1<>v6Em*?J4)=1dZ-l;}>1Bgo?v{BAq<h-?+(LJwC8`Ip}uZ zvj^sX>KrQI0Aqz8BfDy?<UVoeX;SfiTva-9ncn!AYP%eaGNFu~T#icHW;gJ5I|lz3 zBvDd@9l@|+7ZowR?#phg?oF59N5);($Kt%*hr&w~&%Bfz5AT|vq&+_XOjuQ_BgcJc z2(~&-FjZkvqNdW^(-I$re)pT-^;OBsw)MeNA#s8@po->EK5wJ0I^ZH@#ZNq)P|w)5 zICT_ne7xV3B3oA(i3Kl}MYQaistLX)(+DxS)mJc4qEG2o<>kJT+Ih4v5ik{y43PtL zes{y!`XCkWQbf=W{W?Xp6*Zuk=4Y5$9wF~)e@nfx@Dae~w+2V87J7VeHVzzXAXpCl z7v6eNP*kdo5>5j;D>ww)a}`yc>#x3=`Id?>$T$9oVGv50q_do-At=6TH@R&L^GK9% zJdA68a0n0-X^A&3p!Z6Yjg9l27=YvWl^T!MJ4icUsIF@|6hP?rjo5mNYxYc=Hr2e+ zi4DM64NX96%DHlTwL1pLUVi>X7@%94>&-X58)Ha(w&TEL48`pMUQ4=FtlRhk2vRPu zt^36(KG7{+Mo&LY0?%Q-RZ-|aWxTQExjaDGkf#5>5d3;`PNpwK@jd>i!bC_ld^$x> zpW^^wO`v!&R_nW6(pp{jJ#^0f_2jsB_DIJ>*^#Yax0I>=s(Y?(?fl4YV1PuW4GOWz zQ|}c~%Eep;FvnslOlk=cS-@^-Nf%>vs(6vAI8+Ha-G+bCMK|Ng)-9nK9tJ}*GkLM1 z+gQB+c{d9H3s^Cee8^FDN9cI%g)bk;Udj^5ME+(TWCr@57H!Vwzkw~s-8SJjB07lV zTRfY`caTw03)DMOF!NdLa_^9Gr@d=89z+3PJ|grxE2da}V!y^@RZi=CElb@8K4YdK zs+5eeR@P&_vaK>?8*3*a%!&zR2rz@_jNr1a5}kM9BAS9ZX3E7qjFeDdnXQNIsTuKX zn`Qq$qRuib>aGj-k4Q=*jdTlA5`uJxNGaXjDJ3zKbV|20NQp2EJt8G7GJr6^NH;hP zFx1SPdCz&D_k85y1J}jg|F!OQuisj`ql9wSB{Le$bsnS1W-YWVan8YVTLw|s-O#d5 z{Z_lUQ7w%uTfTj0eaar7{%;hK?^`X$_Ak8JWpVwmi`Z*w-6WZ_&1ofs>kA37B)^un zyE}9Ij<vRjE=Y^Za&UFIM5$qo5Gc*sO=dVWUp*t#4by9?3woR?07}3TOr-)tO8mt9 z->||os5cq^QDSQ|HfnHwN%Dplf~75QJ;TseG2wrA#={1DuAYIj`}CPJL!==h;HFDr z3-Bhn4JrjZKch`LKYde&K0H>z^sO)qmGtHk=35{BAdctE%p_{Fw<gD5&ZA*oqpc~4 zyg6f$zs;9>(gePg@|L?kay1ve+UB5=vin?Fwe|u%0W-F40`Hh?4mwe6$~@p%!CLfl zEj0xOd9rG`_T*WTpZrTj#NsEOb3~s!(ETF)xJ!J^xJ;oTNPzlx6b03eI8X09G0gw= z8dk2<j+R84)cgsJE1{>|b_zzv(giF0Cnl`i9Rt=+`v7;P7-e&?$z)a0p1U&^t*E2N z#o^GE`>>PcN#Gw9N;W?JCSHYP?w!TiLC}D=*Nq;@SoslBVc^C6E5I#{v_|hnQ7;fg zVW+me9@zT2lf&E^pMTD)r;xw=Bb_GJ6;_vW!nQA&Oeh+vtT@fv>`AbnxW3u1@_J`A zF&s`iYi=eY-)37LX!YyW)PM3noD<FYtJ_+WnGvc=bCkPNv3aYHR^qcyC<1WvM*ho( zd#OJyyd>7P_lv>ZY++*%5lZG6advm+F3*#dQsGmI>Xv3#sc)XCc@idC?JQTs@OwrX z+qq(ku2*aDa0vdvD=~|gjQ{ZMqsh=0pMh8$_>raJ>Q`J^!l&8|Q1};{_)t}crPVXg znly*fAjS7^FI?;$E`V(IT(826+}qq4DhoZsp=b6r3i1EI#S(LEU!1Jpq2`g{!Ww#n zHNb$IB)vW1hyrKlsWokN$-pFHTtY0GYfj`h8l+uh&DK0yey>n=|AV#fwh;5K^YTYO z?7rNqe@n_Be@b{V-gaa)N<g$??ZwTeO#q<d>W@MaaW~zj+i10!bVSKlS7&6eP-@p} zf9p3UMMRQ%*#d!zmb|fPjA2P#>c3w!LOb8=Wl%oHvRe=R0XemFi$ali<6D5%5_C)t zqU&54Cn<NtX(AkZ>c<~^t{s5j+hIL4Q$jf=r9Q1-d4X`Meb_|Dh=+-1QhoPBoGB%h z(8Zl#i#G5j@{;KcO*aEZk{=K3*%YqdVS%LO@Ux3e;XrxOOhyBT&_5e-N1oQnm42X| z@y@Ct8k5OX>$u~8TwX4@$}QV}ZFU_AG~dAYoT1;>Gd(sEn2Q>g*j;%1L*HrMOZ{+o zn%?)sA(V?sPgFSJ+oxRHkzF%;wZ164ubB_n|K+(g9-YVRJi$xsO~kGj+>9|i>|8mu z%ytd}>d>%diekSW>WU<*b6?Zj{zIiX4!<!fJ^r|rpx%>C>d%2+9=Qk_);I5j?6+>d z;==M3*`dh~A3<u@UZ0o;sz+lbgTx0-vg72N6<7Lx?MjPQ6M($Ut>;vbz(}2mv(H`4 znhI>jH#x?{{Y8yc@xYmsVB{?z_?fCjJ^_jjP#G~6oHWNYNMHH3H)(S7mtINuLF=?I zCIoaxN(YAPy$*uuF%;OuD-Ndk))Y1rvP5hoZ2u02D(K49Txf>V@V`3Pv+-Vn@fb96 zJIvJkmBrTJesKBSrL4HoV_s8BHYQF(6p&UQ@v_$^^x{TbE{oAJq$n=`&J7g}yc;;W z)&V%6nqjaeaP9~V^=e}7o3P#d`4ts9`HQpi@B_fh`}^`@1@sWq2jfzQyf>txSdEJk z4{#CA_&^BvheYo<y@b4~r2~7tM_V8wU{wWbpo0w&LQjG5w?jk{y;dgTeX`n*>yi*3 z{guZl_~_R%Q$CmQh(E4r2r1<9oj%O44AY3AXnmYyF8WH+t+tPT*(^nc;$KR)YHrfm zB-$|hSLb2JZYY1h65#`UKchUy?wlI;p!U2Xe(kQ9Z>w2?_4-wX>f%G^Ulv(Daygh) zBzdsp-8DcH#cLRGcNd+EEwhS(nBJVrYA%HCBUiBV9)9ED&El!nG<KRpJLQdI`3_zd zsxv94UNCJg;rvaSc4Z;#xEg)0Pb<m}>wy^wVMu<@eRfuF&H9GV5N9yt$P^ZO$%zog zoQ>(Bzwpq_^drfe<o-sehWO>WXJvNttJJJ<t;Ck!wNtK*zC`0qBq0nRwLI6<cLUv` zGEyK@rvdUL1TMJvOJW&8%yct9O!IUDUt{}L-(QRJ=NRVm>wdE|X<vC(qXoD?WUrBn zJz>-;$x{7{itN4ldpxkQk5K5ioB;?m%k7UiQE%SFQNCEUdE0U1gOX@Rz`i2eG1J-Q z_ghDF1A#}(;F`4?8EeaSXS_*HcIu{re5#N9IulfoCb_uA1WwJ8Hcvw8oU)>|8Aub{ zaG2r2beyxYb&nvQ8CBI@R+F)t?sQ!K2-~+$=$vpIK662lR`QM1hU{tATI>jqcXf|@ zC?OBkE>LW#@cI9`Uc8UL$J-~0Cy8ry3p-g)J|WPywNCwF@I7barxU~U`)Z;$BDBFQ z3~_@r5-0CKWW3zvMadr<6tSUq$RF$`Y1BKDEP(yarWov0+*Y0yTE13J)0tWK;N7Dp zq7yVG*-V=kc^^2eEf+rJ#DEJ_Z>L4}5m4;rX1^*NyNa0p5KIdG>u@MpX(g<YZ_4ud zV4t{P&ci;_i$ip+B4=kIgINI`oS%U~Jz^q9%@>oSjoeTis5XS9wkEcjq6;F$X1Ma# zCyTo;0Rls!!2B4OAEU`yR@P5>^=5>^pYOb(-ApC<9J*0t1o|L=@2CD<O)~Llsu1$1 zB*RULPmVCvPx?d>Hqdpk(Gw!p!@R(~RG7<VYJD06+xseey$a~PJcZ3oogz1>wEHsg z2o0XsnN&jMFqeQ36ddD#*+U<V0XE4!`%k1i`%a{4$E9a}vtfI=xZ3kF(P+&Utk@|E zNoGj@hf-EeRz*t^)fS)!!tQct%L>t&9-fZdp>$&BR-g6d*4>v3#dG|0aZv}U;b61- z)@N;*TIl(?@SNI@vlI9tli2-BC?&qbLv<`p?~vIP^_{`*U!9b8`f4{77xKukNW7uh z$?&}4hz&2X_%TsxCL@;FxN~*(YJV-B*_PSX<zOm1M8m(Lt5%%Axx@j~*UeQnW=I$4 z_L4GC#EbpXRbwivRv%;7`{B)blBST8=_xSVitvqDTL`B_sx>n)Uy7U&WsXw&3D$IP z9}Xy}!<t>K&U}UA>gM1V+Yj``ow`jD=JyxBrCM{wGU|frf#7?iIz4pkO}0YOUF`CR z&)WNaf}Q{yz40=e7*(z*9p4%#Frg9qYS;=e48(#yIn8(zMq#7-wei=xo9zsV_LRfU z1FW7^e`jq;V_YOANMZZnW2wh9TbWK)i5|P(XcV_+4NzPfEQ>B&mV=G^M-K<Y(V6hj zDQx?P|9y^GnBfG!)IF^M<0jFuFWBkT6t81WkjH&ze~2+#a60t;!DEG<n{-ywus<dr z7_s6_(M_8-kAMQ(rxT_UKmRi#KRvZp#ARKE<?@wN%Q*Seu=6*<(*+x<Lr;9&<3w9o zl^Q;GSj@c&H5e5ne-l=ThuBn|VK8BzN_nga!SaLul`{LMc9s-bwUk!;ljeKCi^{C7 znXiInPG$Bv-yyQB?%3BVJB+y8H^`h-42nAD$Zo#us$m7roc4cy>4hb(zvKDo1blk* z`h>QUgx9cZH?kWRxThbJI?U8ycOixyCQ|=iG9K&6pUN4?uWOowpGrzUoE#FLsuX1^ z%7*(kk*21l2mh<@Gh1U4`wMM)+}%_I6_Coa6fAWwd&8L`pdc++ek{2ji7o|uouJQZ z3csul;qk^zrHBZ;okwhE3zT1z7XcGGS<uWRV-S|%fMtoE(v3gQ178%bA=kD!xytPH zjS^6aSla_{H}%+)oFZIe&vh{mWq0%d`^RueG}dOq(!uA*_@QziDHaZ_2Ud2Idk_IT z2=752V76E9F#4~AzIMe?NzrjFO&#nMc%DVBfjfiH7A=vdv!@Z8def|!gd=iP4=`-t zA=aMw#->;x4u6+0Qo*NcYpwT)ft)wzLoaC!k#H>H3AW|TASdvN>~!yNad=Xnmhm+| z-Usf&rL=E<rY0O;{))@DMJ5=8Rqk*vClZ{30g@;FGl|7iOI<lKrLSkKRxjI*C;mM- zZ+4LxKEvKT+3`^8gb$_cgiKs^WwZ8baUVU#cNCrGI+&8l9$_op^z9f!=qYt+&IayR zh_7ya;7J179qJ{(^CGs50`!D|nBYyeQ7^mw4-Gc=^8d`CeTaKX>r)UvH)$`Dm`j2C zhz$#HKny)3Ce^H2RITzx-l{dX{7$4XBP3*Rc}(M%rf(?r;Boh2Um`^Ft9$ip_b&|n zV#@fI>>qlpw9TwhzYn$)R?h%^Lam>de~0{)@*KFlD^4Rg&?{i&RMPAtd7Dk_6nc5c z8~J4|(s3^f@Btmyml;EsDRUk^fP@1PFr4qZp%b$Cp}j%EfuCZgjN(%26Zh&ReqkS7 za(bb8LJRz7laXk}8&xr~;Zl?aB4!|li?bWknz)doC(L(E<ZpOq0Ds8GE@J5NYw)LZ z3EAh)s)GFC#b;~bNO%<n0jI;%HQtpM!0xO($RjbH$cJpPA@SdmTV8kWlQ)>ThcKHF zs;Nv{v-A|!n{hI>v^`7OdtO8LJ+*8oijO#qCy7aP2@<{WriOr$)D$}!K=56^ox7)5 zlUd58<siesl!{c?XkmAT7W*jF6e$A*4pVQA*a?rvQMSXs1E>2!_9VFY_$5U_YttQM zDTceB)wsAsq#UZ_d`}W~tUKDVMJ^8A6f;(*7`C&xeaydWiLJzou8CVCH!)gqEg}`6 zCiIq|bs?e3J#<}S%1J=!e-5ONM|DDDqP`dYA^j=x-i-r?0Ozxn$H~qUtNh}QC+|rE zi~_@Jz_$Sh6*g}W@>Gd5433^Uw00yo4t}McoSD$VbmW~t`J@D2q215pk{(@mrBrJM zV(#fqzY}4=@%A|2%PNMSJb|aDl-yJH?@=u>T%dC=pPL=-Z#GYSvkjkAxYTgolkY<P zIOAY7%Hs=RH*vNYvq3Y>HAz{JxA);}nsKar4N+z>1nHDj{V`LLctkO4pv9zUc3Lxz zcUaQ88UFiZAo#_-Cm3Ut9RM!adCOHcDUi~C2}0e9J+VSxv-bWSWKBK5qcze0ONHY? zn_mfCe!mUU3j)jy(xCx$8K}~Y3B5~X<lb?G&3rSMbT~lmP<GiaG>TZeZ@{vGUEf+n z(Box|6*(T2@E>eZt&bB+9|0tE=Mi?RTg^;CG{jp|=P24*2hY5%Snh;GVSAWLlMi>e z=l(t_uw&!a>LdB+-dymn|GYN&VDzo(;o^|h^yJ6AAR;_rHSM70A-87{^DP=v`XjsP zPDV5hr6sdBU$(mm`Aw53ayAOgi@hJ?(WhACJ!IO0G!b0v{1YQ9oY})n-E}_d+QrQf z`;Q%k%}aILwo1kC-$x{tKKkiRLo7=LYDy)|74{$vWZG#u<>mJWZ0?7S#0;q)u<O3x z7!NbRN!T3}=YhAsXUXy-B{d*+W_njE2ec<~=s4GU2JBdax|A)2eo~%yu{oWIycpn~ z6>F*N^yoJimB6}?CQbc2CN&4NlPXI}gemzdqat!P=`8&hMu2xg=wj@EdDwnN>7L;x z{wt6f890+1{N?fr5Fd`SDgEj&euR5O_0SgUGOPU_kxbm9$bmF1geOwXy107<N6wv} zD-?M~L_zcgW_cGT&RvhzF!s!3!V$+AtB65>O*XNhFlF=zcCIM%?qNgWDnge|5*Bf> zZzCPL>B9=R0azSIyz`$8_LjZ&C^`r&bIPoQzgt38VDVHO#O)XT+=mkN?giOlQbs@z zY*_={#v>$p-t!<ST>Irts3imK(|~S8<!1#;*;!xwf(~6l`ca_<<}8L`8vhOz%<Yr% zwA(xA=(<BS=Zp3vW_5EJDSoqgtFo&$tANWpJXc7uzHSTK=?i6uJ9e!Ab+*`(6*cY7 z9YQt!I_tbns4~%0kQm;Zl7%K<@+#}6H~v1%;wO^qmRPM~g$H8k{bZaS;2zAJtv%8Q zCsF^TNK`YSAD=C2IgR3;ZH1uy8Lk*!H$;eO8N}~wfA8&S4jYenv8sD3e6K1uP+9vN zFZsttQ;}Z-i|^a!r`+yo=5O5JBnUu6qK$g{uYZjl&h0>&tCBrdLVsNH&9Vv)5j}#i zeHlzGQ;BMLP1;UeJw1|JzIu0zIr`I%xv|GoHJM@ygR-zQ*5BcK3fYEZ2Tty^IB@^p zrc*P*<noB&1WelUjZGh705;^SY^|L{_r)njTsrdDM^}n9eLOT@dX`h=8ERmK*&W}m zjJxo-C@X{oIp@8&k@Ks)a$?>w^u_5+e||xU^=(4Y@t^MjL|g`8w_Bx1w8zPc1=fWC zzeR|)69?_6nX+XPT1xjnIa$G))TmWX%zF?D-M9J@wQ19T4ri5(yZ{7Q`>IQJKHy*V z>Mi{9fNA(hIpz<4g=<`HhS{lT$@>q_@h1$qtKt~eq9~Q7g&x|96dZ0q5OVQG#t^pX z&<LVFLyyA(PYtZAkXZcpTtAfkBjEu4|CCURvz?!ngpgtOO0)CV$8PSPF2=*8Nx8`! zn!pkglr=;8ARjwtK!PZn0ehWub7_f@`w0h=-4l1qgvijEJZ^XF{uF~z<x%b;H|Pl) z;e-h5?ZXl_ksp06F&6ssx#3^?&NsrZ+lr7iv`JD$F|KUg+a(!!sBEW5eqmwqA*F_t zrc`BZRb`^_y!^3)dyB2I*2y{(ifPZ_n~@Abd1RH_7JEa$)Dw^DXDhma#SLrj4xA(E zOh^3A!(4_bjIK`&tRO8n+Y{$o0AObt_k>t;X>lK_*y^@O56dn(p&h5|DC!5J806G! zD;JJqeyyC3m-pQ+W3~@n&<Jcb^R(Gc<2f{R$p;#N0WW(EB;33`CwgQpU#vMb^GpbE zJ)Utth?O`2dl8tPJEM4MDk+ZS+TIjiv>o&7T4aROWCVMehL@FP<rEYc#wRz+X+U7f z7E)F;zg?nZlb^5ojI4}O)82II6xF#i$a{3aT_oZCDhF?96DzUK8la(@oPbYcbw!rL zx%payzWb4Y_p_jrNEGXG$Wd#Wv+-^QGwQw^e9@-x{`@x#?;Yt<T(x&&=aCQ|6Ygdp zFC}RUOS&oc7Hm#vo3W`2k7{P>y>N&(dW~FQ)#0H^l#2Uel>#+;6%_ZauWRQ)=mtdO z-~AvFCqyJdF9dpO*Sw(5YLcwp2uN|)QzSR|v5?*F40vQPQrn)&QVFnBcb1muoW!?T z{lm`hxEBc~)8MQ4Cl>46xf?up>t)_j1kMD232^M-J&(MljY0jg=nrG^S7%ScuQC?4 z^cvRi5u*m5M)l9NtgZP|bgWO^3KAMQxMk+d-&i{JcI_T|HpQ$=PisUvLB%QO-W{EI zcHaLW|FGaKx7xY4GJaG0a_L>KZZA~4ckZP2Al-S--oK)7wU`GfKA+;|Ur}u7T8pes z3l@@xFXh{y$DOy<6)&&d!(ew%Q23`A@*2rX2GecyxSd}&1aD69`|4$?z?_(z#w*(V z$os=OOt}eQR}Xnt?%HdmW`uyR$ie*34*?-p-;jp8g2DmneS$ctZZfqm5o3|tzsAr% zM*CsC*q|^ef)vphBu&h9-bL?UB(Yk9F=2_Ljuf-=Q@7cz6lp8We6luQ+vV8G#yX31 zIY<$_uC<9SX7uq}&Ism{i?Zx7H0@fCXaN%;IWJ`6Uh4iOKTp2GxzFN8;sKuJw?0Ak zM=3hGMc&{$kQew23GyH(I@}zuD!;*4-t4nlSl*7wPDZVe))v?Q!P&j!or!~B9V5}n zhqn$3F;rD_?1|Mya!=Z2^#L5k|4HP4(LbKW<9REjSa496J}gx8fF^CKc=*4ze%h%& z)n=-IV~rN{M0`zh?hRe<`IAk4oY*;Sm1z}lKK2!YB>be8se|?-g@+K&>hVsF<&h?O zZvJ?GY_@um`6;GbV%*j;r`9T%<wMg)y3iLKIPhESZTQahSlc*Cv{fMb!6ct%gUk~8 zlb{gk(2jY!E@@Hx3|CzJXKwdA9WhGM6UOY5Ape%a5~J51;C+I{_1oqtBu9<&-Qb1} zW`F<eULjFcs>Zm!YZC|WDLvC?M@qwF*J|n`<jwh>UgR;@6(rP=4eaz_YP%VPH36;2 zHKJ=Y-D5^~#D#@->}KB>D(^Cg1rysbJZ5eu9(F`;V?uYHW8i2#OySO;Ud{OHj^d%s zq=NO{yFkp!Ram4+ku`QE!zn2yU#F?-bK#s<Svb7a=Jp!g8wyisyBmOMSc{aXCNh0# zu<g05627m2SnbaMGI!omt|}JO*(3!K$IyMWB#4*B73MN*mlqULc}O$$9QRTDJk~aB zRk*j5zb{#N<{%=>mK13-w~iQ8us-^`t%24hAA2QSG%@L@RH<;WIdOb1Rd)B2{Ph`z zW#UtiT)BJ?vJi7T!Ha$aMl#GK(iA)Ij+0RZehERDm5AcH`@Xe~qVLDGQ*t$}cjU;5 z!`r-cF_ta(1T}t6vxJrFzd!6mpHp$K+b+DJ*i?_p%t}-G-xZL=Cmv?lcqCC|_Hr3p z;Z`;XNiGo%2bijBKGL7AivR$3rO7xlyN68KM1=Tjy@G}8&DXY~{z+=to{#LZf8_pc zHAYa7BEBfM$N4KKBfqx%I7*a@y6K0lb^D*iYW)sX;=!XIQCa#QKkC@*g*l<O#cXPX zjC8qy=@bHZ<ezD@=4v}~R}c-oSdw{qJAB@IehTt#X6zl)5$s$z47*o_%}d_*0&ssY z&x#RtTP*P2!oi6)ZBu0P6alh{zO*452)_}&4{-96))m%#nqX7df0y4HvE`G-4k;DT z&XG?}d1J&WKu&-<ha0}eUgsmhQ!2^m+Px%a_;rTm%|*HFb)iDL?0sQDi4PAl#Bbr| z-PWKD0R0eiwY>@Yc^1~45Mwgh_0v0RF<l<1Vj_=X^_IVG3|>dx@nacO>ebA_+LsEJ zH{1T0x<%OS(YRbeE6*3UxwC~xuvJ)8-=BDGpQn$?hHwtQ7OroF?{CoaQq1mzQyn2+ zgIJ|QF97U7>;zRN)uccN6P>~}D`eyPR|19t70pBEx3gnp8-DI+h{fx{eW(F|)pR_f zvap2pO1>L8j`2Nf$EX4BLlvn$xyr586n-Yba-3`xwioC8`d{qV`6Pi|g(A?3gBM2K z(hHwQq9+u&*7Y}ww5|NrW%IdkgPsw4&iqfzTg}vx{cb1?%wDTqW2>L3RmO`AeL%@> zmyZ@fhAqfxvz@*X!ku>Pbptgf%h|>$GuN=*_M6kHDsR%7v{!oYKtIOt-Eff;G-=XP zw3_*vQ1U7Ho9*sIn#r0aJmjM!rNrs(aSp53c9*Jpx%BE(t3AyAy%3PeohR;74{g1= zp~w`k4d&s|876J#uqyed<Dw@Tvpn?J)?!Jv_2?dro<$6JG|QE@&q^bAr@KFY{VJBi z_%)@Xo|4b8-kYhh?V)nC;!{sWeTc~W?~9UexTqnSWXG92o}bKdIw*7=Q4&0LZDUlb zs4aQAce5TaQ--wm=s!cqg4gfXixGw1yUa7)H<9vs<@eK=yJY~<hoUfzX?vzXfCv{y zNqKNozP%rA1VH}fMZ@8LszT4E9|0FA4?81=FnD-@g}rOukvi=t(QV1NG|fX-ppehf zf)z>DO?)MrbK@+kv=@9mMy_z-GCFUQzI^E&6ze}HBwri^i$JYm#!7wA%oXW7Ugo(t z!#Z{*&P$1>*D8SBzxkM<6PL(~m0mQStVr3XVHB?R^S^Kni~@oQ%;O_B<ojq-hr#jO zKH|#2HFPVjgT`k1E7N9UqE4VDqRzu=X~#uNE>V~lZ)kb+IoQcm4m5yL5QTx5kTgwa z)oI02;3F8lNqNNS9=d)>W6I~xXqDI}P3twgh_78Y{dZ?KOFb4a8==$cNS5}Kop!+9 z=`5z0m-QC0vl+0NOkH-;1N~0(G;#c>EY$jWN2E%-96uK6JguW?%{W%ZZN*QZ3T=;e z4VQj6&DQ|c$Mt68$sTvauKnkEj9V+gwlh5d&g*?f83cU5fZ%|0Fc3*s0t3yM^ZnD= zs9H^$m2^Yf&swwmt75WLn49z9U()v|_(G<-pYF)^sykK~8wbj&DG$=XFNs)8l-Y=f zmy|3i#U5z_TMiFjTfm%UiByZsvIM16bakbD-2FJ8dDkvS9(Gcjb@JEyYZ38EJ2t#M z{JBWbax@LQ0Hl;kHTz)vnGzTyicgsDk(k93g*%J<vpbIkwG=C7tCYaGU*<2jMx2X% zQiEZ^=QbGZp^hnZ%3N!%MAqj1THL$bZx2&AZ@uujT_E8V>oBM;33fr$^>_<gW;gm7 z=kNE)3p7HTNmWNjNAVGX*|?jbG4T)lMs_9g-siVhWuS*|w^42b<<3%0<db^QK?4WD zXMj5}<Rp@*QRR?<i^60|=chQVF0c3O4w<fSPS;s}Gv|SA54xpY5^;$j?TVMLmU+<# zW8qHNIn=D&Vzbed2f1~SkPFfxp1*dl4E@rb|4kR=otcoL_si?gXnwn&nfm~!>&D}? zJlw?hZ4sPpaAeIJd4jzaHmo!9k$0@<xz2&<&3G@Cq&P+G!p^Hh@53M@>@p!3e1g$W z^b4$mhRZZ6U@mOHcLA7{aSgN~)9Zg8pla`!AF>R-vWDR{(?5qAgGLZ>ifjX^4`Pr0 zEM!^Mq>c#uAdR)0nfG)#f?_i7BJzpLT&x{k19ibbBr`z7r+;qi<Nv!S+2e8lM0YuE z#d8E&ta(cH;QcX9WhXJ-QA^t!*VHm*o*BJVYNS(TvkTDbOD7~YsTnv!a{BzP3H5Y0 zr0Pzsb9%99h)Ykh3x^ct1c0i3{4p1r2ua5wnp)yTyyvn0#AYZUkWnWz`I)v_pWrts zqj$Plby^PXgxn+diZnt(j&Uq{w9+g|?mg1sn_IjfyQ;gi{uSW>IG@qGUk~~V{~cOo zL>J~`5qXRO-44S_`%munU>B%^#h1UXrXgNr%^fLK{(s>c^B7yyq{4HSNWsps^krw} zQFD{azg4|3WWp}iSb!dOx^qucN2d{}RWD!W(Rs<%SVq+}K|r0KCtcQTbV7+4TiC3@ zo|9^!jZiFIxh?o(E2O$-eFXzd0o`{--ZiK0<)~<~4d8nVdUsrI%-vxi=K%`sH}SA{ zCsr8Q#EpNrPql2nESv#TW=kUu>stD^#>OKoN^uACpZ};Nak^Z!$AtMl@FTA!OO{63 zI#!EA1tw?N*au<+IT!0Je6E}6X3-}pdYFq*3p7aZET)Tf@cau5LnAeS!i3-LVJ=^S z|F)iBk`;<*eQW~>Vl<pI3>ybRUL%f}e69mg>%DsN_j@M680*t3#G-{9OF3YZcL@Xt zLQiFQ_QOGZGJD;eMl%vEiMWH?foit6(_J#Nt6pkcWiA#}NH(F|+(lk8C47YTV|q^= zHv|LoYVBM3SxbY5PYqW>I0KjKqbU9xSh9UwcLloGtA2!z8MvEuzPHOrhQv*A6Bi0o zaR4RXM=*v?xhYNQ*GN#bJ{S7b0`s2BhsQ1I<0yA`Ix)E~ojj%T{w>>SNn<4iWf-e6 z)@FLmnC{KQh(ERT6v61vExZr9e%b(YYoQ;B!Cm>MN-?Q~s9s>Pjt|bJ{;366(LBRf z7sO5FD7gId+iT{~#z`i_(KO=<whB)bCUcAKboVN#>4Kn$l4&OwmA~{Y<oE=32RXY% z1f$PcpODL!wDjvzViOCnC7<<<)r9r7(DZn8H?n%Yd2yq!biFpsZR`C2eEO@RQ{c}T zpR@aK3LsP!M!Wm^jYX-ZbOW!KDoEeawM%tMqI@i5J$`F3UXy5N*Ej*%Ot$8kp$Un< ze&3bW6@9Jk-mKc#7mo`Rfv&%wSLlg66DD_Iow0y*psoO(a0t0QXop!fbFj}*^4DnE z``d#d@_Pki0)WpJsY3Y48U`oJ45pTJCu+;__~vgc#sGAgw``>F<5rW3wxBhW?(%*s z#|ey@Zt<W%vh|urePbKQQDf?zmdbHanDR{)YYFFPkLh%7>%W=ukwIPS36<U2?dVQO zCx$&1Z_U`%17OhC8s6YDSpOXYi=YSJ+syAi$KJXS@vrRcVS$REY&uX2CK+&WpAFc$ zcntWEGCO?lyuRYT1z%3UWG}d2t`?z@o_<GniA|A96RA1|22lmF2P8O!_{~wPK675U z`6M`8e!}?i0lCB+)!+IUNpRv$;IHV1_mTwixcwR|3qEHG{+p|^TiNV9Q$FvXHw6^t z`Y*23Ga9RW9Lay2C-W&crLBe2r$$zT!Nl5yM66lO`XX!WvH@yNNl`HXw0lD44|*)B zLBsfrB7-wS_4FM5r?*9gVU{YZ$BVC^)ofRS^Sn|pBVGPVp@1Tptw!E(CZ%-aI#yen zV`=00!KTA`)Yp~I3t~-6bae?#FMUc+<W!g-!*T^WSt5b5SGUyUS%wBSZbZeuxPHmj zqzQRZFg#)r$z-m4o8NA10(l$onCcNxjRBXY@sO?SxOne6O7lH5><Tce_XKkR?z`W? z<fSpWIoM=5+~xTSILImZ3M8}nudL_4uX6po^|dTq#>WzjhN6deTT%U&o8Kk_>d58~ zSFH0^>P%JFllLor7=voC(u^~I{`0o}lA(Y`)tD@}LNf$6I;4T*BL~p@88N&jj*B9n zWOIQx&h|x#)m=Ku2Zfs4LZ0?*fJPUYu)g1szU{X@YFh7S93BHwECZOo4*~BZt|n6~ zV1N@ST5W{q=p~;YVApUyJos|C+>8~y+KjySEApe+Y}8EiZj(WC|9XWeW+D5a6plr& z%{_h9!ht=flI#A)OIyply(c~uC4S_Cw~mMdSjbf&7Eo>jcOhmJ6s6mhC6PS9iCfRD zX>cGQBIG&?b3G$`--Zgt=!EWh37$nM$`*_uxGMhMLcD%@x*(>(PC+No426rm_$nJs z1k>C}O-HXh>f16ez#V(phG_zeU-u^vFVIj@Bnr@G^BVj!fcti?7se5|iMPozMN_!D z&@fSy)9v`JZ<E^cD?9GT8xFYIE*`Ct!+%84e?nL{!9%LqfDt~V)qwG2Pj1bTB0aaD z!xsu$3jFFBh!_i~M>~|#jjXeg0zZkjOvJ>Ty|VbM)8Ak;z(|GiB8dNJ3z7@*TGrf6 z4mrkcu7F(LIYn%De%@+e>(Q;JrzpthLllXk7O_GBJ$s)3rqMJ*jqdKwpm%40H&=_{ z9zFqQ_-oE`w=bPg;NjC^j<feS$G*4Avk@0VXP9L$d<ORSYyd@orfBS4jm^^ccCw0B z0R<*f6XEK5+l~mH8*h^mx^_rB%28@=Hf?pcSd_t4<;(g0;J5diRT7#>qIV5y98}&X z`&Y*e!Rz<^fP)LbZBhytiLq8duCG3`-(qy*yk+QDvJ~yKJUnb_BCCWgzn?u@y%|vW z*?;hIY%Ak=3!xo5FvmC9*j&!9zuxWn-ZM1~rkWq^sM?t=JMqF}>bX3p%VqIihC{ax zI-50qHBEcqO@LJR{TU=hWjgqp1GKZT2?e~7JbFB-+~+)X>l?IXGFx^lKU!lFT&*~` zR4bu279JdNcgBo5FMl>UE7%gTwEhxfw&P_SocJd??%=9VM*jL|IrROl#`)>XJ{gM5 z<Qwfu(UQn6XgIO5_iC}L%2%b;Y>msMn#dP-n!zV))Unr3TRf(Nf?)R!!3uxtB+Jpd zZbv8PtZaTZl`RbCi&Ch^z>>1aP2RHsq~0m`E@QjY2Y#+EPLWYrsA!h+Ho&Pf8?@es zS;L$kXaLTS=P@5fQwppy_Gy>E3Bq419R`j>MTOKp3~y`gE{a@O%oJ0RbAD@n{~}$C zin)~%f#>}14GT5vcvLN}<F+`_vw&E9q={`nJ>FEKWv^MpCwI{14kT71$X!(IE9=@w z^lnV?ev)n>P$Br;-AUF@pc~5liI$5+uf^~k%A3Jz@-vAGLnSmWep)9#v^i0yIq#AI zSDI<Yziz<8N}*FNhAGch*JA_NU)^jjhYT^FNsttJzy#-ZB+2qz@qIJO$zVA8TXE#s zFWKOiS+tr#1|EEgWb+eWa{>;<JPDEs4Yv$G@Hhxorby3G^5>|j6R~q!i@fQXE<L*& z!oswrlQy>vI|P`c^JN>)Mrey}r*dZ-Gk;Io=^|)q{Wb#OgK0a}1yi}w&DQia{}%Mp z^wQ^lwn}ZR`3SmY(6DzH6tJ$IwrJnkxPRo!l$^xK4>UBH{RK;w4Hnp}@lY$4D)2hG zklfYz;Y0)VscbeY)f)8BvL)vw^dy|p;c?jb+@}Nzg&$x&0tbb;`0U8L(k0l<?AUSq zQZV(P3cuzWoB;5hr4x1q4rU68`dvS%m%r0q>~o#gk##2ukq}A@YuA$YTBX-hNPXZZ zZ1_dK5O#|`HNx!7X`sKOgE5V&qj<w8K0X)K<AJTQquc$>tJx>$U*)S|ORNW118F<# z;uPe(p44%WWRrwbP_8qUG&^ZOI+MTsS<ZTj9=b_8TMj{Bim;%~2wTrH`^C`!pb`}q zj~<2JNUcO=73|HsT|9jFKY`P}jFR0$_;7P7s()qF_@s)Zze;i>rPt!9Q}g7mK^%3S z6WodVP`6>HBb3GsyBd|hK1~20UY)IUZTPnAvdt!b-q?hrIu$Z8vcDMkvO3*3)U%t4 zKX~b{pI4)w>`~&6V%OomH-$^d6@pSe;qyq;HO7d7uV&yVEU>%$Y;l2iw(QPl&tduw zJOD*`^Afpv$eo!;?YUqY>(JvTbpyqINpX0)$!&?-#-o?ahlW|o<G;JaHMSu>HQr2k zLS0%)WKX^N>bFAS+E29@J}TLo^b$!sRhmq3?)d5v5<MJ^Y8$l7T6D3cU82Rp56=en zg7f#*Ey^M=A=g^vu!^*}O4zR}rd}pkNjduJcX+bS(c=~RxuMkRvR&gfWA8>j0s3Yx ze;wxLwt?r1PKT{(@4EPem8A}EUw`(_GS_S-8w#*m)fTNwv!zJXsQ%{-fpU1+CnAov zfhc9%T_8{4UXl(z-0*i)<E@u{<W(Ey_&6J*hLG_YxVh~`YkJC0AGT1C+X+p#WCWuJ z59$DiD=#C#v{L<j4+r}T`%D#(I(a?KAkh}Z)mVLqq`H7?lm+-^x4jA(CTr{n!bxmp zJJc)>!WMt!cOwd&fp;!0Qh;ZZFXOPaA$5*J52_!Vd0Xlxt88S$VF2F~X27Rjcxe;4 z+inFeE<P7`cbj~m3B>EF_pAqA3b@#82Y8?%NR9PB$z2>}yljEhauXlMh=GUH$_3+F zlj>27WF`VxQaMtT`NPD+s8Cs#7x{5i_{8uDH=sS!ayTBPB#@R!`TwOgY<3f7va6@z z@0s3r1`6t!Z9a16yEdfZVv_+GLmQ4L*3?xqo=%%4@)nQOD8`!`Y)66?TT)&84Y=xN zyq?7OcEi%d$4I3pGMMKWRZoNYA%1V;w^BJ~D}1@T>{*nsN@{VheXZCBvksdzVIT+G z96ty2FN!`}Zzx5&$|<T;go1#r%^+oqb{QVA0y?4{$uiJ}qR?wAmGQ2(`iD|g(3Bjv zTuDU=<{)Nadg0Z)x1=8+3=bM|<BR<dB{{vG%BbOQ;L{KjPs!0gun&wo@y;v1ZMla8 zPj~0be3AX8j<Ye!9os~$Z84ZPZ+aBkus8j1CY?}4u5l9Ra>wuUht_Qfb=f2TqdAvL zV}@n)GN1wQFv||t&YA@$HdHWCm`XUy*9bs*aGj5t8rehVaa8tpBe9&K7dUB$nUF=< z_B<~E5u0(p9C>FUS$?CNO2_8MN+t3HWe<XP^jIwttQPwMm!d<Wz8*@hFCO~KqD%oO zs2S^c^tHdbeV|w`yiuwJumn%QtTwM9e|q(lr2L6=d}+FtmR1}FyCs+m!<24pW)rYp z8!g=v+!n)z>p6SW0o4HcE{5K~>O|_mc_}4~a^o5(^UoRvyJsWsl`4{`|~%>imwW zerv8vV)XIhCrw&0lVJhPIiwlxZX<9}dCFN%ZTkPGp5<lzOvCl$j{2R-1sZQ!4s2X% zA<R^+2L@WT29(wHCCR)IEfClwa<+yrZsdTfy`N-Qjp^roY}oQG3D63Cj3-Gr<xp4g zW35cOX-kbc<HLg2ADq$6Iowv7LQNKe*3++jljl)8%!|QhYZam`<jj<gpnyl$B<1t3 zt;kK+cQ&IgrL#WyjqvGz9#S%cwRGgkSonK*y(_9&ZkB~&3#6>Y#B|L-%e;klr--`S z?^)E+{Bgw^mWgJE$h$O)ZZM^r3T{hBi~vsblnP;z*q6SeooJH;L2@(JHks|sZ;dal z*Wtbs+)2XRUtDWx%->FQgC&a<bU`T=9u5y0=zuL{SS%730`VI4Y&G2Bky@=;iNEv$ z;V?{XPtt$hm2y3bMWXJo#rCrrYd6I0OU!a4vbevGcyNe;Dm3V-0XrH510fe-4Uv;u zhExS%BBIFKncMp+#7VH<$ZEE#K+fDFmTwM4u+;srEo9Xcx1Vr)R^o{i>i6x1gG>31 z$2(#QF>+h#@y1@aqqL=UI6=>Hn(-`|{B@m4`5mj-@kcTGVI2z9O424W3+51d2Rk+U z0Tu9kj_-)`dB|6{g$4)gj{<?4SzRp*>2L7);fM9WGlW$C4ntt~BL40q(7fts{c2Zg z#<|^G;D5<PK>2r<cGg{~cW3_jD_c4dn~@jP9ETwWiwVswZ2FtYp%E0~t}4}$i)%mJ z?92l`WLBl}I?0YIKiGwD<G(`zSG|@4`No<BD;}zB{pYZW1-XcaY3AY{vQy)V(dLuT z<_S_z5$e3Q&2dXTf_lA3C*+v?!-(A>1Vw@j&HpGrqfp)J`8@g3E5gDnmlLE(8a!=4 z%rjzq=u>;s3^_?$e`EQrV2_A6HWZgCUzv^RmB(*FX;mua)#3+!<1`tD+sl{Y0GS$6 zpv<o)R(Y~4kc}4Z?Nu)gkVn3&nD*g`onV3`k%;8(9DU});iFVf#)6ya&c2Afe$18c zUvfi`TMah$#-c8L975SrG;E(D`ZxZdcv<gKib0VfL5MrEa_#R?*V>(IJ|w)X{@p)b z!mw+-{_{Z-Zz`E{`|OS|ExNE)O7Q!U<M_F~IBkj88*OHlxgE9<;w}GqT;z2+)`Lsf zCbQof0bPdzTJ6_mSt9mlo8<4FPX#rTF$za3WxA$cW{m|PaAI$sDzkl23~d>a2rkB7 zA;fo3d}VEcBVn1gFDU`#oF0x~K!lF6%mQU7b90oU1g%43G?}TCscdF&wAjtFM`)h^ zw^AwWyT|=rOVcp9=6%}AKm7_gO_wAfrm6aFx|wV&FydJ9BNe-=tu+A`p*eSnb8iET z$I&F|lZTTunMROWl8$8JSQ=B>>dB6`&h(b=_WNim?5?#T+*Sre?l2w06iom*J|brS z*m$wLs!Z+hRkgZ1XN7og;cWyii!X&$_N1=})?k0n@?b*IT>{vaRSBI&HG2nf-ja@o ze0#fl#3_Pw7Ag#*NSu94_>_fnx@Wl=Vnb}<#m3RlxTR&WUhz-XZK<Y35UG$fq`M@4 zgWictWOI&?n6Y4q2x~a%+xt1lqW_lK+=E8vGd@E<J9S;91KtO1^_sCnQD%IbC{CT+ z%0T07l}e!;s(md26vXh`WbO&(PIl7j;6-;-&0WoYI}bcnL5OEV=SJ3RJiDv;u2qKX zq4OE;FBDMQHrzOY1qtUhmvhGlHob^N7`q8SYs6nnAiM$Ga6=|Kl$QS#kCJf)DC5th z#CED9tC#2<J5q-D{-*xND{CE``DEc8ycCaj#Ze&?@XAH}yadKsLM7WWUTcYFxUD31 z;mH5>*|W#DX?Rz^<oZkXE?$OFc6UoYrDrsmLZsFxezwlt_(Zlxp}KontE}Tzb=0ah zb(}01=-nvxq`O%wiBKe?3jf*d3B>1*7+FHg!wJieO0xQYL!KiYD6-6%C(g~nye{A3 zKXuSWL|$QM)jJ-TaHw>^o1Q5wO^8+`#;JHuS1ovSvZh#w_R_kM<;vJw;J^z+*kl!T z+WTdDxo0gshSFOW+x<|2fvVETB`szlW%?}HvYZXVz-rty4J?Qm_S}SIH_1+DS@qZb zitipkIs^uukKfu4J`8C?>S7@Gi^#7s*ri@vmCzS=Q#LkhsO4stNRI(@DNDM(FKcJc z`&PX?4X`*gG~paS@J}Sys<~AmLEEPVZ-kfE3+C4f+C{P5t+o-XClO=2M&Q%?c7Q|3 z>6ym>aaw{{%gE5dXfa@N@wvj``wDNwJ||$~{xOET{n@W4jKUw%n5$KpfU@?odvk<3 zNy}s?i8^WT4jkw6&tk&9e(eb5c8?1Sz7Q@P*)os7YGZwMEQ>43{Xb91B*~4GZbT3n z)(taolyV5r(^dzTq#q3#6L3`gxm4-ez&1IcY2NMK%Wn^lvH$<TF2x6%a7TwaZ(d|? z5Yr-okO0IEAu{MN7Pa;%TCM#bI1Lwvxz)l#z(yb+lZg@ZQ{VD*87;FHo9ad982q&v zY?L%mxwEmcDkBnH4AWlo=5wW?Bf-_AEg1VCV)`3G70T(g>VFYJ(pa-@ox9)#Qa+py zhb3<saA<1H#aCf>XtBwZxjev+&C1gM#D>F7;SEtbd__+=E}k3xLzRar%YY+>kb`3O zxykU>Sj)C_d;g9LdU5a$9bst*+PNG&g#z|A)4=HqqSO=_-`+ScO%C4a$zPhx?-qBi z|1GBMcp9L9({r+MJmhuLy?oj$%66(@ryiz=eLzXoDi|T93hI`LP+(`7%FUtmxu#SD zU{M~&7j-c4-Q;d^Ev5PvhJ2{c9WR~K04T2=;!_^Etsss0ttSTM@cNym!9!tNq53Uk z=I}@JUs=RIIJnxSx6HFa7N@U9@JQ5OSu0WD#1d22mEDk`B(v}~2TABH$2#SIg|KsT z#C}m^W1+)|ro^AWrlOKGas1yI=9ho*eOT8q7kt+MWB&+EWFj0+;ffXFUNK$N*z!#l zn9%G~+#PpP@*OAr5!!gvsx{7{_R)x0@6h)ZAs#&g!_=1YZ}B?sm&mXn=J?(g4+wkg z;Ht*1C|A)@myBoWHiuB5FeeAF$Gve+m0QNF(AcsPc682SqE7uY)G`;IzCxd+p(Sq4 zeY+pb>7&hHvcgEE_YXWqvNDGjba?CCNXPNg-)pk-eP=Pua3$I7*%5TED2Gki9b5b! z6`ZI|J?NI9_)a9@+A`8oyZlUDdSiKY2NHPTztMx!Xwv~tH1-?%s;tbV%vY5;#r<&i zW2j}<XBf}ytipNrSo!U&5lC%n^s>Fz2gO|Mb88T9^!!JXhHX>dL67{+FkmHb_GADR zywmS<b*_ldFpLt9uPVnzp50=%*enqw4@jH2f}Lf!>bBV%KDu#@f^g5xtDovxGN!vM zfdjT0Smp07^vVIZ;N|c;1$DVPqTz>xgc*B>y=&MiCh&!Mc_iDjG8yzW!1&02?*y!) zom$5i(vXwsR<)=xL)@baug`gJsK;z+49TVVNF*BS)TQ*?zo@a8-x(jSnffi2E_L#g zdFeF{;<x|v+*aHF9jZyJfZ;_-egDzdyj-j5;rz^Qs*irstVd6KnsatFe}=4miPmgS zv>eSgUgFR(nEcgT9jTG!hsSBhLcW{qr@NL{?e~H)A=Vqa<U{3wA8X-QI{oXtVr-4a zjHwfP%mkYX!N)=1X*V|=-FCiF<4v$Cc9()?coUeIbK}&Am4wLt^Q8NSH#g;Bu;Kb! zE=xB~F<cx3m!CnkY_Hi;u+{8WvBM%0r-<I-wN!5bs5MMNm(WVPWim)~(VJ3KuOY#4 z$ynI+p_ivnXK|6pP{kFjs2tsSIg8p8I+84VA4v65FBo?IaOm93(Spe8dpw1bW3|4< zA*XXDVYJ^v#EQQ|Wa(};5~JZVi$=OdKF>C3ob?(w0JPsMvN}YlTWAf^M2E5w^`xa_ zpmG-mVP_y15Dv-E*8r*$5(W4))IDh>2ed&WEy`e(Et#Uo+D~sm4@{;|^z)x@2Vl3m z?RuDZz1Oci`#wne`$!r-y9h-zu=aGJ+Fi;~M+g+M`UDgbsNpC=&c&Ufafn2&-z1Pn z!ZXr_lt3Yen?``Np7onN)&yJZBMb;C(;up~9<ssAt6onpWlJ8g8|oce?Fk7iD7~R( z;}I4%d8{39TL?)J5KGiBBuLxyjwOVQt8e=8Qb?K%6I=RjB^Uf#om#t1SF-W@@Y4dV zI=&9S)y9sT*hVYQ)d#)^GFMwkg~Sf_y{6CL+gY||5}pW&FNT1O`{ZAtUJpN^W6=}J zlI%(Md+{V8wgqPLuFIcw(4oHR{QmZ;7=XBMfIVq<an%vA$ytr}Ls?c)*KkO=SEzwm z*Mz8DRTZBeRmrS3RI1@?2vAxTtxc^B5Sq6=*ogWj>!#}Q$qZcXkZtVAkNu3lhR*<p zJrg2(Lj>JpT=^jh!y)U71c9NTXJ?R|(oT8X7gZ#7ybxf{+6SX#`9SRA*<?W~{(UJb z>E5FQ<%&Iq;>DGZ{u}U)X0rIp_ATE!GTvzciY!7n2mDYhcZ4*f5nFkT&tspE5(hlx z$e5h<mb+xST1WTN8+XuP=X9qch#a4`qu~1w>&kChn+g<ADsFcS@sBwa3+^VMTQ_4% zysXE;>slbKMltfA^u9#gr+T#X^F9OJIqf?K8d}T+cNCv&|D#=(Hb;?Zbmg*l5IsBo z%by{9X1GVaqTo)X7l5x48B#{8R~~WY!ve<WJx*E<>^=WQPfU#C1pI#cW2j**B&%C0 z`dYTex}AA8cz-v_%D3I~+be5EhA*ikxsu8OQZAj7o)(8Adr1lI-YhewtQ#DGd|lL= za3?z<hVHpXv+Z5m=C8IsPXAXPIi71jHvQdEsX7C-0@H=gckE^f;P{P<QWyp?Px`(| zcy6J}78@!@=y|*^831nFKUUHn-MXz`G@_;$l{FUhtk06_S(a~3KkD`Vp!s7}=P$is zC8;2}DeF&TJ~*CsZQf;ozW%7zbneGJY?i1@6IWqdxLlKAsUYDu4;0|{nswIGu>SMl zX&g2Z#rd=UKv+x^Us32*L^@i<@40eMUvc_Kk#~Ohr>gpicGu5Ee^Muo$3!@BxTckF z4+(KNqkXH=A8Zg#dINKJ@u$T(`E{fTdlx&Kh6cOdd()SBVP6)|#O3G29`eL<-S*<0 zW24~64IAw1TjAgk9*&8T_I3+!5Yhrr(o<W;5sh_HethcKktvBh=7k>4c-}!f%Wng7 zBr-TmS^L4E$DQjlxye%~zWRq=?>uBPDS*`@^9|4^848MCd|kq^ZdDvU3YW2N=!=_D za2R|QqX<d~eG#BGcpkJK2?Yk<M<2E=1cE|#?`L50SSgo~a(h(EfdCqORCXFa{JHa; zewfqf;<U5yWX`LTa7kT&?0G2vR89QJO4D{^%CgW}r{QjmNQZyLPQ_?|7KJ5c{?yj% zkceMafTfvU41cQC>Z7Yg5UOl>9=tL{^#2v`TMn)wKZAGOu#;PlEax<PI#=CkdWu;i z&Ci#8Bm~V(Y)yXxhejpN`--hHyw_!wH4PHx#Y+B3#wDHF`p!nulC>8awC3&9btI## zyxWMYM}b%0a`wj{>x5##+X}$B<F%S;p!jrh$oO@Vh%$})X-mxwDTga36;;8~!@19H zZb2%cjbc1HSsvYdjW2(%ZK}Tx>##S;{3fdxP4&o{<DviCz_Pm2qI2)<6HO-V0Q~?_ zZYf@+3IEEbiIAUIsCEE4A&nErCeq4BT-^thzwhonLxGM)>dx=^efvYaJCRmP1DE9$ z66Cx*sUfOjYxbAp<<_hi4!41u3vv&?{xlbL*(f#{<GRKzWbMuT+GZMLkZKqG9oUtN zZ4(i;&W9^JTYpg&`E$t1ekN9ngm(>iW@&lXVm>n?k6P-NsfB*urQ~muJ@yG-!j_l8 z%o!)5!ewTx_o!H#+sDl%jo_pQ2q2{@mGcXS!2d(ldqy?Ab=$)S2)!jp3DwXf^dg3? z^b(K~dX*|tf)wdRLhm&+L8J-_L<E6QM0zhGy-U}Ca4;eV5YPL2{_j2KK6mheFN_h` ztiASHbIvu_E~2ntD0>d=*;*5o=yNMpR2H0@==FNAP}Ze&^5|K|eH|ee;upKcdIomG zcs+K~f!ykb*=_CMomB|l$))4)<QP%<5(oJgI;cb1`Sn(!HqXNC+t_C008IDPO`v)o zl~CDq_oX?XT6BntRD<I|g!p-9YcFb%;K{{cFG>Js-ke45YTes>EU|Oh(@;T2dMX$r z6bpeTY-JoW1x|wUEKHw@cc7IWV_{>yW``cBblEoM{FlYjtCi+9<W5cwIs%qu#p`A( z5)O$CU+kt<F2ShMlVR`aiZFZSm6n-_ekvy^s$x;50#{D#{9f1kq|fd}gYpNU7?l11 zX+E4<6%X{OWi>Hgtnl&|cHbfVyxeZLG2}H?hZ4t3C|*ST5L)@Z{O(j1WxsLU_Tdab zfUT(#_=RJoGJA~YAKc6U^p49fw2y<k1N{yY*(FH_VwZq+pya8u{Dta=>z`eCEqfQI z(|Njtr2Q6KHB4v{0)8^pwsE)gsXzWNfl!}`*d)cAj=_eTBhBx_er^$`e_KAeo!Fzy zq~;RY6ta_f)P2!5KX1Rh{;TM0Msn@C8lW&VSg-J>EpHoPniirq&l~TSvviNFy-<Z_ zsjnMcOI+hR<5}Lt(8~6ZPVDB;A?W2gZI-WZHLIMhjs@sN|G|5zYjb+3S?AKiL@)-Z z(<#sr6fDW4X5V~wFU1W5&47yvJN<(mTwE6FQ$UibK+uWZ4G;-N%WElnzx_k0dwBAO zMEVd5248VdZDG0NYc+gZDjV!5Wh6m6keBm)sQv@%*d)1NI9EcfO+l@Oy0$U`RAD~Y zb@F&65PFPHhxbGze;$SL<!$NiSZgBUB=hC~jDaoFP9|&27d6H!%v=8OOULybdMAcM z=8aJw{o2`;FnaV(EMI~DT!Kr|m*Cl74}XNupoJg9!=xS<Mv!BA?6UE$s?p4~4DNOF z?qin$JPdZU*;uyhHsX;@>Ak!Ixynv$Z!7VYq;)=9_BUPKrk2w!VI<F)N4l6?Yc=n! zUf}kT;^;^~E%ork{%N64B|RlPi+p>giab#M>aVAS4%9RBz3a@6;!sI|agKKm{r(%l zHPO0(T&ZFq+2#R}?kax1#YUGz*_d3y`WSu|A%7vo#Q0E^PN@0)Ny*7Cn$O$IAMWrx z)x8c}3lX3&(Mcdqw*AgXx4mbUKaFT#4bf2gdu09m_o@F+k4rDdZq{vbQbA@BFAE(W zqjeg~0gWWdJehUYX0Ou6O4I2_DYUY;T5aQL-mT4?NUfT;ReuR_Z4JfH_P?^!nPU+y z|4hE0?ATp`cP1*IDyQmG4EzH%96Iqss0%D4>?~v}RY`AOcv4Ih_-oy%){<M*Uk}Q9 zmio#LV#OL)aRaw=A;q=ek0FhBbD&JKA5oab?R9xr8mqEr9){4UV?vMc@Zj}d9UMEC zIF+)`TBI?<&+*L5{bT*v%z5C7`4QXDAZ`%^J=W&EuL4~>_s2)#lQ^9Z_eC8Y&h4^^ zzW^%gj7lB5)#H||9-4i{+5Q37<+N-Sk&PDs%;Z#~<4K%wvVd*BaI($#a^qd-!t}xx zE^%icST!}EeAc<{{oxQGm8Lx&+TaD;YUWn7?AL|+xmQ1)(s<-`tb`tBqLt7351TW! zgVE>qf2&WNzwf?}+!utb?+@1eUJ3c-fbDo5Jn8d`BjGl)a-s1Po~gv#bFGaph>e)& zA&r(icHR(KkJBerlcz@-X>6#((5z^goU6&2r&b=#83#2l{u0IK94IS}?!_qnhx)r( z4_@4Bz7I*QSsAQh+&mXr{f-DtEzm;haun2OK&O0ns^2zBRJUJpPo95iE7`w~5%pP$ zsC?_!Ke-gT?^AGb=d5$=wt$r7L}j+CWu|+52Aqu*&iSuqYBW-d>2?2w6i-I~sC)@s zzZ3iPQ3?~yt;~UUF}mvy<vR0;2uHT=ksK}EEkyoSRlU)XNMM)5$VZy2%jdYwJFT`^ z;~_G*%tz|U!&zQcT5_9hKnGh^M1_NnC?9hmeX8k#vpq-TJ<TUNj}^_<8jU^CK((A< zmQ^cq=W-pmi=;yUjH7Y`Iye3EaHXZx);@J+C*b)x=U`y9g&zw;pPe*J?vbYqA84qS zZv}5rhnj00Ye`Y{0ZhdFA0Mgu@J#DWF}Lq)4e$+eQA64jt($DETm7}|ZR8ajhjtbg z+B+ey5@SN!ll|2`1b(xP+Kf0^?U-yk8075g;3pNMCK|K)yF~>khi%Td|F-$j`AQ<V z^fG;Ss_q6a&+AnYofB@OdnIg-M^fdsNw<47y(-_xdV}`W2uqVbKU3xEr|(%v+<o4* zF%?3$y%EPd;QQ&p)p69p^Sayzc0AW>gU$DvPbV^c{StNUnnIz%(xp<HAAU~V3;8qk zX@s3hF{_d7tNE6BDM#=FA+n|>DYvg3x28vEu^<E!qkvSQsJdP#39a3_cHRunya<8` zIRXV!a25-ts3{xSWveYgL9(1!z2vz{2gr8nfZ(YV!1v-L^wUM1nBkOt(IHGwI)GG3 zohZm{cLn`J#(ZzNAt_T`^3Fd21t)v?E^LD!BdfozJ`?Lp9$UB;+t>qLGp_OxtqyG% zw<*AvgPX_^41#6zZeE8aa(s`=%FLxemJ>I$?I4r2+BQFC@=limvlQFr<+*mFEXVM$ z#t;M9@(QebbMfKXx)Xl=TrR7p?6cpktY|;^9)6_Lo`nsnbX}F&5{&%p*OjWz5B3!N zu3c&mIM}%2k``5BIW3;83y2#~hwaF${q!|nX;-0Oa>9+M`^c`&h%kq9so+`c))Hhl zQ`S1`=ck{`1U`~TN6o7a#WcdI#N1jIhH?>WJc$QGVM8o4BJV~xL!)w+yT72=G0c(g zob2w|9x99_6%?uVhG^HNy8q7ZI%QpGi&t%u${a|4r)Pch=`YDT#L!;ENoVKvd5AL8 zb~zp7aQ3|I46r56J!pe_@r=Dw)P(@{i5hc(rRzz9ldWMs%2!YYBAlQ~K$Kqg8Y4Y` zeQYm$##bkT?voLdnCp*+oS&XN|Jz`|S^hE_`?LFEcy{Ra+-<Pr4L?2jsFXyDva5Ws zC{v~?4E#bUE9X<mGNRdjI%o~e^nBfp6Zi6UQG$3WJSP-Gp1x2!-w@N_>mar1)?F8+ z<AI~{ySI&5qxnyYmX?S&A;sVYN|{@2y`a3*&uqPX=;Qurb-PH@=uK9&IH#+MMjRV; z`Nlob<_p6+zGka5<Vb_#@dykjP7?{hRp)%u1`RxFWdQVyY#Ix(SV+Wq@j<B5IFf|0 z_-&DD+@{ew0x^OXJM3(bNCx%pXxMqA&jk`AJLwO}yqP~wxJ=g8?NINjkEQDmJz4KY z>2Twjfprp{bJcmY_i>PB*;UFdn!at$6xx}CF4G15ad=V!8GB-nY{V<fBR)NWIZ70b zo?1?P%SGwtZ9u)l@ZutobMxv7&L)xZ&gr!++6RNK67Ul?rp{3s#nquK4T;z`ly`L5 zAMLAtEA@L)^zK>=f{%7C+aJlzKi(nT->dH7AMe~pMGxqgmjQ_Jmj@EVC;CLr1~IwP zi%B?Cl$S?DF=6)Xl=7KPTgZ)Ti5*_XTTZ40(e{2Cjy$y=A6H+9hjSU;>w<qEAxE4) zbSQI-lv({d?>gXVxN_73YnAZJ(ZBuAxjz^IN_U>@n7!v+*FWC}|C$|Nz1Mm1<1yjq z#@DlQ@EZ^{`6Pz~T)(5cT1#_yaR4TW;+w?J(FDG$TY1ERL+w!WOI)DTth2dCXKobf z!cGCzLx?clyX>Zl`uqF<$4<Acm&?~7;2O)Jo6W>TK_n;rr>qK902bfbwl~VaCV))9 zn<MRJf7tO-Vo-Tc0l9>i4oymt*ek(l*)N{<q3M$bh;d??J`Ev}Rm%FIrZYP<`+5gR z_+Ept#EwV6Aa+Z@&VNIDD1A8Dp6@a$D!}fZ90TRL_f279A(Jd1cR<S<W@~42;H!Kj zKd}a?ZlkIcOFK)D&jsxoKOJ@O&1f@2rIH?VF-bt)J8y+Sa<b~<I2*vI8f>-k7>YqK z+n9=%3DdLx$y@HBlAiG7W0XajD3#edO#?pNr*4H}Hb&LyRmvPHE9|HV7id1K92}m# z{|?E?EF655r?4l{kk!%ShUY{P5T{8br{4jy&ulVGS}156Ie#=1^4A7X@}?KAi}h~} znckbT4`-|6j}Kv9U-12lxc6&k23?ab$NPwWAeL$sO^!*YBPGIE0@sgTRbBZ0%x>-G zzUJABN%XAzG_}3JSkL(M)nQNpAc0Q5KKc6dLu#s$ZWpNc^4R-C$z3i=u%)R(lw>=P zH%^mu0-xgNyC}M^nfX^3Tqb)`a5lx3Hz$Nt>$|tk%nd!=wOstYSg9n*ro+!27TmiD zOs?!wMzwxxt1BzZRv&A9X8!naQB-3Js*c7BNVM16+C%#O{pVh+P-}_mx7~_2cf*8a zhn9k~RdLmGfa)guq42)ub`Gay9NkcKVOP&Kl1yj98R3Pt9@DBjgq53_yCr8a%_&OQ zatCarDeF*+Ad-ag8vRV39gMgs2Xe=)gdjSCLMh2*y}_9z3clu5Q9)jI>+F`nofl^l zJNjiZJa^L59kiK0DL)Ly`)X<8>sK#(P_f=Aqt^~q<Y<snsZe)0m7U2{^R?pCZm&hI zx|3FI<`-smav2IT3Ky3$$GdM(midq3n_?*F^=ER!Fz@ek+Hk`U8t56S1aQ!Dv6hwm z9na?-&)2?HxLQ7XwW|9{vY&g=&El~%LmLE;PxOtCY?I3rOjJr2e76u~8@_p^k5?@D z^mD=VUJO0UKtHv||0|mJmM6PTwLM#aN3dZY07smOz7z)+oPgQ%!V6A`yLTTb-&deK zb(HD<y1jC4cNF2Ja`h-K<KBhkV{gD=Q1AU8r(eXz6!y3{nBKsNq3T8YI~;FDmpyQ@ z8oiYeK!~n4Bdl0zkYYG<8VD``L47N6b{1PA66A!QE?wnvn^Xy{C#p;8J>JrlYF=GE zLjy+~uWHyQ{;iLB%UUeb$aX)cPFOZEleVE$%<_dL`OZ+3F$w8^NM9iPRJAmpolC#j ztH`JA{DZH@E?K|OPdOtfo7n1{kR}Rb-a$c2;lSp@KxN?_@`9l~E3eXTB8pJI*w4~4 zBEowYlYW80T*nld!j-tRnwHXXF7VuI>?Nn;8d$ebhHE>8kGdu2llGXBv6^GI8hczF z-}fV%XX|6loRJ@1xQDNMO9pbLfaZCCJGh;~iGWV16iT|-dCW`1U?1AI<sQh*{?h(L z(eRm+)k+pJ213hoSWdSp!WF6QbnTyQqS~ZUX#xdj&n*@;hh2ET?6bZ2t8QnRl6Yic zyKcXB+1*8)tY=hHP8q46Cd^P4GZSssw^`A`r&4|C9ew_y%1m21tZi$LTRS*1?v3Pq zE*B%D_`JQCV+4k0ekSZNmPGx0{7LdJ8(>$bxez&x=X}Tzp^?7Ehb;F^W-ofqcjz)} zOV&;e4uH3m0?%HNOBGC1+jyi)wkWQITxI%1jNjWx(2)8ES$I>xNq+jJ3QTRoZZv$R z#%^T8iLdG*arVDQ@t*)BxL>ue(g4!{Fb7z?f8CBe*Ze87C014WR0LSvbNn#8yi^~+ z78(}<uqH4fKFiiz^IqqM!Jk%5IfpAdCb!&bdVIw9RQ56~+64f$iC!I>xFE#DHnrs8 zA_VWJ72(pPN@deeF88R`$yBr<M!G3P-XwL=9q?~pUjvvq=KuT#a{f>2szZrO$~3Xj zbN-q&trB(a;~{BGAT+k<tc`C{)N4+#v*Gw1qGG_SzG;c``1h~ngWtunofczSKjaWE zF3;vj_aV?+x#8x_jB%q|lO2PzgrILR6a7F_Cm@9YG43FCf7>kD%So3;t?fWwk@55B z!c8O|UVV5CVD&PkLlNiOxBoU*xd1gsN*RGMq)b)-QWtjyar<g<;g4{<WjVnTd!Za_ zuOea1?G<Uzo+TcbrCPWs==W4&tat`J!}0HFzX0b9>I+m+8H?66-4!|9v9P3K)^!A0 zl3jg;Mh||#RuE{WcjNc=v-O+YjB7PspG80!Y^-_9Kc_%|?jP#3!{o6riPLIx;=s8@ zq7rXVQ8~CeczLQdXqHa;kZ1Ce;C4)wiWurTv^OR~i&tP$@V2J<owugZ&%EMgR~g;x zR1L(y6cd86q1hxPO(8JG1HbEU&B4D}hXj2h1TnxYDIwaEfan;cpY)OMSkZ1DrAlOZ zqKl4ft3Ofn6|f;YZ?+Xiyy73L9BS=|<plP^)8__v-BtO$^k5*v3VZ4Za8?GkkH3e2 zww>sx_$-D$>~=gsZG_wqUZp33vuj)CO$6*3dzG`)0*yc9?#ty?)Ze{R@-(5#iJb`B z9t$at3fNg-#7hLMJlZ)u6^df={h{kv`UmN0MOKr*O3$T19siq5`^BK!(>HRbZ&<p5 zmL>zgol)2ECz!TCNZqI$1i-AD#>{gq1V!e5X$=ZtU^}5CM%6zlOFc&=f9oBcPD4qo zi8dy!FhU_#6+e@LMYZL+FQPW2z5#W`5UW}Md*-<B7X*_!DL>c<O4etrQ?+*T(ua+t z0ZWwOajE<)&C9=~Eg!Nr0&h7j3E~-}A2;7!`^FpF&YW!V{w|&M)Y7E+wNI4-dcgU+ zzwqHwXh%5ljk8^BXi^!57WZm(BDKc!L-8|TG^v2D0Lo{tO6*1D9sh)cFAwFg548km zI~xeTRHUcRjQOUgfVs3GV&=he6sHk!o8Go9iaYRgPADAXyni<1``w|=RO~Wc?h_sG ziVNG=&Leb-5b7Grg>;2;gTI7D+e_wi86hMxnX1mpFHZh`9d-E4EfRasW)b}N2H*kl z=HY4(`Kcz8D@xsh)9OW|;&<QejvUUU(SzleIF*v7yK|QU1f;fbrQ^TK=}>m>YIXss z2Z<E$_63>JjJkfCsc#8Ppj=AdW_``6YoEn$FRhju+GAjU2<x}cpUHDAY;keQP^Ajx zWR-0{>zMRuz3FkwY&g{^@{0`&6JiG~`2054ZrFl>SNqjiI>$A`%uWi2OqC25+nd*l zVD!Y><-qWF34h!UZHGe_>oce^A#ifm`|m`uFAr_jG-+3?%xEbpw47Pp%q^zdSw`N) zR1~ix3A;A@ZT=SH?Ag-Ox8E>nxU|Zx{k{^K{v8||#cek<+fe+$p|}ldWCG(Elko^p zz8LX6_0XDHZ|ORvASiMv$MM!`yd%*HAdk%og{>C){5CW7-`zTjO(PpqW@;C^vueHe zi=?1>MEEh+Q^K3pJxqtalo6brGftgmtJbT*$eLTa#5g}_@2!)AIYk?x>4)#@`SJxJ z5&b)rszqSLKN(?Ew8y_n3(4s-kF$d$73jj!;&SW{0T_Xia5>OY7Dsv-`tZ9}j@BI< zvU%+!=-Ma6ni$Q=Dm#uMC4?YwnKt(7>b-(Q5L1#q8ry+e&Fso@W$X|6NJtscb>yMU z00I?wKV?ckuV8l{W;PVpbj8!k6ku%>B+mwBcw?9d#3K%98oBd#8Hnz-pj5#?-ol?y zj|Fj`*PA{P_vih=q!n)*-YibHn^*K#^63Om$`^CI?&l2@kSVlG#dKLq-VOeB`k`b_ zpQy+ay!v=G<dPC<2`kcZrfM*Zdew3VJ;7;Iw^`E=S}PT|`la=jI&?yisLE84_YPmw z*}%N+d-^r#)T0`xNm(nz*yN(_x1B90^1RxV7@sbQ{9dEWjZ`id15?q0V&a$zJDmRm zt<S$5rY-38iSF$}(OLLDMObx#wyUKIwK<hbniU^L)@~WNrKdBE!By>KVBKoaMnV05 zNf1%}TJtqjThY}w-RB<Zq^*CPj>O@eG0dp^S7**#nFQZY1P*F)Qjqg^K7KHCtxUW0 zAWH7M6XGP-8BdaI?An>Xg=ZLkr;cPeB`p$4>W%h|&+mM$+<8kd9KK`1ZHQ;aOt`>8 z44`xnA2#f5KqQhoKX^yLl@8R<a;i(CUn{G0>6OA@c`K7sL)2n?{S5bkCEtdG?7ln` z58+aw4f*7qbcfbh_@p2<*M5lX5j@1)3igGy=EZNX{;!lBzdP)`tkD~nypwNCrb1nj z0Tz^dy9EKyR_};!=#JsP8#7?n@?C5zj})CXqC;w1r`FHD{A^tDb&vcFK{2N5e3aU= zBYF`zH*F8&x$N7XMqNFor@S}p%_!$!8OM~ZX=>{wKMTaEbU*c848pm%;Dy9I#_wy> zlXl;KzN}xfKpY)>Ubd%895}pqw<lfaG8RvO86e?Ve`(*!@_bdG`fu7bp@=Kq`-1R) z+HiP|TFELi?{p;Ip;d6Jva#F=F<a1Sk&xE(Pm<)n_28q3{NCi+1EXtJ6q<a3MNcoq zrl8-~IMH-elVWBd_w|g;Zs_8J%y&+0D8r$xr3STa>8#KQ&84|5Sz}Yp%1@|`jJ2H@ zE$CjWqOWakhi_#|Nl?XVPyFbP?uchXKCt9%<<bxjw!WoQRn~BLX;^wsE6x*m{ac^d zwqWfgJQelVGu8)04Jl$|e2yZA2|uS9#*H)%+q&I$_8DdDqC?DXJ;pIUb;AE;MrcJ} zPRcp)B&*>Y=2NiGbnJ|^9eFBP0#`#@@7YCgSUr#MJ)L`#2-@craIJ6Jz@NTnYx_G< zv1H%Jw*TUE`0v^43(ktwDqN_Fw4<or&^EG~IrRPr5^kM5CoB^e|Cc8PktvRlw7BiS ztm(*;-0muNTxs6<+T5m>U)F{eq;A>xhaBxG{e9>&HX={z!oP?{1&EcG-G;2{?)hyS zbRasjf#IDeFL_cyU#ltuZMg*{;bTQ6Fz}Kf1LdGd>oMrAwNM8PZs!*LX9ygY!n_>X zIp&E(iv(;N-*lGmR<Z!8r+HO(r^OQof`{n%Cr?5v|74kSfEKXBCzG0e&tl5cHi(ep z=aubG2=0;P)vz3IO0R*lH@&@_`{wL&D^oa?EyTcsC$(m1{@Z?FjRaRA>+@ADb_U{+ zVw&dI`myKx<F$JDo<Maxwz0R1W+*r6Z%g}=*6F(!ra)tAJN@h7rMTn?a(in)5My=o z!zRxom&I>E#F|%LJn?Cd0=XxnBVLK*aLOc6`Uy&Y`sH!;G^5LU`tFLww03ZMSZ{xl zenrXPkZJ1mgUHL|51#;2zT*DVaG(U7^7+j{c(%wwA_H?^rWz1zp{b@ehdA{iE%<V< z%<NL|xCwoJEdD03*42A})_W&~6AhY8@g&zE(^SXANJ>e9w>h6n)9rmNmg`O9|KHRy zY$t6wK;)n|e!}^&!lJFbwZ*GfiwUW_q?`t(5R)KR{|wC0da7g=YHg%pAEi@32X<*e z2wCBSs9|)y+cF_#-&ox)*|k8CX8|$3o<FBHNO9^aZRrgtY(>w|@<Fx*<@;SX)=AC1 z9r%lewLaQ#8x69k0UEVznFc<XuV}wXt+lX0!1#3_>Sela;i$`Fv$4?MbNEXxw5AHQ zHrvdQk9B6!!#p(mFn?&4xqabnhWo1z8QK$~Z~mjE4c-X6w%?pfsQiLhB}8XU@Jl6G zg`BMc)A&`B+h;?+(9)fHw#3?sJVCQ;fE$^J%MO8Ov$oYsI9pf*1M1LepZA!s-byC) zQrB55+lz~ng_@g5?^@1=HWyB=QxH6~19EiaFm?kk<NjEZL;+M&%!p4VmBS6DB%34J z+Sh|EeELJA7-n@${NS!yS{!drwA#Ok1pU(7HJ&-uaZAzSjg9y_5?VcwWVUpQrfh+Y zgk3_uyYM9QZP#bL2Hi2D+64c_7TL#c^D8M2g-LQ$8|sHTfZcXuwp4bZG4t4m(wz>8 z%@zeaA%)O@w)CF#MfLqVLN4WI!?_Fjqwlo>%%2FK)ZXzHz!H3!1KA0$4H~i$z-?s# zKm3kw&hikfI6P<@`@a0A?vo`o1|(<Z+<Hz=!?==*^_V$fD2xNGF|(Br63@<52n-a> zoS0Z(CIwI7Ya^*=TYoFp-(5Xl9QQ4rbRXeN(@`dk%{rv9tf;)xc8i>p=!^3RN-eaO zO*mUleAw1qP|&wyJ>hfIef`3U`|q`*m2g(MC~>qFdr}<Wr9naC&8tr8Eiq4;)FO!O z=|bdq`f-DFY5eqh1!+lMl0)f$298Nm3jD943s8%*%L(jB%qqz(mgnW!AJM4uN>ER* zVA>@y^n8hpwxVne5*p1|wiEy?Tr%iZb@bKHoTxal??mPMRPtg;1f3R7=K^&@O+6@v z=mF@Bw-LWvp&Qz5yV(9N*H786u6;9`3D-rCd80tqR5u<97H8*NoU^|{%?8%=(hzkY zZP#n>(5#AL<D_%`uGxr}5xFcp2@kE2)@{F?euQ|pr5w2W5*|2K+`<))!Y}xjUU^yM zk`j?LQUzjmkK#phLNzT$(8>`n?8K_(BsY@cIFk~y+virsa45z>9~d3gL~P#M;%^60 zZS*ye)U99rJQ;Zp=k8=`BX&lAy}DTfD0Li%Ts*Ux_Bk^K1e5jmL$`ATa7p_6cbss# z!2D^S9mG-$mo&;Ry&vlQKeg_6jwaQmB}dFB?cH`;k3e7Ub&6S-fLb9%QeqQ{o`A2H z1}BA9RTm@_6PG?YuuV&6=DL?I!P<aBDm_Ni<>)$AEhH#rv`e5iU~YEhm_|IGRHisF zwBpXL?5f#lpmM|6gvRJ~&;XYRg7r=Q=Q~2i@BE$KRC)K@`J}#1;nM~8RPf?Srt0$n zG+C36=wn862aOZ42hytnUQV1KzLk)b6*#pgp-qDumuz=vO|;4GRUR@hUHNnHAiw4$ zv#S9ig5DpTedj#DFN39h1UCLgiW#hYbok}mxqEX39BMLs&wlEz8qiE4GBxcufcXt6 zuFokk|A?ktWkSyiC1rU0^7sOaLtAIhIu#y^xXN`#59$jFgXebul5AWlP<fc1oCcgL z>Go%m&92tw1EbLKoK?pZwK28VdqDF_z{f=cVb-H8>?+a1Dt+?s%6=t?8!)Wko_<6f zH&G|3+V%6u-%0(}9dB%#X3S7ERk;13HQd@KO}t}d^<BbW2|}gv6l&-hboD!Hdk)z~ z(oCHGh^)SF2ltu?N)#JF^(<r}u=(sO<rpC-1wibTKNRh^Jrd=~CQUhHBAv6TW?=?7 z@{FYy?k$UVF*J?)M_#IlfqL~FaaM)@^_NZpn-Vk{@Y$DN+B%od*1lECvh~g5x^yG5 z+a>wc6|((=cK||U;dFurq6zC6p>lQY_M@hxU^AFnjSN=V6Q}C58EmScEI6&DOKeEb zg4FU7U8V7`Pu^{ZZ$@9$GamX<sV7_NQ&h&4nRCRcb%oK5qN^B+;wnr=Qb#z0Ah6h# z5S&HBnnA$*X8TwD{FW1Pvcv&^awqd>wOtThdrhT#A1fG28)ISW@J^;O<Kui2ibu0g zTe-AK6AegOD73c_`^!LOQOT96BVgyn{gI_}h0Ky}yL?Soc>1y5AS6`z0=&Z%_^xm9 zf5*{sN4*BOQ}6<+cqi3tcPUy%Ty<;SYErQ-T-CA8DGtwO9qpD)9^|#xHSbmxTGh_S zk9i9zq^3#}g$M_so)vU>pH+l%&x~_(tS88D!6p4y%mmhYVBo^xqCr8DK8lLfk?ccX z<^0)%&ZtCPJVve1(h!(U0R#=>@g7xaGD(){s(^e{mKmy1MX&#{tbC5pkw@HJi!(Q! zK&`~|$w^?ci~*-iavEk`m_X?tFIfipYQF9B;jBznU$+X9Ks!ck#h+<Ry3~oHU_1}j z4HZKFzWjXirB53<es9uUmzrZ60!>!za3}-i02&-brn+OzGW{Ue;z;q%pwQ6XFc#7H zPXz@$H;dF7y;{3p<T|1xgFA&E-&i)g?L6LFX{t*N4CK~l5-#!iEUYwCw;sGUR|bYU zl>n*6rv%&Eu_IZUA$A#uv5KWGkRs82Y8N}cv-MwLi{Dy1xE6x#DX^+bT{%sw9|@`o z=ov^emK73!EpsNO(AxOfB4s&bU!_`orXU%5=l_tcf;P6nM?d>?<gf%7|EBtn=~6Q% zy{QKaFGyQmkBXF>Dvh&nI14l+KDaRAvBW3U*HCY|p{aV`qcY9?5!TOs7JVuoAShX} z$t`)enxu0tUCtSxR2g}*>}}qIF}oH=5b78m$126DW%_FRaN}nM&6z-H+r1je_D|Xa zvY&$vC_&q+OgEq@$E)sefnu>22NM7n>HxNf`nEF*5_Kby10~q<8GtaLH>6PO7f0Rn zTMx8fDbkm|kJN1PVmGoM#sWx&o&VmbvjzrxX|H8D)a(?Q)m219kjjAzEmbK*1?FsC zq3y>!42emTSh=J$T11j%$}=717|${bQ*XG81eC80fftKq5Vf;?rnS+-0{DKWr46QP zQjxPdiZtMHuc}Q>qtRK#^9GLORx|2qG;YE-tY`GNWuTnJq7)i`a@@cn+f(BY$sy`$ zLDrqDZYG?&%*2(2EKge<PIVO@<$UFm-HY2-fPIjp&)-KOzl*v~pR}FbPpbhd^Th-0 zY7S{1ZZ3wDJyqv3qG~yP4c(CO6cZ&RzVQhiNs9(y{uu)LPv}sRZRdnK48pW*G)rfZ zbuM0H4YF*iG{7t?4vxj_m#0@+X~|{I>2nu&<Ddg_wV!j^KZ%sd9{N9Uu^uOH_=8W+ z6J6i$G?u!ChF~}Wc8eMeeUvo9X}{|yFVX+XMt@x*`%#{yw#CZJ1{+QrxG=_U5jXyJ zB9BesF%vfe*Tqz|u;Aa^)X0SlaDaguB=%UxR0qds0i*VT!_4@&82yHJRy%v0+n-+B zzGB|;l`VfH&ymBg(SM&o&V1mbK`t*}Q-$S^6p0EUCIk+~a|89HxJ5i$4gB-bn_cl* zP|6ewbGkbBXuu=o{3>6C^yQX@w%<XX<R;U#Ud+lBBj`v~dnCqHt}VuupC{fU_EW?m z`tOjt5tgOjrg86u#BptBZzXvDRhW<N22LcT&_hBYHh6jwueP@>r1wEgnc7GTFSAT{ zbee8JwRIH(HGqt2Nt9vbP+~Ur3;sTq*s3(7I2%smNwF|1Rc)bAij&!sYwr*FvofVE zi2W$b8K>CL_C24V=QeegbJeRNHrY*i&k~^vE((?#hU+h}zI$%BR0Dh7HLj~$&uHxA z^hsa?C|QJTXS7zT?hG8JgQ%Aq-gWqM&r!6^;D&O<<N28Bmq#2iz4UiDn!p_>Zcvk& zXM8J;6$yzPNCS+|V?EM`F~t>@PkdbDc|ka@@2oQNsGHR{GFW}QmPj$7bkurjY*@h& zR$1W?vlw6df<4TNO=$gLCysv`kS-L0Wf$E(oO55FojaORGS)E3XZ?3j-LoEH(I=R0 z&aM$UT3T%1(!$6=OVJz!Tz!C<j0PC<4OQ@3v|6HCtBRebcF6#YkkFk$i(J}B{{H)D zE4;BGG-~nu{k_f2lh6g5EB~pxHAW8}YPZb<s*(zr!nn*-oyd6QwFdQek-pwzzxjs@ zm;F-wOFkou2F!(PbjO4vUI}Q8VR_jqtE5QyxG0li)cnOT5@`Ze*%avyUv?V3xY`JB zI8*+xd7j(SIi1!K9`?{?y~gO=;NBa{6E=S~^YSOt7v(LYXI5_H)caoX@zJ2Xtq$js znsDOpsYXRp1wN%hA!K(~EDcl9RQrM3RKfRBD%0{+b`BT3LxPKL2^4&i@Q21yQK#iZ ziS87<t|^R_O#9BN*5>9E3N%xkaOf66F&(jPyd6zb6j{(7c>KlQP+05?a0(%_o~59T z6NAI_^A)7>-{$fJS+PgQfJYp6CQz02=0<!AwL1gbk$dp=r`6MJT4a>R@6-AT`2tdp zHrDgcJrok=2@0eoRuS~z!Zyj2nLYh`O`XIWyJndmwsu|q*0f$PJ5h7opvG8>v8E0> zzqJCsF*f`W*Y7hG**dDQnjA+OCq~OOz)3Z6D9_n6rs!-x_Kd2D-$fOMD`dP){<$Q4 z)2&l8iL^-x9B4|&W*(83mRB7CK8_~bXO`?-IAK<?bbElBWM3~!^2Ap#JE><d@;J2U z+gj<aIy_9ySzco2%vezAB*l0e=GmGW`g9f2H|CHqE3?7JNojKVJI|XfBgRk0$47Vp zPdroOi`ls9nv60$#)z5J`~IPKOW4~r-b_6Yj#A^L6w!pa@=CS(#e7p}-ckt2Fkp|@ z6tD^fV`Us>L-=A0q)sZ~4bKmrv~@fqlM98uNSE18@GL%_yynFs>FV5t<982p-kQ}e zmazTMJLA~se5^$h`=0~(pK}>h%7*d58gILwNA6=4M)^`)#kv(qzTV18s69k2z|-R2 z;+^mAmS9Pa5NF-r(4z5X<;Ay#P?;4zU{^BCUmO*rKE(deyKe$-(=D1{5(aaPLk*yx z@WN)}MTdSbB%4&srZPO$zd0RVDc-#in689)fEi%%)3SqP3YzsOxGN2h=yr+pI8vSO z-%Zs`GMMKdduGtxN}U#$(!BTEsWl+<re>y;qu}RTjWlmjX<C&PNHu0=u0l(8k|7ua zv!fb}Mt-*RcJPno_CP}mjJj~q=#$JShlFAiIs6Xj^mpUC99l!+G|k}~Hkhn3?TVOB zUs-Wkux^IY<9C!PNb4C1gG6WEe-8tQl`aj8!7Um2F;(`|@Sh4-QwmD-)Vw6y<1%nF zwV!MI?dRwjaG(YqRf!lg9%D9SLy>3Rs(*fq#e<%xe9!neF|4YisllK-0bgF*f0pD| z%5!uzz7wJ!sF}XIo*R5FjpuhcEi_S6dvWy(b``Jo+Fwqpl>Q7#PEjNWwoIF~8k%}C zOzlzgbqq_sd}lViJc(?zD6qcnK#+IuNzs+1dUi!8{mx{qkgLYFS6YuFh>FGF#m%2l zJm?^}hT75ycTJ^;g~<ZMOW2qM(<^@;xt-Djql1#DM@zSY`BX<fPn4qdJAIGE-OShv zc|8@9w>m0v=+ojtpNUDeN0Lv&(>lW%7RP+KgDZZ1?VDXs%2{qv6g`{sQICjZg2t*k z{%_<spO$99dhqVWw}Zc`P(1mgmxbs??aky~%cOxd$KIjJF#vD(8>(U^x(~ng6`}r^ zGSr+46dq1-mSYD$xUC6V-oIWiot4^vpFstW<wMx!cz((3c+9BY5_ljGP_6o-+wG~G zih`%K-n0xWn$IHT53(WoQG;hU+ST~g3_H+%S^Ka?!7Q3P^#jo(FU=G({O!h;YA8!@ z##59ugg{>u&=?AIQ&?;BB3seLH**T&W1REd_-6eFkU+*`;mGQ7EOF$5fl1S1$T&Hf zTp7ejsY$feIOs+(qB-kL=w=nq4Sn9%SOPu$+YW1j^s#*CYi~Wx&CRojSMblr3c#Y# zdt}`4t9Q?X$%7U{IQq{7`v2=%IiLDagQ>iymtRi2UvJceVJ^NOVPETY(lWceDo%os zLyHGlAWqXhR~tcJS!uGKYtDt$H&M98szso|OfOp!(TZ=*YH^PpcNn&xe~P#gy6tIg zFL}ny8QiVA-&5wPbZ|BMt4x!+Lg_vm1Z3%2{hYK&6~<572#S-}wPn>?fl->s2rvb* z+pXoo)W5=1{ZCrv<^$9nCl)y{$=e3g=QTe^Dp0D=1;PcP2$KwR1nP4fC_qaWY~{$X zcDwj}aFC228E8mYKrNakUPj*YQI?3nG6bwS_}+*y?5QiK`RMohxG;<1+klX$l!1LW zX>Hy8ZUJ&EC{<ph*cM;BUE&{ZDexpAx2eO)7V&>BnC-r*)d&fRN`QZHiD^fw>UJF! zZV9kv0ta%x&8N^UiCAJEz{DIiJb1Xd%#fltf?AN~(&ML4d~m~+j#+)Vb@s`<ii{n4 zGe5G^jM~i$>!#p9dL1`>IdmkUrwc=hJk0ce$|g2CQk5kQrgGx%K~OT#>ax>0>FH|L zjv%W?pN!?tf<^MhG_><oDN3vfjiEf62muCf@Xe5XlM%tI>YDJPTzzRwx-A%6DN~|p z?WDF1;?08T)(9QkMbG3dH(QH0Gir0y>N~nxCne~=hGq#CFzvw!+0H#f9@e0gqpOYM zy{^316<P1w=fhCL?gCprys0&Pkd5_VC7r>nXZ#C+fwW{!)9vBpoE?cfG8@?3f70=P zUaL~ESk)NP<b$Jt{j~r_Vf8o?Yt~Ha2{tPBRch@Pthulka`5vM3vYnqDX)M=neXO# z>ty$hroQ9yq^69p3aYiY*-{TU`AQnTow!f+Up}0pUv5<UrTA+7qN+!JJ&9w-`jwEp z-}i^=cLG+=gHO{y+dbNjpqw-mB#ybZP}S0xm(R=?HfkrW*Q}&4QylQ3G*I;|--H*3 z3PFz>CrYY_V100duW|L4)B$CajI*ymzzuU9H+l1QsHjrmVl6nExN$8L@TTNjDIcs? zk*Z!jWx%r!fqDzEH@WQ!wg_?;kbs=wv0f<<Ijogt@4IW2X-17_`s_!gw*yr&rumoc zlWO?+&VvIwjLl$0`dovTtcFzn$5)m;L6#~KJNLi9{woQ+4auYefr7%O5bY=5DDr_N zo$3!;xnG+M!Mz5PG;cu%67%U|RPpy4>|G7jDTA2Y;5DyBr3}G9G*OjJW?n`}(=9s7 ztLfcJdcfGC^a3OnEc$4P1DALD%xq+;nB9DKT?qWfUB4HjPDA7B3v0}RsX=vlZYNNI z*c}hn0&2Ra*H#<wWm#Wbr!8FI{Y3-_rQzMbDmskN9f#fb=d(0d*g0e!B=?|dK_F-> zsa9*`Pudkh9|mDsKCPwXba7*|EOHHGJ_wpyTfpq`CH;x6CRAAocws9`;o57y6{^+K z2az58aVdJ8dH#U=Q}o+VMLz$I!>^>~u%gNm?EL)_<B|50$1WN*rTM26p8x%}JD>8% zFeOllbt>5YwEw9B6(FaYC@6rQ8-rbv%?EUu8A>ALN0o0e7kYP=vZ>Vg=IMsbbj-QT zLkw=+jF6$Ap7$<5cf5fn&eIFX00kA#WN_3F)2%G&morHA#I0Ly^xSEoWYjT$l}I+p z>QYXYG|a(;pAHc7lE#v;lZ#|cjiMK?79!dDOuV;zY6z!NrNY`x7`2GcP;v+{B71f{ zM{f?)zPjLRm&lnyGA#i5=m#cSUisD7lKLl?Nv`hla-CY0ItQQUqejmGSRCm9oApP` z#LJS~2R|}O1Rz@LdO{Y}rP?aD;*=0>Ux=;uC2Pdz|7iEXJ0x;`lsaKajg_(l;%H5x z+VjyfeT9ad`)kQLkq7JCuyyAyhoRf<1#15%Wn*>WQd7&3{)Q?-jm$6{NZ>&qtnr4} zJQN{lQS1A8$_vDLQ=OE&NabAN!Ap1MB|hXjHY|>mDUIZ`S5S)5<T-j{6H~u)8$$L( ziuG~q&)}#Pf^&VoFBx`gBN>%>$AQtjDfVJaK#G-;6d2))mbL^Xd^YdXcJ%#Daf_72 zJ$SV>Xlsqam9A-2!EBt6Pgr?U-4hWFB~Q6~@6lCf-gfP)w2e+A_hW2W8a+k8U~SoU z&|M=&nP8LG)a|0THB!vyk<vCAnp(h9tc7?WplT-#y0!k?_MCQQL&jv}$Yb7|8<!Vm z5TrYnMT}bcU^nL^#lGCqVNQ^qfQfC~P*2{S=#I2*WlmNK;P%Pi;*hQQc>(FXLVaC! z3A7k8?Hv98i|PMKRyBJ2s+gE}0WZ*FC7<r=(sc8cKhd{yPO{Rn7p9OZvV+`I-<D=+ z0_sNM!f`o`9-N>jtV5;j;tRX`XN++%&yOGlx*BON7Z)O;_W9H9`@wzhrJ@b^rkR4i z+Di`+!mut3YrS3M{N<!-FTdiIioXW&n<A)mKdGmv){0Q%iC8jImB?qmRnvu5EKNlf z&GH}I<uh;%BCjsZJ7wl9W@I3LRC@g5!fC$DxPLi3-Q50OC3Lii3^Ry%{XDXJ_!nG| zk1sst&RiHXP+DqkrT94qz@pLzT}T690girJnvP+e-rvdtZh~k!sVnT>?64!(lBEL< zzoBj8KCREqUxucP45)X>8O(XJp@VB`X_$h~oFWhe4#m0d4<{E+#%a#iX#~fb{|>RY zA<tYHyr~%YbYbC}3hwUBoG_MdF_NGI)fAb0|0<|_V{Zi2D3_J4?r}q#{`vbny#)Pa z>4Y135INv|dZHbZ6S?|Qry4gF!X2wbN@N*XrJQ<oa)LLKfWXFKAU^ll!<P&~BAg&Z z(TMH>3m0CgGvH)xhV$;DESM@6m97-)2n=Q{pCVgZkF+iy%gdOhVV9yY^YfbR-{2YX z7Zwcv#6C52N?}+6+i*`%o%tDT^OP!9eM>;8--G)xl8-ZqteDCyywkO#IC2ctE3e_g zo*^s*A&&(Tf9~6mVi1DY?CbJMXe;Gd5j3lLy4s=c&=#md@6@Cs-dAJ^yNdRESg#Lo z6CEJN2iNv(#0tJOJss|aX&NWqv-NKi4arI6xKgdYhySl>`=2;FPj*Y|$pM3we3pZk z&!;GooH1gQg^SWuYAe(zx@w<_dgITa9T4U(uyhg``Da9%@^p!tK><>D*lnrIS#BBp zpSDhnrL*l?W!I@ojn0)U0Or(<jX0&LURge8w0R0OW}jfARw@#&EoRa&vCw4cTWW4r zI6uCcXrI-<S;y6b3*~MALb5HN^Dq7s<mS%i&XrE$<c8ijDyBH(Py6CyfdD5e_h8Yp z`ub`4k=;ms-HPay--cd{)g<aqY7Rph=;Vxtxk<?q)UhQez^@T!UOAm%ljy}^SRJEe zSPG3zj?oVz%toH48k4k?9QwY;`D`b|dlsLBg+WbnGxV30Ii+)+pC^$XM4eys46>{R zd<p@6CW{^!=5tl>*7W^?S0Fy#{r^0Re?#?OdMEL#yApr>p)c}sHDD^dN$%%TJP8Tl zW<;i@h*lT_zZD6LrFpX2^p`Ia40biQ8Xq7-C7giDaJFK{QeZArZ_@zR)b;p~VDp7a z4k(ek<039-D0$)U(E%N7k=iWeR<Ic?J@TXvYd%1ORXzUNtk-93K$Tb--R=yyfddQ{ zpOj@<CzVsDsQybT+59l(GblYCBaWr8qd35Jc8a$_TAr1z1KwO6@$pJ0j2db)=fUBf zFWkVC&v6}!qWyQ8_#4%z;Hs;ee)rnq`rpBe71zwz{e*6iY$r=oZkv-=v`|KNNM_f% zF3bmTAbx0rP@NIW8@6gw960(q_tBzr-MPE#C&c$3;rg!6n%b+Oye8jfuS<?QncXty zZ&%y(-~K<fsiZe^+G6s^^?KAPV~x%W5uHtZ_o;26B$y%j52f&*!U6s-c&q>L(^7uO zldGqjRv}_hU2iVJYAAJ6Q5#ks^PK4BWxHm)4S%~3!Yu6wTxR2<SS%^>C;G)yC2rg| z#^6~S--8YESd%jKpCvaRhCdRLhJr|}hSam<-<qm3k*JTr#*yAY>&_0QI4w*gPa>n{ z9EFNeIv!;-K-n`~<g;Ur96<@S0>mf7*X6PTaCgE?W0)amg3C%-MO!_v^jKOY3z;y& zV4Y|yU7E$6hIdZl4LH8){GngLk^4SP&bdn>R*8b09AT8E#x(+E*8Fy*Q+h1lx2#`3 zzOPW?h@8A=`u13V5DH8PYO$9CC8q0=uE_DM?0Ydflllq0em(np`Ur-q&?^}QH(jjX znV5-R(|^|-O1F9_MfmrqI0fI&xPO5KXhl#5C%6!1etkAwwfz0_cklGU@4@a5wu?7A z&uo8d(z*Mv<>>MQOIn`iUd;vgBcy0tt)sIWrE{e6)7LdpnoO*9UcpN2q>~uQV?)y8 zXqLkr9(F!4idC=nMyixEhmirF@Oi|lOC%-Si%4cdAaF1(t94~ZgeESUTKR7t{AfH! zYqKH)@9gUXaF5l<5L_+D#xRY=PTGn=pS7>at`7qyEtX{Rd8J)H=6idLLy?jd%2Ktq zjwX^J*^?BC$2xF6!Z8M=z{nDp=HyqW7spnEDLp|8TSZW#kqo;19`*Us)!%#hS8A0_ z?(l?SH~C(A;twjbt7F`1KhNND;(P<j=+Cq`<m&s~?&jD23nA|rrhDjywv)3OoM(gD zzUf1GdHb>R0VW81`F3mZ%K~Pt<CNKs4r=b^|327GCqX*=^wp|Nb%ux#2hLPyCF7#c zipF7jG=%=wm)lQIw+BCLU6^3+vuD8e*PkD5UK-tuJYoz9*J0@EDkV+cm^J;m9QpX6 zfXRi7cL0pJ1$%#hhMI}U%kmi(e$u%y^)189Ic*E>+>cR85(WHX%S_aJe_WV^;rj37 zWqaE}9vFw-5OT$u*S|;)TE5h{WQe7C0F%m07Tq^LmWK%E*f?{iRQM)IX7zIC`rwy6 z6cPXN@xnW^2(KOFOXh9W(=GD$!q(J)c3J}+^)b%ud8fzIa61)ImbFmNiVh&92<72a zpHC<%bM6S2W-Ca+%)VTOKD907OE|W6Gq;@9P748M#XP-r>4%r6(*+;d5+JNHa6-$g zZ&YmLkvh*IMrKK0t}IK~9`#scsoW{mTK`O;?(aZh$d!RwU`75P*lXLKntnJl>f-OP z-xnV&hB-fd>3ChtW>K^Gw)^6}-;b`BI>+G<JBUx3`)<U^!SD6)&U>tf2Z#IQx!Tbz zSCsd{e`Ig!3qK*=GGyq39M*cB-w*R&b)V{kF?VG%+r7P-^Up^DC`fvR^UiMn&}T!< z<XpJR3ETVo;zHkQP&KFwGwl+2wFp(};H0Lzvk|~E<RYKa(K~u*)*Z)%=O6TyT?jl} zz58NTXc<l=I09p8yg!y7gG%PlD}RlQHB$h?HhNS~)rQx7mVbVIA0QEpEHD^j*6{>4 zOrCchICb&T_)vLkrpb|=edTd__33=}i92x8)Iv$;S#Oh{y+6CaVO0`*MQ$f>N|&zW z(j_fwRvQt2yRC7vgkg6SH?TAcysFCPeXnF**H=D3ZmlghSH$>bHl@hqh}RyAUoi)g zr3V{PsQvir)2j2y5oXZJbf{=I{9G2YyB4rnt!pbf_((D7znj_(mU6;H#NU4&q}-S; zYF>@K9(4cN26%V|+>7`%bI%tz&NsECQ!Gxlf$`fLlD}?Boc#U^e?h_QAJY?4UcY)g zxVD~rs@OfSeV;C=G#V+)b)$GfSf$+vC<j!#kd9zjJmyGTa_+pkUcWwxL@mf$06;R2 z^_D)exTH&u-8~qei1cDxeu>H)Z`5W922_8Aj107(mu<D29$$zWoq1bvv9jA`-`$Ez z)LMAlx!NCeJa~9~zs-JD<%<ZfRy`jgMNL|lJef@Bn5$4yBZXAUMoXpDc7KDY73L*| zv}86lL4^x^Ga0uSK42!F1}}XiguFcRVdOHo^P~0tx@a9Ic&RHG#PsptieRdp$GyyM zI1ae9$O8kYESFJjPusI%$4XQPUmH6{)er&`SE{U<^-T|g8lU+~xD9A0Ba>Mggr(%q zeKl#=2b3N%*dYzsh(F3S_4E=9;DOh4Nk?3|ksCoqD7`it?TRsa>i?5El-%_-UL1Fx z+$n)uY&&YHP=qNx1qM4GcK?-kxcPIsuC(KMfRsb$ucN1}@2`W0CUpccBu)<1GW)-3 zznx^(*}}S;WS_(&nM-vnMNX|L2q~#i!lWz(RB2$%7bdfA$>zx|W6`8cwCt>=p07 zWF|vNyjR`R1w~hgdm~+9XYvFHRIWrf;&W2$Q3`6&9j*A{oRJXn8dYLn`#q1!pw(E4 z%QW*-b2xt|w(PYr9Yhq2lo>VrlYCoL8evHXHye}QgJ0dfQXp1;$ycPJgT!8Te|x-m zCO)WoixS~#y?GSwA600gA$X8jn}14Y1l!;o(ww~JKhsIc$!W4ZRNRPW;0Eoh#(NWw zTfbCHJV{?nJf%3s^Pk>rs-B_2h`Co%vBw(M*VC#x{`?3z$&W6(V{~pJP|oaG*b!zS zopYOsvPeZT{;f%R7%2I_qnh=kH05flRP#@54xEnli>JqLwCasM?7S#{Y)<i$QPSb^ zZ%uoh&!AInwasNE=EAnYA?|W25AOP-{K%8;>7$RZs?TRt#x0|*_tB%}*vbkPh<tBE zt*b^#N3zv<RQ9(|k)_0_U0l9t9*ZnMcu2V^*7kd}+85u{RuOqS^#1!E6wE|v=xzMS z5!%kA<{S%qD{Uz-@g`NA1R+}mFRlel07JV^O8Af!&g@ma?dYr3Kw=5Ae6K4LWaqy7 zbkr79V}ABp%w>Q>PGBPUp-I!E!X_h<f0vH=@HTIg2CN5O)^;uW+`|0%{r;~~rCS*{ zV$PG&07=xI)rg3BK)ga)lNtwR4@My>X8ZB>S4jNsb0$h893AFrq*4C~w0xwvk+${! zQT3K#Q9xbSu+k|r<NyLgcPlB~h;(-f(jg3;LwAETh;%ABbW5tVl!Ab?NDMFx^Um{p z@Aux`*EQGtnrnWXv(GtuueJ7Gc%p!~xI+F7c=fjBl-CFW<iGM%IM$FlAWl@fv!ZrJ zWmX1W(m2}})N^I#r3ncY>L}qJt|1okc+IV?wCAQSizn2A|K9XacJ;kkyTzV8M3yT! zoi&L-Y;ECtmSEP3qD2M9SP>?E(&+NXfgdRx!)gm{`xY)#A$@NP%IR}|8q;_x;MhnT zLy7E(TpZA;PF=1IS+D~R=5~TtM$z#v4Zp%py9>U!WjyF0@tojOlB0cnk$m9~VmOIW z)t6Im!l($0k_I@d>&z0`Uc7vaMy^zu!07?4<f_GIpI4cnueh&F<C7O#WI^Pm0g$Qy zGkq9)_Pk9`yktJO7)%XC-&7OUeL|Rw6h!i%2*40!gn9<`50>OnNyjHVg&S1b_5^wK zyPZkPp2HYk)}}I4eA@LK?5h7(kmvTGceczFzk4DA3^=*fa!XLOm-%sT;Ntr{#61-I zPlwg08`Fh7GNA+E08n9PRC)cOe~9r0$8gOgfh(kN?~1&(%o#2svvPKNeH$TFk-!C- zj)e}s(oGs4KHSsRB6jPRIXkmoV=A*PAgR}=8S!UYuS%4~rXUAz%Jx_hZK{kkhw>fz zzSwz&_p5oVa1L?*$bg>g6gqkMA<mwSplj~-DFLNc#(>lBi-5D-lx8(}Idk%IDYsmY zdiAFR%j=hKC|1j#=3c#06(H40(pIWSZ+T3?0k-cWU<N+MS)I}3!8+v7o)}|^mn1z) z&{=5^Q(zqgsZ*zj3s?*2v|4=YsNU9JRkX+~`u89f6Qws0ISLkvv!7EQCoQ%e{LNh( zmHAa_VQMpNmbRv35%$TwxawpYX5adgO^G@s=4T+?+@z-lmL|;ZLPA%ENcZewx2Iob z4*v0^R2KW(1{|d}p^qlnXqQB%{I{jG5Jq<o5kZ+;SPc4pxVB=t)J*#-?q;owKne;h zAx#0$^gJ6+tHRRaE8=CCnQfwN6wadb*3>!>lQJ*L70692>X4*!>33SFZG8>}nT;0b zF+>w8`eHbA@?nd_ajPweNI9RRmvcF)(2bd)xy?9s1?;ci(Ol{bvZxQX)(+W6ayQ68 z!)1e?3yI)R+j&{bl0LC-9<ZK<y_O|!e#D%uJ^JQ6Pk60DU@ZPQ8hHJO`yAcI_bPdA zNvqW-j^LvR_a`H>^Psxeb&Sx)CcJnpv?|r)5zOEaUEsgWg6F#4QrWVA4q2UX7ac<^ zzYenLh{y4@AS`#7$d<=E(p6G`3q8Pu?xSqaSPT*Iu%{i!V@b?8MDoPy^a5S>M*2?& zTgRmlQ~MgM1&cmS*sgZcH&L?qjCojnL36Qyem~{tJVYcBn1ZF%;PUykd+VfqJOLxD zPZIPU>)j<45ru(kOFt!?^VpSuZtySS6v=s-byucY&sY7EU)8KaLi!}dNX@u*gcTXl zSj2@pzP>5!%iGOf1(S~ipJz2XE~M?Lo0vVBY&PGe4?lg+L2BIy!qNn=pyxBhL1s(8 zDS9Qy{&;&<iz$Lz>lV85w>3-f<FYrY!z(|Yk$=H0Emir(l3TZ2e&ozCA}(8XQ=?VN z%2U9c<bv{j=<T<=W6>t7o5vprIjlF)g9iuXWpSC6EL2R^KCUhJXlmKVptV3m83|xS zVTdk&nePI#QZ#fV{N~Q?TnR@)m#D6~;*M`WQDoyR#O&ybgPAdKUp82lMKy<@mXYH9 z+v`5J3uIsaMhAb#t>w2;`9GngnohpH%#$q}Gub0@$?d){+302Cv>!s|bJc3)p0EMB zNOnbnj+(aEa?c;1oT)Xzx8)puB~_Bv<bGqGwXI{x?8@4Am(6D$qU{NIIGkzZN;)4$ zUTmGsW20yHEwL1KPCZt|n67&&(#j&MsyYz|QERog^8&*h-3LikS5B!i0wweh{S*E> zs50|TNtR_=0!|@U8;LnHw0J*@%lDsf>^#r?su`Lb9ssv>Erwk;pz5D};UDZVN|HR) zjX(D{E+XDBp%&qg@cA~-GYO8?FKmD(1_V~N#pVlR>Bt5n$)tbh>88Xi&e-%sNWJRV zzm@I<Vq-G^9FoqvmpVX=uoD-iNP!RCV&9xUBKkTmlF*|+xs~nLyO@gEBCy%Whm$wq zAIxm*)8qFq%3QU7DE=6*aH!w4e|KhP(B*;DX%Gbmkn&vJ>U@d&>i4bO(kRJZ!5W|% z0uS%gqux8NtUvU`B)w1sy{v4zC_If(&mD@~OpbeR!f5nn_PUvfRv&yT#FI&9qpD;) z^c1g9T6RU(+j{eP6als<p&UUFfi7P3$IsM!Mf9d>6x|Mt|Ml3(+iQG-RBhdB&8*Fx zo!;LZ{$@@X)FkpI)yBG{0}NANWv!PH82d|~%_Gmhv%3c`GbGNacta$ak{r;J$cxDd zsj+Z&QkZQi9CiyUv}SuhuHq<)bywSlLys?%T6tRxEmWwr2jj^`mf551o6E}L&h6`u zmS#U%oPKwp({z@S!$uQ`)|)Te0oDUq6g!-_^A&!meK=g^`4(#R_MwW)-KMO1B3?%k z==XX~<usQ@^U$Bzz>!KTHy~RhQ79+y-9?nV{d<S<%XMWKdZ*W0I++T&s@g2R3)jAz z`$!*6kcWBk1YduB|2S9f70^A!bP8WY2p7Y--R;_^Jcc;sCk@u=3u?-rh2Mkw6=f&# z-GM3&zU6UmuS2Qb3b+n(#A{sb0chBLzU*a$Bo`Eo3>@Sa13^ID#~1F@RDyX@O+xA7 zi<=;2p~?*4EOqv2&8Ltgm0#2Ub#^nLd2`er>-Qu5!6+)!^uu+kt}{`U?I$R{>N-MP zJ2umFX_Y_Xm`c24`HHZL0ja>wfE=ezJ>VU4Ov@&7bD>pxp+ji|4aoKyS8ZE(+;mbL zGP(X$@=X@FF-tq*xXa-?xB9}XcnYpGYrx)7qJQ!un;m6Ex><9PhN6yJx$6_{rn-83 z&+QS6^GyM8bMiCG3L=f%`6-#Mu-&s$%ZJYoKd3a8<~_`dLL3`*M^+^*iWy(=f|`eH z))B#T$kvp(>iW+(do_BtrgV*M>ymIZD;vMbuTIa1o-g8;DpXBBcOmssYCn(9);FrK zi)oWFs?{QI$!_4SBi$@H=CpB-^5yNirtMozos@FdKhtFIoi4gw#K!RDx}$094VHuo z3gv6}7X*fQ+zNXQ)C3{yw46##Bj5<ejL)YDk%7(f*_aUl`y<({<rY{V{GY2`MvY$V z&Lgi+CDp{xS9Wy;Im^U<B_&u&{(V(HFUQy)Do>Kn)_U(zMf@`Jcib`MgI9Rjg|i11 zSNfIh$c;D^-;4B2v}g4UVZZ3oa=70^m$VER^3B+&!xq^yFmF*<9Uh?76~##2He%fK zxlp(xKa(ti+&o<$JHO$C!Je9FNym_j0`v2-csiY~!}F2utQ~2Y!YWCflu6I}R%JQ} z&n7KXS#!7C7Y5|vLnQ<3etqkm)h+dCbKq$QeaM`QjJq_(G-9o-zIc#YGf3SdA1<{I zCMU>LtX3>|XO(dNnv?xYv)l`V3`TUwxP6atu~q1tL>wck#|5IA(_U3Qou5^j<M>3l zOvVWgh)o)HzjP~0d)sYGafKz3N}YZAYh8t0vTVfj71p8g3n1w;Z&C{Vpw}kZi^7WA z@$~*pw@jRVwE7C%MB6j=Jk35O_O)@k<&lFR`2#gSV`DCg=%Q^4!HlO4i%jn%q3C(5 zRbV+Wm)@L{Z>w?J>sNl3<H8I7qC(sFg19+#hk~_=uF`)o3#dX%Wo{}Dw)HM<n>5zu zKAj|nAQD7Ljz0uGdm1toe7=1!{!ll*^+!uvr5n!wuyXpaRWvJea%&?rSo>u8@Sx+V z6asT6`Rs#5pmZ+R87IELL`({~FP-I@&t6tYNmnifbQg>Bz2|jtYO9BVVP#|GV<;IB z&iV6ka33jQylW}P5l7u7A0l|uuj9zmG*<7~k0<ESAo59%8$3#dwh*IJR<~g%(ibJW z*Vi}q@FL`rjI<?+?}b(>+PV~JH46!AJh4pYKMPMw6Ppm}c-i6eLQM%e`1I|uu1C(| z^VahRKv{e5Ngpxs<M?lxhh7$2Op>Xq@<busxfht_5@zVC`tHNW&)dr{_tXzAu;-;} z9tk5P);V^lR|BRM-7bcuH+X9g8e6Fi=YFOnjgpo9?wUh#k3JSFSQ51pYjb3*4hdb@ zGm?M4p)OUoLo6I+zc~RWcZ2KBNdb19j5i`@vzw*PEaM9m(oboca(~jCzIYttG+&fM zr7H+LmE%3yM+5pgKGJ81wGnIGtkzIza<P9OP25EBG}*ML#=(EYEevTi-@pRktLqzH z?Hotmm-6Bd98G^ue+J*?-ww_#&8QfOhGmlM`7AOw%-!w2T+4k}Ivt$5ywF-}$V#?V zj1cyj42>Aup$gqP7)NogOKnkQS7}8I%u0*Hd*=?s)AZ8>n$*`yITS|N4&$KcJZ=zt zKKNQg^-0nJWrToL^dlR1=+`};G70m<Zn+gsD%DM1JK?9ou6I#ZT{pY^pOBYUYWrVB zQG+`kh+*Flm(V{`2&%BR5Cr?(Y2&1-1^3t_#SS;ABGGVuY$iI_y%j1nDNp~YyXe!$ z4BSEQm9zjk@i=b>Hqnq_3w)N1>usZ|X1R*g!O8k*LdJ<MlErqUs7cehZ$chN2r?Mq zsa#)9zw;{*!?leUI;g!3ibxJ9cXb7nmUD>787t0(rgzFaX-nZujmh_zC|-Xq)`>p` za+7!Zlx~MMuE*9g#+%~U3s9bAV9C{IQF()+j`#YEq_ziYY%1Ez&OSoD%iX9O<^Bb$ zNysVeNm)3o1sFUv4MiFGE$<5uk}^x}C6#VLubnt{)TC~2{O^kDT((S7`U84yH+E*u zKAhy!GmhWg_VpwGWQGL>-h2!R1PyZ;R*gpU>&Am@dzRL&e>Od6mz)-c>@(<zS6VQg zXNjw!v%_JoR>v*J(;_uLS%NQ*XI+C_W-axXbe43n6;y(GRbL2LR)~IQrXDeJ)Mm;K zl$vDQS3%Fcyz>KTlDpVX!)&9(0>|9C?{66bFG(I0w5Z0n9=61gvohu9V-J=6J`ZqI z>U?iWTY3HL;nxc`K{jqHFjTOnki0UbLpRs0@2C*hV1OX@`&)i;Uol2ntrD}W9h&|8 zpgL=oE_gA*6gPt#gRp86a8*4+^8UB`yE!{wLYlay>G1f7R^@D0|JhKrQ{HZ&R;8{+ z&<R^#wf*UzJ`RBd#zO*jt#^2M0uw8%6z0HH+EW7s=2&z_&Em)-K)Sb#SG{_sJQtUd zz(K2O>F^a{cv!;)Cq-jzzv2br;#%~QFeAY*AChtNgYw#9`z?x0O1CM`p*349ybBzR zX}h5pYy$r<H2&=5_D3PHFcw?=B;B6_F~6P*QQ`_wp0P)nY)x*Q;FjEdgayf@j0ruh zYplZzY`;Kqqeic@8F+V+&wm%h%zIdD+^b9;QmctoJM<wxqX+QF9DW`jzq;U%^cc+N zszd*X-|`{7dVCq(+~uR`y?>BN<UOv+bye;8%XJl!9|Zdx*PH-t*?1w9u%c|DRIiUq zr1`{tx^4tF>F{$;(C)(=GDxLLG*#wq3vGWCadQYIdtH-r{=vIsK45KA&m#9+U*|K{ z#gR3@NQ1L}7Jb(GQ1FMMgA1AN+Yd6HcV-Wx-uFYNA7#AH6H)N%Kl3yxQ(t`y#mFE7 zAP&@C$qmDWguJS?>muW%PTq8Hwjq!Jw%?wWJsC$fGGAHU3G-0+%8Z%Mm#nj7O;3iG zhO^IVoG{VYosOlv-GDDKJaC8OdrVbwv}VQ1pd{W>hp5aNqpltHt%<`rH~w^6zH3-} zU}&osL+08T$F4;BsV^Ibr@B+kE`+tZe@vC}jWbzCtJ4;P@G&VV!83c9>pW6huttn) z2S5L*V&$ug;5n|Ro#URQyCC*BcKJ9}k6rpFjE}i$UGRx=B3%)ll<Be-K&3ryAxgXm zqHRHD6M1>uaJi=-JGFn(iR}|o45dBy;!{a>n4{(_r&KzbCKfOOV_Q8^=g&i{$;R|S zwq(h@-bIwwlY;%1QaK5D7M$on)TvSNcZX5US=|*BGtf)HVIWNdqhp4JOb?28r>GF( zaXCE3O+^5heAhn=<rq^z6?3#T7_1gorP)&qOo(gcYB3}N&!42o#^GVlPKzTpSFsWv zV}ra#<%64vRNTVOHs_EYiS(|;$dIh(r#%)J5rYXd!))cRx7z)H#tzX~pDE7U@gOAJ z$;*(E+jPk=gcbbq_t@Eus8$~$b?<r?SLUH=HtayA#jL)>z@%VgFX1+l0ONvE;{%83 z22aS&f%_a~t!~Y!8>EB27mS^+`r_5<vqJm+q{8TWqNoBlMuGkh++%T>n+#B{;-Db? zaawe$(v$DG|C=pqO$Kgs8gj=!dcS(rqUo_N5qeG5b&GY^c_{q#^tDM{J@}RhU$Pey zpGV&iETEN>$x$Zfj#qQpcNBu=Q8e-G(#l_3wj*EaG$|3`<r`7kbre$-(}xGi>c$Y` zC}4fr$BjNFvQem{SNMyyT1{>^6GYysk@oQ;Cr)AY%c#ScgQpZhekBUb&(P-X01RxQ z&k+vxz?E>fC$98lq!?7P>Q7w%J;*nQM65nCT5zRw0_&kxDMyb%d!S%7(KkS?6Iequ z51!1aVh=-+Jit%>GCWaXz*dO#$HWA>=pWwYUp1ULg7%Fb+&!p{%(h5QzIPx$hJ-;N z`~5sB4CzJ6J^A9z>dD;_sA(%p3lu%^_$S^xcrG!1WL#@}>tx}9&z#h%hN&Eum{9AP zF#M}uZ5=6hd1T9AaH&`&$I-rRXFS$k(dW~&m@93=UW@hvb7c9_5tmAJ=3X7y=|XZ$ z=9JY<S&+<m)zVxDYG&)U|BL?#+UE6oI~UbjPBgw{O*&0+o_7<O0G%<*@Ek`ggp{=) z>--im@2gJ`Z~K$xO3AhIM@z+=13I)@G}JoeV}D!`P3oo|>=$V$x#ceCk*~yw{*4e3 z{e8b+bx$P?hd)5Z9qXw2b|55G{hWq}Fslr!A({Eutq=2C+OBwoVERm-luaEqxORLi z#>KBn3+H-?T+X5JHzb@cVA~{6VP-{4)NK#kEmaVd?ogm1xiO)pQz;k1u&cN`p^066 zd0;a&RcrdRdD)XjFe90rJFeAGW?TrYK}L*Y|KvS~0%5EH^v#PLu)Zv~kS$x}<Hm0~ zYKUEPp@=HmV9yw%B9uZGKe?KNfJ=;V@V}B%UbQcX;FL-{SGBy6a@EK2MIq&9JQT?Z z+3Lg;`m$+bLRQv*GtP)n|F`GdVP0Wy_M@+&;a#NGeb6#DEAiVH8UM?cuzIWDQ?#pl zP)MNvQ4p%({0@>fzY0ON1j!&hwD$XrQ!KUp1mZ+VS(ZF~x^F5Isn9;(qR3K&VR%4^ zIKX;6JT9X334_C$<o;gK2BwK}#D-5(fVxFaYmQ+;0yGnzoo?R<f(pj`m_hHGpK9xG zx*8&OouyU2@Aqk;CP&Xl<0M&(M$9renRh<#&Y`{_`{7lZ(hpW>-&quN?Rqop!9xQQ zs;tscUf+D1fEH~m|0JTFE&u^=i#dIbWhBq6{I+6nvKiMZNXL_0zC$CcxLoKKYc&W> z#)R{;Fvjj_AfrE86V@f1uRr)v@A#J6Y`TJUZsSomxM6!u578bEn;!SGGJn`TLZ{AX zV`%-RkdEGP)Df(t`+ia8W8gz-3IhVEk?JpnKj)V#?>AD)k@mt%LUodhbzN6Sf4#lI zeBmdJBK4d%BH_En!WSp_62zbC2`1BUWZWTl=9Gk?C>G^N+QsgRE%pUo!9?8{7q(F{ zN0s!%M~te?nd4C6MS^DRH&4j51!jAtu3Qg^O>KpS<IxnP06r=1_A*F-Gw^Mid4fER z`FNbKlj39iBJO|7aS!c4m}h&Ob5)uf*nA)@oCN?)+7N=D5)cEUY}2?Z!8V!7^46P@ zV>Fs~qlr}f56P|Fn&FQl0+{8L^Zoc6XQjRF&SfII;5De`Acm{o_w!*7d+>WLPdzDV z#7O_;q!x-FaXs1{YS}I>;K4E^z8k!`CT^6$y&d9c$@;`~T~=qgIc0rCuf6LdvmQCq zFVAan2DLTPx@zuhAfbdvT-9VscqGxDEMv5QH3o*72muBhD-rX2ks3N^kswse2@eTe zxrP`l`HGe4uX}C(5RAAjKfgO=c<4VvZlD$qAooAow(iCeyHk*`%dng^Nv}J>LchO@ z`dTD3ZBME?(PYUIPj+`;yPJo~>7MS;>4_XKH`9RFzzf!z>ThYA?2J#oIe!Z$-WH6& z&koE$6nWuXzTAyx5%91kt|~#nP`M@dKl?q8%o@YCNFJhHwr-HtAACl;>-+1Dlm#ds z?oYHHRu^ZsESK4*sd|)g97O5}O=Pj<BK^08;sqzu*D4yro7HC_FZHuuInfnRnFjr6 zFUr?@!h{D9i*}tzAvC!9M6}GJfmUf<tZyX`kWaiP+2PI3MnI$eGYZQNtNkNw(_U#g z%kC#smI)XmKB0U3^Tn;+T6Lc>2W32=V3B2{!rmi<iU~B43K?OMVgM&Hiln3jiweF? zvDuP2R0_#w{Hq+aWLEgW0=IT$3{Ae(#bBv@1m9#+a7yC%ABHs=O^6o2V@Pd%Zzsdh zMdbL*Me9s1nOmUo&gEDK$|vjZA1YKZ46e8P+b#p18v5|H>0x)?<JO}kgjHm2^ZqpK zYLgwce6hP9bH)4YPvB5~2xJ_%+<(#!xl5NBx!1-ymveA!Cg)PA<qKFqRGP5|eUn!r z-`VWQH?vJbrvPjiv;|e;)(ws45)Pd>^3_i(h*!91ROFA(<{j}yno^U^6qB!bJKS9M z-NKBn-V?d#dtycm^o)JJGlZcM;i21Go5AyEuxm4ve}C}7=GKE~9{o}U)wkr1s`88r zBu`x&5Yk6f38qjmDQer8vZ>GL@`ZglT<OKXcx!B3Cy`K)m_7`G41g`QesI*$SM;ik zii>yDj-z?Ougzs0R`+XR5{`WcIO_BN#KG}d`Wwb?7vjiP*U)``<UYd#QU-#q(r%cy z5Gr~6{yY;Sym;cJdIZ4t0oz2Ba@3lp{X}-F2^nZ@c-CSAhYQGMeX`qVOJ(-jp4Ma{ zqg*`-y$ZVZ0~`}?icf#tSF0LYd)DpNCoLC#1U%lu*RzM3sz;BL(vD>7FKD}UwGnhp z9oV!tAjDO5=#=<=uwYJYTz(pffIjj83rwiXu8ggKS1A>_(gbj?vF9tFYp1G9=@6xL z{;S2n#;GD(1*6><$=<i<Lp6><{7#|d27)nTUsSR3Fxj;XEdr#sHXd~1^|OPlF>!1d zeU!c;mga}&&+e(FK8vF9G=4s5_^?9=VOm9sD8Dq^NOZX$R*Z~U?=?^DJ0C+|6>~Dk zu+1%`mt*P*$B^vxbdfD+wr~H&F3j_4+QWA9EB(($=Z{~fY4}0)U8E|mHzBKRt*pWl z)k3RqUigxx1BC;xfvPGR=b$&WC^!o{t$Of4O}@SL?A=UaUry1Si+L3f$_NO(og=Pd z@a634^+7N^9B<^(2d|ObyVPYm=K1vq=W`e=Db#<om_D(&o)RinPO`_18hDD<<}=*) z%2+I+W0wx)({U2TfavfJ)E1eGicSikt&Mx%<|myZN+cB5!SrOkqP~J&xa1|p{C6cf zk&Nbn7uZ5zxvWRxkJ$62(pd9FRV(C^zFsrYG{7yg>;#&OQakt`E>El;B>968Gah%F z3|NwS&~I3VIqNy+%B%MuPLV}cw`L5tn=+BmnFzU@ATjM9F=)3>5<EG-QFON<a_~p? zqvVfOePK0E<`x2z(ESCiV{ag;g{AVP^5iU}6VrR`Cnqm@^%mYzcf-&rb+-hw-d;k$ z5RsfJ9X1xoM42rhJI&&K7Jm1~EnL0Yh71-uA-uYB(ppYzUGg+Ms5qY57{=O=(LzhM z@G6t=n^&rNOeBr7$HiyxP&8Le-3ZJ+wr>1KNOI#T6o)z085f0xzMok}>Y&<jQExp? zeOi-2<gB)7IO^fejDp}zVjFg%0!P%>L@VUW5V&}Q`%w6|33;|SzWw0ki|es*6s#ci zp)vH~7PtSBp(aU*7M92&5+dD?;zpedv!hJ2^!%C@&htNN-A^H4GF|-$`1f5$v*K9& zsW+>^JO0=4i^*q|`t5Mf^2nQTvZ1FF))kuC|5JdtfAlE{DLKX0#s7ttsUM?X84lWV zfS4X=B#329#NuJy3gts`=INdJ(NR3;wa?D2hyR{gm}AS`Fhl&gSzC8;Zoel=4>hNS zT6gTf?LeVt5z3qKY~tI1fr7>L-t+qx?fncbjl;m&PBV@f|KQuHFyB68=G?<3Dx3oz zw!L+*UlO00>I-T1hdGn1m0NTd*OGq=7RO*$9MSP+WX?WyYj>kg@!CHiAdVj>#ath3 zmFtPOnEcQ|s0#e0!N%xn=?MQ_ITagvy%uUG6%ygc_#{bIvkEv}@BU=?^W~ol4Kker z;U*zXGdv>FX!yGzy4gR9TNQ$WItexqNF$X_DtVnYKuORRkh<C_Iq$y8w{g7@G&-0@ zd0N!?v$MWraBQ#F&O`|;;Gw2XiltgE3lZ_G<r2|R&KBgTF2%!`reKzp=MW%W*-j9^ zCB<VG?>c+A#a(szlr24d66AhyU)ttI*OVQI5tH%{vPL4vjBkS$Md6<tt3CxmuAL8E z@s;Xy3=?!}(IyW9IOj(>@|jFpeFr7xR;c7u^nHQA4GVLJl-F}I`@P>^hwRxP(_I)) z?92T3n$s0?_v~FkmGmK><}qnC#_pExe>kGW97pV1e`0@|?IF-DruUnR$y<ddz>8w= zVa!jg#M{U7Nf_}>;@b(yWMx9tM1roZTC3=Wp(1U0n;`ep-)ptmhw2VcjF^!Z0T;uI zpJ&4E!)~b7J~b#%kF~hZ=Fv;v9i#9q7_4p>oI-G@9sBnS9=K66W?LOrZkjzZxFaw- zYvszM<=vc%+ZP+Dt(;e?vJJ)jd@@&5qFZ;dlfwNr@B`G_(DQLLpwSJ)-*&6B@l~>i zoEm7>$FOcDJeI3Xd1o~HSrG*19TwCo&}n0#&y>uU@5$GxP5Oq$ZU|O0IgJ(eeV;~y z*K&>lXq#M~{4CyIpBjV!a(}s^n$c2TJc2y9VJ*?HzsqJXd2wYei`;Xej^mDzG#YY) zT0@}x3LWImb<S^?Gg>`6I(=W!bORLQVvUxPb1RGBQs#BA=zQZ6nkX(+7B6emH!LHF zNFt+US8v3_h?+m`WKTZsv}2FSsswN)2u^k<IbusXUQM~KIhoZZ((t9EnW4Gx_J%s) z?DWllY77!~d|FOWw`0wpyn!CV3|Vme+t($nT84^AtT;*rMAe?wJHHa-dgxjKtNEu( zM_ax-my-LqCF{~RHMiSFK4CK6*Uq3A+N$NS;l0(cXG?Qw;w52$VW_I3J0ivb9DMs$ z`d5&!$o)_%!8GCgV@o;Kav^%=^r8)^%na>6&u8TK)W?;94rC5d`%CQmSs@r@7`^a@ z-b9fsbg{{Z^INRTmY(eFTMz&6UG&-QaL?x3^WR3O3aHqv^s@|@?s&zK7uNA9Y!1zD zHG&99b<qOWz-!Jmhk_4rzJ)ykXq&04gP+M;H!ArZRQ>n423o{S$v0QkHqqIW)0{*( zHwmsay0szsG?kvGMX$KT0s=M2>(b(}4mBfKTsKEDA~{Ye-@fx^6X}sFUcb*d>PT@9 zyQ_k9gxMhPJ^sAqj5orcf*yTBxE3(bNuf>_CjIsjWYdPi2f?ms13iwB$0ORJb2EtC zMff*a>sBFEHZnhVWenD))^uzp`B5&;*b|Mq>=mNnWDeR^bcsG^Ji#$<ZJ7xG+w)lN zST3Z$tKt~<?P)ZQDBVec5#q`#g2m^>CD{XC&K;OsVzDlQqg{35=s(bw9fAx}p1DqX z8pa%nTYcgCo$IHvsAKPFsR^^7cF+2$zgniy{GV-S;KIR5Xg%zDt~@cA>qwn8YV=wW z{3KExly=hR62eYV&Jptkpra#aoyj(^mvEy#5@7?$tsYL^5?jBg-)pD}TBY?h7!y8B zXm^Cf&Ir#}l$;@L=sZ@@08U;7eaF<?996%BIpT>oNd$(*EPB)jAmTRA8to05_SC6* zIIakNCw<gv$H!;QG}D7=TV!{qbBVldL|YhaXftM>&;gpLwe~jL(p3M_d#RuPh-~O& z;vDEP+a_Ef1Jc+%{pb<2R^tXQL9Ny8_jR}y_oD0ke12)Y6iZe1{!m81gq-FV=*?lh zaX#RUI;7$Z?Eg+fTb{Wo-E%ydUqz9KNtbl&bAd+c7%c;80`jnY`Y?H!D06p)(b650 z$&I5o+q&VtFC$Ha)_2`Qd`5eeS5|PKSZvY$1ncC(&4Cet&ViR%>5s}}S<BUx611UA z<*F10<T$JLS`ej%orZ3-yocbmD&UNjvDpE*{hT!7_PKgC1+}|gR;JBGJsN486B~po zrQ=j=cDRK#d3eB2xQkB%L({sRzmeBfRK><s#lwX@<4VYu;=jJ&c0<^@dpNF*d76vP z<u3X(j!#+!3Qy`LoNR2YZ(#$m|DkS!@x%?rb+wK)KfDnO$e4C{tNlJ>@>p+n|Kcq= zeLK5Q=x7j@18}7I7qG1N_K!dC6@QZ8R+&R<H~Z`$v3^hF=Gucy@J0$&bprd35t547 zj2AfD!vk+bCphe=wT=#zsWmAuOBJOjq^&+}^rE$ih1!f<SbO+D52h$_Koe<dKD(y5 zS1jf5>y;Nf2f=;!>xZjn*dHWi%33kbQ}lgCBVF@(ZKG$5Y(||7=Ajru@MyAPrZqI| zzs}FtxsAyv;PD!ugXv@adGFO7QSkoR!w%}lc<Apl)KwU2PbKt1B@7W(Qek!p)o$!T zv7SBby?yv7+P}*niP+m34#wYp-fkI9i~(^(Po;;O`l$`yt-2Nz^8K<1e1d^tV=oZ5 zY-~+i#aK>BH`>g1g-6l4<8FeL2Y;tyY7GDZvE}~e={XpP&N*%^2V$V7o~SyF97tdJ zt@>2CdNajEx=<>_2zS{I)k0+>bTw)6y-n2=X9jxVxR)38Dmq%WV$?COW>fDT7{w{d z>$2o$;X$)Iht&FBj{oV!k%kJrl+sna<}9)w7Qun0J({u>_g}{1z`~OZf~gL10TmR} zm9rBtu;OQ2{<mF(Wvx>#v&%N3lhod)1U%4_u9KH?5+gv$peqDg;AP4F+4+l23Z|7G z)EW!@*yi)b>JH#Q(Za^XqFKyhBkmRz^@|g~`FFC-$!&IZ)v)l^{25X{=+cCk-Fh?q z`(k26qGtluxxuO;IWcd65@4fO3~ew>U}vKO!XOe8<nY8je;os0BxLE+Z-xb(6!fDY z_mBrsnY(?Iip*6mDjHd#wRtzfU`ZFkGO>=t+@EuKSogf&U}r!%MrsxWB)h6{PNh6E zicBeu@~3fKub{7^|LV8uCk3C3apNf*0yEcC8)sLeQ<qoOvJslI06Y`xO&^RMcSd^% z_xniF5f>u+tXB)nt?9&AOkAgEY7tS1=zGuXN&eLP`^*F$u~J(WM%1%vea_}|j98fP zi3u7X%M_QR87OAxvgo!P@#KvW&aPNTb8F~MH7vobzKt_0nlZ-;BEQ^!b00cMbd?=7 zzv`(4fr-;<GFUf1Rjpx5n3iOw5&&Z=V}c7qN;ZD$x}lY|&(XwT(qMQC5IqNK8N^8R zxqy?iZH%A;>l{Zp4c$LH7T$7`MvB2wfC<qaQ8meaG21t_?l9{eH{CbYm)fdFq+|FE zFJ{(-XOq|tGMDP)XiW&64w~H_kZ-f-0}a2Cx{cXzd<fjyTE0ty)T&1igOWzqz%S*M zT3ec3i}~;s6;H_R(gurdlA!_2USJLK%wTHG4=P)Cn5e_U->X{4iIV$it$PGj38HRU z=9;$2YHMMUyozD@Fvzf~pE>3z1Yv6;71d>HUuqA1$NElJJe>_1V5%VkJ^YYW@#pyX z%dv9z4<hh;8ZK6@T5ACjcXJ@<;uF-T<lQi1Bh*=kl^Ew-$sL65)@<>SE?KL%G{oZK z1LjMaB@D@~W=T-i+LCAgNJvgfPD+<GFmQS`DK5$Xa;sZQjnW{?Ews9wd#6pv5`F2k zgyqc_{ccb(Am3fT=1<-E$i<!aZ#QXdqSrXMPX7gYk|15x$0|pdB(3JaGa#UcY;QSk z{OuzQ$^B!!!%~hI4h1I`bWhcK%dPG<ub9rrVNR02u-qKw)%WIrh(0Pb5S7;=7+0<G zvu#7Ds@TkN*nSIkX1A%dp-4@EIh4P>agggP)_o;~y3<y9`ilkKdIGqR77=~yafXF+ zu4zC^C<i{j2E8ZG!>i(CVZqW$d=ynnE(XLMTFK+LN#ZFZ7x5TXc1Hjh5GoG`j{PU_ zbu^neG|Hd6L%v*WK^O8qb*p-@!_K>}DNq+rwGppC%(xPgAs=1n$&7<;+<>~SrzuwJ zf0D<s!NriX1$5f^fMt6a3WeW5-2`+PCsO={sqs@+A#QyoNL{BdT)Wdb$~rF#tLybu z1jD;BzMyS<0C|}C++#!5<T_K&4{H#7Yh7z1$&+dB#qRTbc1Tx~B2M+w)2wy4knCu~ znaB8{$s)z-e{z9D62^$ZcxW;!whnpSz?YNLXRF_mkNrgPNlSm=3*bfDa~_{=emtYl zC4WO9$U#tRE~rT_9LMjF?)Cz~N4#7lIr?rnooOGp&M~w=voGQRh!<hf6Ol}#DwqXI z6wTM$`_-3=L^+aJh5Ei)M)n;cV2y}?P4pzfrFv5rhDhu+5wUa~tT+yDQgX&JRau%Z zjPmO2MbFZHe*ofFMgT~|9--uD-pes#m@0;2DJNt#yCq_+#nY{=1~o}cU*zqCl<fC4 zF`QMutJAEjHEd8Ym@)AUlYV`P>{3>ym#0c6R5!N{<)*g?2sk1^IS{m`>SM;AW#hjI zd6ab0wTO|AabDmO8L<oa@xu(r_Ff1_90!XM;{w_Ih!ZcF#xSOZ&}%q2T`W`GI7+De zoRyJ!FtnUu84-3lj%o<Y{Jz>4N2o6G5ItU34$hDbmouJ-Td=M9<yq~_z@Hlo4Uc#n zb)#tlo+Sd2OdAO^kU8$f+MfN0z=UQKW0RM#+qpZ{AQxAp$(gg*{!FxPGcB)861IS? zf27C-YpeqtaYl0Slag^W{tB%*Tp79YS2LG?TIk$cEIIh2$pe48dUqbOOlcZtxQMtO zq>(XVc@7@Xn1A-_e?Q2#AoL$7h7ZOJ606nevdHN;bk_yFg-y~CsR}ugI!0og(>6cC z&&3<bpS!~`OP^%pO<-lxmJj!e0E!I+Z$7kcAg8EEP<M4!_cDK%7^avX+3EOdbY5)s zgK78xukR>^tUVb4K&tfIUxqu+dSIH@)uC=46ujS+ensH9ny&-4-m$z8lirH~Y{8gF zCbMbz)bFp~@hD;8h_g@=PKyd+<qUGzr>P2Tu~Sr&=LF2;d05Z73iQi|E2bHLJHU2e z`WhK@!mkyY&heDOAgNj&;{rc-Tb5_RohiFlX3L!SjN=`XT&K@#HWt_m&2V6=juZ9; z_Fjx9ZPk8T2#3-eV8u$HdHu=eH@^7ratTnP@OeYN*6Nq^@{JTf@ph`?xlGH|>Wy&{ zQ*pl2jwzYL<uFaUqL;NbfifXq_(B_1ox}4!ym|M(pS#aOR(soez;AM1rK@7f9k{0p z9DXo!)oqRYF`_stQu)us%PT+Q<kdMTTt>K_3t(W%j|ETbkMGPfAX7C{QSBX7re{>F zvkOgI{TH#Q$-k#zvGc-!c~Nw(D?r4=d=^vZTo?LREIY>8e=V?mTH#mpLRyQU2eIV$ z2G`thKvoN&KRYIYmer86r3Kg@!<ie+W3DSNd)}Ka?qdwZ(Gjb?NuB@zz#PlXxSJ>5 z6sJzrw$+{__E_$Q$wmfMPPnx<iuvY3{8A}Ew+Zjo{-?-nyJTbX*oml5r9-1y7M+bJ z7WUqT2?kyRqf~fFt!HzHYq9J~4#@kZ%{M3Xz)oQaN76lbX_DW2^HU|urGuLBsq|NV zThdOOJKH+2`v94TNUyg%DSKWtRpTey7UV1cFA!f@eIAQ`^!TeG5e^q<ca~$>J@wl_ z4p1KBd@WO6c_k|`*^8&LoO9_<xiNbB<O-IbXYe}+>RYeO?XvV83V9~HoI^E)xGJHe zzZX4w_}o7x_VbDDU5-5wNJ8-!<MvQnZYupoThMXHahcIqJ|>a`O!XB(kBIMfT}Ri2 zAN{!FvL^RBz7g0HFL2Oe#9Jv0RUYDby;j4UhL3M+Kn1gSqNek2g{af;Uvx6cK2D}- zJgO~f`5ff<!)CTHdY81_0XqVuOP+#By%MbcBcZ3k|IJzD>rYO=*T*4Gzb2NkqIU>F zPDtMg00CqemBEXlypmbbu)1Bjbp3t8q@1r!E@Aa}Uyr4ja&|3tS!t3|WQT@u&S9jE zIG74uzjo((csEO8-bJ~EwQ2{PTf%Mv!mjo^B{Q5(`4R2ySJG|Fg8$!vMt_Gqx0$uq zK7aTAc^hf?jHhqv2EBi0H#MM8O}>ZCPWE1+9pKoChv%7`+(N9@qWV%%?^z9_J+qip z*UfF%*~9hmsLTyS1!jOe^h7mD-MFA$?y`=LbL90&VQx={w>(yQc?ukEOO@!>OxlD~ z9jfe-1^~SnvB~*Hh%W@sm1}r&)|mOj#n#8ILtS2(f?!NB@TUcTpS<nMNn@N;K`cz@ z`nD)4SYPy#s#XsGf|<RBDUC6@G(*A~Te>9P4yO6faBN`2G6}zX#UXD3&8FrC;gC|6 zRLk*r`Rgw;{92*2p@AxL415R*6KOXxJ^K|%Me|l5t|aHrN_B;*JILV|D_@_Y+Lc6z z{$KfOk$ok}o;uYYy@*bmfnX|Ua9d(5wVRAoPW(iRR5m%)Sz98!ectL*EimHS+Q$Ti zPnf61{|U-1+2EA(A7t{-ZCP{KpRH4Euo$Uh8xjHN?9KHwF?xxA#Yp*mq>82-C2g^P zRvxipwQ>6r<@~J}S%DfJoqHIK4cpxU^LIS};twGEkr-LAONO<n->KP`_d+)iZQe6I z6kggQ0(|<$JvOeHE<7FUsV7Se%8k1bkz4AC#?&h7eu`n)CnBUGRx`$`i&hlO#^D&B zB5#U6TQ_Ti`|=;tCP8caYeNk-v7({65vJ8j^@_&SUuDY~8JTUO36qlLwlA<Qr>8n^ zqP~}Or!2^3$-gE^G;e6!gr|;mT0SA6z<p6Fd#|X<G3K8lX*zK26d?Kc(P$N#t6VAm zS>)6kQ_dR;p&*73<()+&${%ecEom{dd#ARa%uzbfZ@vjdZ^)yRFCe=hniDB*d*S~V zgGfpu@{;s&PAb>g7q#7WFy)q=A)JWW8>qnEG~T%j9=0*GhGsd*P6@zkOi{4HkGcu- zJpa*j^w$E9K}H{oa{es2OfPcUHJ_@n*O_7Gx5QNox9Oh4FD^r-vVk7)Bo=wo(-y0? zwJ`J!UY^AN&Dc_B&h0Dk1SHjc_1F!JZHc;3&lvxV@U49uoomcQ`Qqj=hzvZR{uupG zN62O2w$FMlv`=x+@cOXke2H#Vdpt-SHMr6#tM4^jh|j|#0D=w-{b+2rf6zewmiXD= zoOsxvKgr1c>OI2ig5NtN?SxNtQ4SnBf`v2m{Dq|&5wY20UJsxgF@QlhC(`TqD#NK2 z`{Yk!xlR%7b`X<5g(Hl0lXe`gcRJE1m6KymuU*wA6}?DZTi0jxX_xW%KM~i@dd`VC zwx<E0c7AWI&3EPp$zHWU?_@L<hDi=4njJBK2E5Y6;M1!b1itU%vfBGuHqHjwjntr~ zjn~RMfPkl6_@LWq0TX^MNfqO77QD7fl;+|TKA8at(?RP2ukOP~k_ElHl1Ca40sAH2 z!_KX^_-`9N#Swb*2Kun9c2uR~*8HT4<QFa<%YGrBEKC)^`P@9Xgb0r(MiAT_*~G%w zrRhH$k<n>fkxo^UZJsu;vhwBDSsrZ_6AsqaiI%lyRIpZ1k{rMWY)WZvHvMTK|4I47 z+-v{ltJAnK1DD~tpo}w4Sv9h9Y)N>YfaI?%Yy>mWDnqFnPPH5I)j8FeUfEn*GVUzD zOUG;kI~IO-9l9NHcTmBa`{LepLDK^JNc-YCvhx+2!9R<}d`=xjyr;p&)cGT(tQLpf z09LmX;g&u3%QO7Ocf=(FJXp9`?PY+VNQh&#H4xz}izpLdAQPRwToZQ0!2vO?v7V&u z_${{FiHx<R9!)1Y;f~Un4t%iR1biTO3;1J{8uozN?pP#u*^9p3=TL#V994}^jm~M? zUa*oHG-k5+D1=k8%ud5qlsjE<M2XO*(EaiYpf*kq-hf0u*+f+=@>3AYG(R;I3nRk6 zL1VR2Py_#^e1s8z)H>JR$@-aqt{&g)8a;oH6vUUQ1;5J>&b=JJYr_L6^*pz8kn_Jh z<ky)XHCBWrVw{1cDNJ@&j+|}M5fh0^r`sveTN}`VT^B{q&Q2_K*K*^I%G53c-%*9v zx`EP%y3~hfI~IVv|C^$``)~l$1y2(zDMm68Ip8cxb=TC=<#sX3Vw^X`3FE6_Er6Dv zr+ioVI>EZYM7hvu<N9HX3Nu<xw>=5AT03UB(>+#G(pbs*-C<9zE7CLKHiCK>bOZ~t z$W48b@+<l#`FVAc*-hnc2D9nnVxN@R6OvM&*U}XnB(*%)pu`DdK^f?$4lec?93E`a zy(ywbhk)u%*~lSmOdo~FZH*xe;NuUIr`PUhSr%goS#BV2YC`4LHP|&1wHEYp%(-#d zFI3}+6{;KHUw8Xt9L&{po_uy{L$rsaAv>SalO`YbyavdS?(vjs&OP@l$0j<<?`Yll zfD<=|w{sEzdO5tf-JaEX^H>d3+u_&L#NJNDOPOlaCX+Z^;RNqM4tq*?Gc=WJCQwkt z{b#x0v)dQwe3Rw5w*g-ArDt~CTJQR+Dgq)-8w{T2By1e$4XYgh^j>vV-9XZpD|&(4 zkxEyOjYR}Ro1~N{jGK2L$~;TN2hjbcG!mWLFjh16=9qu%L1+gs)euKWuDx>a$+A-1 z0YkM7OQNRF=TIdL8||^TGtZnk_zOEgP47%UtJOWc{|h+D_?|A%gm%OD94v3oAtt;f z6Ev*+cp`%|zR8+AAx3h~2$X@xY@RgRw=9+ow>2{8BmhKs;-$#~a$;dUvAZeuo+>(d zvWeTWl8WXW7$o1nZR?!8WSD!U^<CC5vexo){==2c80%X*lY6JU1bf$0eg($geBfLd zo~tEUUK~x6^HYilmETM`FF}R*3`t!!73ovMn;n1L+xldz)*R{~w&pr23#H2a&PS8~ zx43vUe;L(`Zt~OSD)7c0!h{4Z{C=&C2^qixV4N#G-g|CRhz|sy59W7uc1}BwNrM(u zV(b-p9BP7*OIkn)&{2d))_HZwwWGHEa1GQn=2z6MZK*7&ijQL#aa&9+Opey+%7h`Q zP##@rla&1tWBG-#FvNNG%FFyud*3@qmTxd?eh%)d>Ht?ESs!G<!XxmP+x6|G8lKEg z;}e^9wx^&N0#TutE6PRHGi_1v;j&!iP<_6{A?q~HJd8CVa8jhIjqQ&=@u9VR<BZ=U z{MZ**{{GS4Y4y;$?tbz-5e$ye@<I~Q(JRB)sj2X$Q^RLh?lL`d(bga%-YNm{k|k9G zG*!7dI<<j(koU^In*jQ68Anmb8#(BoH?I7D|Ms?Tu4ye#hy{k_pS1s#CI0{Gh<6_t zVoIB3tz`*}v&&+fR}3~SHlBNSB+^nwjEoat$_KNm@mL%ArqsIBaK5W>sMn3cDjN#V z4~2*v0)V+KmhU|lSDek0k<?PAmem^x#%X_kARLm0tM-rPP;0TcVQyh}C1az^Hlbw1 zo(3aIX!nM&4^Gy`71zj1|E^%IC+6W%!kkR+#7#whv_6)Lxak8;eegpY#Q}AP?<L02 z{%^25-(;iRhT2#{K^7*ASl(K!$t-Q=;YsZu;31AL3FgCG!qwg<-uWAN`qV<#Z`PWg zTRNC4!zcoPC)cEj?Ny6bSn`wvP2Z~LGrww0{iJKvp~J*E&uJa}HF+KRP+RUxkUH5; ze~L~Syx5v`l8{|T-}C>1O?h%V{e6u6Qag*Le6RMa4f<0;>CpK~3S!Foz}2qD*(>5d zh3zYuN0{5sZKA~M7`;9?)nH@p9==}qeeIrW@lz-ZK)M|x7o0zsp=~?+LL{}phgWws z3vD7t98Vkln7KJGRCt>V9ek7K?v9o@T8mnCg)bU~pQNLUSg?!dYiJi^pRhb-Qu1)` zRM=sEzZ6pI7$fRti3U87J%v0}seL&Ea1QA?Ub8V_(2h>;0;Y5xcM}+43nb`yKe~`2 zedDoVCZRyC#3L6aZ{7FKwL;^mU4OaES=;9)*zyxu;0f(SWAYhi#Z0IIaEThsBjC9A zJf7wQEJ;gH<WPT+P#*Zzv*{t}q5Q9AJ*2{dCl=221aS?5{{joV61r+-fY5Eu_*uW5 zCE7l*V<wx~d3Ifue2lSNnzNh!Nn27BYs`4a?s7k_vRt@)Lxq?GJ$EVUQL_1Ipn0N= zW}DUis6)G?U4JW2n_#2R83!fkKhLZT(K%<lRz5A?^!R(@5z;qFQsz;I*LbPk9fU*@ zm^}8<HYSwdi+8%g)4j?Nx|fXayzzMxu(2@`goTl8=<+Fvn2z%;@CbXcE~UZ>eiFZ( z{kOc0&{j^#mk477q8uJMpE%5byf`XBZndXA_*wQj7I-wA<5Q)d{PC0t4Nn$(*<crT z+N1sS%K-R~s>P+4e$h8Ke|?$Pu&Mmp2i516KY{O)89y=UL`OEUWf3f{i1q$PV(Ywm z8SkA+U>k34YOcziZjXm=*PK4s$~geSYi^OZ&aDKzQu{q1Z{YY;s*$>i#sZj9Ie9pT z@Xwz@nxBsU9L%UoW#~$Aig=_xWj(cH<rKpHU1~i&fcCS!?&bW>pp)|q5quh!5Ajq9 z7hw3fFm|2QLiQ3K?<e`BqeebFprVu9<r8ePxYW}E)*d&t>Au*h&f93YW3Y!g{hxdC zwXldNk!o3vXGC({dd=zKt~(W9k{qcjr8Un8mAL$qU$)hL&is+##zIekgaq;+SAlsC zHR~5?aY>zI0aI;oFR3v?cy2<XIbSw64%L>_vRVLqHtZ_w=4QBG&rXjg*yZ-@eho$0 zWD<}jbtu8~SfO(*VONA4LqqP_Pw7T->VcJP+&81qvfD6bch!}Upp+yI6Tp;(5@wYD z44CL~dJN6@cdLa5`x}W*r2`d!6GJ|@cL3m|(c1vp>{=_ZQiwmzk1d2z25`)I6pxXV z%<C}X&~7$~`2@DZ_qoC0XK3%TFW{?toyGTIX?%b;3qCz^lIeo<G4}QeljrH0-J!av zdS`b<1JxODZ+ctV>qGtbv4;`eN3Ts7I4RA00(e+nu8yNaaw2LQ12)F3X!=3OgOM@n z|6wohHs4}+y>4zvCx6wVOfN(Ne2I2v0b=NNJ|bkaB#RR+0xH{cXoHV!FKZjd_P*E1 z=a6C(U<t(uM-dHP&R|i-EfaC%OiwNGX@9T!YPGn+@{&*;>Yx@Z$|9&4fYKVPli5NG z7fw7G3OuULIcZak&tg-br!0LVN`Ky1Yo!cxAThzKo;ItD>P-X~R5^AVQ&`Jd_i-zi zK1CWVvMFJE8`T4GT>(w_M7yr?cKwYHg%Y20B2{baroAC=I+#hsN<GJeQ*N?upGMt4 zZ&}eY3+bPc7)(#RysEvHk(G$4!`>|W3QfcTvi_)D+BH|^tctx&CZ6dN0SRf%^>}Zf z<O}&980UMLEpp8%53ZL~=*vwh-ZunFQ^73#ngyV^Wu@qATXVR2%EezjNUMgUZYsp@ z-18}Dk@K(Nn9YcD$@KR3x^`o}>OtcFKncA{SfGOC_vY_0^IpH0gt_=9*^c{BNDu<R zgs!u$mYJl~&9N%{CBGF#-ssd%k|zV`tpW2*4t<e{!foa`(`JosNp@~V3P#RU4I3FW z2Gs)K&^dd^V&_FJstOSsHoo?fw_}Pmv=_}7orEQ7srr|GaO&+Rz_TGFUUTjk*tX+h za#-|_9s<_BN}pWw|Fc0#I)M=GDbsjqP!D1D82%wV1bDL?dS88}rAWf6E?YtFLci&9 z6vFv`nELK;w%4%#iXe6pqd}2Gw6RyIR!c<8qV}l0m1s+gsu_YHX3c7kQ8QYrX6+SQ zr`i;y)f!brTh;!)=l8zvIp?}^<<DH-?~~`bpZord`}Wr){ix=Z9e{`EJ5E<Ly&Cdn zpt>dBTS*%Yzb0^ujmwNXA%Qp(YTYKolzXnAKW`Q>6@F9!;{zE!-*=G>t{{DnwxKy~ z9hqz2i_h9xNe6VIlI-bUEBtvOXjw{J{E<Xf*=1Nr0;lW$K!3pZ-OmEtW65a&2`!Y1 zgz6FH2BfWuR+9t@qdsT@`Nj&W`f@W_P<P5W5P_x;68gW{JvAlq$$Ul6G7U9`bXC`h zNeIGnm(H=bR<9n25~Qahf1hidSLF9v5mHw7FnL!Ul()4w{g;lcidogOAPssz0t<+& zE8UEci#un77d&GBYK6T?`o4{wKX)iI$wp4FSd3fQvnTLB68#fBYu8XDpJmC|*cU@Q zG<in?_!(ii*ESA7#@<ED9aj!EHc<7FeI1Xr?Jp+oUpE&j=hpEnvg*aZZ0OoN2-sE1 zY!P!=B!C!op7;pO#k)Kv9#j~&Eo2{A2=t%n&+7%CWoaf?UcZiV@0L3;!)Sv#+`CsF zTlBOYGXwh5EZveMC2I5jNpBYKt{6IFV|t?WJjD2#B!DGJb>w*MkR3~Cskn)wMAaK) zp`m4)f`Q{WgMs296LWhggL<EMzwdfnZfD8~RBex5>%8$o<?%E6{<ITSWJVS(o1nuf zkLceqcp%V}b24(n>3qbO^1;JDeL<hO$#pFJPF1^1AoEK(M<TjMyy<a@RO>o>G{8{3 ztY6sM=wmw63r#vs>|?YKizlA_dHG_AxY37-pc@HH-0Ci;N+E?QqRW83!gCen&;YDp zj>YnX@5&K!!smof&SkYX2e&t$yA9QG+!bEp-th}(Io5orUhzyayH>hQ=F`;C!OQyg zBse$V*@(eCp)aP2mc-liRBNu+cg8RzT|toFzi5d7l~V?Qa`8jJNjA3r{IOUo?W$P= z#v2=1-tRx%W#SB`8{75#=OSkA4Koa*Xa2}dTZyu||H|X=>x++Tj+>HNS(17ZKm%O{ z)I{d|&19Y!h9c{cG8+?f3`RwgDBb_fXv~X)S9MlfI;T4Po118jYdiWa)h^MKba~wk zv^NJY7QNQI{rmNwpLY%p=?Bu>+*`7p`d>Wilj|GXGVjRPpGg%a?A{NRZGN;M_z7F0 zLbpujWLkQtcj!mWF^l#ezTBiXojXN_c!!5xJr<PV4`{s*a*lh)L!?6ZB;Y|_zIbsY z>F|{8Vu=pHFZF2S5#_CHgvgd-$T{X2bWUB@X8EB47ElV1?pM(_Vs7fP!>duVKU2`V z@01wgtmdSWt6r=~4%zRJDthuK5WMMC7JUcP-DZ+p3hwTACza3r=SIEf{L#dj>^dGK z5Z|_SGtyQ>_HzueIp3-zKrVRd#GXe+FGJ#2^#kkh(DO}RZlQ~V?4hfM$%dG+B?@QE zC$pxYV27pTpnO_q*K~9F_EbP2cvtOdv2p6&gy_PL@;{uZ_XZmW&iVe5WZLw}c_~Lr zAs{Oj8YQ-IA9$FG-frJm#c~&In;%HMjel{TCwGZafDw<gij<zqsN3*4L|fU1{dNDS zYSz)hJ;pS=(0<8pRG3J|{rX~G>(%ze=4eA~O6nTWsBy4<?@NX7Vq^V5IW+BII;^_t z_-sJ<xqu!<w*DLe|Gp@B2!=S(FPEUisN)>rrIV~c-wh8ra~0LTI?@-K-dxEA+Pj~y z9zlDpOW;irywJ`Qk~E9UJ(mw1^3D<`si~OJ>vbXQoQLlX|FgaL7<$*~-BD@0Ne#|! zV>bh><#ygg)n5jKqEll%7zBEIy;k2}xPQ9z&6{kK7$yb}X`z0veom!u15&Gt)*!*2 zes`{MQZ>cj!Oi?}9t&FaX<aKSLJM?R{gTG7-KCbjO^vRfx_`W$aCaj+byls1)(toI z->N#Cp+MLCOBMiD3o@S-PYfRXP4%w)(o(;pM;hNrisjUnebhz!ooMr3l1{OoQbV{y z*W-G(-9n=wOm5hzpgZSWi<rIOH^448x!3OAxiP1ncx+Gy{RX5FY8UO_>c)JWb4$>H z3bK9b-*<Ym9MPm!oX1dsiz<X7iBLF*3}z;34MSD*dhvK?)Rz;tJOP}NYIIX;eDY`` zd{U%t+D7@KUwH18igJq!^qisl<YMz-?3(zek~L%5!wRmIC(hkPp64oa+62&iEcLAi zw=>mbF~onOUReQ%ab0<rRfzf{mtZb?_LVkgn|0t6u1`dk9XgFA%Hy#Ec~ut{1*Q^D zD{D*g4@84V$?W~#s>VK0lul-%m3BNI3i}c}R6HcJDU4ns&hn7{W(?+KYX9<q({aIO z>Ys_<pPqX+|G1l6ql~`JBS%xIvUJ|r0Fi!VR>=fcIWBX}bojQ90AzvN?h*W5A>t^h zFwWu~%_HQDYiZEL*dW++?%vmH{r4>icHBF#@y4WgoIs2W&iuUG;ourM<0G(Kr;(ls zq{X7x;sTNQ4V%-A92d${bt3t;R6-y!U<e0Ah{RDwYoB4v>6oE&Q8@vl2MHvep2#ol z&bSP;Y#awYAl%uU+h7bCwXgj$(<y!E7Jh<p%y-=|Sx~*xX;VOI(L2Zg4)&xhW)Yn( zhBoN0ZPOcap6Rg7&~1&klK(&2(&+W=K4)nx)IfU_EHolg?YOw5$w?dIl(=IAw}N1E zQe>lXu#mK?gkt&`d&8x;<O@)L*j7C)RAW*#+qg)1mMwuLcPXl3yG{a_*z5FWL!$0$ zvY^wTm3z{tY557Y_lj+A<O}MCOB+LvzZHp*FIEc#|IaBltZwY6h|rdH83}#=#Af>) zi9CJ=UFEd@yZ9Pw+sCV-aH&StT~CE`9He9)+oc85rGogAy>lD8K3{KY%ywYtyM2g& zS9SAv&r`k+9z1c);!002ub4OL`SKBP8p?{{khSiu-*d-p&kHm2YG)(|L4?s(dRTjB z4tR|~49=9}27p)Hi+7cnU^^rRyN2rmI1}p}>e{aARyp_BY5u7)8-Qs`^UUeD>(9n( z&Rnx7Bc;84Hv*S!!~J`}Uw^1nRdNQ%S2CK{7ece|n6Gr%IlywGaBTjk-60lD{-Q^+ zXW#H9d*@YoQ&I(DlBwNMx$1*D{E`OC?j4*Wt69D~M`hkGtzKfaNZoq5HEv8ttW4=O zzc>FZI)y`ne|O7vI<Dqte#M8Lj+Sooarc$Qkb1xtsqLkzCU%4>f7-K@_WpsL*x26H zhC?q@R+_N8+C>YBBP6Yk_h7pDj22g~x{mr#`{ga<qR9$RQ{U+FL*dk84;`^LM?8v( zJDzRhvGffs%h+Of>1zzYF!swwk_QkA2sO@7Rn@#OQ|20_8a`y;!l<%hn8)1qG5o>V zYUd{xu{lGRuW7zpuE)5ufz6g2Te?bguq6X))hW8NhkIYRR5&IuG3b)V$3B~)m6EOk z-%OhN+OU<V=w_;BkK%1JQgSyo`*tR;>^$sWMD^NF>VQ|jFQDqdjVOoTlrjyn3`|XF zyR-?S#z1?LaRYg}K$q1?F}{9y9hRRLTU!Lp-Pm(S;T{Z6zZ;vwR6n7mZe2~J=v0G< zBM<b$m?~+6QzCEoG&I7$H?OQP$i{rXntbD(+1Y@iAU)GNxWWnFUL5SQbTIwk<q1<a zd)-AmedQ28KBtsCUN<DW(|XbD6oQeJLl5`nfIO=>wS8%&_zAZ^NwfWjkImJ$!D@FR zTl*CetKUr@zY0*xnaiMWNCdJmj8lY)gq*3dvF|-`D{=k|)o5TXrJ2uxTTX=Ha;Zav zCIidBwdJyt{ixZ}S#9?|+!@?uzvtn1i-!{BD?!}Ls_n05!-<F?8%X7h+XIoOT{l(h zTZ1as214Ka1fv!WKrW<Y4^ru4$c%U_i|0Ri^Zf{(^)Y7BOWVuJ_cwd{9<>EsjAM~? zV||d3rp+dlI$P<7E#Z(E(XOKa10p1p!i5<bO{DXx25)XzE=+0()Ik$C*R3VyudKmF z*LFq!umtX(+&U1Q)>3h**-hrnt9y0>{O-#jdCXVQt9op-h{-xl*?2$%le_eA7GWJ8 znfLOU$(GFZ#x>G{Ht9Q=|FCMdK(`@aSo*UV8X*i+2Y&%to+mroZx;)^9uG_#i>g@4 z28+qAewF_@I$MLtC-d>+n;4iR1p?1+-XtLtz_C|#$^_vVtp1)kE`+VM<=K%wXC^Ew zd+U77-7d4o0QoGJ#gaMc^!B%ERw(2}MGw->ZZUa{U%7i8`VyP^JK)=gYMyjxpOAlR z^^T;_WbB=M)*MOf^<0R=O;J_azZGxUQig{csmBKI{j&bu<(mM<Ta^<`GaN(;h$VPt zbz2U+T)jW^qS*TtJdfbI3{nbDAXAGrv9TqLCW{Uobk-6Z-UNnQr{!(**38$Ll#NAy z4-)Pxt_vx5{#6IPN(HgafLHdUuk)s-$G@zJd$oAc_`So&U)6u#xPp>4??oQ_g`YG~ zfe2`oQ~_X)3G9yVmSzLH51>F4?$1kZx4$@h<<qgPIpfb=u|)eFvynB&^(UXoX`dCU zu}P3&x^_sEIIJpgh}e(LfR^Y%u<`{4{$((_Td*+jbT4lU#hb7zMhS*TE*_1F%e^01 zEnT~0R$U><H2U!Ewgf+ok#2^!=n^~@Keoh{#B5X>w>>>2QdG!HY0f&ajAR2OIe7GV zN}^KIKUn^?pE3zk{hV%Y>L}$k`~`*WfiH;a<bX+e2R&yOJSCt`Atn2bm}|04X&KOK zAy-L=odL9W&jSdF{(U%a4_kX+b2bHhk~U+b5uq(w8!In=f7>}Mk1SZ5sDO9rtbP_C z6yZR7zSxz3o8q=AtAxe1U=LnkwcL`t)x_fWzLEl5h<fe(s`LZXR^79cBL3;0!|k0H z@j<$Er$iDeemA6Z?Qdy?HtdUdq2G?a3!;v8c2s<lFNt2i*q~Y>J7ft{P4jm-MHk)! zpq3;&zV(G{twURQfX2ZE&Zc!J>r6?pP9zgQE36TgloL90UE3aC&WtE6q4{k-*Nx1} zZr~`o085V#4rpZ=_^8+3LB15H7GOcaO+y$IQCSxxrT=rmemh!QF=U1bIO=)lAgpUH z%&dJ1u<d&g%M0y2Kpa0)l~l~^FSfz!le6mU@;dP@qh@N(_6s6Z$ykW?)qt*SqlV+Y zF6E{VfTF7V*M;PolTj#qZ`eo}pE)evU3l^Jc=%rZ<%FcAOe)i9yDjTYIlLds)Qf;C zA@Q@Y8UZx@pg1)LdqHcY@24Jk8@Y(b^LhidSM~Ja8HPlagEN+cP3=5>r5C8)&2QVk zP1AyIH<1O|<Z}h@K%M>j=AnvS{9gPBHjq%Bq?oq(<M$6Mwl9P{xR`RFGYm@+zi97p z!M$xTK+1I>_8b(VY~FZD^e8DHnEATJvT+-L;*MQzH%IOUvCk)o@IzR|V!-gBsQ(mT zuY(8iCODENq*2^<*Vfcy$1;Cmi^L!XC;-*z&JP~zDGwBTS4hBF+5g5qGfbB8W-6`A ziVGsuW{;^xA^JPV8%yRQ-C^v>H=I$imf1`;paeMc?)~lx!?LFe##T}Xi2PZZQDojy zT7uQ1sg1f)RDGP=@V+{)3jCZQ#!curK`V*|0J^gbJCLzC{RcBG&1;(d^#$tD)%H5V z;XjksgB5S^$S2}v6s`5_O<Hc9CPBoc-QE39qezhJ94=xpnz>30vN{Zj7K=p-0b9x` zk3>gxLt?T=`)szc{6yNVJ}CB5id(3?o7kj{L*L>lnVjIOZKJk+NB|0vBe`?8l6A0r zEvolq?3h{qi@O6$^D9IC98q2mljq8LeffGS&1Hw`k|SUP?M06)tnywmk-YDkV8hEv zKH(Ol`72WZGQpAi)Z~t~$B3od=IB7^@h8!3xj#w7=CS5i-!CXKyUhR!9M)Z_F*yl0 zfxb5Bk;QjrDs1vg+2_rt9~q10X-ZeSyyQxy^b7A^Eiuvv=e2}g4k=$4UX$JCr8NJg zX(!!m)#!hB#eV_a`~92gb19i%F>Z8iQ8xk%vq8Q>5_c6&S`IOX;{4a4`q6k}JTUTD z-DNdJrqO=qLqId#a^G#;?@9A+Au|vXm=a$W9Bc{X@;@n_HXL1xcpO~Hx6^{eIWGp$ z8|P$EW>?b`GLyxLqpS=M{}Xr^5L5;`y~-gD|E5geX}ifU2>DG0eitSYDy@#s?6koE z{Awwt5Eq*lF$|HeTz1G^v-<P2OT+le?K}O=ufJc#Gq;YYWTYu3_vnR<Afe80qIuck zedS>M9{tVYNX^ynor8fM?D?Pk@0^*Hp{Jbi=kFC9<gQZjYWjq}6%u8bC(6QVxRv-; zHd4j-%0dCB1lnTI|5<elMHO0A91DsL@NXJk5C-PzDZ88AA=f#Ws!L%?EgVjp%eW@D zBl&?0bb1IP-zbLOAuN)LRiG51)2~eCbUV6m67V_Rt?Nx~0xa^23V>Z*gIRlv!9({n zn-4G&%{B`9Z_56y@7@U^#@Hwm=~wVL&(Pp~8bgOq6#HeDkw?x?tF<K+12~_cO#>d) z=E);uCTkMnrk#HA<bVYBWX^V`c-VrhuOVaadk5(|tBW}*nXxN!q|h?hnR0LR#ex}T zuZYr|)P(4bRSr!-IkTEJ&MX0+=iE|H%5Xhm4iZ^pee#A2|4Ywi9?KiDJ27qTcV$HA zsx(43)toy?oR>u1G8JK{uZ_JcZ;>!@0SVT}V$aG~-|ne<W+*1KrMSm`^+h+czZL>3 zf3BbNmRL7%E{;a|rF6=$TszXA!+i!HiV83UB-8FqY*LuWMkO8Q4&(}xsDB}^GSLSB zs0(xw<$U-gQR{@Pb#rJ)a3E0$=aNTL@Oe;@Y4(!$GTi{oW$)Z8>z?*~qqYUbTYYI( z_@}@9@#<JCz=Jf7<vDD}-Ao=UgL<t?Rhr<Z8CkjM#%fUtU4P*?r<#t@KO5&<z1^x* z-~W^a<vV3u-Fi;{ok=_|ZSeWn=KAVGQ7P_CVzbgzr$)_hGt1M%HY4)(k9rY?=Daor z6Vm6qRaB!urXV-oGIu1eUZ16Uz0=fh^z0T853DZUBy~GSWYr&jXuK4xl79lM6Ijgb z)YHDtF&=n|n5><-aw3-F4z*hcp{>>XpE@Idl=;?a#>6rkMmO_E?QKC*QN?i{VNE&b z_A6|7Wg7G}RnpmN>&`1t3ZVItGA9FndD}-4)N*fB?FNG3u~lN&SV0sGH)QjR?Xn&M z%Aw>g-<2KP@aoX-kICwL8#do>u#=w$Li?lDAYg52w@AzKGca54me5w7QO5Z?&0ngl z#2|^epB1wY1#3RmT%;FbSbCjp7dP-Ownoxsv3P?S%?nyZ^_uW{Liqs==xfKDL1Uid zIn411R@{NJbBs`&P#^P}Z{Mj&{qU&ig{!;vmK@FJ{6%~Mi-t<|v+O#x5McH>JFEU} zC1x4OoByznujjh6-R(1bkZ3JV*<IUU&M9m#t?z`ja3$6qc1g*~)$(jQ0k;fD{8rEC zG+!QF`29_zCgO=bdHnB~r^9bq{V>YRn-sM&wqkATIuzFHjOz{K;lqpw0)UnMBA>6x zd4rHMvWpC+!r(ac{UiS+joWtuA07C__kD%t3$5rH@ylAI`@Sc&tF^Ck1`};@g_);} z5>3qA5fI)Ms2<Mdmzi@#KnPK!=4^^-o7j^+=L(IN5v6M)TTSTkG^TYWy59Tc>)-5- ze&7C<V`c>jpq@N681O?0UBR$2*lpEP@Nr82sqVTso4pP1qaZC40-Q7d-*|V|&Zhk| z2SSJ;gMZCH?2^59@>j=A5n&<g*3jF7foX}#ilt@V6{uB^+jYH6O^PVDCZ7mldyu=s zNjua+CHF?rE+_ArRGqo4MTN^=X!-in*E~CN5FU0n-O9eU*2Us(MzBuddL2;nmIgE^ zJae_>PL*DUYjCdUY$5Tm`1d$}EoV2tR;6W%rwfylfAHZ`Ah)IFN_|C-4OS`Vm^`;c zW;MRGjO=UD#W^~oD;-|GP10?2pdKqIX9~2wX#pN(ZrK6QiYTNFssEK3YJTBrgI$ZN zxk=yZGmHXSu9P|EKQAjpkprr8`CK8o-f%r8zF#EfllI}qgW97P`m66ntgu)6i|wPC z#8E_his-|e9T`bax5V{yoIA7VQ%~&!pY-+$z&OWt^qgZ<&C!-!2fzDQKic4EA|c+N z+k9B)6CZ%;{x9R5c%8jhgN`rX_Jt-+PW~8Xb;mtY<vGWZtF*_;ZmVZ9FYh#tus4Zv zy%rz5xqO`XJK(#w;MKKN)!)5a5q8@=`hn`tLCYjGS8zgU)1iZw55cYdl->F=3^8Um z4&AsA(vBb9Ud&cYWD4d;r1|=|4`Ek8n*UNkMjDd6O*Anrtl$hho!&7&y3lAI8=Cyt zbV`9AMo6;PGOEKz6#?y|Db4p^1>!;NPAJ=Kg(ZVk>tRIk%PSpDJgglX*#Sj~HEuj# zu}ZgrsS(jXGKo-pVF`WO@!Rf22fiw-525Yp<J2^S5EwzmZTNQxYmi|+cl4w`x4}-n zIUSK94P_SCySy?MhF^CZXhy3q_ln294ZV7O;P<QJQr}=q%i)=7bG7zIHkA`O5F%Y9 zq)sHFQ#7(jkRbL}{jXLpI}wwI&8aOeZus1~OX=*WtFpm`RPi)jhro6lO&yWKZsfmk z-Ns-Ks6Vf^#WZ&c9V0HE>0tR#GPJqP_eE-Gq&C4P*#?kE5wu8bC%yQ2!H_XK0!^?i zYWZ~`d(8JBK_@hjaSi_Fh-)w*oI)0UXNL3IaJlJ93dyQ_U?{PIkGd+3nHnYP2L(mG zQr0x957W0$6JwmPjjd-lL<><*I)W1Rzua15YTUi&*&jUMaZ+DIq-8<mIImeM>BZH+ z4yQlbA|f7bT7mKfu$8#rwP*If!cJ)*w)yg|tE&qExoy81{|%l!1%~v%yQatYiGrch zsU>_j0-ziIG=HjhOnQik^o##oPX$~;%!){lCMF^5GoL%uuU6a2DQ@;v<$7!II>KW! zEp+ld(3stz2RDw1oQ#Do;a4w9%hyql^FCYZ^r`5J+}z#gsQ=R4RGVZ&>1JBt@u7SI zYU}L_Bbw4G6?5JI2XKgZD48&Y8S1<wI=6}&zCgR|6JH=D_r>|A?64;yDBUl-`S$sP zGXc%nJ@3Ae7VO$mS#q7$s+;J`%c>osvglqnVyalAEbtTr=j;8Sj@PCOR0Svb;%%<? zb%PiuYg{vhnv`~;u>Xa*uB0WiC}x~8^RfK?3b=CHd_^0l?pO-rU)`^h<k!9jhf_J% z%|Uzg`Y#_J=)15WcDK%U;+)@HG;X}aF39HzO|rR(l6TSvt<H8g$rr^yA<KHyqnAgc zrq=bsoDxOtb2D72=p7R^FE%U`bd7lB=y!i2vMNYh`tx(%oHrBS9PZ&Bv{nE-`__x* z!Py!s8I`$%bYJPuTJj>uPIszz&J&S02bmDvxI;iHmmOSq>$J-vh&kVee#dffurSSI zU|Cq(?e;`{$SL3U$A*&>Rf4?<WB)&@fwRYNY{Eu*A+-`QB_@tHAHC8Jv=&vL3Ez}U z=7mZ7Bn5B+6%isPxy5Cd?%!|rh_Q8^3*$Zp<df9%=2AL-qC>G(nypedBm_5Y!h{n9 zE%PT@V0FdJ9wWyek7=n=rbQ|xVDm?J*R@YAnoC=JP}V}4yxGuSDuCq~q&mEu9eB<w z)kw<iJh!5=pZ0cbp~z$NIV;on(NoQ}Wth*KcYywQcx|!b-p{~FR?A4+5UG_YHA=Hq zQK^qm`JvFPd3CshsJ5dSBMD?bcWcDhg0QGbV)-XuydeRQ8lLwf<oXAxq@Fx!rVta6 z-sUIEpQw)8mif)Tk0{yxuvVxMCcOptmu_U!D2#!e{mUpFK#I`(;`>EbL^<~*W0+Kv zL}g<;p$s%OWiX}On9sW&cS+^2%2AiD&mr;BEUkLEo)^fEL<`+Fk?L-5=)WHylvgO1 zcO<Kx;?lSWzX3JW0EZ5xf7bGyX&%g=%pZPOyUL}ZMM}CN;ErvO9*yyPV8W?w5ga)@ z5G$;BgM}&Rp-B9Kn8T$#<Hv`UTyX$KcI9wa(v|bZ`z>PguJixlUK@TTCuYR8P7HJ2 z@{IX$0i<NqRRkhw21sV8f^&-x1Vb%F0~ZD@(+F|dLoxM5CrJLgabKKU{kWT|TJ~?r zoSe@1yF4;1+?>;`6BTBei7nD?i?^c1d}pQ~d*`4%9#<T<HW%Ne7|gIk4{q*Y_Y~)j zy-&7O2>1Jf9##DInG@yNGO;DTf3m;gkbWoL`6r2jd-rlyI4}H<{J@L)L#glH=i8I0 z<Gvu5La8b5<_$T)B-{DaN7Z6-8;raBCMmla7c4zPZrC^Ui4i$anaYln2h!;HyH-to z;b4`21(eMcj%%rlP9d8h30@<E+u3Gl9Mt(bg2<T7sfZjld|l(UdtddI3lxG{N%K#i zRyI7Gt~yX~Oa=zWW#+|Gvb-Uql5S$S2YEXWC$DQ!t2CTMe(9fD6qqw#0qy#ob>tbT zyR^3v>#C0+&y-TvL?k(KYaZR)r}=6#uf$cznn*iv<=DrVjtsTE1k_wn{)189sjS$k z1H;q!HkGv}`(KnM<~0p9RE6$}Y(uH9<Jq&b!!IV8k0u?p?1?vN%QovqYTL3s4T&sm z!B7YCpDX{&s(oygck<B0Oqc-(N>^TZHwa$h;uf=>|0kZ_JpzjyZ6qwjoX9a^?N2s= zpo?KBGXn{n7j(YXeeCS9O202N$GRaF!_}{?xLK?-X$6$@cR$1qQIuURr3uj{E_;1x zU+cSm4aUbumM;9cJXdhMy7o2u(pb&ZcS8S1xt|9ZF%qa1TG#nV&*zKp&~{(j1TjsO z-K}lT!?aGP?cTG}cAR#gTN<>$P1<WRFoazuAovvEEde*K;tX$qwf2d@#MG@v;5P@m zHlc*J_~1?)tw_~kvA7FtTjYOxE3LPESlUb^e^7_;#>7!lwz9|9cFueX)+pHV<nU^n zF6RX1U$S*hE4Q=j=2jv-84S>XCaoBsHz`!{QeH?UQ?edLm(0itUXQE$aZxDY+D|Jg z=jm<=#;!^0YK!%jvdR=<buEqZl;1y1(BL|+%2NJ?rn$)Wjz6LdCwGp6QzH+~jsM+Q z<g9$1g~m3J-wT@Yihh2%?bVj7*7X;k%u4;IyXEn*HzA4*WmegZ8)j!MUP#1{yTj6< z6`#DN?E(D|_TDTCs?o3#hr~g^D>|$KLitJz^r&uRggcn|uxWm4a&RLdK)dnAm26dl ztOd)ifSdNB;BhHdYQ!OMq&<e^#@W@I``EU%LN7<CX5a)SwB|QldwQbu$sv$1{0B3; z!LFVBS-}`sh7(Cjr1TT|QBa6L+kBC;R4o`ajCpB728kQ!KhQ_|Afe|tRC>Im%Qp5n z_~GkrbULz#(oSgy&n-;)ZYnnk>gq}G{_PRN$Y-{qZfODd{z&6m#~(J)-x~)#1=W$? z&b^KN5_zHH`}38r4n$zfPrbk|0Y<+n!<dX$jW1>A0z|ppP{3uT{#@Ln?N0MgRzBI= z{MZ<#=o2Rw6-0Sz669b*nM?yFr_kJYqQ3XALiE6vo+b;`IObbgZ0PsQ_;)0rYv!Z1 zm)S?5TaT(s1{UcDs<IJrjCs!?aRHVhG-Id>tw3=HEq_DSzc0J?31y5icPfCIvzAhi zm=Q71=X6y1H<V|Y3faJ!$9$RHcbV1=A(~$m{5?ms9{p4>N#`eDPlIvB>fr;5-$|1T znGwJqQAAzOm8)%aQ9oU(C?+R=;JCTn@#(!kUN6bjR7C=2u`8?~a`bh=378-#TC;Qf zwE55b$gp3jzk{o*^#t~e1RJ;J<Ro>xVV2pxIobB2Fca~9FLH)ZEDPmI2-2hN1WD6* zBJ8c@y3QAYBJgTYxwL!R`)Z}vU*Vu&=#qv&(iLnvEhyEx`cYNBtTnGVH&y_Hhx@?d zhuAkx0HvR+toP`0(Umi=g``%ej{pt+s&Icfu`>4Uis02D00|T)g*;-N2{5fZEiQW< zlJB2UE7Lf{r~-ue|6P%9O)%Mus!zLrWs^_D@{)T#WpW1apK(t|@+Lx*b=hO3btwP^ zbN(rSIM#^A)H&mzGH$4Dl}A2aw-4Po#bWQj;gy0tm~oD{QF5#u`ekWa<j=xZ*RTA~ zqJNU@y1wVs{2u<(2sn|fTyANFWi|PUuB6wwp3IZI3@Djgi!M;E=uZP`r;5^rGa%`t zsS*(1IgS+`P^?5=sz9`N%hc~vJfBNpP0(|_jWcaHY{1$WvNO2XMqH5GF}YDX=vhG4 z^n!|U*x(>@T3W^VpUt2-S9b`GCb8@ZqQLaIskb86%ef)a?OnG4d6i1R8MTu-CB&pp z)ea%J*a0CK=|XBZvVTzLc0Ts8O%~_Lf47NLRa&p4?JutWJSuD%ECkF&S1=hcDOa@> zM|<lL^d#=%(-N6il$c}czLPZ#c_4cVBo74hYMSCL6v^dKu+70zH`P}Hs6?=EfM!Qg zW0}^^VQ`vV>c4ioZXXvMi_Z0Rh3ym^JAKRf;~n{%d-biT!4U6y6`6KsJQK=Maq*&= zy<$)&!S-l$w%~54)v-Yd$BNQQPJcO-XbaWrcWrI@Ft;1i899A)j|RsB_;~BjFYlz` z{PJ)>Zv4uX-l-ulwPPK5dZ+TVOl5WhA)AF>U#F09)hGRJy-vq`O4r9ZbBxy)F_pUw zYBD>S!EY=={p3u)itE(nR!GL1SZ<{u-52e3^gV2{$IejgInI(n`V9Xvjm^2@qjY41 z+}I!nfT2#OMW^8t3lp$9la9x#fRZJ$^9EqZB>tU;0!6!9JMF^E0z{Avoq*|OaQ#`S z)P(``hXPa<5yZ9OAhoGBzmA-(>`c!$Eh2MOvrd*<O_~<Y(5{Y%vHiv6)IX)xf4=;Q zKI)6yj-0&y$3Jr43z?bmUDAk6NbF)^gZfC&pvX!RX2ddIY^`F~pi|htTX^go57Y+G zwyu4&KA`6bnjytZk=H4+Ml<RDCTHh0!~S4~1gFA7A9rTKWip7h$vr9%h9E4F@j#yW zyu0#9c;u(q*<}ZGWl!oo)3v)b##8mev|Y(T2mEvx-7Lwwx<g(y9OMSQQJV-@x<XB2 zjc^S0>{PN}w;ugp7w+9r#KR(#M0Z#h8EQ2Iis^RSd<#{iK*)kHJx!>DxB)K`%*;Xe zyx)oUx55*o-!qIM)>7gJnR(%rdLD)E$C&qo(!=h~iu|&i+W53{9NPS6<j>~A$mPhR zZyLXr9;pAa3;FEzUVIbTSrKSSQ{Gu{e5+eGUld1<{hnJ3(|Lr2!q&#ixpVf@T~Qz^ zrwTJGM?H#iB7_KVeyTKMeH)`<Vk^quGh#T18)R1ptxx~4op*&b6ABbeugzyhRFFN& zVc8N-5-nfyE5jbJ63y?lsQ4sZ;2adl9-NH$7I5cEx&;f##0B?D^^M76So6G-g^JIf zs^s-Pt`!~;GfAsYZ`$9je>#vQhuoUMqV0C*ZNBD<nmXiLIX9W;jC@}F{~ozgiVdv* zl80geoUXdP?VdO`eFO@-G>v6s(nI5~iD#f=2%2QP4HAqH;^+k+3Z9{Pz}Br_+u}0D z$vsgr#Kbk-G9sKx>&=Gaz0z%*I{{5k9IyH%N73I(J<C5ue;>tb{5&c8JNeK4=$~&( z9Y0zAsF!~T`Ju;V_cqOgqv7W4QSIK!g3Y#>Fcm;-^cne&+;<>Cb?>JSU(2DnU@QPs z1~WsG2%07$tExYx=*rt0nN~umk!x+G;-+EvUXNfDMmI_`teJx$8iX>bs+;`%m_Dj= zz|ZK_iVa9^7Y>m^r&G!DLnbyLaHn7DC*7Y)p?$uqCV`vfT|;Z8?-_*H*qGLJ@ee%a zx1KQ@EPnP`QvnI}=c(S~&p&ZlWMMMv<ee|;ibHk$Uey<3ccK)~rbD5zU$#vXnFs!< z#q5UDb4Glvb25aOR*ryM4ls5j$xx?vrouZz%qZ5(qBwXgInzuGykbbI>lO!bF!g-n zL3fr!t;C`EZ+DkH)95MW#-MR#2ypI=(@CqZ58hq5-SV{KPkG3P)SX|Ae|`*z{<>uy zdAOt&@#RnY{96{WlkpN04Uyl<8E1b!wZA@h#u7;iF`CD^&Rh{q-Zi{hXd&JUk(N&K zu7HiR!7?@#e3JYXAE8SrrlvYxoc7ADt<<DoYz!*x;z4J}jZ_o*^1{$$(^#<KgH{Uj z<e}70bNe(d=6*yGWnX>E*xf7&##_TGFAG)1kttSgqUC_$%Ux%fT3o;IJje-U5A>S5 zMCy4^xmBL()1KBR5Z@<S97P()<5-^k{8KBfa60f#?&ziYx;t+AB1hMba3YoBa*Oxi zLTjDjgh*7Q@srU<-od*Q|1PKjFgoF`XRtg3x?;EzcV{nG3B``>#<}2Z*w7wDNX0iL zNbxiLY+w}xqvy{AbIqumq_l2}y!viBiiCfV;50fAAmkJJEBKP}=e|GBxVR6v{~Sze z{NVl>A359X)d28I31wTmf0~6wB;+bm*qI6xok4$Ve&<+<8ZOsiZ_KD2&vKw0;AB6V zI|SDRMWHr}SuQsmmFYxgC(;u49jm!3NW{xN)Xx#WAc;d4+b>I-)OUvk6Y&+vziCY$ zsQ2*2Sv2#n-u`(fQ!`nJ^zGRyW)AH6G!q-x%M#|5F-Ak_Hy`J8l^rwR;!Fngxa#Kr z{COIGqpPXr=&z~$-(dwGrmlYONLA;$HKFjqb>~fWRNEUiemHAgM&f<sNrIbeCDaX6 zNk&w+oCeEM67Gth{KcSC^RAb`$Z*!V_zs&0HW@*aH?wJDdwY?3OQYf7=+g7UzMB2T z4<Xf!Q;xpW^ST8`Asq&n`dEegJ3LXh+=~x_CJ&v!;*FW(_Y^Oo)q<(DS@Cj;UX{~H zBi9xp$ZC|sZ1Te4bH$qE(e;@6aDvl|H*?w(1uW*lNdZ@bulRc*;#~g!XZf#;qKuBv z)O+ApC4T446J*%sRrsa+F|2MF9N=jHucXL~t_aKXGpx6P>Bi5X5DXG833A1w@RDqW zwPwy@ZZUP;NO_9b(|Ty%^W^SzJ!fb$9^>qVPE!ER6@>JIj~cykmRm0T$0*h4{E?c4 z%JJ75GSC0ae%-9uTKdJZ>4dH6G_jahSaKs81Rg{jUwcKO7|nz|zS`5_pycG<b^T?M z7zdlw+KK$EdzpOqvE?2Y%rE(lCaFYP<-QkbD~FZ0h|Oitjy$%V@D~hb!ZC^Zs6`2e zQaQP!ukd1%ShEB>S0nE7ab0Y^gGbxg#p$OHvZ<Hj(vaz5CNdsE9#TgAWFf^A^{(x$ z(i29UC+{1+*~=BVtf>N~6fiRE{mKit=I%Yash%BuRw^&cx1c~SBKFJ-EO7RsI4J)x zn>cx~-FsBZf>x#)LOaX08ub0_UETC=&yER!mxKOykzEkmatTnW7*0CfX2BSmHe+;# zQ$^UzM*oT#o(rA{g+k<~>+MgV<TV7`0H<QrsHJ4KmNu`pcC#cL!pc6DUgQQ0tj}A% z0weV>gRiAXv-YQd=d({dyB3f)CCBT1OJx7-)5c>Zr(e33Z1t$!a79VX)|XTKl?P+b zLLS4nlS~q1+IaTE-!HaejAn`i*-=OeyiRJLa6fH0CWrlecSYQ3d8x}P)7yXxu|DmG zLT1pN^et^28JfWiXa2MNPg+JFwr>?Uy{Ospj4i>H+#OP+!x8sy*?zrW_QF%LoL24~ zEiyMq%MZG9O_WBnG<tq8+nPBZpBT*pUSCu)_1(OxQCMv6J!Saeg{=UT$-sk)m1V(p zp`U*&bTr#!=2<M^@Kku&W}!Y$-L0<L%x}b;(#`+dp)M^`#JlKDj1{aH!V`s7&CpNt zcjX9*Ir}wHw*1vFO>3l{hlm?egg}virxZoT;msJdnjeOzXC_F)xJuGaOWZz7qNGUz zQx*U-WSj;chYlqxtvgqUdAAC(59mPO?k$OhHdRF&k5ycsSlw8%8z!s(GZ}Psm?ndc zW53b{b!JpNPI~AD`S&H93XBPMo_{Dz=3zy#nL?fGHOC{iB20MI5;$q9=ivw!4mt>h zlOis%)|q|#ku_IE@f+F5RI5wg&@}Y&zPFdJ9(n!n1%|IRNxu#T8*;f9v{HQ*FO}o| z*9Wa@IkOk30g~k-!wqxa)|9sz?@`Sx>z(#nujH4THoYH9Z}}k2V|Sj`eO8nvnkdAt zsPE0gi<9s^KyTG{w-=mp9#F9ucO|GK)^?XZ__hXrW%$HNJF-x5c_RJawM@kjp}}O5 zdzPn1T8oE?CL|#d1y&hyKKTj}^BU8%@%U9)KBlMXS)H^y5po@ZqN4h_;nR<$`wM_J zh$*~a(?T9}57zJgHD@veV?of<hE)t{!;riX4g`r)B_mnW_4`bk{5cMgKL)&RtpqT% z8d1f6)rL@bnu$|<30bXf4B6VGq2s5Ej=FD#3{5T#0`tvnXQtCm>3gi$QF-#SzySrZ z>6_GgEz&(Pu`~tU-jX^SaY`_zSZ>PE5h`vv{#WjX%gn_L$&wG&e!s`eCh0SZ=rW*Z z8=nw)%(SeI_~F&9peAST)5S_hUu-3Slg~qB3Osa~_|O`L63r-{R{gN{Wu_riP$50} z(TQ6(B<`6BGo8tJDxn5PF!W}h)+Gc<5bpu1fWz$WY@e5JZq+@w9&0C1H=g^9JJGdy zOiMz@UHadHEy1{AHzr&M*IiE;PjAh7+%KaEfj!35)x*va&#)ry`%$x+vJ(6h^}CJJ z^+!Nd?Wh)UMt()4eAoGWwRJ4|JRFJY^n6u|iNmqNN#sN{fh@@;VWNrRU_iq~8Sos3 z_kU!xh}S80r3@HEwXBthw!rpFzJ}xP&nx9Tf9gOmO!$H-yJb}F?&c9esrzBcVK6Uk z$e-vs$}O*xp^zJFP<+_gj#Jcb;0io4t>nIWCUm`Mydb9V_Ju&}a$T63-h&cb{UIa| zt??7MEmU?-eXbOpFuWBQU;kq$yh!IkM9Xe`$bR$DGP`bi*^tNiu+D|wAj=2y!Pm6? zA2!%CrRSAh=GmTCfYUtFZ^m`tRxf#p@l0;4+?0KhUYkJM7~3nt6>m;?T!?Z0XB(<2 z>e5dM)DCcJQIJ%y9cnDS+c_rPdiq_-u+%2GAvu{xK81Jsb_)3KLw$n;Mfz7cr|IY4 zzJj!bvzS>(ASn<@E^={h_q;riR3IK?)lBOVn0^LiZIvF8a>-($sg-Yaom2X6^wbmY zCo3g9v3Ot<cF%@2W;`8;vOBo<Ur+zsRMajTu0JYy!}6XAo>|XH;IrKJoF!^l@y;@E zfJn8%kIDYgQD#BJD|sS!LX6w+jr&vYugyeE7aXho__YKx|1l6*2{eTc+t=kQ8EzdL z-5dYL%bFi*gsWUUTP>Y;Jy-!Hf6nj?<<s?3X#e1=aFw0b>0J4Y{D)>exYU4Rv(Pe& zA*}=P5oU4Ee-`FDKO>5o45lM%6%g)LDsT`O4n^{*Ai*lkLU6a4Z3Dymaj~2W=L++= zKsC^M)mI}RF{_^R9^^JfZT-mID&xdSvMF+CQ%P3^OsXyJ2cr_vCJg!{HUya2ZBJ%h zZ^(v2!zoKmhg960M6~`UB{0CeY1rqvm+p#I>uOA^4-Bpx8aGYT69al()tW?;Yn3b& ztP+EJF5QyLx`~ld5zV}t=q3MVajE1GHh?r}Ib5@SlA6GJZX1y{AncNIH(tae5g1ke z^zEUxc#iejx0A=8QnR~`Yc2;Ke&=2tj`X}L+i@`%X|$blsmbFmMeXoDF53XkA27>4 z>mpXG8sIN&#=_dRO5htiGNKjREV%o_CtW-w4PG|+vnnr$d3}mIOZlJ71^8ah2j_~p zY$Kpjd1}4$^35D7OX3g^suIrMi%hc>4=Oe;<1DGu_u_HhJS$9OSGHod<$_8v=s5Qq zge84Xv|(lBN1||#Ik2J6xmZa!I_!Q4(g%u#01k7!b4>RTvx~eeaP5954Y;iM?MH}g zjXBxC8kR|vnB3AeHQw#rG1O6n(#)X3`9g51N-$`%pVLo&kyZPr^Ez_V*ihl&oI_mN z!czzRsBWE<7hyBmpQqIm?i#DecR9)u61G^@e!gBAyZAnUZ{NPHyeL{yf9B$*yWL+r zmMIUMa#Y17x98oMs|;Vd>(yM)?VVR3n3}VpYV~&)Z%O(jAVV|U#hL&Me1lZT2B`PE zTbg{IJjefj+T5*}$I?w$Tx!o}Bz_^JLv?kcY)k#mIp?1hK0`lOxZ0q3nj!DKUX%?h z!%FHIs|=f1*z`p0GwzCeJ*H$luXYa_Z%WYAhC{$QQS#1l1?eL)llHP#L-`b9F>3Oy zs%6hYue$0^0DTjevi+S4rFwf2{W;RmL|GQahr|;1-IVVYm(xsD>I-A^G@n0s&9#qf z@giiK-Sv%^15JH}K1W6fFN-KBJZxTzO`D6IFVVXPWxh%jk@zqsRe53V)uLhknR#Dk zaRN%Q?bL*4IW$+!76pNpC;{!0L(K|L#IJ3_5zrB=P}RHs0F?)N&i};YIMGzwVFciT zXJ*v#^l*Xd!X?osSUGy@rHKy^Pe0{3Fnf6B_z^FtIG+I`HrS@hVx$nDIRqYa^^Vlq zoAyL8%(cusO;&qG(vl=l&`jFJiP6znu^hus3^ACon_U(u;GpefWa7enuXq`dC+hQb zp#0q<eCZji_vnfc@g)}nNyB34ZD%XyT`K|UUbMcNlq87Ene8)k(PD0Dx{~-xW_{}6 zfN9c^Vq}q#j7R)QNCYQK?lbeMwC(s!YqL5TT$)wObrHFEMju;~u7JNJB$>y;F&yAx zi!(1CI+N?9uj{#Bu20v8{2AsqGm_Wy^uS>%+<8OO!NO-~|6PcC12T-R9@{oy1M~8_ z!y~5z>J&lIX*OB#Xacwww_@q4RmREM#1l*ukjjcO0?~7ED)5v{Fsd645_$?Z!SpAe z{dU_r1JTP#LKhlnOR^0YVf6@_AkFCX+8*TC7xgM6IW%|z{oXREzA9h$mBekO%RP4Q zkoSw#suWn)+Y~LN8vUW-9lU4Q^cH0q_$?J$pX-&?DLP{|uRgE*0C`+|b0*}E?Oh$A zwO2Xk#DkE(5p;oBo4LQNtzK~<pp>lcOAQihkN2$;SM2Y$RlgR~wGNQ8#h*?aGf?#} zhC0C+Ts;!9>YzL4#h4@$WD@Uz`$w|Tt|RJ?kV*@9KBfOV4D$1rnW^Jb9Ec>GO@@?I z<q2jol_%zv@vER{!)CSYjb&rB+D3pNqo+6y;;%KIfpZmi!L4IM@5Z48Fl>5k_#!q< zu;elhN@7QhjW8><dr2aE*0b(fzgQ^0>)0$>i1eaD7P%f3V_&{zdtD35t(nOz<W*M0 zwyL)II4>%)Q_JAx*IA0)yC#69p?!4x@CfK0-bk`8oYr?T=qbK6xXWr``8`W+RyXL; z%^6Qe-pR2zyMzQWH&`L{E-gq?vU|~vTj4NI6HVkHr4rsv2*=<~v2qNDqgZ3LgWRpw z_24KsjB=Zc!auM4D-0sd9)nvSLO>BQnyzbTNhSt<5Vh8vxxDB0gQhjZR~X~c<YW)K z1bqQ%C|tY_Ap7w6^&uPMr!DCaDj3CTKoG~oTfCGsiTeApUe5=hIM?r{7S~k|D;*zG zD~W$0hnUEB+DasOB)^@1s!c51Gvcy9`47mP=e^;NUQ}c~wI;oiL8Om<4HN1@O3t*3 zae&B5BP!>v%q~Ao%e-{U>2~xFuDL`5!y#v=DW2O`#G)zrOMSoW3&K!fJTP3LDm=(B z!RT<szJ&Akwv25yOxHkOiuIOzMp`B?8(Mms$(Dd%cavYj2!O^6{&{f@4JCf5x{QJJ z7P0GjLd<U4xng4dl8I@#EvrBWK4&$5SF`b;X|&OWWSP=eW#wjEX&$fuWTBpctq$Z> z-iy$QG-!r&bmIF8ZB(L#G@&qhOy&%TJf4nNtQ#4*bScJ<mnYiZ#Ch>Tmhk0)ck2;G zn}vHaRz%e8KEErM&UCkXFh4U$-f)>HNHTEB?)&iifCqgu=ER<nv9>k}YH*1EdWmgj z+%G+u13%<0dw(hIsdkGh_w}c<u}njTLC@FVmhJ&>8+x3#W!$XrY0mCrQy8F*cCnpj zhlBKW=ApT2z^0!W{wL7OhvnD`$S=8fBP~ks_lt{#jiC&ADgpN!c!WwHHu=vcka^}x z=7IbQx}w8G@_3b`|BM5I&4`YUPO~uK1Tn$c+^zV56zUF(WYH#jN9<_v1J}NEAVW&6 z7Z18rQ<AZz_zCFb?DSbOpJH@4Z#q2Cs>hcRjIygN&-)M_Vt#q6Rbx}5z*t0=_>py3 z2IvS=->x`LeC+7T&cNA!ZgMYde`;>&dk#g=f~-Ib?<9^Yx2E3RzB?QF<3`i--%s?& zoO*eC0lOEQxIZoZ$k{7lrqAD6$!3V@4%0^hCPlq%rWlWI*7Z3eKs^7uy*auRSZ}>| z7Y8Z_<TGf7N!F7StYA9*vEg8X$E&liY|74?J7170SHMW=gXtxDiqAZ~%GveFP&SDY zJh{S*g2P9ji0Phoj$5*g)jQW3EMa2GM7ncEy5#Ps9~Us8!x6S+@e`-5R)!L3iV8at zS@!cMCpj@Y(VEryXTHUDrcR%gJ(?tKB$V+~t`G{53m-mQKS>Cbg_#?cyR+;Hmu6W1 zSg(;%(f1I4JQVTq=<;Ozg&*>6iB-?NZ#=V*W-Qvwvv#@@VgCR*7A|g;ou;a&NY_F1 zr`zV$LYaA-7bC4kB-mX3E|yFT5F8o*WQT~jr8G{^o)L3@x`MO3l-B($pvNI^aWvUQ zR{^wn7V*q4?{;&3cdntk-L!tR=@6YEw?Rnpv^Er7f`g+H4YZ>nd>ANPN{Hb!gP1(z z6p-6kS3C|dF16^jR3L@uO3y#~OQ)@tn`!>=uZeX3sBW8*QiqRl_nRW`sKEqWqM~0x zQ{RWYDP>9biRW+5CEml%ad<S@%RZc{NV`^PC`zfle=1CO;*I&G-=S!gikt5G6IR?g zV<#sr{iS+z3~y_YVHKmf99521S`6jYGm%<T$q$2A>H<i>0a0;MbjHndXH$Qu-*aZo z|0l<D`Oc%*b$*v~J$wAzFrAEZg@Y0`PYLKr>91POX8S$!t9|&wNC!>y$S~j_)lMcU z;A!Odl6(>+NU$~-h5+anjC>z=Wsqb(q_#L0y6&I=GLSeEz9^^ZE;myGVt$%|;%j?x z`j#<4gPaeH31DJOR?NDWdOmD9D639#VkU%QMGTao6o1+@do!+U8q}iSb2xs|<1qB+ z-k%Z<N*2fLyX>PMH-7v6X#UMvJf(58BrAHXE$WDNN$b84rZW*#zU43x+Zs=0Qk-}{ z1jVYtm)wNX`omp_5xG4`cEZ0$nL`65mXy`aEapbid`vu#;~kz)zZvZ>c+ce3ZMRo1 zI51X&!ty~AnC~Z0I6bCBOgu2d0{}Z>qi|8S0($-FKllauM}A3|W^HUTTx;`=4e=r~ zsL>K!^9E)t&Uo8AmacU*BQ6{YWOcTPT3mS<9n*XT>Yh`4U1NJKIfwlxLv-<WziDOA znb1s!8Ff>`mKb>r0v6A=t1N)V@aA=V%VZ;2z##nwbps2xaVm$oNKVikTf>S_zocJM z)LEqbj>Zhe8E2DyJ_G50MS==r`%gmp#k{TsNJSn?Z$n}X@7Lt2NrDnjpi-z*qgln0 z*VAP)!eWXK>BeJ*rxy}zSS!(dr_nEHlxRGh%?d;iq^f4vp6|wL+WZQ$baMmifO$W* z+g)n#H@vg)Y39)M3UL^jBHc?<`)X8YcKP6Qg%`A4D>_AD|Kcb83G0cDdH<`|P=3k} zvo}tWg(yya30|FOH{{KetY;7XR5;FyrC{{-FSSOIfx+V2qMGltZ)1p+2K7A96}>d) zG)*$}FbX-$teBmIeQ_Q>ljYD`qFfX`{_p?R{=C1&{gylMo3)g*DB1}QH4eofXX1mP zS&5j}pC<Z)nkN1-yyXs|@upxU&9s>$cw3Mpn*<>e)B1<1`)8R+MK|3SQ6xS~k59)@ zNk=`~8Qt?4{xqTs+jGrEuTU7n`a=L;T|He%6kU#=h-=Hz(H7!Od!eA`9AOT6eB$1M zjdADTMiz8>Uhy!4!D}#~7iR%QB-!yB>tUzyQj3wj{4-2Lno-{~7Ive_!Z0(2e^Vn4 z4FE@~S6~)npyNR<tdEd@Hy0HHT$F8dafZQ)Jwdmcz7d6P4w=}q>RT$X@>p81@<O1% zh2gRH)FhS)Ge`liJ1FV~%+MSxwAUYm%kG1Nw;@871G00Sgz<~+A_nLC9tIEmKdQbm zEXwZtTE+op0A(0jYJi~|mCm7tkdl-x5e1}?lo%wW8>IwkBozdty9OnMkrJd+r6lLQ zpZB`{&*Se4b6<Rz3(kG^K6|gd&RQl2BO>ucwtR?t>PJr`I8&a$4$1{Zfq@yJF9tK1 znwD>i+~c5!Or$U?->-&~0B(nS;Ojgjb;yP18jV$)QK=;W-+?M?RJ&}M)6gK_?!S6} zX}ufNlK})GfhUqoyUiA;_|d#5g&I*l2Dr2MEOOAc8NQy~<mf;NCs3had%FdXAVHx* z??q{mfnHw=zp*S=ny-LFd-M+`uxe)C5qk*DzO0+1Y#aWN%kO8yzp|R_K?FKr7a<xk zV^x@;seAjq#ol*9F;PD%Kr_rskRBySug|K8>a%rl(}`ttq5>@27kT_s%-G&O;1wgH zcf%TmQM?g=|8-<vIN1bqcy=>pJxxxkiGmr1K(#w6ohN?rx}WGZGH`pkZ>yuj62l-= zii)fx5KJuSdS8fNf+3Q^=OJAqBB{o&Bs-?SsgXaj-~m9J2p_sB-nMKouR3eL`0|zC zMw5_x7{f`D@>5wy2G&~mB7E;QjwvnCcKHhKQ_R4f9M2}EZ0o6p5Tz`q7E5Lv7%=%X zCNoTLK-G!a4S^g*%)K0cqie{C2LA_2(7mu4rW;R(vAMh1YwE%jmj)2%l{-tWT)0-Y z+qBN?!)yv62GKBzatMqBmdPG2q6WH71c2FXyb<i<OepP%UhvwysLv#^Lz9BG^!chm z0|3n=v9e*)gDqADc6RUKb~i#;JLYJKR89yaWlp+D`#U8)H6J=i)3W1Y3NmY&s=J!( z1r?F;r7;?y<tJH(3JRnd+!(Der0_lyJ!anHDYW^0D2e*5sU71S9Pbiy?ftBL2F%C) z*papCY$gxajFm(FIz$_LZ8?lY=^%UPkftxEoRskLWFV~(+9}<Vmey`jN|x;$p>r!W z`HoPglB5brgwYA}DUy(>b|w@Q=xRL<cx!L;q{x-kuMsSJXUd~_g`ptbXVt&FjzikY z{jpSBTX$rBv&GSAotC3d%IIaXeM`E3_NC%!`18_Snek(ups}HRH$j0DOc#%~a>Pno za!|)SZ}byq-Oj;jFwZOGPYP9561tJ3TEA*E&haevv45F&ILKE$Gk4l4vWK^UZGdXo z^8US(Z9s~(`YO=>C-DR>ub+72zl3yw9{K+XNmEVFB%;HlaxQKc6W>|!)>jGn!T_oO zg1*TQ=}eXorR!<A->FQUJe717>fhG_D7ZcLr<<Op-?JC2F8)IY_3SsAER%UO91QK+ zI?zl5<|NW5FZ4#+N~|7yEtL2DJ@}lXVZG@ScGX*#F<Il7bPm<Kr>D)x4a8L49QoAS zYiiC4)_ah_RtGUtHNEWNI=qZ+33n;lupIo+?!XcjzY~zc7NhxySpC}4PFAEwQhnK^ zf6R^LwwD@xFY$}*8x{ENl=kg*Y1ylDlUv$<#eC~SR|mEwWfUAmIL#fZ*k__%tkr2G zbsyt0Nni?V=+Qub(xf(f#UDX&_dGXSX=<zPnHm{b)#3h@(|)yHk;Rb*P~ZvI*D2U1 zoFUE}hMzpq#JU8x;ex|3(f~y~V2F`=HYixYQNzPHPx4bbLwN|YuE_%R-OFH#Netwf zH#1NwL3?r?5GjA-?B<~vLU6+2jEv>)+N>}a6o`fxI#o2^a53Z!TQGt02g7Oh_A-c? zDx3>l5$aLPSE`a`hOQjiC`vJT;+y7T<nwY-Kv(!*2h)9yU5*z<j0o5mWkE(XcnlJ+ zsRQsjnUjL`b<0ruM8+tF<z46w+^n~cPCa+<2}*Q7*ZuK%%_H6hrKV4B$4aeX*66Sq znKHr6wWvCCp#x8D*o^gp6$(`(AT(7?)w?H><5d2PBFgOUIfq<S2mMi~!78%JxF_e; zrRcoAhC`3o``$qT2C}ziV_8~{Jox6{Rw{rd&5p%`@G8=QU&+Tjn!-?8Cf31lUR?En zBp`Su6&e#-6VNb?;?d__jfG|AL6sE#j<`HPw3m_I*;&*b6=td)lZc{FE=`R}jDd;r zy>8@%p?RfKP_R}D2Omf<SlfyB=+i`a^uo8_a8hV2S(ogP(QIUaqC|PRc#xmE7Uo%= z%J=a##|M@bTJ`>qjE9v(Ph(=v+k~p$pnS75f<i_$*5pLOGUrZQ{NhmQmE0u|dsiq7 zo9R;<RJlnop;SzqnsSTlO&q^u%Q!`9^5Y=C-Ame_t4~6-mA2QH)o5&lT>M-jHexJz z$PuPxD;`;X=(L(IoI_Bt{{S}O3r4!|&N&znI26-kW+?KVyQO&JeJtYSOLZ1@uuqz+ z?unFf`$#sA%5K3lFrv*DKv$Bz*Jp8fU2pZij>pu)&!)_k`A38n1X!%h4r`=AcI%js z6RpvQ+n?WGUZb8<u%;Rq{{5-NkW<o-MU&7MVm}g~WgQ=@D8XAiHg?Zg>q~N`K?7E> z&E9<_YPUEWfGe%tBzDt-I2}(UKY1mIQ1i`tZ)b35KMA5c0xJs+AYl86tO$=_!AAaw zg`u@M-k}IcOOpi=VUnz!C#vkQZ!Dyf4x=B^@fU=&qyv3v1_y|SbE1fa@}VSZhBS*~ zQnl!w%kiU72zo()LGyz)3;%%->3i70%cwXFzyeC__j^AN3H~CXcv}suPz%rNNOYpf zC$0j-sz=TN-*1IfZ7$qiZu#CuoEb0o*-}%wQgqqv41c3-$vsB;g9XaWGz90|`l+X1 zb!igx-s}FD=<GKkr<`2cZJhS+Y%7}YFFRvf&kQ%uU0aktzCGEkN$|NfQJCrTF=?=c zqu}t=yMeTTTYA-Cg6EEKdDAB(`J3p4cV&~eQ@Rj)Or-Q9Oravy&H&x>K!E74ep23X ztzS=4gGxl!ttEa3Ffmta(U<KWY;gcLDa)3f&O~PL-fex~U9ow{!^Z`>p2IzH{G$y| zHue>m9IV&b9ne9!<Rzi^j^FHBHCcc?Cbhd?`LLAdjx+dzi$=#x7bG}MP_t4&9Yd<i z%z$P!NToq3FYm{bI}t_BRpgKTtbJL9pOe|Sdg&9T>B^GlJ$!A}?$(YhE5`&_`nT)I zb057aSdRDOLK=Mg-FHBmp<B%F!a_QC&p;@$;gcYNeetjt=RNF;jyW!|iV5;R%%OL9 zXjR@&{T6A0h4QLU#aGFx5!n890xl{#I4CC6ZF{S=#6x0di%RYjh(-CTbiqERo&Ee= z^{cHX)$hxCiaxW#bykIsY6dQOf{|lS1nGNuJp)WXP3}?_a5HqF*ZR}A^S@;cA2>hV zQRQ(;s<*xEA|K;{vXT%bDRuE%I`w|BQv{n>V;_294m$}YP^0K=TKQck@Dx#W@58uf z`sn*pm?lsSR%aDrG{9l@4yGYUWgXEkWE9?wWi8I+b*)2f2?lyDNe=jeUT^2TRF4=b zZCE=yefTv+f)A@lqVm--ZZq$k<)i9~gfRR^r%iQ7Gl})Xf@155bsv2-2(Ak8>+N2@ zE}o`uzMs@DDbs%4EE`wQ_9<$2qD|(h5I*6Jy7zWNsTGr;kX7(m<Bt_u7W|StdeQE$ z0=au%q0PTfL$&Bc$@00Lz4F7yCwf}slQhU+u%5sC%GG_{ew89uc|EE*RtZt$t85p^ zz*|kQsjxN}m-o5JD%jUK*g%!~(QdMj;$n#g+DDvzRS_qX#Opd26Ee{K(%e#_7|Cwo z!_x1i@$}O)xKAB=A2YX>PK&E9xJz54LDyvZ!Bsw9^o#Uzzz&2$dv<z{w85#a*8FiP znzA+x6L$;Do8Msm%ugjRfQRkzF(wmhcYuaxT~v)|gm$?Mt{RS!a`Pk&KlF#c=Cb!h z+;j2!vgX)nk8J#B^mW@~X@NqEOBWx9AGG>Yh@ZBS4^p0YJ9~8U{o>2!4>hj!b-+b; zY4ArvW6PZL@#@9NHf}#4c=aXz&&&2BmMegoiT}OXkDqG)lYoCJ@rje+?-Y5Hw~>E9 zU)#K~)rv|iS+-qwr!*q>0#cV&XXighE@TkXx^hvllUvZS7VmaHwfX!lQ=6{zM=IO< z9<Jv)cV){b*b5SwMiLZ4+0Mr^GTv(<`@vaF+>ddAbVs2Z_CJiYuuUv-g;vtVd(6u7 za)z=+;xNG5UJo|)cGmmp^q#R#%A{smV!%UV+&y4|&g+V3dkCXKu6KFh4x~JVW>GU3 z5p`lV)a$66A@!d0_w$gc(d+$APlP6g@{jbp4p$BLBb$TZz$?tY_)1lpsF}C;u~o$4 zRq6ogk&RZun?kDlf*C=<>ROv_g7;;GRx#!uGsyb1X1QjGov{W_=CfrgTl&5IbsG{G zlNk(#vfhWs{lG}*$ySu;Y^`Pg2XN3W5c%OjzWm6jks=m3_Ifocp_mkp-_g!>?7yni zOINNAz6yO-z3f;Ud><4hO~*iL!%tE$I`-}N3vT^HF#%iYdpdV=62D`55WmdenbK?V zx(XpVn!^?53le70yh%6*k({Z`H?}WnMJXPEj*dCkX+NHD`;bpL9ozwWhXp0kHBA)t z$wIXg?Or6O8pfi_C(~KANRE5LPA|Vc+0=9<RbgpW>fGUJz{JalNot@chN)>d490p1 z-CYK@vToME3!pEovp8N=84EX1nbCylF+V;KF8KZ;u4CC)B#J#e7DJ-`)VQ^kja+|F ze?WE3fTe$r!qU5UWg-1i$XzOCqtvyb9ii+4J4wPEuD!(L>)H*Hlz9|Wxo6>@{@|~4 zOs_80+VSK&!TT&Xg-Yo*Jk8d+kJ5%VaX;k4DgUZ`$=btTxx_bjM#uT5G97&y9lMvm z^~v(s%DF)Y3izLC<E&kBA3d+3O}l4hDfp&LE;J$yOcO>_<SLik5abvA`fl{Q){z6p z`_e^nQ68XBIQ-?}i_;ioFpZ`6S=)Nrw-1{UZd#j`6TGvT%xV6pFh>|K(B=O5Ipk;4 zC8C1m<?=pwGo&oGphJTM^Gclm=ADi3gi2}>;_}~1&!?tH$?_jzc0Mc2iM-ICH+w4N z-yY>v>NQntIp3|J4#5yYU&d0W#>{^k&dvCc+wWCXx<~q@FqgOCf#sS9{g!a3*>lsX z>JNSjlJ}|5c3CW(9i<2YpX1=oRkkyNBnJ}5_u+S(P5{${nZy{L3BNz)d#$P8ZWlS7 zv$D=1K9*$9theLy)+0Bb?tGi#aG))D-tj5%UX*@uic}E7$k+-I`qv4u<f{uz{5L6k zF${b{dSg>3Lz?duDKAIs_Pq~6ZM&drIUX4r^TA#cfe#&(HxFK-ht?=W_Ym<IO1<KP zD3`pvqdDov!bNA}LYkJ2I|kZ@4R4~af%`(596b92?^Pm=;C#bgbMrJOYch$qoAP&f zm%dF6Ha#xf?S3$({N0s|J0{?GHDX=7Sg-s+v6(Zo&V(Iu&M%KgchKkOh3G-KnqF$E zzR@>VHYzSX9Sun(8*wOqn=QrE<>#ALGoCf>=tH-9P8~;%;&K>4gL1LwptFF`#LFn| zsVu)|d%^Ut`zfUD*7-H&12;UH`GqzE${wW1Hg@0cH^gP5OJZUGdtl@qBy_@3lp$!( z?;bWPmQ7bovOq3oRLLpqg^Ct-;W$rK{-e==LHZ_p8s+bfR!%p!BhZL|y8)+Yj;w9C zbP%f$nq3$<VuB|8pAGu@aih<lPuYQtdV_>qB5AwC3*xKe8fDINC&Nn<fIGVX&AR)Q zBTT<&20vEp6pyL_1T-x@mt7Un=~1<qXmbewy=@+9*a==*HEa;KePMgA@9{M5SlQe8 z?Uud+p$(J}5&;9zf-}v;_I#vnn+`~hZ$1>V3FnYxGaS$2U%K`BKpz_o_1&<JsQmWL zkl8XhpdgCpymH1>ETJ%4G5H2z=1GhqQLX;wa0K~ST)oy5fqetwP3jq9%X9<7R`-Jw zgNYs0%l~$6xcFQT{r*G9LUvK^)8c;Rh@QbDFjZMLhVisx*n5pIh?B&7yX}3&*au0z zBfTD?Tb2eoVh*$E(@meMT2J7Zg0VI^ScYJVrocB;Eg6vwV2^y9E%(_B^2897oi)VG zB_hk~5J`C}#>=w>d+NRNCgTQnz_I}#AnZANAofIFva`3{6H^lv14FW^A+@4^pFCJz zJ!#@9`RQYxB3=edHnEArFEY;`_>Yw;mth_J_JT_%*tfp!Z81R!*91}qjkY$^6EeCT zC6rRqhjRtCi1mCw*Ph0_HYnarspJasGfZzSbSQnqOVrXhOg0JI8X!qjBzXs+KnPpY zo8fkM4h?9e%`tBg5cu$B6^FT<ze$N_FA<lkHPs^z!63giAJ*41Goy$4%xSyqWr?H^ z%;>o)B8l^HLxtFL3KD~gxB#hl`da{1$-sx(eS9=YVFs9p)t&>DlF&;S<qXy<uejgg z9DFO+)RZx+TC$)fh)V7t5SKA+5qWDWJwx1eI>?`HLMg(ndvf;&e~Dy!Ot6DPDVo}G zKclrpT@eZv+cMcBg0f~jrsOo0N|nedjudebSpgBIiM2m$s$uXDN^y2D4l>xXdj#qk z3;mPk{9mhW^Q`|dZ#QLA9(j9qgN~u^VT8GXIKySZsFgi4s)z^a&~AR#rj;;sm^kzO zh2Jp0Fw#{|NBqJzS3cvltp_&fYSNE+0*IOT6tle<irE?2qMd+t>?eIeqXE`?+yZ<` zMD*}*X%8+_Q;;Gp9V^O)uon(tC{eeogBN|B&}YFkU<O~@gWQ`53f?{D^-SVTdIrsT zbY7E6nSxaT@85o1nic7Ag-VU(_GvD9{4U|KY>L>xv(Au@4vBh-buH`St?hc)2!&A7 zqSwX54(FL#V7i_Y`t0~r)a(9N+Fs9aXAa8HdpVOAZ08PH%xaP<o6c`;%_jJ_dj;Gx z(}ELx7y!*Oy)1;qgiR@K)x5RHd@N}!sVAEh=4@>sa`}^Own8_50QSP%oJDJvT(A4D zE?)Q(wV}0Xk?KAW*RNR8{bO8S0j`V*!%GfNXjNfv$|gL6*BTP$Q=)EY*Rh8JT3o0^ z)qCEJU$}yTo8D_qaVu|EZy0~bt;ki?O0-86Af!bnoXSd)$mdR4Sq4ns54<NJwJD)W zeg~%NLW`PAiHRlliETz{=SR)(f?r47a9}q~^|>GRhN=`-<>8m+M@?1m@VJ1dI8tvc z3h^4SRLzQ0a6Qm0vWVGPGaAOd_k-7VGKm93ELB@-!mdlH*$)76!r^G}qlV#zV_5=_ z-m?--&=<m?sn8cHB2y_PuY802a34C9<2DZJ@OQSt0j6o@&*l7$kyT9dSn#gQchy@q z@nonv(=5bis>xD@DT^K&MX@?PlH46XNg1x{s8?`KevdcVle@%;Gl<}?{7qv($<~ed zYic0;iS(}iO)0^0kKxnX->%<Fu>Ce30NatP9IhG_8d&2l)zw)0P)#l=TREXLwBpRB z_(_0fnftZveP0$Q-0`Zn9rT|1{=v&{g8s6Fxv4YxZpGjzbA_0=A+frmmbrn4CwomT zwCoJAQhats4K>tg5*`J80X@Cim^%?9AVNL{@mN?CH}>mny}9LZeCd4IPEl^gD0?p^ z#hEes#9U!A_+!46nwHIYnFl}v2pgpD0YX<o57ryxI{f6MVt_fh5J|$Wc9PtAN0w(o z35^C5y|fxcxH_n%?kc6Zm{~Skgp2ZiJP}`DDag&(3^jNIy$uX0kOAQl3vNU6bYQRt zSigs;+yELnsQL<`!BH<zUDq0xE`k&EAy`j7vi}yuA1)o0C%we|+EOR_hBfT39QcXy zRUSTIs3@a`(KP0^lkQzv?q3QYmN7K}*y{Aa8>qX1RNB37H{Huh2JC;wL+&`pAD$L@ z<aw2{N~e^jTJUhi<WLQ~?X0xt2Mle;=~`Y>5h;NhJ^~k2NvM*63!1`EI$ZQMccoOs zd`88N&>(J-YRPD(7RVwz+S!ObQkw!RylAVhv!)eyOY=D$0~dUeB4X#A1wg&qD25=x z^L5gqtM;#$E1U=WG@zlUqx72jsPYqW$@U$jUWG%WSGlt$P*j7d?du8^It5-oO|EeZ zOEOh2wN80=q9pkA=K__c1&y;*4))Nx{uH+4To7`am6CS(bKFuxGJ2EMspmgHlx#oj zY-;`TXLj&vrh+JX>3zMLz=Wy5I(K5Nf6LZx(E-9Zrb|N{GZd~rR_N@$j7@sBZNOh= z0ocy&-uBlG*%MStb>ZQf%&|?r4woW&83GRNK!w1>F{iJt*>za+JKLlFK-7ssK_u9n zX+RQU(Ky4hs|ozZ-%^acDB8ROu}4AOxGfX-g&nhN>BExYff9oO$ey+CuHV#p298{% zS4E6NNy1c%yFnx;-2=-jEegUAuIY5lQHVH5A0G3br`41yJnl4bu^20G4%6U~5LT{B zu2sxr=+v08PI=jCkHv21-e}U*dMoPeaLe}m<5#ZFZef4!cM{!Oe^ju$nSnt5ozjU{ zwrO9;wGSLi6%A2AyFO19%sQ9>nL#Jf{k!w<u=xVy?Kc%wuKJIYzZGU9^*e7c5U#l- zOO`9F$<0P&Y#Y?a!0bg}sRHhB?}}2k8eJ|*8|1+(#Lg5Bs@;0Gnl^j)QenoRj#N!D z4hR<_vS<KY)F=`d%d+C*bi6MsFq@EX*Cvp7_PbbUtXo0@rIPdhHshqrWW7E%(XD?? zK%by)|NM7(K%TH3|6uEE0k=jE=X>uY17*Nw5Esp0T{6Eh>iWzH2ZNV}#VPh$I1M>z zB^2a-C;Yo_|0y_NoTsG7aqf_3rD_#L!YZnw_AE(H_T6i>7y)hFvGDZ_+3I(RAjoW1 zYMCog?}st0<s_<e6SAGloqHe4Ucw~UW7*>L4QvbR^s-BxF)%fNM&t{DsVzSNg|fQ$ zSB#j8o@~`;-G>uaYNhdPb#s#gc4J1%R}_!3<UQrz7Bu&-g_o{>Jh%tv^?UZ^+i*T? zD<o_DUYUo{R(PoyV2)w($y>DiZN1ge@e3KG&!lkrZmNKnvPf7Bl2LosA{r`%;DJ(- z%nodANv!G{6y~OF5`gc({vOOMStM5H*1}7_X=1Be%~1t08$*cHnR}@-GLwf2ydj%S z<}1IY=HJ>zBzh7|ZFY;wD#WeqQqGt_*xWh=&KGu@1M)19F%<;93MBo?I1FbQi8>)Q zP@7*TVo<WRBOBmrN@<<g&C<esyna(%;(nh)jKAgf^~h8vV15-HplBUWg<T-G%4~YG zmD#|eCuYwU@649}{#50u5cS<S-De-TwTIT+Cz*)gTzt`KezRmCiinY&X<W6x<uH@| zyuw>#wf-FXjT>Dezny(EBeKs2{17$!K&N0&x0i|QKcXklEc>ed1H%w0sSGvv2IO3R zqv25CP@2(hDa(F*B4JA!-7R^tN`1+jR*Z?MAB^8r$H{fwVCa!9QlR!-&-S|~ZI3Nh zG=YZ!cbEx04EQjT`n4G2950hSQIjxj8c|j#Mxm=A)<q?HMpZJ}BZk+@d5<TwQ@sqg z=66+TQdR}j$1Lo?P3Owepy0bKxfSUMH)XNmSIkpq5W+p{U;`B4co0^`esALC#+Tbg zWcDC{PFi<e%E^GAr&&XnN^vqu;1v~NXxv|OW3uiRE-P6(j+$DCuC+t^$m!k7@7#(| zVK1DeTk7Z!eU>*Xs>e-ZLIZs7H}#8rTfTBR96-c{qkPfUMkL7WRw3+@GgeQER?<qS zB2rAXPqhz3n90sMY|UDvpS~F?LdORwD9|6`^eU)R`HoCU>j`?OFS2^^&@|W4z$2?T z())m5FH>6Yllf6MZR-Gn$3ODcEV-sEt26+~<%Q@eC`d_Lj?cRu7rfU>9tdHK5$3Sf zH{edz%~v2CzLP}v_hCaOPjb3N-)PTo&p@SL8z5LMYxRnzJW3@!X&k4SoiR_W&q{0H z(zr@E%)pb*-D|O@#iI2((*6hflbI@r%p*T6z`xi^+U$U=44BF?5+xNdxKqJs(pAvu z$-=LwTB#@sRJHUuc;Uz_U~<^{5W*k&`^@yX!bnM0{583qR5!Hmh3$#o)q9C|HJvx^ zO{|q|rJDn^wdH=Uct9~63`b^C`6OE_@PVMv(74d|2#UY4-|nA3lB;ung*zi{J@#fV zicd6oNI&rD@=nQS)KyFnQ%KJxBK%thPP2;gy_%Do&n1R#3ZW%BE*^oYU|aT5E%VA} zr7zj-*m)GvsgfhusTir%ATZdRh*)Oc8}zq2JU^PAZ|k^hNSQM;ZOh}?*K>wmDpg!` z*^ZnZ80UsKkb{H5dzkDx{-<^n=WUNM!M(HvU}P2P(N)7WIqJJF?PtnITb~cDg=b=a zg;^APQofQG-{dxYH#YX+(nRk~_^BSffW5V(vh&KjE>J85EJX1khfS!Y23b0rDJ~H( zG__04Xw7;TS68+}MY)Hj(->?R3l`D4z3IyFcs}?oqz<@mvCm-_|5yDlFA{nRg^mbc zIO(3IfgwAB=37qD^K+INt3{8BA)=4n1rKPGT)xSustbOQ+rZV!lBViydYV~&omZ>l zA6{0ot4&s<+dwp%LVt0DOC}3j!`9HzlE7shc^y!F@_cm#yGq8BdByK5Xt5x_xG7Yq zqQgNbfEO#6{1^R8!6|@63s0OxatFdlOwE?VZZB$Iq%oGm6%sBXx@hkTAp_NGB*HTH z;l3l)>|}JmI6_Zp-1`Fuqu5`Xi8k`TILXbCk`1T)xV%Mz={bM*dz+qB*cJVHl)b-d zOei~`j3$X<rnU8&&Mf(xEXjrh>*L>?!<>Zxb|GyjnZ_V5`Vt`K0G;>2^^qI3aB)nN zU2t1$Z1F->HgW0vyT`mzz<nCsm|5@rb2vd=hLb<z5!o2RHS1r9Z)ri4*Iw#YqdqA7 zS~wtTfPm3)sG*jnk!@_Q(F{cY{H2v(8WLwTj79^-=RPbd-c!vgtfo4{#;+I#&}2rK z!ec*DShukq&_G6hvJ2CE_Bz8fv|sq*ckA1K`g)#G@V5mE3_qYhU@pH{bIvZGy~WbF zN<IAKt=D&T3QJ3G?%Dn!gnw4<$Ymmb0f|ie@t_enbE(x1q94@6eF)f?duU`05Q1tw z+NqpWM!y=~m91&{54CXHR|kf3$3D<yG>UPsPC^t7iY2HeVXdSVw|6x~(ShL)IapzI z_FxjIFd}{=2}DMuP9T;DkZD1H)aSir%?63O8kB-{ViGWn?zs`#Ij0|Dn#KN0cDZGQ zMaf#&w}+`-v|ZrfuDkt}SG};TPeKU(#Ojnw?$Q`Pt#dVQbs>GVgvah*vOhQFVnI!; zYO*~O8Z;jJGfFSak-y^cWu3OzQS1AFpzl4F$x*w2q{qh<t3R_0UOFAt`I(pWKkKx8 zR!wI+<kQM17YEr1n~{yHW0j8L#*y#-%u3XKII;G{faS*v%wG|BlBpp``>s`$VEF|{ zJR?!PC@AzD_J$;8WN1z#lRZ?TPF(>)s?M0j&e}ouOF)d*y2sewT?yQXY`Yi55KTcx zq3>pohG1M^=;e5@D5NGL)&v^8?-6qC7YFc_6bOPfG@wi_y=;d0lYH&hJ&-37NX5X0 z5ME?!>kbs?2+RO4pJ&e{f3%Co0K}FNJvwmT#kF5b7{#^p)3|8qJ}kV}?@%1Ch7W&! zl6ShUef5+4V71~?bKoD^t6cd5<Et-==Ui7LQZ`NbOuBB!J%CWqQOR#VlJL(l`cyHx z0arb{<k`Xp0!hzrt#v<OS&k?jzB<@3j<GFaoEYR%E-C?da{(xufL!?xv`yt>4xRw^ zGA<3GpAu`|7_RuN>XYn!qTWLz{$F7kFj8qS;DBpKf(ZtnDl=yJ4*UaTQG2S1iH}s< zu-aYGE$aZh&N(;)xGT`sS&4MT%_YIC>3?y!E3Ik5`RGFlqJ^TRL6{`x+T<n&S7_)T zqHsVWSUgsd1c?iL4FT2&w1c^Zw5b=xFj>E3yRMxWp}>d>;fN<Af)1_$P^|+&Uzcj% z96XZG}Jj{iPtbt!+ji0^Edkqy?z>WE}suICAj<;h=ZKF8;sJK{IF@E!7C+TGCu z-Lwed3K(!p&=k0#_3K8m!l&!Mr)~$6YA}{Q#13EG{t`8=H`)`QlAwvR5ncEBlUm4) z%ft??mCg73yn^YapOUVL3%>ReclODna&c2qaDVD@#b4LR){@~N<s#4d7fkK;d=L?3 zE@;-0$eX#;=m->)1A)Da(NBfb9a1hxmg6OpBZP^R-1_GdIfVIu3};2jhYNgp?PWDR z+48_z3&8YyHFARiN?*8wZlD110~xl`8ApdihOviV`+-QjW~Tswg<b2>8$uX$p+Tes z@w=utnLicJPgzcvpPxUM!|Pn;?A-u!v*kR!+DOoN^87gOVjtgxU&7OASYGJ!!im^f z?dU1ci49Z;_hCjT{{jJUy0;UC_G%<G@t^DPwW=f;&ZRu?%|o*lj0s78a@M2hZFSBo z&tAs<oVXp8=^rppK1T9^G@$Azyv`3JElN}F5}do6R`^2wq&eup5YOI!XWhxG4(o5f zr99KamINrRo#{gbglSlbt(}WZ)Ni(NDr7S7DBT)_+d6o5gTOB^*Ir8Z&54MQ3<dTg z27#zisI-sAe6(RT5`{t(5$^U1keZJisDXTHK=c5LG^?aShr~*Vf}mt@^h^j6rUocc z(I9H!bgxsm#;(%vz4#yPCkc6%IC%z&5R8EEOwnP*_BQ_e)4<=0f2uFnuh#MP9#@~w z9ob9<E6E_S|3qK133Q|dVI}*+*Vfjf#qwqzt0IMwl}rwBcy!JTUu8UVr)nXdbvhRz z5bM?%tTea{h@kp?H%QC)T)Y$9sTZc_&AirK5{lTcm@u6Wj$-)hoLlcWxIkrb|JkJT zREjzWB4|I^L6~nA1#U>QrJf-Qg{`I6!mQ&fu>uTGO=}n-Jv=f^B1s~-)LLOc10aUL zKvZlUYnsbwYiM*x;y4^l<c@Sl8li4#R$@jndNjUYtAzsv6gkkz954}uDu$fKoQip> zRi>Ia`}Q0f<G1mnj`$2fK7;%!c0AB(U~~HU?&A6P_CF{1ApCE9os8dB#TYf=K}rfx zFSR6!ls2rUWn?TlMe`rNC>fo2fEAvf_WQ$Fz*itNacDBzZ*TX9Co8j#<=a)gZ3}mt z=#LerXv#Wv1#aLMxzjNZCT<kZ_s86@MEo~+2qxNT_%!6KFMJ_I6iRRa@Z_vv5Hccq zcG4ONI2=hrZwHBwMZ#=gqOd*?5(kOC#>)Q|CaRiDNJLPli|7EZQYSOQAOQYN<Zkbd zOoc(RO)Bl%bO81Vc<l*|DBVkzoQMhcv!x3BeEZe&^QV_~vy11-F$LcPz)Xzhmmk`% zzC1q_x}?3DdLH5Qqheiusl>=ny3UpPL+~R%j^ZlblWeQg6$6hiWy7X|Pc^jkM|P)* z_o$@j=z@9m<}-r-ux$twqd&6(H|0Du1QA9>D@%7THT1e&?@UMXnt600{>qm+s;tzH z0P!YK)sWHYu1<1FwKbi-z`>bJ22>`)T4b~k6c9i%(ud8tiSTIx-o$)R8zY(}wk{+q zU>ja@jnJAPxdR2ahM80Xq@^3-NaT1F`*lz~d<MAklcZ-WoGAoAQX*<ZQle_M4sG`J z$@cozv4pB(G@#HC9bQg?_6w`aCzmw|`sxQtWL-!{JWd{uYd?K@d5)iyKgt7kKVh-J zyI=P!F5>x(#PlcCT$*x2$lmM~jS7|Q65Fc=tu$o3Hqh|JRu8#`gQI(Y7S=*PPo4wU zOO1srQZ^(C<#;F9=U|D#O-v60cnG=YSM`T^#30fC6-JI72#U1eIMjgH)4YEY9ojyb zQ5_Er_(S0P#2?UB$lKp<-v97*!uPdoP_lZ?VIm9_#)_tfffyCS^TViqaj#c1pR$Y% z7uu>ho5Z7&INer4VnPv$6sd;`+lO*3`z2K$_O?%Cw{f@2>^TF*v>qO7Rh=*Z4)eFf zAkH1ue3EK6kD=q)?5_!lS&5SgxZtUY9S8+hh#i!|z6OCbO~(+T5UeZKilCKi;jnWg zV_+=!VW+KPHoLG%ApDn}D2p8y;D)L}Ynn1n4c5qEVx+*2wfpq2yca!^H0R)fZ1x_x zgAM&xgQ~KAvt`q5PMbfIgwb>4tOUnf6L}sJ?Pq1(R>zU#&v(T|<)guCUnYLJ4K|&r z=P~5wCHX7ql^xWZrWZ00xAqfzoMfUnnpu5i7k5;*-zr+a8k4Gp5td=aJ$>qw9+8zX z8l(?xAn4$vaU;SzOx>o1-Snn~@-T-mzW)=nx-<GCvV)?q-0c=&W@P9ovX4JAAj=al zjj7=W!c0t+0HO#+NnC>xgVYsjbRH^_?ogr-#3ZCOFcS4lLUt&Oh@cD5P<KYnpm#L+ zL9on-J8(#BL~KfeNM4VO{|F&Pf<?M=<LR-l_S2>h@*bE2M2i+@rO@I}c6t9ld~IPx zhCYoH>!UlACnD!PN}qqZ)vnwsJgN*>Av;PJ_72u?H&8s}8!3@=ZsxNeSubH%rO*`q z9C$onVh!H<CA^b!<i?4DU7yNTYn+RVkBW$iAo*Pr5SC40r`IibsTwPuKmM;Ui40c4 z@NC0qYe(xEoW+r5BuvCMk05-;@i<xsK?61+Nu|@J;8dWZ#NcRAJ1JmvR1m5z7Da;s z_rVc}p0Ey(rx0mqCu--uEyg5KBr~Y)+DpQ$AXQcCy_9TrXHsERNG#w2WSUs}h}p$< zagA8+&dzR}h8r_kRa0Oub;;tNH9P#Kyv6T#i#N?=t|{K?e57ppqN_yQZpKcoA7!2x zANdmTZoGFxVZMd9Zb(ou=kd(e*^Q>YNAnBA*^~|j_1LjTqRE8O9R+^Rpu%+2QH%}S zJMTR#H+VIO9O7Kxv9N%ahQdf5iOH(YC-n^^eMmjZWDG;zDEL?L*w36|v&xLxbX{5k zQ)!>40A>Sac>)Q88-%1lbf7_0n201@n>;WC3}TfFopF?l#+bqe=rAKe<8%Fi*&-*k z9hsgZVK_&Hxqkl41o+zhEJD-3Y+*=pg6L?k0?5a;i9HA8X^AN+__7g?Kitj;+~%V{ z$sO%2NpujUj#yRNIdEGaZ4qB=_MM*ZJ~qM@7wy|Rc?bUd{^z%*s<AmUL&g_^`}^67 zgs9Ae&%cD>EBPk+jSnL0KZiqCFSPo&n>o_p^ZwWb21bifi!p4hDsipIsAGgw)QA&S zyv(fbEtcB@Z5StZb|tKBpa+W>vDr6S^Py$Rl=6+W3%nM~2mene*zc1&+t4Ff+nvf} z7!j2T8U;7uM<awG4A4*<S7Jv<tT3q<WF(A`$WAb%$!%={ZY>!5CwznpHrksnl-NCZ zKedYxB08MZ?YMY_-Hc<oWp(c54iD3@FP!{MVZC2W&h-4~iT35ywwV0I(o#<uE~|d> z)f<pROIn(%U7@sx^{Kkfw`W+->OWQTU*0j79_)rm$}^F-zljwuKN)B$pi^Xe$fdR_ zO7*3hx5QLDk}ev1P)}b-_fDVqRb+~;B9_r3_-i-rEsYdU&1i^*yc~S~mMLyJMalnx zV+p-a^SH63$KJ;IFOE`OV${D;a3?_%u3b*e9zj7DeQq+qKVVHp6g$$^6JmlshS~`y z!_MI^gNmKxG^r9Lb5y+0GugBZzQZY}?|fa_4rG5k$s<^%l%&@&Fe+(Wa63r2s%XJa zRQNn?zpwej)#csm*!~Qwa){^`kR;0soU?zo%j^AT`*HFI2h!q;9`gxT2g_NJO%SY7 zfA^@#R?C&bytLqL$o&FrByQ8y3o>`afVEhcnIxRV@eFYna1nzc6XuXwgk8OmuE}6v z$=94$EraGHWjZw#vdX4=s>CSDI(V-nOR?jCtV0a)tf$<w|7{+lp4T%4>o5QQ%QCLe z>x00q-D9^qriY#Xvw?p_kA%TUX-+8a9pKW{y<WwRPnm}(=w~_XEqL&ek~m}CjovYa zTw(L@xNZFL;%wXL*CM_ulc2Nv;J2MbNR_4RjexVH3?r`<-8ujBg?Eh|H;bl)-Gaj+ zUxzRjm>ITfjAF~{*gV=yw{N1iny+eVvz0d8jt)~@U_@G;fGP-z=?hmbxmou@t&I<P z_ruyEku42Q@0(tQN|!6iQ6gl@gEm|zdsW?=hcIpf(2nH%_@lt+0#EF}vFs#A8>KU5 zExfK0nEL3In*Pm>KOHY#D6U;Z6Y|`V4$dZw4(c-Gi_CAo!vE>?4O&0JHZ~gPogM}U z89I&cq$C3S_<UzX*K3%MpIb3IFFrEQ#7&?u?hTf0JxK2bTTXq7gDA=(HeISZz{e;` z-`v;Jzb=;iN9Y;|0tFM?l|2b;{OYn^Sue`QF1%D;scZXw!MoxS27bK=s~zAYb=`K7 z9{lm4K;e|AT&#+b`oAv&crah#CDqjVs0wjDjy`ZOaP*|<ku&CeqAT}@whiC+{D_iI zC*U!ETp4s(#-Y!ijNK#h;Oj5bW!@u)_qhT6Ew}C>rKWJg^7C;C))~QebZbKv6`sl? zjgRTmf|<x=47w2PH3&uX9Wsdy5Gff7;tT;3VK5zt6sPIR>yjUcr|ENP*$OpzwESx- zCevK+UB(RckQ5D~$2@{x*l-n<b8~XYaF1>%h(GB64z^MFSNQjzr57}U5>$*eVTXU% z&`o-SLM4T|wn#{w$b!_gT(2UZub(|X{qbb%Q`NSbLAV4tQK#^Toj0}A<1oeS$oMgu zCDvx@lL;w#O36Bes^nt1gMqCD@BGToz<sQnh68szFnv>Qj9HgKt1523x&A})gDs4f zB{a#TMh}*(*cCzufumEzJi;b;j6Kjqj(5ZBUST#Mll9hSx6Sme&J4XPcqx(V*)|Vk z$C|gB&Crvk190wjp0vTvjp;#545nA^U->xT!IOfLwEk!ee{obId%2@lW!1bA6)S1g zmvZENOmBFmR1&;C#d7wB#WH9pr8&4#%d-vq!Ye+W5wyeGbGrFwr(EP)srQ;xO0&TO zy%I-T(Ii!Uo*$Z9hb9t+peLC*8`LozGHzGS!YSUiJ*XT}t#`WZL)<2rxo@y~KL;pC zml<nyb|}x`7}mJQwsnsOkb31(A_mUkWCq#P#CMbLl%=APT`>j_Q4V8g6vgmiO4RBG zC;#N8u(RX5fMhipk2hxX$ww2PcOE<`Rf|!<UAh$Lzc-nTDtge1FP+@#w_4l9<YF*i z26GW-UbG_r$KrFoDtp$HBJcg2tIzl&Ut6c9%BqL&I>RKaEV+Z)1CI<t$UvTQQgRid zMOBByYi+Zyh>HsA*S-ClUo#SEm>NB|o{?r%Q7sw49h%5X-I`DK<OFe$(&VAK_-C#c za(Gwdy6y#S$d5e@`r&p)v!CO=*^;Jtu35z(f4Vwvm`DC>{Uf9&+y)|?-W!&P_+uaj ze4Z%UB3LJ)`LrEwC8t)5KYTN!9m_wAAd4b|!U#iQn0%9)X2rK|TPJIa=!^3@z(rV9 z6PbM?o6Br8u-A3<yuvUY9!y%aKibS*x~h{rUbUq8x5NV;5~y#Ef9Jy==6zf(3HI^- zz4FYC9hMgg$g+67uWdN1Eb$PE+rMaHkv~ZHt(5&CHEo|K@sx&)KIPYVO5Q-&^^t#G zIJ|0$tCwNobTA*H9yB_CdZ8sR6}$fBoo}HOSqZ->>$FrWv0$_-lzaw#q1X^w`9Kac zv^N_Zyd5WRm=J{U9MenXymNn}_3pyY=LxxI)K7%)oqIo1W~A>KA+Z@9*7n>X5US#4 zBaieEuqda?@Y}~TqMUKv+K#;gqTg!-c!$uYOcr#cRD@)ZU&NUT14;(c>@GNNbB$Cu zWv@w*@u7Y~SoZpb^Sc()#xx#{((Al8`F27(xtojNd_`JOVSFFhVE?lyvhazCLcZL? z9(la%J^%@c$hloRxCVA|5YCosxw>$ymfJRcmNEEXFQ@I2Hu!_|vyKK67%l2iL(|=+ zt(Y`N3*t1=FTWrI56+IT0VBSnXgGzp#B6W!nS-dEm%`h~dhi>;$4te(#A?lTU16tp z`03tzKqckRpUBr-Hsm?fEwMS3SxJtJvrd;a#;@);9|fLRw9B+#oqV<WRhUu|#1T;9 zPUvn42crn7GgpN@Z*E#l5zO9l4n=Z-*m?Uv>XNW@g|I|@4Lb_D6GJ+C=kU?~Oi!}9 zq}W)8t|YwzK97tq(QT=yLvGmHLDua(U0;I}EpL9WBvE+7W2txA4j)oixrg~B20PLJ z)rd~7)@pkImxjm5^-qGoKbO9;y4wCV-RAzoN#{tHa4k5h!~4nh_l!@mUtahoIBh0R zwBujZ?+2f3{N`H$yT5sRx;dfNzBSw&ZY;70_FRx+CeSX}Zc#e$KlvWYom3<dc{(Vl z%Du9q7P-Q>#kp0~CcLr`{cUV`;~J?XLLt!H;S*8zRhoSLL6ueXb>nC2BjX>0%>1$9 z34%fK>EtWI)n>kXmiWb!g<p94cg#N8m&=Vz{;NW<c~^!_0c_y4`-61+H1^1fD8!Sm ztq)F01BU$KdVrmv{M5$18W2Aq>>~+BkDxee36Z2ZlzO2MJvcNGfl0)GSl@)9FjNH+ zG03;yvmxWyPVZOV)nDfa{3O_7s7>xZ)<}wmdT(VI8nLND%-st*{%6gWkz_NXhY`VK zvJf(LY^HXcUQLa!>Trh4!Q#cXc+g<R)A_*d-;`BV-rVVmfpDeor_KvZ=IuLt?Wqxv z?~~gLCXTm{n4AO?^B)e$ouyfIbqTMd2Bf*3fd@WM+dPqzXU1%j7-7wgng=;%tY0?! zhS`{jfTE>@l^ef#6Gz`%1N5w|)l<UF+Rw?c7uZFCCmA9;@174@Sp*N}{jk)g%D&Br zAHZ4RhXWd0^&H9$H6z;(4Bh_>?l5MA>Db!yLud?iy>lGrE1I^mf5f0tZTXFjDf;Sq z!}P_@L4!0lNvOU@EWA{ah)O{!L<Wpi3Y^JZ2dHQx!E~gU*tlB$(C*2~+tachTT+eX zMQ&EGk3+@0Ijl|w%~RZ(yo6k0{}tZA7F%{Sj#Ep$v3FPYw!G)7R#}bIqYoz1WU}YS z9=?DUA7`Za;>C-`pdaG<Kv8LN{<d_mgu`Xgd-@Hn9G<ZKiX|y2`)Jn+->=<zw5zEm zl+>h~>=Vyq)^;`|^k>(&_e{}8ya~pX01p49+nhF1_VD!wO@@NuW{Y)AhxZT1^0)ic zcx`7?bEx%=Bi}u6v}o5Gg6nlixIf<f?A9+WZiRpD%a^gTx7NpZwfXzNQaxw&FqRvR zkWOl5*O5GA!tY1t;jPvh+hrTEuK0z7%I6aada5fO{ZJ@~AWO2MJNJd@inH!rlwQG0 zdn}_cds;N&nmQ2=lHCl>0q!le*3(5`D#IWhp&dIZIL8hU!*!y1>u?2b1xSnjde*_= zh-4x5euFMVHCgi;9ao(O&!xxoJ%c`&ee+GY$=|1(`ARmwfaY+=UcjRN^7BtiJ1q+z zJiFt%arf4)Q`FwcGWW*~dFJ|UkhXsZVwOKWzM}){bgW(3x<P7nxMkeBD}A+cd@ld~ z>V1hx-R;Dt1cbY*E7MuGm6q0wY~MIX%f8=_wSYxqv9Gm?=G;!fW54*Wwya`~3bk}X zKK`@7HXVuc8`fX5JjTA1@Q{pY7i+|(mxgcJ27c7YeX4E)^)9+8DJ$YtsGnXK8&2T> z-uZNpk(ujFU;XL(Y)0OR#+n&(aZJG-2po!&K6!My(Kn6X7|gpm<9Ar^t~PDHbh%6u zvff96;iQ(OSf{mAsUjm8-yWG%-rnStN_AjeQqw-8w_xj#aPUK`{1rw5v2!qy=0Kl9 zZ=WqI8OWL4j@4NJp=kZX?`xK4uB496FI`@4r6q_xMKAKM1u^Q2I$zOiZdG1(bhfZH z=F$I|JOH&`lL>uzhw`I9u*4}tb@L@He!gtF-OpzS$uTtUaVV=ID#_BYa2^_9d1>XE z6+4}KUOC)$`nu|(O1^BBeMF}=!1=T(?<AuAd~xw4==t%URlv~(blQt=*pw1>P9~WX zcaur#_o|R%CrG>PYP9=T$}k}9IT9gkl$tZ^D*rQV-SX10jdH9MA&Bm0SLUD5e-x-2 zaH3osZLnE-fU6Z0<Z)1uRQhu7<}}^tdWjp;muc=7bPt)2AE%b<nKofYXHQ&%!_SIL z+Pqddp5Oc_d><^vdaO>Q?6s4#byL>q^t5^|uv?zX)Bnf*iEWXvLRL{gGHawrjd zlbU*xA^Dr38=PYP)ma)hC9=-eu7e*kqISb%j^zM~k>IK!sD-6=z-N@c(tr3CFw~Ue z^I@RIfJ((Hq-;scSlXaDYE|@>T5QoxLT!Nc`M(SMF*^InDk8RF@v4{{KmYvMMWdx% z+AoKUcXFH22<HRnTbMVUcKiM%*VQul!j)(H&z1IL<AjSZ#-GPpgN%KD)~#RtuAcj& z^!$es{wIq!@l62>e}fOUG{{k%Y?+_qwD08h4+fa}*uRf#FIKi?bY#nivKN~<Zey_% z&;LZe4@{g7(CsHAVYXo|h@E6%G-t|UGnA59l+NwGx#gCuME@?KFGC|GYrQzE2reQj z;oIxwKg;lt%ayJ;V7_RKm$+&Kr!JFty^n?lOp?eU9eNcl#G39=T0gsB<jA#NPg%by zTaWuCC4b*jS~kSL8THg&+7pp7p7upmyy;Fld4*Q?RClTt4VYIsQmOz(=v}JD#9R8$ zrxGC{2?PS5)u>RAcWJ#;isa4|4rk-fe-b~n34Gy_jpI)lkuN+_W!G)onz1?2szqi( zDc$pbHcI8qo2gYI`6R!;{jWm=PV%nr<!PEWUIz&mKVP>kZ|_|Rwa;659syMyou(aw z(9gjgEooa1oWt<6?Cwsa{O^XReyca0U*f|o`7->@wKJ{G#e+8vg0D)Xo%Ub6rtXC! zO3kFz+74HH;1d=@TNk+uVvAQ*R~;{01Tkz|3tlH@3{~d=&o4Vzt{#tJ--eS;|3Xt{ zS+qag_iHn?wTGzYM4le*jkD}E-z|N{eEEz~Ez)Mz`(-xA5VwTx<oHz1edaahhnDjC zt)`6$)C@6&lwH8YhGOcjZJ)hC|Mt;NEpCm;`y`XJDw?fm8E)G-*{KAnNN`n||M;k& zD$+iay*57=_M&oAR%RgcPM>J{HT6(T1Q`>WHPHkBG-uKt-0KaG?95H^ObN}GP^OYb zMmnImvbxF;s$Z&=>D7Q5vg0~)Hk|Z-4tJ3*y6azmb2Ry#wJsjC`d)24XSNEOI-4?X z=G-KNohYd~y`6eeMc>dUe|UmlI=&|^v(6Q)&zBLf?Hb3W*1l<GT-~xKyLf(Cvhe#j ztwg5DYu@>(l$8I*=Zxnfi9RsLg+C3uX0E2qTN>fd5Phf+MUG-eabMTAQz!g7x#cDP zoNq<&po#6H8&d+wRF$;M80(h7EqYCk%50YET(x#qsTVODecPrP^geZaAF*2012cv( zBzpdntim75jfAb`1QR_q4vPR6H|y-<(!%A+hU_o{35_qvA<XzoW*|aUNeFpEEM#{k zZC*)&J?kETx<KLjNNXg9P#qePPeLj=62>vB{E%0ql`xErS`kD-_V$y)EjA7M$iA(< z@yrd3`!a!Nyz*b|<)~e3QtAUK(e~Z7#!I0^k29uy%l17f>ZXSwaj+8|QfsBrU?+#m z=Iy;dMR?)%%lP%HaUmZyp_4uLHLmo$(>dBp?9<khfOdR?)y3+sscACbMbC{@Aq&5+ zq=UN~q;6*)p1vB3EaI;7Q$P`^*ngd8c&h)^@uIu^1k--l{)4AwHs-tH<}(9(4GVEO z(VYbgnf#ml5gS`>oSxNQ3||D4k`Hu0S65g?OO0iJ3-C~GOlE#tI$N^aL_HIw!+K0# zVRei(eVV72$|#WL8g0WxzXFj;i?0%5=2P9eu3TI{q)rz$zBGc1_w=>a$RRMAiP=y{ z^TH?)Q4)nJG!SqZ62<1AVd-c}gdT{shs#ZhPZaFMTL>@ISB+t&rpXrOQu&|d%61lD z!L@8EJq_x`*Lh!#ZjU{aN}mXk6k3z>QSJFwUnPCj*ZAqzaQl{D`_KA{u~V5b?6Ym= zcg#V@V;2|S4sru77q23B_AHOM@L;O3hp#GE_M#`A`VT(}y3Q5l3CtYSk*2?e^A`N3 zYnqyVEz`>FKD`{hE`-<r^t#0?hK>1cyjr9+^R1&4%@^|lD_N85<OR>Dya)WdymjU^ zyeNgMB-qb3`ku|t53SU#A3w<;bKJkR=Wpej8$0N6)3Iv?0pO;T;mO~;H78mY#djEQ z@7<IW;UxY*tB&zk;i9Ip&c>1quwlSC+cKW@UtOkKYfuD1)Ll1kz)aG|S!3_BeKa=7 zwzENQbXaR8?p;fHAlw(dtBm3BE{bLM??vC@A%W9znRX)na;dyCYM1xn{r{utEd!$J zzo=2^A(Squp`=^s?h+7`kZus9Lz<yMx*KVbZfOvt86LVEP&x*X&SCEP-+SN3=lwKa z&+PL%d+*;`Yp>nvjfh;k;tKM=9$H-}cziom#fzW*apGV$zt#J^#`*T3F6dbEaj8)1 zti?lYO|*6%P4nh+(Dpy%J>Q@<SSF8=UEVR~m{^*<SDv=(xB1hh87rA2xT@s>mHXLH z4_*9M-rkYj-A+C}2%o9;hqQJ7?SjXYRA!rU3A`AF^Dmy_A5igQTn&0WBqbC9#B^jy zo5eQIxx*>L+yD_%L{4K~K`~jj-Dt~WeCs2&TK9V{?y{_nCt!`k{oA{dw>mQV=t*W7 zrEwHv4`_A!FUG$%&6oRUbv*S1*6g|@@7K$gXnoNt1A;a?5bqu#O_&-S_BEA8LyR~! z_=CB;Dup>`$dhHoXlva1)Do*@b9T86*%IG0S9!YUO8crF!b=%T!neW=n*Z$@#domd zoRB|EMQ^X#=zRKdCFsKX#L-bBI?lozyiU3fYl7gb`KJlU{&(vL#QS-d9q3G2ONKvT z>d$VD-E%EM16|$jwl+i(zBfme@=!?X*e4^!fY@Qg8Gk@|Y3X)V?R!6H)3ct7A3${Z zEwFdiM7WtSb_(}CdHB#yUvH{KE=T(~k$S_`3ZvG(;u*F$5nHCIq`J!Ehl@%B7dfRi zsXsaD>1}`_LnHspy20z!td1L)QJJyfAFek;t96Ksfg|VWnFMZR*QriVtmpvRJ!%M0 zKU%8P7Yru5Ck*CLG-=-KVU=PGVX|w8Fep}p#T27AhH)7}OI9?psu|EA5WMoArQi7* z6Yt``9Lg2<cvQ$ih#kv~Wd5%(t<l^j^Sqbz_Ym$}=Hgl1`JFhx+XL6uNLWYiBFEsZ zIR${^#)h-b*Ll@&m;~o;PYE;yb?n-*o<f!e`8`|*2D$A|J9)m+&9Jm@S5F^1b2FgL z*xqgwXG>A3u1Q0SG@Ix#Zq)?K$n4Okcx(Kz<HtP+HV+iFwGAZ+z~q-Db9-(XYUEp~ zcM-d&+UC2l+iUGLe)x85Z)TU~W}zUyW&BT{2Qd*=sbw=JylcN4`fz1x+m&p1P5oF_ zkSl(jvn&y=(C}2m3OXudFc~~6Qo?T6pIoT+&b+ZiCzXQZ1v}#p3RDRC5FD3xNVQKm zF5LAwCmO#jK{{Y`haQ1WWkscus2Kd;uGq()AJ@20%4Ku?mWu8%N2=?p+IEQypS)8Z z23x)Rb*cII8F@GxxTRz^#yc>i`2EFE&+Oil0-10W&2FKLBTy_rh;Gm)duzDxC2CcA zCM=J>FMp;|YW3$0N_1p}*G6KK*q<=p;rj%{14o`fQt@S#p6OM_i^YJ_^k?ooe&6mT z#GLQ4j=T}t>I(<UVtS?*5{IVO3GQA)=QO)ta?5wmwDKB1qeWw=u$o5=9?%;frFQJ4 zv#K$_U|q_f;4O&w1}LclDPv!|o5Y6W{kO^wqcP@uDNDx>UcZ|+_1<W4Hu4#3d6N>U zk~Z%t*0xsLy+1DXr|dDNyxuQH)5_3ppLf@KtbX@4m<zRG3QWu3vx`oSwhR^>5ruF0 z<4&b2V_<`LCm5L>EnTi6^Xso4*F{dpgXni{ExRWC1$*GjFw&{$?a(bP%{9SJ#N+_9 zfud${(voA!=SQLQ9r?T*teuL%F@-JWJ7E(0Gs`~k)zh&HaHIu^we}sULIUK2AwTHz zPSZGeEXoNR2T-7=bSUM?hWzJc?KH^zRI?~}W9G8*Zd~cg$#<QqcdP2~*#CBHT;eS) z@Ysa&o+nqG5d!4}4;ewf*n&<@v}~X6_yc~=E6a<>sm)$QC!#;j$tT>E4pG6Gu&-1~ z$M-y=Ho;XdJwqvjj*BV-qMw;(PN5a-GqROOY-ALMGbak?Ussv>Lok99#g2>3sM^5} zU_nz(KKJ|U4~6@a&Mr}V5{_cFy89Ng7x^bcXZ>m9LDzQ~58;2Ro$|n<khD++7yVGs zo&Y-;X{>c3IDJpABl8PtG;uvAw82jDv${vDAi+fI&Z@WHi9A#YvX}l!<Y$dh(WwmC zmBuDYq;=wdL(rri%m-Azkf*4jODuzu(HNftMnmGT)J0Pu>J`v_UeP~cv%U8@&i6wn z+#G7f#TmSBX*qF=)DsFa*WIuCGrDe8de3_4ZdarZ%yX9WJL2EBCm4t}pFeu{-g5MK z?Z%7UUtSW?Bx5j#{UfU-8?ea3a~b)JTjF#jj=c9*G7qwG)N{(*+$-B$TJ}5Y`4<4v z`9={9$~B0bFm^MMc&BR~%1WmHJyFypyv(oj<UzBO?&fGY8h_{5KrfP{^z$Xhor6j9 zS(h_~)Nh4>W7i``1rHn3G1OI3+>k-&9!YVL%f*)>6Kgz_A(iteSI^j21}u@w5+^@9 z4_lg2=&HrMH&mZN`*AKg5G(VW15<fMS4GGFG(9=V5A#Un{SO@KFGxAc1Tw_A!p4R4 z4S~goR~vy%SE35pAM~uBPlPDELC2Y{JQ<rI9X7e-IJt{InV*^2I#Z+M?=zyv;9p-` z>%3f;XEFAhybidY4?6bS(*@+t9Cm5$UGD1WL~4<OrpQj`+ac#ed}>w%DE8@+O+Q%) z{jBFm_r9ZTIrQp<QUdMm8Bh0)Uys9)0uST@icMl611HYJr9a92Rm2R|3O2TdW=YKD zCJ8h)g0)y3Vi%izUtSAFTGCb8I*oT9MHS66!U`Qa2NvxzpBj3z7#N}AnP^!UmN3kb zUdAL@RPRMgqgtk<1r+&&Q4DSoSe)!EI<8+(c^=m4i_Xybuk7{dShy)q+rloP4a-?n zJHu-tQhsvk!1eOdnnUw3qVZI|EC<g|zVJU+tjGcaKs-Q35erv$)KO`2cCkse`caE# z9-Gvs%_3S^3{LwZM~_2~J9FTB*Fs$9bJ^LuIW=*0wNTqFsO}kq#c)N*mU@1>z}4oV zmQvNbsVRPng|rCTpXasiQ44w!u^O~7tl9JUTJxso#3<-=d`T?)#|;1Zt)c1Z@Ko1P z4FG;^3b>HcPqukqIrUmLclpm>2QKO$ukhattx3GVBEpa9au4~OJ19vH8F@MHnVw&% z>zALuN=j%=Qv5EhL9KsZlz08qpJg_AKve+@s?<_dB!7+(&Z<2eLcA=?mI@|QKOd>D zar$m&?F-LarMn5wrKK~yn@MANoYwD*4X@76bA>Xb@1^hiF7Cr?g-(o+4xQdTt<}aY zSFtDWd#)0A;e1k`MgQBj73BBX6x;}h5`d4HrS;(gf*O`$3a|B68B!prc{Y7!VtDa@ z)oQTTg-jR@U{5ClzA_jQPWp(=^Uvk;kMOQtniIsMRM6R_vx)EbSH+i}i~S>o%D8wo z{j$H%70g;sy5z+CG6IkEOz%U3Trb0UY|MR=Pw9WnIU^S)ky`~c_jGlzwdJl2{DA3Q zWSgFnl({o*|JFZGk-tt%klulxjz%?GC(%?nt+d|2R@T~o@5q@xB<~^~rs8XTQT<rz zKWPEUPP`Sks^2@Zh-gl^v{ZE^U{C>GOktf`yNRsYz{di(;t}QSOk1kGeGz%Iyl@{B z=ry%EtoKkje`ta|H@Rx--Rl~7H!uK&(Rv-Ri(aZB&a7d~!1wvc{5-C_4Y{`LjX1pB zsi|5F7`|)jCD+r`WQ6<|N7*6PSNsl=s|PojLHSBP;?;U#lwuk2d9`S#lUHyq>5>8~ zSt_2yXy8n<p_0-Q;2c{z^5O&2ocjc`O?0=0$X{0li1y{^l<mFgzyRYyzyLL_@4H(b z)OI+2cV`De9`x7}bcz)pxY<_ED>k}EP>)#ihTTj(F2j(&7x@i3?!JoVyg4NAI#}m1 zzV?CVejgqCEl_vw?0jG5Oh+S1Wc=G7oBqd6q-671iG#_X1HIR^KFQt*28F4E7)e00 zqtE2dgFyyD5gZu`22oj-^jXmNjfOlO%4N(}%4qm!rtmlXb<PPQi=yVEI1-B$@o>}W z?c{q2AG~+#DdpD{()G}Pk+yHna@d?hO=)_`T(#IeGjMTX`1pAIy0_<{S&#Ont5?3v zw!HMoUn#)Lg4w|k>F;KQJ0=>o@8|886TMdKS(sW?EDb19F)c^k2q9spvV_`6F(lgb z=-<C9$|hn*hyCzzU$LsDj#vs<7jr^X7Ig2nAy<zl+iae}>?(8A-*)sH*a}>ERkl>u zIf<Y6WCY9#8Qqrm<W1xFq*L^l<bS&#qC@PqJ+2ny<cUl8e4mF|!LzLvh*=8GoslPU zrU)D_4Uy_me!tnaz)2y;fM0jhNdsok9B^mjEd-y&e@#FN`Kp)FArcULf#|vAhb@zq zY!h89%t48RA%teq*dP}Eh!|!^dL~}fS@93(f;e0>xiCa}9+gRp|9nP#U7*kL&!*eQ zg5}Obt`Td0R>dmRTxCHs)XNlb<1yTSOYi#lru))1XuUt<p~mTQtmy=Sy-dY(BNL}9 zv6_tYw@jR8zNoKHBD}|o(qyXFPyCj!WSbi-a5NY(mbf%(rf%`h(NSp(VjUYB?r6Xr z6U@Ly@(&>nX{DSj3Pc8gxaC6h>-p}PxD&(Pb-8Poa!Q=vYTge|^<G_3X?7o9mam^d zVTMk%<<PBTZsxI}m94XJy*j^xq1~XzJ2g{0;w4M3>}eG7UIa@Jye#Olu1)GDX*5l* z+Vpyk`s-H=dAQR@XV|A%dNQIxkDSrpml=V-D}}lPJVxnr03r>K_5ipP`rg%?JpM9$ z9G|*5Er<`yx}_zr*lZXH*5?HhIcAQg6_gK`Y?l><o)@fs&gz!UnoXU#cDG*c-EEKX z36f0bS#JL=)GB#)l67L|rvC;$Xb)`=8D2`Sh<{UUa(uh2<9xTup?PoVFm)^WW9vc; zX^=&25OC#fpSdX#^_K+kspco6pd9Q*Cqs$CXwn>-x95c(#3a8Ip>X^h!-p%F9>&aM z8P?aR6PCytR-zHJheN_D|0Wm%wP|We%Ye5)+8^gLE;Gg#@FWzQ;f|x=(}iKJ#2wc< zX46m6v{|3%qRV$<&#%vFy^p8I=oPUv9u}O}ZW10(N7sYof^Pm9nk_gEr$=khWb3p8 zkUfLFkZcXyXT9*!wuhVo=zBK$FcD1@)jILZ(Y8l;Z|@eVso$1EZ`N%p?%Zj+;!AQ| zM$g#AR_DhWalh5O&yUEy<+jHZm{=gs5LSyDMu~uo|8pYDFgPayC2hL~|Iy+&&nRdO znSDMfaDr%P44j;KWePo3`3tx2G$>p2%gTNq8dCff4(X@R$qTJSwOvtMvd{f0gB@wz zq={orrM8s(F_9A|uP7=WL|>GFjtU{feeo2Plh&N5)msBwC!{A~{!;%)n%CAV`@KPZ ziyKK9-NU%lr^DV`?6?=>ngQAs!n6Ll;csG<Ru@h21@7X_BhUx>GkWY0Y?^Cbh^uJ` z8pZ?$FL!|H!h+L{67p;$BZxVL^r{sglU|<_i~_YPDgYB`_sQ@!BvEt1wf7cm+8${; zSr+ooZQZW7_Jxp$+bsOyGg9_EaSF)oM5>0;Vx3Ww_qhWr0x$@EsP`GK^nOSQ+_Z<? zy@J!W{YRHI$vDah;-n28lst6>+7#&)VjoC$B?^m)ata{28@5LYBO!ScX27fagA>H2 z`UX856czQ1i-ZJ3#CxqmHqi~JOB2Y<nO2+FcBrG>(dVnFM{9IW9$KAy59fQkueMk+ zwwV`WW}`IIV4v(y;yVvd#m1AWNCeQ%xoV7CPs4e{5jrQA{c+8M;jTL~q#1cW=d1CE zp*qvE*Xt2&iNek@v*IM_Ne$Q?d@!QoS3^|lg8HI;H&2RRDUN$s&K36wVyYLK!a5JH z4;>x0JDjU*okdPpdPODf32TfXTe;=r$>$a+!U9GMwJSZ3@5JaH=jBXq<nj~&&}GWC z!|?B?VNc7)e~(UK_)|$%mO&mJhpF%FE~oqZNLcO(-g(o&1Dsb(f=UCrV;gY`fa5lq zc{B$$&pHikv)ps}iIU|M4rC=(Y|D*Zv)di1qoUrJ>UIX!94>aADlXPtBNQoXGMrjG zIAW6KER$4T=PoTR>Fa|zIjQx<ebG^4Iq4za5(ErH;N6pLfiNN1ZBB2~Bi!}_e_0ub zUNTGF^@4-rT<m1I`&5us!-}u2uRkMzkkyepSDKL9busA1lXsIZ^L%0YCBDM`d>sKp zWUjN1m$>(o6|4bk*{$NjgTuP{c`@nTt1<atE_>gpoLB2v;@gKi<x*X@JH037b%yOk zdRNi7R-hE^Uf=BntViRvz@vV0WSnL1{jQhu!(}N;kVI!E_&=XclNyML0QWubsK|UR zMQ1j<r7gdi<>t%GRBKK=2p)<oy(E{V!7G(&aCPeU7%jay18tHb5JVc}$V>JXFACR; zn|s5gb%^83H8A%8pcbaRr`5I_%}-I?rHT&A408bGUdJ6nqJH8R+6OrvlfaGnbAg=A zxToBS{a0Hv#pUZ4t^08&bf)*}nW2Dy@wI#ZglwCvlzESs)K%;LsW-lDZQbnb{`)cg zQum9(XH>ipPSP>fAu7I=y~R2{g@Lu3=pZX$cf`KXBaHx$TBHC6e!4Wl3$^moLY<SF zX|<lclNyujvB~Sli<=qp;WPR&+ql7jK}FgBD6@vqAh#Fj6z=grNs@*OU{1)cyiL`R zTe1I|d|{^jD}XXgf!$h~LAnq%xsMcw30*kNyumECA3htxNP?60g_x#L3xyDM)J7&) zMXnK;o-kvY*p!KC^uO19_`HgQ)j5i9?(a8qNv0%5n(s0$qHPr0<iMs`Xm4kD+E3RX zw)TESB;ztD|6|qYJ^s;l?N55~q9ieuYrbgqjw}VS!X_F#Z@K+c>gea4n25x?bRIgI zE~ncADQbts)KbO+T~>+fG1a{JTQ3bw-|J)Z!+djJ|J`)t3f-r>1J89`A!jK>S#O4? zP<p)0Gx3+vg~=7BGf)ZJb)-Ac9^N0<^a5a<sfpjCX?@tFr0efk!h4b!K5JR@f|0Ug zUiCahqJJy+q-D&cBz+Sgy~0IBMOTa_wj`RdAMr?L%f&0He~qJVL4YeO3nJ8h60-4Y zQyvvH6nsQNp`H!e()y=3QB*;>kQI&#;=PaUAKEe5DGqB-fc$EhGUI;{Y1?LuOzOSY zRMIo5)mD8GH6<U#Dkk(3J*|hgE;v$#u@)FZ^Be|DyUuI!oUE4#S_yXhgOeB>B+hGr zU2n|K#)F0NfwS|N`@By3g_sa>vE~|K_|$Kc1wboWOidSRE$DYWuk(MyYX;!42i%_V z3}f=Juv1@3n%EWxMLqSKik}j$J2g_d=Qa8r=z6po%RF>>YlyPZB=TCxO--lXL(@9( z-wrLO@~<_&^cjI5D3zAYvL16;*BVd#gtpcwcUGYyIG5wu)O+dNpSRVRmn1^5nErlc zpR*HXz<B0Nc!Es0Cd#=(-&X9C)pN<pl0n+`oT$9q?6SeEQRkMqY)xj;MA|Ijb7@gp zU*Z#u2*6jARFp(OUm>Y9@(<}hTvCrZvtlPEJ`1yr9bk7_xPHF+Nyq1XgCXLbPEOX$ ze3QTh+`3z+Uf>oTV!XvxV%8JzhVbE!(SN_veQL8bZ@0Cto|_S0CZegKNG0#RQ-k!l zze9dI+j9Q-=@DNm#`}1!`%y|$GpOEaeS5#MTE}tx_aMXyn=~z2kpoaVq;s<!YO-=< zocz3@8h{!%_}lM*X?0(O4`H=A-J}6cV8KFuy(c0_Kj=3yK1L>2Ds*3O@5S8m!&YRZ z4qfKQHT^cHn%P+qxOrH3B5Qz<$j^`BrM+<Gl;SC@CchYr=zkOW&TnR3a%C`j)IEhd zDrx<U+{TCG=1P^ZUje8oin37w>C|9(Fo=`mjRjCqj~TDB?kVb@Vune_Yq9RhE2TyS zGoYYAUO&OKWUTK4OSVzId{1}WzMqeLIGDE1(55ki>UqHG+uwP6jeiPvN2kS%J8TKM zL<(Q6A_LADg}9CV;;`J;n3j)Uq;!iNUo6kQmx|rVJfEI^x!YfI_l`lM=eX{5Ligp! zIC6P!h8)k<c?I#O?l|9HFYlw`MNET*d@p-q*fI;++4n?0mV+yp<fY`X@(<<d;TghR zFs;pyS7{Dj=WyBZTC4x0-p6j_u5SKWOyjAQmnI`r?)hBZbX>Rhhm))I9N1<0Z5Gvm z3z<A+Rjg&R6MY}}ckT&oL0)&XSYVLvMYx0J?ZVQx?Cx2wmMHZ91kgMQo<exfNj4~A zQ6Qc8b6k+L*n|I9bKESjn=`H-*X&9KE|8pv9;LyVc~5~oAqgQw6<J~-ptH<DmkaJI zEYjABB6<@Q0t{gGONRC@Y4I`9F;9qC^l!Ll;cX9|bbFob7_#V@GP^(G@zd@=$5^z` zJIgJP{xk)h4X-_rnhJDp=9hACkH60&BN-JZ$U^l%xa`2;gO#Uu)=OZhoYHJAzUM{C ztTQrc`LvA&F;>7ep5fGkw7qt^<H-sgI)u$w!v(;Ss=16Pvg|Q@G}o>S%R5bqP<~1N z?(@qkO~j6Vx8wcJVztyskOHP_FM5Qk!L*%-w<a8R^L3x5F2{LIHkDuUpEz#!XFHPr z(~L6Tkq#Yx9XO`xl@hyMi?a=w+Kb7kZ>!9u|9i_5#|s+_iACR#3>j3(9`R_YsaAQF zEMOe25*kO0D-Vtxlw`X>-_Xg_WROfV;5ADjY9(aQB4C~i7bU3(L&d=1Oy#s<kg+(& zir$&k1__^+wb_W0w2C-~OmK2=@a@yzl602q7F^#>A;SxN?&**^K#6R;7<72~wp2ta z=FggApqG0r6Yp+uvAratp&FK#v(M!5B=Ts62RW+Wb1_F1Xy<ipIDR(G|K3g4kvlbH zN|Z~>c2<Wj-{>p^XrhCT*w(8@QEUvslHD<)FCsHf0LdFwXB%R{|D4Rz0e1F=qYwH4 zeP@>M1#z0w(U_=&``r=p)5og-HO&Vc00sRk0ua$e9sJ)Y2VlgN^(<u{eTKGg=u@8= z%RGO2tO~mF2)eAYJjkIQ8w)?}XiHL-fN+_xP=Bw4fQAS?f)^C~`UO9BQ~<V&yNsfx zIIQO}f+DWIogiI2?<(@y&=`u_uN078S^2ZTAB$ao-XVX()-PeJCqBrnQOyHIMt&5C zk96sl$JDAJr#>JtFT0KHVAd3Blf3y%HHE-!@SWcmdZ@W=Xv=7+($=N<rce3VtcwqL ztJ@qstVQsjw|8mf{%C8m{;5e5A=_hnPpn^d-hVU{dN^>|Kup&SkEQ+k;1UuS{>>CM zRK=n>e-G{#$f?M&$zd`E#r~VRC9x>SQPIh+`EbarIGOOG{MuzV1~uL}mN%r}=$5Hm z`2g$vLc=(v-9Q8kH%uGU25!TWGVez=0x2N<m7MWR{ca$2)jU-?bP|PfR)Uz|CqTg? z%Qe$BlN{QR{9e?q^?Xsldn&$Q?}ge<$kW;G(^q=^VYk=>1<Eq7%gO~!?izV+PI?iA z$n!ebEuCpgM!WyAbwjg}D+-#T8LvLbB_v|mBXEjuiUZeP7SM?UVNx6yqkFiv_P4rK zG3`V=78I<Vr#E`FG)(+ZS1!SRI@{r?*XFjp2CFmn*;v$4+{(R=3b0pGQ<8xF^hHjc ztUWxB96Q){E5SN-mGytILtU;|^{eUR_Ec^>BQ1`l!H=5sD(l}gJuF3UNzX(WtSkw| zT%FH+Z_PaacBbS_OTT^TQ&cK?D>YyM1EWAam&Khf)ap1g?r9?mg#IN_p>_$F$x|Ea zyDX+9RAqt=oE>Q}R|EUGHea#XWng9%xzTrCFdp)BLq~be>iTBy%po5!E9L!z!!%%3 z6Y+C&vD-ZGp62-8$&-0#Q_BwJ-J<Bka^BO<PPft>>-9fMdXgvMwPH9>9i>_ECvqNm zowJ+HrrpP@?&qyXRFCeQrkEpw<Ps_)h%^8DR;SxWanHktt^0em{P8t5$)R`F2E}R1 z4c;HSPs(j`ggnPH*nRoAu=saml5~pE+WoGx@E_oX<Ot6W=7ZF~p&)jRUt+n!p6H&C zT&~RzC4Q=5X*h51$U)y=O&MF0$_OHmB|(=(#iC%2iVWpTo>20EBoM7A*%Fp!#4x=r zdFC2VVCLvZ=4i#lnGM(qS#n3oOtiLT)P8&TXS@d#8>*>>+U0JvIa*lvkS%9=`zpuT zZ=e!+D<!m!=sC)9&VjiLH39ol=3aBRTe<xx-Q=h<3K*IN<~Cx{c!JnG)<i;acFT+H zX@k{!UrId2?=323h$AmnAKz?fi;DfQlwM)ra$B0N=lF54w0c)O)x^YNR{jDj+Ubz7 zx8pp?)U|`t)Jf(Uh>;gRUwwXS#03r$YkRypBStD8!&MbB{|&_Ff{73mdg=dliNIU` zdQ$qe`K!*WyzhbxM}wL2L#R!fxD<&XCI~Odpb|F0Qm!TK^Kmy2Gbvsp7AFB}2`d31 z4ZC(24ha(z!F}x0A$Sw8k&+PziSB+UMV!NHXabmC&d>X&&xKfTckkKg#8f@l(v_|W zEVJ|_yNPE0^<{AjdDo{S3{%k6&ggRVrl;+!J!N{jq61b3BNl7bPut;DTT+_L^I71c zC0%xLo<c`U6R6<?6Op=tW>SC0oUjb#^Ri1lpL|<cF14{wsj!=yY<HWS>*Un4JA8HQ zZ%j#d`YDXqvM<=j&Wc0zD8t*?_j0R|Cu;inIoDs6IJp!?6b2;~%hHm@OrjU_M?CB` zr4|8BwUO37FjE+aY><VB&hoh6TgEaAEnZf$gZ6-ID@pu6`lZA)khdiOvnmUaP5q-R z{JWU|>+o{2LyijI)4Fq<_w_f$DP*^<pmv@|Ur!!qIVW~mzhw-DSmlVe$qYq@uv#_x z5k=S9ef-$vm8q$1J_LXHN<@j!3~Hz}`;+cBXkKK%D`*+_D!zMpAb#jj*e8}S*{wEe zc?~wOz=bHZZ4{b6OZq**Rla`9bC8vA!I4p1K`SlpANxJ^bg16v@S+vjaFOb4=0!&O zZ;Q+AhO_9i&|X=_&ZVr^M?tkr!HFG7osKds;__BR9<oJf&K!lo2vBK)f)R-XgwKHm zcPn~YgeVYn%+P)_$75@VJ@@;8*g#8w^cLv!1M}i5n<b7xFNGv->mI^ertW2JYzviw z`=QyiaCV3s7{{0g6|I%1*yj>n&4g}G#snJY$AAC7|Hnu^1=UiVu7PTF86x;KXhUQ9 zwCB17JkPHl|F}1MSOp#o07|NX`~tQry|+~CQIUq8suiYdotvJURVK7B9M6Qm2RS2J zJF+`B@6`@9BMK2X%&HV*K!Ii<gHA*d$;k_v7#Pg-!{$}SME|b(4$KMS#Ze+BA<<@y zc`Gj?`#rcH&`vO+hVoASm^zoq(=B+M6N`wcC%hi_O6v@4zWsf;X!0kQ1=-SzX+r^a z$lDwX2`6DMsyH-ovFPKZAmpS_;nY_K=CJ|ogIzY(my!Kt3OYAfjiEQY;!eXDCuq@p zSHmn24l7@O)U5EczIEHh3%ljyO>9*>99VdLZh7+D6yfIO{a2M>luH8j$;%^E4!@_z zqGP_oZkP(DHsi(TpogBK+JkTtW1^r6)6?{xG0<dI*)ZM_PA1_78UNTDt1=(F21pCJ zWF2Q*lWtnyPaYNH<(}<@Kud&=)b;FpiNu^X9~o>y_85~liM+tyCIJAh!QtpgpvMyr zo&m-xC~N#$^O|&kg$Bcdl~rQHkmXAJXPv`}RGKd$(N7JSq|GyFf`)It@+d<7-Zm9f zJzH(H4?g{w7#O9n<o$x7Gze0t(2v=pFA0_nj$?`?j-_uP!?P%`qvc`h_eY$Y)}L)T zTs!qviG4$fx(5`e_Ul(lP6rD^1=q-j!7+h+f!uD4@Qzx$5>`%O1D8gyIjy<O>`xv` zk*YD)-PKoEtjgkLX-T%_e2AfWYyU64Hk^aD87_(d4uvTE*^%c&ne+E-B-N*|fd(0W zY*2?T+ln1E&(;n-Q@EIZU1Z9Q@D*CyyNh#bCPcj7Um&qmz(P@Zq0yL(390`F6`Vax z*YDUV_Guf!bN78eniy0stn}8r-qmhtb=CjmUa#OZmArfB9hK=t8vN(1XO(g9`!RX+ zSFVj__4T|7U0>{v6P~0*Z!MQ`Mh}ZBRG!mJwRKL@cQhP4*=U-8>txNr{A|jl<b@Rf zebyZYCV0O-yEu_!tgB7OioLCN+}jS;;#xy)#Cxf=JteG;X~ji4R%@;?`DtQEKQKt- z$a_r~g%R4G(El<)YKV5Hue9zayYc0zKLJ08=&MV#Xu(J0AOw6#Li1t$5&ju@@1R?7 zc?-{%l|W^&=S2<m@$h^(iD;-V_9%(ypvtv8Um~m3neyJ#m9=!UVcuy{1&1-c6hr(T zeHWC;+G_nbjqoRPp=~t%2>w{VWJ_9!u24#h5&o7WB-l(w1@#5ipvd=^lOozAZYO=? zJ@7wjJ%4Tv*XrE>v^q5`&lY;T=3Z_1oDOkN*Ksw4Y>(r49FRU<V-$7eI{?0*tr;{Z z4pV{;rqO7n1&KB@#!gaVCVzfG_p)F4Tg5Hve@Vv4A3v03m*P`HacuxY88uKj-#wAM za(q;hthNk2sX{*nBus>b55Uo{35o92&)bKAjmkurA&I$GlX;sBzCTFUPcOZD?u2Zq z4n^|jCnpI~SR_vy^&Y0jdoM|W*J{l<0sWMzmiJ8=2ojo$YF<`xbCt0|un#=hB{{T% zw5ZqueWz)HLN4|I3iI4OKK?cPP80I4FrmF-NxnR)I+WVz$tj=4<{&CDeYofxhD?|$ zBqU}~1l3Z`0?3}3JMKvn-RLA%Bh`K)cyk8)LKjV)34!NrlD}Wo^&T!ho*y(7v_E$3 z()sRx#t%GIyC2UVk%d`wM9SiDTL6HybOh`8fWMM`5ixN6`!tb^LsX)Yn8=p^N|U_S zn4etj7?`S0{FlsbzfpdkBLbF;=Gz6G@(C`%iS-#s4#YfJwUU52JadRaqKc&@;b@4$ ztiP|Utl7xRSMF0H?$54%vJ(bG&$C)i{;=E6Lhcku{l@AE+E>vVJ}8B&*_3DMF=+KG z8chID7|N0dqXL$F8fvtRxDAG)Tb5Ox2o}8v%6Zi2GL*)W@n1ot`<t;DE?^dABF5M8 z3d4-qOpLQW(OLl_Nm5wEO2AqIOuLzds{D^lqW_lA2atMr8z!h!Vd(umOjv#uBID+m zXtJ?Iv5X5OH0*Ez^VX^Q#;&uUQ;}><I(X4mTIlz&-$wp-y4~NyViG?pL=B^5XuvYN zQ&hE>Fi(~FlEkhP(GFZn|4(RkEG*?b5YNviC)!CUDuNv=zZ50DEh%EvmPVnc=QYFA zm|!8kCd|ZupiKL76I1XKq0{Gn8mZ2b^UZkQP(xIj&`9!J4HAa-F4tcj*r{GW+|48{ zp6&shoCXU3L6w}N#GSCr$TP5D8yn;Osi9%4$Pnuj#yX~bOgn&<^3+BQuaoodaHG*n z_*ede%|5^zDun<t$03VT$*2%TfXQ-QNx_-D^MFl4khqkkBjBB9o445?vZvZceL&h> z6io0fgdXTqlz<oU2x11MHK^7(&98-ix6I_XHEvU1+;w!P@KU3M^oeU1nNpUqO!XYD zt8)jb1l?r4msHOaSRcghmxTPEn3Va<Df4TP!0bY+mF4TrApM}+x15k4N(Mk!`B6V( zVBnI~LJf9)LaPOKNlHLJge^oYO7`9WCDjZMM2WI-TKc~>7VJ==(>7?g0plwAlbJ3@ zS%)^TCUGV00XSYKfN(3}Ygg-DC;lIUepPO&nF_aG;Et`lv-0&)#r}(ECh#|yg+})! zj+PUF(KaNDfZQsLVqxkD<;U9nl`H1JuM~DSQ^T%U2oyH`de?3I#!uovF1fel<goQn zv+m-KYlNz*$F^ru42H<~zd*5e1N}K3)k^rD5BU_PUt4O(rDUq_eUe4vxB4(BR@U}# zwKv0)X>|Gn*3XhMy2keRqRCAp`1%}-jg201AnL8_r;J}4YD}*{4p<zh@G<zZ5t#9- zB;HWZo_?}6EaaybbyLg>0p5pb=nb_w@Fdf9)32@0?T7(d5Dx{lq&e&sPdw3jpOtrA z!l_h3I@l*n+3T|UP*E)-ppg5%Xg}IpGojbr>rPIr4Vkb#-uvk`+LY8mk9Xa&Cmj7h z!ZvOjRQGrpGFfHt%+)XI+*cBeyOK(oti}cm9Z@C+Nz#c{*7VX~bIC;yaoTr_M8t8r zhsUt|eD0Ki=X7TeFBQeDFi%Bf$#AECeCj?-{}3DN^VWbQ)ib_|<O?{3m9No?<$4Ml zrBZDicLXD@FgqV<49V5h3;=s4Tq@=FKBPJubzC`kJKyJZcbWuU4IrI-rw(5%`p=)W zm{x5w!gHHBQU6Wbz-)NQgk)g|`l}{w;O$W-`}ijIM`?My>0o74VDV(_D{*z>iN-h= zQCkz~SLh#%qS%CV49l5ul4eXV93ibw@{uZe*1fG>^NU<`fk}}c&1uDFYo_D$D+G2{ z6T!6C7F)STKW`lTynE<Tum_6=w$weQ>(U;BRW%bmkC&Ho3o11frVxAv-fF#GH>E)t zw+qoi4_X~xFT@+s6@Da&(3F+mr*Y`kJ~9@Mn`pH;t>69OnTqf3R!vbe`S#c>HBIAF zX1n^_>&-uZg{0)<kVIZqSDR-*_(!s9zddK94_74YF47^X3=JL&d0KRfPLm*LNk0@x z>2-K)Txx3Vk$7vL3#LWyzv)}c>+SRz;PKc*^B8Y;zh8LW`_jP2A{JlA`<qL;_3X#F zZn0}<m*&E!&3)@_><JBsjChYvZQv{2THaqVqO>BwZtFjZB1ei!iX3_w(-9N~;2ieO z<Gf5KSndF2nl%A{frYs(aG8ERy}P*ai@3FkUHmji$xbG$h?ub!S(Uucr#p1=TUlv( zoa@hc429(cIUI)ez68L#a_G-*7Z*}JcO`W!qEk@S@PB)iG9M2LfY`<%07kax56$pD zDdP{BQ*n}d7D}q}D6)qG#FHQ%oH%NVRMG4-%R~H5zPHu;;kBW6PsBd<u-*0<kD=%t z|GWh6j%>8_*2UY@H?hxt#ZG6JQny;VvEj$aAco)*ks1Lv!w2xNw?&2qLEqarX%H3> zT#mHsxfLGc89Ivj&bX&hZ<Z><McXVIA1|D?Ro@udUOfYCDt~VD7(KiBwU&jya}j2d z>Q6*3TiZ0f@~ZCvez~QNo)F;?6QH8)TVwocz5Q_R5P3H<Z`yG6^Q6G&u4wk;E(16_ zPWQ%A$2DS$`IpAe>Hb_azx}tc+h;4K%795gyshrXqTbM1v^kHJWG-2H1-1j$?jn3r z5{g`_?ajg6XUre~LwH83^~Y}ZQ-IeUqFm}v-LCDLsk<P2t-<G<2fwpzw#I@MFNaC7 zN<M+ZEQi00PHtN!N#UYt_N2nk`!Z#`W0Y{QyQ%GQSX4s8VCPhG&c4mplag*C_pF|; zAc^Y-FTDL?9IHU$eE_P+R(&W35iV-1!@|ds(f(bp&4HF<7arI6ez%U;j=1tCm+;qw z5(N>raN>fA;}=+CGo`C-Jv)OZkL}f~Sf&q)dihtwB-Q}W@M*^wNiB=Oto?hwCmH2g zqw+yuiE;CCjkbvW{o9KR-t}tFDUI@N?I`U#{`bd9Sa;L?{41<5)rx^3Qucz*SPWFL zs@W(kGI8OdCI8q@|I9t@Y|AnblKe{HnZmf#?w7ph^G{e&296*&5eJ7CKZbx7{u~y= zOJJ=6;};af&wfJbKJ5;ho#~(MKNMe=p&yicfkOno!ro%X-vaAVE*HAMIIQh&`_3)= zE1+$aWahE$8PwlKet14R2gvt>#XJF~EcY;%JkR1#*l*h{XtepEhNoJv445D)9Cahf zCihiQwaL3{4H_g}koC#cVx82vm|np-Y?|u`c40czb#K~!vY-C3>AyUzIU{2en4sbd zs&HiP$;7U$ZPV-ke8Rug;LxeVqG@V~d8pLzcnGWWv~Z@5eF&Uu^#jvfayT=AP&qiy z3!|iO0|f&=rh$3fjJD|g{WeEO;L`}yPxQvupX%|JfEG?<NGk+&ryrZ_pg#2Jh;VuF zbZMzn@UFP9q*9q_nQ1vEBu?O4CTLJnXICww_tQ(s5_3($jY3|K!k1v62u}!)v5vX1 zjn9DCYiV26IJs#2ojj^U)=43KBjE|Sgj$IoU^*9S4w@-<%AfC-#%^_c17E8@gKG8& zm9wZBaEConAwXw`paR>3d`e2HjPlMKJxV;(Sk_M&{n{R&Kss-Gtd@G++w3>)d=zk_ zM^W>I7xgbD{}Mk5u$hqth^WQt&H;b-%)G2A4QM35BmI(LGf$<cOy%G2h<g)M5sRNX z{k3QyF`5I&O`HH}HWJJ{{z9PY<Npv9)bn6bTD&S#-L^s5>}7jp0{r-0z8-m4N95~_ zcz3s@jeeq`Xy2mHus&>vuQDxD(m8c2GfK#Wj9TO#OMV_9xd!IAMRWRWO4I(SlSc`s z=@`8FfI9kfj5c@v$DyH=;f!vN`<-=GM6!=E`gc5?j2=VD_li`hDub-7As#g%I#9Qz zeZ|OP)5?K(0{sImSLm&<dwiVL;!!3wJe`NC)v46*J1O-y(N4K3^c|M<3_SW=ck9<G zU~C=ZP{LB_kWX76f?u(xA6W7N7JIeY_<d$LB48=2ba&fF_{iboU!I7h-FkQGkpCo8 z<uCvysfrZIFP}9y>Td)k0&{Gtd@=kntTD8nVBT8&m)C?O6<cPE;a3=#cpKs#Myxrf z{ki!+J9k@XTa_F%j~4S~Vg00op<27sb@pz&Q?z<n!SXh+@8bFvg;WL*8H(n*fsOt* zyB)>3s(G>2Uk;xYCr*YIK2OzO@4WZ4b-qoTu=hCR$msS56uJYyAfLk<z|~BJ3#AS{ z9@n*teDDg+<<W5BOy1FYy`hYYDoxhncZmXV;SlNR8c<>Vt_U0_jCAw8x4<rJ?}<ng z7NCus=&3IirQtHon$<Dzu3?aeS~l}Z-k|~+=pwSDcE==IMSY>OQG0CZyQl6UwBFmu zQ#H0vc1S#ACb7k1{MF&IH?nHraIsqQP|UVmO1%5<DZmS?^rKCEx%g)B?_D%|XO`HE zjFZd}od^^b7FQM7Z*XKV$<DHb%7n4>wjDQQ@2zj;X9{}yk->Q|+2AfG<hJ5T%B!qU z1$hs^;z~d2eA<=XvC1^3AaH%3DzNo<Ej-Vd+GnhQhQ>z)s)0$a5z#*8D<mpDbxq#K zlr;d@^=9HS%dyA2?UR-*55e1!VK=aCIaV=;(D1Qu4p5-)ge<=qGH7c%zTpv(SbNP~ zd9G6~btb@&UU&Drti0cd$x50mWI3zR_2}%CY3pSnvaMSEn+rrs-e$5ry)M&HoJK5C z<bQIYta}h)W#*i@v+rH^D{n;(O^O<EKBKSY!hq1%NV>KqHXSeuXlh!l;^^~l6_GrH zH~MbF;}@r(YZu6dNS3~yHJ`x6>qq~fsq=@7rZxAI`GuPFxr2b5Nded<##lUgu9;;l z_OEdCF*DY$QF6dqfFWT)uZADkTJ)q~X>%&7)v%aN3f|3zteWAbZ??YcLPs;k&_~n! z-D|`awF<08SM9*B)}vH+>fE=*5dYPAXO5TN0SStEsJP6)gPrF^i}|ew8?l<OOjjUL z${hdlR~AiL{{y7Y{y>o1eK&F<Zh)t*;CAU?g-7%FmbZK{i6Tz1c-rpe^Z)(ql~O`{ z@})7%@vUC#EvDsJWusH;Cx0ICaL$%>wP);z(wJs2x7-{QSKC+=Uqua{*?*-$slbSV zlPf;F5&KP{U!lUI_VYj;LTF%AZ~Ve-`CDY6RQuy+vq~2+E9p}8S{!rS@@%+fg#(jQ zXgJq%kh_Nd2j0Y=`5?FL-z20^;bQf%3nC3ir_hqjx$R96>Q^b_6{${2)++^)5rfy9 zs{?LV|C~5^ufHRo0=s@j-!KsLsvYz2Zbd*Z5<RhZItf#<59c4tn`k48q#n-PkUG(% zT!QOE&pupPyJcjH9Lt>f`fg)Ew&OIt#qg)DB$uGap8Lry?rEO;Mjf>g;&F|9ofnT@ zkGhMcx!^UB*9WibyDZIWIz*+-N#3kqU>A2?UH%<2FJbK8pxIqCqGR9?nJvOK4-d@r z*Wh}Qo&l+zN7bOpFMWxaYHzaR%2v5&^IE`WIORE;{kL@Y_5|W2tk1Un=qLsxO zBB0@<=R%JfJyW^NZ@xI=G{612&RLbKt)EqfeYTStm6KHAS@|64hi}541!8n@l%-o4 zwdj9*#KBivOnV#bL3iY3?>$2MdDV>gqeOscq~)B;3!T@C$30YNqf`SUAf_TM(Xmt; zMS)U}3IdrRYS_+#-=nnZz%*m~iuV=RB&$DHg=w|ae&_o0mn%iENjeIlGNM1@C!Ks& zk?v#{cfQe4kgTvO?r2+*1J@*HS%yGWq=G=VX!pI6L^VT}Q!mwGHLe?hTa0re<6$y& znb^q(o9o1GLW;pd4V<*Ao9W)C6UX<L2d$AgrW;#qW2yh=y#4RknJ5EB_u;P>Jg>?< z1D5KXuMR^+sTVt%Ifwv>I(+aQ>s-sE;;NGn%xU&G-R3K6qLynirhurWv^=<Uv4vZ_ z8vVnI(g}v=sT91KtMe}OEsGw`9p{gazuX}s)T$Zd<q_LDM^~K&b>E(%+Rh%a34X<z z10)Tu3-6k9e#Q^7Jr5WEQ=R(!ZC~bUA;kfMG2?USmgtIci{TtIQRe65;J{NRgCul0 zZZ&V8#!C&iryI}scA4r`3_uJ~>3ghzz3XJXn{g6HiuN0lY_``dxOR1cdt;Hvt+Pr~ z>Sw+0@#!kZS?1MM+d^ad5;aUhWcKMh^2(McMWv$zc9=mE?WzKl8nkrjn)1uat8eLB zs60JCdfxmPg?4^~Gz^MRQk9Qc@nmS?f3_{tL!x~A36nxx8_>)+m2-u-%XTG#cEPG` zw|^`G!0Z5L+t+2{IPlA>Q|iV|;>OKy8;fNX|B@x)ibb=nsgsiIKZka2k%19P3D8JO zSy0ls>TY9TRk3s!lPo4>y+D6qx*cQ892*V}bm^N#zOA(KL$*y~UJMu~ON5gji;$f; zn~mMf5gP5j@y_lW2-o_kb)EDG^SCf<<vo5x%J53wwd?9ZW0p~jQ+cgZs$Fz40=r#W z>?bC!`b(`oagI4vX*Vh>rc0J2iD{P?4*T3}HglHB1mvaP>nlDhkq|TT4%oMy_w%=p z4@7^n928+m&ZeBCj&8n}D-iE65l<`ET>RmA9Vx;ou=tguQFMif=16{0L#$JKC&O~H z=j!Z!W&8v!VxW$@;4$qnE8!B$RNGjg?a1Z>0gsIis%@MX+N)2a9DKX-&9zk>pVUck zm%)(woXN+FXgeOyCci38nao`fyvJVfLl!1q`}KfyFVeaXY!Xd#^|iUl#%t<ek7N3^ z@Fvd2CFvWtmc6=wukfz!WnVMTO##n<rl)-WZz}!&GOB5gESP%aS9O4|R=z>GpB1Gw zD-OFEwVCa9t}It+v>n6yBAH)I5P3|#I}IGdt3=P=>N3$9rE=e+IieOd1{6kYgg*+> z+Sy#=vzT%nwSpCTKRMbkn!CRtt3B`<+tN0c#Be9cIuy-~z#(Tr)76Q37XL&}5z;sM zk(bp?xB-g^Jj&m#Ztw2mVpuf(BQEe3uk>ks66|AdXjvhhbeHH(?kB=fJDX;KzVX9> zNzJ<2AXniBH)C;yXIb5E8ARRoMTH&M<52a!)TS6!N>{9MQ+a39V3lR8uNx!!C%wf- z!~!*gj#8?Ir8@lY$nQ6Yi&ta4#)&j~WRgE>vAGX=Gg^)irI??}OHrrspHo8kM$%E! zIzIiJl^_IkE)?h`78~!!uU21pBSh(>jy755C;Gb>Mu!aUy}YjL{bM@hYY6MaP}m3d zb)>V5nd!0qn{^#x0HN||bCtWwvoy)3F>F-EEzIxC)|QqzGBHuyMa=IN-n^txRwhCR zV6*8q3RLWoj<VW5`Dp&Qy)UvB^`B~98O6HPIn}{@cMtwFO@I8&nq8|&XD!V1e6fXq zoFOI6rg)#b&V5oO35ahqj#Fq~x@rZbBZ>w+$k9n}LBW?b-MTV$lvdWBq0i{8`u)6) zXSeBC^O%=r8|<T`GR@!-5%g`7j2LmE!}Tx)Zv<<$W8ub+%WWO0Uf(nF2&w|Lh)fgv z-D{7Gb?3B^3zzrzmW!p4#EWT;kiMw&L_XWb+Ji@Oe?&^T={?<QT${$#nne3O<B>7l zhdO_=o}2E^b;!Yu(}KwqrFo~yRWiX>al)3wx{$3-LR)l^i%3CIT;3^_zBIcJK`*PH z<?LHGZHS=aMFr>nL@>(Fnj%Xgbvh(YVQgq37EM`3?+YY#-#$6_RRe{erwYI@6^hLM z8*Ib~xJQANK+71*&*dsBG|%n1AsHe2PVSTOx1Ffk#M5lg({$f_!H`QH#ib;$xp=Aw zdEQvpKDNRUT^5~LM8;m5OFTtfR~dmzm?;2T7${Y*s`?Tg{lC0co>PN0@=7qu&{m6R zTAiCQ8IQsJ$TuWp)yk*@6*H{#3n;XmH<~F@XO+l`y{r_*ScRUs3V!-|xWXYj&Sk;; zO)D+;c^iK&gSk_v@x0^wW!$`u6k8{}t9;crbH0%BWiQ^`VS(7=T~M#@U52%%-$|C# zL#LYesOK9!p@UJK%Zp0Spxgm|<+mjfPtXNzCn(RU)1t@Fv2BfE!ic-|_u^MNN6>*3 zzd#Q!r1ScxYpI6QtDvo|svyhTk#$-P+PKmDY|6J#it(kTE+PoC`kbhhu`)f7>6Zrh zj4)2Q8jbH2+V10T4Fj9*Q-1#%XBTkF`&j6Om0$l|kSS_0BWX655By38N;&xdcVYkg z>6v0B&=)@HZ&~S<5U$G01%y<fL6LLL)g`xo$UNC=ii$}HOXyGg_ByqnTy<Qrd?PPS zRcR(>n)&n#>hO)g-AVYUl{R)c!1L6qIfvU?pRSfXL1^`45O5cA<u<m_BNd=z`;&NR z>6C!3_+#1}4YTqGM$YHP#4l66+H)Z@-79gK@ZW2)M!6x>2m6*oWMx*hLal3+UIXKY zvS42F68>?ZCpeWdggtyptsL_>uR)Fsq4lcq8r@$^lRu8#Rhl~TbX%Uog6d&`op+)0 zkK~#KcdLj|Mq09%*1=fNtCYlCLGCgO6UfsT8$~gp>SsOmJ&(~Tb%?=-wRPU0d#SEd z=(>>KFYnyI(>g9XL_uT<%NU%0dIP6q(A&I^g5J<Tri;Y&1;1Yv056AXJyU{hUk?s- zBZzzTGq9$Q{#an1a-q5_V$K}SOsHk8U=w97ri7Lyr#}1hK`Q&{Yo0e)1poHEb}#P& z!RR2=84+Quik4c}AA<ITBy7^)k+-DD0~)!kvaeHhrxjkxqb)@fCkv1j>jBP3yY*jv zVrV`TIaYXpa$A2Kmi!i+D}ABYQPWmH9n`)r=<>^4I3U$s){J|iCCjLAV)DsH5dQEI zIN#PO358f;Iv8bDUgo<|Zee1;GhCJE*?`rfbeqrBvOgp2V06zum#cb!#fsHCYrKI4 zA5f!Adm%kd#Kgfb0oVhVjKCbCnB~zoYkg7bwu;5{W*lZL)pbvW%(Dqxyt`x3?ERCW zCnS|KpbArb>7FJc%x4R4emXM$6DLLgOD24#y|$Ld|97usz()D5^DWly$&HfG`t{Vr zF|tOf06AX862zxE;K377Xq6VT?}PDzK8&@9aHo_FSRn_r9MV?y6$38kpS6c^DR2qQ zm_i9!RYaId1vtl2XQt^mM5!UkTbCBe6a3w{6)c*mx3I|}i8+k_#M(E7&z31yADBdB zI(m65aDS0Vn>s3zCqsmRhZ<Yj%oW<8T^eUcng`$#Axy-aP!OKQ#m88nanM={jZDer z09(AzW}61YX1RoQ1re*}Usip0_jRQ9)!7(UeD8z@DvN}xz6sYAFLNL5)cdZKDkKeH z8zi~7(evwnC>hd_rWh1)e}fubT|1nvl^8I4Jnh6s?fQl+Die<-VSc-Xl~@c`kiIN& z^nh}}*7iEQ`VgVXs;Wq#)U>-j`ly7QwDCGwlll|1@3r3Y>7o2u>b796Sn1{RoK>3# zraSj7S&nU%;R`4;8NrdRhuC{M>Y!sD?t+{4Te)6$U!*e(ktEgX3*Xh~`IB+KsWd-X z$)N`3<xxTpVG_-*Tx2szep*4o!DVGKl4>JK?cbg+Ug(wMj=Bl>5duj`?pdO8jBfMN z)(SMrUPmxv+%~4L8CyRQd@TIC<mJ)TYVhMP4p<t#edEB!i~lR;gtjECBObbbNASFE zmEGVJ(3_I)ZNwY73KnwFdqpp`8C#S=DOP7hgL?|Vj+{jIcab{y-9@Q3Wd9FU?->o( z8+H$e=+V3AB6{>1U38)*L5$veAKhrth3KOu1QCo*7^3&~)9dJ+A$pYIJ<tFB@Z|B? zTC>(U=f1Cf?Y*yk+2EnYVy`d}G`+!(cRgPhZ0kRKlkL#sZ7B0TQ*7uc?hK=+Qi#d3 z(zR6cDr!oFBS+yl>1+5e0xj0UQ2!4<ls+wy!%B^)K71MfI{3114R1ri+PSbSp8ddm zUXwRWkScXFS{PyFle+X_$NzTz?2l0Kf}p3aS5RR@so3g6l1tE9fzj&yQDVWJ?A4u_ zBU_-&d1cARzMTfvd>cAZWaHxK`c`ar(xWV;_Wkm#<m1}btM(Aj@g#c4ZM*ox;;JEE zzI_veFjknqnrO;fj0snouup#pDbt`N>co8CI~ZJpR`8hlv%JdeV+J1V4Oa(3zAYL@ z#Y`$eRp2C}%9y)97g`~Uu7u@>6|UdkIw*xU7qKqk58KwxnT9~5|Eimq<^UBnSL6R& zCk!^k<6oGPJFPGOv%3<(o=ByB5t*#Rjj@s2DK)HBojgtKlBRW_$Seo&aT)leMVY{4 z#5pVZd_(?Db!}jw3!Gl$6%H-eZV&DE^~U+(EX0gUYjE@5g~<_e7Zc=lyvk6Y@mkt5 zl6lrNUN(d3r;~3h`^VDB{hoL*N0E{cQ1dH)5)$0$V)1MnT8vhgD+GH&y*9d>nWb`N z2q`}0rj#t5$jOEO61NgTcs|ydu5i@B^(Idp=OK=}*pD~+OCkNIrH|#Qe5fW@v7uRG zQg_Uy7)gZzacLZ3#7nQsk^X2}h~+~g#C|gv;(i|S2nxJ;3S30xhnp(dH_|LF{Cx5o zxl@PW+PNlLe2sKbmwbvJ8>$>rB}-ZaI8Z8g?{g`C9s`x)1!0*NgTK-o0@`H$0%%sh zE;<bzoz&R884>h#DJaGwanThF5rV_bOsCGuT3SA{SZ2ePX~GqmX96aV@4qhIY<wx; zse`i_Kw=)K|4#w+9Wdv?z@b9Nr?%Ufgzht3e@~QGRaNL?VvhKf8!DiMhNnd4_~N5d zd^jNSVx99a3j|1zisIl7N?5lKfEGSy2_rJ5!#ym$csp7>p1US-lcZMqzJdjlCv=(4 zO!eb<SSTo~rP+GY;IrX%ccEh0B&kPwsizg}*v$uU#(-urswJjHoikl`aqo)1Nhwaj z<RZTR&8tSQ_iP66MC>vRVyfNhW&VmxY(`&U#U9JviNs?U#^aSUB8G>JcDUb0snw?G z^u`u#Pu|OXn-{(Ju0*BmW)E(6hm5O!<Bwp^)g)g78TZ@mM`ogSN@S#9KhRF%kI`k@ zu8ghL%KWVW$%S?l{;C0X28VIb8d2%|6-D=KE)WzJOktYwZjd!aLRzl+C%lXIo%3z% z{W1<xEQ-@`L3R10$F{x#ZLfLqKQadQ`V`xb&|7e1l(Ce!q26`?a5GQ#FVVzUo1ZfI zzxc52%^DM)U2cgW{(gf{UW9b0oLzDxP?w3vN#`9%m-G~=CX~Io2r$suwe(uE_=_^x z3zPR-7^2ARs$w|m3JK7ye`HbdyZwk-Vu^2Y^kr~u8HNpWkWE)mCb>>i;N^ls{qu7M zDTaEqSUe4zdH>t4509^QSI~(Qr^3NRLw`2%>4&v+nQ080)2gtsjVCVAG9j4>Z`JMr zXF6_jw`J}5O4drZ`w&uXYAm{&k4VMr^I*x{H=ZbqKpFV$%4QO3l}h{G8ICgdS>#-y z_WTJ|sjHEB2zb<Zob6kBT)%-s9{U0xPA@lQ+e7Y8bdww!70(1CJq>-PnrtEOv>6Sc zG_=+dnXY00P*>oKP8Q%Z|4EU8jO_TK2{Jg0(B5_@9gX5QPx0EwnO4-4H_uP?ge7O+ z7;7}amml9DiQbniGwbmZwdDDF`=SOmoFGDJ=S?WB*=PUWDgm3gXknzoFeta<TOu%@ z)z6m_-z|wZ{Lw^X#qF#$J(b_a#un<<>%GB=AmbVrBDM9_AXgn@j#jEH9s8zeu$X7h z#^G*h74g?}(mjwh$_BbJ=PXsd{78*_CqPfBy>q7Q4WGuOviWj2Y2s=*Wm?qdpVF<S z`vq9haEPHW@g3)fjy->4WHW~nl1k#DI7g4lQB=JtaSoI#FR*W*O>`Kc#}<mv7G*5l z2PO3)9T&IP*_|Ns^}Zf0Kj@Es`=AE+h{W2dbFOU&Hxg|P1WOF0cs|QK8r<cW&EKyv z?jPT&*7={Dam(sbiDe=2EY4qHZAE!C-tJ$)Gko?8#ubIW*i<`-1!}|+5S21nnf5S$ zPqXRjBR!0$!av-!Z~9}ds?nOICZdlCjd3Gwj3yJAT3Csu6qCtEc?b(hCi)|B)(={; z+EBhv*$W=a&zl|@-ZqK1@lx>rTPf*r_(gFd6P_`vIv<UsON(RMHE>fChhe;>?xFGM z%l)F+8#6#x@w{F!l1=xu5;r;~b&h5}`$%0RO`9-{msVIL^V}Pgt!i|oDJ3|C4LVD? zNv~JWb=KMyHOOJnb(bEzSOz3~^i>Ci3vPpB=+v8vTvIDpYOjp6ajiQ*n&z=u86F&k z!lA0J@zMGVDMzNMCh2cI*EU#-_Ouy`d6nMG+WTfF`lh^JW=qFCEV>-kF3YK<<6p`3 z@H0$en6rM$pCy(hU``}FRePB+bE&;@-z@t(Xv5CxF6`#+L9W?bwmiog^E3~iqpfit zyh4x2aMBjuSDHdL)&<tVMl{IKd3tElZS@T1?q-B0M!r4A?`n<F*R?N!a+)eCNbry& ztanY)W*K<S7gM6Pg%IhC*~@q9Q{xYqKAAgikJ1%{UpoF}nl3H8l+iFL$ibr)Msw`l zx7B6{>JN8sASphH`gmnPoDVS{=cu{CQDI{uvT@0^1yQo}Suh<vfm@5e$oS=$A%{-b zh=oAK)m%9(Lq_oke9&|XsSI6HCk*|&Lecshnwl7$W6OOQ+I3kk>z_tUWtV_0k~3lA z0sG=U`+$Q!g5;lIipA%~#oyS7%)4ZLQB!o~(xd|2*aDMFZ4Fv=5jN*HPBqojx><<# zE>li9!-#&*7lepp6I?!>!qWdxnpTasY8**l;=G*KEcJK(5&72(5(|C}xt0}ZKE$q- zbvI!?W!cEp*x^zaLioF-sS%cXrriXSgkk@d4D*=Y{++95Zu%J^R%0|o$?%u(gVN9L zS_fbFjqzaE+(*J^Wefg~jAOm}rDl)Dl8m=6a1OHnp-0;oBGD;Wm~zKjD!SLJWvFNG zx^KS{mKtHxDiwK!^>Fip8@NB5);lx~dzV6wGhFp;Sa1zMH8cpqZwirhvzH$2zb2{( zQ@%O)F7BJy)GA@XthaOjuFO(nD0hM0LG(nA`Don+i}>`e=tcuh=amUL+_!UoiEL;V zLjmr+9E82r*)1@TGNKgY^+EVUXop@mjaQ(fbQdnVx-S$bcNxp4Sq8+H@2;762hwa} zC|o)_i{g)YMmFjBxcP>6sfFO|d+dyPD!Oqi32Vd%^vUp8+&I4KQ_>$$?AH$?5DB^< z|7(>8!@D&%yV|y(3%mXDMG4VWt=unnJ`SRAr0*-Ydq+t)T(fGYno@A}J(oIR{O@*G z3i$I=dUTqlw0+Yw7~wN!(;lVVVY(sfDqe<RO>Vy#eCDu&joYih2OVdGFRJw68n{cV zvNcYwHnPe8{WP_RnE)0OOnCJ~#LFG|wihclIeZt>5QC4cS|WA+tI#*KG_48MS9tua zS|fEmd*})LG3aOwv+rk%4@vEW>lzn6@9CItqQ!f41y!Zez8h#DCpPEpkxp#`-<hBu zO1o%mQc9ERmP_;WuyJ_19OQ-CD(v}n5R6`9OuQYr`adueDuq6IZ4_cOMo)EgeHLZQ z<Zmj|JlKEX;}cQR;FRXjbV&&O<}-oaMJSavAEE4&u(7~*TBX-_%s@2M8|p&&LGx=U zAR#D2^*)M_fx<(D7e-FZOzvh5WzVZzA3NHYSMI*-@xJ<fE4zKm-{RtIs!2IEHHjR9 z-E-(3b*eM-n8wNhCtW+h@P{VAe9-eq%uP7=9_5du`@J0ennjvp<fh)~B+n(|-vYny zyn%<Tp0Ynq*?Rgv<U_iKpL%Ki`#42dBIHzaYw~7}2boQTxEbU^lgU+Evu;Guz52AG zn7%8&Ew`s&2DDXCSb`}*EY8AMcDLH7(ro&>Y+IOMqWu@u%^`_X+d}0&UF(Qug8ji+ zNv#|LkcQ^r*~j*v*1V8VkcDfW|L5TgE`hK}y*n~TK1@-n7sSPwXrHUm6FNYVy5C@R zvJ@|+#n}X!6S$j7g?&yV4?Q^H3>l+a$KXx01N0sxTzs3x)+>$6i&Jm_G`%vLt58G( z$J9*}XZ^KxQlW!y;ZmY4_YjYI{KqaqFb*y4VqQ}fQM>o;;A7Ax;_;o=C5rZZIDQ<} z?&b5t6&rsihsQd>>-~_F$zUf=j|TDXh*zYLm(NrFm`o-`6WS7Ex1`DKYPpo&;hHZo zSR>^&$>hzizwTejob?0YyVGa;X3h7skJ1OvtCUF4h5q4=4U|-KzYIh&*R^~IbSJ#( zXeRy|-VxdnL?!c-lBF=sU$=BG=E-_wT&F^UDdx8)frkEu1U_G2aU~9o8j_iK)F~J} zIiEWgDn83dHlH1OHZX#6EeyTSqZjwvy3cS$azwOmdy9}O(aywzO{!AEZ|Vab#Xts% z`iBC|QCI=IT3j0vc$ntIO=G#hQ}r^m7XH%U<f{%(40MfFy)I2!pm=wv)^r*n&^C0N zyu?I?x$F5z)|F8qKjEEvcb8f<pW&Cs$wFt8DJRstICkv1XrdB5DKW1GE33tykCIch zX*mxAG4lRClNF6N%U`)(2a40$e&%C<bP!LA$?phxwl?Lj;bY_^p(aR2(g;1u7&|qf z$$8UmR)~3uWc`V3d6%|u6_~wmO31D2e6HuLf$scfs8wC>X~~sOaO*Yg1M=a|MC$m% zjRxZbnd2@Gj1&E-?f<WH{y(B^H62)}b%Vt$&$L;OEjZQI27W8q8A`6Vp35X*<uMi% z|7vU?%$dEh123I4Td_V43llv@^S4sW1SZfx;)T<BidS~C)Tt=eo7B-~6BDq)n26n; z@8l*|=TX>a%t8D;Z~DJ?>=Z_NeLMDqU;eq>ihm1d7NV1lBa3}T*4+X<5=D-+KoVl; zv_NxQ^i;NTj-R&hH5~bC<(FAb=>nmq>hdQ2&gJ#S(+n6pA7X_j_<5pwtv*|l@FN1S zNs^bb-azN3R1Vj7HQ=A#LZ(5e&cS<n)F#9Xkvmu5Ve(@HUfJZE${lNhJ%_p4mt}{W zP*ZL+sacfvaJzdj%ID*Y`tM?e(M+rz$mn`Cgx}+3oo}P07#|m1d}!&e{gI1H$>zC0 z&0F5e9wnS3`@?;a>;5z&KLSCf1>E@$s#6+>zKBt4_Gk(mo}OWD#l<m(SOc|4FGHz@ z^QVydwEaZ0TYX8{3zgw3luR4%|M{|wZJ1xUf0gTVFz|#f*nI#oyU6LOcE-~H1gB++ z%};4_vbTya8XQ}6o&v!ou{U5#Z#47>oUm#k1EWkMs<8&n;suUTR$*qv=R~<=Zi32T z$O<3?USzm?+?4@RIkMX2j<Zo{t+)`9nSTqfEz*pdVsDkv(fr}WPqh(dE7YQq8}weF zNVX(jr(`+b{!{nQ$d?%CUgbPvil@~h>#Q7CAEz|ZXi%JjI~g>Jng<($7B}x`z2=w~ zHAZ*dOouJKuy5J!WIsHBW+7hwkQjjlDWa0Q)x2q2k39|3U42{bOw(_4k^~f(Tt9Kg z+16Uk&7`*L5Vd~<GjgFO<AYh`f+Ezp8+?Lw492G)_z(49)(zqI8c=08LJRf-(brbT z61M$us8tJG8TteRE9~7n0A){U@~RaRYJ}mO*RrC;^`S;TCQ%SnDKOa}wF|P_4~fz% z@7x~F3J@WW?f;qHgi?(Yhtd3_>{pVIlG=d)KDi{?x)M(-HIy}(9F&&#)06nyWMoUs zhhn+Vnr|uS0s)ur<i?o2)-B#gQ@jI`bm3g79Ix;|9^roaq+H-diWm+i_tbLQc$BuY ztE?(tk5cSc-cnj3o)X`g2R56@s)E6((xI_#7`KPKmim$=EV+zy%ttmCJQeuk8L#@+ zJ`OYz$BxDxOlrl!mhZ6QlwVMga%H+8l?DF<!EpcGL$!-&tBkYnim~nWWPy9&G(S&< zn5=w#RyMcK(o`Fxq4cGOB3gu>2@bP_LGe<yNkIF|mOGC%ZjQ0#*gV!mk98I7GqCP2 zZjey7BlinhuW*|wV{nL})b>$vb)>qYQ%=Pj=|2YnkXu8^_9lcMe|GF4X)Gx7c*xrm zs)>_t7fC#^m>gUSEN&bY<m^iRVFr4^UEDi}iHpyob5%OGLxh5X?;g67P-bGQcjMse z``46nO6LDcer^H)U(00mO)j@?P^Qc%aQ8`s5CN%9vLf2KRD^shPnd*NPJN7hTnk64 z&Kq(Z=UnklCLHInn2BDT5eZyO@XnAAw4us$__HAAXvxq!$IfKy?S!732zeZ5;uI4h zedP%p08k63xwbue9HT1JK7+h;qgoR7XKc^ET{f_*Lw9d)9dGu6uBE$}c>9Qp;m*z! zfxYhG;m?G=PJU%eM=xjckndyh6xW3nlj^icD**r2rP}F!i{YaL&$|HFxS27Ns@OHr z`W#f}?rjlYCYUU?We>cfEu>!`N6F5$>>nl9RW|7&rRt6Uj93+`2NQ?iynMtxAUF~a zK#9=Vb^EqQ=uuMPNF8~#xPd&Wp`%i~m-s`A!5#8Aun5`=+fwC<B;WB@2n}mNAEAjo zVPPucnxgxBaPU#ruC$r|%@?^hkk{=eVrk&RzjY9c-KUW6ZHI46O{pyZxxV?>Fk*zz zaE^|UoiL+7!EYsckvwHFZi0Mlrg1hw$}Gh?!X%aIw2toILdn>(gm#QJBuI<mNdyJS zF~(l=fDC3d=HwL}N?w-eew;RB<L0woVeOG9;@>~2DQ06y78tL~wimnG<hxcWaN|Qg zDL(|BQfRrl&_c-E2DCs4PdHa9jttk!VoVTG1dR}`SY|9*6BSpAP|zBSbdQV2#pJ^8 z-;#^vsN3V+>;WYthacVb7JUnM>Zw==z{cu9#?~%B3U}8GA)sy9H}@-#m_|8+p8<NK z?9XeDoet|JO|VHOhGCXLzp9SkXI<#bgM0I%+QCmwT9N8<p8S{jFY=2y;%@$9+!@u@ z<PGK+`cBx!n!95RbUO;V<ind)soWy8W5Vxa-1u=KI+*fph*wGb=1qN<i0n+Rv_rgi zqaV}3yUdhxO#k|Snn*~;2ZbZ*79;9P0;@IgNaAqB%rUa!Yx4SZ)V)cRiqoGLn!6Xq z0r6{XAKtmYzRTvGdvBXmJ}qpc;X+j$5l;3KKSqobcMDWnZvO%gnC7LjS18_b^w~66 z)R29GhP#o0ORGDF=<60(@G>DmR{M=~f0<qvq1yhf$(t#te>Kz1Pxp4D7nhxcEAik7 z9(w$<TK#X?@gpL|`a+3=ggyWkuGSGYMb1sxk-JouB92zT=OIy6%*0v7He+d=!>E}D z_II|Qe+)<L&k*^-8Cj{aO?gw>LQXZ)#zIH)SXDb3TpD#drIlMhBy{M+A+Dp%zQW$w z&VX5ZhO28*Y>z`~UjIG1n2atYxAP=X=u2jL!LN|<B3^X1KdDlik^OZPg~XbpoB~>8 z7Z(#}f+ikCbq94sB@^BZYQkXn>J41>7818$!v~X(`QIk)wn1e_0xNbGGe(FZmkryl z;27!n!Wr0%gCo}!wUz5f0|fPTuzsgw)76Eh>#@An)p74r`v9!Sw!Lt~#mB+5BaE-$ z4$Nav{Z2Z{GbC)OfWhFtoe=3iC6Ix>epE-OmzE_LD#1?7_a7h`Soxe!oo`P$HVNl? z3XuNCXStd0x*66xnxq6zA1?LsuXL7@gEeyyO&q6zn|K*8Z6N4aVa-fsa`T+%B0%$^ zoIAKaZ5?30)HZpX+=jm~J6JdZcqy(9ohC*+ecBfMR1x`eb2h|H>N}bWbu}$l*SAwu z>EJn24V&NBB<kHi=Po?qC^_kemU@Srxi@&}S>|%B-~=?>^b*;7brWPcqMn<&hg$&a zXAUPy9&&3BKPBdAwy7m%dV0Kl;C-p%obK8j;Mx2*NUE>?6((F4W67ByZB3un7M+e* z8aw**u0%LBM)ai>35Tag-q9`*iVwJnwV%oaE0h1j|Dry=d`3e2Bc;&*JbE-(PiA11 zOis#l%5zQtoRQ%#)(Z|?;)RKO-<3xdxp08pXj0m_HPmeZ;W!D0ucOnw29A*AaeLF? zVoi!yyIjzqRR5_O9z2+j;o|4L!hO{U3HFhAVZk_~_8@Pc^VGV#5P+)jpv6+3b7}MP z*gVldR<AH>F}_+NnxgIbG%Y`BE3|N^{TqGg;mLbeXWpKS*JWyxTp#3>`!+Jv!i4U~ zNc>D%+Bm$V#FLw!Jhd^D(USJ@!WBWzcH>x(FTZ{oCSJGv80nR)4!c@HUTa>-?9DJk zxrz~ia~m}UT{t6vCTn5pMEaq=`Sm`Pc7~upme9tmD#v1rUv1uUkv%djlZ}5ja!Sjt zszU8Oxd_0EO}dJWY9d<eY2QjC{PuvY)PkeJLp+7d&slkPpI14xUsV4IkTnoH+_2?^ z5yS%?Dv?=in1-0p^z@}X{IX*f9s=<_Nt)oRlTE?<U-In2=}R&(b*(K7xdMYlAR=Cc zqbrbhmT&cFsp%GaE0LAy<KVKxsC)JrN}sHcSm;I<*Jb9hDhiwQe79HU%q=(PS(zpe zr^~qdIFTX99LXJ%Irp7kK5hG<YV7zSQ7?jQ1UN%RfF}B5sc)a|HdTcUE8J^mwwbh& zEwlRNOn?I6@@Lkr33Gi`Kr#)r{^a?`9Z&pjk5_l+*v;I6cr_1`t)tmg3QLVQXK;IP z=jpTv1`e%<lXZn{Mm+o6U4he3lyhnwx2*F1G-Kgc7+m8dY2So_($&`dm^CbB#M>mS zBbTg-gtm<Kw%>`DQwY@j<crp)!&+FC$T={G!^2}eHeeV^GoX${hS?Wt4tpo<gC&=o zO5g$rE6-TlE-_&#Cvh7?Kf}58>4jm6PczE<L)QA|aQl_fXVX)qQK%|>Y%|d6{YAB( z?Plj{!_DW_@_pX;oaAreiT`}u!Hj~`fF)T07%$p9keW)3@KXI*RvW1k8ZLw$@#_g~ z{F8(lW?ha&j<-M3Kc+_sL8)`ie-B!E=Zu{9(BNWtUO~$%$}gV3;4fCBvLPMC5CO)2 zv|_|w70G!br7L)pgi=4|ewS}8Wb>l8G0jE-Ryx$F!6MSPc5zp9I@LA=BGv}+IlHkh zLG4@Nmnyy?1f{9(!{X%Rr7aA<VzE<M=_+QW;gJKIz*!QaD^xPRaw1+vj!1Y6E0W(9 zN%=1e=t34v0}MuvEey>&V&YYYoEsh|Kr#!ORfOFZlI@V+*WJh3+j7-1pDUXh4P<`> zZLzBh3Hj!df0%CBON$`o5o-;|z(}d9I();t1WN9OvfizKT{kryFw8KRX6;I?w5>I; z4HRg5S7IRC{_K>l%5}D=YOZ&x`Il*?SoA~aWzC)b0ZW~)$)@AaI;`5b>B+PhEt?Wo zxaM{CO<RqRS<`9bU@#+e`T7gNpMCx86(yuZTOSRk9qa!}9(#AG%yJmw)gC38(1_fz zPAxm7uf#D}9?C(f%}f!Puv#6(ee##nKfP5A0RXoYvzs+h&ctuWN^HHu6`k(n#>J$; zoX!i}=HX0a2BrfWqpHe@UIP#0bT*_m;VBhNuJTiwC-jtN@wQHeCwy)ptq6ZHDqHJ= z4r@3f<nDHjYywF*%zm)3U+clR;H3)|YTGDzpM6;tUCaiz9{)5Shi>7FE;66>jHK5m zuiGK!d)gocFK}mT9-P%!+-SzaW|iu0_-zy*UA<}q5*1gnS{QglrBlPQL*AL&KCELj zLhUF02HFp~PTJ)BF_JIPjJYJ};IJ4h1O6C;ujtIUIbJhb{4rFq3MPWNg<USSIM>e( z)F%|S{WA(jPCgGZq`JKI)o3Ca%@rKIJiUdQF?|00noim@bG%yWM|as_xP=^Xq=quH z0y%eF9C5J-o<Sh8K`83KTG^1E@@_gx5|@#y#Y*fYMD$V{QGKSY9L`6_XoG*)rfY7@ zUGyV5O&|IJ855T`EKHH)Xy{@7=|C>L&UevlHoySJ>dfz;?3)}DK8|lR2i5Ro8m#8w zoc4ZM!bOkHj*Fhqo0Fv@SBb)HFmNb>hJCekH4$px6+=QEytrs5G-vM^ug`pcX#U^^ z(1kS(tFJLpK?Y6S5m8j{rp=+eHIHkaCM?I5ZxIQix0Z%A+yCnNwBV?-`Tc!lxDe$A zdg0cscr-;CN9rVUV@otm4RYJ_A7h5C)<Ukcv}X3wl<Sp>nGt<3^J3*k?VQ1xg_SC+ zJxm<@n3<5kn>VS$j2~rAy+-?tj~qwxnE7K_=GajI?a<Zj&Q?|n$-?x-kC_ZwUkio4 z3F<@5HMQAxosF1OY$-Uymx_|{7D}<pUP#y(D{5+%9lod{^xix_Z0P~K*~3!7j)o_5 z>yg0FR+ppbw1_y`3tXBA#YN&=GDjpS2b*y=DBBnAD8^YCo%-<S5H&i^19)#7*a76u zZUC|OoFi&7kPU4#qHnn(Wg^b{Uyu`^Pdrb}`ad5y2D)TjzXK7}sdmwUlsF~MUN2pU za<`|FG;5azqsxIbIh!=Ekb^A_Yoxg+786S#z-7=-mBZcE#NW^cc7zut2dvoCEYgfc z4_6PD?_xS<vm)M2Ku_yti7r-8bB(YcRE+JF@N&vtC}xycxE)--n6PiW+pM~dE;v5E zRo!8s14UX#O%3)vwF%K~_frRUUNJ!b@Zdh($-p5hMz~l8j*h<Oae_>aM8ww?lajt; z=C|v?9Qfg9_=`8iIVW%OC|R1ylGrY4s(-Mv`M}oAWyj4%eEUkVZt*elF8J*U4W;(z zG0LUp=0k=U(8<%Vx-35$-<8VRR()3!$Nov|tC@m2D-(n(2)u8N(TyoNKd^4Q|9KZt zp&?14_eN74Zqnk?;02^qEK6d)uwe41aQ?=MB=1sS!mTx{ecctyieYgSqNX@<lH=S; zU_C35JH35raf9#kEsGW1iZ)DuiFjO4S#bJNro4Mm%A_PSdp~`?)z|7;TIxQ@7E<4G zbvm;t8~hjg*c!B51(^H??jKf{5hyECQxFx_Kb@-EbF3mcbhJL}27@tXgd{gLEk5%n zoZp>>gkw;zoi1n6r+UIKOX5TeU*hfLk^!YdLLh)(Fqa$0t|7AlNP)BV>NA`W)@4)D zSC2?cbt5$&Gi+@hm?!=*c;qFHr6QDMi>LNsEX$3!sl=jIqW$(u1m7cO3qsvw<=)Tt zvYX|93Icw2-0_+9c^-hCfy--uZnwLPL%i7si>UrQ>&X3MWoI`D2`H<Wtw^4NqA*Oc zZ-dh47eCKnvD#vyebYexGm;<w@!d_SyigzQbv|VFk*siYr!BM!US<r^6Bq=k)Jee4 zES&jc+(^nJb`FTZ*Fk@`YTBn<SE30v#z=G*L8~L%iGuK9Q<hT&X8VIdvhvNUpS&z= zichnCR!nbN1oQLI_I?*$Dqhm_RpXjhBo!2-Z0ffoC%~JGaZ6F$_d`2veV26S&cV`x z+ym#_NOuozqBd}WRErG&*6YQ)n-HobP3IIaE~_+69k+S~Tw*se+?yDm{B1jQD)=9B z3MdHaR>AOCHfS7jzSG?fZ@%EYr9hG3{ZnX0<<k^Oq`zYytW|&;u=!QFm{|E^<`R%w zx$jzZitJx}EJU-~+)AK9ScIdGwTyvws-y6jKb0wPnWXu1(&H3M4{Y2;Jf-;2Ap5hK z*G6wqBIbzsmk9w7fO4avoqs?0nywKscD6QkzF8%99@r+My!={29p`Q1ivQX4s;*{q zuYPljsjcq>W5h2XiT|AYx6}i0hPycd!)Edq2lkhXGD0MT__)A*XPs|tqB7Z-Y0ozO zl8S{R6@=I`&~6b{e=D{+NW+dnWj<D)b9l&TOb=<RU-I#>3b;|p$@8s~d2)(gn;UU- z)7>8EgEVM0ZOP$iw!*+g2O2J@7Oz?*jo;^vxV;bkX8TFME9~uUDbSO*EO9?^D!_(+ z=fkvrFS;zRB3s$Lwz(!KMcOj;*1K5IZ(}O;N=g(q*5F^>aCV88IY<swEcyFt@>VAO zPU|kq#-+4l1;h|A8wSgBUrD7dpJ0^1ExXL~skW=%fc<dI7v#UzRK;)yEgDB{12&k3 z8KL(2n?JIRr&p`p_jvJ#O#jEP8SJK)+yG0O;<n12S2ZsSWxApC@W`+^CFq-%;w}Wt zY?XyC&=bfE@TqZy0+3l=8@XSY<opIK1hxd*KBwV4)At~=`8cFG!7Sg4o6?(;*`eI^ z^~p>?c6aP_BjR%*Gte@X6EkQD!v*2@RuxIbMkXeJ^-{bzm6(bt;;Wfx4v|B^j5X5j zD!zZBC*~Q6>gbl|59_N2Sw&FjlL;4+)RIGx(>JAFt)AWi3A!BhS;2)Dulbv_`iN64 zF0D;gS!cX6b1Lr!Ut%<AVbKr+^q#eeT-N{mnCe!CZ*tFpZ5?V2FnCTK(pq?6(>&9u zZ<aaI{(a1$Al?C17TTvuy6iXmmd9DrD6oG)!!L@JAoS7ld9i-o%XlHt;&?Edfol>g zhYeohxVwfmbG5TYY)bQ(l!Gk*(`4s0VLxG!it7n}Bvug}^U2>$5@%fdciK2#wV#Q( z-5)VZ-flr=O;BIB+qY#GZ`L77KH~R(A-^8uApyT`lx#COE6e`j^?$R+dKpDu$^(9= zpY=FpF~py|uui$YPv(B{&_j~z)fXci+2O@YpIzVBbU`buE&0buZ7)8Onq%ORGufHl zbzdIr{KwdQ)tgxSE^ac-Uvj~rg<gc7+5jKt+}0K(QN$E?7+{DPu+UwsELo!XR3W9^ ziq{GKR$zuY-Q%^(|5-nbN(vM&u3wG<^<BVR&*kSRn(4F{<YVGVe`)e+=r2gnrQmi} zs@n!?KW>aaHmqJJnLS?YmIh{8PG(fzO^<qb3Jg79Ov-Cs#dPe<((vm+?hWys>W)Mi z69%QHi<`4BEHj2n?;^A_!F4b<t)>;3<_omh=nsD;j~=`q{*zrswpGanW5r62s7~OQ zYHztme(WGFK6hVc3|5+m3&-EEiL?-R-MMa{b<?QoNWr!ARErd#vI@&(6JB^3nTWa3 zH9{j9tv{{hEBl|;s-73K9;IlNs+5Xci{9dVYpJmDaMi>0+{1Bu{omWwm7v|n+acM% zyCv5TCA}|X{m+XaK{pNUN=?OsgslH`hHYvB)2Rmy(`sRUE;MhH7xCr($G;8e{p^y( z3p!9$z*#%8_nAyrXMU#JbMN{tq@A!-yja;>(muzwC=bMiY%C0m<IXxELZ_O3T?ca| zM18ZI)VeCvJi;4vV*Tz8p`&%nGkI7C(JRB-WB>>9+PQF!Iqy)qUP;c0@O#JTRF%P( zy1#6&mVSw*4i`hQryn9;6K{N=W;33i0k#3&yM-LIqnuQ<K})}{^CS8hAMed>As)6N z>7?N29vW$vX)T`x`H&1VS@AgJzX;>|JF>us%<6AG@b=(Uxc**z9I5t`8d46BZoVa1 zB&en0Q^9AiuN(D!oZ`y6!^H4S;Ro-7HJ}Smi50N`dafB3OK8_}mWMH*x5JW+1fN?7 zo6BL%EY@chAwFEOFm)_HkMJ_d9u;ifIC_ekEMXPaY0kfqK9~{@0tIrz5x&~HZuAG7 ztTE4YsB2$m&;Jq|>^4Is5r(Xf+lR~*ul}(E;vo5~A@zWR>3E|5(F*Pe2Jrg7FGT6r zEJ&^MyvIdwoXk979DmK-c<8$W@J5>QKyhHQhTKCWT9LK)E-nQJEZBsRpd94`N$!4b zj8`qqu~?GVgwS$m((Q~*_1d@t=;$Ba7VRyz6Ix&mIGP&aMg#dgi$|W>jjDH!^~=md zRFYNLFMi!S+e2jWLTbG!&<BXc;5KP8g)geW0q1B-fOwbm0QCqr3A5!H_v0z#?<HT* zg9`#nckxD8+u#v#^4R^@oAfYm1=(fa1B<jr0_KW!Z%BCgP`xJjH1wBGpW^0&xuKL= z+NAT_9ilH3th}lOK88rh<iO>xyj5BF#S8prJ>0~d8_Hfc2;-9nlpoGda`WRS5gj@u zz9g^SSu3TMM_BlD7uR815w8w1r3EWOo!d1Wr7D=WlD9R5_jj(t-U3c@Uu9<N+JzvE zSOo=P-H!^w^7`a?z`92!c^1<zOiZl0cNK5omoQhb*$yBzvx+uGdnejb(q6;zAJS<d zyO25A^BN#=yA#kPr$(=qKFeHFT|*wU=Thy2+tI22k$+d;SYMZfGx>{<GYt<W!{#{( zp`u8z<U-=0mN0D`C9MHJmIftG>;yea3==vqdU$&|8WOA%O;%l~B!8=!rZ(l;l&Ue| zN}T*uYYg|<`HmfHp>?|<A8fnYaS>V47Wo_`K-^jq?qwPLu5nceaifDIQm<=hxrqfy zDM7txqo%-D8Q{&ZgNrj;>EK+!ZA(qqj7$14sn&HrjQs~rgrC2b(8ACDIhos&M{F-l zu4abGg|Xcnx3<Ih_KWz(ZMPd2*&E2;A|2uOxKx7@CIcUFG!?i}iwm{fvLKp3B{0Ob zEd&jQt{RK3^i{8QX$k>^**=jBBl5#4<M?%mVV(3X8NVQ(%9rkN@22YzrD!tz4MO7Y z(R-prOJJDXTH3*xLvtoxOy-MflW5lm9q7?(DklEbHBjaPV)V%LfHcLJCAWb=q^?Oc z6`t2t<7IR=bwstmI0t+tCc`s62YPY;;iHdm3uJlKVh;fGb~&!&&0FA@U8On?-`OeJ z_CI!7?SEH&uJ8Y(uU?#tAEVxuCfy@wWgp$9QGEPx=YI*A6MkTlsv%dzXelH6{~ZmX z1&2ihhtNCsPYmo?6NhgUFj>4z=2U_qbye6fZW28!!0BHMZ9r&Exu{4!O?{emBBqe& zMV%oQ6(alp-)rACw#IPs4RCjSQ2}K>^{9>5%T9Lt(s^@U+pl>dOK!e|W0$uVhoEEu z(QM&V4F%ZYk#;OrtO2F+Xz9bfncv1?(&#m~j_~+xti_Ceu+Q$9x6}E_ee>g5)qUft z6dfafJNh7Z@{hxhNmK6;upu^y&}JJ-#U(xl+9)e|F-QzJ0^~)j4qtqnu3jNp_BJTZ zl+`4};o&h&*{V=e`Y3fqCPByfacNm#?D;6T2ZMcAA!<=_j!j-cVJBBEmxSDT4tSDg z@YC6knL7!8*`AR)HlfA@+qk3ka{=%)60e3c2Q<D5ZK;*fq2FXpkPt`z^VIkVZQg6y zy4F)b@v!?4U0}=*1ok*jEk})ClqL-*LOq=#bGca-N3n~s^p<6o1QtHK?ru#z&U9AY zV{2aXqWU0#=k$;EkWC@6$CZMQW_OAsSH$y7|G;Sic11-|Cf6{5Rm<u;u!v&)+XcrZ zB)Hai@l`s|e0<yJvGk6{;TK%}E{ADHSc(dO7}8HaOoM+=U>Z1o(twI0w4ko#P;_v3 z4gabv2G?4P%$~uVyoqnaext-D-p*&-e5*a8MZ~r5(#hb1oGzspB)z4CQ#tEdb(zFM zfXb9});HPUgpa!J!;ws1rcG+HN2V(J6>I!o)|Lnv1|RS}%n(kKv!hy+BNHn}zAeqS zdS0h%-}kJd+(MSz#w`YqYEAql@OIZ8$ZK7$?RWg1oJ)E2ZEO#k19lF}ubPXMzMf;C zcis$?z^$9f;nN1(ecx(to}frDVyFanF}g^7OiBz6PG7{c%l@>ra`)_~j<?T#OFXVY zy;vEYlZb7jpZSXt2NREYyw>1nF!26d?<^#3w$?sbS39|R*4`bvZpz!eH`xb$!5c6K zLNGd@+|+EeM5Evpr-cgL0CCSNpc=&{vJ{Vm7_NfogDw33lsB}O*`mje`dSU6erobI zOu^q{yB4HM71<V!25K?hNQ%kavJY77&Y^06ikXT!ExK#Ju)DPjN#D=!t^4Powbg)% zl}VC=#3)&wMC5@L6dg3+6W)?<eaq^NbxT+VdME%B6OV;J%Zr33%p_>*bWwm9`5PF9 zgK>Y0QBE5XRui6Ztw)&dgWo-`O`&)Z@d;z&?f8Hyu|zJ+V9wD*1W{}o5X<o^T;6b5 zp!0m|H~Zp^NxLcW=m*F}@A{sG@KOp174zBmCBLuGHq1cr;E_Y8G)}4=!8TB~15(>l zJWLq}P?F@&?Ltne816oq&Cf6Dw6Ha3qmwR0x)X@_t_F{nLLR6dAnlLW5z{W_rrFQu z^yfZJXSh<~#x`0_3hdjn3llJ#$_rmaUv8ZaIJXQV0iK$o>DvN`F~r0Fo<d|QCUIeg z@#*H4WUQB{D8ppL;>}rX!RWS#h>!>NV2Q(w^P1yGonX1TBqC&PYw|AVCRkB&`aL20 zPi{{nXgGMv)dzlZ*tq&>`^aA{qkGzP)_ON@O5-HaHTtNG``|f|A5$RFVTDGZJzQfd zkLYdFYFPA0gLIlJdx-&(3loo1Cp1!lz~-l5dH3nrPXFOq_7EK~=vnPyD+E^;js+OF zGVdHW8W?0_XZ*p*l+gvUXSN(P$4IS}-+D9r7y?1nWt&7{{8Q`P#4(H2*kcS>?OL?i zzuIfmEz~cKS~t}jlMtxyeX~3#1(0F21R1d$Vf?q%lexQvf|U1MdT6E57hm<V!R0Q# zMNs2#G<M2WI}AMgTG-w8<sxI6;EAn45p)BMy(&IxcR=qyM(wMR9}59~;t$Uk06x{y z>$(lg11-b73S8wZeN;3~a7cSN)z3Z!Kjqv&uXSq~c5Q6^t$X)k3~FFL7KE~s30Nk| zyau~GoBK_QA8ckIGHq@Y`|EJB*zCUi5z!5KkPTdAyzR!<7}3z#azAK6cai!dgU$xe zJ?vC`DnDF@rR7%G6`!V-FC|)$PxE8yW@%^(ubU($UO=z?5jX06Vu<H{1acMtujCt& zxcCEj*QFDhM)a==9<mnSIv?Xlh^NNI7OjzQ7%5D5KF<b=wU`h+yYBZ9e>tb8Sf5t8 z*GT?paTDWIa7#|SybQSon?%lD%EO3Ew1wuxEA^&-=9MoUXG^Q=pTBcZqt=mZ)}zwi z6eeA@<SE6-1{kZgx~Vn?&YUp{oRMMDFJt+&MvJd1iRgQmWg?unYELsRI}O}IF0_wP zx3UeFow7$DddPYeeaO)`GH6R%l=j;HG~wMpTC$j)q3cj9<A;*CwcL(Ag+4(xw6fTe z#4N>ny{BQR7+9>%#FiHU0(kGXyy<g?v)k$bj_;Fo5F3yn@fNBCm0RN?Vj{*N?YSoU zwgH;Ew5W{ND=A)jPtI@TPcI_XuaK-U3LD{r{9RkCa}>?EV_XG2h-TAtrx>#pknk@A z>=tV7Ye!G@vt>dC-qEG}QeseV0^l@Adi^10m!?NUcj<{X<Uk)?K|JBGMFmgo+eZ`h zFEN6LC3mM&k9`Fpb0;^_qqCo>qE!XQYZ5C;iU&t*n!GM!3+}dx+W*MX2koc!C&|`H zNex)nN)#Nsx&cui#}Pzry9M_uY?1~>1puQYVDu`V?iN+p2n?d??QzE#+iF4`e1dBp zIny1s0vfMLvd1n}V@|BcXw<B$65$`TAKKRU%56LcmyM#_al5{}GyQ5_3k&;CaVoK| zmP}`0H(-u|Sdj0H`6<uK^kR<DExf5=u+ImZLIqs%c@b=a2%Kc+4x`~My(w3s?wZ2& zC1^dxfWVCVG$W)K6d)@q8k5P6ty=s|b4rX^t`$$sk|}32FuJH}<?knm(@Fp1_>$}& zK7ar7t;5Ie^{NMz%#e#!^V-zIr@H^%z`7NYlfuXk?JG^8IANGjn8FX;dXiMV*W|?W z^E&?d{7hq66M4lw3YddF?z~R0TqjjvNFlkynoy6^hGA53BJAtNQ1hBU)~PMKRkBWJ z!&US`0d+$v0G5au#Mw<%2v*q)`2bp=*6)lx`ttH&YvOXf6b=u0+MV(&IkY9qRa%G5 z_qsdtVBcWCbRv0YcKfSs5%j2%Fmr*?l4r2BqA~1YuiVTH?FFc8AxH0E@lC-526beO z*WtlRs@dIb>Ek2>^$qf1_JK|JFJ*a7_-(4w0oGhz`|0?@1RrEQRstBb_2ONp4w)Li zzc{(ofM5pPhPjF5%IvIvhk{(1R<y3niK)y*&bJfWSNRw?9fxM$q_#1Bm;FMpv5m9K zrK?*PvSW}o<LJIUM!ag>LBn!Gc}{S(_WBP2tTnm$y+ShdStRH?)AKJ->0NxZPKk3K z8=tB4{q*&{4szz-iJ?7(q+}U)-3PWph~W@ssvd4ZJlz!h9;a@#zCLMG;yC^NS;5lH z1jOYK`*HhnqYM~I2|R0V|8>&|`Ml@e`;SIK`({UT*50<#BzjZ5fRjX#(?-v-&^`t| zjEt76NGuNHmHM2`>*$sa?q>O~=o_F0ddKWq3Y(uCxgKZ1!-gE8bd(LU>O^nrj1~!S zK=Q35;Z$X%*=A7F2Y!^o`czK4`Ui4Q!Vjkwc*`g@(xT0e#XyWhKm6GrxjGUAgNPF( z(tyS9B>`&C^O2vmhlb>sYzfNXh;u5%O`f=R4netvL$x{q!@<v+mqR-$k4Np-LXb0U zP{7*5R4I|RTLsMd7|5-iJ4P5Zp8R&YJ1$?k1|gbv4~hd%7Ct!@+|XTy+IBrF)0y)* z&8p?AyBoSNo%@8#tH3p1j?y0Z*_?0sVBrIdpD~+;#T~wGX{H*#5Nnrf`o!&<`)Bd^ zO=q4Rk3vSCb#HKsrH5ASUo9{c^jVN(P{ZqW<qv$*l^%sp25b>W*`{KOf3m;4wBPaN z%fH_{wR;HCZ1e?=iet#!zQIE~5PtA;kkIJWKNvI7I`@t6IoPx8)zaI#32$SUrloo~ zm;O8Vjkv^wk-banF;1OM*k%0*QPjf^7*RKkx1OpJFTn1WagKhNLS}$9ip{OggEi55 zeGpZy6`6C)EraQkE)jq?-~R>RPLH}g8cK2i(`3&)>>ixX+3)7oG{5glCj}<!<Myjt zXZaY}+2#S?fFpb6i<Z~9lYF{=)FYi{O{KK`sJTQwQ7E9F@+`3J)*Y9b-SnIdR_Te7 zX)Zpc&HQ>_DSI~lm<~aiU7r1bxA>l2oK`;{Vtt}9K)I1?qVdfoF7qkIDvM<bP%O9g zIRQzmY)KE<2~vgYYBL(q2g#5lw(@U^8Ep(%nEWtF8w}vhGJh@G{eE(KF(31D*21K7 zNqe*Avi(25l0?UihzAk{6l0R(L2`{Z;4$V!e<%n{|6MMK-J>tV5wh0;I3=-9dCDzg z-17s(JscAJ66a^e$Zf#a`<V~7w}S<4RjqF4^zBtw{p>&$Hl_c$kTLqdL-cLTJUq$7 zupepQy80#Eox-&^GTLWeV_lZsb~M1BJO<vbPV{DoPaTX%szNRfD-H*6KDDVEFIF}# zagS08|4P}pOGy}MuJ)q7nj5y843<PVl?KK|Rm`ildW4^>U8*^^`m|iXfR!(rnJois z?9&&#B`|np^wR$OThzlA2{~ZEv+-22*;wajllx>K_}?fT`D!W4j`J?gsEYeNaif2J z=csdID;T*$^&5vYQa|;T{llH?g*FQDxFy>bzrTGg{RA~Z*59qh$PDn5<7B%$k)1)Q zico-mIyi&cgL5i<nZ|HD&`P|Aa~P`*oyKOoPojm}qb<<T&+$O|UrX9=Bs|>*&`0u$ zS?_wM#EaM73#`ibi7NikhxJ0AL`c~EhBKQ0pucdWjGLnszib-R!W$8l$;Ja>D)RPe zF6gd#pWqJ=*2S8IP`coq@j97Bzy6cF<;yq2b~4~wfanuL`$tn+edY}E=%q-Rpna43 z%)Yvo_im=MdZh|gV^XZlWlk*K)+bWv)Pih8yc)$qCrS=#_q6<mKE3|kOh)KJWx@rV zT3!r&V|h+@j)nI-l{65%-9O_>Y1#0oHrt;@h_Nv{V*^DjjjU#LTZ)IIRVcbM!?HnK zqZxBzCI&yuO+O$l8t)phXQkMgJgHSxBGWy$m&DcUOe>QL0<ehxt4~`Pe=L)I5Q41p znIYPy>rLQO3Uspm_24Sf)-=sR7l&tAZq;NH1yX&t)ldXt^u*545Z&Xj(5B6B`94x` z=2#PUPYp9Sg?4qTlbX(TSCwlf05f6H=~?)PPTl)t#m=Gs!`lh$Znbn#VDhmj>Ou+1 zOEcykL)rtBi@SG<aaf(tU!nW&y)Q{c_)0!M&@<0}K^(KoF~EGNC)|p0&civQ*(yU1 zu*HeV#8o1xn!eFR>{>F9t2!+=Puo)kjij%9gKt@pZ2!yS2|v&K5)<l9?+BT$a+|%h z*b!8F_q|JEVgBiuo~?^-8T3e5XcL&F`kgeGhLukD;c({i+bU55V#{&qm@6`H40?jr z=}TNFYu~gYv4AoMq9n|KRy+zkESP1?JZ7UU<kG|d7WTPOyb{yxuO$2BwrJwB<Rd=# zfI-nS>|quLm$^WTz)*KLfo6}zrKk8aGt(S+V$Q2I-CgkAPix=jKz1f)rPQZJtQsXZ zy?xHMJaqhM9N3JFy>tB5j56eZF;XVkNgwaH#SfZHr{iZCvpfR^y7%HQx5_i@BpDr> zR`wr=&k>PzDlWX&cfCSsvqmmnyHFgF!&JVij3i|tgZhC!othghtfy>rDW2~Q#D@CP zYtO%WRbz42$c2v8PhD;t0?zPe*ln-=RW@m#x#>XJq*4>w)7_rBEp&Mkz_8tTht_aj zQL2k=^_y7^_R|R-U7vcg#!pSaMOM+fZs*9Wb10NG_b~-L<9xkUQ!rMfQtF0!RmaWv z5y*Nx-QxSt+kE(+s=GJ$oQ5V0o#Kd&5_N07cYWxtK**tx$O@!J?J_Aj?2c~f0sSZ2 zytStm({Dx^9Qn<b<2kXrOCL`TgsTuDUa&V^n2?9qjXxqHb1Sai|FZwZYa;gHoc1{R z&R2rt!xpudV_6^?$|R!reolSYyl;dPE}4TbiP#%t6$q+2a9dHn_Zf+e$RzE~E(TIK z%()bu*|fvxX*QBTE|uVqHtG=av&-2IZdL_QuPu^?NwfXhbm<(e36Y6`Ct(?v*><>P z`-b#{rAbpGi=)x89fO#LSim8SeN9(3Vru}Q536PQ{p{1B-l$aO+%jV!`p%e84C`wn zRHt30N<l+lI&U`a1ap{NYjUK*MB1KbFiZNvQV7sYCrxkr)G3<F%_}>yb??tbb@Ro3 zMSPcql^^Psq{s)+LO+&BreV>Jh^gid-agt9$vhE}Jh>f%K*qhs{Fj2=@_y1dOy}4P za`Afh_hE@8piL<lJ;lWhdl^ZrFi!wyWwxl3Q?*FtVXkKN-VAkdj_aiM<rz+S&oh{! zTtxG>xvh0O_grcma+1EqVkG2+T`gsmH*U9e781C#7<A@oc9EA>p<Y)1F6ZSrCNdBC zu>D)a=ELcy5!Td`<R2f7YXdOnqA>cXBEr5^<Q;VWS%bU7+IBHBHvAq$yKpjxBmcMb zB=!j<Fg>;7><K91%2a4@tr1QZ+?ux({8DHnw?akc?=-X<+>Ebbh_N}GyVYuhKjZkG zw^;n*ccw4+rqGU>QUZ?i<#bxHA%9$oyP(Ch_2Sg?5+)op-{AWN%Q?EHSDt#e?WxlB zz32XHz^1!^*DLB6m)g)1_!W#insPQ-T!MMy_NamH*H-!OgGS$0t6gietr}5{omM&9 zuNWIbdI|nb(lvqXIYHNZ1#NdLvi{@K7ipMvi*d1q@S?g9=U)P{7oT=HaU+_!tE}|} z8SH+2pq732nenuezPCroaBBo-uEx{iS3qfTOI8S2CYZni!Rqmvw9IoX`ZNHq*r~z) zxdczk$V*17=t;kcrk&c^`XKEgChTZUX940tRnFO&v$o!`!^KQU1juv+Wh^Sb^D)(y z4Q+5lqG0BbDD9AFkczOsXwp7^mUoLkUyk=Z?FeW`a<e*M+J>HArk`JrtGHqY9y(_F zEW-RHQ|g~H`m@G28S1KCG(c{-npy^@)29Gn$4gTA+_q#^*r}4uPJBqSyK&W`{mE~M zleSkd1mhgxO<6qW+&s%aGgqfJYUV+o>0-zM@lsf;h7wl|CzFOmgQ<guId#1Cme*-r zDnk|bC97tT1lgHk!i+LrgnffAeSx;P8Pf~Q5f4$lzQOO$=T46N<eLKws2OQrtxhaG zK0hEJE`2Eq{q}AG>hcyO_3^K&w3KGtTE{$_#$O)p9lf8HZBZWTpMiMRQQ3!X-?mNq z?b|1+KCGOP$vpobRo@xUcK?Ol(khjzno*meDhMf!nx$&fqE=%hR%;YdJE|#S)}9sI zZH*c=Yj0u%jays0W~5pxHDZq^&zt9eKQHp`_sNUj?|jd>&UKyZd=V`4Jc)9vU4g$k zFDq9x(y=wR%pHY@?art&O5$55Ha6Dz&wp%fElqOsn26smE#txke82WOTaOMva31@u zdz*XOcVvH7HA2``{PC9|l3*NfVjww}|88;sP)2|0OMw#%jK5a<n$Lt8b6=i5CF!1I zhL88Bn`%q72{kN(I4O`TLyCu)XGy7r;4Oc(;sEm9A?Kc!FliQ+79>~dWSU`Mer8Wp zDfP<oRV^$6JG2@+WhvFJka;H~W<)OTvCPh_D)n1<MneRGZtK<}q{``eyvmfh3=@4e zMjHu%VuVRhC&oiX7wW=d@ZY3DpKVXwrRT{FW=-bOKS%FTE?b{>qs}tiNZzh{S8))` z|0a%ZzLmX;?VJ?BT&XoLwkooEcUc3~&72J|(8MC{2d<zp>vFxq!ym+|^zqqOH~||0 zwH!L{1+v~g$XofYwzi<crTdz+j&xX%Q!;+|P{Cv5=c8R2PzHH><A*4`tDXP>h*Io- zZQB9W(n>keah}ln#y#B5hIu9OhLUmb<4Q_U*O2{gcv!%5PyRP!gkjU%G**X%em&Ha zCmU^l`aF(QbSHoR)=?jS$f_atZ}tmLv)+Z|u4jJBPxB<$uy^2gGeK0&W4l1;kCebP zK+0Hnk4$`QOxzR06gT4QMLx;&p@!ndcSi8ZcTIW0@%ZPA_x1b4Z}jUrsJsQx(?bE7 zga&dgM;XK}y5}R}uXo$lBL$e1mx|SOfvX=KNrf{{p_wB;cO6kvzw;XU>O?D4bDbO< zUZWppO03ph@xHw6;NWpX61(LiO5igA6<bv}oifAcYRq{UmVB0cBg9Ods|~C5tG}4P zy9}iVU;^W-dy`AaTZ0=UYRK0Q@GJDBKf<`)+vRgtmS;mH)1C*u`CtF@3>}o3q$8l~ z!@4@wZ1)z?6P=RT%IW|dfYdU==Bb}c%Cr32!+E&mNJIG;E$di6Tj>dMN?~<CTdM*o zPQbX}COzI-r}3wgaQQuB{fvih`z^k*ot)IZQ|ffvaww!;&!a>q==@D<h!B9KcTx0! zYX;<K7H=)L_VYohMb%9{`+>kT%;R*cz{8Q#W7oFz-ko@@_!~QOqT$hO`N?3O^{}m- zsig@@i`O5_ahx45)S9gXI)l<y40P%l1ofu^|G5+YC$=&)ycrrlaR|<QT-m#b7&^8- zM*@0a^df7Ki#=o0s!S7kEu(b-tXNzg!Xrf+K_|>=k4zcDQ3e{wS66K2>d4cm+&l2~ z^;VzNAoT<@n$H`bZql;H@e9Y3=rh;dI338if|JkFm1%Gj8(Ty1n0$y|r2Q#DLiUO6 z8_1bW1X^HlZ1mfPq8+N;v%Qy#^hYEq7G`td$Bb}P<TYeB-+%bF(F1wWD0#z-RiNT3 zs<2`l2}FpKySJ3O6)&g4=e|CLTFXgV3WZ0A4Ijw6>NbL{8L4izGQE(Lp&hiiRME1$ zDV`0+>dK4p<tnrKJV;JRO=kMk|G8;xXY(vrMcuCX8o~iM^TEjKk4;M~VW=mtL_j5e zM;yvi?93(-3C{7?Rv&lAcZz3QYkv6t9%|s4u?fz#z85O*#lkE7e*LT0dE1ao%hB)t zP464ba$-G9Vgjx{=KeDqr?QR7()V7i<gUdH1ywTZ4^)l6%(1BV4^&72spV^I_e7GX zVq#X%lzmN+oB8CH_qfWasMyWR+WY8ltT9lBgAX=MwF0W9FZcXiyhI+xZ=kY!V>xmu zNWy_>tx*@42bclQ2He2vY)?rQ<sFj-?~%j9tYm)viM1YfWV|9jToO%A8RIpMM5rV$ zI+lVx7F0|?D_V8$x~nGr-lAVTa1uJZI*f@oN-)1Ed03yFEb<ipUF<$eW{mgsP)n9I zoq>4ge+z$;F&2Q~3j`Oy;>r59pYg#OSB<mH#4j<>UCAnRsv{htKiqPu@h}~%0vP~- z1HxNm9R>y_%#a+i?Qy15^&D%)$|>y_Y|8*$gbZ<hfQxElJ;3qM@ts#9q#vu8waw?0 z#^<fC?3<1Vn|~YKjY<SwcTTbx!0dNrZ&+Lx5E1vzsy4D{L4FJH$D+ir7+LXK@}tgX zR`W0vCGa`HbS&@P+U7J#VkM1!6f044RzW#iI95CPt}bt7Ro<sSz#OQM>Zqr8)m-~) zE2G$K`qf`Oy%6N;l4W4!<xf}b|FTDyF@8iIAy;9!Xmoy*zbDg}wk3~pQ0a3;1bz|7 z&H5SA=1vhRC&1`siUraP^5cCVav`}C!K$qq{2rqcxYxXS{0m&hU|>s393q7AWs`Zq zC+Tl@cju>I{|YHQj4xq+bp|S)%$8Cu$@G6Alr~CynAHRXiStRbro(K(gmpfBUkI$< znW})gleB%aA!k?9E^K{r%Hk1M<S`MY_Yz7Js~-TY_~KH<{#)D0otPx+Qd3)TDQWG+ z2;mWS9;~)5s%c+!MHwYvzzWe&5d{vu=D?N+^xk1ZwXba__)6DbVs(|&5&)Y^VQbL( z+g1ZG9`+n3{J+^DUB4&o(|WYV25ob9+Phb;Aw29q#cf7bwA=+;x2`KMcdka}l#8#q z_9nPdlZNQEudiO2I~+frKh)`0r>#friCX&SOB%docD~MW!fyh8FlY(i>%034+Ts9T z&kFg|ahN^&{ye1h%a<3tpMRjNv0{pPV)eAUQAH^|7i!oWLcd*Pz*-M3H!HXJIIF;_ zGn5izM%dmQvhR!peJy)&@Lo{#tuFQeP5oQ-*f}-xpJ9<4P<{WvF?D-`e57jaZW*%I z<e|6F3A<KJ_<+uPXwV+^-lmo-YTJ{@RRdgl*4}n}*=*#rUzc=c-gYGHTb*lCKOjaY zTaTDM#-)?OE^{MDgn*H_3?(rc211vf3Df)5xGguE6};<U5VZyx@W7&l@*XZdmb|rg z;d!e_!5)B!!Tf*cM1KG?>=x&2$XOD5DOpMW5-4u~{028<JLfa#!$Z)$$V88aV)#UQ z<*|rZF&E>ek!BgnoA79!rFHT)N11u$&@nhCB0~F7-*eb1wLI(})qqgH-?Ww8f?ky1 z<TS_RjX3)GnVEO3HSlJIctJvOg@}bmeybN{SDRyTZvOQ2`suET+R5lsx-UYMx^!px z$gb(?mIT3*Wq!e9N=Nn1oBY<T<MXqfSIbeDJ68OkKig8@&Q~4$32itVnSb}JPU4pf zG9KhxMftT-Q)nhDklnFH^iRIX(wkHxLfP1S%Z2T6q@N#5))mK~%gZ7o3y1PUdM3{H zylS7fV&oyLbbQpRxj=}lKL<N^GMy$ap>xtn^I0p(6)3o|aW;rty*kKQO@OI7re3x; zEZAyhyoFp^Ux2$H_#XDR9NQ}donF7d+i+go_(~)ncAY&Vek8dQS2zu3ydr+7&lL!x zH<Zz$Bh><YT}=68=_?de1z!E5T0H`GxN&I-z(|kDE=*2B2<6!^h(o1nH)Vu8_)tN2 z*91G+7})+>S70+dbnH(7O5RrbB{eYP>N{~lgdh|v9e^(j(+L)mnD=idhcXA5f-bW% z(&ID5XorxXu^>Gr3;?G+<RCip=Nk=>S*tH}<EQjqCsH5AhYy=HmdA<JGkW7<JB1MA zb6YC&Q)Zv%IL9d;vzFtnKx<#bWeun(RWvZ4$?>TZ;qPkxc{#D7N&R?K@PuN2-lrwl z=8SsrqCcobVsF!fdaPZX8ZguQpt8ZYKcTI~WpCXo=-{vN*;e9d*j+WRtpsITN;k?c z^jFQ${BHd`nly4UpAfi|{1Fw=<sBUCb{>~ELR0A{RHd%-6GLn}AADJ`X>Td(c;ylL z#im6hH5=FS{PcHqVPxUj{K1h|C?)@R&ip1ZM+Nv407WZjFpu?}YEzcVTM}VxGY%@W zGpT3?w%qit_&&7-uTkW>;VLv<(K1q%e&t-pDXmG<0Ue`9EPZ>&?p^D8jzs18MF*<m zxm)0YN$s3*8V`_e>ymho7$Rf1GqA=9R6_Dr!3gPHCf|NP>{`J{4W0~)F3$xKvxHMy zdvEueZlfg`AsE@BN>EW1IzZ9yxmu_k^}@yffU!Hoi*#B-QLWa72=fUkzdB$KE0kc6 zAdQUMx+RLdxQv#NE!r7R8<|ehRRBiIhA@CGZEFB{sexjV$;qulwaCFbak45GguYr2 zr|lFi&1PC|X~yT$8$Z;-+Iaxzf6mB0rY{%tL~aKMgTX(e*<zpwI)g)eq0Cz3+i?7) zgpH~KFujFZ=<s0hX|l=6LAGj3dXNEj3*;jH6Q9?n96)*Xo0NZ$&fWSu!TvC@t!b82 zsJ+k^cF^N>IG`gFHu_Z}ArGbk9EQJoe*VD~p|vn6@j@{2_tVQy;~$I?T3SNfbu5Mo zlljOFjlsJIC!!KXd-?lCVdu5>`|9(XE$jd;P`@kBQ*@aCKQoDa>IZpQ)%2@BFb6Pj zk34Nlo-VdAv#c+!6a{oaG(1wpVk-)Rzj(K}o8TK0c%qAQwyaHo(go)Gm8b2S>GS#u zR%id3#3!JI)@)z9XKO?9@UKCZx7HrKNsgCb&B{j4aHd)<?EtaD6vwta#e`-8eS5%M z;GfjzDwNO(ZwH*Dvqhy1-y$E-{;DJZ9ili-#Z|owsY6w@?YnTM;@KeosaZZUNkUf& z&9T946&9LpZq;nYgGmQ;E(GxF{iz2QhR&ZQo8F}9GO^3&@fiLCfR{%-Y2qup7M-$l z_`qVgxm*-#y6oX1<XRBiiZdOssWs-Ya6}9E;$ktvx=i_0|5goauP?hyys}AtG*}CW z+dOLxc--WlKPGj6`_Ag(l!x4|us<oB5Bxfh`h2$OF6-mOq{R?ZjC`$~=CZfJ53o2t zxN^3*+7-@zh3NV{&}XxGt%G_hh^C(JB~}I!{bY}}1TQDwUKj|Ozh2-#Z3It@TUuCt z3v6qs4OrR>@An98Z2jHZ@i$U7@U-L5a^82QKY!;`{gNXuk%UV+09<7F5gyga$)1VC zG0{i$ZhhO}y7HM{_8+J=P#81Gf}nHGdOPtVpn5lV3b}uc2A=eEQMxMppde2l&F7?N zqf^l1ll<TCzk`jz-haZ??PO;2_KB$~S%J6d0M3KT-35j!eHz`uh2}23FD-UWOAl4p zuuwkXzOKhj<*I&q@gKKVXP=|H$^1%Qpq@zv4B^q$vDoC{_~LxUAl}L^dp`}w?T%?8 zVT@|-sjNiCg2spc^rx<Z^Z+O;Y9PB8$nYM{M7FuAWu1asj)2BX)1{;!Tt>k#XSKDJ z-trL%G8BwR9+B^dVicVTgUvRvREFw@zu?I$Q0qCJ1P<rdFasWjZOII3;8c@{*H@;h zXeOsDf^IU=qt74qX?*7UgulxRpv)_e*5ClweFH`<))}F2tI>B~i!1rmPOczc-pOxH zvGS1@hv04%38IfFXTRppHf63p8K0TiLFqF|u$p`gOzZvkk5S!9a4&vY;(V>r*nV{+ ztk>X^<-m;W*^2t<()o^r_v{_Jq><(4lq`XsKm;M6WwwbQdga$%$3izM)Nfxw_M|BP z)%RVDt#U;>dUI+*GtTJaW$%=g7(?-$2>J5)`~ZJ4`wDx%N9trjEBBSCKB<O=;LMjU zUP9wS@jA3#;`L}=MaBzWa3~PD8DOGze7w=4ZcPkRS<Cn0a?a3DkzW1`udN!L+D{?4 zpQ~AyshqUewS>hy`qg$CA^#Y`Bp<DEnSN+z3jbJ3MPK)pp3G(6NXq72`gjR8#{5To zc>`T0w#(>#v4>ItTt1Ip%6JFmbpuIXQVfWGW_7s1pcNZ&C!mR_uoJa2z@;TK%+c!P z$HCu_Vy`2bZN2x|jR*f>-igL6tSBq}>Ux-QiF}-93jN5+jYK)cY#u^W_i;V?DaygB zGcYaiS5gxAhh#kRCa+#r+HorheI*F&uv9KaPag#@9d`sCeW29JWI*V*ZuLZbY^b$S z&#S)1r0X~_H8pogyM_IFLZ;f>ln-><3K<d)dTeM{hwx%vyH5T-vh?H9#?(i_gW7rY z_Z;Su-(M@#AnHxU^Q&YzkbR)BiHCgMioZY$*|uY+tz*}yW81(otp91%jWLnW6>l?f z2;p}Ovd1O)DirOz4dO>;S6IFT3{&@Q4TJwCUq8ba+8;Ys9D4}db@-B?v>d1}jz)}` z)@?bsFQMkA^?+5OZ_00FQpzU;f5T52PVlb=#fV98<EuR%DSBj-`>)mVFm0<)@1s6J z>!Str&l7@!!69Au9pVm_l0~{0nAP%E?N3#6<Lu}GloN7SS3{~v<ED(k#rx&#U6MV4 z`Wd$;-W4hE_V?#ffQ*K>#zr+mR^2j<iePL@F_(aiBG<S-=^PHHS13Gxkeu#*y#S>^ zv0bqF4yrW|_qjUw*4&G)hNDduU_kqpj%HU$z1eH8I-NHn6Hm=UM!wF**}0D06Z&tS z<zhp5=nEI!*XNW2U0y5%umPhbSV2(w!}7oFQWHpnH_<V!e2X}1Ln;I-oB>JlwO*`c zl8lO`6DRsBah17QOVSEr4bEH?6NqCf-dpeP+JCjw(4p+ei(}#&`=k(}CFe&C+{%Cj z{%Zm^tOE$df4`9s{A1Pb_jJf0_4uBoFrv>aW%SSEYjaz(^UAT$_vdD%bSyJjDg**Y zG391IoOdH9k+@hw%rgXEk!&+$D`x(HNC_r;HnbfSpQVr3#P{nj@L|(=dw&vLL;L4{ z?a+XNZ$$`C{`ZgH!(+FavzffICP5GlVEdEA#9mbU<bE(bL7TN$0s_CU0F;?uvN7Ap z9TDRpB*ExokSLY&_b9T(O6=xlX25=%8~SgeuFtQ?bJStRdD*?QnAVo>uF?R}n+!`{ z5qK`98F@R?tDjZx?pGce&(CI$3)&qohY85eEw;2QUyW06V5_dNx=p#6T<iqA9ejK% zbJ%eEq2crO_o_ibb5l9px(-5lof_STD&xF9r%Cy3AF>+%fj3FHe;sUUwz)cnnw!fF z*dKkDl->K9$3b3E?ENL!gg=T@M~jKa?YYq|AXXE0j2V}rz~)AX^>Js}xcZrwG@vN| z_@fmlUQFjdXSN+5PXj)}S6Gnxj?B*b>DCt{2+5d9k$NBu0#VEsZlZl}QOhbZ1Owd` z0O?_hEws9B3bc-8gyKeO%U966Vx~^1F|}#J2#pL={!(Yjp{L5M1&k~t-{Bv*PnFR_ z`R6T`Y^HtwF|e1pO)<H$HqHC$3EW;3BfE?UQ3O)i^v^xzr>8?h)Z=oSWOql$ym!$z z^1s@m78XM`we%;C-ls3sWquK#CigKsjsKp^SZyqaeLVJY&1R37e|l(OzrPw<87NI< zqtkjl)b)8Tp#NJj#rL7@*cilUSYUng=N937o0&A0RGK`pJr@*GBujGxQzuGQCH{en z_kk$GtckwuH`Ol5<hOFfd1PXescVHZgXEcJW&3~MHU8{=htKx$><;wa9YHpIn-21I zT`^#EcAx(`7GvUo_*E2E<8w|)5I6{ZGSptno@ssc<ZBY5Te;BuMM1D=PIKT=N~L@5 zzNUls`8nV0dA<2{xR<O0R}c;=^%-6~$;25g3yOYXH~g*R6THo`y~^D6@WEV1!Ltor z1b~6fqzeKv1+3|utaDE7icwEIzvzlLb%QNFek`#mf~ImRqZJp?%6h~P*4?6+%z{0T z3RMoB!~t#%d<6b`|MF5_HF~v%z#A5Lu%LV;>g-wnP#Ce!l}BbkN%6m{kPb|tiUj%$ zHv_*|XMIjx-N8UQ$2bikFwYHwGe1Qcbs02FW0musFDID-iy?+3ntkGj;I+e6dX_lg z%7u$E<7;vr2jwd}Y7De`q&F%W`E-6Sz#^e&rQ@(go~R3M@g1?Jv^iECyx*L&giZAJ z(I6#yF0aY$%R#13;GLZIShry_XrE*7_sYXwd-QVOimWOMY#DI+o>O*WcGmV)AScG> z9-T=9(C8+_Q0#8oDyQ#+oep2BhRWcNY}KPP^;1eE+V)9$HpG$N?s&v5=+M3LxQ%kU zcvBwY{fJ|VC{@w;TgpCYHlWS<*SnQy{IeTMtWQ<sen{<ewVeh92qGAfEfGN3Sr?zl zDXJ#i*ftv%?+J~K85O1Q$j)y*RTke5d%Io#mdiV+`naeHWnYIH!E4)ppWecab_I<0 zs|%Qxe4x~@z<TfmAS1*ux}PUnhevk+oWU%Yeu&4M6?(m}-)0a3hq{sS>}9#tvpK(4 zv?yCI(H6r9l=iCRNswJI{Y>%wJgiz9$}5r{1#ZG?0?+(pJITT<&MZFqDLc;t`ELEH z;8)p=!V9eoC$-k7*f^1rKLuq{;iCaT6D7_v+%Z=DRRVoGk_oL|%4pElEp1mJftA%R z(O!J}ROU&}_TqlU+*baI-HBJtA1NS_#Fu0EpY=f`0|S8=4l}-f^FFJqzT$-NP8d_| zvn*dVU-m&8(?0PyT1vt!CxO$eZx+KI3b}HHj&C0pps|-tFZt~G^0-vP-#$;{{4TTR zaPblyX(v0`FJXSGKI+Bk!I`UI;P~2^Rv%B&6M8CfZ8LalTC3wp#q87^75UH+@8A1q zw=!*q+7~)CTnoD#Gm3JhV7vlnC@0&@_VsyKcbzEg+WM+BBgj?18>XOh6?<~j6Lrn* zTsCa`SJ)AWRj7Cd+v&~2^kwhgE@~+*cRf}4{TCRnZMk(ZrcNY3>o>Q|zDG^gYT$Zm zfWXOeuHbRv`5!FhxJCB7By97Zvga2edZx_6;6ecb4-@qq^tVCnYCR8~@w(A&??tVR z68CAd3AU*2T2Ggva;>I&urs?j-q{_yToe1AKx>p$fdKh?X5p3_Tsh4zz))?iWi7N4 zI5KZ4GoQ}TFFiKb@YfS9qZo9_r5k{OrX=-?0RRzvz?|VvIwf|QLpy)slw0g4+kTh% zSl^TZP{P*!4jh}7Zg0NucF|M8K$^hVx2V9z?;R?UNf6;^A=aGX>^Q5)L;v#+X~ckb z1AVUkZeip8zq2r0V%e3Qsj`}wot|kLy>YEioF0eftp$#2wJovAXbB9PcBa6wUSe9H zJaGXwlqP~EAsr3=;XWN24X5z^+*wn8aW-+7Q0DpN7T<q1r5&Wmv9hsY3-1+vL#CTv z`?VaQ#U@V+RYnMFmYC>0vf5g6xtMbnf+=2lDO-cq?i=Q)NJa$XzP)x@i2r?S+e1^E zd54yfl<v=ge~?qMIX7}mjjsyjrSL(*&W}rlxn~df-TdT<5s=|#WxFpv2OA$F6YB!n z8JXfeW5dfE)G4+QyOv6=ZVYCN!|C-~%RQCz-uaVbuhYuPu<xUZ^Sn}Pls~k)sbC6B zJ9Fs<Lvi`9{=Ug<-}UM^biIzIN==%UhaRQwx2>sKhR*Ufhm07IJ0IH}VJn*!N~M0O zpZ<y2^eFxOEFd_fd1zlY>fXz3MPyv7*I`Us%aJj8bvplaCM@7w@ND!hjpxd3KDo^+ zjnr#rkGkF)T$j~)6Vr)T%=%EX7kJh~TBP^Q3>7>Ckwq9Cl>tz#pn$+-+p+D9jhLa} zV>^S=w;;UZDrP9;w)kgw0`;Mq-#=OHcM^V;QLpqIY59->RaIQZV!?fB%TKM<k~O+D znV2%exfwFRNg_TTCEc7su9oe`hrOFQv27!lJsM%bfBAbHDc4Dbt*R?`IQ5e7sXU;R z<(|Kb)B81ZYK4#WyAWAD5dbl0M33PhI-~dzLa18$SIvvI;Agu7_J(lk#zuCTVg^M~ z!1Y1W#p$#-oKZ#<W6F@m>v$vV)|aHDnlw#5z6~0NIG+mh+Ss%&G5#sP^C5rlG&FuC zQmgyF^yT-FODIhjLiZ$+)6A2LKSd?KA40=0G!8mHNPW?km-3ZOavQcaj1cOH*pZJz zB&}i!Zw2+FAU8wQ)-e5aTpB=E)hJ&{j~`>D`;lHFS9PwU6ShEX5O~n1XVALin?j`F zTVw81%jDc#*_*OxP=(-b+fK>EWD&=$A{(=jo6_jXL9xS(UYn&7y#fdFU}WX-^f@_T z{)pFppW6STDP;9SE_OKOf{#4P>PvcWWJ!tjicMzNN<fdF%4%xILH_x!PT2aww{6Q; zzv(NF>*g)&%qorvxt5_lIRa-Z=gkybzD(_oXZtN>Q38e!^!irhYM=Ewg^l3xq5)y6 znR(}LC?^ZYE|ty1hdVIA@y!6Yl~aRgN1hoFX92|K;89syaqUh}!Buu-PDIIA;z#!I zkCcnFuviNT@%VB<-Z0t-CHcgmVvIYKnZz*;pL3_YYTsy;eBxdL*Z)`uQ+x5=kh~qZ zp++cnTd2)THB|*DvKeQ=-;bM*Hw~Mt54p;?Z?xu>UyFzg>C>6Nt9DjxC3A$lP1)oG zV)axMc(A@TsM9%){-6M_U%^EVOk%>`gzSjB++c=G&<a?*+K9#alf}}>XZT?QExsn+ z2c+I!zAx0C#Aknxfv6;P7fD;pNzKjWAF*zty4uoc%5V8yb->&USLpsf5xO`%i9G|E zy96t|T{MkZE{K=zBNTGv?hv_&oWzFYC<i&lEr8f^Cpg|wHP%9p<q83A;bc8>NCySK zdDM-!HWrZlQC4j?gr4U%v%=FwfA?v3j=5*9;R4k4$Si;OGN8l5d)-9GKrlb6HF{dZ z!|a2CA9dk(e#D~a;g8z*Cq8UgP#gwDO}QI78*s9fU$pJ{Bj9r1x3nhOx`L>SOiB?L z_9~xsywH?_Y}l0L+41?Kmvc{YVW#WNFE%hH9V>z-3!Yx*;q^NqJL~@*&)G}!%ed@Y zH<fdZ9Q~?1|F`3C%FWZ^S8P*;)E6J8o>U$aG3z({$9rHtrM;(>=hKw4Nu8Z+rBzze zy1TYX-LQ?g!LYPDJP?dHT?pJFo$j;`Htd^93uCHnMcm&Cp2eZasT;Pk8|$xl#x$a( zm*lX}q*{*j6nFyVb+SnHcKd)h%fIRl+qa7p1rF-&G!JzL%Z2pfFWZa8{cse;2xoGB zcN=N`U?O)hg4#nqk*0P_43R@huDBUBZQ6m~i9x)V(uN-;Ae(%`RMnCj{BNxdavLk% ziX1epGB1L}Q%i@AH_kY>T}m_^mduBpH-cY^^j?!H3tmh;B(80j3=NW%ZQZf8@t`Er z*zh3rpswA^_Rc<EUhT^^?6rULT`Vinv5?jmh`87{HQdP*1V%DtiwVd4k8gz)Gsa7! z7)|wk(vaDv&t2Gz?FKYF<nspb;<Od<Fp9F8`w;g4f{8gxZ;1!5;US0XPt(j^8bC6k zwjW-g?Boq8FATpi^pNlL*^_4_rfS}@G%ejh6Um;Ym*{=mGG3n%ha7vCdcvyDi@b(3 zgdp`gH2q_ISK)KE`xS{f<?8(>jTzQrj=T?O<7aX3xytcP8Vi&T6Y~^dco?@5Mz&1) zxp0siv$uP)MdCl)+)W$G#SMQUAQ_*i+Sp1V`hTuVg`Mc+A8VZhtxkU^e_i75IB^d< zp$`jjc7!$fj&lZq``r`y)L*T6u5_R}F8M%0sYcvky+f412|>T7-!}+c+4ibmR^|H% zg}?w@!|?$9mGi&HXLD;|rvd+dy2-b?5qQ!1{-g#{neV`(byv=GZ0b-10>+SbFEPX* z@4Zl|@mWu_m7ASEe~3nq6bQ7eC<Fx!SH07bbjN7DE>U<w410O{TkxHC?o@W!S;E?8 zk-!p)){;5Im?IwEvZS1Oee9w5$t96x@-5`D!47r8LYQbFW8;)$jqMGNsIi5Ak`DQT zqN=jMS(mf5Xn_7n&E762p~3W~o&c$!Mx+2yclH`C;OU57@1X^SO^X+p`^9C9k76=z z%<)0U2y;zL=-9VhQ@Nmx{ieAWeM1ExrTE(X8(&vsayr@CH5_6fpm8g@|5AbK7a54S zv|-b9(`=+O7X&1sq^3m+3JoFCTwPT5z9&U_TPX*eERvW^<BJg33yUZu{~99JQIrq_ z?MXo^4@rQoW3`2e7qJnoz4B=WOg5kS58^rQ3mK2RZnJFjNA{bj{l(a~?P{xM5gNd6 zHL@m)%pdPc?6tdXRpgggY=ZsghXZfm|M2*fkHbehs^F*QBOhS=?A?&Ag@Nfq*^sk< z&?Wo1J^QnHla8I-p?&p7*n6)v7T%9}<_CO#o7r*ZHxV}S^xm<|^5fIcV_NZewc2)m z*u!pJ?>lc7*M&q`%PA_KWj5f>2PYPt$X2s+WAg{s0$SG+HJ|MJQ<q=>V~>MwUws$F zyU@@fuU0CSa=No)_sX~QZY)7cFJ{B{GWp2+OshA6x29z1(>O%9zH4&n?^NHGy7a_m zZu@WLr@j-D&#X}%`C_^S58M@51gt|A!m=)}+^fw*C$4R}v_3=O<v=__hKx2)>NkE; z4~5!ZxW|$$9DfV%8f}D}!3|x5_&P}5gb^gQnwY#3J_rcbk#FZWcOS=a=<BM)AhOT~ zl4DZ)4|$y{GM!IRi}h!LO>LCI@TfDPboap!oDo>N&K2#>)&#Kw`*-})wjac$&nu&= zxdeX?w|4#8NlA~(2aE5u%+0knsOL|b1h9mo-kOVU-PK@Z&G-*`=+M(dnq8HQH!H7t z&9ja5rNft4-_fw%WX|*}h&SSrbBrVL3|xrf<1$lVq)pElXD>^SndWhZI`a<;A(wtS z4A7TMe=76Kue0gpKv^vVqTM{V->ldlrFflBJ`JOiyiSSb@RkOJV?HVFNP5So4^*Fx z!1Mj~Jcm2H{3pIH#Dnn92OxT%3GU;Gt)gQF#DEwv2}h3`z=#5Lg-UfRsZYx846449 z61HcOFdw`Yqr53FEZFd<*}`k}<g}%tDR_l?H_5L{=*{_p$=Q#JAxcS~Ge+Eh^9wL2 zEh$RpMblfOprYHaZI6m*Myi+{7XDx-B;_SsFfrp{`v6P~I;8BGaX2t?QhXPl&)t^& zAxs#7f6g>KnYQ1*BX})5%H=v*RR&rn)~}eA#M2A63UUZsp4}iwN$j;{03Te!Op4#v zck(Q#yAt;KcA`?Ikzk;&T!8dP=V5{vE36(!)POyS3$VIcQEMi7b5i`w2EZpzfG|PA zFEJvLL}2qJWxZ9qTNdXjt#va=g>1C@w|bUa17-(k>Z{4^%+PUtF2W2TAu-`ZdnKjv z`9>px)YY&OBsdHqGGr_>XV$^pE3#UOXnGBr`0OzQ5rI=S>@{ygj~s<|lyGz}@rzfM z=LYP#Kr=a8yxcY#xnfY+X@R&&7AOdPf4tAxLtY3&{}C=M2KpZbNs6cS!@3Kdrk~7i zTHiJUq@=3Q(O6eH(qk7U160$<w9MMo>o?*&Zj3k$(y)XkUy+qwlUbfAc{pT#Kj?Z4 z$CL>1B7>%q<PWNTEUEnWaqEaU?dchADbv6`-t*Z((FXoDs^ipAazjH=WuKp}*o=!$ z!Cu1IoMpM%Nqys45@n;d3hQ$dyUh5+eRZ&|r^C`qW%6BHj1@|rj)wtg!I^8@^9(_r z^Vrr@R|uIKvJa*GzNWtQe5skszi_^w+)f>NMV;t4RS(rVZ*AiV$iA%B6F=<Q|Dr=0 zte*099s8to%)^c1>~%EV^6HFRd~dHW9QEanhe-e|H*INm_eb&h-|Lj19GS516OV>X zWqpFN0F^%PGg&m{WN-NG5BkMPE(Dej>Ajms`u%&icm7YXGLQ5dlA#_4dr#D>urDv; z4BK)mJt)Vw`_>+&M8u5T06P8XsY2)bdWso<v`&n4fr;{pG5uLQIRIUu2@3#ud$y!4 z$#2B>Fyb%+0+1Dy9w%2rU=QjNybv0Ar*_qQXN$yMuiv@ntJ}%@P3G^sa<qvI#K=+2 zfW6hTy0Aneviy?^iJh=w7;ca~?2qZo*|vvl4`UI5PObj=$|rfmpMD$k_D|M>Sr8s$ z@8DP;6x~e3(2s07)24SB>bcl{t-7?*Iu3)f{?FM`)5rD?fsX%y5|e5?G%UdaiIYo+ zCS}p-cPnM?DD|1865>BOp_+!oabC>VZ_qJB_s6*2yhvwVt_cM34&lrhYdLW4&QlRJ zTrO5id?N3Mml|a<yK0bqEBv}34V;|oM{;Y!j`RF}yYk%G^%}QB;%H3AZ`^)5pkLP` z5riC@J^e=Q@e-5{bwaN4KH-fvV|Tz;Q#N-tn%t=E;|VK1ZsHK8a{pcqYk|`AVbsGi zhb$gl77_8~s)F%5jREMLyXb|x^Y@C4%O(sEUm<y)RF&$sJHz|cd}hun1Fta%Kk}yD z4Lxn48KG-fKKA;Q)8~Dc?|}>7jVGhk{KT+4OD_RhgUx^h^SB0M+_`wH07;v5CjFMb zxm3V4n!;au+?zWqTgdksW|r}L{Zq!Ko$|?XMk#UE_lP?*r}vu&z!-fIx^4UuW_~@P zvD}%aZ$b08=!DS*1&@gRZhD6WLq}@vm@+f|wK^;5!Q~p62dsVKb>gJK(=ky&@Lt=e z$)KKtWOYj~**@#8cym|wE0cHLUBQsx%gj;}W#o`FzqfcUg7bFjXXNc7h}u^5Xt#v8 z%t7fKdA@wln3i)%py3pprR%%2)x(*x!>2=ICdG?PWs1XY%NiEf`}@^WjBL}4>@@52 z|3^)G<kM8R3{$Wf*sS!c+aivSHm-@oW{+k0R&2y(1Y9O!lIa+XRX!?#4E(N!1N9-r zfNbkKgq6_z0F8oyrd}n(_cqMbQnTcS;zBxRj~ihM#3}E&fB?JwYv<BC)&ZoyEi<(v zPv&YN7h*gikG($m+PU^KU+JG$_L+0{xm@C+3{Entm#FxpC;(zut{$K<dxkDu&Z%xj zMW~CH7?7!KAbP#5WaopW@bh&Y_3a$5S!JlQU8Uobr-n549{t`&SI4W#@7%Jr4??(c z*MI&bwydK0JzTYYar@HJ?xnHmz|HMH%yxn7>k@B!6&bTd-95pt%s(~kL`JaTY1TUz zeO{e8grs5KIn_z};o3m8Cl(_~d8%Ngd_ZdnpHXFS?YkjqoQigxL1J1orsz>dRGrp) zIAOY$Vd;<KYlwj^O1d_!lx!vQ1Vtx`@om2hN&%SBUF^=jgFZ-%3zc29+npZWO1z!c z7+?FQRTfk~fLP*75BT<N7UBIsyI+q0fGAFh6Uth0V0Inn0c&Gd#Jx_0C-NM>yjICK zanLXwFZ_)yY`H6Na*8_h*Zfmc?<`#>&Y#7aFzx{ynJC+Lg=U8TcgE?v?t-^K4>BE@ zYx>**p$T&qf`~Ht+;+*J$wxCS^=RgpG~HxrO$QZHRy9FsSy#^DBT&amlO?<G65+6Z zM0^<vPG-vi5jnTB#>PxPO+e>Irp;1BwON5-eso?vL5JPcy^i<rL;T<0Ap<kmYyiF< zC`sLG6?x0uKa?*-39mMitShQaprUS$kgl>yh&sll0p_>cxl0v507!(l(4t1s13AAF zt+1oKu(L2DlRfm~tU^d^b;1%8fc1@I*rAVxHllk__-|?c`9w=aqtlsLA|va}LMiLs z&#D%_h^|uun3qT5P6P^e-Zh?(^JB&x(a8ge{o}Tn(N(RUJGqZV@7a`D7$!g+#I<-T z>R$bAC>>L_m4gQT322UKvyjmzW-D%iu!g{~BjMU-4lY?+cjTeER`OuIM!NZK=SIT{ zvCJH?TBi&^&q4eH_j-79t=dtt$I&-p-b&$C$})`CO8&tdA~nW04bT*Pis;rD9F8BU zGRjIGMxufgt2=C39m$UBo>Yd<&qd!IfNPx|Y^w#i{{1s=eKZs%r*?G1nSWwNdo)w( z0zJUsaY_^f*2nc9!AM1n9>7EAta0^Yvt315I#5x!?r#cvf;2<4QJ)#agL$FG*lyVA z^K<9R8M-$BmzJ{iT#RAYV-dj8LZD(i$XPx)1ve5~Qm!DqqIZLyDaJQ)2%JuRCX7YQ zy(1_?HLaF?mMZmygo8|9wuM$oyHwhT90V-&J+?G#x&$ni@Q$E*91WsZW4mJZ5kmcn zk%-ZbA59;o124=oknZ3=qQ@IxPO0${^3b|_Npt%q=ZP0`V@jUgxNn$3>zYb#)vO=z z=g0F(4BYF6j0F14m)ZHv#o2lPHBtMOn~DDeB<QZpqer{ckMLdlp#X9cOcHa!Ac<O9 z7t;OPDqutkLW*zXdN06tq&ojDr*YwJ!Gm%oExNkmA$Gw@*pUwGZcx_*O`Vu|#zUh$ z%uJ1e_{AG5^6gIek9bmq1}-I)eX6f3fQ~&AojW9f1im>)sda*7?#mGozaZUzBT_oW z@Mbr1z!XYlrdpl<gzO@!i4LkZWO#U~!m8txn<3zwCgFs7Rl*Z^OhmH9{wmrDnGgJ@ zuQDMh!5I=b92Gtdk{^Ax`V^7Mhw@0Y*1rVGud5w@X<<lk#z%{#JzH>AE37HaaIAZm zve^2l=B8-|b$dL1sM#t4-=xj5;yC$f@N#X<v#&0P9JCO;`&H82MDU>AO6D3%2YqHv zfJa=ln2^!>;i?-s57L<L(cL+TH6MLPm=0O33rT{hYGD^`T9AB6Zp%R;h{n0({r2Oz z{j=WTVe{CF^c+Zed}_AjuZ?l<SFipKJRTVCRPx4;ZLY6lGFws7*O1mqD}nKNGd;iG zMlW4u=6uctXRCt`5E?M!!OqF$&cnqmb=lw*ZnKF;pG6#Vz>f{%SJWG;cNepnJH`S6 zp4Nd?fUZK4`EhGHme<c70^HkXD>w7b8A>l^M8G1;qseYJr3V^dnT*4JE~~vQgHdy9 zN5{(Ct@3X(BUtTiu#)aA<xyfpM7QZ}%M`XOR-j3*P~q>8mj0;oR+Vi#8?zd`tFvbf zu`l=B`R~6i=m1&keqCHdCoXa99wPof)Ood@%HSj@N~OU3x>gfc=@{^C)h%b!zURP1 zXsr{M7_Fmf&D!fNNK2;6m~^7s8g?FdKaBiTR@e*|w}3@K#Zt3<o4kx#K3o^kj+bUz zxf(Q#Y`WPuBr-D70v{K?Je-7B@=E&%m-L6<tv<izo_O-A4PCj-1F7$YJg%%;d9l6G zv=y_TO2$@8V?X}3zxhx{FI^8y11sf38{Yyap9={R1U_#HrTycZ^6&E11aM(e#MT2k z$;I^2M->$pHR<4wE7jOmcd_$<#|G`kEx))e#}h|}LO{bBLV2GAu(_6-=D!k7$knJt zSPl-x-<0r{yH6@$&p+%k8<#VZH)XgcZ!CN)>Q$MlpQkIu()3y+tENZXWSU>sxWG}} zR$m*<yl!lJvJvqPl5%N@11+G#Ty4|KjZ+2~a9yh{Z}a)<`QzhU;rzevU=Cxk%ZDj7 z=1m_cv3jPxO$HB3&G>lb<B~LR4@9z6)C6hDn8h_hu!>B{??l0))UGad@3ywbbKn6O z6I6IbI)lpqSN#7Dib|^Wn}~QL)GaNU!rS9(eoY*u>1lmfkgQTY2x3eWk`!ZhArM@H z)V)TI$`gllZ$Me|otJoY92nEGBdtD<kHr=aN~Wsl=?fjU<~O+DhV*Vg>lxYmtc_gs z8R0G^r9)&ZuY>a323In(>5`oIS&@<f#%ljM`s0xJ#Pw4yhQX<JD>IHZTUj2NIpi1? zE*$@zo%%`D&spE^CV#qnHGc__Hl3zVy`Yp=@GSMA&iQtRVipfjo(BPROpgfEM-i0; zTw$)%=|E@tiNjU<lS=z@N|+kuWul;xB0Q@hEr~T>6oe&>=H=`W=MNX?IcIHCJ>*G0 zh6kEI9(L?jj7@E!yD#APU@5W0gWn<DeZ|GHXZ|%@2t1FRmI#G*&K(2S+cshhie*k` zmibpXmtoRDyd!3b5i5M6fQfei-YCV*V}9~%j8uDXx31jHC4+wC2F*T}C;kLiHjJxs z0_h1E4-MD3bg!P04in8@c1@ZaPA?oRoHZOFO)FR#mX?P*BeIh<{-;5@$}>f%z`z9% z#xb{BmRge#161U)l4yo5;V@&QxMq(wU?~Jf#`KBv$UsFS-ae|p!ZaQaYPc|c*qNm% zAloc1R?Bcvm0vXDKq9x<%_gLX`&WXJ>2e%FuO@gbz~9*Zgg-oT-!e|{y#iCrMj3W? zR<_r)>F;B5DDCy*2mM9@+Mia;>Wp*EB)yRp|LR;~*W;{$xgYZK;NR(F$DkIP49-&n zj1iBKbr3%CFNWUj=W<M~F|Rzd$h_y!v(|AQcB-7;N|k!``${oUIgEr~`Zh``(=jRM z&#_lm?C|$^MgD!VG<x_B68aBiXJ_st@zn{Ia<0a#1ttB!^?!S|sP(yt_n8TsLH*Ex z`1fZ%)PKG9_g?wQ1%#Gn7$T1&5MNwY3tKF%pB8P$l*FB9dLRYKBHJD&e6mkt2Ygsk z7N06(ueT|K=ge>czOLs|J%1ZhNd`R{#1E9szJ{1&-;9(+`4t-%alHS4R%zy@5Ra3? z0g^V))xD4vs|WVE$p*Z!64C!Z@9tK-Sky=o*rM8|Y$*LvB~AGq2qIK#t0<5j_k9G^ zI%N57v}O_Gc=GF}QXn@IQ|SvKrEBTtmAra`k#`L;+*Y<*v$j5~MRRm%;GQmH9#uXW zL$O)QrE;b^6yUk78Q4Bd|6UJrKK>nIA$TIF?3(A;?&!1Zjmr~_AIn`Ew!5pch1tuq zT;OxTVa1qbWNS9_+(?hExTY97;NFPURG^i|%bHY7iryYZqC&qmTon+78oXy=gp%|O z$3Fe^>D}B6TDkw6&M*VXckFRBU(T+p@03|Kw0GoehWl(Xkv1*2FW5mPtwphTfn|zH z-TWl(L7{ET#QCjqcYk=`$j>@2ixsy|z={umcnP_B#-224_v)-)9jtCeIwBUDQpa%p z%momB7CEmQt1pg;`OXf^xK&hcV;{0$`Tg0eU$GtY(^PohP}U@il4&ftS=dKLUdzdI zEWFO-bbFoooQ$uXGyVKC6RR^e_1q;X(1vNaGaz751-Nn><4sHc%pfO_aX*dktWftD zi>;wU@k+ln`C0lQA5!1*;Oe#~*%SQj|M6&f_W?YxWsQtM^D#*amx~5MgdHI5JC!i9 zN?NDkd~GxRa6|X4=p0io_CYh^jl`F`Xhus_!;+V<65R*MV6lji5VahQJldv8qS*hX zRd0`n1N*awLgoIzqtZGx(8<m!;&0Q9hT+>89|g~KK7I`Q(X?<4pcC!s^JpU1wh}nI z<BOo0P2t5N{EWYX#E`azb_%ewGY+gV3)EP2vBhq~ykbdSz)?s;<Er0P%<$GN;fvy_ zfo$w3XZ?`MFqT8mSWR}4p4H9c*6TMS@ZL8{+I&Zx?az%eLr?Eki)qqbPmm_Bo_0K& z{tWp?Cix19IY!#0dtiGp=6Zebm718iayZwF#qi{j=$g))n%_ds30{p?T0g-l+7qJK z1Xr`CdGN1utAA5JH)`9N*HsYGUY=x$F@IWjTX-0@qMKElcCQw3m`7DUe|r9ol7}Yl zSE3Ij%BQ`x)vYgWeM#2El;;}Z5_y2pzG*y3`+ILZ=`cR}ngs3=_*)X$1Enr=ow;G= zZ<g#4mS!6?2VBWOyC;+z)csEkp^@42t`C@<X_GdE)+wx-c~H{ZXOe?K`F^=x%9d3G zwznhl!i!GT35cvE;4mRP9%R5EBZVH%9MQ#ICaP-EnF6ESzLsyd=a5sK@;GSopL~hF zKZd5(pPZgnK2_VDiO)<ksgcIUR3#hPnZ6_n5<Bu$u8@9Q`c*E#&Cb1O%BK=P?SRX8 zG}>T}R55l?DS8$V+LCMP5SOh4<sOWE7A^5e-!HwZurgF32Z?eaPO?dn*+KLGEtaa$ z(zo0^(x#Qk4+~;p1vbKkql@ab&EAJ#zuxCeHQjwu<b|$HVrEijyyp$JxzBt@o^`*1 zkLNWME)8oSpW=(gfBZf;o)9>jCH{Q-J+n2E100{^*zzD&65x~Pn<~r(tf=*U`S*HX z)VWH2`^%+w9XZ|2y~5inZOC%CyUd!s1|RRr9ns6`LD{lJ(ZaNzeNp;J#KpizZLe<i zJ!X@~!1yuQ&ZnoasQ;Oq`Z9U8U>Mr9n>sRutYuVM#R!(}mD41OURg4~M4L%>u^37t zx0Ng8lFf*mtkt@XaTsCYDC_bo?`>jyKuVJI@lIT{xiLa{R{BuY0Evc;>3V}j%?(`Y zM#O87Hz|5C#mOWnSX)!oZ*jicN_AIpo6a!=z*e)jnfb*1I>b)F9$4(e=u|gd8>Ggs zD1dL6O5g~U^Q^{;<ckTU2Z#7K6dgT>*J!h(R!t-MLH#SqJG^lQ#}!T6A0|33mTBnH z?l^ih*Fz_y$Rm`*^nlTv(^>n;4UtAz-bhQ!eQY)V)bg`MS+WhSY?N5`?pYONu?+3A zn6w7``ru_YCkBX&!1x4bfK7*ssG?H&XR;Lv%Dz+kj}0GH>LzTY4r>}JIN&~lZ)a=! z@@R)`5YKONQP$VP2+N%FTsq9Lb+}ACcYab&iGaVjENV74LJo!dzItCV6rtv;T|U9b z5^tt2)LAd2Qv<Ox1U~GZ#BxYwns7iZ5&t9Yw#fYe9-xcvf}8=uDs$*PJjN&7oLP@% z3e2Xjme%KzzDzi7&1`T%%l%1nykU@~p^{2S!c^-CL?f)yhpOi;_-+f;gKC#+Ud+Ao zvA)8V0l`%F!d!vGoXBQ)X%9nVYu4bl<RwX@!_uFn1Ax*e3!0&?>F<o9K#-+X$ZO<P zS~QN?glvju`swTlnvPy^R5omHxtp+ZV+Q#o!{nV9cpId6+n<uF<o(K48!w)kT^P(K zC#<G()%i(}!P%7h<5AaEqBsxAoLAiW5Mbde&j6%bVOo=8iHkANb*$IYjL-DiFtj(Y z1C_nq@ZtG3*k$i!q}tMU+-vb!q(A%7947ei?EL1#e%H!_SL%K@NS8rQxQjZa&I$vt ze(P=Re27ikTIOds1%6a?MxMX<a3{iaTNmw<jle1qMr<SbBqha&&$*H)>tT_d$jeJ< zd=59r2V6NwJ)l9JXG$E|)O~Nz;}>es@BfkKw6LeA=aYdFG&#%an(bH+Uroh?od>pH zv^RH+9%>LHl<(YYZfAImrjw|BEp{{CSyRAS^6eT*><2wqSAcIoH{;DfEK*$R2zI|S z-Zw?Zn%3^a^`Ea3YLL@p)wHThOMl1*U|)~h6ZekoYz^V9!GG@#sBC+fm2O$P?<tYU zCP{1q!?4eHh#}mCup*oLd1mYd|CC2TyDtQ(*<0VQKF0FiRwQ&nAQ(Ldm4|GK9gVb+ z?T*cFcf*P!uhF#Lq{Qd1<(=6J1|)f0+BvTzMysrCG{Cr)zMy3*<_v)T{_RO_7m&)s zw~ERRuUoq3ziVEW&PsMOq)l+9?K4EpDZ<Y3vg78z&4v2jw!H5l@56BEF_)M`JK(`~ z-m<PJa@}srDAh7l=jP`EH%{E76S`VAsXJ+I6S;R&^SJ|V?LiZ59H6?EQt0!NL#aMG z)tk}KdWLKpom6#831V!*Ww1ES-FkHeeEC1`oE@_h=#_y4M!0>hm_YIsada9eMSo|H z9+9hc0<G+*<bz|aGpQN{(b=qTM{aDp_?25|HMx|$G&Uu2LCYeYwePx*+>+A8Tw;v( zP2j7ss>HgDnZ9&${`@?%u9{}^`?GR@Mit!jI7*?&WKur;@_L`8$TlNv-8Mc;{g5>n z{D*}c3Nr5Me85NBh4E|0jU?3mwS>otwgByKwOx<06FNg|Vac+s^>Rr$gpVj0=U2lj zCY(giuYND=&^PaN+WwSN@rfv&3vsKc+BeddAHrJfkmCNNC(3rzQcjZD0T&Aqb-%`~ z{*H!|*;`^9qws%p8{cqPu$=mPjaV+5aX+qLjEes*2PO>vqx$sgeEaSn`&CLP6|X&S zsDLVAKr9Vs{k=s``spfOczbRAk>YdeO=|G|x4TAm=k%|yB^u00lHzoTgJZ-5-V?mt z>U%{cp9Cm#LGaR`muyjmZa67h9&aWOiBH4H()wR*usE}jaSslc+OS9yL@YU5DqLG{ z|1a_QRHO>i7R`tj`h1#LMM;{kaT#Eib6Z(K^}U7}X|%+C&9^<BoN6scLUYqII|#8p zq}lp+GQbga!L58GU6^E#p@R#-tw}`61+LaBZm>Y>(S3|rladxyxJpq<<D$C%hpDfO zi@I&Xl}=#^VUcbSWS5YT?hZi(q&uXMjs;n|LqJlbL<uSBkS;+$+67rkL|D3a_x#^; z&htL+e%vqn+k5W&nwe{^nOO}uwpA12CD38hk=bX`=NT&x-A-6N$f;$yy(`}KdLK&l zpxG%QURzDOC2gx9Pk}JLdM{xYDwpEv?fTkY&z-+Tj4<}dl+dINy9HSb*>5Bo7XXML zYU|PZK`GWx$CuL^IkFc+p4XZ3-ZdnQ-#96ePckZ*M(8hbMfEft!6h%e_Y2G5lCs7o z&4!e$E~r4362f|B{^^6%6iody#!RB_bXW5DeX5a+7e+}7IjEZeQ_r<i2N)|Ezgxtm zz-JBNy-><TCF_E5`+SZ<hEOv{c*c=W2v*yv_y+KLiG9Cp$T&xj2C4c-=w}gOkgptE z;tV^F**`s>%PZ){usR|TXG5HQ3ZXcPxSafeuEg4e<LQX^eGz{06k6Y@1B)|v_?Y3l z|EApqdt94}baup1?Jr2Sw5rub3OY9xWhNK9?X#&zuKb_tI1Of<xNDf;mL72(D}0pr z<0>_e$3Dub@Xq;-fu+t?jp<bZEwo>fh`}cfNHoSBv^n8`Bc2yqEg8wl+91nSlr3sM zG_&mzmpLYSz;k!w6}e7P@XwXAK4?*D)W$JErGxdePhplHpKCs<bc{&9XTSfnrj-21 z6nBX6K}9V(#gm0GHy~lsOwi7PVDurY)R%@<pOcob@qo}n^nRO#_+uMMe6Tgorjg** zV~qkmA1&`^{7sK<NH|5kAK-GLauQocTN2;CtY-Pl%+v7YS=1RP>JJJQwLA;I3tHi6 ze)1&{3xTiK7aF5!{3>c*q%*~d+FHlkHmpjTq*6$&2@kaCj0kcY%`c_mF^mX`yf_uj z(UZsW-q6GBl1ia66eRIInuHBUwlCMlf1YwD87qbcK|$g#ywE3(mWMP;Kc9J{y-4vk z;g`7C8RIvtO#OxpPon}!k-|PE9~W50Dk1sp>#=YAYF@ngH^uW#p&sE(HT^j3*ZjhG zyo$vnA>(39C!*fMHnDzGT(#uq#qoazA`}RG24*GnI)}>bq-)zSjlD6Tw3pnHWU-^8 znReI*8uS}j!2I5|BAdO@!Lm<3@vDyByhojAikHXX0Mx({0oM~sXI<SwZ1Z01n#b11 zh9U+aF=0{zUt<QlABn!W<+}p-U3RjK&KAl~HRc0B8$aNijg|@A)I3R3Ai{x{YsZL= zivwoChk3q}Hy?EbD49$@O88rOU$xw(0@Cg}%ze|9m=g|PjUhWOWs&!xj7flS?9C7_ z*N$|DW;2M_$(r~{?b=FS`+Y9$g4aiU%IWW0Fo&qN&IMUibJYvglzp0}n|@BzeWsv` zi8t7n;=T-}Kvz6qHfaCvzj0BV+84K><S(<Eqa!7q-V$_9CGNg&VeA)Vu&hnYis9Y- zZHaDiEWYSz39u}VA<Np+(<A0($K1!)YkM}XitQcX_T+j#aw%eMo0$n3Q9G&a@I7zC zt_*Cg@#Iu~eL}`r;JdsTn5DqA#eA4+6Zupd8Q)ou$)soaAZO!HB>-zYA%lYX)-V9- z3YLE<#*LqLYzA5zCUvo{kAA$Q8^#^gqyQSJ>t%UFp^f%9yv1h#YXZ4GX3;i5dcQxC zR92D$#4-XUmd&(Gt4utZQoVws4ncB-^rC_43Ax?}!WulvMfT6SXg40`o|qO*1+GQK zaf5ie;qVQ9&8$y_=(?l9lw@UWX6Id=q*+lzKt*8%bQYO#4)ZfuH!n*cbwM8|cyj8g zT0iL~prXki*wIK@Xjno>U`HrxpPpTF4%3e{e^n;Bu*4Qf+$O?~WLv`jCU~MLX4IG_ z$%Zp?p_!`1exC<iuAYMn4CZ<FUVFQ09oGbJ%sM^`I9L1gj7v`uDSV}JpM`Y_)(ZRe zO;Y`XBG69o0?0cfw{9@SRVO_q9oV_&HLs7rb}Qtf%{zu|t*@qf>eOT3oMk~L-5oD& zhxGq?)7;cp8jDxiazwLVHH}|CuPr|^lna?VO~%?EFRkVH`44^N<R|YX->6fb?2Dki zG44^_-+fy9Hr}^ry|?+uqJd;9Y>Ou8IaQZHkIQ)w_GVzvs<Qeeqq<QWDIqTTAnnNG zOQu*;jpuI%HU{Xp6QA~r<pBs3<hl04Z%y70EuV#23{;%_FEWZvsuD^@8Pvr302@c_ zn>WkI2k7h)>)m;@pJ%?$0*FX~im>S%89MgqOC{>#Y}@MRdp=SX^_%J1T54J8g7-&v zx;lXwG7fa#l6-Rt%!_PI-z3s$z0CxMnW%O5asX9Z!3}#sYaPqmn(>R<*wyQC^BtK# zetP=P>slOZnIFPBUvzf?@|cg$^z^Jp(*kOC+s#Mbkl`IY)fwr{7{9K+pZ0pxKH{=E zOJjpE{E&zevvfnT=CgOVE@XDAuIKu_L?;V#gmb?tjn5?ck;-cm219Yhk5V-%NsQfH zc-jRi<i{R<r~Yelspm<_^i(3=B93tnO+(PL*oP>qpUd7+$=TdQLtntE#ZMutXi-&E zMwI|Y=q%SHY9k2@a@lWkwY#b<W`rOf*Q0<npo9HH;Z|}I<O5P8NWS9M?^h`afa(o@ z#>*SM-je+(pt-WHQ0DONgKJVe#)rSm3h@9DM7Q^=&8gVfHO2*2j+X$b&XNRlT<oXW z%4*F0`P<k7S@Y{k&TfwP1-hSX?U|2-2)AB5SP;zaOAoM+Q=KOq=b^MWX8p|+ICr@i zJ6_6KYkcr%XD%;&{PTzED7a#EJPuQ8!&5V`DbwSHvBw=N9iDuS#n1kR*S-iFdqno8 zKtl6>cJlb9&;aQuZH!^e<(_aOoZr{Id1bZvt0IRgl<U4epc?@9vkj#K&9PqA)=FT< zC$(?3EZT6%6LEFisCQU`KAY55K*bmWcL14qJQJNl0k_JK=IGd<?e@p{3BOO2UGCd? ztPK%KvyE`b3!0p#p8{I8J;ZdVhekD0Oz8Gyx31A;Gr(d}D}|Uy!(&s(n9aR7-gI!? zY$2w74U2H~F3DXXQr~+M9crs1n?~a(azxAIom9|3K_~S{>eIsKr?1XI>IK;{8*?T? z0RdfE!CY`}AIHAlEhC$)ZdWvBNdSxE$1TbPUa<z0Kh6FZF!HV2qWo|cnX`sXNoBRC zFNbElu8Lq1CYKsc2Nk>Hm=vJJ>aZ~Tf%(@qwUNzgpreAm{A>Mu%3kErG-Wk2rVA?b z7pS<Tx8z4xY4?yha8L=vkd5)S=XBP0U8ruT%R%L?zXqcfdw0UFvPT)Vbu>n)!TM~m zIuQ}j#|I-7byp!Zcy;g1X-EdzhBVkrIra=r!4KaI%Nf>$J|IsScAc~3-fT!gO<b*F zY!C8m&s`h(`~m_XL3U2q@sArVNvv1BfmcF?24MSIyj*iF&QIdz2~{tepGvI>@SHm} z=Fra?Z)VbWtO{*bNq`|6WX-|3qttYoR1*pj@c((`{u$*DmcL6;#`WOhF<5J|t@)Ua zcZg5E<t`uDfKM-SK-1U(S1e)3#7pL!NuN&+g(m8)?#Sk}2;0Ozw9Nz}pRv#2K3CFm z_A;OatC}cA6=W4mNJz28z{{Hi&3k;f9lZkk_~J59H~_Cyl}k_4dQL0kTxyS!RcDW~ zs<D5@BrY>u<Jr7aouxc@csNWrQB_Y#A!#z8AXH1a3NM~F-KkZr#du<$J!NdGR776{ z6a(T-HzYXjPFB_Xw&fj&pVKifSijlS5buL2z4Q<d65e`H$!_15?yv{cpF*~I*4C!H zaHNvlg^iqoFGq@jiRe3%dl>z-m2odBsYw&Vm-lDK5LoYx#o|{1-CpNoun(Otvu_6o z=8*ffvP45tgHY2qe%lQP2My+DU9vAPFfGY;Fkto?s&GfJy;}CgrB}!>*^Ak!hG11m zdwAp=Ud}~(PItZUSAj8_mMmV6s_cXMb&?ZHQ{JmD{hXr8q1o(CzYLlGD1KDGI(0yQ z>MmV85@f7Pd%Y<+Oiaxq?&qJ@cNi(p#~QBxND@ESQ)(*?ZYoP0#ksqvj#frZ?i9^E zMmZE(EMx{e)oBq5blB^p51^A14*adp)qq$qlf^%&kqy5_2JcSJpKe|KZA{n|Xc)zF z)o-j~c|v(4drT5qc7LE%sQ*e_m9jX~pxKt6_<t@$c+8-6HaP_I0DtuTdI6*p)mp8< z!EO7HDH&qV#$Jq+{DEf((kPm8BJt|Z+>tF9rgkjYGtUOTf2l>1W?rPr55#5O{va+d zN!CwiNtq&<A7cJY_+50{0{RxG%DVn7lV3mZ>3%GyHwPpeqYln{mdAuEt%oW)KULow zS6y3DzVGuOz1l8g?oEP_zGlkw2zaceoLovzTkHAg7LeZcN)l|<oBNnjT7k6nw4ZLJ zpAT?z*)a-^Ham`8Q4ae+!$uiD%zv%db!>7({u(*%!cP5AU7H73Z$^kVQpfcD?<lkG z9eVMUu1|onrO_D6*<9h?`tBfQGR4XGgjE!@!&IzBh92)3begp}Tb+v{+q%Xx4Vg?Y z&r)dRm?N_Z?cAz;Mh#>>6MYeqS$j<vJ)K>sL7OdWlk2B#!JZ~CzH9;ZED$%nx01DW z8GIrX2y#C(?_43!bq1?;opA2aDDM<uaT336<aK(pG<Gd`T|DQ)JcKvn4kuM1SASK0 zbC%%;I!_3&KuXtY9&wW~U$j#tng~gdoq}xFZat}5{m!%YwtYKf<F|@jeepak;Thr9 zgP@#FW$=PPKyr?p!(OaW8xzuir`YeQjwAXc@$IMMw*qgrl5#Xj{wE)Oo@olSK{1Fn zI(rxmJGr;L*5xmO<GeqL-t0Afpv+WeK&n~vaLCRrv2*IU=!7}Wq?c(&Ov<2|NVqzR zT5`)&n7cTW102`*dY$PK7-|+QwNb`}r`WbEjrue+UJPcrDLud}K+P2>@P~{<NT_0J zsy@Y%u{OIt8~Z$>NkX1j`>62a-OXNwf}}-zpw(29B@q}6z=gLdqGN*mk(K^nM`Tk{ z3a_5u^g-jfkm0W%_8({@DAEmu!|t6CR<djOu#hnhuP&^d7&ZrszsLf_5`-1iQMY{- z@(V@n4KP40?mj{tCz`GyRNUMA9Cf3=N7>WdvU9J|82zq+f9OO5-q5_)hAENPu=#Zo z-r!syp!57wW9H<<;UdvqYxRSzLW>xiZLjH%Vvp0CFPd(0XteRcshJ=`?+IsksCW=t zep?f>9TPJpqdM}}hh#dt=8QhR@)yUGEnzRm{QR#*$;@VR3{OAAlGCTrP$c;#jN0dF zB9?;JC+GBU&A|`{gzQM9&1hf}bRxpOZ*wlskAMCXW%a|bG5Oo!{S(U{OTLZyi-|I4 zgt?hcMojJ1d%z4C3cj4tU|O0o@H}hvHi}$3Ajue&IG1OXGVaAf3p7ypp5h6ifWLS~ z(aE#sCku!gANwf%ThVNMv&pRImU*WU&Mk#%EE*@RBIx5t)l?GuGO}pzmQG~)(GJk9 z+G_ex0DEHd%d#GfUb*!-S!{j=8Y3oU31i@q;}7TRS2gOXC*vlYPi*fiCb&^q`G`y? zqzwmmJ;+J4eX!AFc<1b*#{<2-w)Z!%Bs3A&->S!*f*w$Pab@3pT{ZtV8U9FbY%xo% zd(md=u?;a&tiadZF!_W_PcMxNBF<2`uAwNTPLTwh^y(kK-WJDrJH4;uNu5USGHJkg zReb{?fLU*@R9D9=cKAC@jk|Yp!Ql**T=vweo@c98T3a)Jo3TXvprH|OHNm!O<<-?z zl<{-c%d>ddy4;|7`HVfoNlxCZKYj~qD@zymqC#Nbjx{H_``*92SV-*@tts@H4KXkj zF)HFymO=p{?Hz%T8%va#?~hNv6l4f&;$4}^9lB-rIzqf{jri)})S7&pCnI(SlwhHH z%@p6vG*iQXTFcg#R}gG-TzAWYpiTS~Ckr<@l+BiFw8fEY@aT3(78?fCINL)!4lEB{ zw`6CCX^3UK-Mp*MnK)`#`RP%>>#xg3>25gW+#72*b&}8@HS|N$%-z-?$Sh|&j?Lzl zzIu`TD}s_VV;D=r1A3BUY)IA{YsZ%jDPlMP)oI+&201>pq~IVl$=f-*pfiiX5ll?p zKhf!V6RIS{%RmQ6lAqwh%@d*w+;a&=-;O$k73;rK(a|V)NG^3)|DtYht~2-a%6`a& z<P%-u(#w-UGa_}2H8R7qe)=^zsM68zQ@|71z_@*lQ2;}8%Y6o${nH-ksTyW$SOeX; z84O@anw2#2jB#P0nyg)VFLb>jJb^P-k|ENe>V=-o_q>kjzIIS$`XzR$pXRgvRDUfB zjXAgpFT$SJHae?y*pKH6de$Q(1=vH_1*OVk@02r&W#JmTL~eQozfr#EpEJ@j(}J|; z%+NVU-f_^x#i!=gD_BfvS!}Q$&9-+JMNM>Ia(03aZUR<~pHL6aC#f~qPbD2p@iti= zK!n0V_ft?jPAhCSmP!2gi%sQjPSo|$i%TtN{^pmKmRY!vWKEixzlZ5P!B^>6m;HIv za`+yru`|NrY1%`DI2)<19f`Ukbo9ZmdP%87B9O!#GZ&4h=N9+f*~UwtSz81Hn?FJv zTfzf6!sMkoddP9odd=T@RY;4)W-z@bz7-*%v~(C@W8(5~D|Zg&VU=yWNyN5|<P~|d z1bXAbYk)rFLdPz0VACfipnSywHq7eSrZgnO%a`(;UT#MANWY^?J!Wv0x_;@$vU}?< zH_KewzP|;rTkD*#mwtzBMphS|FN5<2RcSwb{C}T6!B3T(Y2W)oRBI=MtZD7?qQ$Z~ zz>LbE+&|-*X<qyea^${R5bi2r0#ai9K_SBgm;19|qOm*382Wl2x%)AArfh7F7}<5% z>^QxdNkAuFlCL_dEcEy39Edyl3g4Mc9$bDyPw$)@l)6eNbbi2mSPJZ#hQhKWg~7fK z3GT!jCDLqS*0p`6-u8+@pjK*c9a6(PzJ5ZB{CbDIZ%jeU89Tx{=>yLg@?2o2SD;E4 zAItI$S95#D<+IXCthcn(iif;H3q3KDD5T;8;`sRZKpEz}SG0yGXkQy==07w9)7)QP zx~=bNyLsCKmBkjWP~N85j=K_(5P2)%w<{;li?3eal-_?HVyMJ>IYx|wGaw-NTZQj~ zCPgGi>V32RKR%Y08jN*o;Tx<!!^c_OTTo7ZZ^MmAmDnZ{XY21M4oVt{a2pXGzq6IH z?)|x_lV=dqpNhV42-4he&xy=YSS+W_!OfuF7u53{lu;+d+katczIby86Ne#Lw=mEo z{g<Kb149m<6WciKa=w;mzHAAgm-oM-$0Xe-tC{iS|9?Autd%F^ABY#WPGOiJIbq7& zw`8wy>|!oV_?AcO{dGGx>FfKx5t%8zcP7W3C?QG&&Y&S44k<5wgReJ*%g?42VcmN6 zsMaS-U<OrlpPu}iHjRil-45nF5*Db5IVCwbQi+8k#zR7E_J^ARq1P`}2Br~p?@-6k zKNcrs@{un<kg;fJLZ)y3It}~_oMYhL+n=%icmb^ut)!H~$qw`)#x_p`;cbM3+R6Op z(OVhX3_of&6q#s@OOSJVqFseEcD|~(qiH-_zsdTMWSM3?nI4gM5<eNPn}BI%CMz*N z15avZJ7Ax3Iz%ApPwbn7VMujI`1aJ4$4$|!C)$RpYndJY-Vu}c1mEY*EWIw56ANs` zh@cPwHzO31s3@MGsJIwsT=0-U-|#mfEoq_$=4tNF_Ny3H8DA_bYa!a{_qpkTbrf`X z;1M<NgfOssO^JzyTH^8aWQyF4gfYE5b>+_Aq`TYPB4a_%=;#5_5Mp)#CjTicp<e89 z`6z!<o@POzQC^HA>5#QDj_)IpVbbr_h-s_qQ_L`ykv87W<{vw?ujVRIxKM9Y2mZ>% zjiYHuw0OPz!{gDuzlIT4f%ke)#q~4lVSBDD^LCr&m5Yw@Q^Sk_k|>os=E2e5n^vlp zxQHo#UUHQ@9s7t9+WM*ao}4{t<;Z0)TO^{@GR~TdxLo@FH3H<M8$!x(&)`?yBHgF1 z(W^C+<Il@i#QSu)pNtN@e$*m1W;!~+8bhH{QPG<-(f(vAu(*L|Z||_*d0?LYb)E!j z>?F+<%jSD8qhKd4SA0a4+BjX!0n_v(4>1TGMt+3P>Fm&lw_Ef;^gR9Kka_s_YA=aW zF>hv=-Me-vry*N7No|g5Pc~|{GO?R8yx7_1leM-mEG6E7kRp_=Tcsp0s7)5T3T%Z- z8_MthN;AnECjd2OAN$owIw{tu^U9L#XzZxoFh-LL|68h08wmMoZ<ST@q?c0P11+wF z8dMckcz5k1URu*|@f$haGvz!E9vDZ?<Xnk1hQP-EVqjm(OJDJQ_Yf?;tty?m^*iR! z@mvbsqoh`ETTzYNiGRt#X;6S@4?ISnOrak(@3H;YI+&3W?&g=mlZU@VBKB=}K!&d3 zGtL5HqA5YW746h`IIp!CuF)kc4}%z(qHuE|wv_%U-(HA5X3nFUOrw&JAz<<e$TbdG zR5}OcyWDqwuP|zEMXtntaZ<Z>*JeIR;>lMAe0<<as^MP1p;9MjiP}BC8kDAyAGvnE z7rnRGODQtQHQA14$Tw61mx^t23fTB^3$Z6DITzA{+HlG2scPcB&EbzdNK*nUua7ak zj_n7jCD=g;C&)x?empFmcg~kY=HlkkJ3iH5L?1*Qr1G?cihc^CYNKm|K1S@{B9XhW z;6D$sJoV-BDmVnS$@~Put1skEBFTy`QvtWLP;~<%Hovx@y<-~6AoZ&cY3O@ixPrR5 zs0awF)G|&f@`mB7kq#)N+4J+M;A*gO^$sV*L>uRf-?|(d)-zwr=5))RoG(`A%n7l- zhC=c|)EP;JwjvL2a<m0!LtuNmEw`gf7Cp~gP0Y()DT!Ergm5b<Go-LwnJM?stL=5_ zD7H=%7a>l<8i_E^Vh9lF_j26==;hik5@G(R4Olql3U;T=$a6XP7ZF4D{l~Oa3wpF2 zv{Y&<C$ZSc&lgf^W|DYx&;I|%0s_Aim9>2K!!25jLW@1wu;cCWei{$cI36$VTn>$O zN;DAHJn3nF8p9byOEpCmM^he1T;jgGzvvb*^45;R<Y#Zv`~B{<Z~b!A_#3(6wjCrD z_8|OP8WCLEgVY#|VN$8sGSY<KB-idp9~i>1P>x5!UaPg~@UvBdHPrvNf8I9<Y1a7O zIb!03AU|Qf$yi_=0!gGKdzp&qS5SU3lA~6TYscXUu?_xqG~XTe9SZ3(;aq`q^XIK_ z#~89W0R!jGWp1&OC14jLHU5~Zi5z0`fC|@F$vj?#X{s0#?|-7};xBO(_tG}cFF-wq z<+e`z0K>fhwk5>x3BDyMbAG`Ki`zqBJl1aWNssqUjeL@5e=V&F2%^J=A1Fy)YE*h+ zwdT>I`ArAihp;rYpm1Q*#aFB%_q~>K*tM~|<^<F_io!a2l{Gg*E#duti%|KiH(^`9 zs}9~4r<R_LTCAxCETZJ^=kZfRa?(`1pvrF-5hAa4e@J5&H@|r1+;6v#iBQmZYCNMe zevAAX1(Sk<H;D6dbR=^Iqno9Boc5Wq?Z+7h8YY>uTfdRO&b=v4ZoMf#diiOO9w|M~ zc*cO}jGU=(zDJ_konoqz1Dd85uMX5&!ey0-)TsY!X88eO`p>qEGkowTah!vMc+r1U zqvQC{4Jb;jw`65%aWqJH@1U%q>%37%?cy(T!pPPV5+$GAYmb~6?a?nPOzs0>{RBw^ zeoAUFcf7&>adShOvqjG%Y(d2MWim{Ijw@FYFRe?%<>YQ^fMCygsq>u}`-QoM>EP&9 zXW)aWVx8HQ5dq8G-YiA$Z$VQ+Y*1rcX?*tD_Yq8nrG~xc(TdZGS+C&)+XQX2aW1%c z#yLY*hv^`m62!3=*T7tE(~=d2k3CthE8l~DAW>9HtQ0|n?F&3{-!SW$OVrlre7a$T zF4s4|9E1e~A4s^ZVU=5*7L^;QAbO++0qo){o-TT8sH<ojly95-NNnmuq0lts3@T>2 zs>!=fncU@mzF%?+^77UF!s$~Trb3Qp@W7BXMq?Cl8(;hxxt$LS2>m;p%7Q(DN@;^h zq7=;qq6D96nOaQl&5k}q?Xg_#o`qoAUR^)5JU|Mn_&vOK$So*ZJ&{$X#LQKzh&DEY z7A7WxFh7>}d%XAev4m|Wu2$@zg@`Dt>%@uT`Q?2a%2oN$Ll|Q9cD8K#G`YuD^12UM zRZP*iVspp427ib<Mc;2K)T{Nf3iuI0p}0Hm|H0$EM9K7e1=>>b_wA1f*eJ;;6Ei}} z-qGEIS`ADNv8Na<8|VbSqXkLe5Pbj6x)shU^`XA;N7;0RQW?3qCpqc&&2UffxnXX_ zv^X`luhMP8r8?}_?dDGj;`JgL<OBE^h^HmcuT4I<8qrzYdB^(^hf0pk@AH{WCWl`H z44T$TuPpJo`4a?u(h8z#Bymr0;dhlpG}1pAc<oZLHwkHULaVZhW}+RHb3fISppm;` zay63KWX2ri9MogCNQlmtHHN%LW26If#C9d4=j%H#dlR`v^pHH@ZbjJ!9zhArW@r0X zm8Wiz#RWf)zg4bX_h+TpuyRaMEhuS#w+Q-`T$ox8bn`ESF66#EzMgm&bv}RLhQP*F z280i9{tOx3SzA~=UOhiWyKEFerD&9tO=qTdcUV%ymYLSB?>Yq8T(!Z{j5`=Fu-%Ru zMRT+A!=DYL?+LTnStg|s1HEhxZ8TG|pV77Q2Z_ZkU6?Ox`truR(I0B#z0{g^R%z5$ zJ~_!7UPookr@?!zL6BZh8Jka${G%?kgj?sy+Iw=A^ZK#@XY_ATm^&auEnjjU929cp z2|@{L?=Q7%%&Z>Q9`vclUS(F9N(_@D?}JHV7f(NptCjkqp6?pG`>&PLFQ4J6oZ%)Z zzEdIgFOKb>VO>^b*TN+cj8cIT&?~v+o&BiR#-RtrG3H9K(|V7h6<H`$xbUSbp_-+- z{Of&w!y2G*FX-tFdrIE4IB9DHAoINB#U5VNoXbCwyE!8l;4{%Mk0d76qIYTuxS@=Z zyj$w7MTvZ%#hQ0kvU0cNne*3BsiSe)`#EncltgiS38=Gd4V-&B@07geib^4<RVvBS zOGwZJ50Dw2epY}xIy$jirs-%LoR59hXq4Vep+Rc7HRpfQW{rV9MtfX`fgnS)$y4Mx zu-)HPtiWtyR$}h~FD?T1+Q?|{+yVv)xq$V4c^N5ma^>2&@+NmbJ1JWlXhDrF<(`s# z(-N!9mzyJbQP?)?u;Ul+1^J$<b{N0dOLAXmxswT05KOnpT|T^>%Y}<bSK9+XqW(0o zbPA1_E7z~-ISSANmg|IHh$1jf%5L}6hB}E$LCUADIpOu^*=x;Ly{v*$;lbEh?D%|0 zIA7A2-xLP#+Wn~=ycqICJ(=Bm+T<_Id$2+L54b=Om3L{lJ^^XQIgSA^)X)kBMB6?N z!qL?`)5qSfR$^kI%N$%r3Tj%qu-)1HdB%;uowh3;Jwa!i`XRZoj;{GHc~S_<8UkH? z&ShO&EFM4k2eJL4L`dPzltGeX=n`!RH~*nP0x2l&{0@ancHSAtEK68I=H57;#&pn| zjxNLJipc}@ixY+&k-gD-iS;Bn(KD>)=pv<+rb=24q0Y3+;#+#y$*)mX?u-3%G`Twd z5i((hTr1#m$$wu?Ybr5;W=E=@BS~+AW#ElQ>!MVdu(+|Upg|h0F^8T8M?@PngSMg~ z6(c^9fIqu|O=XbkODi?aP|%f*#>S$@I?lj7Q{gx3&du2Gn-dEp9kiOAaqk`f*wkN) zU^~NyFCOK4@*%jRM;>J+RyZ9`XHEfg#Vee;!*3$xCqLUus`Mcpyx3E~?to8wwQB^c zUAftGK8gG$fsP!l>4`iTK}Wio_nMn3vd|@byZquw`py1mF%`mkbF`fuP=~-mhFay! zuLnN=e4;@bZ#BhM#ET0c?JHLxE5*bP2fzX@PGkM$4tZO84pN()*1jH7lRkyKfr|z) zNE{RuU>yx-QS#yw#UiRD>9{>b?lD28=5eL_XDzqDe8%vInH&#F>IZp6{3lN5a<|1x z+$rLp6%`^tFDTXfzuEy=Sh@&&_pRgp`Cz8JD!&+~xk4uxhg~wDNM7{u&E(Pk8tKxc z($jyeiU@>Lr^N;xP!<^TX+%QU?Ki5^3_Gau-`;To9&Vu^cgYOvU36qLt@oF#88sav zsQ5w&h;19=_4|Ujp1JUev-O=LC1f!Md%JtI92T33E%f&Z$z4^mj0mLiF)bh6?_b~8 zR4qWPH{iw#P?0BW%rL{n)Nr_Jd(|RE__)|>brLvUw{b**AZpf{8f>*g{`yR#)W#JG zyT@L+LoLKnt?jK}meD3|68X&wnW=0V=Bi)$J}yZHZbBp)J9t}Q(&Nm;$ULx$jSml` zC~TWkUTishxQYma-#>$nRQd%E<WKT`(x@pa8;V5j%UxRS%uW7HS!)9De6hMGWy>L? zR}nc#!tZSIdfBX7$o(h6;_~ozy~oicWP?)Y0Atxk9-DeMk&FW_iOWc&WB}zY=xAs! zvw8FwyP6z;HSqnDoHz_a&JbaL%&%aQN4v0s<Kt`}b5u1((CLQKk8f&^-Uh@>$Hc0d zTKc!_bn*plHM}p*!5B<>`}l`01i1ag)-|<sX3pUR38}(oz|mb+w<icpzjtW1h)G0b zMADqjb(cDK^UmtGW1pYFVWM4OSEo~L@^LQAnkH=aAYM2wFe$>B9wHPc5`xCsp}%1p zl(-<ck^jK-$Gu_&!pL-DDx+gp@VT}nDL>aJTajH-+B<t%qsF4;y8sfO3?xq|iHI#K z_vD-~X>v(xSGlw(F|CsmdNT{-62vLP(mKKhEB<5ccf&~1rxXz9U`M}o<r62E?cQB% zJ18hRP?$$YE5N1sV)SUq6Uv>{_hw`fe)Kueus*qTcCxFLgXkyZ326zAZx@JmC*{Xj zADg9#vrj;M)=birQ8rsGM^kx6=Q7OM=ejG+d;O1nhjXa^(Wd+#N>)TG>SCJpSL91a zr{t-ugX2cl>yqj1{1(>B4RW$;<+x5ko|mr(ce>OuGwY?WM@=h?7Z|ce>7G=>&h|1; zAcHw^{L%d9i?*m#baW}?cHnZNLwpTGlxMc8+hZ<sHjAERH9wG}wM`@;?Ne^C(qbK6 z*`E*FSn27K#d`eum5D`vt;8%O6NP*2f9r{z!)a50Y9$;6b_Y=>jstcI!XDWKm7K=L zfO+qGO1un^Sn(vDZQP9Xpd5gR>gY4e-EzhjU$f>nOE)~UjPO;rbnDu|&J~3-j$81o zpeK1L<*(%H&RKLyA2u_B?K%#b_(_urr2|3+S&D;hPP<W_`trS>-$^U|Yfr{#b}%lf z6a>MVEkaz<OO`e|B%EX?`pj*VU_!T#f_gM)=_15lK;_;4O^Y7dvQe_tN{CQ%Z?1nv zU8uOKSJIlvM6`;$xuSS*zxb{EIc(=(=6VmSn%!X#C_LmU-mc9me7`W52!TTl(eO`K z;tR68E|rvv4FQ}d)W2RK!Mav@h|QZjq5t@GUNe|i($~+Wz4bI*Y}v!{0?HKG`uJX+ z5&CO?tUd<)Ed=JNL37PX+o~p%r2ppN*HY@Obm`fGyZoW&Y~624Vr1^1wjC(b$f4f% z>T8eJ>0kY%meuZ{wI1=uXV2S9MFdr{CbXS;=^TS&!h<eH)+B>}V^5KNzb63=%WMzr z{N%pebxt-tOxT4s!KcS6X6y2Y^w3U^Llc@#R}beC8LRB=C9I|WR@)4Pp_vWAm_EPR zq#*cc{QQ1;g+`W+B|Fu9r9SAyZVnSoPhS&bk=5eWFW9e6gGLX^PBwz=Dd1@aoFHHY zm|pIeKFf&p=^c#6#il;xNu_WZRRY~{z0SciEpT0Bjf9@ZP4@JaCmTKlvcaM954_GL z_o?9!>^z%1F@L_ONP-I{jf2=a@eesZ93Xj+g^R3Ux7m_GorLpgaPkc*>tz0LW8-5O zI8!U|Vv0e`OsVRW>XuVYf<eYSQ;<kqgO2)(-`HgxRKe=?zNMv#;<gq!E^U%=jy$jm zv~=da0|D}Z(*5W3_jrVLz1B&S6o;YKK;lcsOODi{HP3Fds_-WxHFm6qj*UCTYz<DI zuN34Ug9t}W*z|ID-Y&LhMX6(#H*X~#F?yc6swbEyOWO1b-FKIU6r)G59fgQS^gJvv z{3}#lX$YA|OuqPBBS|8*D>gvx%*i-}(&Oim8NjjS^gE9yYPY^)iwt6LOXD`Lo=%e7 zg~)e?-m(f6Uuu3H%2)o|Z*TN<(!#vM7ogf13WMnl=yEy=Q-xTu!zYki`{iKtc?ZVC z_d5J}NEVLDSwce^!Jr!ZyIx^NdMGX)(s)sIRy4NwN}f{wr03DBG${dT9R0gr<}riw z9k35lemyxk?4K-nb;s64KP9p<`^#tUOl^neYO}tvEr>bVZSwXE`SZ|a?`$AuPOiM= zwcCH8verti0Ln|7ZXP2t;cL0b{b3!hSOA?8{#9*f!!-M}{wo6>p|>cM-EizXbC!rY zNxWf_Q6tMN`8~IZvtd33@O2kEE8%d(lA-7j9vy@y5~t1J`Ch>7Ia(c?>gZ$Ecs10} z&V_5tmO|oGZkkts+O`6_BlL%G-U>AKfdioHV{l1FUyJ&{qE_n2H@<aZxNcmv8Vx_| z{FirYtb1SEj=C<ybB3En;`Rj@yrrpB*T2<hyt;PW3#XGd+*Ad_-5t~_NBbv-F<t)q ztNS-tK6J)9F+qx{xd7)A5f?RSQ&}{oP#>Gal3j_ymNu@y$R-`U+0zVu<pu?DDS*lR z)SIf7x~Jl|kn9wYbl*Q)rM#LocBH~tPONg5xB6%5`kUyf3w8a9-K!b^5Rb3dDjbK9 z)L@k}txTLKuFu}v3&baTBXHsIsJUp$OrGco5^rwyH|t)0M;qUEiMUEtdfr*Vr{_0| zP(y2)0lyF4Wy!(I9Mu~2bT*Y>y{-zlqZR)c;}4-VExW=f!iFU~t(=V;IwjgOMxaGp zx;Q~=<_451;H@Mhpu(GywNm>koO=O$kG?s^agNZ|O5@TKzbjcA@0XFRn2tf_W+<9R z4M1oPQu}`Y`1=KAE`!c=2^Ak;=x2)mlpY&Yu$q0r!jwH#cHX2F3lCBhib9S^ZII(k z=ngHKy4t$g^hOG#-y1^Tj;2-EgwFS;3$El9y*AjUPZ0{OwhE2(0hO+dI*Lj$st44c zSIkB0^Q8>$bVtt#Q7;TwKgyRxg(BrWDgr!KvFg9K$;oH~M|Jp{%t&3Z={;XA4q+>` zh!*s@{LiA`h=Y+JoN1FzYI7x>q%WO6r9wAREEczKb6>c--BqWzU1rf;d$CO)GpC3B z8~a?pOCJ8bH2KvvW+@*wb(wt;(`>d&&t$<xta8@uSmr2VeqHW!`qX(okcu!G`rsxN zDoA|S;f}XkZir+SJY#4@Smm=Ul<C7bNRsE@2;UAw$j#?qvKhKLqnMQeckfOrRE_%< zoMgn6@RfK%R|zLGwp4~GvOL1whq&~I+XEHzG%5C40dag<-=5+dPPQ*V&4`}?NEx}p zqiH+ae^jp-Kc}ZG#>DOggvsj#e&)7Jld@6FD;iHs^w8(DuT|0b1>M@_rZP$tRy0>- zs{_-0+kBowp^`RKIqq{&Pl*n=(Z993OTRK2C{~!{Gz&Ge6R|mY4ngfwjsv_!;>=<c zaVIzm`t3eNj@(u8z|rnE2`p8+R8R^oBvOh!ipS}<F_6tovB+IrRJMen&Kbj@I$ul= z3<>$IHMbpTz@MYlDh*8JPG*Tx(fb}pfwLZO=H$+Q-%3=k9p%sbwS)*|ZEcA#*<=mX zBff76Ryq9cT*RTpt&?2J{$R<W92bOf8`UlshKxz3v=6G*`9E52AX;LB4wJL+$x?rj z<N;BO|KkasEkL3qZ9wd=$3F}9cV@8|XqXtd9SPv8RT%ihl`hr_h-JMN1rE6vq>!Ew z3%m?&>I5(!d(w<Enc^rLIrVnCO$xvDU4+LZS=o>3VMn!5YtRDEk!o4*pPAniA-*jw zf!j_zz}53u0CQR9g4z<l?anZ7Z#BAvu37?D9Tz<DZH$SAtvgB5CM#yk$koZU@?hI_ zsA-R$<#t*hyGZF5o9a;%f_P<@A3;mv5+VM@K0B6DR}W#@-lHDq30~U>Cj#M2+>28x zc(Hq2i8W^`M1;<=+UJT+Jo!})U8G=l4*e*9-B+H9<ptKy>UV9e6(Fuwyluj%NC*@} zAjNL)_)>n<-X+p!lEt)a)5G*ibX_uT(9_#^jVs+wul`spR{PIY4^I0(y|ezBD24!y zqY-DEt!Pd29yt<Jo{|2cHd#_w5F)h`5hxt}db8mH+NPk0oeZB49#{kglC1y1aVHTv zFoD77rviGGY&L$c2^sZJD!Uw=xGDs(OTs&HHXv+ni>$iyJnePt+;`T+C|bqKMbPXE zotGn$%D>>y1u`-b_SZ4tb>w85VlPs?nJEiE3xY?V1nupw`$yY6-^yQYATUw;*I|Fo zqd~?-&s}^RP0YPaHAv`dhdTWk;IB_eHTGR%Qhv<T%AfmU_hT_r^3au^%bi=@B`dKt z&1S2jtDTk1b+N6a>&|W1r6zBon!;~4lskj!$az%qp68Lzuu><~h?WOFjd8*#>Fniu z-r|v~{|7*-l4f%K-TjV~>E(``XnCD_4&<2&!z1RXf+BJ2h|Q=sW;Zd1^)Ro~A8QX0 z4(0VH4a^AH?){ERr!{q^`sH$RKB%De*Bt6P!h1^Ejf(P+ac!GmfuK<@ILF*0U(5G> ziK3*SO<Pj6!MK00_#<Nxo`_0L$)+kxHjnm`IDyZJ&usGs#Ef(nTiKuzlz>tnD0_m^ zI7V1NRZGM!q(cM)ei{TEdjCl%(rFFN6J3}oX*rJ!xx(K}2q(^H?{7}r(9y$$lJ#Pn z^eiKK*}4mQRc&ZznqCokhY~u0=E&+3er&Eo%N`MbcWFXT3}c3Fu$A(kgT{lI^o>uP zP{C6u>5KWbM@#LL+#+1<h5FHlOGgzy!-`sMgi!L=PEHrMULAg{iHV>~4#G$aT3)e6 zL@dUZy!1@s_9c1j<~>q#(WpC4j~K;D`=`(&t5Mjq&1}!5Zft6df7Bp1lr+>q5U;^y zL1P1R90h<w^4#h$tvapP3$q?{i~dwt{?N-;M6ZY_42eywEmaAV;PITxkFLZ0j-u43 zZa2M7uYj!2^Cudwj6aCveLEcw{CNW5k*y#JO*vfWA4HhbRd^i{E5r20#)CA0kN9)1 zjJ|a*n4Z7fk+Y0MoI6UA-GgvD_x>34l&DRxoDUzkrgj}vNHFCh8x#x>-`2!b9Y8x) zCmb{@D89EjAsnB>ceF(dPEqQRT@4-ob38oc)T7A$Bp3u4Dc}p!$S(&fU{p#`WO0AA zM-2J;mGB4OYFF-7&20_KT^eKF9O2`>ZV6w5g<Rk5iMRWNr=>5-OaY<zlsIeFP4xPP zGUP0?-ZbFia+VeA8_<oCf0idap?FIgS>G4u7<@QlMQww=+f&?WZNh#uvq+mfsnB*h zDj#t9Bef{FA7$0C6M&2aGzto#<w=Q3{m!4N&na1N(ywN*i~UTm#Vk8E@+)_GM0KV_ z1x^1(7^DTI1kITYF&Qz<>h11~SFXW;+<@|iatzPg=kRjvd2a36i8P;pj^AB;_;gGP z!@x7}`@b3efe*#=H^1V%{rBc(D5_Bv#P(<82$?FWC{PqYdxqX2E#YYu{JKxx+v@>! zh8U+5)pe8O2LZAE5CST1{!@UDbR<(9>m~74GFMO1jav+BF+Mhw958j8|JrFDPhX}0 z11%h+^oO_H#801h@V%wMJ?Tq&_cp76wEocuu2C2XCqX%h2)p8CIV<*pGT?k+O6R8^ z>Q)weQY8^ej|gW7CP~+_JdI6F61Su*j4e9vn$)hrpd9yazn01e9nHcv{;q^mqN%8R zDkR0UUdE<kSieZ1Zo)RDg5n3X?G!Q_9m3a_^fAK@N2hH8nAlQLRE4yy$-7>GKIc~n zV4(PNczDFROTnthq2st>CDDNnncWWCTpds3h`4+pY~m7CarVdhYEwQ>{zkMPqs*PQ zysv=FHMP85T6(w!0^BCuQ^;g1d@0B_Q8d9^mw5g=r0-N_<KeaPzrjL3DOKC1!vQ^a z-75|s)dsSIH)^^sjGfsxCUn(spD3|x1I0mNL);1LokbnHj>u@yg+>s+&2NZwo&BI# z{666WTFWm0xp%O$KV;U9NTrM|)^6+=RX0!GWD?`xk@oF-YNeH3PWV;?D%;$8`F1$` z2*&EU=jC~Huy%_o2<{J<-j|}}i_p|<xv7$rqgQwO$@=bHXxh-4Np`BiDr;VIW%zDg zQFy;6$+sk%uMl5$@scH(%Ui4ApbbAPZqT|7fBZ|{zZ~4jEzhM{J5J-Vo&|`Y16i2j ztUCnqB!Lz%H6f1BfN*JZ=;i4&J!XD7nzB{iATLS$pcrx9RVr!~`wf}#3?6tdeusfH z&QZB)G?8q)QckkxGBWg(uOxZHC_T53gd40h(QgBUpO?=&6`n$dHdPzLJquQsS;N_z z^R0nGaRz^BjRXx%*ia<R{|3LHVOr3n1<SS+M1h?vsU8FwAm<x!<gDPwH}7Th5J|}T z8IWT^M?pmd75eqVV@RxD+%#@48~6OX#aKB#Try#wa5zDV-7*`XLhWUm7(HJcpbeeH zl{)k+BU?G*adGnh5HK+CMU<)pUK_z+^*!L4!Q@7#1N62$ewGYz{Ci1;l<s$n;*Bc| zDP?zBUnT5$pUWLZPTQZ%&=mg+yQSCbT3;FUwKGf5bn(Spu6;#ZclG4kXj*C^x$Ey$ zHqG`AW6r<!W5-WZ);h1QVfUOMLJ1MLxjEw^ghWG5Uh>$!R93m8fY_^@C$nzd-u@WC zL3PLfXjtyY%OLJ-cZ*CeYtl{FIvgDwq-3(VU6R2nCCrMot6JML!N=2X`fZw}<t}Pm zf_eL?0Dxto%PU~;?0JNeV^UigB$yzh0=$Qw2Ls|*FXkRy?!R#GIyniKUGk#5c*ll> zLhDw9eW1>c*x)a9AD{Tkgu9c0cOqM>z~vboKlhiqvf!lI4}XZ|yAEaH(jnV9?cJ1s zRZRPD8mRfcR3Y%!aghRPtsIIaui!2n{`&H;kMWuB;>aL<Pa$J!RIRrI5aR37&;{up ziJG-BTVrCgdhebco9WuMav2~*#LrS53aIMRmRW^R`WN4R2arLUc$^*HBn3kbAA7Zi zPsyuW0`j^}vA5f_><5?`SbgyMjy?iAthUpWe(+(lEshOpMM7WhH`BTn5{QlOY3saH z+;Wia2nan`0XCqB>WKfQ=zI*qJ(@EpQ)$%v@fq8;)hOS!c-01sb*VU$l!D+9k_Y96 zEE<C)_B?YDS6@aSu5ndmDYB`Yao|UbBzfLsUm3}7*;Fmkf*=|WZ4zCmj=tp@LCC)# zfJgEgU+N;ZyqMmJKcRO{N?W+;rLdlN$tf}MPkY*kpR5%9B?_()&RU}hx~}5)7=gs? zv4fk^yR7aN-`&j*xrUAL?`XSi<3CZwHIRREbTxK3dYX%fB%3py(9p^XZN<WIalUwj zN%J=Jk_suWS$I_JY+47K-Zrr1C|0|?qByINUk*vK;u&nM58bZRTC(cdYsn;v;ig`g z{PKOXnx0-L94X&;BZ|U^dZYcbbG+%Oq9(?T4Q764bwou?p$o5!uxzZd_bOZTJh8fs zCu__L9!@5~-c(!zpC**VwUYF3(5sbnQ@0bxGqH$$kr$r4JIP)OOXX7tMH^?HmPbxK zHtlCAjwiZJH0{x`ocsnBj8wbl8|Qm!0ik=xB|R+j2Wb!8!r%1rWo_v-`Y)WWu5ET2 z3jenb{%ql4)SW1U0q&ikQFS3a75+md!ExLr2HFitaU)ypQG+z71XYwlQ|wRHtj@Ie z#GrRsGqI8>`!P!IX=}}Jqd0`ZT6SilhygG$d}j}`svnq(+mVDIFDE_+KCTmrnRa=@ zqH=amSU3&H`boigNB4R0`QSF*>=n9$4CORPW7GF+WseH(WyJIebC-`EBZ;(DtvWVt z_}+G^02~k0G$GIJB1f+NWEcAp5&Y{%J{A;rrAo_2oTk{xB>n-R<l=YKPn3$aN-VUB z+dp4+UlZ-x4*@h3Mud<6xXQ0Ndxoe)WUgc3OhArY@af;FY9TB~f4J+Hx2vzWUcb@q zLCK_k3vNW8ADwp$nR(vL^kv$kG%?35Q#i|@6|J7Px-g4%l7Gw;&aUH`-sn}2Qy6!! zGZut?*u$Ho9~4eS@ZYChYxN}!AE)Y6og1RPtCDpe8V9k9gj<Y(lo@AUXgnM~?j^DD zpcZ+}L91<f7cDnwXlGMqsKYuV*vx3HwGD5j7-i!!Z$D@lXJgNEY|<nK*ts`ptvn5} zVp7tA5D`IQyOF0>I5^_<$u{<Oe24_AinN<3Q2zJoCy%?cq#QS&vD=#odsUm7?ccuc z=o)Q9_2M~14>XIY0V4AK-}OBqr<bYK2=r7P;s|l-8zV(}d;e%Aj^^!m*QO^aMN)yc zo~$xw7vSv7#<foWy^EBoZu)^g84jj##`y^@Lt-ya$G4)3&17ycbE~}1uD=(MW<D~v zf79^i2CvM~=f-}IdBX^$u~*0Wg<QK%DE^NC+cYyk)1xC<f1-cE6k1UJ%)p4F>YpJ& zLFjKiEwb1%OY@9>dCD_gVe2+jtj}gAoQ=CyYX~SyyE+PgV|ric;31Bi#7P<?IfBMb zqm~4B&}zAg+llrwFb??Xe!1~jD5uByktA-QysOx$L`^Cg)p}p?E5Eo|P;P7*?)&S6 zIGHrZ{bf`76lU{Fv0;26L&Lmf(@=i9s;?FY#qqB15!How0O$M=v3mK_GffoWF!PpF z_vuJGC^3T`*pmGgbiCt6vY@{%U1W}W1pgqr>np;XQeN2KLtj{zd|>NR_{w!nk4x}@ znKRF;o6SjfFP(_qPSPZYX&p_wn69f#tiAV<(>0pt*>`7w0j?E?kt>C;%IR|;1sO6! zfjzraH;l4$U>dMqVG=T(vj+apKV1MV;(reA<~QtZgrj5H>y!6Zf2+GNExN0R=vV62 zpnpPm;Pn#pDq9`DCm(-Z&Id@#9HKzD#Rjf+qGaBi8P5no5|t{W{hxDA47G5LfT2wZ zRfq(eBvJ9Wy&QI=%;`<}t0y>F%MXA2Dl&eGTQXmsIdG5o^C4ULqE3lI+4Wei;9~n3 zGdI?%)HLwA1a|o4Ak7~!-US+3wC+yggEOEr+d?MF7Ij)sfyKrEHB>(O_F}Z6TEUzw z%8g!kGJ7j}ycpxD^rB;n8O!o5X;76|sZ($}SGB~{Sd_(IzT;xiN-Fpd@66`yJR`Pw zw+%%)JNrsq&_B%}4ad8$^S#d3-zFV;Zl>mW@@SfqMAqMwa(my){I#|G8Lp*(YHsE{ ziqW$>tP_3S<S)SvoiMe;Rlb7*2*m2rY}zEcH_S#6fRZxb8X4Fqc!98Z0o$OQSUv6d zy+cmMZ}86<`dOq)IT|RW&rk*xofwvDu!AIRikym^IC~elwS~nSa~+9~+3=A(G?MGT zJDFmXbJ+QgW$4XZ^Zb=dzTy!NoQ?A>vpf%JrBo^Xg5dg+MUK4pCOb!7d^udfTV=QP zabzRyll9!HZrtbVi#49tt4Dv=?&<>GnKL!)Hw1BZ7fXn54v4ErRHx)W__V%Y(e(@( z9;y<(`aKGqrWQw?LML&g6i?~9>D{^VRMt>TU5b8J$bKz~7t+}Z@RAU#nCxku{`GYy z>=?!lR+Hs{u3f7SAC}LbKi~<lG{<M&m~)_VmWUUgDmJ&gY`cms-p{d$yFYxyz~A<& zZN;14rc+kxY`@e9b>F@7t-l(>?~9`deB8(?OF$<oNI4V$bBfzQ=-&>mA4lc=Y&iNN zFVnWu@jInp$FS@l@cR>Nmu3Jj=!nXoKW9_rk8I<Jk04?j(9|&+q$3Sdh|Eu8x8A~d zjS%^yQG=mFDc%{&k3cM~lcS)0kyknUiW&U6jk?Z<caU$gXD%mPFKG6G;RoX6%+$tQ z_E2J@u&tl0)oWKpC!W_uQ(>3tyo{w**Rfd4!~Yy-)k6K^I{cD4V?%sAHD@c9R^sH( z;VCo9eST77k9tyo-7+gFQVBd;{jKM4<0KJf)pHY&q}P)<*lnuVt7a|=5OsXk&6OlJ z-s?LTtXHh<=qbI)@RK2nH9+OYoRA}pOZ$JAx(;AC*Y6!`u@<p9(N?cvEm0zZ)q6>z zMDGzLTCAE_RwvPWi7ryKL|a6UE+L{W(W6JSAmabI_jm98&wP`a%oyHs&Uv5noaekR zqLMQ^;eixYXL}J~g(jB2tu4*<vu+f58y!`7JYAlwV}5k)(T5^@0DNc%^@%mWpETi$ zjX{eh_pJZp#+Ie*`st~keNS(;o=epM<@Sg34h}^BWr&+``fVZ(d66o8xw_nzIk9Ii zVA+QWJ&c;Fs)^Z2)ScB~iw<xOPZY1+M@RaxYqaJH=DXJdzvHx0IQz<-C6!p(L;P>_ z;%oBd(-_j#%pN5vuPffQVinOI*^)nMXFnhL(CVDcIB=Bv=;`srex<JN2aF9smI#9x zX&oPIE!d1)=&m1M%|GcFzN3dfdMkfJ=Gd}{5YV}(^byD0xZk<;bf+?Xyd*yGDO`KF zX0{!0;f{|rqZywA^5k(By%$~w%g=9YR?auCp`VXDq2U<aUL;=}=kidb*yi=EKkn<U zmB-DVd+Zz;-Z!o_nr)mB5*b?ly0=Q0d}mji`4MM4<ISH`CGfplVda)?lA*q_jD3Xo z+l>G3XlR2Cir%@BS}@RQum`1$YGx!$7lzm*O*3&AlCL`Q=zHu$jOX<kf-o2qy(U1z zUuX2TsFk5F)LK6qNKsTy&i1|ItjXjz&Od@iv8;8A`@hfrx_gzw5IJtF1Bt6+`=fTz zK61YMbmL2llO2m>{jNX0{!jE+<wYyv{+bEF64LMRb;O8CzCdS3Y%GbM+?TwIU>Ecg zhJgV<s?IC<^}BYSeDII1dF>@}7j%$(%IGc;r)a)`^*fzmphVJgK6370eZKSbiSG>B z<=p~MY3CubbgM2fb^4wj$et~KhIw*q=aBIV?~0NoSCe56mvEVwm!5hu@n92!kRfT9 z=Q~D4ZMbM!|Kn{HZ$(vAsYufAvC+$j67k=^N^k5C7n_2@(E~b3+pZxY_)iZLpy&w? zk>Lnb&>S*~vYX}7H8KC7tv(E3*dEguUtMP|2^w?18v>%fZ5+D&zX75C=z*lbH`L+y z0!o%+==LA3r^{m(KSuIf&z|kM7DeN~=I-K~&a-*V&}DUWgeRHb$~x3-yaG)vcF^ol zmk)1RR)CzPpQ-DHSj;=K^A)|p{6A#?FTj=`%#O!sMP7+cZ)co-Y&c_ey1Wv35ovQV zmORsnKHr(oEL~%y-=PeL!!21?O>#cRtv?6CXHC!%VQh<@q2@y=EqJA`L)JR$_SYHS zvbm|(^J-(GqD=IqkOag(G5p@W!xE76bTCtz4Eq!h7TbNJN*p_>Z7UwGAiz?a*dQP< z-3gS;YQBh3^O2_@yCzE=v*G-V_CRT>Ogk!N^s#ITXHu%&{aEK1vPz_XD<Lt}^z82H zLOCnm7Hk@|@v6=7oucdQGrd1gpEqB~Yr4(eerhGFSv~&XX7=D$wXwR~;pz28ge?0t zirA8|390P)t}4Ct#0KIXDA(wNy)C`tv*+6G=g%Cs-Hp-<Lj2a_s_B?jvn_YFZ~shZ z&^tG&4Zir=@}YjJDL-f3H_`7Ngj}-Rl<&QzrKS0=Z;Oj0r=4mgu&l!*V}EJ#q0<NZ zfA)@Kd(0>w1ZCMq1ovM7qV>PVQ6Xw0ETrtk)ZgL1j#S6cfG{UsNfuznJG9v;U+Gj6 zsvA$#^%49pzBg~3$)&TT#3`a0GFTS5-!sEJRs)>C+-o-9MND}TkV={^Vs8sVhhAyt z?Oq|a{|uC6n#r9lVgO=<RYXEOtM3oP?O$CZ7u_erk<*S3ChB-M%Xn+oAKY^16VsL) zon~JA^`~&+RilLiyAy1pOG13j{m-Dh=ib5BN0gqZ`dE-?vYW&-FBU*Z9v6uhLmY0c zJ7}Geb5+=@0eyvLK`a^c-DZ~ri(GBfuiDsL$^*6MkqA=f6da-1&@^k&Hu_op{MXkl z7)GX5a;^WSzp)`q``R!<g(=OKG6@98dbW~C1xih|?I6<LC~J2lD3029=c<>b$yH@t z#zH*dOH;}r+AuPyD@DslAH2v;SdxXU_%ml321Mm;|JF`#Vdl`RS#}QFoJ;4hhDk!T z>o7%Sw}X84lsbR*mA`fFd{FaQd!%c<<ywouf-t$Qvza;9nEP^f?EslPGhh9)ksvvT zg=ShzdOzHQL&v%Fd`=1X{P*+D1v{7er}L+|AL1P~(chX;ip`o(O$jsb>A6}ugM8KO ziM6FAcRUdr{loem=11=J^EYlEO2$hvAy3+P2L4k}-5Ve0zrrIbC+xMJp!{uml8B+i z`JrP>bdH$1wYw%VMnndECR0gEE$H=4#+Sel$F#^uOdhpq6*b)X$)YZn8;6zF*}f?f z^uBkW7044+sp51F$JbD<jBZ}96`qEWe4*|!N#U^!iNiKt<5&u%c9z@<_Vxd<{`sp} z_Tkxgv?sw{65~K`g2c4o`RDeci;s&PdN<4{UFY_3W7FHfI}AkBm56;7!h(CX&$Q|< z*1N+gg+<Q`jd3x3<Oz!hZ~KmBdS-StnJbkF^OG4=ssAHODgtbfA885JfH=ofc}3vo zEleXa3{O%r`8r&hSg{9$X`Est2sQa>`~6tVP(lTyR+UR<3uO7%a@yf<(Y)Mi_dZNV zzD_Vd%_yy&>Wb(vj=eQs&~#g%5YoZqgb=;ws&Bsiq)8a9S~kx#trHQ<;<xS^c4L~e zxO?ov=c4)p+oI3@9Qy;k56J~Z^O0?@+Gw+3AK$r<pFcdl!~x$$o;Dwx8NLfsHCq~z z($fvLs6G7p$vq+PCr3%hKdo?pT{4s?BzWha`44Ns`8|fT3t(gXbuRpip^g5eaiA2S za$$2-k$QwCWf5rVeaCFr7S0?Rau=8s<ua(+FUmPZ)r`^nmtfMG>|H5#C6>&$Gv_I^ z*>CDK{4$o{dr30Myzg8({}cs2|Fi4=*k-$KH*@Z&1zssqBn+xkj53asNpma~!~a?Q zsm8!?`_uN*X`qHY%KZi}KKJCK-`Tdauc+d|ei8#U^51@zii!;t2vIu6n!kWnx;BKf z*PJW;^`~OT3Ta}c_C-f}U`1Q!(WXR6N>y44EaKrDrKS(RUa`w$#*hMOXA^6If?x?{ zfzFZ}xa7w;&j`BQotl`ViZprD%91ts_WQEzDY@kmCafPR_;x9b(QS-<TmH`_3Hq>} zZL;Akf9yfnIGe+jJt+00KK%3RWJ6Q)`<B1I1+A?CNtBkQ;Iq;1LAaCBy_e``lJgb5 zxwGOd)AXUBf92m56_yD)R|qjMkKxXaPR_uDP+A0_uII9oC5iH+&tl@xM@lt<2)dKf zm7ZFszi8VBBg3}8xOPbpEP)np^4S%YE{hzWg>&%VbPBIya^vz?c%_@StB+@~Cx>D$ z>umKjrS;uMDf{NDJk%d^oF_DjRshAM-^NGV+V`FlkMx);i{yV+!7#=d@g?dwjO}ed z*XsTKfn2Nalx%{Q-K##ef0}^!{jqG0t_%(T%x;kO|Cjz6DMX=fV3vKVg;vp=OVP8S z>r<Dbj;FGKwR-?H;viCH!~wWl!&|sFT;ZXl(zPXmSmrR&m&+>i+kMcO?l6?*P#UTu zvy#ZaRq62<geu*pQOUA<$_*MHnF@|d?}7nMj(>i5t3AJHDVWdAy|^UZ)OXg8<6t#@ z-Hh4~9!OP3o<}|x`7^t*IC2#EoIfsWN^X1Atfy>FW;%#$`(_FHDV&+iGgs`t^4!L0 zF+{{aaevldK`|=5t)~Vh9_<;!X+Jom*H^-PdT!nXE4&hGWpE2z^2JqvM^n{W!F<g= zMbq*sUgWCbI}(AC&!w~;1ems<$9?;(71?1Rwx1iwhl{^xCD{~uQ09aK!1W;0jwV1I zz3BW;S@ux<Yy6)UEES%|6;?@W!%P=0upO6^j?4d^cb<7NJaQDv*ZF<$!TwP4b|tgh z2l1gD<xi}JMnDmjz|IuHuU^hG1R+qWcS0L>{VPPhXT?PvCS3|?_m^32^d?E;q?VlM z?UwE_(01uk7MNX*i|6E6T|gX1GSVhEC|JKnJ*(Ck;)OPN*dahAN$J7$3~?zjfkJgf z*Tb>m^j2IygCaM0UsxZP$dV74c;=3V`A2ITm=`%4k34zMy5Bzewi17exAC2OCAUHl zZJb1*Ns}djxAkA=iY434-~DaAL#gUgnV%D2j5~i^G$i%Pf(uaXmO?x&V2o9YDxTU| z9G}?_N%F0Bf|2ocmknDbXh4Ji?=jeFbQg~DSpQko>wsZRfn~VZaRowR#NLGeW#zoQ z-h))B1+s(w&uF89#AcQOtTcV4J%n&VUJ1dG*1Cz)!i3n`K)NKR4Il6`F~wFUDnAy7 zN%}sRC{bSb>m%1Fy3_f4?__BgZK*r*bo0TP+ku*;c^fd3IF3(%BEzA&7T`k}^e)C$ zR;>6rbo5%Bd`?@Iw(Co#a^a_8H4WvL()CynM%plo+WP&x#UEw#k4*Oqar|ey#(A<5 zq4OZ$iAQ4(Nyz_m>(dRI1fcC0D5V`KKro4^1yOA`s;I7dQfFt{YO%ctY3L&*>PPsT z@f<@*nf6`G<LoZAQE?>Ph^WmRc=4!c<P$wG?Y6f5m}?=H1VL{ld$~ueaL+*^0JTEm zh8_%bdigInot@AOoo@0veIOuevLL6f1bYwiSK#4TuOG{wheufCPM)83j=W2r`RMe) z(`N&}G*tiTZDQc55<lEdBcqblPPk8%Qzwe1ZD0WZnG4_UblO64c9Og-Q*DqHjsQf0 zsKC=VPm#cF$1I`$?U$t+F~MpE_%ly>v#`JAtVTSHF|@kj+R`^`8%hJ62To9~XN@6> zv$Nc^UQbO<m0&T}d0fu~0wK_sQ-*+2wg>KhMN&*gG}3+EL>c#OG_F3SCxsvkdvfja z+^AISAuy-q)qOdCu3dk@RPw%W{TRFFY=o2M+DioxaX6yTl;re0@>$+VboZG2JtNtn zm-RX$Pxk%JSe>`8LJlHR=%O~m+l}t#z&<vljEDdE_SyZS{m-{r{9<2Hy4W+NEX_o# zI}v|8&L}QUzaIpC7s33$sXgupw-d8Xw=wwH!9$paZBVUwZ5X4XnLMfO2@Y#q?<+4z zDVQJer-DFWBjVo-QLc74ksA#mjf&Fn?$MF6aZ7y#DkptcDHIUw2p3%jqc`4bq)|J| ziRPJF{Nm<$uJ_d9K5pW?)mRp#-VB09NEGBIMXr=kj^v;20h}ezyCw16Z2Zr7fK+(s zME+`Yn|PnaGgqHmCptc6VDaV3f>UG*39d78e~}4ioYnJ=K3j+64)jBR$wA<YPws6Y z*#E$_<zvBK>9pCECp$F?iZLO60@|LurM!Sw35sx%?PVpHrv=yR^(iJ=jSy?9Cx3Yx z#?R!rltBB_1EBj~goIkOy|kbl!j9S%g`8YVUOBls?h>JxVdt!B`SystAFrD=JLld? z#X#xJ(P|h9B2ENO?(-ne1;R)`AM@~{-7)Cn!E8OiPAFx~X@u-V)huJl7hM#s;|Q2+ zIfwKMeSl8rfzA<M63Qcz{DA={6@x4RZCZYqFqvJWG@8xGSM5P+smt1jVBe3Act!cc z|BV(K<4zoXO7m!34~O!gH+VG$EE#2Yn>QTBTb&!~(GGWiLXAbT9CqF|(qG25^`IK8 zKRRB2=Q0V9tsD??j@3W>=rhA4l&30BX?zB+KEEp5rnM(@`Eq_yq+BEvk$MLMPKH@^ zo5xg62WJq7wdHM0yL$0s!#k@CSM$&L_RF4hywVz4B?JcN=CiT=P>PXwjj%D~*L`Y6 zSB@LSOdO-4O(#pQ!Xo$oDB(XBSz3Bkjou&ag<4k`coqm-q%{J8`eEJD@>hu#xuKnh zW$3QH>&qotl=T1UmN#B0Dt)l}sR=b_=CI?A(IKslAJTqk&`uOP0aD3{{8P2e^#vR% z@LRBt=dYXqYuHdA4ZrN!d?F7^bbTQ)r0q;`iJU_fF5|}gHeO{^Hg2GEQ3EG2CcE@2 z?yRxb8WvR<WuSz^d_QK(lRu<flV!jAfDh>G@ExcJ7!<05$YCMwxL?yqY8&k=&e`o_ zwfx;9_KmA-8_#cBHJ!gGcGP6)i(2#Zuw1DT6yeZb`sE`o!(N7tcSQH}z47#kkyxFq zvNy>9LH;d)-3xvU=mT7YEunVADYoMA&YA?!c3RJUnwSz{?+<{UoR%Z>gpPAk?lMw5 z^n6aV7{OuNdv0UNDyW<wcjcui*$_E{JvqHqAj<Rm@#U833_u1+-}^D9jidzuKvTLU z71{6_u5KOXCqUj?)Ao_pY?@+gr8{3fV3qGQY^3M&^;+-wn{wwPh$&8|Q^FiYmgK6F zht!OA3eYYp=a{{RPSU?;H@+3Dv@4x_Cu4i2`Oq+n_!?KVVZd5RBpqk5GfOUM^32Q> z>(Ie7>Bj4IW?fVnvx(_ItGhij7m@CN`M}0FeW=z%<<WA;U~DZZP&8fQm)wMsIsq`F z=S5WS`7O#wYZ<sg4$K-_0y7k!PNHT5G%U2#*jp^CfAlZa($r)3T^$=dfF=L{eE6Kd zz03!kr(VFSBW$c*5!%x9tQCK&p<WcSCg?HBO61+Sy2dc~!SAR{>#6^{qlmtfM~~`v z_>@n%ekRc@x}dBJ$orftz9i)W+;`ZB?^*u(RkocpJ!g{yUXJ0=&;no^`O!?>61v;h zJp%%>@N;kR$vtZw53)afLs=#T=KL2{T32beT6d4`L8(Pi`Z2Yr80YH|Vn|6Tc}yaQ zBHJk;r4~f}_e~H3rI@ZE?kWL;JG`z)x%b>)=Q%hH8xzUM_Y&X1#2mdDO8U8R*EpT( z(m)+~;L?<x9&j&L$rMKsA#>$#LblItY<5Yq%gH=l<x9u0GuSkrKU+U}M4IfqycqNX z8S*PjENT)~+NHkp^Y{ABkA?9+O0SC4elAXZyIm|`6N=*ROkfZcVwoMzI&u}qap~?p zbgD1wd-Jd!l9<F~)Sxt_`fnTcz41dXgz&MJsYc?f#N2i<9osA_&XN$tW_m~zPvy_5 z-K3J<bm|flCGE{>Q?+ngcLYl8_{?8Ag%jeM4*U2Le?_Ss<SD0r<@l9Wimllt{?3UD z&GpXHa*GpZY?B0mS4$8OS7Dwk9sLi-(U+_?gI<?!Ake@8)S-Cezpteb5tD!>gB~-5 z(caHuqCU4Z2`Z5H1JrJxJbtL}hz@Yp6^q$N40l3JhXPpUM|F2x9nq3wGh@GQZPRls zqVnz#140KF2>So0)WM%-bNe7NNg+retj(8KLI8;TJw(|w#GZG=)2Mxc+b(Q4xQP%W zfU=WJ8o0q^2)Mli(M75h)hH|6Nd<-T`x>#_7@`L;aJ#~+>{LU6drf3S6F?f5(;I}w zz|DWfq=ceeA4oFN$HubX-wux3K@7U*=lEOI?gh9;1pmCU_)5E{10HpK=-M~;r_!gt zA6_gxxhMcy+(&l{V2jERy-XVpYEbv}lFddBhJAgVvgQ(b*PJCGm|OZrDOdl!_@iQ@ z$C}&PWIJ_KBbsIv+t$EHC^m!=r=xPR7q%p`|I$F-I5Xf+hXU_yGED{RYi^gK2#LJ8 z5?MoIyz2A!%{6lp@R113AxWy7>IODO5-qV~l14KaR_kH?<*7ELY7M;qMT!9$;&MJ| zM|O+9%C*{}WDg&8Z}#-skjrxYEGoxBz!`G#P@Dr+hNbc~wb**jwtd8I$$A?($S&G> zE222THGNhQGIU?Il}Bec3g~P}md)zB{w^E#qpj*)Aiv3fz_6)0gXZ%N&fU0<wmk<{ zC%_>oHk@+b)f~nr45Um@9(3bOZLK;4@gdKG*7l(kzz<X_&MI&NPdn%Db5aA3nUI8+ zI_q&Pkz+Q)4FvsVd;$%tyj{QA-cP^Gxy8eNX-c^8AF4fnE%KC8R76nc;|%4ynMdK@ z-Syb6&|v)^Gl3bgRG$(`yOc%zPkf&K@~FS~vGJ|8b3=gQ)r*v{>TuL_RPugNU#^X> zu{iDxQ-0ADcN7vK?D<^0x5Ma4*nd#TotqxXh!S+Tae$-UzeR(JsZHQjPw5cLw4;}5 zfgu{@St7WoPzgh1{4!k{EN>Lsn7SysR534_XGd1lAGU`8^SkDzm52;cux?$or?v3< z&=f~z;`!yBnKh6O-U}8x$%v9*_M6(3dv`NPVogQ-rrcbBO9o!i^fS9nYnE_WburaY z3gdVB&fhQpd@oq}(|O*$Hn8E06H<>!EcSiFG=HrO{ccPauq|o1O5ZR$f4HcC-2aQv zrL>_Injc;q(8FxA_$8M^{d7DNG}%tia{>k6_Io_8cMQeJoa1Q-ug<E+fq|xJElc%2 zS`Kr4^&+=$1+fWA;3ApRof@q~#o|3@Dvv~9{l^(%DLl8vp8&0yPfjFCGiPs32Z?Xr zJg4#}h`2&9XdJ1`IHoQAbsHV|{5X>G_>7Wre}rNnHY^<jTZ;3oWx^+w)=SmOj%~e_ zkSTko0Rx(0X(<bP{~s>k<*fo91wXkb$=KzB1r;9b&$803y!c8hG@ux@*2e~}o`MX4 zp_24c^rSC$k8TMU6N9IQ`QH`Y;a?zMJmr92#aj-mDfWo~;$F`fk_6yP3D~BV1d($- z(@$mqa?y|8A4G2q9lUiscjrDOlr4GzLIO=BsXT}tlr^me&0-X4UBo9cpZzM^{q3iY zfKOLVS9`lU7RZcg50|WO4;}0{`Wj!$FT%s4W|NH@mNNc3H!Q`m6sj*m6jw7EPe@&# z2`CDje@3v}r#4^_kD`&}+hR#EtS$MnNWcsRdD|hN>VQ_mhC?Ocg*0=0(H-b@5#SxT z&hozVcEpwtcZ?EC*=ORCA1r{S98Pm9G`vt?oC>zI<bRcWOIYc?%U5^GC2?{&e@uMW zE3NX$UKowDs(MO+aGoja?a^(yN!HsEEKlD0ki@uM%O5{D^7U1dZIsp7b?sSWe1vMt zv{77d|1a4dcZt<+fAN5_aYnQxol{id^3a=kmu(m(p1~X&$9eQ=cg=?CL4u4UbJ=I# zsOvo5=Ls@YTBe7uS`-i}nnQkMAdy>YK-6rJ?1M$W*++_srU5NdAAPS6x>MTpd)Pa1 zv|b~}NOS5&6<S?Y11#hDYhU@P?Wd*r@&^3QK24c(xnFmjCw3n40!Z<V&AV`AwqCL^ zyMg}&m8Q?(#2~gGe_biiWW=ld8Yv8vRBrJr1Hu8%L78Gt*RP5I_FdqAF<N;9*fxf! z$Jaee=LXHCXww3L<ksA2(t^Xtb#Nt!j&LgufCIBsB40Ft0Ov;{(4I_>Vay)-l*dc^ zvtNXBQoXqYED5%EjVc!NByX5uy~=LJdb^?d_va@UwT-yfjxCw^8~2~uiQ{C4cU<|_ z#@%T^JmSLJy0mfOI{(x_#^VR!ix7~*i-RZt)o<JnSMX%J`m;)*hE}*W&H`MW8S(Ba z5d%z$u?XyMvb{1&1iT!2=Zn;~QIz<soo7p8#JIaa3+*<`B|!4KvM2O6cGpQr8R$6g z;E9E)F+cpuPgp{@CzxabgHm{+Ts`_?V*#Cg6JAf`=!vt*Elh6D+RTvDjm<|7oX|Ix zysx<xVTTZ9K9iRNx*QWPt=aKFZ2q~{!SmPir_3Lno{;%pz05&29+Go{*F=s<cqpNX z4D?$Bjn0xOr757*9y{7Lz+{1Jm`V8x!y3?bAQ2YY*a|5IbY16(D4#w64%LQ3X@#Gt z6b9%RAe7eAcxhC1WVs}L*8ozLe(@gdwGt)+@>dJrtH<Zc(s1nCM{FXU?hormdzc;9 zo+^ps>NDr4rrm5i!kg`-Jp@p{k^ckM_+rkg>GNU+_Dr{VHEr6<N)y1db80?Ki45<< zUIFbpY$?XPv@m8_7^Kjo^7=6Sco_O7RZM?tRDzk~%@Q3SXo9X}6ySChqeP6<Us@;; zIl-*B4O;3<R6UEOQ4RK~sjgxCu(swPVoz=BHkLbZZFM{FE1(^p^3Boh#_2O3%iDzS zlFgjzgFikv*V#U}8m~vCItg_B69iZDFoBWu|Cnkf6U&TFziBwrWvj>dcz9H#&0~|F zAR;P7>nHKj1~F$aRUKSBC(wMeBo;HN1gN!yB#b1lf^QYSV;d!>goA<3j+7kZa}OBo zYWQ0XW|(J0$Pk0Z-AVyf?of{&2m-#xl3AJ3t_qEo;F0j_-RA@Jy%jTOKJphq>wwn# z_Wh@w-|OaQ-{M(&oHXp9%S4^j?4f>n+zKJmynpR{MMZX=G%uC?<$oBgyS%Zs0KduF zL=H_{%M`WIe&(E&r2`v=yGx|0)a-w<@MS8dkBNhHTWGr!WG)Pn+Pq~zLQ`gs19KpL z53)=lT(V@IsGvmU!z?>Q<*l$N3THu;rlOsnWlb%5Z?4LloyPv;j~^Kterk-{>v8nT zlUOpbOh{jrSvCHjCH^(2x4kC(q25n3&bSmfLj4Ikx|cJ)+SL*R+a$%N)#uRr$|5k~ z8Um8DZkSW*IAmfT2~tt2SL;)JgBK{y_*&f<s(de4C63b*#bOZA98fxQ0+1q!PxfBp zyBluL`HekTIvd?$%c21LYgkq{*+Zcn#2oIDz;oAHu6;s3q5sInM0pX`x_^1BiiR{$ zqhwEOrWI4~$$@?7fd|4gw~f?kF2PC^igT^tgZV5;e49}Z)mlc+%PDXyXz`RYN@-5i zA-r%MXnP2;c8X?5DX&QHQAk9oV@azE<hQQgo?*RxYcPMW>N!gMwz%wt8^CNW{h|jq z@`<jC+8`kIGS&)<Jr25HyO#<Im;{Jj3XHMoyxH&Ov*CoVIh6VdDu0z&$6d0;P@Y&$ zK^CD9jq5uUv<xJ)2FNgJdPwM%lI44FKumL(#c7uSZxoJPXp@OdxZ<rH^wOHr=t0)? zZYnke-2E1>a{nhZu0frG)?0WoI1Xsv@*X7i3>M=^yCvG0NE-t!0far(1@@#cQEr2K z6aBC#yG4G#-htT8&wP>HW5H-sHdNO8&B{j;yE<bt(bpZUO{$u@(l0R{F);8q!1Ku< zfbPFlnYV$91@160u>iX2mOJ@?&S#)0)YxwNheyc&_|bst$pR=a0?^`v$h3%=JUe=8 zxbupxTzb^T4SwaVTU%>SIErD7NZH8A9$zKpSuTayC|Zl3pDb!(Q?LXCGLh1nL%fU( zu!-!199+RnIv4avu-iHA&ShWoCC;+Q<+Ra;kjL8W9aIGgR*I}NLlq0A)W>9J-s9An zQ&5>RawY2R#KP`ZRS9@#Nx4wV8ABc>O?aF4W0k(m&4|}|tWB(yzWW{uOxmP2%8V4T zWl}r8u5VUeq~mw{|5j;l+z^Sk_^I}%hke$6k*jEZJ!AT_t7P7=YVDyTQu8)Tyxg3$ z)cp@!I(3(Yxtx{Zxp1f37t#5d_@6_Mem{E}InD<BqKz9$SOuntKQESfViwb*MS1wU zd3rP+eogdH&8Y&;w?>~}^puF=b=s<^DIwIgcwNOdK=Slhh2VQSgGCMM&UeC>Om2!H zpv8Xbdxx*cA#_{>98{_aT4=;27Qpe0Y+HIJIUZ~C)w={`!5EEFcwTAUQe&a1Yp8}W zF@uSzu-8yp>ipKdk&UvwuRdy`3ts!4u84O&{5UYcvm0n)EmV9VALv&jWSUm$9I$&_ z`My5K^4^<0$<x<^ny^9AXif#%Hqt(_Z&C25YY8;EGTeO4#ZBNj0)kL}&^>-fWmP}r z1~cz>GH-h4T+Z25?vCTNhrSFB$-R+zSeF-B-X$^a&BcASc<5~4@af=+a|%T;Sv!Kf z6ZrH@@0woxzBqsMbblV7FYlNo<3D&(baJq_l>8BB@#%gVbt*JH=DV+F@TXM!L!rg$ z`G?u3KiMx<F7_{icIV$cExRBAa|6FgK47t}|FE^vn75=KqZpLvk@foU-4}1pzN;P0 zfndR@-5Ia=JA$QTm?WNzjo*w!nXp@MVlIN<#yVVK*1d*dr}D+Ci!S#f7Q|H*GdX6{ zW^Zq9`@2jeveJ%C`5aBGd{^2KYaFeAJ)#Il><We{s6QyBw?z?Un|rsoAG5D`Wgh3( zt$5+j-|prGwiMzWdAUo{q+>FsSi*kE?FUk;+6Qzy+o+gWN7yg|-;;_hy5kQg`4{<Y z=NnHmo<Dz>S(aQ|RFqsaHs)X3cLdz?zO*d57JH%M$|fX|;l8*ms`qs7(Z$AxfQ#j@ z3nuqTVD)};gMF<k13xH5b+{~QX)}B|xwRp%BhBHb_OfC3>k3h6`TaS<Db`fy{it$# z!o6>haq~wLPmJ#pWWUUN$+NTC&H&q!O2YI+oi+u1g1nR-brxaROgepTGnE7G`` zLA~RaIWb1DnR6ye4ikma?xLbzwQhO1x!-DDw_WCjUf<?x44h6cn{wYC&lF7V=hjhv z&s9}Lps`xg)#Hqw-3IQpZ8XpQGk&qNxci5>a-ydFuT4k%#xj|8eGY`*PKLc6cywWP zfu6tkFn@--So&;ro^NUtNTveS)OYea+zE$80Sm@1PPI^X;5+V3dQZT0pKePe^`@Lr zt_Ml2)1HXoWA}-bMmGUv;J(!8yK5g~NTncbEJaz3X6O+m(8Arp$NLa0#p?5y<nk7( zsD-T^vr`f8wJr4$wvVe48$<?ux^ID(<{)785dU7~o8k5e`udJ4Ds;-eKY^`W*)g3D zt^qpQ|I}R9JKGsO&#SvZv8^MRjm*7IkQN@FqZ{~G(n)Vr)iRu)j<=iT(EO0Q-&vc_ z;F-_C!aB*t4L2daOEU-T(;rncX~E@bJ*dc1J%{0XSf2dt&8z`mc)>1Q1^9^{MfM3( zcV6@!zI`+C?Gt!%^?F=yp24bffHG~3H+)V*^@jHhS~Ns|p$&BuW1GePO4}awqbfs= zZuZP8TsS6|e#|FEnRi~>;g>VDx-JesMZx?!z-S}dHbVE&0c&HZ3@o3D@;(f8Cnd%a zEVq}m8EgLbbSK&2%yS2rWpb<e(P4jZJFDTe^2>sb)zB7KU&razJCE$WP4W`>Z!B_` zdXFdHAJLSHT^BChFLyG~v%C2`prXb=#z00Dql_!T7g=8#c7%;IV(J&@1`b0o)1VaD z#lkqt6k+p=D)~(dsi+$|)lCf!wdyQ3ds+6lNueVbeLuy#-mQhW_}j57*T#XmgOV@X zHB3C{!GL#8K^AwzSF-*%W|Bqba&mc7VzU^2zAk%E+3f5NPc=iw>Vg;~Od19)q-HLJ zCw@Y^Pxv1Tqx0VmjMbeNZ;PCHt*?ZiwbYV$(Q<dwuJrD#`@9Xt6ChIxr43n9Yd-rJ zZH8}%jhW`MsmM+EP#tn_7znI=;i7%O*=5Nqftd0@<1k%Y8vlz^mwOnLn!xXV?AFr1 z6(e{w$iM`iOfw(w&m2)-TFxz<p1`$Ql5y;jNZRM-Da&ve!zkn9L8-0ghpozYVN->9 z%5pvN@+!dgAgy1*=(4v8y#ZZ8+wUK)11J_qRg5hv)sVv@N%kwQ^^ePp+~$D8%#$RX zQ)6IL-J0d2937vT@)xkQ6z8?VN&ao>lDv__FNb#zUk^Vov{aUhJxK|$+<3WR&_(4C z5kuY)q3Y|!gJujOB;Ml{`=8784dwy6^D7$G!>Q0X_wJCG)}XC9T%o4{1FZX)m>h>< za}iiDxW#SrF}!On^Yxhj7rPpaUldmJ5&8{2T(H-Y*89y`g2`_I!A`yOw#gujG(w)6 z83Uqwsqfeyr&xZy(Q?fzb%4*!e;N(=N^%`;Ye2lx_@KK{2OCqUc@JxABoph!a>&1- zqU|J>>vHqeA!q5wtmj%e%5r6F1)-t*jNk3KXwc17TWvwC{~LA?8TZlP<v9^v5<U1h zIL(bYt38N^;OJV#<0r)#eZv^P$W-&)uSX~-EWdBivh1UQUhi-i-FV}>LqUG^o)<Us zX$V-m@(YpV^0&eg6uPvv%VCPB4+E`3+iJo7U+eQ%cb4h`n|5xm&**uzcz!V8RZbHq z-G7;bkT(jxyAi!%nkgb-l@h=<=CAGK0GRwn1|3cHLR&(@L6=ali)ltz%@uDr0{(Yc zkJwFX3qDT4@6JBb|I4TO6zy@3wqslipsU;D1a%YC**E1m1smZQKlDp`oZCP=C%28I zIPa#9(T3R0Efc7d%Ye73VMdqCxOg{tuDpc<V=E;wMg}IyQCJx2XuH_9-0y||I)Aic zI`ia9J^R}E$AO)t*1!$?elZb8>g27r`*yldUIrMHsW~)7tqX6MYCrGyc^h!;FiM(N zkUC0E%B$N#cUrEMC=8ZCIF&XiR3nWDr2jiYbso13jjoUUahaa)TED=yb^?a;J440# z@UZE<8Ac+k9X?kWvdz=)najr2ON{Y1Cgl%q+1|cSg{t%K1Km$aMp`BG5jwycL`8Ef zDoSTe`>RXuxWb;^JlRRI`87;R<iH8seaa!b+dR9xV`_HW{rH2+F?;3A^X6Nd1K!81 z(0=m`e^<7N_468kL&@iM0e3h2wHYePO7aY!MMsxITxa{9$!3^W%OL(YUR*nDunaL) zf4~g6JW_M8(8kxBk5@(Rp4^P6qG<U#mZ3{g<3Aw~fCFq=Kj9Y(PED?2pNKe{M62Yw zXaMfI7?Ug4P&Qxrx8)Jec?%@@{IxLs7n<4+3c(TP>*(O)*SjJ!J7c~V1~b9SD}oc* zdG%g=&u-+Vtrrfnrxj85|8CHJZrAk5rxbY5^UgDvwc#h5lE<@gVw~5H>@BJPH%eJS zEK!dmW5j}*MySVp-Qi7V!^G|hsvX{eg9h!74Pn)Ok<n3gmTLiA_vY-SQj46Q#3e^+ z^UPS7RVu%@GGn^7&;L>S#JdljPTtARrw*n^uF?q=E70AuMRjOcc?Tz6#=C~yyhD6# z-R;L8ijD`bSCr(X1YFCe9QaJ)uy2{0U!JEXSHMybiiOKgd443NKo0^0G=NLOsuF<U z{CC)91TL=%(cq`Uy)mBJfk!2rKx?S0?u<&v8Od}|?2FXWah?W@P2bZmL9E`80Uq0B zlXDcM+55pr1g&>4%_Bw;rC1L57?ye0g#G&8SX1G!a(zK<b;#+4@7RpnyxhQ{snw$v zODCMCZ(t%y>{VXciRTx!!|&%vc>}pSco_3h4x_qPJ1g4tpB=vRAv?}6eNPd$MvYzN zsBf>BVA3UqWom+SXyG|$>hd=ejdKDW5L0@R8eF0FKFwW^HJc;@4sVORDS-~;RP@b9 zbDgN@liI&l&rCocqY&D*-a6EL7?8c)S~)SCyZ@}!(U+7vb;)p~Fwgl3OZG>Hn~|B+ zTMm)oTRuwlI0p{XzvJg$|31&gruxrMFprwTlDdt>C0lwtUowED{dJmOVGApbU2qiP zklP=3sP1I4YXFalASmOp@86E(;$GbE7&?0AuP3&k+_N~s1K8T{uBofVZK(D<n%>r- zC!*+ji`|(6!OBdXx{#V^q?%0hi9rfYzt~EKoK#N3LWC^wpb(P265<L2iT^hqc}Z%< zSlE;qZhc#~0@Z_R&P~XTuq;hB9GR;1uV*4vnYXBa!T=>RWnl#I8RBmlX%F*uDcOTl zS}l)#h3+A~4I=YX*U6=h$fM-bgV23H?l{>A;f>d>89CM(k8P(ULIsrt4y6~dNGdwI zoQ7lyKFN%K&BccC4;<VbJo7bsYbFZXUCcdb4D;DS=BmjNDB14m-nrryoaiP*H@B>f z8vC7BxHwGcfDm)QxeTQ8tB2qVT{nJ%Z!*SS+)7>G(<T1g)S?6x?7x{m%~{c(NcwrI z)-$VgHj#`tQ!e)Z{l!)VjPthOgsgBkF;5+A_0=S+a~AtcmZem=J$K*_`X{=*;&1Mg z9F>qa9Q0Em?N}@zwf3@_37~;$G2)8umw6*3=Og-m&^QqYzSoZqC8RbCDcH5=+6!Ey z#Qr}|SkNJ+>Yh6D8uyMpLP>kVTSMC|xmE$lnb}KhJJK9ze<Y03Jzh~6Ig9FNwnyvZ zZy8Q~OATwgC5$8n1(;b`3)?V<ZTdt&ci^oQsW!jDwmzMJqNSoHE>E(5KC2g3YTRZ5 z?CL+cK1LWx|I&;QUMbgpUW}52WuOxWg{UTh`81O0G%HSiyD1k_(;iP~!^RQ@{+zyM zpA04GaCzxu@VxixqM70U8@UZ*E1lrCR=~%UuoVubzp3g11^66VL%MR&x#7x9*GFo1 zIR&l0#BT<%9YWB9ggoA`#@RYwzHkJjKB@?ryEt55fdrgRhY_4XxEFH;lb{HPF=7Yv zx-p8sG2|edYQ6-qKw{ECCvqesA+a62TDmIy3K{0#A^e)llq0=&Tv92ODJuZxl>z8D z1c{AQ^5dJLhvd}ET^Rqh-Yrx9tvR&uI#1zGV$8N>S!{V(gI$<k26@HQt{E<^B0;S9 z#o(I02jSlKOJKc%2(OYUns5*W61$G>e0D2y2!eC(kx;9e_{O|z)0oyx_UdP~Q}BY( zUoF1-9Znlgp6WqLYZ(4bp)mU{h;*^-pR*ZQ8~M<r?Yip|yh^F*;0)1P>d1ta7v*D1 zhR-}g6`RM%q2B?7Iu|ZzwYcSQGj@H@#|B232A!G-Sn)7n>D_tUq_1sHviGLqa!_(~ zsKCjComTIiSz{-zi9uq4vf3%uKJ_|3jgU5e`%%&~uD-T33e8wKJ8mYl0vyv(Qw7HI zN^l5NXsU!~&?eg=Ro)lIP(<tS{^wJ>X$I|6XwjN^DwVr`q`7dS%9)aS#Y|GLT?wWz z=+5R(P<`RU*0yz{P1DTb0wEf*J^em=myzm{4k7pVY~4OFvh$dJ#P2Um;8g|2E}=96 zQ|mtp)>pxh{Um7^h!otO2O`Bnb*Ha0b}8{PV_#5Xwp***Yai9l2jcq!UunSV6rf~w z90b(XgF>J%3M?1}jj5uYd<()<Uq8Zfv~4j}fpxvY(~4aYy;1xHh2<jIQ56|<wYG)Y z4^Y-hi!HRO9W0RltUP}Jrrc2J)>vb#lG+w@1Gp+{(j`SFGoN2s5||Q(qho5uYsI|e z;nAQ|%2dCPd8xSiD4d&(GYqogwbDv$GpML}V?##Q6*e#V7l`<b1bj#cFuy!M4HN8S z?PM|pqfl;5rSKvYOVOU!#sVn%C6Jz-Lz%uGho)-gRphQ`Q#woC(nj_q6^7<$%rxSU z4kgcWYh;*Ff`*EqJ(WcO1GoKNqXw*@Jt4!Vmh@h#=3tEJin@alzCqg%g7K6hH3U53 zZ?FB~q(KX7!8_pIUniQ60`_6U;1Uci=Q>uA(ulXb84$;5wKIgbsAg{dX46C}-ZBBD znm+>KPYhV7v&Ldg%|Nn2@ds<dt_V{E$wzqWvtNXyU=)Z01H8iygTtsvKpe2jsYz*$ zse!A`W<IAITYZ{u?e!|xQ(cEw&2!>sWzq+4v?OR9_=v2hn&-v>uWbyEPklF&75#H` z;c-xV!Gl}71t7hOqm9RV0jb+Yo53SQG7_dFs;FD$HGzu?ewB%iqEH9J6vJoto|#Kg z)%Ihd5WbyDHsSB@H!0Y1LTDNVo=@?}5+2jY9B#J{^{byUsql5dF*wrEWJqE0h1!pw zfJ4DHZ2U^3$H22kB-=LJB|u8&aGQ@A6uYb7z=)ux*E|w_GQ!9~#)KWh{32w=V2ARq zU=+8QU=U9@MjA$fT7)MgRKZ~U(lBb!K9e`RsvWLgv(Ob7-wK_<Pi?uQy?D}fjo)Tc zpihV0eFs{<b!RRw&Q9f;Z`}ywGM?SimRiyDZ7wygVb+F*d0yM1P3ufT!7#5Cs0lWx z8ZGg^S3ls*f2UWJ9Rxm6Uxl|p3Q?cZ=JM8d`Ufc7p(Pa?s>B+T*1|_!gbo@u3hM3J zL~-iqukS0-#4n3^OS!re`&A#)IFxF`)sY<4Q#2<3tq~?pkqCEvL>x^;2VUJ|MDe$P z9zUTyWJJ5dcKN+w)^{DJN7I}%VxX%x!W51QCsWp`s57^sBl}Y}T-_Q~QAm1Csc!Sq zJ2_jXK~jR9@G2R8FgFB33*v@BNU<DUd5V~!JS>PTPFmkOIXa%ahn0`<W~Q{;>#p3b zqYdpE#ZKS1rBnDF0NOh~9ytijM)s8izBhIl*jg_&U(v1~yyxSfSGla|D|@F7m!pwH zYEhTNqP|6nMNq>r`XNW!a11A}?dlB<U?)yE_cCFwb7m6^+dEdJd>5D}Ba|wtyhNqi zFU;M~eh%UohE<@cAZCSTZp$Qvs7T$wW=>0LeXJHiSDxp-m%|4HZz+E^zxc}JVR=e? zKUSGH(;D_)L^JNPw0aaUuj1Nf{Re^>6%rf+l6+2ClEqx!+Oj^k`nMxhO5suvtgQCq zfMQrC{Ae)Dp7ztsPmok$Mhclvr$jDCFL*B(Aa6X8BsP`qLLKgP4zb$T)_rPO>zwOS zGc7&!&|`ZQ+Q?*G-{whYzDDb%yg3KooW$$vzIS|`YR#G!x}4FCB{XL4cnaC?nXG7g z*%xF<v<Y=rB5~K%z{oTZU059Up0Wu&xEtGLsY=Q%NX>}7LIB+IO&TU$b%$jV<Ox6G zwnS2+LZo4V)E^kqPNyjx!jjn&FfX*fnZFIXcr9w|_xP?YH2j1Lna_8(7{nW2TPfAZ zjlF9jI3~8z@Wn2bD>b@B`;rRz8*Nv?%CqkY2HmMKPJKBHocX@6-6llf+aq_2ycvOe ztzAA;W4}$P8p8Z~!OHV3z2-5zt_E%EugADjfx}?F<PySE^C2JzbxB<zF>6;DPt-@r zt3=Q{9rS8g4#I)D-!WAQ%1vcd&?=Y>H%JEG4l{&gSKZlB_ktHx8P^n5g|y|GCn`v9 zr^;zbdlPWGI@Q6GLv~zixVIw0k$812U*8$^VaI?gQ`@x8QdhU;5|7)8btqkt)xd=} zzEbPjN3&uHzH16weZj$=rwbRQdFR)G*O&4Yi47d#Xi=}g%mLs{u()UTu+`_tv~Wb4 z7z#pI7biw<?QQMa8cKkn3Ph^*Ze<dZl0&&U$T*n6>dp3MaC?Q{q*yF1tt+h9`_Mf$ z-!%26np}K9#k#UXSUUwDW7j|6NnVGTG?Z}vz3@QIgyFM+-%%~vFnMAW&sm+Q@i%MG zKJk<VfOicA8tm8*VfsUdb@ek*eOsg*TZOLuKB2O!I3uPAIkT+0QY?_@Foi`0brvuL zK!M`6dcYpfBRLQxi{h&aLGQarZAE265t-Z&R|F$7vyBurW<1`bUsW3CHu?!WHdKS$ zzS{AsI<V9ECSzq?`|`u3)?}Z9_NP45mGD-pG&;J6JC?6;TDz9CuaRMXDnYC>A#Eh~ zYP=Lk6LqAhOtC_!K7<ZTE5L0^L<FUxu1lO0x3-hfv8_!X+F^7O#}|utX6W9h5>SR$ zxe_G(x}zR4nJmo@F_1yHrEdl=jTuT+08~m(kZxxCa?BX^pHyz4>?0A8^a{dCr=iSZ z(-{cjlg*nzkMGdb?!;kZ0<HCJJIE~Nl0#i*?F!?uD_U&b++?k=wyZ&q-Yrv;7K69i zrP}xnHSEWn?7>Jt%1~`aEMZ)i5H+Z%91G`;P3Mk-5fc!A2~etvp&@W`0+1b~+6hJy z;j4wibR739r}9?TyPb_R2FDoORim1Zi^t)s-?Zr8O*J*pzjv2L-Jl{vA*M=!07)gN zu5Nuq&Or_#a2)A@C#VB#3b!@dss7E@@VLa`s(G%^)YiLfWHoC6Kb#h{e*=iPQRSdU zr<v;6$0}d!R`-$lE;sM72pIqCT?=JuSvCw&g!_`dk>!W)wD}Se;IQ4BWT~!FZjGeS zMJ*6=PeR@xvyYBwbpcsE{pOAFR(KM5qy`Xe1fcHl*1(^5p3Wa!yj6<5CV*SOkR(WJ zLTVF;>s7Ex8UaU~*diT9kx@t`L<Yu424pA*Vr*N`2j$GZuRFIlj`fB_Y`MUy?GxT; z-{eANIj_uOnGGt3G~U!05VlK5GGAk018#|=Cm}^yGjl6sq?1c?XUoOP5ug;R_&nh- z-5h&w$-u`}z2k20jgN`YcBH1yIQv*2dsz;`dml5pP(7U4_!5+yz<v?Z3c+f#6p>8$ zKemj#^Lc(q-7Rn5yYLg1umpTU=}F=u1Z^+;1Z*$i@WBnopihe#%63)ydcwIO;64dw z6XB@(y5f9nnDH8n$!+-xEM_7_*D>m{Fc87c6sE1Md~jBFzQa`?n5t1>-Fp9~XQ^5H zXwO)6>5`%DJ*gNd5vDzwf_OiS3WNoL0nyadmg>BN$U%7Bz^n{2u`m%7RjdMQm*PPH z8G7x)-AudIs1wgYC-sAfxS_o8e+~Ad&?xTl@h!;Rf_)j^=NbJ$B034y!gK!7pz%5P z(*O#NE(X%k%*U-!0dcZXBwCImm_i_#!3znJAf20R^VaxSxasG~E<qyW6MOEBt;5#& z-*wx08a(}76Un`4!HLi@)2W<pA4QoY5E`MY&T`A1x<g&i<P(Lv?CICWrtR5XJcCoG z#+DBM70gMgD`B1IVg&7&ziVFCs=3(GGv<FtGQ{r&mF0l>uR==v3M`YE6=M?e5h2eA z_TJJk(oXG62ZTdW^j6l{ulG&Ah}U=m3(QpnP{Vc2`m|Kdj-3+nKn@8G`(@dCN$31n zvXP+LI8Hx5LJ#Nmt3tzmA(_GUAMq>d*|A9Zn1E1FllTf)SfNG+Mw#ocqh1c@NQ^cE zUj0GMkD@bWkBMebPy+x&5rp}X%{1F;Ob+SJINS!PgF!tB)&<qwpq_topI>{3z=~lD zmx<vB0wra+iZLRRTw~$6d!VpH{q;>9v&s@q5Or7fmJvXBj(C#T?X?Ny3^WB2E2^*Z zELfJ-X6Sm_jVzx1MU!>nhO8mnw!XMW^&f_|c?^mMgD7OZ-va=!+FvhQ&ER?UUd+(* z=WU8$sIUnh?Jjiw_AvKru6H{HX*gX$6#$(R0*_K_1k|1ntVVB;ZrJk;x!C?=3G7Tn z3BhZwyj-RHYK-c0{-~a4Q2N)mUM<O>Xi@53%ObXk6RJ#Ww%eqEQ*!SE%YkbJacZs` zt5n>pfxMR_9xyscdHL#&SIarWF^_E+x58p9cVh5kD~bG`Re)+TnrhR$HmHYHz(4~f zrvg442kiQ;)jbxmSK`@-c%)e~rseoN!*;)zMeehYZ9=x&zx>Y+F1v(iP{#}Iq303Q zP-Uyi>435X$Q)|;{TH3gJoplL?^AeZWAJA$EoFN+c>Qk5P5CqsU)1g;vw|SsZ9?LX zpB&FLUvyDBP$$K6bY(C5y#30no7c5>)~+o%tDqiqM|JTAMj;5}$Bgm6-qxJ!AEr1t zxkc)VfRJ~<=X%sL>R~+{zEunyL}1<1q~P?;)Ct*BTdBLW-Rjmbt8PZEVO1*u?@Upj z1ItX^YL77Re_<h7Cq&U&;r9c`rzT4W9GMPqs}wg*W$Md`7;=ik?-y-w@aGvL-~gx{ zd%VxRp)CoUm;K9`=A0dpx8GV_Bu|*7GSOkg@|~E&YDJX=vX3|WM(#fAqmzPJeIzD@ zkO{zDyM%g3eSHCP1R)s+VkStVm<*9ga8t*!G;{t@pazqGWJ2YL;6zYiL?G~5OLRPi zDl%FhN|yOZ6RVGbGgP93TXqKG&*%*+_)(xe-^I32pHXA()!2aFirQ-?N1RNE-ha(x zp<RrT=viIs_j8fEip`2Fy_R&3v*wjL`efV6oAB=sr;}i!Ok3}PfM)Tnhf?{kc!o|8 zGbnjE|8&;<4^ch88b6Tw;Te*}J}`Wgk3CVAochIuRY1{9y4%;|&QNc6gjzD)4Rw(Q zAjc8SY(gbCFlxI&mmWx2m)0U>Tq3j=scsZe3^D{m4QT1^Y4Ee~+@+<VrNtVA<XD8n zQ>-%Aw5NmuWK7N65&oW4WiFXviUuvhN=<q@ZAwXH-(My`UXp>adHS-z`S%y8n!xYz zdQ<#3_ilSL(77>K2$ZVx?gB)}kC*m4UswF4<9POx@N{GE{Nqjt{^B%&Za%s&zdn|z zg-H9OeplH?f8NgrFZ0I;VnKr#MflNd%{EZ88_Qq+6;16$uxEs%H_&hI$qe@VfVTRM zes=?poCu|;tLE=ew;id81A_=_fIQ8W5W1H%NyF=4NnM#KM~3n1?#qj>CMV`1wNWsF zyuABL@L@T1av`;fm=Nz>efYvN8s<S`BxDL61{H)%*X_RbI=(f-`T`kg-x}ct+-q;F z&m#9yjs3xGE(#%l3IBVt3pP|Ho2MPYeD|&nW^>En=*Cv7Z96DpBlWs>Hg{gGD=tvF z#`^DL%K^%TFcHX@pDbc?hv~&kF>m<GtzS&hcaS>jNhY<UK;l6ouH5}S+ixu{?!28a zcxDiCB4;;>wFl^v>mS*>`XXa8>q1UIcCJ)Z4?=y+9vla^c+P*W&wQl-hH`UX?ZUK$ zC<Z;n#>IE%wK3Ycs#{ivE69arXk~IbrcyXOL(1|Rw0+{JuJ$7XAlwTOQDx)o5q{s? z^4lshJZ3uqc+dtQ9-LM|g4rKeei7=deOec?9ZCCVo;JS<GUSLprLDE>qEaiZ`C^=( z6dLwjCEiQugX^1F+Rtl*Pq@Nsht~{7JeElQ;)a)}cIFnw@rs}xkgXE-E~jJ)69^nl z!OFL@mAP<cdzb&t{B5_1i`V9KwOn1yaeJ1=M;YuNr$+2<axnyi0+buo_&49($JyJ{ zn{IWi#k4V`3E)M%ozu0YXKmJ6;|@ldS~8<Pg<i!O0*b!K_TN;hirUh(_|>CKv~i~F zOF=;>!b%8_XXw7WcHG~02Gju+J3)WPk{|y^({;wP-G1*<6h&iGw5SnkYt7nQt*B8o zi%>rjwbkCW_pH5FONAzgReP&aD?(9fCRMBU|J&zz{x7`of=}*~`<&}s*LChAM@<Nf zU?s$#%Iz})RCH2avQjp(<5i&fBbDDK5+$QaoD$6kzlK=TkxTaI4Dv#19AraGp?~O( zE^r6`REra(I@yOc!t!+wN4Xn^u>Oy#6(h8#X@?=xv>CJ|T@ewoIQt&9c-qllFfq~M zukh>g<*RXi2#>UqW`Lf<SN!ArjI=`FWhk2yo^XoQ1Ec6|i*~EV#isRli$hY~{Gnay zoXKw_y((491di=>Bx63uD2r;y%>-2V-Cd6c0~|KRs-VklW}Te!Za)li!u=$^1ME-& zc;vU}#PX3<E~`I!T2Dg^hlu~>*?&2Tl2WY3MG%D&5gx?S=E@QDs}m6JLup7yAL?nk z0D|fy2-J*PZ)yB1@qL|nWL?F&)-S81-nVo4wJxmtr!+(-_r&1)kGKC6r+Tt|Lp7kJ zam+5^7xDSd$LG5~!v%r5_1$8LccF=My`IIV7VAyvwA*ClB3ycil|&Z3M#q=&DgRJ- zB0bK8H%W&3TMl=Ex6wbTbE8FW5qj7>ShEO`y84)RWdRwY=OrZ~Ifx~PV0~Krmwbd@ zok$t;lY?%N?3Y48w~(?qyM1MT7TY-+&vYvX$18M>xkfQes?}fw>>P;x1Of(0&rTrF zY8zs=^6*~d8#wym=ypg{iA~P<H}$UQ+YphE5rh&F>PX1u3$}v+PzU$X%(D^MP$Z`3 zvJ$Un;(~C-mPYZ5@=1WZnpJGAfTIG+9|Lo2KJ3l*5?x09ce(XPma5X9^Ka?(hfJoo zAhG2k;Owjj|5c|0sbOmP^NTM(&`+aQk_-*_`K3TVwk_J0j=lGSI_pfAEcvo#@Pi-X zQ`FL@4E62gALgEvSXEi2Z^a{&05v6TsVI$&mrH_)!d42zq?+T=VhO+ESV$DRY50pI zXB7Eiy*cmlU8#mWFZvH*sj|*I{_O9^HuIs1)_RpxDCT%fpPD^<0hUO5RLIZc*Vt+p zz<o23oY?goxbOw7FoJIhq$1Wm_Ci|qxhEBCh2n+H^@xAF`acyB5voLF^Sh5d#w-Te zTBLHt-NJQP1eyjyk6pUvNL{+vW3q@O`cvZxsWY;T6Sbu)3RHF27uiJtkmj3}UDYg% zdFoQF{M%daM8-1RFP3&xmK{PMjB#w%ik#T8a+a%|B7OvrYOnt3P6nP2ZYVO?m{rka zfDItY32hS{M`tC1`j}%U>jEg+t{u16k0ZS8RF}*9ZhYjh%tao2P?|knQot|K8)Ybx zebZ<0mo^U<6ALig$lRM04V=~ad&|oQp2Pj#>|F8>26q8R(bTCmgcn6@PP)%bEQ)qL zxSCp&A6bmz;S|6Sh4vQqGl?)^vTuf-@{9ssO!Zan{daF<Ik^6Ed*<JpKHIM*mifKd zxDC6fCQZ0PpF2ymL7&r3hbYy|SXuxKQ&~-H<(e7w4j<7JEnptD>-TvVI^<{F|MvK^ z21*2BI1B77j%{x#kR!L9hfg}0ttz5BWa>G27l~o2(yo>bkN{lDMpZ*1fb2|}-ZI_z zSH**n&%6DFfy(NA^9#Qh+aL00qdXjDPMfC1T}1Fi1Pwxf3R0%UG#a{FS2cA(6iVBB zll>q0H(BZV?hx?Rrvn>s15CZ$RF;e6yp`{H)1JJUxBmHW&Mf`&Gv)UAF~eR9021GG z4l<I|-#!e|NqUs8D#y3pyRJ$tLLJ%_Bb$>9WEvR~LN9amZd?7f9{cwool9J4(1|&x za#}-IKqB;=NA*A_*s(JT=i(kBEkdX|YLCZ^ATQIsSRj1#BBbG6>`V3(e78BV_TjqZ zfOgA8KDcn3j)@Qwruh;S{qYaY!8^`;gzs1z4{sU4!7XpZ&j?R%s3b|e8#za@B1dFH z!;Ra?y{6*+469w^dJ@At8*#u=RGA0l^Ez3fHx6PcY$sU3(aP4C<CZK(K=LioK@w{Q zq%?$#($~Ke+TIej^MFf!iXvqGSAYvDiSODqyJes_&V4=}xD%u=1Q4^D$wtZSH)IKh z*uzCKq0*uZw<M4aAcD+fsPv5yuuFtNNaVbDf43BE32W9C=Y~cs<s(N%LX{BasFmV| z6a%+9Sm1_E^{<R{csZc^Q*%k+i9$<+XWOw_#1yNKSt?FrN>+aqfBXxe11jmNXb3XI z9t?7!F)-^wzjGHe`7ywScA|v|{EEsN_dog2$d_1hFYDAT2arM_8z)UI;G_5H9=esH z`D)S-RtT@{&DF<i>O5AO;T#Qsn}ME2g4_s$?L5XTtLH$757gZ2?CTvn6Q>H-GL{m0 z@$;(X>5KBNsQZ&}R{D&Or27L>vN)|_LmgG)oKlx)ZKFOeVj^<oA~^vfQkKXBd(sY_ z4f@=hp>O(D>6u4=O23xukK&@-a%oQa@N?TD{o(u+C5uaR6)1%3imu<=)EW}A^(67$ zK!8%tpgNCrA3H5EAe^}t{yavUpbcWOlYLn*pze7*<O2X=wuBA9j1>Pu#h`cgth?2q zl*@u6`EwW^g{#eDS5qQbeVW>Y&J!c0<%~`yCnDz)Vc?k0Zr9_{`*n|tsWkz_MMBT1 z`YZP2uHJCPsQ&PUswiNf2mazc&QfL9kuy43ql7oIj>s4KBa_5fn<e_1d0gg^8e~PB zz`G7AFMLEN!*EA!_;26pqh@n#pA2K>I_5HpVK$CsA1qr&FaN}ywmunIN4P5NVe}Vp zVm^gPZ#AKI*PA5;HF=qSG*i-3rB%G;1<vwG?uHd{fQKy6NWZjzKQUSxFbUA)H3MBX zPU_9r6ELAJc;QIl_&kZ8MGXi`w_u~bV=y(Zg2%EF`OEORG;rE1tn<=RXoBLaiy?VR z)h}-4eyRL~_A34X9YA8?PPE`PQdNuU4ONPXhXLDZ03=M-&7M<lPiwOeT|F5EhDrg! zg`FxwX^t(mqg5DJdoJWriImFSQjU!UW*(EYc-bS+*oYEV=Y!`ONt}rsL;YDXH*?!b zjq;tB<qs~Q$FOuVV-afybEfqC4zYawpPe(F+SU!!|Hvp8bZUxy&UHTXb>?VeA#V+} znrOKOUMd$}rd&CCI#s>}u!GvC*b>c9UQVu1(TL<<1?<q9-gh5P;lO*nwT;j^-0c=+ z&KSj)@t@gRSF1+x0Nkni!U$A}5TnH`q&(^wz{G@MjU=Wv$Rs52vEUqMjC|USeP-#| zssTWmA?siL@6IR?ZHN=z20nfj4Y6)-{Ef5(@4_8pYwN>xGa=zK+!XS>Oi;i5$;463 ziR{Av-pkNS@IRX=z3W(`LCvDe2+^~Zne{Z>HcLOq9yd-ZVbzeUV5Md`ri%{WZC*)C zkmcga;pwvB=zZG%*{2_(>NMNAg-&`P0g9eT`_be<uzkARKS}Ez2jij;GchvyeFe1S zrtUF*6o_Y<-2wd)gu6P6_C|@1^8Y83;8*4zPtFui%L43x1(aq0k+(U3n0kH2NjN|> zG(?2qXpgMGmsp2R-Yl1s{#edf(jRgHk$(uy2fNvi^V(PRM%OnX*ftG06)kJGlJ6r# zOyuRQduNwWoDi1LHd9%OgRae1;HI+Tv05|hbxGbO;cf?~{lAztDTn&GO$kk3VAjY% z$5OMaTN*#Pxh5y<SSO2;gpbFT7OGNBt?`x1*eKa|Y;KMe*y-%7Oyb5))$1Hew9z%5 z(E-@W0E>$t{A)xFmx$G#kzBooLY!YLiyjEDQ2mNme1?RX7ur3IM2Um3PXR;fJtiN} zokCr@HDq8c3%?DhUW%ilbl_EY{w+0*zm@1tda?lr&{}a2`kZY8<h5f<+aUJ9%O__9 zDl{>(o->PanLX?i!x<XWnbW8}tC6XoNdvrUPU*DYre2KO$w1{zrK^t~ZSw&?0%NaK z^5>o=&yPg0aJ7euf*Yhk%Y+=I<db#RqImh3tzMdJNiBEl{0~+amaKBc_%3!U>hz(V zulOJgO26D-KIF~Aw6et^Tz0np&S8}f@2G}-GNqS`z>*~m`BMb@-s3EP6w3_kSa3es zpn;D3iU||aIFyk6NTFr`FPcw2$-)(lYJ5tahOtCnOW}p7zs6Jf%0lZ7%U$ke#aTbp z!=eTe|1?W08V^&x5V@nBcZ};y$Ni(D$%uUK{AiLbd&DOJkw|}#A#H0i3ho-@vT+ev zW(XyUyy@8KI^qG?&1!8^$p^DLG-Jo!9&M`7{TK%Pwo)qTODI^N5Qu)%^rL^T(NB%4 z)p4}4@;0VYkg+;;LbPJ`)GhtN;+y9Y|InTHp4|Q@Qb%ME6C)NncQEX?yr3&I;r?c6 z#xd~RX<6>zHz%fX2{*)3&%??Qo804R^GUh?xhOr`GsoeI%r$UjjU)enX#O+67aIq( z8dcM@eJR_b?+iG|3BzfD1%MoGJuzd2+L2Y4XN5E8Np!i<-R6UEoU`0D#{Ks_SR6+L zL1|cpg;i7Tvi&l@1cMqNP7|h$%~$7U7fz2osCYnUKQN}Q7!pamfpzFDFfJpM%Eh!} zEQKWDCx9DLm0<sy%S{O>ZpS*MZyN%M%fd&Z9A|+2;kNxT1vG3B8|QtUlC={ZlPx7; zy((9PkA5+6g<x&hsA~@Y@9;HMl_oJTzzyuTXF*3ytQjqL;u%iU0FjPG#JIngQHfNH zis<c*3AqvKtIK}eD`^V?czY%q7Miz_ghs{9%P8!WMZroU58rMCm+X<R%$2c@;~_DC z{S}ys2fb$(=o1Y@NdQhhYuNJ;P>%^V*w~Hy{3mBH2J5=xfNKfSQsi^*F8ztx-$pS; zjF6FtiA98cgaEJ_G6~pIQ4ofTMrYAg0S3MFVJn`%pWfK4hr;@^*eS1;!`}i~BVH}; z=weq`sgaAav5`iKAfgspV$p-0S4t;WBmY(ku8b|sPBhjlE$H{Ga5n+mvQE=>-)J+^ zzNpR{NP^nFqMBG}=TiUhhh?9Q0eBy81oSU$e4#GeAM&ofq%Xe&J`C>)i6N`T1}x&Q z>6M|WN*ju8_Pq7>;xnFiHGqPuDQcHS$xV9jfJ?-mgn))0JUAMZJEB`RJCFO3USsru zsKK%9#(^|4GPz;M0pONd+Zi<&pW8PYk{-O15{VAac0;1|53YR1)s8etdoe?Sj*hIs zQu&wUksc|1|Da;LSooayAmY)@cI@Hal#3~6IrC5mWz3Xb##$BNPBoE+RD(5D7A!*u z$rz7`B=j)JU)&b*ACUr;XSVmDSUtE`DXg5`fGDyG9Nm@d<mEyDDQ?D|tWR}35jPp# zmCk2VlRJfC+md8kN^aOG0t~e!t<7Is4(7K7KYK^&*IJ{BF<Le5G@mGl8wPnqPF(mP z9T)pTQlCgl=?O@TAr{&8*W3^k8y~UN(!<QJn&A+kRsNZksaIAD45oc&pcI<mV})w5 zI$B5U6`ZUCAYtS8`#qpx8C!(HZx@3Tt6!z^a8bomB4y|INVawvD%PUKinVGItEZ># z4%Ae>)3Z$a>HZEX?{{&3cwcz2V2!^c7Mu%sG&`?!)0v4~?JCdVGN)d7*RdUQmV~#s zpvXqc%V*1Sf;A=}<7~-tT1mft&$|Qofk`{3l6r7M*98%o5r9OkTs_`QX0e<Qvx*kq z;M(^h%7GCNY_zckGUeWW_)W%IMQPf_2O#PLPjqS^JRM=7ySS$=_c9JTqY)gY|2kgq zLO^sNDG2NdcB;c-<*}_g@o0f~qgFcbA0ZXueNiC=_74=pVhJm;d9~-UrU<Wk@3e#| z98V8PIK>>NG^jI6LYb6|Yg12AlOG&gQzDgU1SGy#O8#b*9(D2VOL+S=c-C1hqvlR4 zc6ic%YEoD&wEr)oh7VUPM`4f_#Kgqes5GpA?m-$@9KLJTb~8TK12*EJNRDZ<AAS0l zVdDhk6E4VD2k={f;9aR4$*)_=a6XAmQC^qYCKFXkr3BnY0wcT3$)ws!wC^D7YvX=X zvpXFfo9If|n|J7uMayHr3(Gi<@7}VY7Z-h~TvHXoT~5q^j7XR&!!}ICm_h-6?I-kD zU-0RV<!kE^PaVu}<Kf-)|Gn8iS%{0NPu`Q)3lh!0CJt;!Fr)%`0sM0NAALBAUjs=@ z9{MN#^+<<E{`A<b_05=4u&E31tx|v>LCVU+KaeBqGFgmPu0tDQ8g!uS`i*dSJqX%S zrE&j%9XHY*y4um~jTJ3gAu&n6O2mNDOu5y>nz$?b?TyUk$lMbi#=L*!5MK?g-d*oy z0H3Z)!>Pq-NCB+Jt=1kr2IL4;?p&>MNKu%5J>2{RhRkp8sl^V$BeVyz(<36f9Q50` zh_fde2*SJCcoY!?=D4V)@@TQh#7Bkd($D5^jBmVt)jyBY$KdQ7<EqqcP99fG`Tb^u zByHXPOM)y*Qv(@x8LO>Kc;Mab<i7C4gmo<nFxT}|cC`rTLsbCc@<AJ*%?<OxS)<>o z5N2YZAw~eit>C0gD9w1{e_}b&hohm^fclkf<yF}~VBBN}9H9qwBBY_G@hOV0IQbzE zsIY9ykFyftiE~_wPvQF!=&~Ga<XQbJ95tTb#XqfUQ2xKjo<5GLNRD{>_++hJ=*d=E z@IkQj)%tbp9yg7(y{$WbB<|V@{*`23t-pJ(!)2+KF*qEZKPaZ2PKn;}zD)8h*KyD% z#3*NqrZ(0;Kl;%lb!s4*Ldi=S-?dt)V?$*R;;&jQ82P7`tXn7oM=U`a-}{r<PHW2u z=z2~e(pQQHd^r0x#ekf!?7zG5P%Z7AMkT`x>Yp7cm{Q^(Ko*idW!C%2fBdiHk0-Q? z0Ewox@5%3>pDsp|BLt6kU1F<8lZFqU9})eqP<@xoPu_MMgkR@5Pw?Poq2X8dU$WD; zop6|79aLAg=^~A%F0{)vxIwa?O8AvjS)y!S92YiiwC$wx6Y8g`ddy7(P1~u11?TQ~ z0Brt`MKdUnL~`z@u=zv?0w~c(v0q8my6)WX0X?0~QopZ$^LUb-43DWHsR&?+(H!|b z9Y|)p#Ew?W+1U_v5{bU0#yy*hTmr}bZC!V@!0%t<$616?^SCM5w376#CldIqQ&FOp zPo~_-qyj-YbRgB@(O2E-71)!b{ynv2c~|sEN5Fzl;o*8@R_!jJ^|jDGe#FQBuIxMI z|In3;!6(ak7u&&OIGQ-gIcm-s#_Qw}V?LIf<RXP@?HzGjo_>ec>?yU86y#ae%Yh5^ z*Jd0UWCynZSq2za(q&vf%z}ET<C{a7u1F#L{g)khs~^YAEl=aXN}9?6+%coOvPL`m z=WZ9F!_-zoRI7qII+~YPz!aWrn}Gy^ZdEV>eO{7wXJ@NEa)_SjUt-WFBqmnd+WN=k zfR(Fd&7)8Pv}|rk|6$d*{-b=GK@wy#KTQj4M;BLzSdN2pmMDi1BdI0Eshl`yBO-|z z>@`75_8^JX5AmWl2eC>7CQQnaS-Ut3h^k!u!CLk`jzM~3Bli=}mUG4*(UdmzTUJRy z@@&_6yMNKkitKmA#EzvyZ$V>_^=DEV6kwMHT+Ml)Hd=e5bHBzqQ#JAIi9x-X);A?p z&35}mV6m)@Cj-i<e{FbKhB4g9{52-Yn2skqXh$p8RurPD@@TW&>EQNQ68oU+Sy<YA zmPX!rQr5_-ud1V@i$j39b+^v_4H73mjy>o&w>K;FYjJ4T7G|R6Z?ttsd+6XV^{-v0 zhOEETHT-!JgV>tAZd$q$8Wz>A{-svp>aTN<7R(|##n@F;Rn>%9-q^#l7H0!Iem>Z= zOzQMa-h}|&cs@n+3XACXs;Vzp7Io*ioGg}2eipvJUe1lDU$KFVZWek$CW*@`ksV=g zYD4CHTdZA!(?*P6neesc?-syJC6adftRM0R-ugE>Z-sdlXZCnu=P`<+S_EO9*5%P- zYhs=Cei5llqU<HM=;f26oY|e-+vI%lH~6GJ<~OrwWh6g($WyKPjhZv;qlk=1^fIk0 z!sYmVlNK=O=kMoLH=f^k`zbMf_+H3pJ{@FYWD?LHxEbx6hK~GNE-B&M4!2J-ThdGK zY@}H?WKjb5cv*;SdS=JP#}Ih8EEQ%^d62EA^Xyh=*J`miwN;i^AO}6w=+82bcS5!@ zJhDu^H#zBGZ!!UW=wJRPg+1XIfUkr0?N+ExXH4aMy*Oia=GMOFMXmd94_(IOL&3ne zv?8~Z*{MclhuD{Fj_E+XsyRhPHucL>xbxp7e{;vrz*8wy7VPBxp1j+V<;Az_s~=g{ z<_jL-qb%EtIEB60&XgJzW#u*pbJ7-QtNfWHRKC$iTO@tR9ew8LT3Dl#*<0W{BoX!~ za3laSam88j>?gku;K>hA$%HmAhVsL$@C(Ogb*9@7Az$pv<LLro5<a%44h2{x216u% zHm8lHj%H<Nf7q40e}qn=3$39bh@KG59I~hyIOtmjCvM&r`<LRmM@7Jspi1=4z2$!= z*V>)DiKC(H?a|<=G{hVIBciYKU4}(uj@I>U9fRJvR>gGm4|N7Y_UQP=_%&j4T4Ux^ zbzT9cQYF@G1;D{3rHM|HJD<6f$9%xZ`PVRn3M~3m0plwbrFRUP>thqnz1uG<N6(`v z{l^b!rqWJ#g+&hg3;xE7uvBpyy|aX)i_8Kv5P|Sbxr#Iy>+gvPkvGD9i{iULeSwxf z6WoezeC_IT1r@x_2j8=+THpX!geZpm&3qSb>XA|<MrU8W@1xMm8^>!F_4!*eS!;!` z#Os=S*Quv;x!(B2nBG-hWn%i_2nUe1`_Ougt8k21{^jGn0t*N*LlGu5jEy_m#w!^n zklM))%*|&2c-&a}Gz58bzKU+w`!W|9_@aW6PNZ;3bbh)quftR?=tI?E<cc{*RYskQ z&yxJak(#S{S+o|>>Ie~uqoi(T;!>erkY3K7niHvrs|fj{pJ#2@3!Yh6`UACJ-tNnW z6@FJfqJ^z6DCj@Hz;5qiOZaJT0Cq0QGfYDB!^K<p=sf@p52PjLyE5q-8&8hj)R_vP zO!#?7Wj_<5Rb)1*c)9hAlS<)5A)n`fMIKP)C`Dqs84K4&tZ%!XaFw=N1UBFN+rjA% zVWY%-K#0gZ+Q9GE%)Pcbf#noTPj#wd=Oh0D@WQ@CgBoBa2VYJIfCe!q)Qj<9PXacI z)s?h{V)lCU&v7+=cKHGLs{#pqu9Y9fDIaIondc#|+5a(2SGaJ*Ri)dNd|awSUAHY= zRvzJe+Oc<Mw*owV&mNpE_YDbyS!jM2bo2}*6-t8$!^6aibJ~NRTEqCl6u=rSZO^SQ zZkCl2al}Xt;@V-Ajn=b`)~$jJDaVhhf1X|3cW*bz;pW(94#j#W0%UgG!2Q&R?GHo) zWaC9NX{q7P%W_A@Z;-N)oDL5}Tz}u2v8wQJldI$H1Z&_|^y)wXp^8OAFthq=zS&yC zM1zo18kV0_eV+T0q6!uNKT!Hs1(b&Qio1G@x&5dZB(`Ny_98LJENMw4`5}pF&g-2K zV_d;;n{jNF;jdI|9$Q8g(1rJT7S9b5jBO(*5J~~26zT|FI>=`nro-aXI$t0o)LW-{ z($r{sNO)x9rh5Z<Aj;~xy}_1{1&z%rE!5@h4AXlDOt*-W<yzE<qX36V0CzdyG6V)z zXk<v^d_t7KGwUtqRK^XC@^-S7WB##Z0Gp$mZUNAJ8RRx*nt#m(9URQJMf}N9$)PIJ z{W)m;+1%@<#f$5OOWr1y+RW0zF~?xpLZJ1(@X+Sg?c`<5vjO~cga>vuAph>?40D>K z6eI-wso>m>z@_?YS_x=oLhpSh`)~{rz9gJ<6=mUa8%*0SXnNh{_jEp5j)N+`!QfaB z`fmJMLgMEkF>myWxx<4YgJ|tKn9ut98==|m-UvbgfT&Xr>m@vazZk{qI(Al=py=bd z4&D(VpEVGi9Vwvpc=_p#_qqGSfR#fBoiqEiM{E)#G5^T*K};L;#G)tbHQ39>cFjhv zUC+iwy`=5^3FE}#l_)ixqK>vr0A)(j^hQ9FU)Lc^bs)lzEYr7`j1g<&1qpMFTnB-m zId&p`gGC(XHy}}kDW`pgOO5Qmo!S?6D;Yd;Xt~s2E+PM_C3N&>_UMn}4=O-_E$kx& z17k2tz}z?0sCo3w%2}|+)M56`MqUy8jnI<%Sy+2U4d~Vex833nV43Bcf1^m$&lB7J z9{tl@i9}#m=pR`p7CcS+XmYmWGV7=>xD$PK?scAWAV2IRcUe1j+L=3kUEva>S3L*R z4>#|a!c4;=fO*D@b&_&A#0hKi`Ul3G2KXJizFx4T5uKdH#$8Xs%y$~7vlTv0dE;zl za)qxlTZ>^z6w58Dk=cVwS+&S^`*srAM$#A*_4pDBqBlG*ytbJFj3unbrDlUaVK0PS zuOF93n~{z(4z<XbxBtm?zmN}nI~Mvc5%cz?QFOJdf+avQL}$O@^LUuycQGQ?{&v?Q z(g0v+be99)?R-kMCFG7tU>UFC6;%*AQeG!b-L<(#XUw_a{tX|TdnxqjY2V@Kr*ZuX zAd@IIVH>^AS=2HJBm7$@9D`}6hy!l}xIiH%M!8i`SPb=*VrVu6TP8Dxr~Xc~PX*b# zM1BwsBV6@}-~H5E0WYu#2hKI73u;*?>tjn89$NOdC+R_bMhHYGt!KLv*|wX(uY&^j z6?W^c2cYNFa+Rk;7n}I)zRu;mE3Z*JL}K@dEiewK>4iGGTCCAGIhMFO5`n3?&%5)x z^EM*E@(>4i80vZfr$EVHek1h{p)4k`HRt}dY+r;AldZSV&Os;svLoG$G-j5F0SBur z9hjQ8e#*&63Ut2IOmw{w`6F@OCvHNf<vP8ip+FWnVRM&0`&e*EPTum1XN2(f7T9NE zb|;v^+zUCDH8*bY)WPBcs3FNnyMNC7z5yK=c8>129HdjD5A&>pB#!J`_j;}_revy) z9)CpwB*pYRr-bIN^wdMTZ)q|LhJkeDtBEZB40jSaqRHxauo{6aMs$x>jFv_7bsd90 z7&e??HDKqm8O-+VrbZP9opJ6u%RnDdsQuE>yg(LBXVX!DF4Z~kH&nd!a)}wTnB{e% z%oHOjP3t7@cZXQwP9h(7);ZGRA<^ehw<N?r_LmpCr135tmW1IVq;?dB<#`4?d4cDX zXTaw1`YZJM2HwM;FT?M!@pQ7YQ0QvU^EV^(fB@QKh1--xgnwp@Xb_<xB??vSZnKw# zhUb$-^=^3R{PqI;sGYn79QMSiCG1LSVZHriPRRrSss5al0`T(?iN0LN_4%F1p6T{d zlg8iJPZjlNXwin;zhtb@7|$niQ^kA`zOvg8vb`BYv`Wu1*bz78Kh<Y_aP4?!!cXYw z)L{oc7(4O88GkuW%`9!|0Cj+R0sB9BoO05g$nM@4in_rpX5V$|iv2iL?@*1Ra8ShN zK9dCdc~=D`S=msgDuS=39Cz2fKs?H4vFF8vhjq~M`}cLxtgVPvbPcE2ES`6Y2h_L> z242Y3zEzj&-*TFc%#f*7VOZrr_C0oFVLm<&&nm(2`beyLFmyA4po3dAR&9GoV>7Y? zFh+UYLH}}Pq~Rpqqm<~jXzrLp<NU7VU{w)Q{nErf{8h?Xe6HowU^K>`Akrhu$kSlK z_XX;{tWPnOmsCPNy;r%yW|aB%iNTk<T!aU6V$ocFMhnMFO{WIRMC3mc5xXZ=iHJL1 zFFLc(xA<?{6>nI+db}HK4OL3Cp`Z!Y+n8YHa_My>+IV+L4CIC=rDzrs3R{WuOc8$j znJp!U3>kQKJ-f)DQ8C=jd@?P;nef0qId6Jj9$uAAw;I*_Quci1IX29N{hqLTsO7-< zxGM3e<L=Czf!}BM8u6K<ti`GVWN9Sf%`bxjxoovioHi(U?umqBaI5Tjn&18u>x9v9 zYfl#A+h9AXfObr9F@?{jiN#0?Qk1WoNLjCPDBt6!$=<e$eV?vGSwnus5RKSIRKlqY z30ZPvyeoTnnW7kt(w1VZ(xe6jzno~*PH~7^-_YX`O})4AD#S-$o>+a`YexpM(_y<z zogP64(^M`e@02KbVp2>x2U#np?pNccKQwcQDA=uevV1!6?7S9xWT7+~6z8H{^jTUD zgSH6V&a-GWAd7qx!JZFKD|z@<ICK3Oyflx!L(@}bX3X=L$BPXcThG<<ZL~q*BFIcm z1>TU*>mu<tkjoUbeX8w#^$90*w=uC@8KXf*76OGml%^u(D367JX{1lMvL})oW2{QS z3vFhD7HT419uPH<K^R~%u32~oy>vCjjYKAf^ZJ@)50=VWpC|dX0!m?{`O{gKS=zzT z56zS=!cqk6i*JN-H1mXiJQdrQzRk=#>*8WB;LynXPL~h<jBVnzN~E>2l;GKws--@U zJ_Fga%BdOe;zVJC=7h-)tt$+5HlU<jFs#jGDuc86C3}9kK<kyJ)w12O<*LYsmOZiB zk~p|N^p3v$`mA1NB!uI5%Wu*Bz^UEO+5fC`?=*P1ZfO`fxjJKe{i$!|PHQ;c$6wep z&T%udiO(lX=jZ&)2iQ=B&eWegCCwsd_O#4y4td93>n<{;IFVT{f|vw*mP)Sp{Qgk7 z{HK*n+VhUj`AqobX49FtKuApXl*~XQ>x8aaAS7!%`ukIgrvJ@e{rWbC-djus`=MS; z1T8G^*zz&Qyq()Z?i?5J-4b5ees5^w&}mHKAt*ELztFU&;pMNux-CO`56WveGc^4Y z--kG1)kf@R41dqto;NQLnif>D>EJTwuDsej2kzkxgTR0BvzE*SYp$KOBmE6ZG{m~c zwt}wxp>8bt_F-U^nOdjIjveFPkXY<4KloBhz*Pg4q-z3a>P_pld5}@Q<L7hAW2Vv` zX<>O5bo~i@K3`WcB02QImW)JtKoz^H*XbL(33-r^5J4F6&}>h~bWy}xIZ8S6GmWHx z+t?fr=Psz26r9dUCQ~O}{1S+!q35{U0(O9p(niGkskit&;MOzvb`$RRf?{RzKlzn! z+V6vkJ=LI01<E`+u>-mh82CcI)@PM?;D(A0?)Z;(JR=%R#Ryd<v=eLl(DeY+PaoN8 zRM*9kI1LGflG&H~kJ)wG8<$(Z$FO~cdqP3eLd)Wlf(6^hoy)?7!VUL(+_sWRmfzaa zm@cOB5ZVbS5-@1r)zpl3?Ixj6?q}a;o)1wXeQ75U-}e}BxD_L&Ki<ETpR^lP$5!}A zTej@o$e_BNY;R83+jEfv#L60cOIS){k?!Vv#et+ny%7UIk;&U7i|+^>7wjc=RGPT0 zMP*+eGe;yS%5g6oKN40LM8?1g`t-Cy8U%hgjPO(<nvD~!X!>AAuYt_fWm9qsb>Opr zBY-A{35$?Add=W|WgvXsBE|XQ=Kr~mo$?apMO9h&nf(r1zL&2}sIgZgP$@1A7rLs6 zeU}%Vw{%5GcSrNIQKp&t8o^<^tfJ3pY(V;Sb{v>(1~__aRrhD&X8CKq-Y;w&hQmsF zjz_-*^Af2*b6R@*wVS}%m<p7IRnAD5%{H-_O^v|`i6qz+5vS5|EP!j3LKE`ZKpC2x zsk)p&FIv<^M#&<=pxkdO;s0dl%e)=i#GaNXV2D;)6w!N#zB2K=E%td4lq7lEg<#uq z)=rLIjVPOiFkB}Um&prZuwRezeXm*M<g>k~%~mM-T>xqpWw-d_NX}tdO+C~P1<Su@ zfbx!me-kV$-o==^r}ovS{IR%8r(|YmLh7BnwK}%7J5h0jo;tg14Vs-IZV-sWGz7E? z6mCaVp0DSBE&PIiD1(sZ_3zGMFJ&RvkW{h}(Q{1eCV$;JM5$J#66wlQ>1DPg#9KfA zY`V;IZf#57$=M6gB5dtuU7mGbTcEB><W}fxkF#mYQ3GvfO?3(lU|`V;h{IzHZtmrO zIa!-d413!Z^_@}Yu*h%U8yi&fT$@01mD*ize5SDNZk&0YIRW8+aSQ$+a9gR!a2Ee* zPcADmIl?0yeYHvN<^O{!^!9ee7=Upgs!1}hk!*&jfC_W@aMj#DCZeKJ1N+;sipS7o zPLDE*xNy^N_cu1Cu-`DndgLOcgL$vD*`OTs7L72s5@$7XdER?3J2WrC8a{`>1|OAE z@ITCediqb+7ul@EI5RZPuW2c|;VQP2bHH5zf^K6uO>il`%h>nNpKu7Umyb(-+hbmR zSZ+Scmj3cS@5a8J(F-hcOJ}<)V7&kGb;)MK`ahA8AXPCS$&+3x^gglV)!xdS@b;gu z$(Hz{c=4{PC@fF<%?oiWq<034+-q`=K-%)tJ{%h$1(ScDdk2H-z?eWGQEOk96W2c= ze3AIV*mbQfDteW#i|Q>(zkw0Z*?v8jE+$V(t!P(OV34Ck!4C_0RjPfb#?f_VKXh2k zsOutZ_np`7vGpcZp-=AXSZCYgW`w{|)%4zFo1e8bgn?ZoDK&kqA8RWWq>D|J;IP{# zrDaoX_jOzdxC^bG_{BZ1KKlCiO+hNGdd`0rih-uQ-t_+TUL|$7=wMweeD1nqm^{g5 zx;T60{*U9j;Ty!etj1@EfMU;qFRzJJe(kY~%%uZ$HOsXHUb>TzSK4~H^4)mYpkBTz z_f9E=L01TYxt?8GiRMcpUH*&VuX>6$M6DzQPL+Ay4xW=Av{A9{bkG<=$ttPrv3ru_ zD9e1IXM(I3hTf@`!3JkH7e6XJQKIA7IS$QF^^H)HdT{o<U{KL^zd7Y~BKlUhL6=RJ zS*f{K94#X3-@CH$j-#u;grYZjE!^!Obl@2^6nNG7SD<Z@w_4&NDEJM@zBu6#c#v<P z_I;L_@Do@MvYT4zc|X`MgLr$eVej7b9`Dpfc<X5qT%o*9w}yiMR=EO>0cGb_DNwM* zFi@@#gAm!u%cF(Q0mBiqE>BnMb6{>g>~;cVF|J)On)190_A`2~9dLR_e#aEDu*%xj za!tIST^idz=iedgdrx1gAzN;PVvZvt)Jf8+9gnRZW+%20=$#;C*-qR<r<s;6mnH`2 zU4+F@smb}*!g19C^c?#l;X23^aL@kE-Qy}2(!WsPZ@4bMk&PyZO=BzfwgYVyIR^9S zpi;hS*n%Cs5c2Kqv-Z~WN5h7yGDD(g;cz^61~JST1aPE+L?kY?hu&<$OC>N?6;hPw zS<lt4$Ka_mU`3#mZ8G_+3m3-5sB6xKj5LV8znF@?i-~uB_kVXax4B;CG(FS<PqL-2 zh(y^{4^Z-x^tv3IJ4UY}3o34dQb&cMsIT}89H}J5>d;F%O)sB?1tB9v8({x3{q|e) z^h6gR|IssN$XNbp%9If)6zxBZ13(m6>g-AOn7rdO#H4A=^GFXHkX=xsz)BTla9qI4 zyM32ej5N+Vw1vljL&nkW1#0W-S_@Fn={XgZ`ximkg=t|-oFuXyt=UMQ9UyX-A7Kix zwQ7%B+{0mrc*L@xYsQM6K*9D~Sy9$nbMoD7i3NHt7S-s1utjh6p2^x5tWy%I98um^ zR@eY0EP1a=fMBl0$miS8Yv~1h^U(rULY5;2*rgl#OmlX)WU?!=yD)80{XOo_H>Si_ zvYK21L7%HsY8dg;W9^%nsei<VU`=N$e{OC2x%aZa{15!s^HcXC5**jQVU!@A-l_CX zK$tE$U;~e1HY;lHEa0ZVPuUxXKT)92?Rbuq2hpzL;e1a~SlqT?g;zRv$tPWuZ=J%Q zd(CwU)oU6x35G>B4`LKA%IC?pvnKjqvyk1b`vGi`#(qT#qTsX$(%Q{;`E_C7hi9c? ztQuyiv=Xyi6xs8;s4jy%v`hhW*>_>UWZ~!;SEmrw`vgLv4B1iBbLImE4tA?q5=(Yh ze(ck6W9o2v+@ZjBal2U`jdIz3S|+Y~ylAdmxBB*Rw4v}ai*WF}wVQn+tQ|A=FR2=A zT6@h|FUWN~(}ghU7+^xW&Qy?>w*1iW7bR(VEv#DAEIZ7nMRs{letc}e>-;5lsoe5q z%V7yv+fxJk+5)&>`#NSzu{e`0lP@vbtQ>nkP)|#A1u?HLUI^${v4Eh)v-dy6`IJzo z-r4vW@%5Y6HkB3l*2I)LurR_wpT?uq;0)Q08D9=BW4Xa`k7L%WhDFaRX(gmJJmNbw zj|_O~G*@~l32|$q)*h?sGq-$3kUc~CG5c?8=5lPxF<2(>3WM#_*X1V(ZA|^3;LFW0 z(8NZndgyhs-xQ=^o9yT4m5BYVH-BEBi3t01EIw=dI&o^<yw16mK3l@uUpRf;V=jlW zr9I0l?U4aT{OLmxbw$-(jm}s^Jwo+!Lhs|9x=)`liB9<~;YM`RFW27HK}?{{mJF!! zd-$&BqYj<i3|=Q)X64<&FOwT<%#Y&iT=LipxYR9cO}%99cmauAd)Ckd`<f!=jR2X` z-TU?|<y259Lnm|9&SpX4M*@lfx|i_J{z$0|W=NMyIzd(jo6NdOqTr{COM9JcwT`bI zOmXYc1qg;4Xwc2-;>O(rlBZq_ma9bcC`Sv6GRzXXNII%0svb__A%3>h&|*Z%Zm66b zlkhT|aPSM^Aj8@Fvs(hB)lBoi^R7V@15n=@^C!j(`d)FB!>@1T=l}STr*ks`G#8>2 zZGF=&n!ORns^W8K$gH=hJ_#N{%E1_2l{sW$3PnkV#utI}$_)SMB<li?o~P}PW}(u? zZ@EA5e=4np(iG@@uq&Y*C>>;c*|9*?TS~#t<{%R+?&CNqcuHee{GLS+erKRQmHsYJ z!v8|RD{URR-TmKVF3x?1-}7{iYw;QDZ0;I&l?0yTCuF(SdaBzuIy1vh&V^T+c&P(; znLa`eD-yF@Tj9nG-Wk|>tC)3ay^;sw7@h-upF6K)js85P&Gzik4e`r>Zrv%tn3@$4 zl7tWPRqD>vnh3u#=bC1Y*?7NA1w3>*d4DD9VKmU%k8}K-MmlN+2r7js+8axH_6QQq zD?ZWE@tj9``2ZtRL>r9ulGUDZ=Bcm4d?~8!G1L2WUVwTmw)GW&7k79!9RJp?#?EMn zMzEsZ+G!zd;_A@=P<X7C&T=pJmlfrvBHJ@=_7*l$tG?Bq`G7jv#-$@E>4Dv$2hxB< zPbtA64O{D_9D<g^siEaT3d2R42Cv6L+&H5P;P;iVi9Z!`?p>Uq5AM%mE%krS#VUK+ zJLJ-t>}Fhj6oC8m<Ue2HyZo?u$C#n}_{V#DSeXI%k2Cb6cyc2@OAkcaSM*HI{cRdz zc&n|Tqu6<p<-nsKu3IqtISz`Kc1H+0ER#bAksm5u#Xf9hMJYyGCs)bV;^FQ0u!?NJ zlc_OF<9=sTCc-5cTI(?{mh%ZOf8pc@|3$Ax)zj<J3L|I0-0a|p8~(i&bi^qg`Z-;G z$GbJ)Dc5#GK6>-yJlwS5^}6hU&G1)Pp3w3j>jOW>3~ki4VY=L`SE-?onXtG|akn+g zibG9WbOA!((rxQb^gS910(T6w{neTi@)J0AT+dN0eSPZkx3r5pS45x7F)$pq^Qa)! zdDWTBUO%?uzFzXjH(`TJTx(9}H!1;zO{?;4U(7HKj{qo%){bvC&%4r{bKk>Tdr}xq zn|vYtCNOCpmDhFgE!#o+@K$=URXe)<WTIjOr6!OV?07o8Jo}qLTFi2V=;bp)N;n#M zTDFI))l<bAJXigd5ucDgul~{2z)Zc<0Hxn~9~#o-#H%;NK1vw_R&N@DWld#NHmEMU zWBaFCPn+S(^|?tNZCPGMp8QXr4i8D^#6MT{c^;L9Xnw}vGrVeY$UC_gnlV<uzW1X( zCLeB>3dzL&-a?#Egh{NF?c~G!e%bwGf|3E>!n<Aq=fdg0-Fu)%D$?ls_A6R<YM!M) z;;>z(is|6?aH|ls9(^POc|{v7EGC-l_2e>TK^1l5fZKZnxpT+*VXbVF;D3?hAO3<o z***(YOCoCCo4!wZYk43h&6)rE{%V3tF8FDebjeGpKOL>auvPS+rp+U%O21Q+k^GVe zytW31)0VA-hDFI?^)_|PA~sifeUF(VK<xLRFDt)}#~KKXtTs~&@IRDwqYsrq`^n@Y zeHvlPavUy>30EJNgS957kRTvqnq}_brsvDP*D}S~>KAvI=QV2zDm~GnA+FjRf01ZN za8PB$-{^T>t`HVWOnC5IRJCcVP1jj%KxOyES?Sk3mA=)V|3F3uL@r&`_o%Lrt_%M6 zy@a90nTO{ELf$7=zUSYQFrG^v3YPuPtno?LH$MB4IpyX0!w#xFZs(WK5_;&adH{Ng zeJZ6A1%EA*$@X!{doWw~{HtnBf#eJ(zUX_ZweTGYOW(!j4}1JaA=A}|y&*$>lgL87 z+>`B%(pGfg9^pe<rLBm(G!Je4VzqQRLA}-$Z&ce9rM}mt;E{iNflJPVf{&EI9^m+d zUQ=4LeEQG`uLOjx6#q!tCd0T^jzt_HL_he&&YNCka(O$7RB_DQUZ(+-RS~SAh1v$V znmopt<1+bI*{#LqgsU$RQ!v^dt>BBh5_Q0NzlVQrW}XNRdp2qJU?2RGbUVq~6s3{K z{vW)op(yvk;DnZwKY&5Lsw%<1YP2<S6*a5sO@W5Ht~Db*U+Vla%T}r)A;6K$1q9vN zcWDbS=cxVeP+5{iDWUoKG4G$dOuXcDoFI0i2*t&ZqVSOXxi1ukn#8@7*0jomvb7Dv zMORfju4<^>1QRy3Npu3NZ5DX~(U$Yxs7r6heTVjiu_^(<7L|a!K)+ghvEB8gn>`t8 za2RJEYb$B?#EeMjLjkIlhx|E162e?{SrG2_puu;S$twpVQxKcTvLWuR?umWPLP7Rl zv|p&F-1AsaHB<FbbTCZeRJx#NBJL5ik-5Z6_*@6CotjVH7s6k(f6MO_7F_5vpE|aS zj{aO$$8m3Uf;}xQZ8P)k@zYLy)O}G9F)w`XB3@}j9Yjo+^a1YCdg!_CBq&*uMoweR zrB;bZPoHXq<8^bB7LLQ+&dJc?4`WIYGz7?64=&zmH55PA?T{DhRY~#p25;Rd`z)!B zct?^M*_#EGX@ws(HF)sGmiVBegShDtsY8^qVVjs!*_NwE=W5Sq|HQjKf(o8bWQG5% zrp=y5rSaYVSttL;X=8Jf&~oi(1O+_z`Qlb$r#>cyy+bwq^V+HB6>V-bF-^7x6kBb6 z%v)b-U;_I0B6o<|QLDzA;+yuL*eZ5YqL+iYqXOM~qlyF;j?<hDlwPfX<`?^e@R10= zsKrpXUu?VvDD<D|o$}TUaVQ;v(p$owgU+yilQmHFR(lCphOZeCp=fjaW57*GG&B+Z z;GQ{lmET}XX%STDfz+u0tIR5V6NE!Z7D%-YtA2P+&fJHZKVz_PHn*L;-*LBr3nf7g zz~;-=A&|G;THseh0uL1%IGw-pVUJ)&fldLt*eoj;VfAg_kUD@KliJ!BGrjVo;Q`=m zeN@nD%-0o?%;6Lm%mlqJDRL(T=qm!__==?}Wj^d1ot19h86=Yg1#=HQrf&^wE&iae z6mVwkin~my@DeC6zjuv${p&6S0blG-HV7f$P(=>G47a}BPhZjODYgxbr<EKvji!n; z_iF#`nKETO^I?%SlrS~|WIfcc<ry0mXB#4sPzgJjY<d&C5Ri)Y9~Uea7FC4MP30xL z&v}3x<~%Ef`_>2)@W+{pF7o$irDxEmd^6i48!i2svGQszSP4tOWQtDVlY~b*haujZ z-k%xq+00A{P41<f&ydIrXB@fmXquGJ9PRj^V+O=v>VBGTc~<WOq8zVTe6a9w;R95* zuo!8p8fGzfe3^feHu5c#tkVBlaBnNmN=;w)Is8Ll&)0KBwO%&E6*B!qx~08G7+b$J z{vf$c=4FOjTW6s$Y~b(#8eS@Ej@m}8&!bwB(_1x`?HYQd;UF6RuO*&Ovy?=uD3so+ z(z)a@^-}WE0OFgtrsi{-MFgyI&!Qe-<)CLsb`(7^2xqeYS%%mI7SXLpJVJzl+2;F? zG^DX<e$$R{&Zw2|k299MD#1WoGOI_jHZGkw75>rSmvrcBwe%H}^w9V01tRK7wdnm& zMe+_!8?<+io9DyD*CB5f2dkQ#u>DWf2o8Sc@drxg*&J~HRVG{?GKYr{PHw+pnJC{h znWz$|mK6zhB8(TERqo-aD7czG#wlQ|uB3cUN))VEua{Ogee9$%&5@LF5=2;x+E$XC zR~h0hA+MQWxcxn9VtTX#*7wPY=T@tSgt8%ToO3t3;_8mQiV|3y*iiE(v}@e&8?tbE z@9o-I53)UXPgxUMyqVIx;T)6efyga+CcSyKhG=FRk;Sg&)F~LEj41vrY_htM&o?2} z%B>e;R}8SRVAW7|7OvT86gJ#@zmAw1K|~4~A8pue|HAeJFELC;7@8AkKJOVPVb#<q zDG&*~@-i|1eIu{6^nUs`!EKUWMrKukg>UDu%aqn~r3+;lQD8`ZIhYS<no*<wWbpF} zokKH8piLpA%N~VEF5*tC!?f?l(RBG<O^u4$-jMa_wVk^T<$O&ndd|#z1TU?8n#KS` zPqmWCKq<t{*6zW9_y+LiZEEw&&=v-pc>69ed$cVt>{(@Po}MMju!!@e@}Il2796Dt ziQgKzGk*}p$QW(o0FDbBtL=t`m|U*Z78gARI09#0kFg>l50^EwR+3Qr2-?Lv1KXMQ zzk5YhrJULH_dLM@9h%2<*qWUrw=j;bCnolE-g@X;W#u;x#D|;CuegS3Bs*093K(n< zKSV;V{v*pT_m9toi;Cb~QlL&6yNIvpRISLXst*dv+)=bK``cJ-__eqHKJAb7&pRV& zo!{_*6O-${9A)1=FzJ<;uc}LkBq1okeqgwHl4FaU>l8N};#U&#$N7O8#7x=V@+VFS z8_<jaYEhxzlcyEY#874iV76$MUs{@%)984bEo;T3vzc}TxXHLET1|cDYE4A0N2;2c z!P#b3x^b`aWh&woBOX<I0?{}eRJJ(y<jI1*{0YzsP2@wn=u!d9Mw;K11T>lybVu}y zcOqQsiY<cx543q=)K$4cOHR3H{y28f9opgdTh$6zFPW+G&8f5hrRc1m_Hz=6TD51a zLDLD+VTQe{zus1TCkwlA24rgtHiLvO@0)$_pZ{%9y?W3n{HzElg6}8+UAErR)8JQ~ zE~9h-a^HeK{T>$u;mYWuOjOXR1<IG)bkP8$f?3L!z{iwqVv(M=dRFfIh-E3HZJe*q zjh8`xa@t#5aWKO@4F*9&S@g>k>(IAy(v1F)BUp-q+%!melRiYZ%DTd6`Jap$LpP%^ zQm6d?D27x(CuXU;bAm-e@i}k+-5Y8svv)}6hJ2lR(e7K1!@cz@d94d(p!SEgq2$if z_76K*0EcRixIgOp_33UWL@$W(v#%N^?2lN?*A!ow3G5pd;e7M?#F9;WjvzUT{MLJ3 zO)n}Nk*B^30S1!yKkav5B(y7^mvldH;Wf*r&E72C&04X?Zv_{vi~o;>uh}79H+4+g ztXS`|ptT*@;hegutQZnHs?IX9bQ?Q)`-dh^^t{hoRptsndN`Z<D*PrL#)V244hsIQ zqB$QB+QlQYyMH*)l+a2qk%Y*X&SW|>SMa2JL2vtSew`J|M!d?^-#)uJEXK7q+OX_j zE#Uf0LnMsJ{RxZkGDoZ;9ZJ`%{mY)52CmrwP_;JHi|H2KpVY4f>N`KA%Lg%iOsL&M z_|`1@Qz_*e6tgVgt~^f*IF(bpD*K-GT*WopdZ+-12rf2D$G*5|_}!2zWg~`;?i<!@ z=F{~4<J}oyJ)=x};(cF3H;mp|4j1T7gSkRpl|a$U{eLngp2E&WP2X&KOk?dEI&9_p zC&Y=sQS5v64n8zMg7_UHD{p6&a{{mbG;h#^+ZylmHDB61xt_%BT4%z8_YarN<&Wxx zse;}HY2{XBNwsi*$_KXgIVJBbcoygs>uo<{=%-P>fX1*$kc3A1YNirWM3f{UG<Ube zP=)cBJC#Roz0S#ClvM)sH%TdIX5W#??oanm^-bd00`Urnhg{#CrMebDTw61QXo{lm z??4J^FqV<Z^HRL5#wXR$4!ihR<BG=n;+E9{pD*%Y@@uVp=M$c{gr|5kLBV<wvjT#z za<TLJ8P#GTZ!|qfO7@0-SG)f~co6<40M^@S7fyM%1*jBlifqA{;Ya7oD2;MaRlJ1W zj$}S1aVn<HbKr92VY98cKkFb9C~R}+{n{n6eP>aPx#)&B=SxR88V7VCIh%VBx)Rql z?AErN5&NKJr(eVS0uGH)ps{2RXIFX-8kA}P>6d{&Sk3HnPVax)9o;-euiTIXCGnCO z`P>n62FJH>e8iTRdtGu!02`_PxhtH{OuBscH=2U#J^ka%gR8ER_vym_yb#+^M~&{= z%J@Gs`zGj{P5InFqYQDPBkh|}S2(^j7x4SK{o+rj%@e$S(DnD6;Kt4)pVn`;Nh_Y( zS9-`y?6ogiR#ec87&vnGvj-6a4GTMp;w2}{th<ofrb`oWOq0Tyk~JeArNha}zv;5z zkz*SFP~gqFKRIKp8Vo#bD7Xe;jF(rFCs%e}{=Pudvo9SEXoCMo)K`Z!`G?&rj+AZ$ zVU&cZfJ%2rr$~r|z(kad4(aZ0q?C{jK?e*8r3ZpIkQgIIx1($9_xOF^_xfFzmw$P= z!Si`O_kGTN&ba~J8_f-2FPYy<vXRuARvPYzPZMv^TM91{6v*Vfj*V)ia~R?P9$o)t z($;g3WY4HYmb&DZpW%MTS=ywCsGja^=eFJTmBxS>C@<)L-=A#aUpsYkFA;{6wrhNu zSAV@K7y2HDo^NaxAp8vx{AuWz^Tof9)w$W5`lEpboq{nVP}v;?r==TobT@KFr=iiz z_{Ecn`tc{m8S0pzM=*sL)`)GVso=*^_A|`?=<1iS7=c71H&{6)7vQEjAq{VPem#KM zgWt&wsyQt^(>D{O1b)I+F92a&7qC(NS9LJ<Y`n`s^Iq}=S3X|;&D-rQ-;R6?U&`DF z_szJ@t!lCCYdSjjsJ7=fmhO(#PGv^7`(I~D4TqKIJ}N*-nwulk-&Z`3KDyL^;D$Fx z6wT%FCvDwaPpV)FuhGc`iN9sXA*rIBGB-%_0NXv8)_|~D#7%l`H$B0YI}O{Q@Xrhp z>N0nocuYu)W<SZuzeWSMOE==8La%&8Eil7cSQ9F@bz&_Ou%VbnHCW%{org#_vwMei z6NsJmNfT?dOI_;qJda`&CI-lDd!i$OP6m7$B7EUyg!1z*)ieNxM~c(Z+x&W>u>s&e zi(gOp{tp^_poIGSJO}uR?~eZ<K(D!+`mWN8yYcWgS*!N?b$*EHY*e_Jz0@bD@-U~P z5qQ&g2F}$oA$XIPl`<6?k8C*6ro32wttF<Ly*Gh_WkkxyzLfIQ6Lzqd$P4tKhoN?_ zOHk0}XiSkgHcQ2dr;r1B7cq)9y*40!<R{Oyp^-nC?cyA&-2u1%(Jem4RgsyrV`E%j zt4}0OuBKWoI0>~^fA&!DaUI&2XmTV^vm@$^U8(2V6YLr&m-mk8sHguZeSt?j9jn7w z{kmBK3!0SRjvoY`$VI&q)a~#Bb9FbqJ^LKb67v!M7z$+O;=WR1AFA}-8RUC<-7~3J zyh4OmruylmDqW}=h#pKdyw>BG0Aat2g8jN=`}!uC)uhG{{S||E!oRfYl!VUJFImly zvEB~aQ+#oop!`RNF~D9Wmq8ehqj|Rcg*Io}C*!-P|Iuc*_nEb)4lNDtv2LDr^Caf# zdK93yf#?bq>pHqDADcivl5yH~{e+IYigR?ns>%ll;(uVxKS##@)`K~)K<0JVq)nP= z{N7U3&#&tPPX0KOx{o6%P;`AEpqOY9U>n}Xy$VN$!EaA;wODJ)$1!U24vcwre?KXi zFW-q7N!r-&w`exXnudRFdA!}Jo7V+=fQt&T`wYfMqB7)+0^YPmQ!Lw+*q^0j<g;ec z9H&{vfsN9#z+;)m7MHgM^V(iC<;dd_B8XSbAgJ1ymEA*|#BxF{(#~rw*qGY-*!SbC zMQF|PlV)f1#m+XA$Hb2^XOuN#@=4}L*;8u~m$5sI+&JkQBrg$x=b7a{kC%eK;SY;; zMhK;e<v`24_?HwjMw8|LAp6SH&mApQ&B!BiKr5RX@t!@`{gwvXc&!O@oVw@TOirfa zkcRIsn!el8O3<V$2j~arYl4HGV4vTq3sDBaqze<bP5?2&r)nPrKHF3vIDU5eiF#ZQ z8MjhQJx~6fE%>$~daqMcpG54U?xEnhAMO>V@ChZE7FfZawgqOlm%IBHGDCgvOqX(` zQsLAHK`(E<eyd1~*#T(hScc{vjuiagEKbEZ3pH`!b)wZ{oMt5kRFJWqF=1P7FVuv; zw7jU5n%i#i_6cdd`_IH_24KDpJsA9gXJx9?3~NAH#5PU^t3x30-)V?xtBz300;`L5 zmLaS}YwvewiHqkdgO4*2vZL@UnU1KYO7`<bW{I5s#B1RnzRdo?Jt7O|8y=mi^{oEQ zwYdBMn9^{EyNUY$fS`@fe-W7ldG*~&a)NrC6eTzY8=F4ZmOt6+!$x3ob2F3`mwm+w zI$m->xQ8Fa)YR_Sy{lF{Ekyp{%nXR7d+js{$B&~gGTIGuCAfA+f*adTxjt1lm%W_w zcayqQ4*vV5*-sgwjF#5Wq%C47wfxHPQM>|e)@*~2Ke}nspc}_WwOU_9OU4MM9s79Q zY(`DLwQYX$xrHT0xcYmeps^8IPd8t{y(U<R;<~;yO|0|qE8B8AQR#xK7ztw%9I>|9 zo1LUin=FGd?*JzI%*g)ujcox_x`ND)3oH?DUs3lf{%SB_2gsp+uZF6v_MVfxbw?~8 zXv`h;plIjV8tikKzzqGSXx)DMa|)5<HZYb($h+GeM~Dfl%>xwN)(MmPEpVc4S_#r! z%2$uVy|`v(b;;@ABQh+%v_sL4DsC2-4+Vb~l(zbVd$CDpW1FHTQ4;h{XA?+HYf1gy z67mTX_)xkugI4kfj2@4bpa2wPh2L7^d$$K2Bg!SLo;1hprsM-PD#oR&&)n!y{_-xW znuahBJy>+zkM<wEYODBF=Z>gwbiuB!dnMX5<Tdqf<^~anHQOkhdrFE`t#(I%Hqsy) zApOCaOt%^fckcr#J3MM*v%GGr(HAlA?<5saJ0DzTId^^bkAu!{i%hLU%4n-#*6z4Q z(Bcz`E^#<nP@qFlpE(g)Q`r+61)ZI}v-t;_4c&qp-LaL_<O}K}(JDB{yZ;R<77zfg z{ZXlnY|aPesG<*G85|kAI}ufLP;?_$pra?ms1ram24-B9>>-AK$y#9(dnW?*OMDFf zGvo9rY&DJA*vD{iRZzm+cmaU_tWt@%WUe;J%%vsKh{Uiu54IN>bd--a1%^JrzKZv1 zl+uNNs(lg|+Y88);d+$K=k0q-B$^OJK=q#?`oPsXO9f1=HCO<6zLVm&0Lo`WS2%zw zeG22sh@lW*jqgwADX*@yj*z*#vJiF6Ul{Xp<HT)$=s#W5Z3jWv(`v`!o_(Rz5m0Ea zB)9WT=?zoQ3)D2h^=MIXc=q<Uzk4(qost*=Ltnf|I}rMi@Lk%@EBZm^%G2f7A|5}% zL49DP((b2f19$&PLu6Qy*g%Ng$3`T)E_-i#gy89O^@M$|iXFM%+B*kSbF=7)lj3<F z_S?U9yt+Rl=_A-5B@jOW_`%EfY&Wknv*JYE?h!H7LArlRr%hO3Zi&N{&C5#A@h~o3 zeSmM($Z2#oE7CP{(XikdYy{*0t%+k?-U9V$S`vI6x}n8|?MCHIf_HJm`ooU^DhR-m zgZKW2(5VOCkifpDwfWgc#PDM^%9mb!{!`P&enAX1v6P3Th)vwe?QajWxTBo#%ILsb zpC6^j0%D!T>K~=K@|BdzZ0>S^Q<wOzAMKR>+W20(IkQi`tookcW9yE{AGD&|ohtv! z2X{L-o8&`h<ge)v51SdTj(f$6&xZBLb(n0+>~Jc@EwE&a8y<E;8K*AA|D$6_LzP1- z@(chgYx`R1vsFQnpl7Qyt_g^pe!}`@dhoL8Nzu7~eD~y=_R<}dm*lcr`bGdt^@yWY z&sJ+nPL~HEQMlH7F%4G}kRi6|H8!xA{#rLbZ++=2LvTX}IXA<kVtbpqzgGjVQTXmL z7q~+9lMc|>0h`R8vxdDT>3JO5rS;bKRa5<)Y?w@N{Lzi5$U(4@9N*TbZTZRDLCJ`v z>fA<G%s8ncyk`AfMm;3%Pr;>Vl>8<&>HjpM8f1KeU{QJrax6CwNb43Q)eY<*Z!z$M znsFj_PRjaa+g_ygD&bM;Z0?Bn_vh8P2T7V27nqJnm&tw%7dk^yQQ>~L`$mSY-MLJ? zuBUH$!fHI@{mx(*Onl=oM~Ncmu?-J90O^lK*&<P1-&`y~IrVnsJm-r58aSn|&|M0z zK^yj~sy#~nCxlUL#8G7s4i(Sl#V)*QNm6rI^_QIx=OODz*BS}#@KYwTA5h*mK9}9b z`T<9~$A>ohc{CRj@t>u*+4X0Ze*<r-x{oF%l-wa`<VAdBnfH;hHSm#;UsNfl6k)@& zDYZ7UY)RI8$2JM>5gAMEGJ(&1ijr7@WeN#XP)h`F?XIC|3zh`ymYtH~@Q{lC(TmKV z(`w>*f%51yJE`G~d<i;r>K;`P67z23WMVIs3djE=Gl*XsT_8*m6V1x_W5Ubq+*0sg zn=!rJrVm76#e~U#a_jP(v!$(HwGZHU%Ht*E2R7u&Jtl8Xenm5z$r=fgn1E>wa@IW% z6=(y-aKK~L?5B@MN?$it8b2bPmM|6|pEREp8j@X(h@`YTc6hr<ZM5tu%tR(zhRp{- zq`2==WJ2`UeyKTFX2WbSoG{?SqlFABmz-8v0Ug)l8&<)k;!{FB_II`a=;>#FB*Jog zXPJ9;U!TwU*3rLh*$b}Age0vkt>i(ZwrOm9*mr~&rvg0aH#g7npon$m(eb0U?4nCv zU_o_yXY0xMJZTvqH|5V{f~w7m#xe<BAET0n&8+y>nW-tOvw}!)6KWEmTyGS%VOu^K zftfCH-n&Z2oE5!lXH<tgGktL1AjrjSYmYKo@q^`W@A0n%^sKbW(r(=$t=zzDI7iO{ zVXaFOWG7^&w94K0CAD$gAV`pDO%Q~Ac}I2Z=;*K(h<RX(Pz$+kANt)3z0+<^T~xl? zm9=8~kC&K#^@J#)=W7_~$q#aX#)7_Sbz`s08zxU<mxy@_SGJ`EbDJ>6ubXa0{W2E& zK%}Cw(BnkOjC~(T*@tb`nKcBYN|SvTbm1z~pMKvyx_F>$7asdj&+%yUwmOZwsYz7$ zB;#$^aK~*BwYH*FJIeb+$KqD__8k;gN3pmeJEjq)Sb<J1i}XlXbeIaB*3}Nr`Ps3R z(4|tQmtAYE9m!5~pswFs$C0r}X2z*O6t4WiDL~281Rw$=GYSz`6^H%+p+WWE)n1@$ zv4D`rKWw|Fe+5P^Aegc2bVNrxoA?*OHS6qZ&0LVF{HwupRB#O(?SDQ$6O0em8^|LS zRJXm6rCv-;)!J%PKj#Hs&zcpTkH|x37$JIh8UwWPoJQ-Wx~Sd5POJHgl8x`3NL<42 zGRq7=&GvPrwzEy{EPU#M^E!$jN@|{#3j`e?i)$4N@6QQgD2Q_u9R)rme*T8xYF9}D z(ytfaW`yQ{LUBn8^cvIWL_3%Qk{Yk0i!b*i!~Ritf$`HBAtUrqPb<gW0SYSgRGovz z?(Zjb^dPXaB>G(U({*xD;i-y+M@&RsbnV5-tQ_rjbVj9x>nRP~Zg#v4r}rL;IbeXB zC{#HF6NTT?2v$pa5#Nw|f8G-<Owxd^vyo>RavY%R*+zG(Y508$=$?xtu}|?}!S7rx zsIT$;s6(yfZQLRKa<!1TPW?9m_-RlMb!_7hwC>W4N){UpZ+^r}H};71{)|@UK=x6z zXPMw-{=~9fc`-1A0j;wC(`yClu$Ab4W_=L!sP-S$Nu2Ue-2kGVA8>0Iq5V<Qc}66H zf_a8jl>K#Pc^3pb51asgzcM_VVAfqbU#_pa1}L}IKLaopeq}z1?2_bZ*!p8E;*z~m zuzt)v7|VW#1i|ateu_KZ<*Mbn9D<(-7T?%T=taesZ~-=_g2lfsuiu5SqnM;afrF%{ zQc*NAKa2?%yeq1>_SRg9eQ0b5a`wn8zDITV@zAda?gt+VJGCq{u{w>=64`A7>+V>F z|M;Me0yRd)kuelvBEE**efj-U?E6GwGTJF8*<uY^^-UwPk311tw_q*O0*&t@iUn=O z0Vk7CSkgLUI70bW@wO1frsyx%eM`Ql%txCgPA6_XA@zD=Tr~a<mPl5gv&{gD7dq?3 zL$+^0#`ZdiehhA#0m6LQr_9oYNoIQyetcaprQlQTjIyoLM&R`*-|7Dt>0ucqi=R9B zJK%hLTfn1a3e^&*B=zF-7ToAK-tsq*B&Vf>Q9kOC0<AcGQB#W6WRO%WEK-0Y;Nicj zD-a_p7&$D-w|=rU5#4qXJiF8W#dp)?spOa26dh5K$OX)V?^RSKUAWRf$_JS$k#kwX z^S9;Yif4-3yH^M8<%E8X`YRW^J&R9NN53JVO$D83?~`ZD#(!Bv2Vx^%r(?#sysI7U z+!8+M$sxh9S2;0$N8f!<IxXf2B^#Soj7B8Q_jUnYNOij6i~P$SKvt;T|HY#%j8Wys z@GFBBK0n92k)UFryAS#fzA+uLyL_~sHBJZ6gc&g(t-npfPcZl5?)?yt8I|6uLkEA} zR@{R#{p;>8B*Z3748^oCz`Sr%eU(}utGL@q+)zf@7#w?Fdv6^8g9_`0<?FFsApm^} zapbK=OKg>GF`K1J-7}0);&!xa)B?vwB9)p&Fdax^K*3HiNEHe=SZ?tB^*r;2*A`1^ z!Gj1ZfTE9gay(bUx<l)Btp0%X@x^@nqL6#PPXQI6;qRfkIsEu#LRZ?)$K(ef+KT$@ zy>Y)!<}rs~IW8tVAZHw{s=dd)IEEKSU@HIm%EK11yufm{$Q>tyfes@!J|Wd1|0`v5 znQTa0ul<mr-Hd{3Qk<P-%;;bt4>JY}x<QW3`!}(a7jj5Qr6tO9L3)x-|3MoN#O_x+ z67H$LM5ui?YbZ&VFT9dMKlx0nd7b%<G?qg@s3NEc2%K;84-UBM3pSPH+U@+y#nExd z<>a=$v*CHpYruYVlkPGyKyP3K5&ye?b9$<cfua!$!c8QoH5*tgA3L8c*f{UuQ9EbJ z`L%o0c|PM`&zG+Ll2)g8wo9G0Px;e*_f*cy`B~^Gkps&G$fRQuW3~R0i04*sr8xDi z1q8(J#V^o#Z@dPuTaJXVOmxp<ob=+Rr_X-(de-uPFIu55FeksAwsn6?J&6VOR?b3v zAT7>>!zx30vxX<~kziag?QKTTY7|x9>P-heLCq-#ucW%RVJ|;VsG-|KX2dH#ru>oj zZ;Z>$)c}C0dUUt4JJA^&WM4eG;rybLW%F9wlbZAJJzjg&Vh9>@dvZ^M&0+d!#xtM4 zRnCBOHbE3<hshEW5)(rf-bY;b;Qjph-8P$!>YsSbN*<kjT0m{3$OYbvae)tzdX9ZL z6GTKdc~`F?vDDK49^!wBJ9H!fze|U2iFwAOKatzxrs4(=l}lxO9X%sKQpU}E={Au- z-@rmnF3{AU*d?CpWr>U<%MZB0JQYV=HXm@Vftrv7x>Z@s)yWiw6j)3~<OQe_q5cLK zqG;H)AGy-rqz|&&%PZMMDS+uo{Tv}Uzw;>AG}!g<H=)s{qm%>lBtPO5(wOMbw{O}^ z$VUYF>)Zk{W8bp!=BqUq&zHb_%7YuP4wJnd2}qRsBo`t>!g^slYxG`naIo8!%Ta%4 z$!?79CUG5rHw03zdDM!O1LD)(i!w`Y9IXxS!)E-I4(96SI91F8w^F-liIY$9&DxYg z#NSmTo}()iIg@O9sq+36F!?bP!_cgws>C%QP_2N9mF{_k$g`}mdt<a^yhNmve9oe$ z??ol($qx8e-(Ry2O*LG&=2kL20d4fL&~X3algj{84yk#&SaYY$P{dv;?n>0I_iK%9 z5S}9t6Y$I1hnG3TLu6<TvGVXZNzJGWXux2Wy|(2Zn<qBH@#U{&JO1S+6O{qpEsvh3 zaPnJO7|%peLG6zMGTHREVu*;@Zvpg3W-1RL#_~XX5OH8fqZ&@|tVsj0zuRDaL(QoL zwOdJT_-xl35Ay;w$TLkJ%y@Fk0P333+qa@D1r6;QeC33;O?^&Uxj7+@84yX1MG~wT zcm1B59*|}FVF0H+R!u3DD{l%C+>$|0-76H&x*KCN^5W@7Mb1%z1Hdm@<zIf^%nk1H z)WVn(bBBMl89x#@x-3{H8M6>-XkCSGoOG}NR+;80l@~f~>|dmYahI1Ggo`1XD;xY3 z4Rz7QNz~G0+3TfNN_y<e)#rAzPkMjtD02B5Eb<A6{9A;*HBAQ6V}^WC1SPL2&HyTg zM4GF2=pZ#8+HOu%-Gol%9*s5dC2Cg&=eMbCN*F)g^MZ<iNC5pVxrjq}Ob8H!@I`OU z$P|#Yv4wZlN#Jo?WAzoh^fq@s0%+->4^43mtxbvq6b;y7OnqKk0z%Dy&z-J^D(~%> z>XbeEgQkKtPp!O|uzO5Lz?CM5iEC7f)XiW<@~N|iM^H!-v9YrckD3p>NCztkiWQ0R zoxZ<DnnOlLCJGc&z)<rA3I}44W^3Nw{$Zh2?Fj)+0UzQ<-Ad16@;sZHbO2xMU>Q&C zynbSn1WT@w+Q@?X*VoNIvj`K{$Xs##TLo-fbSH7s3k8LW#R_~C^B9H?!M_U3y572> z5->s%O2)_AOAApJDYmSn{N43fQge8z?}Pal+^*-Dbp|z4iicU0EN1ha98Yde-JDyy z3Wav?DTP={A^=VXDu&>dOSz2T4qe;2>FNIl)k|V5WjpuZv{8CphPAxX-D2)H%4)I0 zRi{jzwA_)6G|ZSSAlgih$d&h|R2Bq=<0C_x7L~jLwDSqjd$6xN<=K0LHLKtj0+tXa zC|wYzWGeDvvJF)vXf#PIF8O-{akttMKlXM+_<bs6Ux?v`Q!P|sx&Xg%zC>{U7U1Ew zPwGE<$&Q&DLJFauQ*chWmk$F*DQasIi?k9b&TN5?0#E+Y?`Up!S8;y!qQnW$Ear)i z{f^>qeJN$laXGTT>_Xifq-Z*7U%>+71p`A6J}o=fJYbAgR{ezxC)f&|*Z~kCT2I18 z$Zylz=a^yINao<CO5&;n^F4%RJwv3k%74f$_Co~NPxp`4p92Z27N`=>?|aC`!+xt^ zrRFdqCO}%tM?^&QTe7Ng`sr#+wbdYr1er64E;WKIlaojr__dpqhEdR4xVh`uhAYv6 z1RDy{J@Nn{%~v!D`=Bt9y9yoN$YM5b_gXl6j!pFXi%CE)uR?pwiV5mG5vSKzF<)9i z!`RhHrF<~^fEwvN{00unZ_oWPY`JDR$EyGuUyXJ!0HV(#;()O<HtLKG{m7B0g#L4k zd8JL|wz>s4l_{@3?gtFexqPV-4{`Gni3;D-;bH#_^j@2*Ftu!H>Wc^cu3;J?ubTE4 z^NfL6i$a$QRtG5DsgKW}Z6v$yn>R5z6!ek00}IX)lm|wBQ<W+Hcw!sGzrV`arxNwM z`DZ!2ZQ>~$(lyL^m*~cwC^-JhL_9!+i2}AxcYSV4%=L_+ldC;1{P)Enf}6DOSet*v zKv^N);!mP|ict(Z60i^h#3tXeGZ`D@4^8~9KPQ{h=s3Z6v^RQ=z{0{s2$r*|*}dEv zk_`?vS4i%!c?%<RMdtzrpa<2mkI?BYcdoRDsVpjFKTytL<}nv***=6VKU}$#y;Ksb zc)3L3(0%{W2T8#I(xizlnV)Dd(D`%|u*U+yTj^l0>e)GTK_}a$3J~~K)RgXINo^xS z`T+1?JszVu+As0OS#OxF(rxto`ZvqpT?d$P06YMYen~$xPHVDSqF~K8Nx;N;={ZvT zJl%ZOSOf@h0NjuiWRt_O5;7Xi<Zs{wRzPB97n~6gD>g9Xv4>?i@T{l2(0=`Ky;vkx z8ImGH`{=hVjFk;UOinauI$3!CdHVo7J+9d7Q|<?~U~^L+9%|R##7=LqFF;81K`1h1 zLBcy;7BhF#f%vIRvKeXut#*Ae3IQ-N8r*rb^ZKC_q3C75iOo!pC5gpX^ePl&THY#} zA@!leeN(o8(uxA6Ng>M*&S#RmTl&$nnl-6JRwadLc&X$Nb>2QZXJ+Br?F|gq;;vHi z1p{|S%8%MArk+a9ZX6f(GXN5FpE#msC!aTxz|iE)OEdKimgd$~5H5$F6&Rc3mYB4> z1pJTCF`9ni8y3poAf^>Xyunp7vr3QMOu*|moqp8i`NN#5M8k>9-LXx8NMgv<a?_3f z8jghytd_K}SlPKX9Dj0EU%X`yWES_$w;aY*VHpJ?qx5FlOtLYukP+ZZXt=@crHYoz z8JRbIvGvfW@uGV&tG}~oe|1g~Q*d>+@fh#{wj`pY5zvYH^QB27R-$%>DwOXk4nzbR zNky1WZ|Mj5?ERVFqP7Wj-b&s){ZQfft`xSi;f^>(Ver8cg;y54yBZsIM~^Vq2Xt)# zGNS)|gzK~53g?71HPY3GX)SkjeV<p)KefP8VDFY90w;Bv3wVJRkPQ>E?*3e(vmT~? z=fCmQHfzsl1#P$!V1-5-cwEG8&7^UBdSU@Mi`ym+K1-#7HR>uqP)B+kdK&fnLw!0E zY2*r5Jy&O?G^A6@c$kVmq{NvR{`Z$AzlotE;93lE^FSl4-XUHe@oYifzI~xyzAi)z zdSafIsCUQMb7(zTJDBlv*F-CEwaE3!>iqk<iLf%(Z4#1Lo74oQfF}cB&;Tkt%d$BA zv!w`3y*ZhkEYgSOd7B!4iU%Om1HKY)gl-WHKPE2IK*C{YK>BOMZh-m2)B1^iEcTkJ zN)!7dc0)tPc0kHqB~n6Z#B7vh#B6LX$RIiEV5!1`P;&p{my4=In+k85f;DNAZ!ir= z6vR?r|M3jMh7ZN0{6KDSq^PNFBr7ok7X2hqieHZkr%T2|&u*<g>6FTnaprtV@{#Yn zCU54?M>~FS&l)8g!~!9o4~E6qM9!QSM%WoWn1|}dhi7XoIUKj>&|<3U6l?MfSOkJq zg_o(x<6U6y+N?X?9j_896;Hn}9uSn}gL%;iHAmP~UoLc#tNq1sA!LRJck@n`biqWE zWMYX(SHK+%&v7wjTeYMl7a<$nq{x;vZ>exV6SXwIg;3?OJIX+W%GjlxJ{A}I#f6n9 zBut<027hfMjC%N(;e&*tlfc#e@vBg_Bo@+Od$)Z_7J*K#>a{N2>}9e(6~G<qT*>;W zsc6-g4wE*jiG2@s#q`>BDxPuci@(bd`_TCJI6#izr1qI8@|5`FAGoJ~_uy8eoA^KX zeSduGr!bkdPf2Ui)>4xy#o>SC)N2sEZWgn5vV0r!$ck+tXh6K>sSGQa&=)EV17UTx zK@s)b(^2D(e@IYhvEBq!=C2yds>@=yk-~^TFH*Xjpt_s~#>&LWUcjNeSSF#^{Ocg; zRULF>cX+WJL4`Hr@lbuiKq4Je$k9I}*_ar2zozuae?I;yCf_ime5m<3TF9?e8V$50 z=kjtdakbn_9~ie~3jF1us4|R7LGg|2Bd^|HL#F{WjtR-54+_QczZaE0D19$#a=TUi z%zsM)F7XQHR00tyrEXv__`s@<+|L!f>)u0-ZN3|ahWQ-9orSJ7Yjuw`5X7aW`5sz# z?99d~m7#;Bi~9!wj({6H<2kqaeDiz2y|TBHd)ZeZx|}voLPVENua&2Krd4#LoTh1J zlGnd7&e-zbG+mm`YhX{Z_Ib;bD^K^EdVFW1+Nb<y{}3QH5&S~M7(|@d`*eKgERWES zyDTRiC5&E7oVfdSIsX0xwFjny0aOOw6u5`_h_dqPjl=RgOt;r>N%H;9HQhKb8Fso@ zuz3-<pIm<A4~WN-tWS&X*<8_(Pvze!F<HKL@V4wr+&M$3A8r?rVq#_qj;Pgw7zkyw zd-QK;&5??Cr!NfXbh@7gzm>YYeH6Xi;~AMgz5RKmRHV^Lk0yxdqhQ);egU&ozx!Xi z>EI-IFP58RNhw2JKDZ6K_xm0ZPEfY;pPIy6UKRb{OsYSITd;i#o_OLR_mjgYmi2iO z@;L%R*=*NRE1tq+MrH@LgtBms%2}1&<s19R)1`^MneQF;UC{9JJ-$eChkS5Dg}yy| z2|WelW&U-6C#6mjaop$l-?ufI4Gw*OQ1z@Ogn<2K0P&K{oCiR>(H0tdRs&O8X1?0c zvp3lHAR=zuTE<lA=X+$E=O}nv^?GF2!qoy(ro20kj6wF&ge=9!`~Rtpu7*V2e`3+f zA2?;VroXi9Z5V^SGzG7<Ek>37*089wtP&|x-ZcCW78=#E2=Y*!ifB*<^O1pIb?F}H zPw}Spe+4str95gAVi)tQc0~SV%*j99p>Nria1pCzlD9SMwUhECR-OSIq2V<&r6alc zxp=_3gmgZ(0vl$dAO-i;qOToHI84TTw9E%<9!#Z)RaB$i0b;UTMlAQnb3}WcBJk7N z#L2<7rjwteMPPUZ*vOrZ!i3&!z(sz=L&VN&LJfeet#i!EQ^I>>muDme(Scr0)gm=I zzDbhM^s_gaX7|$Ir0~2AityZh%`oQE9K<U2>rO-@y~CraCC_t)8BI1NqMpb0Zry$Q z+BS%8_?fH!UQxXPfql&nH?An<yEtz%d({@=L!+j`+Ebrr^y{{<jLU8v*QI2h0pT^m zSCzJ#ZtSM0#bjN!QP#@BN-vI!QXp80qeJCz{GL}h3aC<|K%?^A95VffYa;$+o!L0% zt$3`myTmkpaEnrBV(>+}Z;ntq`cdH(=+m#Rl5JfB^`WajG#?iF0O<2G=wkTm`iCzV zJOa<U$8r09u{1km{oE4bR@_+n`03c!&>E-=6!i}NwUMr!F+|K9WGe!b%EPD`lJu%T z$e4OV{M6|_Tw@CtliDHwT?;`k4ssUo>ep4K{~$4@k9iC84mWIO>8^!Ik)-mHkcUzM zYh*lOXeXa+%nkcqTS>?GMN<ofXUI5qAbEuw#(KkBe<~%H$;`bG^+*&Z6<C7R+Drg> zV=G09_Dn~Yv@_sm4$p&W$GB&oH=n3jD5#^k8+^mqdcF!)yhW*_gVIp^?iI~MDJbcW zh9cuT>HuwC#!BY)^JgxQ&*K1#VJE`fB(V>@ZqLoA_T3x(6<3p3K2lJu*{&=-eJ^UM zF+c(tR|DAGy{E>Sf0DMg8Bm5`)BqWtMyKtYj1H(`9oj$cK7iN@A9O!mCIf1l#KXz) z)}2o{0Giozccd|(?zsq&%=*^wkF^3>#U`L1jUquKe7}IZ3Wyo&WP~c7^EPAlN9KFA zOt0+3Ntm2Pn`~}cwmi<%XU?(dGsi6Y;z~C5cP5$$uX>c)#p$ux04Z*1Q0|hk=<qGz z02@wNb0>VouMq;{XE9qeod9@7!Oh7U9x}-bqs|OGd^j-_!)6{bkrgG(&FAU!(^l<n zxMKnYK<}GT>FthJJMAo2?TgDkgR2-Jb5JKaiIFMg-Q;Y5X8YE0Vc@+MygBQI2Ml7y z5+gO)({QnTPmRtdnXA0`^!enK1F{(=uOTV`Z!0hwemW>x{#WcCIC(L|r!Ss9o{6|- zk0ZwXy07Szy;o&}tLTw*m)w@Op|*A{_@9Q_C0myg_7$e!ycAejK{@?oRy&v#?{*k1 ze6w+}@9VlKaMs!`YOP{p*1=uCjM?@BL}E!Wut(){9IUL-@USAJWp&wO)q^NpDMD$= z@L`_E8vNkPApDMi(%8oZqmjW!UeTES+}~VjKTRwGls(l3F;19(@tNnh_@;SpX#)~p zbxLDUM^@d);I!dPqC{%!`-g#vcle0OxO=F8XqxNx&fBa>L$11qs8!WZLoo_X+*G6w zs<%@!1qxGRLgCeDgDs%`6l?rYnxSIEC~qW}SPC&~O1XudvEe)-X;<Gv$6W2MlV}No zQ@X&K75e0Y#M#4E?0ajwp-tMv<U(lHP2^@S4ELzcK^5EF<*AAe034{*lrKDHruRA- z<8Qp-kAh!(sZ%uFc&?A%oQB~N<Ohde&0DWNXME1y?;rIc<V-kAY-EO}f9&=`Tte@X z$RnshL5YcPM3?tnNGBy}N=_#*xj22m>~p1&`YBQKlKu%lT3^`s`ooJY$LcSBu^Z>S zFV5npndv=&RIp%0>yB2x<N3Ho+vmKYr~GOg<xP?vJ~oh;#Vnt4$36V~0Pb%u!By() z#=VnDOA+8Ev+z`H4`{9f@&Xt`hs{z7Y@5Z9RkA^mK{k+4X!F@Rm-V-kqRDu!%y5>I z!mH+!BK!$*Oh=dZh^WUU29*TU3RZgC))f5p?63&Nb?K(hQl_|xM4G3lt&X5tU2A|q zmEhpLQ<oDB#e`nET-`MX9-u!87gGJ>75Mk57SNcp<a@(+Tu-$vFx)=o0lA_^qjRq4 zOTu(FDhG;^9o;*>y6Sf;ob<w6G(DSMDcgp%VTL@@HVSih$+?YH7{O%wz&+GssRWcU zByU0&JssH`H(y3WgrJ(*2SHG(E@R`}lwnUtM7g8i`;A_2bX|Ml&RpG!T=EiOsiXQ^ z#?a_N#!^+|(8|SuQG#v9kdtno2-0_7-Kn9i#cioCkzG-}nDWaJ3~vng>bd5wPd9`> zuyoVi!Z{n0gc*Buyhcm9D`XQ<h4jdhiC;K#h^bk;k&1Dr6*Hy?)1CdSJn-VPFGc)Y z@hmbv#?l=<xYtN_U`NkAJEh3CtI&}{P+3y*&}O0C2T9RATM;!%@4c<b^UGhtJP`#y z&Ba1M-qBwYQydsTX>{{1xfyMp8^knU&{1^hlcgWOU=_)wWC|#Inzc0N$Ve=ph{_Np zf(DH@yC7UtGb_Mr`MYJ5WgKtaIJzmq=2FC5=qUKeMERWjy<tsy$JFIb(`@v%bwJp9 zDY!2ta?@DMonLm-T#dVG4T{FNpl(PrhHIT6IhF<+PJ}Ac9xA@mwi|=fT&yznc0HE0 z#9Vk<<fkw^KLqmf0-qTbJhhm;TWt`N%P0v8aOM~O@b2W-bSbccA+~gwQ;d3u!MPDQ zkpspX2avsNp03MlizaHflZ|={-eUWWuX2M|gL!o&_zItpgvN4TNT5HBGv%;zk#NVD z9|ln;HU7BWgVJnNTCUp;?h9-VJn-oYAALLJQN$OjEElSrA?8DKaZa_#N^zn`Ng9tP zD51Z(;r4Cnql-B8gJMAj%qm$X%!Qms@n(W0O7x1u66A{=_EYRYEG<NNzSZhU#^Q1P zJr{y%&#%!=_`A~!)CSkPjvD_5uivo%vKNnDp3{aHrD=>r@dSPp_;+Q!W7)+b7srVm z{<ke5<6r5$$`IL5%*d64->H8aN)fpe*jp^JtD-^*93X=t@UvseK))Kn5Ly>8df^H{ zR?kssk`JEiHDzOZ?2}AJj*}<ies)qD17wC!^(3-O!e&o}L>cYY52gdo?zzV`Hnh1~ z&D}m$DDjJtmHwEaoGBRS(+Rb9gE5s9Yg0RL&tW}Bh>(qSyW=Y!Uhf2=Zd9sZliCVY zzUh5amy1*a-{hue7bvw$SOoWV8y}aZ73NzeFv44z>7J><;}wd8`YQZwHEG4cH$&S@ z?BvL)q>HAhm@13y!V|82jA1P$;*MyL)fe4O2}$@|OkeUyb3!--;~K8U99N;zXH3Q> z60L19mqp}L7hCi=i=VE<<Gp14mmPMZOga!|+OTrSvU@WUU|A@o245xAfyBVlc^8Q0 zCWWH5f};(idHMANr;)Y80*`3fUGHYuU0-kg5$G}SmQ3G24=4<bk7?wo%0zx?vrE89 zZ6fi%TQf;Y4F}KUE)bN_adbYkiZ6wyn_(<zN)n&47p0K&^pO`57sM23;URI3FfrgT z>asD#C=@{Eg@pNH1Vrg`Ke)M3hJoDl0zl-9-Yy41;4rSV!wP?+>=qBb%a-Mzs?LSV z3lT~a(nlLFZ|{8|8cd{#rF_{2wRsSaHaZ^2J$c2RD1ch(Z1TT6Iab8m#4d(l>;<VE z=6-$xz4p6wER>AnE@r)%r#(Gi+v$DvyA%HHfW0|rqceI3bE8DCM1C}xkg-iyBBt0Q zk(;(1yJ#zSE?2cYd@?1XAJf=IXufZK6%6INQc#mW|8aFdnEKuxoUwAf?PfC-9q{7t zu`+Ga(c$-3j>6}sF@yr|Gbqx$PqorcmBI_LrgL)7h(-Z#BY%3R_%ncfFp-^$98M8; zHa00&RGCx}<C7xiV&_%Q8JGnp#({XE&bGIlxs0+RPOrO5<RATEDXAIA{dWLcaOnau zpIx~0^RgpVAIslm?%q!qoBQ!_7swGrt~*2V+C^N^Bqm(}*{Dy-Q6v+1nZk-~24Z#} zQ7#IGu4}2SBRfkH@;!;HD#W1Gd$|lPBD)hS2gbh~9UM5m^_tU*tp-d>JZOWaDg{Je z4`(#jjH8cu#-vU`R$Y<t!JPXU&+@edw^#ayLLOTkANRJuXbT#;>ZNR$_Q`hdzvCH* zV(1yA9;(nRGe}0CKVH)p3+ozTD;Ck;+^@4EF4%q{HlU{58#v;<d-kolKz@ljjp#c4 z%V8$8xwwRFk7byW%8$w4@}(6Q5I5OA-n!+4P;lQNyw>LAkc=ra&aKF#Z*jpxm^Y9F zmu`>DK}SOmZqd<t%apqjn#2lI9*TY0@SOX`2pVBcj-I&rs{yDJOB$<jQ3^%PXCfxb za`8Jg-ENe38yA(n^#+U&fMX<zPT<tUF<cG}?qajtM0qC~)`|=5{EUoHys?P>BaSNI znEE=1JZdTW`V)^J6!Xo#lL-Bpxl+6Fv-4}<p%0D1g@J~=U63;qP89@k&aOX-&n^)G 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 W9q|##oAg(JAAM~jtvU^d=>G!@i!(j| literal 0 HcmV?d00001 diff --git a/src/theme/themes/index.js b/src/theme/themes/index.js deleted file mode 100644 index e302c52..0000000 --- a/src/theme/themes/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import green from './green' -import blue from './blue' -import orange from './orange' -import pink from './pink' -import red from './red' -import grey from './grey' -import black from './black' - -export default [ - green, - blue, - orange, - pink, - red, - grey, - black, -] diff --git a/src/theme/themes/index.ts b/src/theme/themes/index.ts new file mode 100644 index 0000000..e3c62aa --- /dev/null +++ b/src/theme/themes/index.ts @@ -0,0 +1,134 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +import { getUserTheme, saveUserTheme } from '@/utils/data' +import themes from '@/theme/themes/themes' +import settingState from '@/store/setting/state' +import themeState from '@/store/theme/state' +import { isUrl } from '@/utils' +import { externalDirectoryPath } from '@/utils/fs' +import { ImageSourcePropType } from 'react-native' + +export const BG_IMAGES = { + 'china_ink.jpg': require('./images/china_ink.jpg') as ImageSourcePropType, + 'jqbg.jpg': require('./images/jqbg.jpg') as ImageSourcePropType, + 'landingMoon.png': require('./images/landingMoon2.png') as ImageSourcePropType, + 'myzcbg.jpg': require('./images/myzcbg.jpg') as ImageSourcePropType, + 'xnkl.png': require('./images/xnkl.png') as ImageSourcePropType, +} as const + + +let userThemes: LX.Theme[] +export const getAllThemes = async() => { + userThemes ??= await getUserTheme() + return { + themes, + userThemes, + dataPath: externalDirectoryPath + '/theme_images', + } +} + +export const saveTheme = async(theme: LX.Theme) => { + const targetTheme = userThemes.find(t => t.id === theme.id) + if (targetTheme) Object.assign(targetTheme, theme) + else userThemes.push(theme) + await saveUserTheme(userThemes) +} + +export const removeTheme = async(id: string) => { + const index = userThemes.findIndex(t => t.id === id) + if (index < 0) return + userThemes.splice(index, 1) + await saveUserTheme(userThemes) +} + +export type LocalTheme = typeof themes[number] +type ColorsKey = keyof LX.Theme['config']['themeColors'] +type ExtInfoKey = keyof LX.Theme['config']['extInfo'] +const varColorRxp = /^var\((.+)\)$/ +export const buildActiveThemeColors = (theme: LX.Theme): LX.ActiveTheme => { + let bgImg: ImageSourcePropType | undefined + if (theme.isCustom) { + if (theme.config.extInfo['bg-image']) { + theme.config.extInfo['bg-image'] = + isUrl(theme.config.extInfo['bg-image']) + ? theme.config.extInfo['bg-image'] + : `${externalDirectoryPath}/theme_images/${theme.config.extInfo['bg-image']}` + } + } else { + const extInfo = (theme as LocalTheme).config.extInfo + if (extInfo['bg-image']) bgImg = BG_IMAGES[extInfo['bg-image']] + } + + theme.config.extInfo = { ...theme.config.extInfo } + + for (const [k, v] of Object.entries(theme.config.extInfo) as Array<[ExtInfoKey, LX.Theme['config']['extInfo'][ExtInfoKey]]>) { + if (!v.startsWith('var(')) continue + theme.config.extInfo[k] = theme.config.themeColors[v.replace(varColorRxp, '$1') as ColorsKey] + } + + return { + id: theme.id, + name: theme.name, + isDark: theme.isDark, + ...theme.config.themeColors, + ...theme.config.extInfo, + 'c-font': theme.config.themeColors['c-850'], + 'c-font-label': theme.config.themeColors['c-450'], + 'c-primary-font': theme.config.themeColors['c-primary'], + 'c-primary-font-hover': theme.config.themeColors['c-primary-alpha-300'], + 'c-primary-font-active': theme.config.themeColors['c-primary-dark-100-alpha-200'], + 'c-primary-background': theme.config.themeColors['c-primary-light-400-alpha-700'], + 'c-primary-background-hover': theme.config.themeColors['c-primary-light-300-alpha-800'], + 'c-primary-background-active': theme.config.themeColors['c-primary-light-100-alpha-800'], + 'c-primary-input-background': theme.config.themeColors['c-primary-light-400-alpha-700'], + 'c-button-font': theme.config.themeColors['c-primary-alpha-100'], + 'c-button-font-selected': theme.config.themeColors['c-primary-dark-100-alpha-100'], + 'c-button-background': theme.config.themeColors['c-primary-light-400-alpha-700'], + 'c-button-background-selected': theme.config.themeColors['c-primary-alpha-600'], + 'c-button-background-hover': theme.config.themeColors['c-primary-light-300-alpha-600'], + 'c-button-background-active': theme.config.themeColors['c-primary-light-100-alpha-600'], + 'c-list-header-border-bottom': theme.config.themeColors['c-primary-alpha-900'], + 'c-content-background': theme.config.themeColors['c-primary-light-1000'], + 'c-border-background': theme.config.themeColors['c-primary-light-100-alpha-700'], + 'bg-image': bgImg, + } as const +} + + +// const copyTheme = (theme: LX.Theme): LX.Theme => { +// return { +// ...theme, +// config: { +// ...theme.config, +// extInfo: { ...theme.config.extInfo }, +// themeColors: { ...theme.config.themeColors }, +// }, +// } +// } +// type IDS = LocalTheme['id'] +export const getTheme = async() => { + // fs.promises.readdir() + const shouldUseDarkColors = themeState.shouldUseDarkColors + // let themeId = settingState.setting['theme.id'] == 'auto' + // ? shouldUseDarkColors + // ? settingState.setting['theme.darkId'] + // : settingState.setting['theme.lightId'] + // // : 'china_ink' + // : settingState.setting['theme.id'] + let themeId = settingState.setting['common.isAutoTheme'] && shouldUseDarkColors + ? 'black' + : settingState.setting['theme.id'] + // themeId = 'naruto' + // themeId = 'pink' + // themeId = 'black' + let theme: LocalTheme | LX.Theme | undefined = themes.find(theme => theme.id == themeId) + if (!theme) { + userThemes = await getUserTheme() + theme = userThemes.find(theme => theme.id == themeId) + if (!theme) { + themeId = settingState.setting['theme.id'] == 'auto' && shouldUseDarkColors ? 'black' : 'green' + theme = themes.find(theme => theme.id == themeId) as LX.Theme + } + } + + return theme +} diff --git a/src/theme/themes/orange.js b/src/theme/themes/orange.js deleted file mode 100644 index 9b8fd52..0000000 --- a/src/theme/themes/orange.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'orange', - isDark: false, - colors: { - primary: '#fff', - - normal: '#333', - normal10: '#4c4c4c', - normal20: '#666', - normal30: '#808080', - normal35: '#8c8c8c', - normal40: '#999', - normal50: '#b2b2b2', - normal60: '#ccc', - normal70: '#e6e6e6', - normal75: '#f2f2f2', - - secondary_5: '#f39a0c', - secondary: '#f5ab35', - secondary10: '#f7ba5a', - secondary20: '#f9ca80', - secondary30: '#fbdaa7', - secondary40: '#fdeace', - secondary45: '#fef2e1', - - tertiary_5: '#70a62b', - tertiary: '#89cb34', - tertiary10: '#9ed459', - tertiary20: '#b6de82', - tertiary30: '#cee9aa', - tertiary40: '#e5f3d3', - tertiary45: '#f1f8e7', - - borderColor: '#e6e6e6', - borderColor2: '#ebebeb', - borderColor3: '#f0f0f0', - borderColor4: '#f5f5f5', - borderColor5: '#fafafa', - }, -} diff --git a/src/theme/themes/pink.js b/src/theme/themes/pink.js deleted file mode 100644 index 696b847..0000000 --- a/src/theme/themes/pink.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'pink', - isDark: false, - colors: { - primary: '#fff', - - normal: '#333', - normal10: '#4c4c4c', - normal20: '#666', - normal30: '#808080', - normal35: '#8c8c8c', - normal40: '#999', - normal50: '#b2b2b2', - normal60: '#ccc', - normal70: '#e6e6e6', - normal75: '#f2f2f2', - - secondary_5: '#ef6c79', - secondary: '#f1828d', - secondary10: '#f49aa3', - secondary20: '#f6b1b8', - secondary30: '#f9c8cd', - secondary40: '#fbdade', - secondary45: '#fde8ea', - - tertiary_5: '#f19a55', - tertiary: '#f3a86d', - tertiary10: '#f5b684', - tertiary20: '#f7c49c', - tertiary30: '#f9d2b3', - tertiary40: '#fbe0cb', - tertiary45: '#fce8d9', - - borderColor: '#e6e6e6', - borderColor2: '#ebebeb', - borderColor3: '#f0f0f0', - borderColor4: '#f5f5f5', - borderColor5: '#fafafa', - }, -} diff --git a/src/theme/themes/red.js b/src/theme/themes/red.js deleted file mode 100644 index c272b64..0000000 --- a/src/theme/themes/red.js +++ /dev/null @@ -1,40 +0,0 @@ -export default { - id: 'red', - isDark: false, - colors: { - primary: '#fff', - - normal: '#333', - normal10: '#4c4c4c', - normal20: '#666', - normal30: '#808080', - normal35: '#8c8c8c', - normal40: '#999', - normal50: '#b2b2b2', - normal60: '#ccc', - normal70: '#e6e6e6', - normal75: '#f2f2f2', - - secondary_5: '#d2322d', - secondary: '#d64541', - secondary10: '#df6f6c', - secondary20: '#e89896', - secondary30: '#f1c1c0', - secondary40: '#f5d6d6', - secondary45: '#faeaea', - - tertiary_5: '#d29e2d', - tertiary: '#d7a842', - tertiary10: '#dbb257', - tertiary20: '#dfbb6b', - tertiary30: '#e4c581', - tertiary40: '#e9cf96', - tertiary45: '#edd8ab', - - borderColor: '#e6e6e6', - borderColor2: '#ebebeb', - borderColor3: '#f0f0f0', - borderColor4: '#f5f5f5', - borderColor5: '#fafafa', - }, -} diff --git a/src/theme/themes/themes.ts b/src/theme/themes/themes.ts new file mode 100644 index 0000000..4f2f850 --- /dev/null +++ b/src/theme/themes/themes.ts @@ -0,0 +1,3785 @@ +/* eslint-disable */ +//! 此文件由 createThemes.js 生成 + +export default [ + { + "id": "green", + "name": "绿意盎然", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(77, 175, 124)", + "c-primary-dark-100": "rgb(69,158,112)", + "c-primary-dark-100-alpha-100": "rgba(69, 158, 112, 0.90)", + "c-primary-alpha-100": "rgba(77, 175, 124, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(69, 158, 112, 0.80)", + "c-primary-alpha-200": "rgba(77, 175, 124, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(69, 158, 112, 0.70)", + "c-primary-alpha-300": "rgba(77, 175, 124, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(69, 158, 112, 0.60)", + "c-primary-alpha-400": "rgba(77, 175, 124, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(69, 158, 112, 0.50)", + "c-primary-alpha-500": "rgba(77, 175, 124, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(69, 158, 112, 0.40)", + "c-primary-alpha-600": "rgba(77, 175, 124, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(69, 158, 112, 0.30)", + "c-primary-alpha-700": "rgba(77, 175, 124, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(69, 158, 112, 0.20)", + "c-primary-alpha-800": "rgba(77, 175, 124, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(69, 158, 112, 0.10)", + "c-primary-alpha-900": "rgba(77, 175, 124, 0.10)", + "c-primary-dark-200": "rgb(62,142,101)", + "c-primary-dark-200-alpha-100": "rgba(62, 142, 101, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(62, 142, 101, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(62, 142, 101, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(62, 142, 101, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(62, 142, 101, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(62, 142, 101, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(62, 142, 101, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(62, 142, 101, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(62, 142, 101, 0.10)", + "c-primary-dark-300": "rgb(56,128,91)", + "c-primary-dark-300-alpha-100": "rgba(56, 128, 91, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(56, 128, 91, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(56, 128, 91, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(56, 128, 91, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(56, 128, 91, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(56, 128, 91, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(56, 128, 91, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(56, 128, 91, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(56, 128, 91, 0.10)", + "c-primary-dark-400": "rgb(50,115,82)", + "c-primary-dark-400-alpha-100": "rgba(50, 115, 82, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(50, 115, 82, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(50, 115, 82, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(50, 115, 82, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(50, 115, 82, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(50, 115, 82, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(50, 115, 82, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(50, 115, 82, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(50, 115, 82, 0.10)", + "c-primary-dark-500": "rgb(45,104,74)", + "c-primary-dark-500-alpha-100": "rgba(45, 104, 74, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(45, 104, 74, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(45, 104, 74, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(45, 104, 74, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(45, 104, 74, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(45, 104, 74, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(45, 104, 74, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(45, 104, 74, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(45, 104, 74, 0.10)", + "c-primary-dark-600": "rgb(41,94,67)", + "c-primary-dark-600-alpha-100": "rgba(41, 94, 67, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(41, 94, 67, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(41, 94, 67, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(41, 94, 67, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(41, 94, 67, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(41, 94, 67, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(41, 94, 67, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(41, 94, 67, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(41, 94, 67, 0.10)", + "c-primary-dark-700": "rgb(37,85,60)", + "c-primary-dark-700-alpha-100": "rgba(37, 85, 60, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(37, 85, 60, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(37, 85, 60, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(37, 85, 60, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(37, 85, 60, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(37, 85, 60, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(37, 85, 60, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(37, 85, 60, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(37, 85, 60, 0.10)", + "c-primary-dark-800": "rgb(33,77,54)", + "c-primary-dark-800-alpha-100": "rgba(33, 77, 54, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(33, 77, 54, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(33, 77, 54, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(33, 77, 54, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(33, 77, 54, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(33, 77, 54, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(33, 77, 54, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(33, 77, 54, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(33, 77, 54, 0.10)", + "c-primary-dark-900": "rgb(30,69,49)", + "c-primary-dark-900-alpha-100": "rgba(30, 69, 49, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(30, 69, 49, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(30, 69, 49, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(30, 69, 49, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(30, 69, 49, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(30, 69, 49, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(30, 69, 49, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(30, 69, 49, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(30, 69, 49, 0.10)", + "c-primary-dark-1000": "rgb(27,62,44)", + "c-primary-dark-1000-alpha-100": "rgba(27, 62, 44, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(27, 62, 44, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(27, 62, 44, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(27, 62, 44, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(27, 62, 44, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(27, 62, 44, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(27, 62, 44, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(27, 62, 44, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(27, 62, 44, 0.10)", + "c-primary-light-100": "rgb(113,191,150)", + "c-primary-light-100-alpha-100": "rgba(113, 191, 150, 0.90)", + "c-primary-light-100-alpha-200": "rgba(113, 191, 150, 0.80)", + "c-primary-light-100-alpha-300": "rgba(113, 191, 150, 0.70)", + "c-primary-light-100-alpha-400": "rgba(113, 191, 150, 0.60)", + "c-primary-light-100-alpha-500": "rgba(113, 191, 150, 0.50)", + "c-primary-light-100-alpha-600": "rgba(113, 191, 150, 0.40)", + "c-primary-light-100-alpha-700": "rgba(113, 191, 150, 0.30)", + "c-primary-light-100-alpha-800": "rgba(113, 191, 150, 0.20)", + "c-primary-light-100-alpha-900": "rgba(113, 191, 150, 0.10)", + "c-primary-light-200": "rgb(141,204,171)", + "c-primary-light-200-alpha-100": "rgba(141, 204, 171, 0.90)", + "c-primary-light-200-alpha-200": "rgba(141, 204, 171, 0.80)", + "c-primary-light-200-alpha-300": "rgba(141, 204, 171, 0.70)", + "c-primary-light-200-alpha-400": "rgba(141, 204, 171, 0.60)", + "c-primary-light-200-alpha-500": "rgba(141, 204, 171, 0.50)", + "c-primary-light-200-alpha-600": "rgba(141, 204, 171, 0.40)", + "c-primary-light-200-alpha-700": "rgba(141, 204, 171, 0.30)", + "c-primary-light-200-alpha-800": "rgba(141, 204, 171, 0.20)", + "c-primary-light-200-alpha-900": "rgba(141, 204, 171, 0.10)", + "c-primary-light-300": "rgb(164,214,188)", + "c-primary-light-300-alpha-100": "rgba(164, 214, 188, 0.90)", + "c-primary-light-300-alpha-200": "rgba(164, 214, 188, 0.80)", + "c-primary-light-300-alpha-300": "rgba(164, 214, 188, 0.70)", + "c-primary-light-300-alpha-400": "rgba(164, 214, 188, 0.60)", + "c-primary-light-300-alpha-500": "rgba(164, 214, 188, 0.50)", + "c-primary-light-300-alpha-600": "rgba(164, 214, 188, 0.40)", + "c-primary-light-300-alpha-700": "rgba(164, 214, 188, 0.30)", + "c-primary-light-300-alpha-800": "rgba(164, 214, 188, 0.20)", + "c-primary-light-300-alpha-900": "rgba(164, 214, 188, 0.10)", + "c-primary-light-400": "rgb(182,222,201)", + "c-primary-light-400-alpha-100": "rgba(182, 222, 201, 0.90)", + "c-primary-light-400-alpha-200": "rgba(182, 222, 201, 0.80)", + "c-primary-light-400-alpha-300": "rgba(182, 222, 201, 0.70)", + "c-primary-light-400-alpha-400": "rgba(182, 222, 201, 0.60)", + "c-primary-light-400-alpha-500": "rgba(182, 222, 201, 0.50)", + "c-primary-light-400-alpha-600": "rgba(182, 222, 201, 0.40)", + "c-primary-light-400-alpha-700": "rgba(182, 222, 201, 0.30)", + "c-primary-light-400-alpha-800": "rgba(182, 222, 201, 0.20)", + "c-primary-light-400-alpha-900": "rgba(182, 222, 201, 0.10)", + "c-primary-light-500": "rgb(197,229,212)", + "c-primary-light-500-alpha-100": "rgba(197, 229, 212, 0.90)", + "c-primary-light-500-alpha-200": "rgba(197, 229, 212, 0.80)", + "c-primary-light-500-alpha-300": "rgba(197, 229, 212, 0.70)", + "c-primary-light-500-alpha-400": "rgba(197, 229, 212, 0.60)", + "c-primary-light-500-alpha-500": "rgba(197, 229, 212, 0.50)", + "c-primary-light-500-alpha-600": "rgba(197, 229, 212, 0.40)", + "c-primary-light-500-alpha-700": "rgba(197, 229, 212, 0.30)", + "c-primary-light-500-alpha-800": "rgba(197, 229, 212, 0.20)", + "c-primary-light-500-alpha-900": "rgba(197, 229, 212, 0.10)", + "c-primary-light-600": "rgb(209,234,221)", + "c-primary-light-600-alpha-100": "rgba(209, 234, 221, 0.90)", + "c-primary-light-600-alpha-200": "rgba(209, 234, 221, 0.80)", + "c-primary-light-600-alpha-300": "rgba(209, 234, 221, 0.70)", + "c-primary-light-600-alpha-400": "rgba(209, 234, 221, 0.60)", + "c-primary-light-600-alpha-500": "rgba(209, 234, 221, 0.50)", + "c-primary-light-600-alpha-600": "rgba(209, 234, 221, 0.40)", + "c-primary-light-600-alpha-700": "rgba(209, 234, 221, 0.30)", + "c-primary-light-600-alpha-800": "rgba(209, 234, 221, 0.20)", + "c-primary-light-600-alpha-900": "rgba(209, 234, 221, 0.10)", + "c-primary-light-700": "rgb(218,238,228)", + "c-primary-light-700-alpha-100": "rgba(218, 238, 228, 0.90)", + "c-primary-light-700-alpha-200": "rgba(218, 238, 228, 0.80)", + "c-primary-light-700-alpha-300": "rgba(218, 238, 228, 0.70)", + "c-primary-light-700-alpha-400": "rgba(218, 238, 228, 0.60)", + "c-primary-light-700-alpha-500": "rgba(218, 238, 228, 0.50)", + "c-primary-light-700-alpha-600": "rgba(218, 238, 228, 0.40)", + "c-primary-light-700-alpha-700": "rgba(218, 238, 228, 0.30)", + "c-primary-light-700-alpha-800": "rgba(218, 238, 228, 0.20)", + "c-primary-light-700-alpha-900": "rgba(218, 238, 228, 0.10)", + "c-primary-light-800": "rgb(225,241,233)", + "c-primary-light-800-alpha-100": "rgba(225, 241, 233, 0.90)", + "c-primary-light-800-alpha-200": "rgba(225, 241, 233, 0.80)", + "c-primary-light-800-alpha-300": "rgba(225, 241, 233, 0.70)", + "c-primary-light-800-alpha-400": "rgba(225, 241, 233, 0.60)", + "c-primary-light-800-alpha-500": "rgba(225, 241, 233, 0.50)", + "c-primary-light-800-alpha-600": "rgba(225, 241, 233, 0.40)", + "c-primary-light-800-alpha-700": "rgba(225, 241, 233, 0.30)", + "c-primary-light-800-alpha-800": "rgba(225, 241, 233, 0.20)", + "c-primary-light-800-alpha-900": "rgba(225, 241, 233, 0.10)", + "c-primary-light-900": "rgb(231,244,237)", + "c-primary-light-900-alpha-100": "rgba(231, 244, 237, 0.90)", + "c-primary-light-900-alpha-200": "rgba(231, 244, 237, 0.80)", + "c-primary-light-900-alpha-300": "rgba(231, 244, 237, 0.70)", + "c-primary-light-900-alpha-400": "rgba(231, 244, 237, 0.60)", + "c-primary-light-900-alpha-500": "rgba(231, 244, 237, 0.50)", + "c-primary-light-900-alpha-600": "rgba(231, 244, 237, 0.40)", + "c-primary-light-900-alpha-700": "rgba(231, 244, 237, 0.30)", + "c-primary-light-900-alpha-800": "rgba(231, 244, 237, 0.20)", + "c-primary-light-900-alpha-900": "rgba(231, 244, 237, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(77, 175, 124)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#4baed5", + "c-badge-tertiary": "#e7aa36" + } + } + }, + { + "id": "blue", + "name": "蓝田生玉", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(52, 152, 219)", + "c-primary-dark-100": "rgb(47,137,197)", + "c-primary-dark-100-alpha-100": "rgba(47, 137, 197, 0.90)", + "c-primary-alpha-100": "rgba(52, 152, 219, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(47, 137, 197, 0.80)", + "c-primary-alpha-200": "rgba(52, 152, 219, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(47, 137, 197, 0.70)", + "c-primary-alpha-300": "rgba(52, 152, 219, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(47, 137, 197, 0.60)", + "c-primary-alpha-400": "rgba(52, 152, 219, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(47, 137, 197, 0.50)", + "c-primary-alpha-500": "rgba(52, 152, 219, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(47, 137, 197, 0.40)", + "c-primary-alpha-600": "rgba(52, 152, 219, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(47, 137, 197, 0.30)", + "c-primary-alpha-700": "rgba(52, 152, 219, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(47, 137, 197, 0.20)", + "c-primary-alpha-800": "rgba(52, 152, 219, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(47, 137, 197, 0.10)", + "c-primary-alpha-900": "rgba(52, 152, 219, 0.10)", + "c-primary-dark-200": "rgb(42,123,177)", + "c-primary-dark-200-alpha-100": "rgba(42, 123, 177, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(42, 123, 177, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(42, 123, 177, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(42, 123, 177, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(42, 123, 177, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(42, 123, 177, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(42, 123, 177, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(42, 123, 177, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(42, 123, 177, 0.10)", + "c-primary-dark-300": "rgb(38,111,159)", + "c-primary-dark-300-alpha-100": "rgba(38, 111, 159, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(38, 111, 159, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(38, 111, 159, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(38, 111, 159, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(38, 111, 159, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(38, 111, 159, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(38, 111, 159, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(38, 111, 159, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(38, 111, 159, 0.10)", + "c-primary-dark-400": "rgb(34,100,143)", + "c-primary-dark-400-alpha-100": "rgba(34, 100, 143, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(34, 100, 143, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(34, 100, 143, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(34, 100, 143, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(34, 100, 143, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(34, 100, 143, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(34, 100, 143, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(34, 100, 143, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(34, 100, 143, 0.10)", + "c-primary-dark-500": "rgb(31,90,129)", + "c-primary-dark-500-alpha-100": "rgba(31, 90, 129, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(31, 90, 129, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(31, 90, 129, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(31, 90, 129, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(31, 90, 129, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(31, 90, 129, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(31, 90, 129, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(31, 90, 129, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(31, 90, 129, 0.10)", + "c-primary-dark-600": "rgb(28,81,116)", + "c-primary-dark-600-alpha-100": "rgba(28, 81, 116, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(28, 81, 116, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(28, 81, 116, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(28, 81, 116, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(28, 81, 116, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(28, 81, 116, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(28, 81, 116, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(28, 81, 116, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(28, 81, 116, 0.10)", + "c-primary-dark-700": "rgb(25,73,104)", + "c-primary-dark-700-alpha-100": "rgba(25, 73, 104, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(25, 73, 104, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(25, 73, 104, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(25, 73, 104, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(25, 73, 104, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(25, 73, 104, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(25, 73, 104, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(25, 73, 104, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(25, 73, 104, 0.10)", + "c-primary-dark-800": "rgb(23,66,94)", + "c-primary-dark-800-alpha-100": "rgba(23, 66, 94, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(23, 66, 94, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(23, 66, 94, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(23, 66, 94, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(23, 66, 94, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(23, 66, 94, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(23, 66, 94, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(23, 66, 94, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(23, 66, 94, 0.10)", + "c-primary-dark-900": "rgb(21,59,85)", + "c-primary-dark-900-alpha-100": "rgba(21, 59, 85, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(21, 59, 85, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(21, 59, 85, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(21, 59, 85, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(21, 59, 85, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(21, 59, 85, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(21, 59, 85, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(21, 59, 85, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(21, 59, 85, 0.10)", + "c-primary-dark-1000": "rgb(19,53,77)", + "c-primary-dark-1000-alpha-100": "rgba(19, 53, 77, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(19, 53, 77, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(19, 53, 77, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(19, 53, 77, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(19, 53, 77, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(19, 53, 77, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(19, 53, 77, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(19, 53, 77, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(19, 53, 77, 0.10)", + "c-primary-light-100": "rgb(93,173,226)", + "c-primary-light-100-alpha-100": "rgba(93, 173, 226, 0.90)", + "c-primary-light-100-alpha-200": "rgba(93, 173, 226, 0.80)", + "c-primary-light-100-alpha-300": "rgba(93, 173, 226, 0.70)", + "c-primary-light-100-alpha-400": "rgba(93, 173, 226, 0.60)", + "c-primary-light-100-alpha-500": "rgba(93, 173, 226, 0.50)", + "c-primary-light-100-alpha-600": "rgba(93, 173, 226, 0.40)", + "c-primary-light-100-alpha-700": "rgba(93, 173, 226, 0.30)", + "c-primary-light-100-alpha-800": "rgba(93, 173, 226, 0.20)", + "c-primary-light-100-alpha-900": "rgba(93, 173, 226, 0.10)", + "c-primary-light-200": "rgb(125,189,232)", + "c-primary-light-200-alpha-100": "rgba(125, 189, 232, 0.90)", + "c-primary-light-200-alpha-200": "rgba(125, 189, 232, 0.80)", + "c-primary-light-200-alpha-300": "rgba(125, 189, 232, 0.70)", + "c-primary-light-200-alpha-400": "rgba(125, 189, 232, 0.60)", + "c-primary-light-200-alpha-500": "rgba(125, 189, 232, 0.50)", + "c-primary-light-200-alpha-600": "rgba(125, 189, 232, 0.40)", + "c-primary-light-200-alpha-700": "rgba(125, 189, 232, 0.30)", + "c-primary-light-200-alpha-800": "rgba(125, 189, 232, 0.20)", + "c-primary-light-200-alpha-900": "rgba(125, 189, 232, 0.10)", + "c-primary-light-300": "rgb(151,202,237)", + "c-primary-light-300-alpha-100": "rgba(151, 202, 237, 0.90)", + "c-primary-light-300-alpha-200": "rgba(151, 202, 237, 0.80)", + "c-primary-light-300-alpha-300": "rgba(151, 202, 237, 0.70)", + "c-primary-light-300-alpha-400": "rgba(151, 202, 237, 0.60)", + "c-primary-light-300-alpha-500": "rgba(151, 202, 237, 0.50)", + "c-primary-light-300-alpha-600": "rgba(151, 202, 237, 0.40)", + "c-primary-light-300-alpha-700": "rgba(151, 202, 237, 0.30)", + "c-primary-light-300-alpha-800": "rgba(151, 202, 237, 0.20)", + "c-primary-light-300-alpha-900": "rgba(151, 202, 237, 0.10)", + "c-primary-light-400": "rgb(172,213,241)", + "c-primary-light-400-alpha-100": "rgba(172, 213, 241, 0.90)", + "c-primary-light-400-alpha-200": "rgba(172, 213, 241, 0.80)", + "c-primary-light-400-alpha-300": "rgba(172, 213, 241, 0.70)", + "c-primary-light-400-alpha-400": "rgba(172, 213, 241, 0.60)", + "c-primary-light-400-alpha-500": "rgba(172, 213, 241, 0.50)", + "c-primary-light-400-alpha-600": "rgba(172, 213, 241, 0.40)", + "c-primary-light-400-alpha-700": "rgba(172, 213, 241, 0.30)", + "c-primary-light-400-alpha-800": "rgba(172, 213, 241, 0.20)", + "c-primary-light-400-alpha-900": "rgba(172, 213, 241, 0.10)", + "c-primary-light-500": "rgb(189,221,244)", + "c-primary-light-500-alpha-100": "rgba(189, 221, 244, 0.90)", + "c-primary-light-500-alpha-200": "rgba(189, 221, 244, 0.80)", + "c-primary-light-500-alpha-300": "rgba(189, 221, 244, 0.70)", + "c-primary-light-500-alpha-400": "rgba(189, 221, 244, 0.60)", + "c-primary-light-500-alpha-500": "rgba(189, 221, 244, 0.50)", + "c-primary-light-500-alpha-600": "rgba(189, 221, 244, 0.40)", + "c-primary-light-500-alpha-700": "rgba(189, 221, 244, 0.30)", + "c-primary-light-500-alpha-800": "rgba(189, 221, 244, 0.20)", + "c-primary-light-500-alpha-900": "rgba(189, 221, 244, 0.10)", + "c-primary-light-600": "rgb(202,228,246)", + "c-primary-light-600-alpha-100": "rgba(202, 228, 246, 0.90)", + "c-primary-light-600-alpha-200": "rgba(202, 228, 246, 0.80)", + "c-primary-light-600-alpha-300": "rgba(202, 228, 246, 0.70)", + "c-primary-light-600-alpha-400": "rgba(202, 228, 246, 0.60)", + "c-primary-light-600-alpha-500": "rgba(202, 228, 246, 0.50)", + "c-primary-light-600-alpha-600": "rgba(202, 228, 246, 0.40)", + "c-primary-light-600-alpha-700": "rgba(202, 228, 246, 0.30)", + "c-primary-light-600-alpha-800": "rgba(202, 228, 246, 0.20)", + "c-primary-light-600-alpha-900": "rgba(202, 228, 246, 0.10)", + "c-primary-light-700": "rgb(213,233,248)", + "c-primary-light-700-alpha-100": "rgba(213, 233, 248, 0.90)", + "c-primary-light-700-alpha-200": "rgba(213, 233, 248, 0.80)", + "c-primary-light-700-alpha-300": "rgba(213, 233, 248, 0.70)", + "c-primary-light-700-alpha-400": "rgba(213, 233, 248, 0.60)", + "c-primary-light-700-alpha-500": "rgba(213, 233, 248, 0.50)", + "c-primary-light-700-alpha-600": "rgba(213, 233, 248, 0.40)", + "c-primary-light-700-alpha-700": "rgba(213, 233, 248, 0.30)", + "c-primary-light-700-alpha-800": "rgba(213, 233, 248, 0.20)", + "c-primary-light-700-alpha-900": "rgba(213, 233, 248, 0.10)", + "c-primary-light-800": "rgb(221,237,249)", + "c-primary-light-800-alpha-100": "rgba(221, 237, 249, 0.90)", + "c-primary-light-800-alpha-200": "rgba(221, 237, 249, 0.80)", + "c-primary-light-800-alpha-300": "rgba(221, 237, 249, 0.70)", + "c-primary-light-800-alpha-400": "rgba(221, 237, 249, 0.60)", + "c-primary-light-800-alpha-500": "rgba(221, 237, 249, 0.50)", + "c-primary-light-800-alpha-600": "rgba(221, 237, 249, 0.40)", + "c-primary-light-800-alpha-700": "rgba(221, 237, 249, 0.30)", + "c-primary-light-800-alpha-800": "rgba(221, 237, 249, 0.20)", + "c-primary-light-800-alpha-900": "rgba(221, 237, 249, 0.10)", + "c-primary-light-900": "rgb(228,241,250)", + "c-primary-light-900-alpha-100": "rgba(228, 241, 250, 0.90)", + "c-primary-light-900-alpha-200": "rgba(228, 241, 250, 0.80)", + "c-primary-light-900-alpha-300": "rgba(228, 241, 250, 0.70)", + "c-primary-light-900-alpha-400": "rgba(228, 241, 250, 0.60)", + "c-primary-light-900-alpha-500": "rgba(228, 241, 250, 0.50)", + "c-primary-light-900-alpha-600": "rgba(228, 241, 250, 0.40)", + "c-primary-light-900-alpha-700": "rgba(228, 241, 250, 0.30)", + "c-primary-light-900-alpha-800": "rgba(228, 241, 250, 0.20)", + "c-primary-light-900-alpha-900": "rgba(228, 241, 250, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(52, 152, 219)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#5cbf9b", + "c-badge-tertiary": "#5cbf9b" + } + } + }, + { + "id": "blue_plus", + "name": "蛋雅深蓝", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(77, 131, 175)", + "c-primary-dark-100": "rgb(69,118,158)", + "c-primary-dark-100-alpha-100": "rgba(69, 118, 158, 0.90)", + "c-primary-alpha-100": "rgba(77, 131, 175, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(69, 118, 158, 0.80)", + "c-primary-alpha-200": "rgba(77, 131, 175, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(69, 118, 158, 0.70)", + "c-primary-alpha-300": "rgba(77, 131, 175, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(69, 118, 158, 0.60)", + "c-primary-alpha-400": "rgba(77, 131, 175, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(69, 118, 158, 0.50)", + "c-primary-alpha-500": "rgba(77, 131, 175, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(69, 118, 158, 0.40)", + "c-primary-alpha-600": "rgba(77, 131, 175, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(69, 118, 158, 0.30)", + "c-primary-alpha-700": "rgba(77, 131, 175, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(69, 118, 158, 0.20)", + "c-primary-alpha-800": "rgba(77, 131, 175, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(69, 118, 158, 0.10)", + "c-primary-alpha-900": "rgba(77, 131, 175, 0.10)", + "c-primary-dark-200": "rgb(62,106,142)", + "c-primary-dark-200-alpha-100": "rgba(62, 106, 142, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(62, 106, 142, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(62, 106, 142, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(62, 106, 142, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(62, 106, 142, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(62, 106, 142, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(62, 106, 142, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(62, 106, 142, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(62, 106, 142, 0.10)", + "c-primary-dark-300": "rgb(56,95,128)", + "c-primary-dark-300-alpha-100": "rgba(56, 95, 128, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(56, 95, 128, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(56, 95, 128, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(56, 95, 128, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(56, 95, 128, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(56, 95, 128, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(56, 95, 128, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(56, 95, 128, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(56, 95, 128, 0.10)", + "c-primary-dark-400": "rgb(50,86,115)", + "c-primary-dark-400-alpha-100": "rgba(50, 86, 115, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(50, 86, 115, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(50, 86, 115, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(50, 86, 115, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(50, 86, 115, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(50, 86, 115, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(50, 86, 115, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(50, 86, 115, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(50, 86, 115, 0.10)", + "c-primary-dark-500": "rgb(45,77,104)", + "c-primary-dark-500-alpha-100": "rgba(45, 77, 104, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(45, 77, 104, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(45, 77, 104, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(45, 77, 104, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(45, 77, 104, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(45, 77, 104, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(45, 77, 104, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(45, 77, 104, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(45, 77, 104, 0.10)", + "c-primary-dark-600": "rgb(41,69,94)", + "c-primary-dark-600-alpha-100": "rgba(41, 69, 94, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(41, 69, 94, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(41, 69, 94, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(41, 69, 94, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(41, 69, 94, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(41, 69, 94, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(41, 69, 94, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(41, 69, 94, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(41, 69, 94, 0.10)", + "c-primary-dark-700": "rgb(37,62,85)", + "c-primary-dark-700-alpha-100": "rgba(37, 62, 85, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(37, 62, 85, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(37, 62, 85, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(37, 62, 85, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(37, 62, 85, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(37, 62, 85, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(37, 62, 85, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(37, 62, 85, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(37, 62, 85, 0.10)", + "c-primary-dark-800": "rgb(33,56,77)", + "c-primary-dark-800-alpha-100": "rgba(33, 56, 77, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(33, 56, 77, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(33, 56, 77, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(33, 56, 77, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(33, 56, 77, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(33, 56, 77, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(33, 56, 77, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(33, 56, 77, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(33, 56, 77, 0.10)", + "c-primary-dark-900": "rgb(30,50,69)", + "c-primary-dark-900-alpha-100": "rgba(30, 50, 69, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(30, 50, 69, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(30, 50, 69, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(30, 50, 69, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(30, 50, 69, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(30, 50, 69, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(30, 50, 69, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(30, 50, 69, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(30, 50, 69, 0.10)", + "c-primary-dark-1000": "rgb(27,45,62)", + "c-primary-dark-1000-alpha-100": "rgba(27, 45, 62, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(27, 45, 62, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(27, 45, 62, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(27, 45, 62, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(27, 45, 62, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(27, 45, 62, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(27, 45, 62, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(27, 45, 62, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(27, 45, 62, 0.10)", + "c-primary-light-100": "rgb(113,156,191)", + "c-primary-light-100-alpha-100": "rgba(113, 156, 191, 0.90)", + "c-primary-light-100-alpha-200": "rgba(113, 156, 191, 0.80)", + "c-primary-light-100-alpha-300": "rgba(113, 156, 191, 0.70)", + "c-primary-light-100-alpha-400": "rgba(113, 156, 191, 0.60)", + "c-primary-light-100-alpha-500": "rgba(113, 156, 191, 0.50)", + "c-primary-light-100-alpha-600": "rgba(113, 156, 191, 0.40)", + "c-primary-light-100-alpha-700": "rgba(113, 156, 191, 0.30)", + "c-primary-light-100-alpha-800": "rgba(113, 156, 191, 0.20)", + "c-primary-light-100-alpha-900": "rgba(113, 156, 191, 0.10)", + "c-primary-light-200": "rgb(141,176,204)", + "c-primary-light-200-alpha-100": "rgba(141, 176, 204, 0.90)", + "c-primary-light-200-alpha-200": "rgba(141, 176, 204, 0.80)", + "c-primary-light-200-alpha-300": "rgba(141, 176, 204, 0.70)", + "c-primary-light-200-alpha-400": "rgba(141, 176, 204, 0.60)", + "c-primary-light-200-alpha-500": "rgba(141, 176, 204, 0.50)", + "c-primary-light-200-alpha-600": "rgba(141, 176, 204, 0.40)", + "c-primary-light-200-alpha-700": "rgba(141, 176, 204, 0.30)", + "c-primary-light-200-alpha-800": "rgba(141, 176, 204, 0.20)", + "c-primary-light-200-alpha-900": "rgba(141, 176, 204, 0.10)", + "c-primary-light-300": "rgb(164,192,214)", + "c-primary-light-300-alpha-100": "rgba(164, 192, 214, 0.90)", + "c-primary-light-300-alpha-200": "rgba(164, 192, 214, 0.80)", + "c-primary-light-300-alpha-300": "rgba(164, 192, 214, 0.70)", + "c-primary-light-300-alpha-400": "rgba(164, 192, 214, 0.60)", + "c-primary-light-300-alpha-500": "rgba(164, 192, 214, 0.50)", + "c-primary-light-300-alpha-600": "rgba(164, 192, 214, 0.40)", + "c-primary-light-300-alpha-700": "rgba(164, 192, 214, 0.30)", + "c-primary-light-300-alpha-800": "rgba(164, 192, 214, 0.20)", + "c-primary-light-300-alpha-900": "rgba(164, 192, 214, 0.10)", + "c-primary-light-400": "rgb(182,205,222)", + "c-primary-light-400-alpha-100": "rgba(182, 205, 222, 0.90)", + "c-primary-light-400-alpha-200": "rgba(182, 205, 222, 0.80)", + "c-primary-light-400-alpha-300": "rgba(182, 205, 222, 0.70)", + "c-primary-light-400-alpha-400": "rgba(182, 205, 222, 0.60)", + "c-primary-light-400-alpha-500": "rgba(182, 205, 222, 0.50)", + "c-primary-light-400-alpha-600": "rgba(182, 205, 222, 0.40)", + "c-primary-light-400-alpha-700": "rgba(182, 205, 222, 0.30)", + "c-primary-light-400-alpha-800": "rgba(182, 205, 222, 0.20)", + "c-primary-light-400-alpha-900": "rgba(182, 205, 222, 0.10)", + "c-primary-light-500": "rgb(197,215,229)", + "c-primary-light-500-alpha-100": "rgba(197, 215, 229, 0.90)", + "c-primary-light-500-alpha-200": "rgba(197, 215, 229, 0.80)", + "c-primary-light-500-alpha-300": "rgba(197, 215, 229, 0.70)", + "c-primary-light-500-alpha-400": "rgba(197, 215, 229, 0.60)", + "c-primary-light-500-alpha-500": "rgba(197, 215, 229, 0.50)", + "c-primary-light-500-alpha-600": "rgba(197, 215, 229, 0.40)", + "c-primary-light-500-alpha-700": "rgba(197, 215, 229, 0.30)", + "c-primary-light-500-alpha-800": "rgba(197, 215, 229, 0.20)", + "c-primary-light-500-alpha-900": "rgba(197, 215, 229, 0.10)", + "c-primary-light-600": "rgb(209,223,234)", + "c-primary-light-600-alpha-100": "rgba(209, 223, 234, 0.90)", + "c-primary-light-600-alpha-200": "rgba(209, 223, 234, 0.80)", + "c-primary-light-600-alpha-300": "rgba(209, 223, 234, 0.70)", + "c-primary-light-600-alpha-400": "rgba(209, 223, 234, 0.60)", + "c-primary-light-600-alpha-500": "rgba(209, 223, 234, 0.50)", + "c-primary-light-600-alpha-600": "rgba(209, 223, 234, 0.40)", + "c-primary-light-600-alpha-700": "rgba(209, 223, 234, 0.30)", + "c-primary-light-600-alpha-800": "rgba(209, 223, 234, 0.20)", + "c-primary-light-600-alpha-900": "rgba(209, 223, 234, 0.10)", + "c-primary-light-700": "rgb(218,229,238)", + "c-primary-light-700-alpha-100": "rgba(218, 229, 238, 0.90)", + "c-primary-light-700-alpha-200": "rgba(218, 229, 238, 0.80)", + "c-primary-light-700-alpha-300": "rgba(218, 229, 238, 0.70)", + "c-primary-light-700-alpha-400": "rgba(218, 229, 238, 0.60)", + "c-primary-light-700-alpha-500": "rgba(218, 229, 238, 0.50)", + "c-primary-light-700-alpha-600": "rgba(218, 229, 238, 0.40)", + "c-primary-light-700-alpha-700": "rgba(218, 229, 238, 0.30)", + "c-primary-light-700-alpha-800": "rgba(218, 229, 238, 0.20)", + "c-primary-light-700-alpha-900": "rgba(218, 229, 238, 0.10)", + "c-primary-light-800": "rgb(225,234,241)", + "c-primary-light-800-alpha-100": "rgba(225, 234, 241, 0.90)", + "c-primary-light-800-alpha-200": "rgba(225, 234, 241, 0.80)", + "c-primary-light-800-alpha-300": "rgba(225, 234, 241, 0.70)", + "c-primary-light-800-alpha-400": "rgba(225, 234, 241, 0.60)", + "c-primary-light-800-alpha-500": "rgba(225, 234, 241, 0.50)", + "c-primary-light-800-alpha-600": "rgba(225, 234, 241, 0.40)", + "c-primary-light-800-alpha-700": "rgba(225, 234, 241, 0.30)", + "c-primary-light-800-alpha-800": "rgba(225, 234, 241, 0.20)", + "c-primary-light-800-alpha-900": "rgba(225, 234, 241, 0.10)", + "c-primary-light-900": "rgb(231,238,244)", + "c-primary-light-900-alpha-100": "rgba(231, 238, 244, 0.90)", + "c-primary-light-900-alpha-200": "rgba(231, 238, 244, 0.80)", + "c-primary-light-900-alpha-300": "rgba(231, 238, 244, 0.70)", + "c-primary-light-900-alpha-400": "rgba(231, 238, 244, 0.60)", + "c-primary-light-900-alpha-500": "rgba(231, 238, 244, 0.50)", + "c-primary-light-900-alpha-600": "rgba(231, 238, 244, 0.40)", + "c-primary-light-900-alpha-700": "rgba(231, 238, 244, 0.30)", + "c-primary-light-900-alpha-800": "rgba(231, 238, 244, 0.20)", + "c-primary-light-900-alpha-900": "rgba(231, 238, 244, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(77, 131, 175)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-600)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "rgba(66.6, 150.7, 171, 1)", + "c-badge-tertiary": "rgba(54, 196, 231, 1)" + } + } + }, + { + "id": "orange", + "name": "橙黄橘绿", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(245, 171, 53)", + "c-primary-dark-100": "rgb(221,154,48)", + "c-primary-dark-100-alpha-100": "rgba(221, 154, 48, 0.90)", + "c-primary-alpha-100": "rgba(245, 171, 53, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(221, 154, 48, 0.80)", + "c-primary-alpha-200": "rgba(245, 171, 53, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(221, 154, 48, 0.70)", + "c-primary-alpha-300": "rgba(245, 171, 53, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(221, 154, 48, 0.60)", + "c-primary-alpha-400": "rgba(245, 171, 53, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(221, 154, 48, 0.50)", + "c-primary-alpha-500": "rgba(245, 171, 53, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(221, 154, 48, 0.40)", + "c-primary-alpha-600": "rgba(245, 171, 53, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(221, 154, 48, 0.30)", + "c-primary-alpha-700": "rgba(245, 171, 53, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(221, 154, 48, 0.20)", + "c-primary-alpha-800": "rgba(245, 171, 53, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(221, 154, 48, 0.10)", + "c-primary-alpha-900": "rgba(245, 171, 53, 0.10)", + "c-primary-dark-200": "rgb(199,139,43)", + "c-primary-dark-200-alpha-100": "rgba(199, 139, 43, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(199, 139, 43, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(199, 139, 43, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(199, 139, 43, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(199, 139, 43, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(199, 139, 43, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(199, 139, 43, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(199, 139, 43, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(199, 139, 43, 0.10)", + "c-primary-dark-300": "rgb(179,125,39)", + "c-primary-dark-300-alpha-100": "rgba(179, 125, 39, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(179, 125, 39, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(179, 125, 39, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(179, 125, 39, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(179, 125, 39, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(179, 125, 39, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(179, 125, 39, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(179, 125, 39, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(179, 125, 39, 0.10)", + "c-primary-dark-400": "rgb(161,113,35)", + "c-primary-dark-400-alpha-100": "rgba(161, 113, 35, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(161, 113, 35, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(161, 113, 35, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(161, 113, 35, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(161, 113, 35, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(161, 113, 35, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(161, 113, 35, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(161, 113, 35, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(161, 113, 35, 0.10)", + "c-primary-dark-500": "rgb(145,102,32)", + "c-primary-dark-500-alpha-100": "rgba(145, 102, 32, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(145, 102, 32, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(145, 102, 32, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(145, 102, 32, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(145, 102, 32, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(145, 102, 32, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(145, 102, 32, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(145, 102, 32, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(145, 102, 32, 0.10)", + "c-primary-dark-600": "rgb(131,92,29)", + "c-primary-dark-600-alpha-100": "rgba(131, 92, 29, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(131, 92, 29, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(131, 92, 29, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(131, 92, 29, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(131, 92, 29, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(131, 92, 29, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(131, 92, 29, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(131, 92, 29, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(131, 92, 29, 0.10)", + "c-primary-dark-700": "rgb(118,83,26)", + "c-primary-dark-700-alpha-100": "rgba(118, 83, 26, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(118, 83, 26, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(118, 83, 26, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(118, 83, 26, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(118, 83, 26, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(118, 83, 26, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(118, 83, 26, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(118, 83, 26, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(118, 83, 26, 0.10)", + "c-primary-dark-800": "rgb(106,75,23)", + "c-primary-dark-800-alpha-100": "rgba(106, 75, 23, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(106, 75, 23, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(106, 75, 23, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(106, 75, 23, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(106, 75, 23, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(106, 75, 23, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(106, 75, 23, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(106, 75, 23, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(106, 75, 23, 0.10)", + "c-primary-dark-900": "rgb(95,68,21)", + "c-primary-dark-900-alpha-100": "rgba(95, 68, 21, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(95, 68, 21, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(95, 68, 21, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(95, 68, 21, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(95, 68, 21, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(95, 68, 21, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(95, 68, 21, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(95, 68, 21, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(95, 68, 21, 0.10)", + "c-primary-dark-1000": "rgb(86,61,19)", + "c-primary-dark-1000-alpha-100": "rgba(86, 61, 19, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(86, 61, 19, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(86, 61, 19, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(86, 61, 19, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(86, 61, 19, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(86, 61, 19, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(86, 61, 19, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(86, 61, 19, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(86, 61, 19, 0.10)", + "c-primary-light-100": "rgb(247,188,93)", + "c-primary-light-100-alpha-100": "rgba(247, 188, 93, 0.90)", + "c-primary-light-100-alpha-200": "rgba(247, 188, 93, 0.80)", + "c-primary-light-100-alpha-300": "rgba(247, 188, 93, 0.70)", + "c-primary-light-100-alpha-400": "rgba(247, 188, 93, 0.60)", + "c-primary-light-100-alpha-500": "rgba(247, 188, 93, 0.50)", + "c-primary-light-100-alpha-600": "rgba(247, 188, 93, 0.40)", + "c-primary-light-100-alpha-700": "rgba(247, 188, 93, 0.30)", + "c-primary-light-100-alpha-800": "rgba(247, 188, 93, 0.20)", + "c-primary-light-100-alpha-900": "rgba(247, 188, 93, 0.10)", + "c-primary-light-200": "rgb(249,201,125)", + "c-primary-light-200-alpha-100": "rgba(249, 201, 125, 0.90)", + "c-primary-light-200-alpha-200": "rgba(249, 201, 125, 0.80)", + "c-primary-light-200-alpha-300": "rgba(249, 201, 125, 0.70)", + "c-primary-light-200-alpha-400": "rgba(249, 201, 125, 0.60)", + "c-primary-light-200-alpha-500": "rgba(249, 201, 125, 0.50)", + "c-primary-light-200-alpha-600": "rgba(249, 201, 125, 0.40)", + "c-primary-light-200-alpha-700": "rgba(249, 201, 125, 0.30)", + "c-primary-light-200-alpha-800": "rgba(249, 201, 125, 0.20)", + "c-primary-light-200-alpha-900": "rgba(249, 201, 125, 0.10)", + "c-primary-light-300": "rgb(250,212,151)", + "c-primary-light-300-alpha-100": "rgba(250, 212, 151, 0.90)", + "c-primary-light-300-alpha-200": "rgba(250, 212, 151, 0.80)", + "c-primary-light-300-alpha-300": "rgba(250, 212, 151, 0.70)", + "c-primary-light-300-alpha-400": "rgba(250, 212, 151, 0.60)", + "c-primary-light-300-alpha-500": "rgba(250, 212, 151, 0.50)", + "c-primary-light-300-alpha-600": "rgba(250, 212, 151, 0.40)", + "c-primary-light-300-alpha-700": "rgba(250, 212, 151, 0.30)", + "c-primary-light-300-alpha-800": "rgba(250, 212, 151, 0.20)", + "c-primary-light-300-alpha-900": "rgba(250, 212, 151, 0.10)", + "c-primary-light-400": "rgb(251,221,172)", + "c-primary-light-400-alpha-100": "rgba(251, 221, 172, 0.90)", + "c-primary-light-400-alpha-200": "rgba(251, 221, 172, 0.80)", + "c-primary-light-400-alpha-300": "rgba(251, 221, 172, 0.70)", + "c-primary-light-400-alpha-400": "rgba(251, 221, 172, 0.60)", + "c-primary-light-400-alpha-500": "rgba(251, 221, 172, 0.50)", + "c-primary-light-400-alpha-600": "rgba(251, 221, 172, 0.40)", + "c-primary-light-400-alpha-700": "rgba(251, 221, 172, 0.30)", + "c-primary-light-400-alpha-800": "rgba(251, 221, 172, 0.20)", + "c-primary-light-400-alpha-900": "rgba(251, 221, 172, 0.10)", + "c-primary-light-500": "rgb(252,228,189)", + "c-primary-light-500-alpha-100": "rgba(252, 228, 189, 0.90)", + "c-primary-light-500-alpha-200": "rgba(252, 228, 189, 0.80)", + "c-primary-light-500-alpha-300": "rgba(252, 228, 189, 0.70)", + "c-primary-light-500-alpha-400": "rgba(252, 228, 189, 0.60)", + "c-primary-light-500-alpha-500": "rgba(252, 228, 189, 0.50)", + "c-primary-light-500-alpha-600": "rgba(252, 228, 189, 0.40)", + "c-primary-light-500-alpha-700": "rgba(252, 228, 189, 0.30)", + "c-primary-light-500-alpha-800": "rgba(252, 228, 189, 0.20)", + "c-primary-light-500-alpha-900": "rgba(252, 228, 189, 0.10)", + "c-primary-light-600": "rgb(253,233,202)", + "c-primary-light-600-alpha-100": "rgba(253, 233, 202, 0.90)", + "c-primary-light-600-alpha-200": "rgba(253, 233, 202, 0.80)", + "c-primary-light-600-alpha-300": "rgba(253, 233, 202, 0.70)", + "c-primary-light-600-alpha-400": "rgba(253, 233, 202, 0.60)", + "c-primary-light-600-alpha-500": "rgba(253, 233, 202, 0.50)", + "c-primary-light-600-alpha-600": "rgba(253, 233, 202, 0.40)", + "c-primary-light-600-alpha-700": "rgba(253, 233, 202, 0.30)", + "c-primary-light-600-alpha-800": "rgba(253, 233, 202, 0.20)", + "c-primary-light-600-alpha-900": "rgba(253, 233, 202, 0.10)", + "c-primary-light-700": "rgb(253,237,213)", + "c-primary-light-700-alpha-100": "rgba(253, 237, 213, 0.90)", + "c-primary-light-700-alpha-200": "rgba(253, 237, 213, 0.80)", + "c-primary-light-700-alpha-300": "rgba(253, 237, 213, 0.70)", + "c-primary-light-700-alpha-400": "rgba(253, 237, 213, 0.60)", + "c-primary-light-700-alpha-500": "rgba(253, 237, 213, 0.50)", + "c-primary-light-700-alpha-600": "rgba(253, 237, 213, 0.40)", + "c-primary-light-700-alpha-700": "rgba(253, 237, 213, 0.30)", + "c-primary-light-700-alpha-800": "rgba(253, 237, 213, 0.20)", + "c-primary-light-700-alpha-900": "rgba(253, 237, 213, 0.10)", + "c-primary-light-800": "rgb(253,241,221)", + "c-primary-light-800-alpha-100": "rgba(253, 241, 221, 0.90)", + "c-primary-light-800-alpha-200": "rgba(253, 241, 221, 0.80)", + "c-primary-light-800-alpha-300": "rgba(253, 241, 221, 0.70)", + "c-primary-light-800-alpha-400": "rgba(253, 241, 221, 0.60)", + "c-primary-light-800-alpha-500": "rgba(253, 241, 221, 0.50)", + "c-primary-light-800-alpha-600": "rgba(253, 241, 221, 0.40)", + "c-primary-light-800-alpha-700": "rgba(253, 241, 221, 0.30)", + "c-primary-light-800-alpha-800": "rgba(253, 241, 221, 0.20)", + "c-primary-light-800-alpha-900": "rgba(253, 241, 221, 0.10)", + "c-primary-light-900": "rgb(253,244,228)", + "c-primary-light-900-alpha-100": "rgba(253, 244, 228, 0.90)", + "c-primary-light-900-alpha-200": "rgba(253, 244, 228, 0.80)", + "c-primary-light-900-alpha-300": "rgba(253, 244, 228, 0.70)", + "c-primary-light-900-alpha-400": "rgba(253, 244, 228, 0.60)", + "c-primary-light-900-alpha-500": "rgba(253, 244, 228, 0.50)", + "c-primary-light-900-alpha-600": "rgba(253, 244, 228, 0.40)", + "c-primary-light-900-alpha-700": "rgba(253, 244, 228, 0.30)", + "c-primary-light-900-alpha-800": "rgba(253, 244, 228, 0.20)", + "c-primary-light-900-alpha-900": "rgba(253, 244, 228, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(245, 171, 53)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#9ed458", + "c-badge-tertiary": "#9ed458" + } + } + }, + { + "id": "red", + "name": "热情似火", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(214, 69, 65)", + "c-primary-dark-100": "rgb(193,62,59)", + "c-primary-dark-100-alpha-100": "rgba(193, 62, 59, 0.90)", + "c-primary-alpha-100": "rgba(214, 69, 65, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(193, 62, 59, 0.80)", + "c-primary-alpha-200": "rgba(214, 69, 65, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(193, 62, 59, 0.70)", + "c-primary-alpha-300": "rgba(214, 69, 65, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(193, 62, 59, 0.60)", + "c-primary-alpha-400": "rgba(214, 69, 65, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(193, 62, 59, 0.50)", + "c-primary-alpha-500": "rgba(214, 69, 65, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(193, 62, 59, 0.40)", + "c-primary-alpha-600": "rgba(214, 69, 65, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(193, 62, 59, 0.30)", + "c-primary-alpha-700": "rgba(214, 69, 65, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(193, 62, 59, 0.20)", + "c-primary-alpha-800": "rgba(214, 69, 65, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(193, 62, 59, 0.10)", + "c-primary-alpha-900": "rgba(214, 69, 65, 0.10)", + "c-primary-dark-200": "rgb(174,56,53)", + "c-primary-dark-200-alpha-100": "rgba(174, 56, 53, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(174, 56, 53, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(174, 56, 53, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(174, 56, 53, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(174, 56, 53, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(174, 56, 53, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(174, 56, 53, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(174, 56, 53, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(174, 56, 53, 0.10)", + "c-primary-dark-300": "rgb(157,50,48)", + "c-primary-dark-300-alpha-100": "rgba(157, 50, 48, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(157, 50, 48, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(157, 50, 48, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(157, 50, 48, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(157, 50, 48, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(157, 50, 48, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(157, 50, 48, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(157, 50, 48, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(157, 50, 48, 0.10)", + "c-primary-dark-400": "rgb(141,45,43)", + "c-primary-dark-400-alpha-100": "rgba(141, 45, 43, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(141, 45, 43, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(141, 45, 43, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(141, 45, 43, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(141, 45, 43, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(141, 45, 43, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(141, 45, 43, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(141, 45, 43, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(141, 45, 43, 0.10)", + "c-primary-dark-500": "rgb(127,41,39)", + "c-primary-dark-500-alpha-100": "rgba(127, 41, 39, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(127, 41, 39, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(127, 41, 39, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(127, 41, 39, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(127, 41, 39, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(127, 41, 39, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(127, 41, 39, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(127, 41, 39, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(127, 41, 39, 0.10)", + "c-primary-dark-600": "rgb(114,37,35)", + "c-primary-dark-600-alpha-100": "rgba(114, 37, 35, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(114, 37, 35, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(114, 37, 35, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(114, 37, 35, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(114, 37, 35, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(114, 37, 35, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(114, 37, 35, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(114, 37, 35, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(114, 37, 35, 0.10)", + "c-primary-dark-700": "rgb(103,33,32)", + "c-primary-dark-700-alpha-100": "rgba(103, 33, 32, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(103, 33, 32, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(103, 33, 32, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(103, 33, 32, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(103, 33, 32, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(103, 33, 32, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(103, 33, 32, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(103, 33, 32, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(103, 33, 32, 0.10)", + "c-primary-dark-800": "rgb(93,30,29)", + "c-primary-dark-800-alpha-100": "rgba(93, 30, 29, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(93, 30, 29, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(93, 30, 29, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(93, 30, 29, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(93, 30, 29, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(93, 30, 29, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(93, 30, 29, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(93, 30, 29, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(93, 30, 29, 0.10)", + "c-primary-dark-900": "rgb(84,27,26)", + "c-primary-dark-900-alpha-100": "rgba(84, 27, 26, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(84, 27, 26, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(84, 27, 26, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(84, 27, 26, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(84, 27, 26, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(84, 27, 26, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(84, 27, 26, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(84, 27, 26, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(84, 27, 26, 0.10)", + "c-primary-dark-1000": "rgb(76,24,23)", + "c-primary-dark-1000-alpha-100": "rgba(76, 24, 23, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(76, 24, 23, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(76, 24, 23, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(76, 24, 23, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(76, 24, 23, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(76, 24, 23, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(76, 24, 23, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(76, 24, 23, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(76, 24, 23, 0.10)", + "c-primary-light-100": "rgb(222,106,103)", + "c-primary-light-100-alpha-100": "rgba(222, 106, 103, 0.90)", + "c-primary-light-100-alpha-200": "rgba(222, 106, 103, 0.80)", + "c-primary-light-100-alpha-300": "rgba(222, 106, 103, 0.70)", + "c-primary-light-100-alpha-400": "rgba(222, 106, 103, 0.60)", + "c-primary-light-100-alpha-500": "rgba(222, 106, 103, 0.50)", + "c-primary-light-100-alpha-600": "rgba(222, 106, 103, 0.40)", + "c-primary-light-100-alpha-700": "rgba(222, 106, 103, 0.30)", + "c-primary-light-100-alpha-800": "rgba(222, 106, 103, 0.20)", + "c-primary-light-100-alpha-900": "rgba(222, 106, 103, 0.10)", + "c-primary-light-200": "rgb(229,136,133)", + "c-primary-light-200-alpha-100": "rgba(229, 136, 133, 0.90)", + "c-primary-light-200-alpha-200": "rgba(229, 136, 133, 0.80)", + "c-primary-light-200-alpha-300": "rgba(229, 136, 133, 0.70)", + "c-primary-light-200-alpha-400": "rgba(229, 136, 133, 0.60)", + "c-primary-light-200-alpha-500": "rgba(229, 136, 133, 0.50)", + "c-primary-light-200-alpha-600": "rgba(229, 136, 133, 0.40)", + "c-primary-light-200-alpha-700": "rgba(229, 136, 133, 0.30)", + "c-primary-light-200-alpha-800": "rgba(229, 136, 133, 0.20)", + "c-primary-light-200-alpha-900": "rgba(229, 136, 133, 0.10)", + "c-primary-light-300": "rgb(234,160,157)", + "c-primary-light-300-alpha-100": "rgba(234, 160, 157, 0.90)", + "c-primary-light-300-alpha-200": "rgba(234, 160, 157, 0.80)", + "c-primary-light-300-alpha-300": "rgba(234, 160, 157, 0.70)", + "c-primary-light-300-alpha-400": "rgba(234, 160, 157, 0.60)", + "c-primary-light-300-alpha-500": "rgba(234, 160, 157, 0.50)", + "c-primary-light-300-alpha-600": "rgba(234, 160, 157, 0.40)", + "c-primary-light-300-alpha-700": "rgba(234, 160, 157, 0.30)", + "c-primary-light-300-alpha-800": "rgba(234, 160, 157, 0.20)", + "c-primary-light-300-alpha-900": "rgba(234, 160, 157, 0.10)", + "c-primary-light-400": "rgb(238,179,177)", + "c-primary-light-400-alpha-100": "rgba(238, 179, 177, 0.90)", + "c-primary-light-400-alpha-200": "rgba(238, 179, 177, 0.80)", + "c-primary-light-400-alpha-300": "rgba(238, 179, 177, 0.70)", + "c-primary-light-400-alpha-400": "rgba(238, 179, 177, 0.60)", + "c-primary-light-400-alpha-500": "rgba(238, 179, 177, 0.50)", + "c-primary-light-400-alpha-600": "rgba(238, 179, 177, 0.40)", + "c-primary-light-400-alpha-700": "rgba(238, 179, 177, 0.30)", + "c-primary-light-400-alpha-800": "rgba(238, 179, 177, 0.20)", + "c-primary-light-400-alpha-900": "rgba(238, 179, 177, 0.10)", + "c-primary-light-500": "rgb(241,194,193)", + "c-primary-light-500-alpha-100": "rgba(241, 194, 193, 0.90)", + "c-primary-light-500-alpha-200": "rgba(241, 194, 193, 0.80)", + "c-primary-light-500-alpha-300": "rgba(241, 194, 193, 0.70)", + "c-primary-light-500-alpha-400": "rgba(241, 194, 193, 0.60)", + "c-primary-light-500-alpha-500": "rgba(241, 194, 193, 0.50)", + "c-primary-light-500-alpha-600": "rgba(241, 194, 193, 0.40)", + "c-primary-light-500-alpha-700": "rgba(241, 194, 193, 0.30)", + "c-primary-light-500-alpha-800": "rgba(241, 194, 193, 0.20)", + "c-primary-light-500-alpha-900": "rgba(241, 194, 193, 0.10)", + "c-primary-light-600": "rgb(244,206,205)", + "c-primary-light-600-alpha-100": "rgba(244, 206, 205, 0.90)", + "c-primary-light-600-alpha-200": "rgba(244, 206, 205, 0.80)", + "c-primary-light-600-alpha-300": "rgba(244, 206, 205, 0.70)", + "c-primary-light-600-alpha-400": "rgba(244, 206, 205, 0.60)", + "c-primary-light-600-alpha-500": "rgba(244, 206, 205, 0.50)", + "c-primary-light-600-alpha-600": "rgba(244, 206, 205, 0.40)", + "c-primary-light-600-alpha-700": "rgba(244, 206, 205, 0.30)", + "c-primary-light-600-alpha-800": "rgba(244, 206, 205, 0.20)", + "c-primary-light-600-alpha-900": "rgba(244, 206, 205, 0.10)", + "c-primary-light-700": "rgb(246,216,215)", + "c-primary-light-700-alpha-100": "rgba(246, 216, 215, 0.90)", + "c-primary-light-700-alpha-200": "rgba(246, 216, 215, 0.80)", + "c-primary-light-700-alpha-300": "rgba(246, 216, 215, 0.70)", + "c-primary-light-700-alpha-400": "rgba(246, 216, 215, 0.60)", + "c-primary-light-700-alpha-500": "rgba(246, 216, 215, 0.50)", + "c-primary-light-700-alpha-600": "rgba(246, 216, 215, 0.40)", + "c-primary-light-700-alpha-700": "rgba(246, 216, 215, 0.30)", + "c-primary-light-700-alpha-800": "rgba(246, 216, 215, 0.20)", + "c-primary-light-700-alpha-900": "rgba(246, 216, 215, 0.10)", + "c-primary-light-800": "rgb(248,224,223)", + "c-primary-light-800-alpha-100": "rgba(248, 224, 223, 0.90)", + "c-primary-light-800-alpha-200": "rgba(248, 224, 223, 0.80)", + "c-primary-light-800-alpha-300": "rgba(248, 224, 223, 0.70)", + "c-primary-light-800-alpha-400": "rgba(248, 224, 223, 0.60)", + "c-primary-light-800-alpha-500": "rgba(248, 224, 223, 0.50)", + "c-primary-light-800-alpha-600": "rgba(248, 224, 223, 0.40)", + "c-primary-light-800-alpha-700": "rgba(248, 224, 223, 0.30)", + "c-primary-light-800-alpha-800": "rgba(248, 224, 223, 0.20)", + "c-primary-light-800-alpha-900": "rgba(248, 224, 223, 0.10)", + "c-primary-light-900": "rgb(249,230,229)", + "c-primary-light-900-alpha-100": "rgba(249, 230, 229, 0.90)", + "c-primary-light-900-alpha-200": "rgba(249, 230, 229, 0.80)", + "c-primary-light-900-alpha-300": "rgba(249, 230, 229, 0.70)", + "c-primary-light-900-alpha-400": "rgba(249, 230, 229, 0.60)", + "c-primary-light-900-alpha-500": "rgba(249, 230, 229, 0.50)", + "c-primary-light-900-alpha-600": "rgba(249, 230, 229, 0.40)", + "c-primary-light-900-alpha-700": "rgba(249, 230, 229, 0.30)", + "c-primary-light-900-alpha-800": "rgba(249, 230, 229, 0.20)", + "c-primary-light-900-alpha-900": "rgba(249, 230, 229, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(214, 69, 65)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#dfbb6b", + "c-badge-tertiary": "#dfbb6b" + } + } + }, + { + "id": "pink", + "name": "粉装玉琢", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(241, 130, 141)", + "c-primary-dark-100": "rgb(217,117,127)", + "c-primary-dark-100-alpha-100": "rgba(217, 117, 127, 0.90)", + "c-primary-alpha-100": "rgba(241, 130, 141, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(217, 117, 127, 0.80)", + "c-primary-alpha-200": "rgba(241, 130, 141, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(217, 117, 127, 0.70)", + "c-primary-alpha-300": "rgba(241, 130, 141, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(217, 117, 127, 0.60)", + "c-primary-alpha-400": "rgba(241, 130, 141, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(217, 117, 127, 0.50)", + "c-primary-alpha-500": "rgba(241, 130, 141, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(217, 117, 127, 0.40)", + "c-primary-alpha-600": "rgba(241, 130, 141, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(217, 117, 127, 0.30)", + "c-primary-alpha-700": "rgba(241, 130, 141, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(217, 117, 127, 0.20)", + "c-primary-alpha-800": "rgba(241, 130, 141, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(217, 117, 127, 0.10)", + "c-primary-alpha-900": "rgba(241, 130, 141, 0.10)", + "c-primary-dark-200": "rgb(195,105,114)", + "c-primary-dark-200-alpha-100": "rgba(195, 105, 114, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(195, 105, 114, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(195, 105, 114, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(195, 105, 114, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(195, 105, 114, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(195, 105, 114, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(195, 105, 114, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(195, 105, 114, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(195, 105, 114, 0.10)", + "c-primary-dark-300": "rgb(176,95,103)", + "c-primary-dark-300-alpha-100": "rgba(176, 95, 103, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(176, 95, 103, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(176, 95, 103, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(176, 95, 103, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(176, 95, 103, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(176, 95, 103, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(176, 95, 103, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(176, 95, 103, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(176, 95, 103, 0.10)", + "c-primary-dark-400": "rgb(158,86,93)", + "c-primary-dark-400-alpha-100": "rgba(158, 86, 93, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(158, 86, 93, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(158, 86, 93, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(158, 86, 93, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(158, 86, 93, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(158, 86, 93, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(158, 86, 93, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(158, 86, 93, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(158, 86, 93, 0.10)", + "c-primary-dark-500": "rgb(142,77,84)", + "c-primary-dark-500-alpha-100": "rgba(142, 77, 84, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(142, 77, 84, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(142, 77, 84, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(142, 77, 84, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(142, 77, 84, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(142, 77, 84, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(142, 77, 84, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(142, 77, 84, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(142, 77, 84, 0.10)", + "c-primary-dark-600": "rgb(128,69,76)", + "c-primary-dark-600-alpha-100": "rgba(128, 69, 76, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(128, 69, 76, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(128, 69, 76, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(128, 69, 76, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(128, 69, 76, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(128, 69, 76, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(128, 69, 76, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(128, 69, 76, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(128, 69, 76, 0.10)", + "c-primary-dark-700": "rgb(115,62,68)", + "c-primary-dark-700-alpha-100": "rgba(115, 62, 68, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(115, 62, 68, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(115, 62, 68, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(115, 62, 68, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(115, 62, 68, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(115, 62, 68, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(115, 62, 68, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(115, 62, 68, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(115, 62, 68, 0.10)", + "c-primary-dark-800": "rgb(104,56,61)", + "c-primary-dark-800-alpha-100": "rgba(104, 56, 61, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(104, 56, 61, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(104, 56, 61, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(104, 56, 61, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(104, 56, 61, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(104, 56, 61, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(104, 56, 61, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(104, 56, 61, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(104, 56, 61, 0.10)", + "c-primary-dark-900": "rgb(94,50,55)", + "c-primary-dark-900-alpha-100": "rgba(94, 50, 55, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(94, 50, 55, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(94, 50, 55, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(94, 50, 55, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(94, 50, 55, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(94, 50, 55, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(94, 50, 55, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(94, 50, 55, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(94, 50, 55, 0.10)", + "c-primary-dark-1000": "rgb(85,45,50)", + "c-primary-dark-1000-alpha-100": "rgba(85, 45, 50, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(85, 45, 50, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(85, 45, 50, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(85, 45, 50, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(85, 45, 50, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(85, 45, 50, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(85, 45, 50, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(85, 45, 50, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(85, 45, 50, 0.10)", + "c-primary-light-100": "rgb(244,155,164)", + "c-primary-light-100-alpha-100": "rgba(244, 155, 164, 0.90)", + "c-primary-light-100-alpha-200": "rgba(244, 155, 164, 0.80)", + "c-primary-light-100-alpha-300": "rgba(244, 155, 164, 0.70)", + "c-primary-light-100-alpha-400": "rgba(244, 155, 164, 0.60)", + "c-primary-light-100-alpha-500": "rgba(244, 155, 164, 0.50)", + "c-primary-light-100-alpha-600": "rgba(244, 155, 164, 0.40)", + "c-primary-light-100-alpha-700": "rgba(244, 155, 164, 0.30)", + "c-primary-light-100-alpha-800": "rgba(244, 155, 164, 0.20)", + "c-primary-light-100-alpha-900": "rgba(244, 155, 164, 0.10)", + "c-primary-light-200": "rgb(246,175,182)", + "c-primary-light-200-alpha-100": "rgba(246, 175, 182, 0.90)", + "c-primary-light-200-alpha-200": "rgba(246, 175, 182, 0.80)", + "c-primary-light-200-alpha-300": "rgba(246, 175, 182, 0.70)", + "c-primary-light-200-alpha-400": "rgba(246, 175, 182, 0.60)", + "c-primary-light-200-alpha-500": "rgba(246, 175, 182, 0.50)", + "c-primary-light-200-alpha-600": "rgba(246, 175, 182, 0.40)", + "c-primary-light-200-alpha-700": "rgba(246, 175, 182, 0.30)", + "c-primary-light-200-alpha-800": "rgba(246, 175, 182, 0.20)", + "c-primary-light-200-alpha-900": "rgba(246, 175, 182, 0.10)", + "c-primary-light-300": "rgb(248,191,197)", + "c-primary-light-300-alpha-100": "rgba(248, 191, 197, 0.90)", + "c-primary-light-300-alpha-200": "rgba(248, 191, 197, 0.80)", + "c-primary-light-300-alpha-300": "rgba(248, 191, 197, 0.70)", + "c-primary-light-300-alpha-400": "rgba(248, 191, 197, 0.60)", + "c-primary-light-300-alpha-500": "rgba(248, 191, 197, 0.50)", + "c-primary-light-300-alpha-600": "rgba(248, 191, 197, 0.40)", + "c-primary-light-300-alpha-700": "rgba(248, 191, 197, 0.30)", + "c-primary-light-300-alpha-800": "rgba(248, 191, 197, 0.20)", + "c-primary-light-300-alpha-900": "rgba(248, 191, 197, 0.10)", + "c-primary-light-400": "rgb(249,204,209)", + "c-primary-light-400-alpha-100": "rgba(249, 204, 209, 0.90)", + "c-primary-light-400-alpha-200": "rgba(249, 204, 209, 0.80)", + "c-primary-light-400-alpha-300": "rgba(249, 204, 209, 0.70)", + "c-primary-light-400-alpha-400": "rgba(249, 204, 209, 0.60)", + "c-primary-light-400-alpha-500": "rgba(249, 204, 209, 0.50)", + "c-primary-light-400-alpha-600": "rgba(249, 204, 209, 0.40)", + "c-primary-light-400-alpha-700": "rgba(249, 204, 209, 0.30)", + "c-primary-light-400-alpha-800": "rgba(249, 204, 209, 0.20)", + "c-primary-light-400-alpha-900": "rgba(249, 204, 209, 0.10)", + "c-primary-light-500": "rgb(250,214,218)", + "c-primary-light-500-alpha-100": "rgba(250, 214, 218, 0.90)", + "c-primary-light-500-alpha-200": "rgba(250, 214, 218, 0.80)", + "c-primary-light-500-alpha-300": "rgba(250, 214, 218, 0.70)", + "c-primary-light-500-alpha-400": "rgba(250, 214, 218, 0.60)", + "c-primary-light-500-alpha-500": "rgba(250, 214, 218, 0.50)", + "c-primary-light-500-alpha-600": "rgba(250, 214, 218, 0.40)", + "c-primary-light-500-alpha-700": "rgba(250, 214, 218, 0.30)", + "c-primary-light-500-alpha-800": "rgba(250, 214, 218, 0.20)", + "c-primary-light-500-alpha-900": "rgba(250, 214, 218, 0.10)", + "c-primary-light-600": "rgb(251,222,225)", + "c-primary-light-600-alpha-100": "rgba(251, 222, 225, 0.90)", + "c-primary-light-600-alpha-200": "rgba(251, 222, 225, 0.80)", + "c-primary-light-600-alpha-300": "rgba(251, 222, 225, 0.70)", + "c-primary-light-600-alpha-400": "rgba(251, 222, 225, 0.60)", + "c-primary-light-600-alpha-500": "rgba(251, 222, 225, 0.50)", + "c-primary-light-600-alpha-600": "rgba(251, 222, 225, 0.40)", + "c-primary-light-600-alpha-700": "rgba(251, 222, 225, 0.30)", + "c-primary-light-600-alpha-800": "rgba(251, 222, 225, 0.20)", + "c-primary-light-600-alpha-900": "rgba(251, 222, 225, 0.10)", + "c-primary-light-700": "rgb(252,229,231)", + "c-primary-light-700-alpha-100": "rgba(252, 229, 231, 0.90)", + "c-primary-light-700-alpha-200": "rgba(252, 229, 231, 0.80)", + "c-primary-light-700-alpha-300": "rgba(252, 229, 231, 0.70)", + "c-primary-light-700-alpha-400": "rgba(252, 229, 231, 0.60)", + "c-primary-light-700-alpha-500": "rgba(252, 229, 231, 0.50)", + "c-primary-light-700-alpha-600": "rgba(252, 229, 231, 0.40)", + "c-primary-light-700-alpha-700": "rgba(252, 229, 231, 0.30)", + "c-primary-light-700-alpha-800": "rgba(252, 229, 231, 0.20)", + "c-primary-light-700-alpha-900": "rgba(252, 229, 231, 0.10)", + "c-primary-light-800": "rgb(253,234,236)", + "c-primary-light-800-alpha-100": "rgba(253, 234, 236, 0.90)", + "c-primary-light-800-alpha-200": "rgba(253, 234, 236, 0.80)", + "c-primary-light-800-alpha-300": "rgba(253, 234, 236, 0.70)", + "c-primary-light-800-alpha-400": "rgba(253, 234, 236, 0.60)", + "c-primary-light-800-alpha-500": "rgba(253, 234, 236, 0.50)", + "c-primary-light-800-alpha-600": "rgba(253, 234, 236, 0.40)", + "c-primary-light-800-alpha-700": "rgba(253, 234, 236, 0.30)", + "c-primary-light-800-alpha-800": "rgba(253, 234, 236, 0.20)", + "c-primary-light-800-alpha-900": "rgba(253, 234, 236, 0.10)", + "c-primary-light-900": "rgb(253,238,240)", + "c-primary-light-900-alpha-100": "rgba(253, 238, 240, 0.90)", + "c-primary-light-900-alpha-200": "rgba(253, 238, 240, 0.80)", + "c-primary-light-900-alpha-300": "rgba(253, 238, 240, 0.70)", + "c-primary-light-900-alpha-400": "rgba(253, 238, 240, 0.60)", + "c-primary-light-900-alpha-500": "rgba(253, 238, 240, 0.50)", + "c-primary-light-900-alpha-600": "rgba(253, 238, 240, 0.40)", + "c-primary-light-900-alpha-700": "rgba(253, 238, 240, 0.30)", + "c-primary-light-900-alpha-800": "rgba(253, 238, 240, 0.20)", + "c-primary-light-900-alpha-900": "rgba(253, 238, 240, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(241, 130, 141)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#f5b684", + "c-badge-tertiary": "#f5b684" + } + } + }, + { + "id": "purple", + "name": "重斤球紫", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(155, 89, 182)", + "c-primary-dark-100": "rgb(140,80,164)", + "c-primary-dark-100-alpha-100": "rgba(140, 80, 164, 0.90)", + "c-primary-alpha-100": "rgba(155, 89, 182, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(140, 80, 164, 0.80)", + "c-primary-alpha-200": "rgba(155, 89, 182, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(140, 80, 164, 0.70)", + "c-primary-alpha-300": "rgba(155, 89, 182, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(140, 80, 164, 0.60)", + "c-primary-alpha-400": "rgba(155, 89, 182, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(140, 80, 164, 0.50)", + "c-primary-alpha-500": "rgba(155, 89, 182, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(140, 80, 164, 0.40)", + "c-primary-alpha-600": "rgba(155, 89, 182, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(140, 80, 164, 0.30)", + "c-primary-alpha-700": "rgba(155, 89, 182, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(140, 80, 164, 0.20)", + "c-primary-alpha-800": "rgba(155, 89, 182, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(140, 80, 164, 0.10)", + "c-primary-alpha-900": "rgba(155, 89, 182, 0.10)", + "c-primary-dark-200": "rgb(126,72,148)", + "c-primary-dark-200-alpha-100": "rgba(126, 72, 148, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(126, 72, 148, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(126, 72, 148, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(126, 72, 148, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(126, 72, 148, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(126, 72, 148, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(126, 72, 148, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(126, 72, 148, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(126, 72, 148, 0.10)", + "c-primary-dark-300": "rgb(113,65,133)", + "c-primary-dark-300-alpha-100": "rgba(113, 65, 133, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(113, 65, 133, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(113, 65, 133, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(113, 65, 133, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(113, 65, 133, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(113, 65, 133, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(113, 65, 133, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(113, 65, 133, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(113, 65, 133, 0.10)", + "c-primary-dark-400": "rgb(102,59,120)", + "c-primary-dark-400-alpha-100": "rgba(102, 59, 120, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(102, 59, 120, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(102, 59, 120, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(102, 59, 120, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(102, 59, 120, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(102, 59, 120, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(102, 59, 120, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(102, 59, 120, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(102, 59, 120, 0.10)", + "c-primary-dark-500": "rgb(92,53,108)", + "c-primary-dark-500-alpha-100": "rgba(92, 53, 108, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(92, 53, 108, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(92, 53, 108, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(92, 53, 108, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(92, 53, 108, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(92, 53, 108, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(92, 53, 108, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(92, 53, 108, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(92, 53, 108, 0.10)", + "c-primary-dark-600": "rgb(83,48,97)", + "c-primary-dark-600-alpha-100": "rgba(83, 48, 97, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(83, 48, 97, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(83, 48, 97, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(83, 48, 97, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(83, 48, 97, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(83, 48, 97, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(83, 48, 97, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(83, 48, 97, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(83, 48, 97, 0.10)", + "c-primary-dark-700": "rgb(75,43,87)", + "c-primary-dark-700-alpha-100": "rgba(75, 43, 87, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(75, 43, 87, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(75, 43, 87, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(75, 43, 87, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(75, 43, 87, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(75, 43, 87, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(75, 43, 87, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(75, 43, 87, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(75, 43, 87, 0.10)", + "c-primary-dark-800": "rgb(68,39,78)", + "c-primary-dark-800-alpha-100": "rgba(68, 39, 78, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(68, 39, 78, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(68, 39, 78, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(68, 39, 78, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(68, 39, 78, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(68, 39, 78, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(68, 39, 78, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(68, 39, 78, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(68, 39, 78, 0.10)", + "c-primary-dark-900": "rgb(61,35,70)", + "c-primary-dark-900-alpha-100": "rgba(61, 35, 70, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(61, 35, 70, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(61, 35, 70, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(61, 35, 70, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(61, 35, 70, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(61, 35, 70, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(61, 35, 70, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(61, 35, 70, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(61, 35, 70, 0.10)", + "c-primary-dark-1000": "rgb(55,32,63)", + "c-primary-dark-1000-alpha-100": "rgba(55, 32, 63, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(55, 32, 63, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(55, 32, 63, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(55, 32, 63, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(55, 32, 63, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(55, 32, 63, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(55, 32, 63, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(55, 32, 63, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(55, 32, 63, 0.10)", + "c-primary-light-100": "rgb(175,122,197)", + "c-primary-light-100-alpha-100": "rgba(175, 122, 197, 0.90)", + "c-primary-light-100-alpha-200": "rgba(175, 122, 197, 0.80)", + "c-primary-light-100-alpha-300": "rgba(175, 122, 197, 0.70)", + "c-primary-light-100-alpha-400": "rgba(175, 122, 197, 0.60)", + "c-primary-light-100-alpha-500": "rgba(175, 122, 197, 0.50)", + "c-primary-light-100-alpha-600": "rgba(175, 122, 197, 0.40)", + "c-primary-light-100-alpha-700": "rgba(175, 122, 197, 0.30)", + "c-primary-light-100-alpha-800": "rgba(175, 122, 197, 0.20)", + "c-primary-light-100-alpha-900": "rgba(175, 122, 197, 0.10)", + "c-primary-light-200": "rgb(191,149,209)", + "c-primary-light-200-alpha-100": "rgba(191, 149, 209, 0.90)", + "c-primary-light-200-alpha-200": "rgba(191, 149, 209, 0.80)", + "c-primary-light-200-alpha-300": "rgba(191, 149, 209, 0.70)", + "c-primary-light-200-alpha-400": "rgba(191, 149, 209, 0.60)", + "c-primary-light-200-alpha-500": "rgba(191, 149, 209, 0.50)", + "c-primary-light-200-alpha-600": "rgba(191, 149, 209, 0.40)", + "c-primary-light-200-alpha-700": "rgba(191, 149, 209, 0.30)", + "c-primary-light-200-alpha-800": "rgba(191, 149, 209, 0.20)", + "c-primary-light-200-alpha-900": "rgba(191, 149, 209, 0.10)", + "c-primary-light-300": "rgb(204,170,218)", + "c-primary-light-300-alpha-100": "rgba(204, 170, 218, 0.90)", + "c-primary-light-300-alpha-200": "rgba(204, 170, 218, 0.80)", + "c-primary-light-300-alpha-300": "rgba(204, 170, 218, 0.70)", + "c-primary-light-300-alpha-400": "rgba(204, 170, 218, 0.60)", + "c-primary-light-300-alpha-500": "rgba(204, 170, 218, 0.50)", + "c-primary-light-300-alpha-600": "rgba(204, 170, 218, 0.40)", + "c-primary-light-300-alpha-700": "rgba(204, 170, 218, 0.30)", + "c-primary-light-300-alpha-800": "rgba(204, 170, 218, 0.20)", + "c-primary-light-300-alpha-900": "rgba(204, 170, 218, 0.10)", + "c-primary-light-400": "rgb(214,187,225)", + "c-primary-light-400-alpha-100": "rgba(214, 187, 225, 0.90)", + "c-primary-light-400-alpha-200": "rgba(214, 187, 225, 0.80)", + "c-primary-light-400-alpha-300": "rgba(214, 187, 225, 0.70)", + "c-primary-light-400-alpha-400": "rgba(214, 187, 225, 0.60)", + "c-primary-light-400-alpha-500": "rgba(214, 187, 225, 0.50)", + "c-primary-light-400-alpha-600": "rgba(214, 187, 225, 0.40)", + "c-primary-light-400-alpha-700": "rgba(214, 187, 225, 0.30)", + "c-primary-light-400-alpha-800": "rgba(214, 187, 225, 0.20)", + "c-primary-light-400-alpha-900": "rgba(214, 187, 225, 0.10)", + "c-primary-light-500": "rgb(222,201,231)", + "c-primary-light-500-alpha-100": "rgba(222, 201, 231, 0.90)", + "c-primary-light-500-alpha-200": "rgba(222, 201, 231, 0.80)", + "c-primary-light-500-alpha-300": "rgba(222, 201, 231, 0.70)", + "c-primary-light-500-alpha-400": "rgba(222, 201, 231, 0.60)", + "c-primary-light-500-alpha-500": "rgba(222, 201, 231, 0.50)", + "c-primary-light-500-alpha-600": "rgba(222, 201, 231, 0.40)", + "c-primary-light-500-alpha-700": "rgba(222, 201, 231, 0.30)", + "c-primary-light-500-alpha-800": "rgba(222, 201, 231, 0.20)", + "c-primary-light-500-alpha-900": "rgba(222, 201, 231, 0.10)", + "c-primary-light-600": "rgb(229,212,236)", + "c-primary-light-600-alpha-100": "rgba(229, 212, 236, 0.90)", + "c-primary-light-600-alpha-200": "rgba(229, 212, 236, 0.80)", + "c-primary-light-600-alpha-300": "rgba(229, 212, 236, 0.70)", + "c-primary-light-600-alpha-400": "rgba(229, 212, 236, 0.60)", + "c-primary-light-600-alpha-500": "rgba(229, 212, 236, 0.50)", + "c-primary-light-600-alpha-600": "rgba(229, 212, 236, 0.40)", + "c-primary-light-600-alpha-700": "rgba(229, 212, 236, 0.30)", + "c-primary-light-600-alpha-800": "rgba(229, 212, 236, 0.20)", + "c-primary-light-600-alpha-900": "rgba(229, 212, 236, 0.10)", + "c-primary-light-700": "rgb(234,221,240)", + "c-primary-light-700-alpha-100": "rgba(234, 221, 240, 0.90)", + "c-primary-light-700-alpha-200": "rgba(234, 221, 240, 0.80)", + "c-primary-light-700-alpha-300": "rgba(234, 221, 240, 0.70)", + "c-primary-light-700-alpha-400": "rgba(234, 221, 240, 0.60)", + "c-primary-light-700-alpha-500": "rgba(234, 221, 240, 0.50)", + "c-primary-light-700-alpha-600": "rgba(234, 221, 240, 0.40)", + "c-primary-light-700-alpha-700": "rgba(234, 221, 240, 0.30)", + "c-primary-light-700-alpha-800": "rgba(234, 221, 240, 0.20)", + "c-primary-light-700-alpha-900": "rgba(234, 221, 240, 0.10)", + "c-primary-light-800": "rgb(238,228,243)", + "c-primary-light-800-alpha-100": "rgba(238, 228, 243, 0.90)", + "c-primary-light-800-alpha-200": "rgba(238, 228, 243, 0.80)", + "c-primary-light-800-alpha-300": "rgba(238, 228, 243, 0.70)", + "c-primary-light-800-alpha-400": "rgba(238, 228, 243, 0.60)", + "c-primary-light-800-alpha-500": "rgba(238, 228, 243, 0.50)", + "c-primary-light-800-alpha-600": "rgba(238, 228, 243, 0.40)", + "c-primary-light-800-alpha-700": "rgba(238, 228, 243, 0.30)", + "c-primary-light-800-alpha-800": "rgba(238, 228, 243, 0.20)", + "c-primary-light-800-alpha-900": "rgba(238, 228, 243, 0.10)", + "c-primary-light-900": "rgb(241,233,245)", + "c-primary-light-900-alpha-100": "rgba(241, 233, 245, 0.90)", + "c-primary-light-900-alpha-200": "rgba(241, 233, 245, 0.80)", + "c-primary-light-900-alpha-300": "rgba(241, 233, 245, 0.70)", + "c-primary-light-900-alpha-400": "rgba(241, 233, 245, 0.60)", + "c-primary-light-900-alpha-500": "rgba(241, 233, 245, 0.50)", + "c-primary-light-900-alpha-600": "rgba(241, 233, 245, 0.40)", + "c-primary-light-900-alpha-700": "rgba(241, 233, 245, 0.30)", + "c-primary-light-900-alpha-800": "rgba(241, 233, 245, 0.20)", + "c-primary-light-900-alpha-900": "rgba(241, 233, 245, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(155, 89, 182)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#e5a39f", + "c-badge-tertiary": "#e5a39f" + } + } + }, + { + "id": "grey", + "name": "灰常美丽", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(108, 122, 137)", + "c-primary-dark-100": "rgb(97,110,123)", + "c-primary-dark-100-alpha-100": "rgba(97, 110, 123, 0.90)", + "c-primary-alpha-100": "rgba(108, 122, 137, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(97, 110, 123, 0.80)", + "c-primary-alpha-200": "rgba(108, 122, 137, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(97, 110, 123, 0.70)", + "c-primary-alpha-300": "rgba(108, 122, 137, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(97, 110, 123, 0.60)", + "c-primary-alpha-400": "rgba(108, 122, 137, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(97, 110, 123, 0.50)", + "c-primary-alpha-500": "rgba(108, 122, 137, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(97, 110, 123, 0.40)", + "c-primary-alpha-600": "rgba(108, 122, 137, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(97, 110, 123, 0.30)", + "c-primary-alpha-700": "rgba(108, 122, 137, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(97, 110, 123, 0.20)", + "c-primary-alpha-800": "rgba(108, 122, 137, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(97, 110, 123, 0.10)", + "c-primary-alpha-900": "rgba(108, 122, 137, 0.10)", + "c-primary-dark-200": "rgb(87,99,111)", + "c-primary-dark-200-alpha-100": "rgba(87, 99, 111, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(87, 99, 111, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(87, 99, 111, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(87, 99, 111, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(87, 99, 111, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(87, 99, 111, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(87, 99, 111, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(87, 99, 111, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(87, 99, 111, 0.10)", + "c-primary-dark-300": "rgb(78,89,100)", + "c-primary-dark-300-alpha-100": "rgba(78, 89, 100, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(78, 89, 100, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(78, 89, 100, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(78, 89, 100, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(78, 89, 100, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(78, 89, 100, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(78, 89, 100, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(78, 89, 100, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(78, 89, 100, 0.10)", + "c-primary-dark-400": "rgb(70,80,90)", + "c-primary-dark-400-alpha-100": "rgba(70, 80, 90, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(70, 80, 90, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(70, 80, 90, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(70, 80, 90, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(70, 80, 90, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(70, 80, 90, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(70, 80, 90, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(70, 80, 90, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(70, 80, 90, 0.10)", + "c-primary-dark-500": "rgb(63,72,81)", + "c-primary-dark-500-alpha-100": "rgba(63, 72, 81, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(63, 72, 81, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(63, 72, 81, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(63, 72, 81, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(63, 72, 81, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(63, 72, 81, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(63, 72, 81, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(63, 72, 81, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(63, 72, 81, 0.10)", + "c-primary-dark-600": "rgb(57,65,73)", + "c-primary-dark-600-alpha-100": "rgba(57, 65, 73, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(57, 65, 73, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(57, 65, 73, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(57, 65, 73, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(57, 65, 73, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(57, 65, 73, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(57, 65, 73, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(57, 65, 73, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(57, 65, 73, 0.10)", + "c-primary-dark-700": "rgb(51,59,66)", + "c-primary-dark-700-alpha-100": "rgba(51, 59, 66, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(51, 59, 66, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(51, 59, 66, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(51, 59, 66, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(51, 59, 66, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(51, 59, 66, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(51, 59, 66, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(51, 59, 66, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(51, 59, 66, 0.10)", + "c-primary-dark-800": "rgb(46,53,59)", + "c-primary-dark-800-alpha-100": "rgba(46, 53, 59, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(46, 53, 59, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(46, 53, 59, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(46, 53, 59, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(46, 53, 59, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(46, 53, 59, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(46, 53, 59, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(46, 53, 59, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(46, 53, 59, 0.10)", + "c-primary-dark-900": "rgb(41,48,53)", + "c-primary-dark-900-alpha-100": "rgba(41, 48, 53, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(41, 48, 53, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(41, 48, 53, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(41, 48, 53, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(41, 48, 53, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(41, 48, 53, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(41, 48, 53, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(41, 48, 53, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(41, 48, 53, 0.10)", + "c-primary-dark-1000": "rgb(37,43,48)", + "c-primary-dark-1000-alpha-100": "rgba(37, 43, 48, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(37, 43, 48, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(37, 43, 48, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(37, 43, 48, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(37, 43, 48, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(37, 43, 48, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(37, 43, 48, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(37, 43, 48, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(37, 43, 48, 0.10)", + "c-primary-light-100": "rgb(137,149,161)", + "c-primary-light-100-alpha-100": "rgba(137, 149, 161, 0.90)", + "c-primary-light-100-alpha-200": "rgba(137, 149, 161, 0.80)", + "c-primary-light-100-alpha-300": "rgba(137, 149, 161, 0.70)", + "c-primary-light-100-alpha-400": "rgba(137, 149, 161, 0.60)", + "c-primary-light-100-alpha-500": "rgba(137, 149, 161, 0.50)", + "c-primary-light-100-alpha-600": "rgba(137, 149, 161, 0.40)", + "c-primary-light-100-alpha-700": "rgba(137, 149, 161, 0.30)", + "c-primary-light-100-alpha-800": "rgba(137, 149, 161, 0.20)", + "c-primary-light-100-alpha-900": "rgba(137, 149, 161, 0.10)", + "c-primary-light-200": "rgb(161,170,180)", + "c-primary-light-200-alpha-100": "rgba(161, 170, 180, 0.90)", + "c-primary-light-200-alpha-200": "rgba(161, 170, 180, 0.80)", + "c-primary-light-200-alpha-300": "rgba(161, 170, 180, 0.70)", + "c-primary-light-200-alpha-400": "rgba(161, 170, 180, 0.60)", + "c-primary-light-200-alpha-500": "rgba(161, 170, 180, 0.50)", + "c-primary-light-200-alpha-600": "rgba(161, 170, 180, 0.40)", + "c-primary-light-200-alpha-700": "rgba(161, 170, 180, 0.30)", + "c-primary-light-200-alpha-800": "rgba(161, 170, 180, 0.20)", + "c-primary-light-200-alpha-900": "rgba(161, 170, 180, 0.10)", + "c-primary-light-300": "rgb(180,187,195)", + "c-primary-light-300-alpha-100": "rgba(180, 187, 195, 0.90)", + "c-primary-light-300-alpha-200": "rgba(180, 187, 195, 0.80)", + "c-primary-light-300-alpha-300": "rgba(180, 187, 195, 0.70)", + "c-primary-light-300-alpha-400": "rgba(180, 187, 195, 0.60)", + "c-primary-light-300-alpha-500": "rgba(180, 187, 195, 0.50)", + "c-primary-light-300-alpha-600": "rgba(180, 187, 195, 0.40)", + "c-primary-light-300-alpha-700": "rgba(180, 187, 195, 0.30)", + "c-primary-light-300-alpha-800": "rgba(180, 187, 195, 0.20)", + "c-primary-light-300-alpha-900": "rgba(180, 187, 195, 0.10)", + "c-primary-light-400": "rgb(195,201,207)", + "c-primary-light-400-alpha-100": "rgba(195, 201, 207, 0.90)", + "c-primary-light-400-alpha-200": "rgba(195, 201, 207, 0.80)", + "c-primary-light-400-alpha-300": "rgba(195, 201, 207, 0.70)", + "c-primary-light-400-alpha-400": "rgba(195, 201, 207, 0.60)", + "c-primary-light-400-alpha-500": "rgba(195, 201, 207, 0.50)", + "c-primary-light-400-alpha-600": "rgba(195, 201, 207, 0.40)", + "c-primary-light-400-alpha-700": "rgba(195, 201, 207, 0.30)", + "c-primary-light-400-alpha-800": "rgba(195, 201, 207, 0.20)", + "c-primary-light-400-alpha-900": "rgba(195, 201, 207, 0.10)", + "c-primary-light-500": "rgb(207,212,217)", + "c-primary-light-500-alpha-100": "rgba(207, 212, 217, 0.90)", + "c-primary-light-500-alpha-200": "rgba(207, 212, 217, 0.80)", + "c-primary-light-500-alpha-300": "rgba(207, 212, 217, 0.70)", + "c-primary-light-500-alpha-400": "rgba(207, 212, 217, 0.60)", + "c-primary-light-500-alpha-500": "rgba(207, 212, 217, 0.50)", + "c-primary-light-500-alpha-600": "rgba(207, 212, 217, 0.40)", + "c-primary-light-500-alpha-700": "rgba(207, 212, 217, 0.30)", + "c-primary-light-500-alpha-800": "rgba(207, 212, 217, 0.20)", + "c-primary-light-500-alpha-900": "rgba(207, 212, 217, 0.10)", + "c-primary-light-600": "rgb(217,221,225)", + "c-primary-light-600-alpha-100": "rgba(217, 221, 225, 0.90)", + "c-primary-light-600-alpha-200": "rgba(217, 221, 225, 0.80)", + "c-primary-light-600-alpha-300": "rgba(217, 221, 225, 0.70)", + "c-primary-light-600-alpha-400": "rgba(217, 221, 225, 0.60)", + "c-primary-light-600-alpha-500": "rgba(217, 221, 225, 0.50)", + "c-primary-light-600-alpha-600": "rgba(217, 221, 225, 0.40)", + "c-primary-light-600-alpha-700": "rgba(217, 221, 225, 0.30)", + "c-primary-light-600-alpha-800": "rgba(217, 221, 225, 0.20)", + "c-primary-light-600-alpha-900": "rgba(217, 221, 225, 0.10)", + "c-primary-light-700": "rgb(225,228,231)", + "c-primary-light-700-alpha-100": "rgba(225, 228, 231, 0.90)", + "c-primary-light-700-alpha-200": "rgba(225, 228, 231, 0.80)", + "c-primary-light-700-alpha-300": "rgba(225, 228, 231, 0.70)", + "c-primary-light-700-alpha-400": "rgba(225, 228, 231, 0.60)", + "c-primary-light-700-alpha-500": "rgba(225, 228, 231, 0.50)", + "c-primary-light-700-alpha-600": "rgba(225, 228, 231, 0.40)", + "c-primary-light-700-alpha-700": "rgba(225, 228, 231, 0.30)", + "c-primary-light-700-alpha-800": "rgba(225, 228, 231, 0.20)", + "c-primary-light-700-alpha-900": "rgba(225, 228, 231, 0.10)", + "c-primary-light-800": "rgb(231,233,236)", + "c-primary-light-800-alpha-100": "rgba(231, 233, 236, 0.90)", + "c-primary-light-800-alpha-200": "rgba(231, 233, 236, 0.80)", + "c-primary-light-800-alpha-300": "rgba(231, 233, 236, 0.70)", + "c-primary-light-800-alpha-400": "rgba(231, 233, 236, 0.60)", + "c-primary-light-800-alpha-500": "rgba(231, 233, 236, 0.50)", + "c-primary-light-800-alpha-600": "rgba(231, 233, 236, 0.40)", + "c-primary-light-800-alpha-700": "rgba(231, 233, 236, 0.30)", + "c-primary-light-800-alpha-800": "rgba(231, 233, 236, 0.20)", + "c-primary-light-800-alpha-900": "rgba(231, 233, 236, 0.10)", + "c-primary-light-900": "rgb(236,237,240)", + "c-primary-light-900-alpha-100": "rgba(236, 237, 240, 0.90)", + "c-primary-light-900-alpha-200": "rgba(236, 237, 240, 0.80)", + "c-primary-light-900-alpha-300": "rgba(236, 237, 240, 0.70)", + "c-primary-light-900-alpha-400": "rgba(236, 237, 240, 0.60)", + "c-primary-light-900-alpha-500": "rgba(236, 237, 240, 0.50)", + "c-primary-light-900-alpha-600": "rgba(236, 237, 240, 0.40)", + "c-primary-light-900-alpha-700": "rgba(236, 237, 240, 0.30)", + "c-primary-light-900-alpha-800": "rgba(236, 237, 240, 0.20)", + "c-primary-light-900-alpha-900": "rgba(236, 237, 240, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(108, 122, 137)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#b19b9f", + "c-badge-tertiary": "#b19b9f" + } + } + }, + { + "id": "ming", + "name": "青出于黑", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(51, 110, 123)", + "c-primary-dark-100": "rgb(46,99,111)", + "c-primary-dark-100-alpha-100": "rgba(46, 99, 111, 0.90)", + "c-primary-alpha-100": "rgba(51, 110, 123, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(46, 99, 111, 0.80)", + "c-primary-alpha-200": "rgba(51, 110, 123, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(46, 99, 111, 0.70)", + "c-primary-alpha-300": "rgba(51, 110, 123, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(46, 99, 111, 0.60)", + "c-primary-alpha-400": "rgba(51, 110, 123, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(46, 99, 111, 0.50)", + "c-primary-alpha-500": "rgba(51, 110, 123, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(46, 99, 111, 0.40)", + "c-primary-alpha-600": "rgba(51, 110, 123, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(46, 99, 111, 0.30)", + "c-primary-alpha-700": "rgba(51, 110, 123, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(46, 99, 111, 0.20)", + "c-primary-alpha-800": "rgba(51, 110, 123, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(46, 99, 111, 0.10)", + "c-primary-alpha-900": "rgba(51, 110, 123, 0.10)", + "c-primary-dark-200": "rgb(41,89,100)", + "c-primary-dark-200-alpha-100": "rgba(41, 89, 100, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(41, 89, 100, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(41, 89, 100, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(41, 89, 100, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(41, 89, 100, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(41, 89, 100, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(41, 89, 100, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(41, 89, 100, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(41, 89, 100, 0.10)", + "c-primary-dark-300": "rgb(37,80,90)", + "c-primary-dark-300-alpha-100": "rgba(37, 80, 90, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(37, 80, 90, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(37, 80, 90, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(37, 80, 90, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(37, 80, 90, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(37, 80, 90, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(37, 80, 90, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(37, 80, 90, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(37, 80, 90, 0.10)", + "c-primary-dark-400": "rgb(33,72,81)", + "c-primary-dark-400-alpha-100": "rgba(33, 72, 81, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(33, 72, 81, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(33, 72, 81, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(33, 72, 81, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(33, 72, 81, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(33, 72, 81, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(33, 72, 81, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(33, 72, 81, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(33, 72, 81, 0.10)", + "c-primary-dark-500": "rgb(30,65,73)", + "c-primary-dark-500-alpha-100": "rgba(30, 65, 73, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(30, 65, 73, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(30, 65, 73, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(30, 65, 73, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(30, 65, 73, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(30, 65, 73, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(30, 65, 73, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(30, 65, 73, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(30, 65, 73, 0.10)", + "c-primary-dark-600": "rgb(27,59,66)", + "c-primary-dark-600-alpha-100": "rgba(27, 59, 66, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(27, 59, 66, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(27, 59, 66, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(27, 59, 66, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(27, 59, 66, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(27, 59, 66, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(27, 59, 66, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(27, 59, 66, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(27, 59, 66, 0.10)", + "c-primary-dark-700": "rgb(24,53,59)", + "c-primary-dark-700-alpha-100": "rgba(24, 53, 59, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(24, 53, 59, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(24, 53, 59, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(24, 53, 59, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(24, 53, 59, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(24, 53, 59, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(24, 53, 59, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(24, 53, 59, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(24, 53, 59, 0.10)", + "c-primary-dark-800": "rgb(22,48,53)", + "c-primary-dark-800-alpha-100": "rgba(22, 48, 53, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(22, 48, 53, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(22, 48, 53, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(22, 48, 53, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(22, 48, 53, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(22, 48, 53, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(22, 48, 53, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(22, 48, 53, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(22, 48, 53, 0.10)", + "c-primary-dark-900": "rgb(20,43,48)", + "c-primary-dark-900-alpha-100": "rgba(20, 43, 48, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(20, 43, 48, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(20, 43, 48, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(20, 43, 48, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(20, 43, 48, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(20, 43, 48, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(20, 43, 48, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(20, 43, 48, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(20, 43, 48, 0.10)", + "c-primary-dark-1000": "rgb(18,39,43)", + "c-primary-dark-1000-alpha-100": "rgba(18, 39, 43, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(18, 39, 43, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(18, 39, 43, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(18, 39, 43, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(18, 39, 43, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(18, 39, 43, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(18, 39, 43, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(18, 39, 43, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(18, 39, 43, 0.10)", + "c-primary-light-100": "rgb(92,139,149)", + "c-primary-light-100-alpha-100": "rgba(92, 139, 149, 0.90)", + "c-primary-light-100-alpha-200": "rgba(92, 139, 149, 0.80)", + "c-primary-light-100-alpha-300": "rgba(92, 139, 149, 0.70)", + "c-primary-light-100-alpha-400": "rgba(92, 139, 149, 0.60)", + "c-primary-light-100-alpha-500": "rgba(92, 139, 149, 0.50)", + "c-primary-light-100-alpha-600": "rgba(92, 139, 149, 0.40)", + "c-primary-light-100-alpha-700": "rgba(92, 139, 149, 0.30)", + "c-primary-light-100-alpha-800": "rgba(92, 139, 149, 0.20)", + "c-primary-light-100-alpha-900": "rgba(92, 139, 149, 0.10)", + "c-primary-light-200": "rgb(125,162,170)", + "c-primary-light-200-alpha-100": "rgba(125, 162, 170, 0.90)", + "c-primary-light-200-alpha-200": "rgba(125, 162, 170, 0.80)", + "c-primary-light-200-alpha-300": "rgba(125, 162, 170, 0.70)", + "c-primary-light-200-alpha-400": "rgba(125, 162, 170, 0.60)", + "c-primary-light-200-alpha-500": "rgba(125, 162, 170, 0.50)", + "c-primary-light-200-alpha-600": "rgba(125, 162, 170, 0.40)", + "c-primary-light-200-alpha-700": "rgba(125, 162, 170, 0.30)", + "c-primary-light-200-alpha-800": "rgba(125, 162, 170, 0.20)", + "c-primary-light-200-alpha-900": "rgba(125, 162, 170, 0.10)", + "c-primary-light-300": "rgb(151,181,187)", + "c-primary-light-300-alpha-100": "rgba(151, 181, 187, 0.90)", + "c-primary-light-300-alpha-200": "rgba(151, 181, 187, 0.80)", + "c-primary-light-300-alpha-300": "rgba(151, 181, 187, 0.70)", + "c-primary-light-300-alpha-400": "rgba(151, 181, 187, 0.60)", + "c-primary-light-300-alpha-500": "rgba(151, 181, 187, 0.50)", + "c-primary-light-300-alpha-600": "rgba(151, 181, 187, 0.40)", + "c-primary-light-300-alpha-700": "rgba(151, 181, 187, 0.30)", + "c-primary-light-300-alpha-800": "rgba(151, 181, 187, 0.20)", + "c-primary-light-300-alpha-900": "rgba(151, 181, 187, 0.10)", + "c-primary-light-400": "rgb(172,196,201)", + "c-primary-light-400-alpha-100": "rgba(172, 196, 201, 0.90)", + "c-primary-light-400-alpha-200": "rgba(172, 196, 201, 0.80)", + "c-primary-light-400-alpha-300": "rgba(172, 196, 201, 0.70)", + "c-primary-light-400-alpha-400": "rgba(172, 196, 201, 0.60)", + "c-primary-light-400-alpha-500": "rgba(172, 196, 201, 0.50)", + "c-primary-light-400-alpha-600": "rgba(172, 196, 201, 0.40)", + "c-primary-light-400-alpha-700": "rgba(172, 196, 201, 0.30)", + "c-primary-light-400-alpha-800": "rgba(172, 196, 201, 0.20)", + "c-primary-light-400-alpha-900": "rgba(172, 196, 201, 0.10)", + "c-primary-light-500": "rgb(189,208,212)", + "c-primary-light-500-alpha-100": "rgba(189, 208, 212, 0.90)", + "c-primary-light-500-alpha-200": "rgba(189, 208, 212, 0.80)", + "c-primary-light-500-alpha-300": "rgba(189, 208, 212, 0.70)", + "c-primary-light-500-alpha-400": "rgba(189, 208, 212, 0.60)", + "c-primary-light-500-alpha-500": "rgba(189, 208, 212, 0.50)", + "c-primary-light-500-alpha-600": "rgba(189, 208, 212, 0.40)", + "c-primary-light-500-alpha-700": "rgba(189, 208, 212, 0.30)", + "c-primary-light-500-alpha-800": "rgba(189, 208, 212, 0.20)", + "c-primary-light-500-alpha-900": "rgba(189, 208, 212, 0.10)", + "c-primary-light-600": "rgb(202,217,221)", + "c-primary-light-600-alpha-100": "rgba(202, 217, 221, 0.90)", + "c-primary-light-600-alpha-200": "rgba(202, 217, 221, 0.80)", + "c-primary-light-600-alpha-300": "rgba(202, 217, 221, 0.70)", + "c-primary-light-600-alpha-400": "rgba(202, 217, 221, 0.60)", + "c-primary-light-600-alpha-500": "rgba(202, 217, 221, 0.50)", + "c-primary-light-600-alpha-600": "rgba(202, 217, 221, 0.40)", + "c-primary-light-600-alpha-700": "rgba(202, 217, 221, 0.30)", + "c-primary-light-600-alpha-800": "rgba(202, 217, 221, 0.20)", + "c-primary-light-600-alpha-900": "rgba(202, 217, 221, 0.10)", + "c-primary-light-700": "rgb(213,225,228)", + "c-primary-light-700-alpha-100": "rgba(213, 225, 228, 0.90)", + "c-primary-light-700-alpha-200": "rgba(213, 225, 228, 0.80)", + "c-primary-light-700-alpha-300": "rgba(213, 225, 228, 0.70)", + "c-primary-light-700-alpha-400": "rgba(213, 225, 228, 0.60)", + "c-primary-light-700-alpha-500": "rgba(213, 225, 228, 0.50)", + "c-primary-light-700-alpha-600": "rgba(213, 225, 228, 0.40)", + "c-primary-light-700-alpha-700": "rgba(213, 225, 228, 0.30)", + "c-primary-light-700-alpha-800": "rgba(213, 225, 228, 0.20)", + "c-primary-light-700-alpha-900": "rgba(213, 225, 228, 0.10)", + "c-primary-light-800": "rgb(221,231,233)", + "c-primary-light-800-alpha-100": "rgba(221, 231, 233, 0.90)", + "c-primary-light-800-alpha-200": "rgba(221, 231, 233, 0.80)", + "c-primary-light-800-alpha-300": "rgba(221, 231, 233, 0.70)", + "c-primary-light-800-alpha-400": "rgba(221, 231, 233, 0.60)", + "c-primary-light-800-alpha-500": "rgba(221, 231, 233, 0.50)", + "c-primary-light-800-alpha-600": "rgba(221, 231, 233, 0.40)", + "c-primary-light-800-alpha-700": "rgba(221, 231, 233, 0.30)", + "c-primary-light-800-alpha-800": "rgba(221, 231, 233, 0.20)", + "c-primary-light-800-alpha-900": "rgba(221, 231, 233, 0.10)", + "c-primary-light-900": "rgb(228,236,237)", + "c-primary-light-900-alpha-100": "rgba(228, 236, 237, 0.90)", + "c-primary-light-900-alpha-200": "rgba(228, 236, 237, 0.80)", + "c-primary-light-900-alpha-300": "rgba(228, 236, 237, 0.70)", + "c-primary-light-900-alpha-400": "rgba(228, 236, 237, 0.60)", + "c-primary-light-900-alpha-500": "rgba(228, 236, 237, 0.50)", + "c-primary-light-900-alpha-600": "rgba(228, 236, 237, 0.40)", + "c-primary-light-900-alpha-700": "rgba(228, 236, 237, 0.30)", + "c-primary-light-900-alpha-800": "rgba(228, 236, 237, 0.20)", + "c-primary-light-900-alpha-900": "rgba(228, 236, 237, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(51, 110, 123)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#6376a2", + "c-badge-tertiary": "#6376a2" + } + } + }, + { + "id": "blue2", + "name": "清热板蓝", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(79, 98, 208)", + "c-primary-dark-100": "rgb(71,88,187)", + "c-primary-dark-100-alpha-100": "rgba(71, 88, 187, 0.90)", + "c-primary-alpha-100": "rgba(79, 98, 208, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(71, 88, 187, 0.80)", + "c-primary-alpha-200": "rgba(79, 98, 208, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(71, 88, 187, 0.70)", + "c-primary-alpha-300": "rgba(79, 98, 208, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(71, 88, 187, 0.60)", + "c-primary-alpha-400": "rgba(79, 98, 208, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(71, 88, 187, 0.50)", + "c-primary-alpha-500": "rgba(79, 98, 208, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(71, 88, 187, 0.40)", + "c-primary-alpha-600": "rgba(79, 98, 208, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(71, 88, 187, 0.30)", + "c-primary-alpha-700": "rgba(79, 98, 208, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(71, 88, 187, 0.20)", + "c-primary-alpha-800": "rgba(79, 98, 208, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(71, 88, 187, 0.10)", + "c-primary-alpha-900": "rgba(79, 98, 208, 0.10)", + "c-primary-dark-200": "rgb(64,79,168)", + "c-primary-dark-200-alpha-100": "rgba(64, 79, 168, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(64, 79, 168, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(64, 79, 168, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(64, 79, 168, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(64, 79, 168, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(64, 79, 168, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(64, 79, 168, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(64, 79, 168, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(64, 79, 168, 0.10)", + "c-primary-dark-300": "rgb(58,71,151)", + "c-primary-dark-300-alpha-100": "rgba(58, 71, 151, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(58, 71, 151, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(58, 71, 151, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(58, 71, 151, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(58, 71, 151, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(58, 71, 151, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(58, 71, 151, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(58, 71, 151, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(58, 71, 151, 0.10)", + "c-primary-dark-400": "rgb(52,64,136)", + "c-primary-dark-400-alpha-100": "rgba(52, 64, 136, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(52, 64, 136, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(52, 64, 136, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(52, 64, 136, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(52, 64, 136, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(52, 64, 136, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(52, 64, 136, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(52, 64, 136, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(52, 64, 136, 0.10)", + "c-primary-dark-500": "rgb(47,58,122)", + "c-primary-dark-500-alpha-100": "rgba(47, 58, 122, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(47, 58, 122, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(47, 58, 122, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(47, 58, 122, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(47, 58, 122, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(47, 58, 122, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(47, 58, 122, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(47, 58, 122, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(47, 58, 122, 0.10)", + "c-primary-dark-600": "rgb(42,52,110)", + "c-primary-dark-600-alpha-100": "rgba(42, 52, 110, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(42, 52, 110, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(42, 52, 110, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(42, 52, 110, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(42, 52, 110, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(42, 52, 110, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(42, 52, 110, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(42, 52, 110, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(42, 52, 110, 0.10)", + "c-primary-dark-700": "rgb(38,47,99)", + "c-primary-dark-700-alpha-100": "rgba(38, 47, 99, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(38, 47, 99, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(38, 47, 99, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(38, 47, 99, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(38, 47, 99, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(38, 47, 99, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(38, 47, 99, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(38, 47, 99, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(38, 47, 99, 0.10)", + "c-primary-dark-800": "rgb(34,42,89)", + "c-primary-dark-800-alpha-100": "rgba(34, 42, 89, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(34, 42, 89, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(34, 42, 89, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(34, 42, 89, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(34, 42, 89, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(34, 42, 89, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(34, 42, 89, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(34, 42, 89, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(34, 42, 89, 0.10)", + "c-primary-dark-900": "rgb(31,38,80)", + "c-primary-dark-900-alpha-100": "rgba(31, 38, 80, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(31, 38, 80, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(31, 38, 80, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(31, 38, 80, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(31, 38, 80, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(31, 38, 80, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(31, 38, 80, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(31, 38, 80, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(31, 38, 80, 0.10)", + "c-primary-dark-1000": "rgb(28,34,72)", + "c-primary-dark-1000-alpha-100": "rgba(28, 34, 72, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(28, 34, 72, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(28, 34, 72, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(28, 34, 72, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(28, 34, 72, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(28, 34, 72, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(28, 34, 72, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(28, 34, 72, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(28, 34, 72, 0.10)", + "c-primary-light-100": "rgb(114,129,217)", + "c-primary-light-100-alpha-100": "rgba(114, 129, 217, 0.90)", + "c-primary-light-100-alpha-200": "rgba(114, 129, 217, 0.80)", + "c-primary-light-100-alpha-300": "rgba(114, 129, 217, 0.70)", + "c-primary-light-100-alpha-400": "rgba(114, 129, 217, 0.60)", + "c-primary-light-100-alpha-500": "rgba(114, 129, 217, 0.50)", + "c-primary-light-100-alpha-600": "rgba(114, 129, 217, 0.40)", + "c-primary-light-100-alpha-700": "rgba(114, 129, 217, 0.30)", + "c-primary-light-100-alpha-800": "rgba(114, 129, 217, 0.20)", + "c-primary-light-100-alpha-900": "rgba(114, 129, 217, 0.10)", + "c-primary-light-200": "rgb(142,154,225)", + "c-primary-light-200-alpha-100": "rgba(142, 154, 225, 0.90)", + "c-primary-light-200-alpha-200": "rgba(142, 154, 225, 0.80)", + "c-primary-light-200-alpha-300": "rgba(142, 154, 225, 0.70)", + "c-primary-light-200-alpha-400": "rgba(142, 154, 225, 0.60)", + "c-primary-light-200-alpha-500": "rgba(142, 154, 225, 0.50)", + "c-primary-light-200-alpha-600": "rgba(142, 154, 225, 0.40)", + "c-primary-light-200-alpha-700": "rgba(142, 154, 225, 0.30)", + "c-primary-light-200-alpha-800": "rgba(142, 154, 225, 0.20)", + "c-primary-light-200-alpha-900": "rgba(142, 154, 225, 0.10)", + "c-primary-light-300": "rgb(165,174,231)", + "c-primary-light-300-alpha-100": "rgba(165, 174, 231, 0.90)", + "c-primary-light-300-alpha-200": "rgba(165, 174, 231, 0.80)", + "c-primary-light-300-alpha-300": "rgba(165, 174, 231, 0.70)", + "c-primary-light-300-alpha-400": "rgba(165, 174, 231, 0.60)", + "c-primary-light-300-alpha-500": "rgba(165, 174, 231, 0.50)", + "c-primary-light-300-alpha-600": "rgba(165, 174, 231, 0.40)", + "c-primary-light-300-alpha-700": "rgba(165, 174, 231, 0.30)", + "c-primary-light-300-alpha-800": "rgba(165, 174, 231, 0.20)", + "c-primary-light-300-alpha-900": "rgba(165, 174, 231, 0.10)", + "c-primary-light-400": "rgb(183,190,236)", + "c-primary-light-400-alpha-100": "rgba(183, 190, 236, 0.90)", + "c-primary-light-400-alpha-200": "rgba(183, 190, 236, 0.80)", + "c-primary-light-400-alpha-300": "rgba(183, 190, 236, 0.70)", + "c-primary-light-400-alpha-400": "rgba(183, 190, 236, 0.60)", + "c-primary-light-400-alpha-500": "rgba(183, 190, 236, 0.50)", + "c-primary-light-400-alpha-600": "rgba(183, 190, 236, 0.40)", + "c-primary-light-400-alpha-700": "rgba(183, 190, 236, 0.30)", + "c-primary-light-400-alpha-800": "rgba(183, 190, 236, 0.20)", + "c-primary-light-400-alpha-900": "rgba(183, 190, 236, 0.10)", + "c-primary-light-500": "rgb(197,203,240)", + "c-primary-light-500-alpha-100": "rgba(197, 203, 240, 0.90)", + "c-primary-light-500-alpha-200": "rgba(197, 203, 240, 0.80)", + "c-primary-light-500-alpha-300": "rgba(197, 203, 240, 0.70)", + "c-primary-light-500-alpha-400": "rgba(197, 203, 240, 0.60)", + "c-primary-light-500-alpha-500": "rgba(197, 203, 240, 0.50)", + "c-primary-light-500-alpha-600": "rgba(197, 203, 240, 0.40)", + "c-primary-light-500-alpha-700": "rgba(197, 203, 240, 0.30)", + "c-primary-light-500-alpha-800": "rgba(197, 203, 240, 0.20)", + "c-primary-light-500-alpha-900": "rgba(197, 203, 240, 0.10)", + "c-primary-light-600": "rgb(209,213,243)", + "c-primary-light-600-alpha-100": "rgba(209, 213, 243, 0.90)", + "c-primary-light-600-alpha-200": "rgba(209, 213, 243, 0.80)", + "c-primary-light-600-alpha-300": "rgba(209, 213, 243, 0.70)", + "c-primary-light-600-alpha-400": "rgba(209, 213, 243, 0.60)", + "c-primary-light-600-alpha-500": "rgba(209, 213, 243, 0.50)", + "c-primary-light-600-alpha-600": "rgba(209, 213, 243, 0.40)", + "c-primary-light-600-alpha-700": "rgba(209, 213, 243, 0.30)", + "c-primary-light-600-alpha-800": "rgba(209, 213, 243, 0.20)", + "c-primary-light-600-alpha-900": "rgba(209, 213, 243, 0.10)", + "c-primary-light-700": "rgb(218,221,245)", + "c-primary-light-700-alpha-100": "rgba(218, 221, 245, 0.90)", + "c-primary-light-700-alpha-200": "rgba(218, 221, 245, 0.80)", + "c-primary-light-700-alpha-300": "rgba(218, 221, 245, 0.70)", + "c-primary-light-700-alpha-400": "rgba(218, 221, 245, 0.60)", + "c-primary-light-700-alpha-500": "rgba(218, 221, 245, 0.50)", + "c-primary-light-700-alpha-600": "rgba(218, 221, 245, 0.40)", + "c-primary-light-700-alpha-700": "rgba(218, 221, 245, 0.30)", + "c-primary-light-700-alpha-800": "rgba(218, 221, 245, 0.20)", + "c-primary-light-700-alpha-900": "rgba(218, 221, 245, 0.10)", + "c-primary-light-800": "rgb(225,228,247)", + "c-primary-light-800-alpha-100": "rgba(225, 228, 247, 0.90)", + "c-primary-light-800-alpha-200": "rgba(225, 228, 247, 0.80)", + "c-primary-light-800-alpha-300": "rgba(225, 228, 247, 0.70)", + "c-primary-light-800-alpha-400": "rgba(225, 228, 247, 0.60)", + "c-primary-light-800-alpha-500": "rgba(225, 228, 247, 0.50)", + "c-primary-light-800-alpha-600": "rgba(225, 228, 247, 0.40)", + "c-primary-light-800-alpha-700": "rgba(225, 228, 247, 0.30)", + "c-primary-light-800-alpha-800": "rgba(225, 228, 247, 0.20)", + "c-primary-light-800-alpha-900": "rgba(225, 228, 247, 0.10)", + "c-primary-light-900": "rgb(231,233,249)", + "c-primary-light-900-alpha-100": "rgba(231, 233, 249, 0.90)", + "c-primary-light-900-alpha-200": "rgba(231, 233, 249, 0.80)", + "c-primary-light-900-alpha-300": "rgba(231, 233, 249, 0.70)", + "c-primary-light-900-alpha-400": "rgba(231, 233, 249, 0.60)", + "c-primary-light-900-alpha-500": "rgba(231, 233, 249, 0.50)", + "c-primary-light-900-alpha-600": "rgba(231, 233, 249, 0.40)", + "c-primary-light-900-alpha-700": "rgba(231, 233, 249, 0.30)", + "c-primary-light-900-alpha-800": "rgba(231, 233, 249, 0.20)", + "c-primary-light-900-alpha-900": "rgba(231, 233, 249, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(79, 98, 208)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "var(c-primary-light-600-alpha-700)", + "c-main-background": "rgba(255, 255, 255, 1)", + "bg-image": "", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#b080db", + "c-badge-tertiary": "#b080db" + } + } + }, + { + "id": "black", + "name": "黑灯瞎火", + "isDark": true, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(150, 150, 150)", + "c-primary-dark-100": "rgb(171,171,171)", + "c-primary-dark-100-alpha-100": "rgba(171, 171, 171, 0.90)", + "c-primary-alpha-100": "rgba(150, 150, 150, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(171, 171, 171, 0.80)", + "c-primary-alpha-200": "rgba(150, 150, 150, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(171, 171, 171, 0.70)", + "c-primary-alpha-300": "rgba(150, 150, 150, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(171, 171, 171, 0.60)", + "c-primary-alpha-400": "rgba(150, 150, 150, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(171, 171, 171, 0.50)", + "c-primary-alpha-500": "rgba(150, 150, 150, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(171, 171, 171, 0.40)", + "c-primary-alpha-600": "rgba(150, 150, 150, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(171, 171, 171, 0.30)", + "c-primary-alpha-700": "rgba(150, 150, 150, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(171, 171, 171, 0.20)", + "c-primary-alpha-800": "rgba(150, 150, 150, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(171, 171, 171, 0.10)", + "c-primary-alpha-900": "rgba(150, 150, 150, 0.10)", + "c-primary-dark-200": "rgb(188,188,188)", + "c-primary-dark-200-alpha-100": "rgba(188, 188, 188, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(188, 188, 188, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(188, 188, 188, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(188, 188, 188, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(188, 188, 188, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(188, 188, 188, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(188, 188, 188, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(188, 188, 188, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(188, 188, 188, 0.10)", + "c-primary-dark-300": "rgb(201,201,201)", + "c-primary-dark-300-alpha-100": "rgba(201, 201, 201, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(201, 201, 201, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(201, 201, 201, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(201, 201, 201, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(201, 201, 201, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(201, 201, 201, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(201, 201, 201, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(201, 201, 201, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(201, 201, 201, 0.10)", + "c-primary-dark-400": "rgb(212,212,212)", + "c-primary-dark-400-alpha-100": "rgba(212, 212, 212, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(212, 212, 212, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(212, 212, 212, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(212, 212, 212, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(212, 212, 212, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(212, 212, 212, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(212, 212, 212, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(212, 212, 212, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(212, 212, 212, 0.10)", + "c-primary-dark-500": "rgb(221,221,221)", + "c-primary-dark-500-alpha-100": "rgba(221, 221, 221, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(221, 221, 221, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(221, 221, 221, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(221, 221, 221, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(221, 221, 221, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(221, 221, 221, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(221, 221, 221, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(221, 221, 221, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(221, 221, 221, 0.10)", + "c-primary-dark-600": "rgb(228,228,228)", + "c-primary-dark-600-alpha-100": "rgba(228, 228, 228, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(228, 228, 228, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(228, 228, 228, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(228, 228, 228, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(228, 228, 228, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(228, 228, 228, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(228, 228, 228, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(228, 228, 228, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(228, 228, 228, 0.10)", + "c-primary-dark-700": "rgb(233,233,233)", + "c-primary-dark-700-alpha-100": "rgba(233, 233, 233, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(233, 233, 233, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(233, 233, 233, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(233, 233, 233, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(233, 233, 233, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(233, 233, 233, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(233, 233, 233, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(233, 233, 233, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(233, 233, 233, 0.10)", + "c-primary-dark-800": "rgb(237,237,237)", + "c-primary-dark-800-alpha-100": "rgba(237, 237, 237, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(237, 237, 237, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(237, 237, 237, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(237, 237, 237, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(237, 237, 237, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(237, 237, 237, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(237, 237, 237, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(237, 237, 237, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(237, 237, 237, 0.10)", + "c-primary-dark-900": "rgb(241,241,241)", + "c-primary-dark-900-alpha-100": "rgba(241, 241, 241, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(241, 241, 241, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(241, 241, 241, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(241, 241, 241, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(241, 241, 241, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(241, 241, 241, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(241, 241, 241, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(241, 241, 241, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(241, 241, 241, 0.10)", + "c-primary-dark-1000": "rgb(244,244,244)", + "c-primary-dark-1000-alpha-100": "rgba(244, 244, 244, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(244, 244, 244, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(244, 244, 244, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(244, 244, 244, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(244, 244, 244, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(244, 244, 244, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(244, 244, 244, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(244, 244, 244, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(244, 244, 244, 0.10)", + "c-primary-light-100": "rgb(135,135,135)", + "c-primary-light-100-alpha-100": "rgba(135, 135, 135, 0.90)", + "c-primary-light-100-alpha-200": "rgba(135, 135, 135, 0.80)", + "c-primary-light-100-alpha-300": "rgba(135, 135, 135, 0.70)", + "c-primary-light-100-alpha-400": "rgba(135, 135, 135, 0.60)", + "c-primary-light-100-alpha-500": "rgba(135, 135, 135, 0.50)", + "c-primary-light-100-alpha-600": "rgba(135, 135, 135, 0.40)", + "c-primary-light-100-alpha-700": "rgba(135, 135, 135, 0.30)", + "c-primary-light-100-alpha-800": "rgba(135, 135, 135, 0.20)", + "c-primary-light-100-alpha-900": "rgba(135, 135, 135, 0.10)", + "c-primary-light-200": "rgb(122,122,122)", + "c-primary-light-200-alpha-100": "rgba(122, 122, 122, 0.90)", + "c-primary-light-200-alpha-200": "rgba(122, 122, 122, 0.80)", + "c-primary-light-200-alpha-300": "rgba(122, 122, 122, 0.70)", + "c-primary-light-200-alpha-400": "rgba(122, 122, 122, 0.60)", + "c-primary-light-200-alpha-500": "rgba(122, 122, 122, 0.50)", + "c-primary-light-200-alpha-600": "rgba(122, 122, 122, 0.40)", + "c-primary-light-200-alpha-700": "rgba(122, 122, 122, 0.30)", + "c-primary-light-200-alpha-800": "rgba(122, 122, 122, 0.20)", + "c-primary-light-200-alpha-900": "rgba(122, 122, 122, 0.10)", + "c-primary-light-300": "rgb(110,110,110)", + "c-primary-light-300-alpha-100": "rgba(110, 110, 110, 0.90)", + "c-primary-light-300-alpha-200": "rgba(110, 110, 110, 0.80)", + "c-primary-light-300-alpha-300": "rgba(110, 110, 110, 0.70)", + "c-primary-light-300-alpha-400": "rgba(110, 110, 110, 0.60)", + "c-primary-light-300-alpha-500": "rgba(110, 110, 110, 0.50)", + "c-primary-light-300-alpha-600": "rgba(110, 110, 110, 0.40)", + "c-primary-light-300-alpha-700": "rgba(110, 110, 110, 0.30)", + "c-primary-light-300-alpha-800": "rgba(110, 110, 110, 0.20)", + "c-primary-light-300-alpha-900": "rgba(110, 110, 110, 0.10)", + "c-primary-light-400": "rgb(99,99,99)", + "c-primary-light-400-alpha-100": "rgba(99, 99, 99, 0.90)", + "c-primary-light-400-alpha-200": "rgba(99, 99, 99, 0.80)", + "c-primary-light-400-alpha-300": "rgba(99, 99, 99, 0.70)", + "c-primary-light-400-alpha-400": "rgba(99, 99, 99, 0.60)", + "c-primary-light-400-alpha-500": "rgba(99, 99, 99, 0.50)", + "c-primary-light-400-alpha-600": "rgba(99, 99, 99, 0.40)", + "c-primary-light-400-alpha-700": "rgba(99, 99, 99, 0.30)", + "c-primary-light-400-alpha-800": "rgba(99, 99, 99, 0.20)", + "c-primary-light-400-alpha-900": "rgba(99, 99, 99, 0.10)", + "c-primary-light-500": "rgb(89,89,89)", + "c-primary-light-500-alpha-100": "rgba(89, 89, 89, 0.90)", + "c-primary-light-500-alpha-200": "rgba(89, 89, 89, 0.80)", + "c-primary-light-500-alpha-300": "rgba(89, 89, 89, 0.70)", + "c-primary-light-500-alpha-400": "rgba(89, 89, 89, 0.60)", + "c-primary-light-500-alpha-500": "rgba(89, 89, 89, 0.50)", + "c-primary-light-500-alpha-600": "rgba(89, 89, 89, 0.40)", + "c-primary-light-500-alpha-700": "rgba(89, 89, 89, 0.30)", + "c-primary-light-500-alpha-800": "rgba(89, 89, 89, 0.20)", + "c-primary-light-500-alpha-900": "rgba(89, 89, 89, 0.10)", + "c-primary-light-600": "rgb(80,80,80)", + "c-primary-light-600-alpha-100": "rgba(80, 80, 80, 0.90)", + "c-primary-light-600-alpha-200": "rgba(80, 80, 80, 0.80)", + "c-primary-light-600-alpha-300": "rgba(80, 80, 80, 0.70)", + "c-primary-light-600-alpha-400": "rgba(80, 80, 80, 0.60)", + "c-primary-light-600-alpha-500": "rgba(80, 80, 80, 0.50)", + "c-primary-light-600-alpha-600": "rgba(80, 80, 80, 0.40)", + "c-primary-light-600-alpha-700": "rgba(80, 80, 80, 0.30)", + "c-primary-light-600-alpha-800": "rgba(80, 80, 80, 0.20)", + "c-primary-light-600-alpha-900": "rgba(80, 80, 80, 0.10)", + "c-primary-light-700": "rgb(72,72,72)", + "c-primary-light-700-alpha-100": "rgba(72, 72, 72, 0.90)", + "c-primary-light-700-alpha-200": "rgba(72, 72, 72, 0.80)", + "c-primary-light-700-alpha-300": "rgba(72, 72, 72, 0.70)", + "c-primary-light-700-alpha-400": "rgba(72, 72, 72, 0.60)", + "c-primary-light-700-alpha-500": "rgba(72, 72, 72, 0.50)", + "c-primary-light-700-alpha-600": "rgba(72, 72, 72, 0.40)", + "c-primary-light-700-alpha-700": "rgba(72, 72, 72, 0.30)", + "c-primary-light-700-alpha-800": "rgba(72, 72, 72, 0.20)", + "c-primary-light-700-alpha-900": "rgba(72, 72, 72, 0.10)", + "c-primary-light-800": "rgb(65,65,65)", + "c-primary-light-800-alpha-100": "rgba(65, 65, 65, 0.90)", + "c-primary-light-800-alpha-200": "rgba(65, 65, 65, 0.80)", + "c-primary-light-800-alpha-300": "rgba(65, 65, 65, 0.70)", + "c-primary-light-800-alpha-400": "rgba(65, 65, 65, 0.60)", + "c-primary-light-800-alpha-500": "rgba(65, 65, 65, 0.50)", + "c-primary-light-800-alpha-600": "rgba(65, 65, 65, 0.40)", + "c-primary-light-800-alpha-700": "rgba(65, 65, 65, 0.30)", + "c-primary-light-800-alpha-800": "rgba(65, 65, 65, 0.20)", + "c-primary-light-800-alpha-900": "rgba(65, 65, 65, 0.10)", + "c-primary-light-900": "rgb(59,59,59)", + "c-primary-light-900-alpha-100": "rgba(59, 59, 59, 0.90)", + "c-primary-light-900-alpha-200": "rgba(59, 59, 59, 0.80)", + "c-primary-light-900-alpha-300": "rgba(59, 59, 59, 0.70)", + "c-primary-light-900-alpha-400": "rgba(59, 59, 59, 0.60)", + "c-primary-light-900-alpha-500": "rgba(59, 59, 59, 0.50)", + "c-primary-light-900-alpha-600": "rgba(59, 59, 59, 0.40)", + "c-primary-light-900-alpha-700": "rgba(59, 59, 59, 0.30)", + "c-primary-light-900-alpha-800": "rgba(59, 59, 59, 0.20)", + "c-primary-light-900-alpha-900": "rgba(59, 59, 59, 0.10)", + "c-primary-light-1000": "rgb(47,47,47)", + "c-primary-light-1000-alpha-100": "rgba(47, 47, 47, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(47, 47, 47, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(47, 47, 47, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(47, 47, 47, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(47, 47, 47, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(47, 47, 47, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(47, 47, 47, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(47, 47, 47, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(47, 47, 47, 0.10)", + "c-theme": "rgb(59,59,59)", + "c-1000": "rgb(229, 229, 229)", + "c-950": "rgb(218,218,218)", + "c-900": "rgb(207,207,207)", + "c-850": "rgb(197,197,197)", + "c-800": "rgb(187,187,187)", + "c-750": "rgb(178,178,178)", + "c-700": "rgb(169,169,169)", + "c-650": "rgb(161,161,161)", + "c-600": "rgb(153,153,153)", + "c-550": "rgb(145,145,145)", + "c-500": "rgb(138,138,138)", + "c-450": "rgb(131,131,131)", + "c-400": "rgb(124,124,124)", + "c-350": "rgb(118,118,118)", + "c-300": "rgb(112,112,112)", + "c-250": "rgb(106,106,106)", + "c-200": "rgb(101,101,101)", + "c-150": "rgb(96,96,96)", + "c-100": "rgb(91,91,91)", + "c-050": "rgb(86,86,86)", + "c-000": "rgb(82,82,82)" + }, + "extInfo": { + "c-app-background": "rgba(0, 0, 0, 0)", + "c-main-background": "rgba(19, 19, 19, 0.95)", + "bg-image": "landingMoon.png", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary-dark-200)", + "c-badge-secondary": "var(c-primary)", + "c-badge-tertiary": "var(c-primary-dark-300)" + } + } + }, + { + "id": "mid_autumn", + "name": "月里嫦娥", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(74, 55, 82)", + "c-primary-dark-100": "rgb(67,50,74)", + "c-primary-dark-100-alpha-100": "rgba(67, 50, 74, 0.90)", + "c-primary-alpha-100": "rgba(74, 55, 82, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(67, 50, 74, 0.80)", + "c-primary-alpha-200": "rgba(74, 55, 82, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(67, 50, 74, 0.70)", + "c-primary-alpha-300": "rgba(74, 55, 82, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(67, 50, 74, 0.60)", + "c-primary-alpha-400": "rgba(74, 55, 82, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(67, 50, 74, 0.50)", + "c-primary-alpha-500": "rgba(74, 55, 82, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(67, 50, 74, 0.40)", + "c-primary-alpha-600": "rgba(74, 55, 82, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(67, 50, 74, 0.30)", + "c-primary-alpha-700": "rgba(74, 55, 82, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(67, 50, 74, 0.20)", + "c-primary-alpha-800": "rgba(74, 55, 82, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(67, 50, 74, 0.10)", + "c-primary-alpha-900": "rgba(74, 55, 82, 0.10)", + "c-primary-dark-200": "rgb(60,45,67)", + "c-primary-dark-200-alpha-100": "rgba(60, 45, 67, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(60, 45, 67, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(60, 45, 67, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(60, 45, 67, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(60, 45, 67, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(60, 45, 67, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(60, 45, 67, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(60, 45, 67, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(60, 45, 67, 0.10)", + "c-primary-dark-300": "rgb(54,41,60)", + "c-primary-dark-300-alpha-100": "rgba(54, 41, 60, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(54, 41, 60, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(54, 41, 60, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(54, 41, 60, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(54, 41, 60, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(54, 41, 60, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(54, 41, 60, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(54, 41, 60, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(54, 41, 60, 0.10)", + "c-primary-dark-400": "rgb(49,37,54)", + "c-primary-dark-400-alpha-100": "rgba(49, 37, 54, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(49, 37, 54, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(49, 37, 54, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(49, 37, 54, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(49, 37, 54, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(49, 37, 54, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(49, 37, 54, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(49, 37, 54, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(49, 37, 54, 0.10)", + "c-primary-dark-500": "rgb(44,33,49)", + "c-primary-dark-500-alpha-100": "rgba(44, 33, 49, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(44, 33, 49, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(44, 33, 49, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(44, 33, 49, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(44, 33, 49, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(44, 33, 49, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(44, 33, 49, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(44, 33, 49, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(44, 33, 49, 0.10)", + "c-primary-dark-600": "rgb(40,30,44)", + "c-primary-dark-600-alpha-100": "rgba(40, 30, 44, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(40, 30, 44, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(40, 30, 44, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(40, 30, 44, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(40, 30, 44, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(40, 30, 44, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(40, 30, 44, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(40, 30, 44, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(40, 30, 44, 0.10)", + "c-primary-dark-700": "rgb(36,27,40)", + "c-primary-dark-700-alpha-100": "rgba(36, 27, 40, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(36, 27, 40, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(36, 27, 40, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(36, 27, 40, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(36, 27, 40, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(36, 27, 40, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(36, 27, 40, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(36, 27, 40, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(36, 27, 40, 0.10)", + "c-primary-dark-800": "rgb(32,24,36)", + "c-primary-dark-800-alpha-100": "rgba(32, 24, 36, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(32, 24, 36, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(32, 24, 36, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(32, 24, 36, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(32, 24, 36, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(32, 24, 36, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(32, 24, 36, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(32, 24, 36, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(32, 24, 36, 0.10)", + "c-primary-dark-900": "rgb(29,22,32)", + "c-primary-dark-900-alpha-100": "rgba(29, 22, 32, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(29, 22, 32, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(29, 22, 32, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(29, 22, 32, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(29, 22, 32, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(29, 22, 32, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(29, 22, 32, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(29, 22, 32, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(29, 22, 32, 0.10)", + "c-primary-dark-1000": "rgb(26,20,29)", + "c-primary-dark-1000-alpha-100": "rgba(26, 20, 29, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(26, 20, 29, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(26, 20, 29, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(26, 20, 29, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(26, 20, 29, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(26, 20, 29, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(26, 20, 29, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(26, 20, 29, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(26, 20, 29, 0.10)", + "c-primary-light-100": "rgb(110,95,117)", + "c-primary-light-100-alpha-100": "rgba(110, 95, 117, 0.90)", + "c-primary-light-100-alpha-200": "rgba(110, 95, 117, 0.80)", + "c-primary-light-100-alpha-300": "rgba(110, 95, 117, 0.70)", + "c-primary-light-100-alpha-400": "rgba(110, 95, 117, 0.60)", + "c-primary-light-100-alpha-500": "rgba(110, 95, 117, 0.50)", + "c-primary-light-100-alpha-600": "rgba(110, 95, 117, 0.40)", + "c-primary-light-100-alpha-700": "rgba(110, 95, 117, 0.30)", + "c-primary-light-100-alpha-800": "rgba(110, 95, 117, 0.20)", + "c-primary-light-100-alpha-900": "rgba(110, 95, 117, 0.10)", + "c-primary-light-200": "rgb(139,127,145)", + "c-primary-light-200-alpha-100": "rgba(139, 127, 145, 0.90)", + "c-primary-light-200-alpha-200": "rgba(139, 127, 145, 0.80)", + "c-primary-light-200-alpha-300": "rgba(139, 127, 145, 0.70)", + "c-primary-light-200-alpha-400": "rgba(139, 127, 145, 0.60)", + "c-primary-light-200-alpha-500": "rgba(139, 127, 145, 0.50)", + "c-primary-light-200-alpha-600": "rgba(139, 127, 145, 0.40)", + "c-primary-light-200-alpha-700": "rgba(139, 127, 145, 0.30)", + "c-primary-light-200-alpha-800": "rgba(139, 127, 145, 0.20)", + "c-primary-light-200-alpha-900": "rgba(139, 127, 145, 0.10)", + "c-primary-light-300": "rgb(162,153,167)", + "c-primary-light-300-alpha-100": "rgba(162, 153, 167, 0.90)", + "c-primary-light-300-alpha-200": "rgba(162, 153, 167, 0.80)", + "c-primary-light-300-alpha-300": "rgba(162, 153, 167, 0.70)", + "c-primary-light-300-alpha-400": "rgba(162, 153, 167, 0.60)", + "c-primary-light-300-alpha-500": "rgba(162, 153, 167, 0.50)", + "c-primary-light-300-alpha-600": "rgba(162, 153, 167, 0.40)", + "c-primary-light-300-alpha-700": "rgba(162, 153, 167, 0.30)", + "c-primary-light-300-alpha-800": "rgba(162, 153, 167, 0.20)", + "c-primary-light-300-alpha-900": "rgba(162, 153, 167, 0.10)", + "c-primary-light-400": "rgb(181,173,185)", + "c-primary-light-400-alpha-100": "rgba(181, 173, 185, 0.90)", + "c-primary-light-400-alpha-200": "rgba(181, 173, 185, 0.80)", + "c-primary-light-400-alpha-300": "rgba(181, 173, 185, 0.70)", + "c-primary-light-400-alpha-400": "rgba(181, 173, 185, 0.60)", + "c-primary-light-400-alpha-500": "rgba(181, 173, 185, 0.50)", + "c-primary-light-400-alpha-600": "rgba(181, 173, 185, 0.40)", + "c-primary-light-400-alpha-700": "rgba(181, 173, 185, 0.30)", + "c-primary-light-400-alpha-800": "rgba(181, 173, 185, 0.20)", + "c-primary-light-400-alpha-900": "rgba(181, 173, 185, 0.10)", + "c-primary-light-500": "rgb(196,189,199)", + "c-primary-light-500-alpha-100": "rgba(196, 189, 199, 0.90)", + "c-primary-light-500-alpha-200": "rgba(196, 189, 199, 0.80)", + "c-primary-light-500-alpha-300": "rgba(196, 189, 199, 0.70)", + "c-primary-light-500-alpha-400": "rgba(196, 189, 199, 0.60)", + "c-primary-light-500-alpha-500": "rgba(196, 189, 199, 0.50)", + "c-primary-light-500-alpha-600": "rgba(196, 189, 199, 0.40)", + "c-primary-light-500-alpha-700": "rgba(196, 189, 199, 0.30)", + "c-primary-light-500-alpha-800": "rgba(196, 189, 199, 0.20)", + "c-primary-light-500-alpha-900": "rgba(196, 189, 199, 0.10)", + "c-primary-light-600": "rgb(208,202,210)", + "c-primary-light-600-alpha-100": "rgba(208, 202, 210, 0.90)", + "c-primary-light-600-alpha-200": "rgba(208, 202, 210, 0.80)", + "c-primary-light-600-alpha-300": "rgba(208, 202, 210, 0.70)", + "c-primary-light-600-alpha-400": "rgba(208, 202, 210, 0.60)", + "c-primary-light-600-alpha-500": "rgba(208, 202, 210, 0.50)", + "c-primary-light-600-alpha-600": "rgba(208, 202, 210, 0.40)", + "c-primary-light-600-alpha-700": "rgba(208, 202, 210, 0.30)", + "c-primary-light-600-alpha-800": "rgba(208, 202, 210, 0.20)", + "c-primary-light-600-alpha-900": "rgba(208, 202, 210, 0.10)", + "c-primary-light-700": "rgb(217,213,219)", + "c-primary-light-700-alpha-100": "rgba(217, 213, 219, 0.90)", + "c-primary-light-700-alpha-200": "rgba(217, 213, 219, 0.80)", + "c-primary-light-700-alpha-300": "rgba(217, 213, 219, 0.70)", + "c-primary-light-700-alpha-400": "rgba(217, 213, 219, 0.60)", + "c-primary-light-700-alpha-500": "rgba(217, 213, 219, 0.50)", + "c-primary-light-700-alpha-600": "rgba(217, 213, 219, 0.40)", + "c-primary-light-700-alpha-700": "rgba(217, 213, 219, 0.30)", + "c-primary-light-700-alpha-800": "rgba(217, 213, 219, 0.20)", + "c-primary-light-700-alpha-900": "rgba(217, 213, 219, 0.10)", + "c-primary-light-800": "rgb(225,221,226)", + "c-primary-light-800-alpha-100": "rgba(225, 221, 226, 0.90)", + "c-primary-light-800-alpha-200": "rgba(225, 221, 226, 0.80)", + "c-primary-light-800-alpha-300": "rgba(225, 221, 226, 0.70)", + "c-primary-light-800-alpha-400": "rgba(225, 221, 226, 0.60)", + "c-primary-light-800-alpha-500": "rgba(225, 221, 226, 0.50)", + "c-primary-light-800-alpha-600": "rgba(225, 221, 226, 0.40)", + "c-primary-light-800-alpha-700": "rgba(225, 221, 226, 0.30)", + "c-primary-light-800-alpha-800": "rgba(225, 221, 226, 0.20)", + "c-primary-light-800-alpha-900": "rgba(225, 221, 226, 0.10)", + "c-primary-light-900": "rgb(231,228,232)", + "c-primary-light-900-alpha-100": "rgba(231, 228, 232, 0.90)", + "c-primary-light-900-alpha-200": "rgba(231, 228, 232, 0.80)", + "c-primary-light-900-alpha-300": "rgba(231, 228, 232, 0.70)", + "c-primary-light-900-alpha-400": "rgba(231, 228, 232, 0.60)", + "c-primary-light-900-alpha-500": "rgba(231, 228, 232, 0.50)", + "c-primary-light-900-alpha-600": "rgba(231, 228, 232, 0.40)", + "c-primary-light-900-alpha-700": "rgba(231, 228, 232, 0.30)", + "c-primary-light-900-alpha-800": "rgba(231, 228, 232, 0.20)", + "c-primary-light-900-alpha-900": "rgba(231, 228, 232, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(74, 55, 82)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "rgba(255, 255, 255, 0)", + "c-main-background": "rgba(255, 255, 255, 0.9)", + "bg-image": "jqbg.jpg", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "#af9479", + "c-badge-tertiary": "#af9479" + } + } + }, + { + "id": "naruto", + "name": "木叶之村", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(87, 144, 167)", + "c-primary-dark-100": "rgb(78,130,150)", + "c-primary-dark-100-alpha-100": "rgba(78, 130, 150, 0.90)", + "c-primary-alpha-100": "rgba(87, 144, 167, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(78, 130, 150, 0.80)", + "c-primary-alpha-200": "rgba(87, 144, 167, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(78, 130, 150, 0.70)", + "c-primary-alpha-300": "rgba(87, 144, 167, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(78, 130, 150, 0.60)", + "c-primary-alpha-400": "rgba(87, 144, 167, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(78, 130, 150, 0.50)", + "c-primary-alpha-500": "rgba(87, 144, 167, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(78, 130, 150, 0.40)", + "c-primary-alpha-600": "rgba(87, 144, 167, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(78, 130, 150, 0.30)", + "c-primary-alpha-700": "rgba(87, 144, 167, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(78, 130, 150, 0.20)", + "c-primary-alpha-800": "rgba(87, 144, 167, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(78, 130, 150, 0.10)", + "c-primary-alpha-900": "rgba(87, 144, 167, 0.10)", + "c-primary-dark-200": "rgb(70,117,135)", + "c-primary-dark-200-alpha-100": "rgba(70, 117, 135, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(70, 117, 135, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(70, 117, 135, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(70, 117, 135, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(70, 117, 135, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(70, 117, 135, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(70, 117, 135, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(70, 117, 135, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(70, 117, 135, 0.10)", + "c-primary-dark-300": "rgb(63,105,122)", + "c-primary-dark-300-alpha-100": "rgba(63, 105, 122, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(63, 105, 122, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(63, 105, 122, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(63, 105, 122, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(63, 105, 122, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(63, 105, 122, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(63, 105, 122, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(63, 105, 122, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(63, 105, 122, 0.10)", + "c-primary-dark-400": "rgb(57,95,110)", + "c-primary-dark-400-alpha-100": "rgba(57, 95, 110, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(57, 95, 110, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(57, 95, 110, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(57, 95, 110, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(57, 95, 110, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(57, 95, 110, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(57, 95, 110, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(57, 95, 110, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(57, 95, 110, 0.10)", + "c-primary-dark-500": "rgb(51,86,99)", + "c-primary-dark-500-alpha-100": "rgba(51, 86, 99, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(51, 86, 99, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(51, 86, 99, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(51, 86, 99, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(51, 86, 99, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(51, 86, 99, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(51, 86, 99, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(51, 86, 99, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(51, 86, 99, 0.10)", + "c-primary-dark-600": "rgb(46,77,89)", + "c-primary-dark-600-alpha-100": "rgba(46, 77, 89, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(46, 77, 89, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(46, 77, 89, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(46, 77, 89, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(46, 77, 89, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(46, 77, 89, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(46, 77, 89, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(46, 77, 89, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(46, 77, 89, 0.10)", + "c-primary-dark-700": "rgb(41,69,80)", + "c-primary-dark-700-alpha-100": "rgba(41, 69, 80, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(41, 69, 80, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(41, 69, 80, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(41, 69, 80, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(41, 69, 80, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(41, 69, 80, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(41, 69, 80, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(41, 69, 80, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(41, 69, 80, 0.10)", + "c-primary-dark-800": "rgb(37,62,72)", + "c-primary-dark-800-alpha-100": "rgba(37, 62, 72, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(37, 62, 72, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(37, 62, 72, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(37, 62, 72, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(37, 62, 72, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(37, 62, 72, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(37, 62, 72, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(37, 62, 72, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(37, 62, 72, 0.10)", + "c-primary-dark-900": "rgb(33,56,65)", + "c-primary-dark-900-alpha-100": "rgba(33, 56, 65, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(33, 56, 65, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(33, 56, 65, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(33, 56, 65, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(33, 56, 65, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(33, 56, 65, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(33, 56, 65, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(33, 56, 65, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(33, 56, 65, 0.10)", + "c-primary-dark-1000": "rgb(30,50,59)", + "c-primary-dark-1000-alpha-100": "rgba(30, 50, 59, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(30, 50, 59, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(30, 50, 59, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(30, 50, 59, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(30, 50, 59, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(30, 50, 59, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(30, 50, 59, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(30, 50, 59, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(30, 50, 59, 0.10)", + "c-primary-light-100": "rgb(121,166,185)", + "c-primary-light-100-alpha-100": "rgba(121, 166, 185, 0.90)", + "c-primary-light-100-alpha-200": "rgba(121, 166, 185, 0.80)", + "c-primary-light-100-alpha-300": "rgba(121, 166, 185, 0.70)", + "c-primary-light-100-alpha-400": "rgba(121, 166, 185, 0.60)", + "c-primary-light-100-alpha-500": "rgba(121, 166, 185, 0.50)", + "c-primary-light-100-alpha-600": "rgba(121, 166, 185, 0.40)", + "c-primary-light-100-alpha-700": "rgba(121, 166, 185, 0.30)", + "c-primary-light-100-alpha-800": "rgba(121, 166, 185, 0.20)", + "c-primary-light-100-alpha-900": "rgba(121, 166, 185, 0.10)", + "c-primary-light-200": "rgb(148,184,199)", + "c-primary-light-200-alpha-100": "rgba(148, 184, 199, 0.90)", + "c-primary-light-200-alpha-200": "rgba(148, 184, 199, 0.80)", + "c-primary-light-200-alpha-300": "rgba(148, 184, 199, 0.70)", + "c-primary-light-200-alpha-400": "rgba(148, 184, 199, 0.60)", + "c-primary-light-200-alpha-500": "rgba(148, 184, 199, 0.50)", + "c-primary-light-200-alpha-600": "rgba(148, 184, 199, 0.40)", + "c-primary-light-200-alpha-700": "rgba(148, 184, 199, 0.30)", + "c-primary-light-200-alpha-800": "rgba(148, 184, 199, 0.20)", + "c-primary-light-200-alpha-900": "rgba(148, 184, 199, 0.10)", + "c-primary-light-300": "rgb(169,198,210)", + "c-primary-light-300-alpha-100": "rgba(169, 198, 210, 0.90)", + "c-primary-light-300-alpha-200": "rgba(169, 198, 210, 0.80)", + "c-primary-light-300-alpha-300": "rgba(169, 198, 210, 0.70)", + "c-primary-light-300-alpha-400": "rgba(169, 198, 210, 0.60)", + "c-primary-light-300-alpha-500": "rgba(169, 198, 210, 0.50)", + "c-primary-light-300-alpha-600": "rgba(169, 198, 210, 0.40)", + "c-primary-light-300-alpha-700": "rgba(169, 198, 210, 0.30)", + "c-primary-light-300-alpha-800": "rgba(169, 198, 210, 0.20)", + "c-primary-light-300-alpha-900": "rgba(169, 198, 210, 0.10)", + "c-primary-light-400": "rgb(186,209,219)", + "c-primary-light-400-alpha-100": "rgba(186, 209, 219, 0.90)", + "c-primary-light-400-alpha-200": "rgba(186, 209, 219, 0.80)", + "c-primary-light-400-alpha-300": "rgba(186, 209, 219, 0.70)", + "c-primary-light-400-alpha-400": "rgba(186, 209, 219, 0.60)", + "c-primary-light-400-alpha-500": "rgba(186, 209, 219, 0.50)", + "c-primary-light-400-alpha-600": "rgba(186, 209, 219, 0.40)", + "c-primary-light-400-alpha-700": "rgba(186, 209, 219, 0.30)", + "c-primary-light-400-alpha-800": "rgba(186, 209, 219, 0.20)", + "c-primary-light-400-alpha-900": "rgba(186, 209, 219, 0.10)", + "c-primary-light-500": "rgb(200,218,226)", + "c-primary-light-500-alpha-100": "rgba(200, 218, 226, 0.90)", + "c-primary-light-500-alpha-200": "rgba(200, 218, 226, 0.80)", + "c-primary-light-500-alpha-300": "rgba(200, 218, 226, 0.70)", + "c-primary-light-500-alpha-400": "rgba(200, 218, 226, 0.60)", + "c-primary-light-500-alpha-500": "rgba(200, 218, 226, 0.50)", + "c-primary-light-500-alpha-600": "rgba(200, 218, 226, 0.40)", + "c-primary-light-500-alpha-700": "rgba(200, 218, 226, 0.30)", + "c-primary-light-500-alpha-800": "rgba(200, 218, 226, 0.20)", + "c-primary-light-500-alpha-900": "rgba(200, 218, 226, 0.10)", + "c-primary-light-600": "rgb(211,225,232)", + "c-primary-light-600-alpha-100": "rgba(211, 225, 232, 0.90)", + "c-primary-light-600-alpha-200": "rgba(211, 225, 232, 0.80)", + "c-primary-light-600-alpha-300": "rgba(211, 225, 232, 0.70)", + "c-primary-light-600-alpha-400": "rgba(211, 225, 232, 0.60)", + "c-primary-light-600-alpha-500": "rgba(211, 225, 232, 0.50)", + "c-primary-light-600-alpha-600": "rgba(211, 225, 232, 0.40)", + "c-primary-light-600-alpha-700": "rgba(211, 225, 232, 0.30)", + "c-primary-light-600-alpha-800": "rgba(211, 225, 232, 0.20)", + "c-primary-light-600-alpha-900": "rgba(211, 225, 232, 0.10)", + "c-primary-light-700": "rgb(220,231,237)", + "c-primary-light-700-alpha-100": "rgba(220, 231, 237, 0.90)", + "c-primary-light-700-alpha-200": "rgba(220, 231, 237, 0.80)", + "c-primary-light-700-alpha-300": "rgba(220, 231, 237, 0.70)", + "c-primary-light-700-alpha-400": "rgba(220, 231, 237, 0.60)", + "c-primary-light-700-alpha-500": "rgba(220, 231, 237, 0.50)", + "c-primary-light-700-alpha-600": "rgba(220, 231, 237, 0.40)", + "c-primary-light-700-alpha-700": "rgba(220, 231, 237, 0.30)", + "c-primary-light-700-alpha-800": "rgba(220, 231, 237, 0.20)", + "c-primary-light-700-alpha-900": "rgba(220, 231, 237, 0.10)", + "c-primary-light-800": "rgb(227,236,241)", + "c-primary-light-800-alpha-100": "rgba(227, 236, 241, 0.90)", + "c-primary-light-800-alpha-200": "rgba(227, 236, 241, 0.80)", + "c-primary-light-800-alpha-300": "rgba(227, 236, 241, 0.70)", + "c-primary-light-800-alpha-400": "rgba(227, 236, 241, 0.60)", + "c-primary-light-800-alpha-500": "rgba(227, 236, 241, 0.50)", + "c-primary-light-800-alpha-600": "rgba(227, 236, 241, 0.40)", + "c-primary-light-800-alpha-700": "rgba(227, 236, 241, 0.30)", + "c-primary-light-800-alpha-800": "rgba(227, 236, 241, 0.20)", + "c-primary-light-800-alpha-900": "rgba(227, 236, 241, 0.10)", + "c-primary-light-900": "rgb(233,240,244)", + "c-primary-light-900-alpha-100": "rgba(233, 240, 244, 0.90)", + "c-primary-light-900-alpha-200": "rgba(233, 240, 244, 0.80)", + "c-primary-light-900-alpha-300": "rgba(233, 240, 244, 0.70)", + "c-primary-light-900-alpha-400": "rgba(233, 240, 244, 0.60)", + "c-primary-light-900-alpha-500": "rgba(233, 240, 244, 0.50)", + "c-primary-light-900-alpha-600": "rgba(233, 240, 244, 0.40)", + "c-primary-light-900-alpha-700": "rgba(233, 240, 244, 0.30)", + "c-primary-light-900-alpha-800": "rgba(233, 240, 244, 0.20)", + "c-primary-light-900-alpha-900": "rgba(233, 240, 244, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(87, 144, 167)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "rgba(255, 255, 255, 0.15)", + "c-main-background": "rgba(255, 255, 255, 0.8)", + "bg-image": "myzcbg.jpg", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "var(c-primary)", + "c-badge-secondary": "var(c-primary-light-100)", + "c-badge-tertiary": "var(c-primary-light-100)" + } + } + }, + { + "id": "china_ink", + "name": "近墨者黑", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgba(47, 47, 47, 1)", + "c-primary-dark-100": "rgba(42,42,42, 1)", + "c-primary-dark-100-alpha-100": "rgba(42, 42, 42, 0.90)", + "c-primary-alpha-100": "rgba(47, 47, 47, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(42, 42, 42, 0.80)", + "c-primary-alpha-200": "rgba(47, 47, 47, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(42, 42, 42, 0.70)", + "c-primary-alpha-300": "rgba(47, 47, 47, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(42, 42, 42, 0.60)", + "c-primary-alpha-400": "rgba(47, 47, 47, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(42, 42, 42, 0.50)", + "c-primary-alpha-500": "rgba(47, 47, 47, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(42, 42, 42, 0.40)", + "c-primary-alpha-600": "rgba(47, 47, 47, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(42, 42, 42, 0.30)", + "c-primary-alpha-700": "rgba(47, 47, 47, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(42, 42, 42, 0.20)", + "c-primary-alpha-800": "rgba(47, 47, 47, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(42, 42, 42, 0.10)", + "c-primary-alpha-900": "rgba(47, 47, 47, 0.10)", + "c-primary-dark-200": "rgba(38,38,38, 1)", + "c-primary-dark-200-alpha-100": "rgba(38, 38, 38, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(38, 38, 38, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(38, 38, 38, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(38, 38, 38, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(38, 38, 38, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(38, 38, 38, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(38, 38, 38, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(38, 38, 38, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(38, 38, 38, 0.10)", + "c-primary-dark-300": "rgba(34,34,34, 1)", + "c-primary-dark-300-alpha-100": "rgba(34, 34, 34, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(34, 34, 34, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(34, 34, 34, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(34, 34, 34, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(34, 34, 34, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(34, 34, 34, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(34, 34, 34, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(34, 34, 34, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(34, 34, 34, 0.10)", + "c-primary-dark-400": "rgba(31,31,31, 1)", + "c-primary-dark-400-alpha-100": "rgba(31, 31, 31, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(31, 31, 31, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(31, 31, 31, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(31, 31, 31, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(31, 31, 31, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(31, 31, 31, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(31, 31, 31, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(31, 31, 31, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(31, 31, 31, 0.10)", + "c-primary-dark-500": "rgba(28,28,28, 1)", + "c-primary-dark-500-alpha-100": "rgba(28, 28, 28, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(28, 28, 28, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(28, 28, 28, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(28, 28, 28, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(28, 28, 28, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(28, 28, 28, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(28, 28, 28, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(28, 28, 28, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(28, 28, 28, 0.10)", + "c-primary-dark-600": "rgba(25,25,25, 1)", + "c-primary-dark-600-alpha-100": "rgba(25, 25, 25, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(25, 25, 25, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(25, 25, 25, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(25, 25, 25, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(25, 25, 25, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(25, 25, 25, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(25, 25, 25, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(25, 25, 25, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(25, 25, 25, 0.10)", + "c-primary-dark-700": "rgba(23,23,23, 1)", + "c-primary-dark-700-alpha-100": "rgba(23, 23, 23, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(23, 23, 23, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(23, 23, 23, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(23, 23, 23, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(23, 23, 23, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(23, 23, 23, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(23, 23, 23, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(23, 23, 23, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(23, 23, 23, 0.10)", + "c-primary-dark-800": "rgba(21,21,21, 1)", + "c-primary-dark-800-alpha-100": "rgba(21, 21, 21, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(21, 21, 21, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(21, 21, 21, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(21, 21, 21, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(21, 21, 21, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(21, 21, 21, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(21, 21, 21, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(21, 21, 21, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(21, 21, 21, 0.10)", + "c-primary-dark-900": "rgba(19,19,19, 1)", + "c-primary-dark-900-alpha-100": "rgba(19, 19, 19, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(19, 19, 19, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(19, 19, 19, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(19, 19, 19, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(19, 19, 19, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(19, 19, 19, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(19, 19, 19, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(19, 19, 19, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(19, 19, 19, 0.10)", + "c-primary-dark-1000": "rgba(17,17,17, 1)", + "c-primary-dark-1000-alpha-100": "rgba(17, 17, 17, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(17, 17, 17, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(17, 17, 17, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(17, 17, 17, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(17, 17, 17, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(17, 17, 17, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(17, 17, 17, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(17, 17, 17, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(17, 17, 17, 0.10)", + "c-primary-light-100": "rgba(89,89,89, 1)", + "c-primary-light-100-alpha-100": "rgba(89, 89, 89, 0.90)", + "c-primary-light-100-alpha-200": "rgba(89, 89, 89, 0.80)", + "c-primary-light-100-alpha-300": "rgba(89, 89, 89, 0.70)", + "c-primary-light-100-alpha-400": "rgba(89, 89, 89, 0.60)", + "c-primary-light-100-alpha-500": "rgba(89, 89, 89, 0.50)", + "c-primary-light-100-alpha-600": "rgba(89, 89, 89, 0.40)", + "c-primary-light-100-alpha-700": "rgba(89, 89, 89, 0.30)", + "c-primary-light-100-alpha-800": "rgba(89, 89, 89, 0.20)", + "c-primary-light-100-alpha-900": "rgba(89, 89, 89, 0.10)", + "c-primary-light-200": "rgba(122,122,122, 1)", + "c-primary-light-200-alpha-100": "rgba(122, 122, 122, 0.90)", + "c-primary-light-200-alpha-200": "rgba(122, 122, 122, 0.80)", + "c-primary-light-200-alpha-300": "rgba(122, 122, 122, 0.70)", + "c-primary-light-200-alpha-400": "rgba(122, 122, 122, 0.60)", + "c-primary-light-200-alpha-500": "rgba(122, 122, 122, 0.50)", + "c-primary-light-200-alpha-600": "rgba(122, 122, 122, 0.40)", + "c-primary-light-200-alpha-700": "rgba(122, 122, 122, 0.30)", + "c-primary-light-200-alpha-800": "rgba(122, 122, 122, 0.20)", + "c-primary-light-200-alpha-900": "rgba(122, 122, 122, 0.10)", + "c-primary-light-300": "rgba(149,149,149, 1)", + "c-primary-light-300-alpha-100": "rgba(149, 149, 149, 0.90)", + "c-primary-light-300-alpha-200": "rgba(149, 149, 149, 0.80)", + "c-primary-light-300-alpha-300": "rgba(149, 149, 149, 0.70)", + "c-primary-light-300-alpha-400": "rgba(149, 149, 149, 0.60)", + "c-primary-light-300-alpha-500": "rgba(149, 149, 149, 0.50)", + "c-primary-light-300-alpha-600": "rgba(149, 149, 149, 0.40)", + "c-primary-light-300-alpha-700": "rgba(149, 149, 149, 0.30)", + "c-primary-light-300-alpha-800": "rgba(149, 149, 149, 0.20)", + "c-primary-light-300-alpha-900": "rgba(149, 149, 149, 0.10)", + "c-primary-light-400": "rgba(170,170,170, 1)", + "c-primary-light-400-alpha-100": "rgba(170, 170, 170, 0.90)", + "c-primary-light-400-alpha-200": "rgba(170, 170, 170, 0.80)", + "c-primary-light-400-alpha-300": "rgba(170, 170, 170, 0.70)", + "c-primary-light-400-alpha-400": "rgba(170, 170, 170, 0.60)", + "c-primary-light-400-alpha-500": "rgba(170, 170, 170, 0.50)", + "c-primary-light-400-alpha-600": "rgba(170, 170, 170, 0.40)", + "c-primary-light-400-alpha-700": "rgba(170, 170, 170, 0.30)", + "c-primary-light-400-alpha-800": "rgba(170, 170, 170, 0.20)", + "c-primary-light-400-alpha-900": "rgba(170, 170, 170, 0.10)", + "c-primary-light-500": "rgba(187,187,187, 1)", + "c-primary-light-500-alpha-100": "rgba(187, 187, 187, 0.90)", + "c-primary-light-500-alpha-200": "rgba(187, 187, 187, 0.80)", + "c-primary-light-500-alpha-300": "rgba(187, 187, 187, 0.70)", + "c-primary-light-500-alpha-400": "rgba(187, 187, 187, 0.60)", + "c-primary-light-500-alpha-500": "rgba(187, 187, 187, 0.50)", + "c-primary-light-500-alpha-600": "rgba(187, 187, 187, 0.40)", + "c-primary-light-500-alpha-700": "rgba(187, 187, 187, 0.30)", + "c-primary-light-500-alpha-800": "rgba(187, 187, 187, 0.20)", + "c-primary-light-500-alpha-900": "rgba(187, 187, 187, 0.10)", + "c-primary-light-600": "rgba(201,201,201, 1)", + "c-primary-light-600-alpha-100": "rgba(201, 201, 201, 0.90)", + "c-primary-light-600-alpha-200": "rgba(201, 201, 201, 0.80)", + "c-primary-light-600-alpha-300": "rgba(201, 201, 201, 0.70)", + "c-primary-light-600-alpha-400": "rgba(201, 201, 201, 0.60)", + "c-primary-light-600-alpha-500": "rgba(201, 201, 201, 0.50)", + "c-primary-light-600-alpha-600": "rgba(201, 201, 201, 0.40)", + "c-primary-light-600-alpha-700": "rgba(201, 201, 201, 0.30)", + "c-primary-light-600-alpha-800": "rgba(201, 201, 201, 0.20)", + "c-primary-light-600-alpha-900": "rgba(201, 201, 201, 0.10)", + "c-primary-light-700": "rgba(212,212,212, 1)", + "c-primary-light-700-alpha-100": "rgba(212, 212, 212, 0.90)", + "c-primary-light-700-alpha-200": "rgba(212, 212, 212, 0.80)", + "c-primary-light-700-alpha-300": "rgba(212, 212, 212, 0.70)", + "c-primary-light-700-alpha-400": "rgba(212, 212, 212, 0.60)", + "c-primary-light-700-alpha-500": "rgba(212, 212, 212, 0.50)", + "c-primary-light-700-alpha-600": "rgba(212, 212, 212, 0.40)", + "c-primary-light-700-alpha-700": "rgba(212, 212, 212, 0.30)", + "c-primary-light-700-alpha-800": "rgba(212, 212, 212, 0.20)", + "c-primary-light-700-alpha-900": "rgba(212, 212, 212, 0.10)", + "c-primary-light-800": "rgba(221,221,221, 1)", + "c-primary-light-800-alpha-100": "rgba(221, 221, 221, 0.90)", + "c-primary-light-800-alpha-200": "rgba(221, 221, 221, 0.80)", + "c-primary-light-800-alpha-300": "rgba(221, 221, 221, 0.70)", + "c-primary-light-800-alpha-400": "rgba(221, 221, 221, 0.60)", + "c-primary-light-800-alpha-500": "rgba(221, 221, 221, 0.50)", + "c-primary-light-800-alpha-600": "rgba(221, 221, 221, 0.40)", + "c-primary-light-800-alpha-700": "rgba(221, 221, 221, 0.30)", + "c-primary-light-800-alpha-800": "rgba(221, 221, 221, 0.20)", + "c-primary-light-800-alpha-900": "rgba(221, 221, 221, 0.10)", + "c-primary-light-900": "rgba(228,228,228, 1)", + "c-primary-light-900-alpha-100": "rgba(228, 228, 228, 0.90)", + "c-primary-light-900-alpha-200": "rgba(228, 228, 228, 0.80)", + "c-primary-light-900-alpha-300": "rgba(228, 228, 228, 0.70)", + "c-primary-light-900-alpha-400": "rgba(228, 228, 228, 0.60)", + "c-primary-light-900-alpha-500": "rgba(228, 228, 228, 0.50)", + "c-primary-light-900-alpha-600": "rgba(228, 228, 228, 0.40)", + "c-primary-light-900-alpha-700": "rgba(228, 228, 228, 0.30)", + "c-primary-light-900-alpha-800": "rgba(228, 228, 228, 0.20)", + "c-primary-light-900-alpha-900": "rgba(228, 228, 228, 0.10)", + "c-primary-light-1000": "rgba(255,255,255, 1)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgba(47, 47, 47, 1)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "rgba(255, 255, 255, 0)", + "c-main-background": "rgba(255, 255, 255, 0.8)", + "bg-image": "china_ink.jpg", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "rgba(137, 70, 70, 1)", + "c-badge-secondary": "rgba(67, 139, 65, 1)", + "c-badge-tertiary": "rgba(132, 135, 65, 1)" + } + } + }, + { + "id": "happy_new_year", + "name": "新年快乐", + "isDark": false, + "isCustom": false, + "config": { + "themeColors": { + "c-primary": "rgb(192, 57, 43)", + "c-primary-dark-100": "rgb(173,51,39)", + "c-primary-dark-100-alpha-100": "rgba(173, 51, 39, 0.90)", + "c-primary-alpha-100": "rgba(192, 57, 43, 0.90)", + "c-primary-dark-100-alpha-200": "rgba(173, 51, 39, 0.80)", + "c-primary-alpha-200": "rgba(192, 57, 43, 0.80)", + "c-primary-dark-100-alpha-300": "rgba(173, 51, 39, 0.70)", + "c-primary-alpha-300": "rgba(192, 57, 43, 0.70)", + "c-primary-dark-100-alpha-400": "rgba(173, 51, 39, 0.60)", + "c-primary-alpha-400": "rgba(192, 57, 43, 0.60)", + "c-primary-dark-100-alpha-500": "rgba(173, 51, 39, 0.50)", + "c-primary-alpha-500": "rgba(192, 57, 43, 0.50)", + "c-primary-dark-100-alpha-600": "rgba(173, 51, 39, 0.40)", + "c-primary-alpha-600": "rgba(192, 57, 43, 0.40)", + "c-primary-dark-100-alpha-700": "rgba(173, 51, 39, 0.30)", + "c-primary-alpha-700": "rgba(192, 57, 43, 0.30)", + "c-primary-dark-100-alpha-800": "rgba(173, 51, 39, 0.20)", + "c-primary-alpha-800": "rgba(192, 57, 43, 0.20)", + "c-primary-dark-100-alpha-900": "rgba(173, 51, 39, 0.10)", + "c-primary-alpha-900": "rgba(192, 57, 43, 0.10)", + "c-primary-dark-200": "rgb(156,46,35)", + "c-primary-dark-200-alpha-100": "rgba(156, 46, 35, 0.90)", + "c-primary-dark-200-alpha-200": "rgba(156, 46, 35, 0.80)", + "c-primary-dark-200-alpha-300": "rgba(156, 46, 35, 0.70)", + "c-primary-dark-200-alpha-400": "rgba(156, 46, 35, 0.60)", + "c-primary-dark-200-alpha-500": "rgba(156, 46, 35, 0.50)", + "c-primary-dark-200-alpha-600": "rgba(156, 46, 35, 0.40)", + "c-primary-dark-200-alpha-700": "rgba(156, 46, 35, 0.30)", + "c-primary-dark-200-alpha-800": "rgba(156, 46, 35, 0.20)", + "c-primary-dark-200-alpha-900": "rgba(156, 46, 35, 0.10)", + "c-primary-dark-300": "rgb(140,41,32)", + "c-primary-dark-300-alpha-100": "rgba(140, 41, 32, 0.90)", + "c-primary-dark-300-alpha-200": "rgba(140, 41, 32, 0.80)", + "c-primary-dark-300-alpha-300": "rgba(140, 41, 32, 0.70)", + "c-primary-dark-300-alpha-400": "rgba(140, 41, 32, 0.60)", + "c-primary-dark-300-alpha-500": "rgba(140, 41, 32, 0.50)", + "c-primary-dark-300-alpha-600": "rgba(140, 41, 32, 0.40)", + "c-primary-dark-300-alpha-700": "rgba(140, 41, 32, 0.30)", + "c-primary-dark-300-alpha-800": "rgba(140, 41, 32, 0.20)", + "c-primary-dark-300-alpha-900": "rgba(140, 41, 32, 0.10)", + "c-primary-dark-400": "rgb(126,37,29)", + "c-primary-dark-400-alpha-100": "rgba(126, 37, 29, 0.90)", + "c-primary-dark-400-alpha-200": "rgba(126, 37, 29, 0.80)", + "c-primary-dark-400-alpha-300": "rgba(126, 37, 29, 0.70)", + "c-primary-dark-400-alpha-400": "rgba(126, 37, 29, 0.60)", + "c-primary-dark-400-alpha-500": "rgba(126, 37, 29, 0.50)", + "c-primary-dark-400-alpha-600": "rgba(126, 37, 29, 0.40)", + "c-primary-dark-400-alpha-700": "rgba(126, 37, 29, 0.30)", + "c-primary-dark-400-alpha-800": "rgba(126, 37, 29, 0.20)", + "c-primary-dark-400-alpha-900": "rgba(126, 37, 29, 0.10)", + "c-primary-dark-500": "rgb(113,33,26)", + "c-primary-dark-500-alpha-100": "rgba(113, 33, 26, 0.90)", + "c-primary-dark-500-alpha-200": "rgba(113, 33, 26, 0.80)", + "c-primary-dark-500-alpha-300": "rgba(113, 33, 26, 0.70)", + "c-primary-dark-500-alpha-400": "rgba(113, 33, 26, 0.60)", + "c-primary-dark-500-alpha-500": "rgba(113, 33, 26, 0.50)", + "c-primary-dark-500-alpha-600": "rgba(113, 33, 26, 0.40)", + "c-primary-dark-500-alpha-700": "rgba(113, 33, 26, 0.30)", + "c-primary-dark-500-alpha-800": "rgba(113, 33, 26, 0.20)", + "c-primary-dark-500-alpha-900": "rgba(113, 33, 26, 0.10)", + "c-primary-dark-600": "rgb(102,30,23)", + "c-primary-dark-600-alpha-100": "rgba(102, 30, 23, 0.90)", + "c-primary-dark-600-alpha-200": "rgba(102, 30, 23, 0.80)", + "c-primary-dark-600-alpha-300": "rgba(102, 30, 23, 0.70)", + "c-primary-dark-600-alpha-400": "rgba(102, 30, 23, 0.60)", + "c-primary-dark-600-alpha-500": "rgba(102, 30, 23, 0.50)", + "c-primary-dark-600-alpha-600": "rgba(102, 30, 23, 0.40)", + "c-primary-dark-600-alpha-700": "rgba(102, 30, 23, 0.30)", + "c-primary-dark-600-alpha-800": "rgba(102, 30, 23, 0.20)", + "c-primary-dark-600-alpha-900": "rgba(102, 30, 23, 0.10)", + "c-primary-dark-700": "rgb(92,27,21)", + "c-primary-dark-700-alpha-100": "rgba(92, 27, 21, 0.90)", + "c-primary-dark-700-alpha-200": "rgba(92, 27, 21, 0.80)", + "c-primary-dark-700-alpha-300": "rgba(92, 27, 21, 0.70)", + "c-primary-dark-700-alpha-400": "rgba(92, 27, 21, 0.60)", + "c-primary-dark-700-alpha-500": "rgba(92, 27, 21, 0.50)", + "c-primary-dark-700-alpha-600": "rgba(92, 27, 21, 0.40)", + "c-primary-dark-700-alpha-700": "rgba(92, 27, 21, 0.30)", + "c-primary-dark-700-alpha-800": "rgba(92, 27, 21, 0.20)", + "c-primary-dark-700-alpha-900": "rgba(92, 27, 21, 0.10)", + "c-primary-dark-800": "rgb(83,24,19)", + "c-primary-dark-800-alpha-100": "rgba(83, 24, 19, 0.90)", + "c-primary-dark-800-alpha-200": "rgba(83, 24, 19, 0.80)", + "c-primary-dark-800-alpha-300": "rgba(83, 24, 19, 0.70)", + "c-primary-dark-800-alpha-400": "rgba(83, 24, 19, 0.60)", + "c-primary-dark-800-alpha-500": "rgba(83, 24, 19, 0.50)", + "c-primary-dark-800-alpha-600": "rgba(83, 24, 19, 0.40)", + "c-primary-dark-800-alpha-700": "rgba(83, 24, 19, 0.30)", + "c-primary-dark-800-alpha-800": "rgba(83, 24, 19, 0.20)", + "c-primary-dark-800-alpha-900": "rgba(83, 24, 19, 0.10)", + "c-primary-dark-900": "rgb(75,22,17)", + "c-primary-dark-900-alpha-100": "rgba(75, 22, 17, 0.90)", + "c-primary-dark-900-alpha-200": "rgba(75, 22, 17, 0.80)", + "c-primary-dark-900-alpha-300": "rgba(75, 22, 17, 0.70)", + "c-primary-dark-900-alpha-400": "rgba(75, 22, 17, 0.60)", + "c-primary-dark-900-alpha-500": "rgba(75, 22, 17, 0.50)", + "c-primary-dark-900-alpha-600": "rgba(75, 22, 17, 0.40)", + "c-primary-dark-900-alpha-700": "rgba(75, 22, 17, 0.30)", + "c-primary-dark-900-alpha-800": "rgba(75, 22, 17, 0.20)", + "c-primary-dark-900-alpha-900": "rgba(75, 22, 17, 0.10)", + "c-primary-dark-1000": "rgb(68,20,15)", + "c-primary-dark-1000-alpha-100": "rgba(68, 20, 15, 0.90)", + "c-primary-dark-1000-alpha-200": "rgba(68, 20, 15, 0.80)", + "c-primary-dark-1000-alpha-300": "rgba(68, 20, 15, 0.70)", + "c-primary-dark-1000-alpha-400": "rgba(68, 20, 15, 0.60)", + "c-primary-dark-1000-alpha-500": "rgba(68, 20, 15, 0.50)", + "c-primary-dark-1000-alpha-600": "rgba(68, 20, 15, 0.40)", + "c-primary-dark-1000-alpha-700": "rgba(68, 20, 15, 0.30)", + "c-primary-dark-1000-alpha-800": "rgba(68, 20, 15, 0.20)", + "c-primary-dark-1000-alpha-900": "rgba(68, 20, 15, 0.10)", + "c-primary-light-100": "rgb(205,97,85)", + "c-primary-light-100-alpha-100": "rgba(205, 97, 85, 0.90)", + "c-primary-light-100-alpha-200": "rgba(205, 97, 85, 0.80)", + "c-primary-light-100-alpha-300": "rgba(205, 97, 85, 0.70)", + "c-primary-light-100-alpha-400": "rgba(205, 97, 85, 0.60)", + "c-primary-light-100-alpha-500": "rgba(205, 97, 85, 0.50)", + "c-primary-light-100-alpha-600": "rgba(205, 97, 85, 0.40)", + "c-primary-light-100-alpha-700": "rgba(205, 97, 85, 0.30)", + "c-primary-light-100-alpha-800": "rgba(205, 97, 85, 0.20)", + "c-primary-light-100-alpha-900": "rgba(205, 97, 85, 0.10)", + "c-primary-light-200": "rgb(215,129,119)", + "c-primary-light-200-alpha-100": "rgba(215, 129, 119, 0.90)", + "c-primary-light-200-alpha-200": "rgba(215, 129, 119, 0.80)", + "c-primary-light-200-alpha-300": "rgba(215, 129, 119, 0.70)", + "c-primary-light-200-alpha-400": "rgba(215, 129, 119, 0.60)", + "c-primary-light-200-alpha-500": "rgba(215, 129, 119, 0.50)", + "c-primary-light-200-alpha-600": "rgba(215, 129, 119, 0.40)", + "c-primary-light-200-alpha-700": "rgba(215, 129, 119, 0.30)", + "c-primary-light-200-alpha-800": "rgba(215, 129, 119, 0.20)", + "c-primary-light-200-alpha-900": "rgba(215, 129, 119, 0.10)", + "c-primary-light-300": "rgb(223,154,146)", + "c-primary-light-300-alpha-100": "rgba(223, 154, 146, 0.90)", + "c-primary-light-300-alpha-200": "rgba(223, 154, 146, 0.80)", + "c-primary-light-300-alpha-300": "rgba(223, 154, 146, 0.70)", + "c-primary-light-300-alpha-400": "rgba(223, 154, 146, 0.60)", + "c-primary-light-300-alpha-500": "rgba(223, 154, 146, 0.50)", + "c-primary-light-300-alpha-600": "rgba(223, 154, 146, 0.40)", + "c-primary-light-300-alpha-700": "rgba(223, 154, 146, 0.30)", + "c-primary-light-300-alpha-800": "rgba(223, 154, 146, 0.20)", + "c-primary-light-300-alpha-900": "rgba(223, 154, 146, 0.10)", + "c-primary-light-400": "rgb(229,174,168)", + "c-primary-light-400-alpha-100": "rgba(229, 174, 168, 0.90)", + "c-primary-light-400-alpha-200": "rgba(229, 174, 168, 0.80)", + "c-primary-light-400-alpha-300": "rgba(229, 174, 168, 0.70)", + "c-primary-light-400-alpha-400": "rgba(229, 174, 168, 0.60)", + "c-primary-light-400-alpha-500": "rgba(229, 174, 168, 0.50)", + "c-primary-light-400-alpha-600": "rgba(229, 174, 168, 0.40)", + "c-primary-light-400-alpha-700": "rgba(229, 174, 168, 0.30)", + "c-primary-light-400-alpha-800": "rgba(229, 174, 168, 0.20)", + "c-primary-light-400-alpha-900": "rgba(229, 174, 168, 0.10)", + "c-primary-light-500": "rgb(234,190,185)", + "c-primary-light-500-alpha-100": "rgba(234, 190, 185, 0.90)", + "c-primary-light-500-alpha-200": "rgba(234, 190, 185, 0.80)", + "c-primary-light-500-alpha-300": "rgba(234, 190, 185, 0.70)", + "c-primary-light-500-alpha-400": "rgba(234, 190, 185, 0.60)", + "c-primary-light-500-alpha-500": "rgba(234, 190, 185, 0.50)", + "c-primary-light-500-alpha-600": "rgba(234, 190, 185, 0.40)", + "c-primary-light-500-alpha-700": "rgba(234, 190, 185, 0.30)", + "c-primary-light-500-alpha-800": "rgba(234, 190, 185, 0.20)", + "c-primary-light-500-alpha-900": "rgba(234, 190, 185, 0.10)", + "c-primary-light-600": "rgb(238,203,199)", + "c-primary-light-600-alpha-100": "rgba(238, 203, 199, 0.90)", + "c-primary-light-600-alpha-200": "rgba(238, 203, 199, 0.80)", + "c-primary-light-600-alpha-300": "rgba(238, 203, 199, 0.70)", + "c-primary-light-600-alpha-400": "rgba(238, 203, 199, 0.60)", + "c-primary-light-600-alpha-500": "rgba(238, 203, 199, 0.50)", + "c-primary-light-600-alpha-600": "rgba(238, 203, 199, 0.40)", + "c-primary-light-600-alpha-700": "rgba(238, 203, 199, 0.30)", + "c-primary-light-600-alpha-800": "rgba(238, 203, 199, 0.20)", + "c-primary-light-600-alpha-900": "rgba(238, 203, 199, 0.10)", + "c-primary-light-700": "rgb(241,213,210)", + "c-primary-light-700-alpha-100": "rgba(241, 213, 210, 0.90)", + "c-primary-light-700-alpha-200": "rgba(241, 213, 210, 0.80)", + "c-primary-light-700-alpha-300": "rgba(241, 213, 210, 0.70)", + "c-primary-light-700-alpha-400": "rgba(241, 213, 210, 0.60)", + "c-primary-light-700-alpha-500": "rgba(241, 213, 210, 0.50)", + "c-primary-light-700-alpha-600": "rgba(241, 213, 210, 0.40)", + "c-primary-light-700-alpha-700": "rgba(241, 213, 210, 0.30)", + "c-primary-light-700-alpha-800": "rgba(241, 213, 210, 0.20)", + "c-primary-light-700-alpha-900": "rgba(241, 213, 210, 0.10)", + "c-primary-light-800": "rgb(244,221,219)", + "c-primary-light-800-alpha-100": "rgba(244, 221, 219, 0.90)", + "c-primary-light-800-alpha-200": "rgba(244, 221, 219, 0.80)", + "c-primary-light-800-alpha-300": "rgba(244, 221, 219, 0.70)", + "c-primary-light-800-alpha-400": "rgba(244, 221, 219, 0.60)", + "c-primary-light-800-alpha-500": "rgba(244, 221, 219, 0.50)", + "c-primary-light-800-alpha-600": "rgba(244, 221, 219, 0.40)", + "c-primary-light-800-alpha-700": "rgba(244, 221, 219, 0.30)", + "c-primary-light-800-alpha-800": "rgba(244, 221, 219, 0.20)", + "c-primary-light-800-alpha-900": "rgba(244, 221, 219, 0.10)", + "c-primary-light-900": "rgb(246,228,226)", + "c-primary-light-900-alpha-100": "rgba(246, 228, 226, 0.90)", + "c-primary-light-900-alpha-200": "rgba(246, 228, 226, 0.80)", + "c-primary-light-900-alpha-300": "rgba(246, 228, 226, 0.70)", + "c-primary-light-900-alpha-400": "rgba(246, 228, 226, 0.60)", + "c-primary-light-900-alpha-500": "rgba(246, 228, 226, 0.50)", + "c-primary-light-900-alpha-600": "rgba(246, 228, 226, 0.40)", + "c-primary-light-900-alpha-700": "rgba(246, 228, 226, 0.30)", + "c-primary-light-900-alpha-800": "rgba(246, 228, 226, 0.20)", + "c-primary-light-900-alpha-900": "rgba(246, 228, 226, 0.10)", + "c-primary-light-1000": "rgb(255,255,255)", + "c-primary-light-1000-alpha-100": "rgba(255, 255, 255, 0.90)", + "c-primary-light-1000-alpha-200": "rgba(255, 255, 255, 0.80)", + "c-primary-light-1000-alpha-300": "rgba(255, 255, 255, 0.70)", + "c-primary-light-1000-alpha-400": "rgba(255, 255, 255, 0.60)", + "c-primary-light-1000-alpha-500": "rgba(255, 255, 255, 0.50)", + "c-primary-light-1000-alpha-600": "rgba(255, 255, 255, 0.40)", + "c-primary-light-1000-alpha-700": "rgba(255, 255, 255, 0.30)", + "c-primary-light-1000-alpha-800": "rgba(255, 255, 255, 0.20)", + "c-primary-light-1000-alpha-900": "rgba(255, 255, 255, 0.10)", + "c-theme": "rgb(192, 57, 43)", + "c-1000": "rgb(33, 33, 33)", + "c-950": "rgb(44,44,44)", + "c-900": "rgb(55,55,55)", + "c-850": "rgb(66,66,66)", + "c-800": "rgb(77,77,77)", + "c-750": "rgb(89,89,89)", + "c-700": "rgb(100,100,100)", + "c-650": "rgb(111,111,111)", + "c-600": "rgb(122,122,122)", + "c-550": "rgb(133,133,133)", + "c-500": "rgb(144,144,144)", + "c-450": "rgb(155,155,155)", + "c-400": "rgb(166,166,166)", + "c-350": "rgb(177,177,177)", + "c-300": "rgb(188,188,188)", + "c-250": "rgb(200,200,200)", + "c-200": "rgb(211,211,211)", + "c-150": "rgb(222,222,222)", + "c-100": "rgb(233,233,233)", + "c-050": "rgb(244,244,244)", + "c-000": "rgb(255,255,255)" + }, + "extInfo": { + "c-app-background": "rgba(255, 255, 255, 0.15)", + "c-main-background": "rgba(255, 255, 255, 0.8)", + "bg-image": "xnkl.png", + "bg-image-position": "center", + "bg-image-size": "cover", + "c-badge-primary": "#7fb575", + "c-badge-secondary": "#dfbb6b", + "c-badge-tertiary": "var(c-primary-light-100)" + } + } + } +] as const \ No newline at end of file diff --git a/src/theme/themes/utils.js b/src/theme/themes/utils.js new file mode 100644 index 0000000..93a4a63 --- /dev/null +++ b/src/theme/themes/utils.js @@ -0,0 +1,75 @@ +const { RGB_Linear_Shade, RGB_Alpha_Shade } = require('./colorUtils') + +exports.createThemeColors = (rgbaColor, fontRgbaColor, isDark) => { + const colors = { + 'c-primary': rgbaColor, + } + + let preColor = rgbaColor + for (let i = 1; i < 11; i += 1) { + preColor = RGB_Linear_Shade(isDark ? 0.2 : -0.1, preColor) + colors[`c-primary-dark-${i * 100}`] = preColor + for (let j = 1; j < 10; j += 1) { + colors[`c-primary-dark-${i * 100}-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, preColor) + colors[`c-primary-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, rgbaColor) + } + } + preColor = rgbaColor + for (let i = 1; i < 10; i += 1) { + preColor = RGB_Linear_Shade(isDark ? -0.1 : 0.2, preColor) + colors[`c-primary-light-${i * 100}`] = preColor + for (let j = 1; j < 10; j += 1) { + colors[`c-primary-light-${i * 100}-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, preColor) + } + } + preColor = RGB_Linear_Shade(isDark ? -0.2 : 1, preColor) + colors[`c-primary-light-${1000}`] = preColor + for (let j = 1; j < 10; j += 1) { + colors[`c-primary-light-${1000}-alpha-${j * 100}`] = RGB_Alpha_Shade(0.1 * j, preColor) + } + + colors['c-theme'] = isDark ? colors['c-primary-light-900'] : rgbaColor + + return { ...colors, ...createFontColors(fontRgbaColor, isDark) } +} + +const createFontColors = (rgbaColor, isDark) => { + // rgb(238, 238, 238) + // let prec = 'rgb(255, 255, 255)' + if (rgbaColor == null) rgbaColor = isDark ? 'rgb(229, 229, 229)' : 'rgb(33, 33, 33)' + if (isDark) return createFontDarkColors(rgbaColor) + + let colors = { + 'c-1000': rgbaColor, + } + let step = isDark ? -0.05 : 0.05 + for (let i = 1; i < 21; i += 1) { + colors[`c-${String(1000 - 50 * i).padStart(3, '0')}`] = RGB_Linear_Shade(step * i, rgbaColor) + } + // console.log(colors) + return colors +} + +const createFontDarkColors = (rgbaColor) => { + // rgb(238, 238, 238) + // let prec = 'rgb(255, 255, 255)' + + let colors = { + 'c-1000': rgbaColor, + } + const step = -0.05 + let preColor = rgbaColor + for (let i = 1; i < 21; i += 1) { + preColor = RGB_Linear_Shade(step, preColor) + colors[`c-${String(1000 - 50 * i).padStart(3, '0')}`] = preColor + } + + // console.log(colors) + return colors +} + +// console.log(createFontColors('rgb(33, 33, 33)', false)) +// console.log(createFontColors('rgb(255, 255, 255)', true)) + +// console.log(createFontDarkColors('rgb(255, 255, 255)')) + diff --git a/src/types/app.d.ts b/src/types/app.d.ts new file mode 100644 index 0000000..48d6010 --- /dev/null +++ b/src/types/app.d.ts @@ -0,0 +1,70 @@ +/* eslint-disable no-var */ +import type { AppEventTypes } from '@/event/appEvent' +import type { ListEventTypes } from '@/event/listEvent' +import type { StateEventTypes } from '@/event/stateEvent' +import type { I18n } from '@/lang/i18n' +import type { Buffer as _Buffer } from 'buffer' + +// interface Process { +// env: { +// NODE_ENV: 'development' | 'production' +// } +// versions: { +// app: string +// } +// } +interface Lx { + fontSize: number + gettingUrlId: string + + // event_app: AppType + // event_list: ListType + + playerStatus: { + isInitialized: boolean + isRegisteredService: boolean + isIniting: boolean + } + restorePlayInfo: LX.Player.SavedPlayInfo | null + isScreenKeepAwake: boolean + isPlayedStop: boolean + isSyncEnableing: boolean + isEnableSyncLog: boolean + playerTrackId: string + + qualityList: LX.QualityList + + jumpMyListPosition: boolean + + // windowInfo: { + // screenW: number + // screenH: number + // fontScale: number + // pixelRatio: number + // screenPxW: number + // screenPxH: number + // } + + // syncKeyInfo: LX.Sync.KeyInfo +} + + +declare global { + var isDev: boolean + var lx: Lx + var i18n: I18n + var app_event: AppEventTypes + var list_event: ListEventTypes + var state_event: StateEventTypes + + var Buffer: typeof _Buffer + + module NodeJS { + interface ProcessVersions { + app: string + } + } + // var process: Process +} + +export {} diff --git a/src/types/app_setting.d.ts b/src/types/app_setting.d.ts new file mode 100644 index 0000000..7809ed3 --- /dev/null +++ b/src/types/app_setting.d.ts @@ -0,0 +1,251 @@ +import type { I18n } from '@/lang/i18n' + +declare global { + namespace LX { + type AddMusicLocationType = 'top' | 'bottom' + + interface AppSetting { + version: string + /** + * 是否跟随系统切换亮暗主题 + */ + 'common.isAutoTheme': boolean + + /** + * 语言id + */ + 'common.langId': I18n['locale'] | null + + /** + * api id + */ + 'common.apiSource': string + + /** + * 音源名称类型,原名、别名 + */ + 'common.sourceNameType': 'alias' | 'real' + + /** + * 歌曲分享方式 + */ + 'common.shareType': 'system' | 'clipboard' + + /** + * 是否同意软件协议 + */ + 'common.isAgreePact': boolean + + /** + * 是否在键盘弹出时隐藏播放栏 + */ + 'common.autoHidePlayBar': boolean + + /** + * 抽屉组件弹出方向 + */ + 'common.drawerLayoutPosition': 'left' | 'right' + + /** + * 主题id + */ + 'theme.id': string + + /** + * 亮色主题id + */ + 'theme.lightId': string + + /** + * 暗色主题id + */ + 'theme.darkId': string + + /** + * 启动时自动播放歌曲 + */ + 'player.startupAutoPlay': boolean + + /** + * 切歌模式 + */ + 'player.togglePlayMethod': 'listLoop' | 'random' | 'list' | 'singleLoop' | 'none' + + /** + * 是否优先播放320k音质 + */ + 'player.isPlayHighQuality': boolean + + /** + * 启动软件时是否恢复上次播放进度 + */ + 'player.isSavePlayTime': boolean + + /** + * 缓存大小设置 unit MB + */ + 'player.cacheSize': string + + /** + * 定时暂停播放-倒计时时间 + */ + 'player.timeoutExit': string + + /** + * 定时暂停播放-是否等待歌曲播放完毕再暂停 + */ + 'player.timeoutExitPlayed': boolean + + /** + * 其他应用播放声音时是否自动暂停 + */ + 'player.isHandleAudioFocus': boolean + + /** + * 是否显示歌词翻译 + */ + 'player.isShowLyricTranslation': boolean + + /** + * 是否显示歌词罗马音 + */ + 'player.isShowLyricRoma': boolean + + /** + * 是否在通知栏显示歌曲图片 + */ + 'player.isShowNotificationImage': boolean + + /** + * 是否将歌词从简体转换为繁体 + */ + 'player.isS2t': boolean + + /** + * 竖屏歌词字体大小 + */ + 'player.vertical.style.lrcFontSize': number + + /** + * 横屏歌词字体大小 + */ + 'player.horizontal.style.lrcFontSize': number + + /** + * 是否启用桌面歌词 + */ + 'desktopLyric.enable': boolean + + /** + * 是否锁定桌面歌词 + */ + 'desktopLyric.isLock': boolean + + /** + * 桌面歌词窗口宽度 + */ + 'desktopLyric.width': number + + /** + * 桌面歌词最大行数 + */ + 'desktopLyric.maxLineNum': number + + /** + * 桌面歌词是否使用单行显示 + */ + 'desktopLyric.isSingleLine': boolean + + /** + * 桌面歌词是否启用歌词切换动画 + */ + 'desktopLyric.showToggleAnima': boolean + + /** + * 桌面歌词窗口x坐标 + */ + 'desktopLyric.position.x': number + + /** + * 桌面歌词窗口y坐标 + */ + 'desktopLyric.position.y': number + + /** + * 歌词水平对齐方式 + */ + 'desktopLyric.textPosition.x': 'left' | 'center' | 'right' + + /** + * 歌词垂直对齐方式 + */ + 'desktopLyric.textPosition.y': 'top' | 'center' | 'bottom' + + /** + * 桌面歌词字体大小 + */ + 'desktopLyric.style.fontSize': number + + /** + * 桌面歌词字体透明度 + */ + 'desktopLyric.style.opacity': number + + /** + * 桌面歌词未播放字体颜色 + */ + 'desktopLyric.style.lyricUnplayColor': string + + /** + * 桌面歌词已播放字体颜色 + */ + 'desktopLyric.style.lyricPlayedColor': string + + /** + * 桌面歌词字体阴影颜色 + */ + 'desktopLyric.style.lyricShadowColor': string + + /** + * 是否显示热门搜索 + */ + 'search.isShowHotSearch': boolean + + /** + * 是否显示搜索历史 + */ + 'search.isShowHistorySearch': boolean + + /** + * 是否启用双击列表里的歌曲时自动切换到当前列表播放(仅对歌单、排行榜有效) + */ + 'list.isClickPlayList': boolean + + /** + * 是否显示歌曲来源(仅对我的列表有效) + */ + 'list.isShowSource': boolean + + /** + * 是否自动恢复列表滚动位置(仅对我的列表有效) + */ + 'list.isSaveScrollLocation': boolean + + /** + * 添加歌曲到我的列表时的方式 + */ + 'list.addMusicLocationType': AddMusicLocationType + + /** + * 文件命名方式 + */ + 'download.fileName': '歌名 - 歌手' | '歌手 - 歌名' | '歌名' + + /** + * 是否启用同步 + */ + 'sync.enable': boolean + } + } +} + diff --git a/src/types/common.d.ts b/src/types/common.d.ts new file mode 100644 index 0000000..21ecd60 --- /dev/null +++ b/src/types/common.d.ts @@ -0,0 +1,16 @@ +// import './app_setting' + +declare namespace LX { + type OnlineSource = 'kw' | 'kg' | 'tx' | 'wy' | 'mg' + type Source = OnlineSource | 'local' + type Quality = '128k' | '320k' | 'flac' | 'flac24bit' | '192k' | 'ape' | 'wav' + type QualityList = Partial<Record<LX.Source, LX.Quality[]>> + + type ShareType = 'system' | 'clipboard' + + type UpdateStatus = 'downloaded' | 'downloading' | 'error' | 'checking' | 'idle' + interface VersionInfo { + version: string + desc: string + } +} diff --git a/src/types/config_files.d.ts b/src/types/config_files.d.ts new file mode 100644 index 0000000..b61c188 --- /dev/null +++ b/src/types/config_files.d.ts @@ -0,0 +1,9 @@ +declare namespace LX { + namespace ConfigFile { + interface MyListInfoPart { + type: 'playListPart_v2' + data: LX.List.MyDefaultListInfoFull | LX.List.MyLoveListInfoFull | LX.List.UserListInfoFull + } + + } +} diff --git a/src/types/download_list.d.ts b/src/types/download_list.d.ts new file mode 100644 index 0000000..ed96983 --- /dev/null +++ b/src/types/download_list.d.ts @@ -0,0 +1,66 @@ + +// interface DownloadList { + +// } + + +declare namespace LX { + namespace Download { + type DownloadTaskStatus = 'run' + | 'waiting' + | 'pause' + | 'error' + | 'completed' + + type FileExt = 'mp3' | 'flac' | 'wav' | 'ape' + + interface ProgressInfo { + progress: number + speed: string + downloaded: number + total: number + } + + interface DownloadTaskActionBase <A> { + action: A + } + interface DownloadTaskActionData<A, D> extends DownloadTaskActionBase<A> { + data: D + } + type DownloadTaskAction<A, D = undefined> = D extends undefined ? DownloadTaskActionBase<A> : DownloadTaskActionData<A, D> + + type DownloadTaskActions = DownloadTaskAction<'start'> + | DownloadTaskAction<'complete'> + | DownloadTaskAction<'refreshUrl'> + | DownloadTaskAction<'statusText', string> + | DownloadTaskAction<'progress', ProgressInfo> + | DownloadTaskAction<'error', { + error?: string + message?: string + }> + + interface ListItem { + id: string + isComplate: boolean + status: DownloadTaskStatus + statusText: string + downloaded: number + total: number + progress: number + speed: string + metadata: { + musicInfo: LX.Music.MusicInfoOnline + url: string | null + quality: LX.Quality + ext: FileExt + fileName: string + filePath: string + } + } + + interface saveDownloadMusicInfo { + list: ListItem[] + addMusicLocationType: LX.AddMusicLocationType + } + } +} diff --git a/src/types/list.d.ts b/src/types/list.d.ts new file mode 100644 index 0000000..2e4623b --- /dev/null +++ b/src/types/list.d.ts @@ -0,0 +1,143 @@ +declare namespace LX { + namespace List { + interface UserListInfo { + id: string + name: string + // list: LX.Music.MusicInfo[] + source?: LX.OnlineSource + sourceListId?: string + // position?: number + locationUpdateTime: number | null + } + + interface MyDefaultListInfo { + id: 'default' + name: '试听列表' + // list: LX.Music.MusicInfo[] + } + + interface MyLoveListInfo { + id: 'love' + name: '我的收藏' + // list: LX.Music.MusicInfo[] + } + + interface MyTempListInfo { + id: 'temp' + name: '临时列表' + // list: LX.Music.MusicInfo[] + // TODO: save default lists info + meta: { + id?: string + } + } + + type MyListInfo = MyDefaultListInfo | MyLoveListInfo | UserListInfo + + interface MyAllList { + defaultList: MyDefaultListInfo + loveList: MyLoveListInfo + userList: UserListInfo[] + tempList: MyTempListInfo + } + + + type SearchHistoryList = string[] + type ListPositionInfo = Record<string, number> + type ListUpdateInfo = Record<string, { + updateTime: number + isAutoUpdate: boolean + }> + + type ListSaveType = 'myList' | 'downloadList' + type ListSaveInfo = { + type: 'myList' + data: Partial<MyAllList> + } | { + type: 'downloadList' + data: LX.Download.ListItem[] + } + + + type ListActionDataOverwrite = MakeOptional<LX.List.ListDataFull, 'tempList'> + interface ListActionAdd { + position: number + listInfos: UserListInfo[] + } + type ListActionRemove = string[] + type ListActionUpdate = UserListInfo[] + interface ListActionUpdatePosition { + /** + * 列表id + */ + ids: string[] + /** + * 位置 + */ + position: number + } + + interface ListActionMusicAdd { + id: string + musicInfos: LX.Music.MusicInfo[] + addMusicLocationType: LX.AddMusicLocationType + } + + interface ListActionMusicMove { + fromId: string + toId: string + musicInfos: LX.Music.MusicInfo[] + addMusicLocationType: LX.AddMusicLocationType + } + + interface ListActionCheckMusicExistList { + listId: string + musicInfoId: string + } + + interface ListActionMusicRemove { + listId: string + ids: string[] + } + + type ListActionMusicUpdate = Array<{ + id: string + musicInfo: LX.Music.MusicInfo + }> + + interface ListActionMusicUpdatePosition { + listId: string + position: number + ids: string[] + } + + interface ListActionMusicOverwrite { + listId: string + musicInfos: LX.Music.MusicInfo[] + } + + type ListActionMusicClear = string[] + + interface MyDefaultListInfoFull extends MyDefaultListInfo { + list: LX.Music.MusicInfo[] + } + interface MyLoveListInfoFull extends MyLoveListInfo { + list: LX.Music.MusicInfo[] + } + interface UserListInfoFull extends UserListInfo { + list: LX.Music.MusicInfo[] + } + interface MyTempListInfoFull extends MyTempListInfo { + list: LX.Music.MusicInfo[] + } + + interface ListDataFull { + defaultList: LX.Music.MusicInfo[] + loveList: LX.Music.MusicInfo[] + userList: UserListInfoFull[] + tempList: LX.Music.MusicInfo[] + } + + type ListMusics = LX.Music.MusicInfo[] + } +} diff --git a/src/types/music.d.ts b/src/types/music.d.ts new file mode 100644 index 0000000..12be91b --- /dev/null +++ b/src/types/music.d.ts @@ -0,0 +1,122 @@ +declare namespace LX { + namespace Music { + interface MusicQualityType { // {"type": "128k", size: "3.56M"} + type: LX.Quality + size: string | null + } + interface MusicQualityTypeKg { // {"type": "128k", size: "3.56M"} + type: LX.Quality + size: string | null + hash: string + } + type _MusicQualityType = Partial<Record<Quality, { + size: string | null + }>> + type _MusicQualityTypeKg = Partial<Record<Quality, { + size: string | null + hash: string + }>> + + + interface MusicInfoMetaBase { + songId: string | number // 歌曲ID,mg源为copyrightId,local为文件路径 + albumName: string // 歌曲专辑名称 + picUrl?: string | null // 歌曲图片链接 + } + + interface MusicInfoMeta_online extends MusicInfoMetaBase { + qualitys: MusicQualityType[] + _qualitys: _MusicQualityType + albumId?: string | number // 歌曲专辑ID + } + + interface MusicInfoMeta_local extends MusicInfoMetaBase { + filePath: string + ext: string + } + + + interface MusicInfoBase<S = LX.Source> { + id: string + name: string // 歌曲名 + singer: string // 艺术家名 + source: S // 源 + interval: string | null // 格式化后的歌曲时长,例:03:55 + meta: MusicInfoMetaBase + } + + interface MusicInfoLocal extends MusicInfoBase<'local'> { + meta: MusicInfoMeta_local + } + + interface MusicInfo_online_common extends MusicInfoBase<'kw' | 'wy'> { + meta: MusicInfoMeta_online + } + + interface MusicInfoMeta_kg extends MusicInfoMeta_online { + qualitys: MusicQualityTypeKg[] + _qualitys: _MusicQualityTypeKg + hash: string // 歌曲hash + } + interface MusicInfo_kg extends MusicInfoBase<'kg'> { + meta: MusicInfoMeta_kg + } + + interface MusicInfoMeta_tx extends MusicInfoMeta_online { + strMediaMid: string // 歌曲strMediaMid + id?: number // 歌曲songId + albumMid?: string // 歌曲albumMid + } + interface MusicInfo_tx extends MusicInfoBase<'tx'> { + meta: MusicInfoMeta_tx + } + + interface MusicInfoMeta_mg extends MusicInfoMeta_online { + copyrightId: string // 歌曲copyrightId + lrcUrl?: string // 歌曲lrcUrl + mrcUrl?: string // 歌曲mrcUrl + trcUrl?: string // 歌曲trcUrl + } + interface MusicInfo_mg extends MusicInfoBase<'mg'> { + meta: MusicInfoMeta_mg + } + + type MusicInfoOnline = MusicInfo_online_common | MusicInfo_kg | MusicInfo_tx | MusicInfo_mg + type MusicInfo = MusicInfoOnline | MusicInfoLocal + + interface LyricInfo { + // 歌曲歌词 + lyric: string + // 翻译歌词 + tlyric?: string | null + // 罗马音歌词 + rlyric?: string | null + // 逐字歌词 + lxlyric?: string | null + } + + interface LyricInfoSave { + id: string + lyrics: LyricInfo + } + + interface MusicFileMeta { + title: string + artist: string | null + album: string | null + APIC: string | null + lyrics: string | null + } + + interface MusicUrlInfo { + id: string + url: string + } + + interface MusicInfoOtherSourceSave { + id: string + list: MusicInfoOnline[] + } + + } +} diff --git a/src/types/player.d.ts b/src/types/player.d.ts new file mode 100644 index 0000000..3ab0c4c --- /dev/null +++ b/src/types/player.d.ts @@ -0,0 +1,86 @@ +import type { Track as RNTrack } from 'react-native-track-player' + +declare global { + namespace LX { + namespace Player { + interface MusicInfo { + id: string | null + pic: string | null | undefined + lrc: string | null + tlrc: string | null + rlrc: string | null + lxlrc: string | null + rawlrc: string | null + // url: string | null + name: string + singer: string + album: string + } + + interface LyricInfo extends LX.Music.LyricInfo { + rawlrcInfo: LX.Music.LyricInfo + } + + type PlayMusic = LX.Music.MusicInfo | LX.Download.ListItem + + type PlayMusicInfo = Readonly<{ + /** + * 当前播放歌曲的列表 id + */ + musicInfo: PlayMusic + /** + * 当前播放歌曲的列表 id + */ + listId: string + /** + * 是否属于 “稍后播放” + */ + isTempPlay: boolean + }> + + interface PlayInfo { + /** + * 当前正在播放歌曲 index + */ + playIndex: number + /** + * 播放器的播放列表 id + */ + playerListId: string | null + /** + * 播放器播放歌曲 index + */ + playerPlayIndex: number + } + + interface TempPlayListItem { + /** + * 播放列表id + */ + listId: string + /** + * 歌曲信息 + */ + musicInfo: PlayMusic + /** + * 是否添加到列表顶部 + */ + isTop?: boolean + } + + interface SavedPlayInfo { + time: number + maxTime: number + listId: string + index: number + } + + interface Track extends RNTrack { + musicId: string + original: PlayMusic + // quality: LX.Quality + } + + } + } +} diff --git a/src/types/shims.d.ts b/src/types/shims.d.ts new file mode 100644 index 0000000..3031be1 --- /dev/null +++ b/src/types/shims.d.ts @@ -0,0 +1,5 @@ + +declare module 'crypto' { + import crypto from 'react-native-quick-crypto' + export default crypto +} diff --git a/src/types/sync.d.ts b/src/types/sync.d.ts new file mode 100644 index 0000000..963c246 --- /dev/null +++ b/src/types/sync.d.ts @@ -0,0 +1,80 @@ +import { io } from 'socket.io-client' + +declare global { + namespace LX { + namespace Sync { + + interface Enable { + enable: boolean + port: string + } + + interface SyncActionBase <A> { + action: A + } + interface SyncActionData<A, D> extends SyncActionBase<A> { + data: D + } + type SyncAction<A, D = undefined> = D extends undefined ? SyncActionBase<A> : SyncActionData<A, D> + + // type SyncMainWindowActions = SyncAction<'select_mode', KeyInfo> + // | SyncAction<'close_select_mode'> + // | SyncAction<'status', Status> + + // type SyncServiceActions = SyncAction<'select_mode', Mode> + // | SyncAction<'get_status'> + // | SyncAction<'generate_code'> + // | SyncAction<'enable', Enable> + + type ActionList = SyncAction<'list_data_overwrite', LX.List.ListActionDataOverwrite> + | SyncAction<'list_create', LX.List.ListActionAdd> + | SyncAction<'list_remove', LX.List.ListActionRemove> + | SyncAction<'list_update', LX.List.ListActionUpdate> + | SyncAction<'list_update_position', LX.List.ListActionUpdatePosition> + | SyncAction<'list_music_add', LX.List.ListActionMusicAdd> + | SyncAction<'list_music_move', LX.List.ListActionMusicMove> + | SyncAction<'list_music_remove', LX.List.ListActionMusicRemove> + | SyncAction<'list_music_update', LX.List.ListActionMusicUpdate> + | SyncAction<'list_music_update_position', LX.List.ListActionMusicUpdatePosition> + | SyncAction<'list_music_overwrite', LX.List.ListActionMusicOverwrite> + | SyncAction<'list_music_clear', LX.List.ListActionMusicClear> + + type SyncClientActionGetData = 'all' + type SyncClientAction = SyncAction<'getData', SyncClientActionGetData> + | SyncAction<'setData', ListData> + | SyncAction<'finished'> + + + interface List { + action: string + data: any + } + + interface Status { + status: boolean + message: string + } + + interface KeyInfo { + clientId: string + key: string + deviceName: string + connectionTime?: number + } + + type ListData = Omit<LX.List.ListDataFull, 'tempList'> + + type Mode = 'merge_local_remote' + | 'merge_remote_local' + | 'overwrite_local_remote' + | 'overwrite_remote_local' + | 'overwrite_local_remote_full' + | 'overwrite_remote_local_full' + | 'none' + | 'cancel' + + type Socket = ReturnType<typeof io> + + } + } +} diff --git a/src/types/theme.d.ts b/src/types/theme.d.ts new file mode 100644 index 0000000..105151e --- /dev/null +++ b/src/types/theme.d.ts @@ -0,0 +1,323 @@ +import type { ImageSourcePropType } from 'react-native' + +declare global { + namespace LX { + interface ThemeColors { + 'c-000': string + 'c-050': string + 'c-100': string + 'c-150': string + 'c-200': string + 'c-250': string + 'c-300': string + 'c-350': string + 'c-400': string + 'c-450': string + 'c-500': string + 'c-550': string + 'c-600': string + 'c-650': string + 'c-700': string + 'c-750': string + 'c-800': string + 'c-850': string + 'c-900': string + 'c-950': string + 'c-1000': string + + + 'c-theme': string + + 'c-primary': string + 'c-primary-alpha-100': string + 'c-primary-alpha-200': string + 'c-primary-alpha-300': string + 'c-primary-alpha-400': string + 'c-primary-alpha-500': string + 'c-primary-alpha-600': string + 'c-primary-alpha-700': string + 'c-primary-alpha-800': string + 'c-primary-alpha-900': string + + 'c-primary-dark-100': string + 'c-primary-dark-100-alpha-100': string + 'c-primary-dark-100-alpha-200': string + 'c-primary-dark-100-alpha-300': string + 'c-primary-dark-100-alpha-400': string + 'c-primary-dark-100-alpha-500': string + 'c-primary-dark-100-alpha-600': string + 'c-primary-dark-100-alpha-700': string + 'c-primary-dark-100-alpha-800': string + 'c-primary-dark-100-alpha-900': string + + 'c-primary-dark-200': string + 'c-primary-dark-200-alpha-100': string + 'c-primary-dark-200-alpha-200': string + 'c-primary-dark-200-alpha-300': string + 'c-primary-dark-200-alpha-400': string + 'c-primary-dark-200-alpha-500': string + 'c-primary-dark-200-alpha-600': string + 'c-primary-dark-200-alpha-700': string + 'c-primary-dark-200-alpha-800': string + 'c-primary-dark-200-alpha-900': string + + 'c-primary-dark-300': string + 'c-primary-dark-300-alpha-100': string + 'c-primary-dark-300-alpha-200': string + 'c-primary-dark-300-alpha-300': string + 'c-primary-dark-300-alpha-400': string + 'c-primary-dark-300-alpha-500': string + 'c-primary-dark-300-alpha-600': string + 'c-primary-dark-300-alpha-700': string + 'c-primary-dark-300-alpha-800': string + 'c-primary-dark-300-alpha-900': string + + 'c-primary-dark-400': string + 'c-primary-dark-400-alpha-100': string + 'c-primary-dark-400-alpha-200': string + 'c-primary-dark-400-alpha-300': string + 'c-primary-dark-400-alpha-400': string + 'c-primary-dark-400-alpha-500': string + 'c-primary-dark-400-alpha-600': string + 'c-primary-dark-400-alpha-700': string + 'c-primary-dark-400-alpha-800': string + 'c-primary-dark-400-alpha-900': string + + 'c-primary-dark-500': string + 'c-primary-dark-500-alpha-100': string + 'c-primary-dark-500-alpha-200': string + 'c-primary-dark-500-alpha-300': string + 'c-primary-dark-500-alpha-400': string + 'c-primary-dark-500-alpha-500': string + 'c-primary-dark-500-alpha-600': string + 'c-primary-dark-500-alpha-700': string + 'c-primary-dark-500-alpha-800': string + 'c-primary-dark-500-alpha-900': string + + 'c-primary-dark-600': string + 'c-primary-dark-600-alpha-100': string + 'c-primary-dark-600-alpha-200': string + 'c-primary-dark-600-alpha-300': string + 'c-primary-dark-600-alpha-400': string + 'c-primary-dark-600-alpha-500': string + 'c-primary-dark-600-alpha-600': string + 'c-primary-dark-600-alpha-700': string + 'c-primary-dark-600-alpha-800': string + 'c-primary-dark-600-alpha-900': string + + 'c-primary-dark-700': string + 'c-primary-dark-700-alpha-100': string + 'c-primary-dark-700-alpha-200': string + 'c-primary-dark-700-alpha-300': string + 'c-primary-dark-700-alpha-400': string + 'c-primary-dark-700-alpha-500': string + 'c-primary-dark-700-alpha-600': string + 'c-primary-dark-700-alpha-700': string + 'c-primary-dark-700-alpha-800': string + 'c-primary-dark-700-alpha-900': string + + 'c-primary-dark-800': string + 'c-primary-dark-800-alpha-100': string + 'c-primary-dark-800-alpha-200': string + 'c-primary-dark-800-alpha-300': string + 'c-primary-dark-800-alpha-400': string + 'c-primary-dark-800-alpha-500': string + 'c-primary-dark-800-alpha-600': string + 'c-primary-dark-800-alpha-700': string + 'c-primary-dark-800-alpha-800': string + 'c-primary-dark-800-alpha-900': string + + 'c-primary-dark-900': string + 'c-primary-dark-900-alpha-100': string + 'c-primary-dark-900-alpha-200': string + 'c-primary-dark-900-alpha-300': string + 'c-primary-dark-900-alpha-400': string + 'c-primary-dark-900-alpha-500': string + 'c-primary-dark-900-alpha-600': string + 'c-primary-dark-900-alpha-700': string + 'c-primary-dark-900-alpha-800': string + 'c-primary-dark-900-alpha-900': string + + 'c-primary-dark-1000': string + 'c-primary-dark-1000-alpha-100': string + 'c-primary-dark-1000-alpha-200': string + 'c-primary-dark-1000-alpha-300': string + 'c-primary-dark-1000-alpha-400': string + 'c-primary-dark-1000-alpha-500': string + 'c-primary-dark-1000-alpha-600': string + 'c-primary-dark-1000-alpha-700': string + 'c-primary-dark-1000-alpha-800': string + 'c-primary-dark-1000-alpha-900': string + + 'c-primary-light-100': string + 'c-primary-light-100-alpha-100': string + 'c-primary-light-100-alpha-200': string + 'c-primary-light-100-alpha-300': string + 'c-primary-light-100-alpha-400': string + 'c-primary-light-100-alpha-500': string + 'c-primary-light-100-alpha-600': string + 'c-primary-light-100-alpha-700': string + 'c-primary-light-100-alpha-800': string + 'c-primary-light-100-alpha-900': string + + 'c-primary-light-200': string + 'c-primary-light-200-alpha-100': string + 'c-primary-light-200-alpha-200': string + 'c-primary-light-200-alpha-300': string + 'c-primary-light-200-alpha-400': string + 'c-primary-light-200-alpha-500': string + 'c-primary-light-200-alpha-600': string + 'c-primary-light-200-alpha-700': string + 'c-primary-light-200-alpha-800': string + 'c-primary-light-200-alpha-900': string + + 'c-primary-light-300': string + 'c-primary-light-300-alpha-100': string + 'c-primary-light-300-alpha-200': string + 'c-primary-light-300-alpha-300': string + 'c-primary-light-300-alpha-400': string + 'c-primary-light-300-alpha-500': string + 'c-primary-light-300-alpha-600': string + 'c-primary-light-300-alpha-700': string + 'c-primary-light-300-alpha-800': string + 'c-primary-light-300-alpha-900': string + + 'c-primary-light-400': string + 'c-primary-light-400-alpha-100': string + 'c-primary-light-400-alpha-200': string + 'c-primary-light-400-alpha-300': string + 'c-primary-light-400-alpha-400': string + 'c-primary-light-400-alpha-500': string + 'c-primary-light-400-alpha-600': string + 'c-primary-light-400-alpha-700': string + 'c-primary-light-400-alpha-800': string + 'c-primary-light-400-alpha-900': string + + 'c-primary-light-500': string + 'c-primary-light-500-alpha-100': string + 'c-primary-light-500-alpha-200': string + 'c-primary-light-500-alpha-300': string + 'c-primary-light-500-alpha-400': string + 'c-primary-light-500-alpha-500': string + 'c-primary-light-500-alpha-600': string + 'c-primary-light-500-alpha-700': string + 'c-primary-light-500-alpha-800': string + 'c-primary-light-500-alpha-900': string + + 'c-primary-light-600': string + 'c-primary-light-600-alpha-100': string + 'c-primary-light-600-alpha-200': string + 'c-primary-light-600-alpha-300': string + 'c-primary-light-600-alpha-400': string + 'c-primary-light-600-alpha-500': string + 'c-primary-light-600-alpha-600': string + 'c-primary-light-600-alpha-700': string + 'c-primary-light-600-alpha-800': string + 'c-primary-light-600-alpha-900': string + + 'c-primary-light-700': string + 'c-primary-light-700-alpha-100': string + 'c-primary-light-700-alpha-200': string + 'c-primary-light-700-alpha-300': string + 'c-primary-light-700-alpha-400': string + 'c-primary-light-700-alpha-500': string + 'c-primary-light-700-alpha-600': string + 'c-primary-light-700-alpha-700': string + 'c-primary-light-700-alpha-800': string + 'c-primary-light-700-alpha-900': string + + 'c-primary-light-800': string + 'c-primary-light-800-alpha-100': string + 'c-primary-light-800-alpha-200': string + 'c-primary-light-800-alpha-300': string + 'c-primary-light-800-alpha-400': string + 'c-primary-light-800-alpha-500': string + 'c-primary-light-800-alpha-600': string + 'c-primary-light-800-alpha-700': string + 'c-primary-light-800-alpha-800': string + 'c-primary-light-800-alpha-900': string + + 'c-primary-light-900': string + 'c-primary-light-900-alpha-100': string + 'c-primary-light-900-alpha-200': string + 'c-primary-light-900-alpha-300': string + 'c-primary-light-900-alpha-400': string + 'c-primary-light-900-alpha-500': string + 'c-primary-light-900-alpha-600': string + 'c-primary-light-900-alpha-700': string + 'c-primary-light-900-alpha-800': string + 'c-primary-light-900-alpha-900': string + + 'c-primary-light-1000': string + 'c-primary-light-1000-alpha-100': string + 'c-primary-light-1000-alpha-200': string + 'c-primary-light-1000-alpha-300': string + 'c-primary-light-1000-alpha-400': string + 'c-primary-light-1000-alpha-500': string + 'c-primary-light-1000-alpha-600': string + 'c-primary-light-1000-alpha-700': string + 'c-primary-light-1000-alpha-800': string + 'c-primary-light-1000-alpha-900': string + } + + type ActiveTheme = ThemeColors & Omit<Theme['config']['extInfo'], 'bg-image'> & Pick<Theme, 'id' | 'name' | 'isDark'> & { + 'c-font': string + 'c-font-label': string + 'c-primary-font': string + 'c-primary-font-hover': string + 'c-primary-font-active': string + 'c-primary-background': string + 'c-primary-background-hover': string + 'c-primary-background-active': string + 'c-primary-input-background': string + 'c-button-font': string + 'c-button-font-selected': string + 'c-button-background': string + 'c-button-background-selected': string + 'c-button-background-hover': string + 'c-button-background-active': string + 'c-list-header-border-bottom': string + 'c-content-background': string + 'c-border-background': string + 'bg-image'?: ImageSourcePropType + } + + interface Theme { + id: string + name: string + isDark: boolean + isCustom: boolean + config: { + themeColors: ThemeColors + extInfo: { + 'c-app-background': string + 'c-main-background': string + 'bg-image': string + 'bg-image-position': string + 'bg-image-size': string + + // 徽章颜色 + 'c-badge-primary': string + 'c-badge-secondary': string + 'c-badge-tertiary': string + } + } + } + + interface ThemeInfo { + themes: LX.Theme[] + userThemes: LX.Theme[] + dataPath: string + } + + interface ThemeSetting { + shouldUseDarkColors: boolean + theme: { + id: string + name: string + isDark: boolean + colors: Record<string, string> + } + } + } +} diff --git a/src/types/utils.d.ts b/src/types/utils.d.ts new file mode 100644 index 0000000..eb6b0d4 --- /dev/null +++ b/src/types/utils.d.ts @@ -0,0 +1,11 @@ +type MakeOptional<Type, Key extends keyof Type> = Omit<Type, Key> & Partial<Pick<Type, Key>> + +type DeepPartial<T> = { + [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]; +} + +type Modify<T, R> = Omit<T, keyof R> & R + +type MakeArrayItemReadOnly<T extends any[]> = { [K in keyof T]: Readonly<T[K]> } + +type ForwardRefFn<R> = <P = {}>(p: React.PropsWithChildren<P> & React.RefAttributes<R>) => React.ReactNode | null diff --git a/src/utils/cache.js b/src/utils/cache.js deleted file mode 100644 index 088e140..0000000 --- a/src/utils/cache.js +++ /dev/null @@ -1,6 +0,0 @@ -import { NativeModules } from 'react-native' - -const { CacheModule } = NativeModules - -export const getAppCacheSize = () => CacheModule.getAppCacheSize().then(size => parseInt(size)) -export const clearAppCache = CacheModule.clearAppCache diff --git a/src/utils/common.js b/src/utils/common.js deleted file mode 100644 index f5e953e..0000000 --- a/src/utils/common.js +++ /dev/null @@ -1,16 +0,0 @@ -import { hideLyric } from './lyricDesktop' -import { destroy as destroyPlayer } from '@/plugins/player/utils' -import { exitApp as utilExitApp } from './utils' - -let isDestroying = false -export const exitApp = () => { - if (isDestroying) return - isDestroying = true - Promise.all([ - hideLyric(), - destroyPlayer(), - ]).finally(() => { - isDestroying = false - utilExitApp() - }) -} diff --git a/src/utils/common.ts b/src/utils/common.ts new file mode 100644 index 0000000..ae08df9 --- /dev/null +++ b/src/utils/common.ts @@ -0,0 +1,235 @@ +// 非业务工具方法 + +/** + * 获取两个数之间的随机整数,大于等于min,小于max + * @param {*} min + * @param {*} max + */ +export const getRandom = (min: number, max: number): number => Math.floor(Math.random() * (max - min)) + min + + +export const sizeFormate = (size: number): string => { + // https://gist.github.com/thomseddon/3511330 + if (!size) return '0 B' + let units = ['B', 'KB', 'MB', 'GB', 'TB'] + let number = Math.floor(Math.log(size) / Math.log(1024)) + return `${(size / Math.pow(1024, Math.floor(number))).toFixed(2)} ${units[number]}` +} + +/** + * 将字符串、时间戳等格式转成时间对象 + * @param date 时间 + * @returns 时间对象或空字符串 + */ +export const toDateObj = (date: any): Date | '' => { + // console.log(date) + if (!date) return '' + switch (typeof date) { + case 'string': + if (!date.includes('T')) date = date.split('.')[0].replace(/-/g, '/') + // eslint-disable-next-line no-fallthrough + case 'number': + date = new Date(date) + // eslint-disable-next-line no-fallthrough + case 'object': + break + default: return '' + } + return date +} + +const numFix = (n: number): string => n < 10 ? (`0${n}`) : n.toString() +/** + * 时间格式化 + * @param _date 时间 + * @param format Y-M-D h:m:s Y年 M月 D日 h时 m分 s秒 + */ +export const dateFormat = (_date: any, format = 'Y-M-D h:m:s') => { + // console.log(date) + const date = toDateObj(_date) + if (!date) return '' + return format + .replace('Y', date.getFullYear().toString()) + .replace('M', numFix(date.getMonth() + 1)) + .replace('D', numFix(date.getDate())) + .replace('h', numFix(date.getHours())) + .replace('m', numFix(date.getMinutes())) + .replace('s', numFix(date.getSeconds())) +} + + +export const formatPlayTime = (time: number) => { + let m = Math.trunc(time / 60) + let s = Math.trunc(time % 60) + return m == 0 && s == 0 ? '--/--' : numFix(m) + ':' + numFix(s) +} + +export const formatPlayTime2 = (time: number) => { + let m = Math.trunc(time / 60) + let s = Math.trunc(time % 60) + return numFix(m) + ':' + numFix(s) +} + + +const encodeNames = { + ' ': ' ', + '&': '&', + '<': '<', + '>': '>', + '"': '"', + ''': "'", + ''': "'", +} as const +export const decodeName = (str: string | null = '') => { + return str?.replace(/(?:&|<|>|"|'|'| )/gm, (s: string) => encodeNames[s as keyof typeof encodeNames]) ?? '' +} + +export const isUrl = (path: string) => /https?:\/\//.test(path) + +// 解析URL参数为对象 +export const parseUrlParams = (str: string): Record<string, string> => { + const params: Record<string, string> = {} + if (typeof str !== 'string') return params + const paramsArr = str.split('&') + for (const param of paramsArr) { + let [key, value] = param.split('=') + params[key] = value + } + return params +} + +/** + * 生成节流函数 + * @param fn 回调 + * @param delay 延迟 + * @returns + */ +export function throttle<Args extends any[]>(fn: (...args: Args) => void | Promise<void>, delay = 100) { + let timer: NodeJS.Timeout | null = null + let _args: Args + return (...args: Args) => { + _args = args + if (timer) return + timer = setTimeout(() => { + timer = null + void fn(..._args) + }, delay) + } +} + +/** + * 生成防抖函数 + * @param fn 回调 + * @param delay 延迟 + * @returns + */ +export function debounce<Args extends any[]>(fn: (...args: Args) => void | Promise<void>, delay = 100) { + let timer: NodeJS.Timeout | null = null + let _args: Args + return (...args: Args) => { + _args = args + if (timer) clearTimeout(timer) + timer = setTimeout(() => { + timer = null + void fn(..._args) + }, delay) + } +} + +const fileNameRxp = /[\\/:*?#"<>|]/g +export const filterFileName = (name: string): string => name.replace(fileNameRxp, '') + + +// https://blog.csdn.net/xcxy2015/article/details/77164126#comments +/** + * + * @param a + * @param b + */ +export const similar = (a: string, b: string) => { + if (!a || !b) return 0 + if (a.length > b.length) { // 保证 a <= b + let t = b + b = a + a = t + } + let al = a.length + let bl = b.length + let mp = [] // 一个表 + let i, j, ai, lt, tmp // ai:字符串a的第i个字符。 lt:左上角的值。 tmp:暂存新的值。 + for (i = 0; i <= bl; i++) mp[i] = i + for (i = 1; i <= al; i++) { + ai = a.charAt(i - 1) + lt = mp[0] + mp[0] = mp[0] + 1 + for (j = 1; j <= bl; j++) { + tmp = Math.min(mp[j] + 1, mp[j - 1] + 1, lt + (ai == b.charAt(j - 1) ? 0 : 1)) + lt = mp[j] + mp[j] = tmp + } + } + return 1 - (mp[bl] / bl) +} + +/** + * 排序字符串 + * @param arr + * @param data + */ +export const sortInsert = <T>(arr: Array<{ num: number, data: T }>, data: { num: number, data: T }) => { + let key = data.num + let left = 0 + let right = arr.length - 1 + + while (left <= right) { + let middle = Math.trunc((left + right) / 2) + if (key == arr[middle].num) { + left = middle + break + } else if (key < arr[middle].num) { + right = middle - 1 + } else { + left = middle + 1 + } + } + while (left > 0) { + if (arr[left - 1].num != key) break + left-- + } + + arr.splice(left, 0, data) +} + + +export const arrPush = <T>(list: T[], newList: T[]) => { + for (let i = 0; i * 1000 < newList.length; i++) { + list.push(...newList.slice(i * 1000, (i + 1) * 1000)) + } + return list +} + +export const arrUnshift = <T>(list: T[], newList: T[]) => { + for (let i = 0; i * 1000 < newList.length; i++) { + list.splice(i * 1000, 0, ...newList.slice(i * 1000, (i + 1) * 1000)) + } + return list +} + +export const arrPushByPosition = <T>(list: T[], newList: T[], position: number) => { + for (let i = 0; i * 1000 < newList.length; i++) { + list.splice(position + i * 1000, 0, ...newList.slice(i * 1000, (i + 1) * 1000)) + } + return list +} + +export const freezeListItem = <T extends any[]>(list: T): MakeArrayItemReadOnly<T> => { + for (let i = 0; i < list.length; i++) { + Object.freeze(list[i]) + } + return list +} + +export const b64DecodeUnicode = (str: string) => { + // Going backwards: from bytestream, to percent-encoding, to original string. + return Buffer.from(str, 'base64').toString() +} diff --git a/src/utils/data.ts b/src/utils/data.ts new file mode 100644 index 0000000..54b9662 --- /dev/null +++ b/src/utils/data.ts @@ -0,0 +1,391 @@ +import { getData, saveData, getAllKeys, removeDataMultiple, saveDataMultiple, removeData, getDataMultiple } from '@/plugins/storage' +import { DEFAULT_SETTING, LIST_IDS, storageDataPrefix, type NAV_ID_Type } from '@/config/constant' +import { throttle } from './common' +// import { gzip, ungzip } from '@/utils/nativeModules/gzip' +// import { readFile, writeFile, temporaryDirectoryPath, unlink } from '@/utils/fs' +// import { isNotificationsEnabled, openNotificationPermissionActivity, shareText } from '@/utils/nativeModules/utils' +// import { i18n } from '@/plugins/i18n' +// import musicSdk from '@/utils/musicSdk' + +const fontSizeKey = storageDataPrefix.fontSize +const themeKey = storageDataPrefix.theme +const playInfoStorageKey = storageDataPrefix.playInfo +const userListKey = storageDataPrefix.userList +const viewPrevStateKey = storageDataPrefix.viewPrevState +const listScrollPositionKey = storageDataPrefix.listScrollPosition +const listUpdateInfoKey = storageDataPrefix.listUpdateInfo +const ignoreVersionKey = storageDataPrefix.ignoreVersion +const searchSettingKey = storageDataPrefix.searchSetting +const searchHistoryListKey = storageDataPrefix.searchHistoryList +const songListSettingKey = storageDataPrefix.songListSetting +const leaderboardSettingKey = storageDataPrefix.leaderboardSetting +const listPrevSelectIdKey = storageDataPrefix.listPrevSelectId +const syncAuthKeyPrefix = storageDataPrefix.syncAuthKey +const syncHostPrefix = storageDataPrefix.syncHost +const syncHostHistoryPrefix = storageDataPrefix.syncHostHistory +const listPrefix = storageDataPrefix.list + +// const defaultListKey = listPrefix + 'default' +// const loveListKey = listPrefix + 'love' + +let listPosition: LX.List.ListPositionInfo +let listPrevSelectId: string +let listUpdateInfo: LX.List.ListUpdateInfo + +let searchSetting: typeof DEFAULT_SETTING['search'] +let songListSetting: typeof DEFAULT_SETTING['songList'] +let leaderboardSetting: typeof DEFAULT_SETTING['leaderboard'] +let searchHistoryList: string[] + +const saveListPositionThrottle = throttle(() => { + void saveData(listScrollPositionKey, listPosition) +}, 1000) +const saveSearchSettingThrottle = throttle(() => { + void saveData(searchSettingKey, searchSetting) +}, 1000) +const saveSearchHistoryThrottle = throttle(() => { + void saveData(searchHistoryListKey, searchHistoryList) +}, 1000) +const saveSongListSettingThrottle = throttle(() => { + void saveData(songListSettingKey, songListSetting) +}, 1000) +const saveLeaderboardSettingThrottle = throttle(() => { + void saveData(leaderboardSettingKey, leaderboardSetting) +}, 1000) +const saveViewPrevStateThrottle = throttle((state) => { + void saveData(viewPrevStateKey, state) +}, 1000) + +export const getFontSize = async() => (await getData<number>(fontSizeKey) ?? 1) +export const saveFontSize = async(size: number) => { + await saveData(fontSizeKey, size) +} + +export const getUserTheme = async() => (await getData<LX.Theme[]>(themeKey) ?? []) +export const saveUserTheme = async(themes: LX.Theme[]) => { + await saveData(themeKey, themes) +} + + +const initPosition = async() => { + listPosition ??= await getData(listScrollPositionKey) ?? {} +} +export const getListPosition = async(id: string): Promise<number> => { + await initPosition() + return listPosition[id] ?? 0 +} +export const saveListPosition = async(id: string, position?: number) => { + await initPosition() + listPosition[id] = position ?? 0 + saveListPositionThrottle() +} +export const removeListPosition = async(id: string) => { + await initPosition() + delete listPosition[id] + saveListPositionThrottle() +} +export const overwriteListPosition = async(ids: string[]) => { + await initPosition() + const removedIds = [] + for (const id of Object.keys(listPosition)) { + if (ids.includes(id)) continue + removedIds.push(id) + } + for (const id of removedIds) delete listPosition[id] + saveListPositionThrottle() +} + +const saveListPrevSelectIdThrottle = throttle(() => { + void saveData(listPrevSelectIdKey, listPrevSelectId) +}, 200) +export const getListPrevSelectId = async() => { + listPrevSelectId ??= await getData(listPrevSelectIdKey) ?? LIST_IDS.DEFAULT + return listPrevSelectId || LIST_IDS.DEFAULT +} +export const saveListPrevSelectId = (id: string) => { + listPrevSelectId = id + saveListPrevSelectIdThrottle() +} + +const saveListUpdateInfoThrottle = throttle(() => { + void saveData(listUpdateInfoKey, listUpdateInfo) +}, 1000) + +const initListUpdateInfo = async() => { + listUpdateInfo ??= await getData(listUpdateInfoKey) ?? {} +} +export const getListUpdateInfo = async() => { + await initListUpdateInfo() + return listUpdateInfo +} +export const saveListUpdateInfo = async(info: LX.List.ListUpdateInfo) => { + await initListUpdateInfo() + listUpdateInfo = info + saveListUpdateInfoThrottle() +} +export const setListAutoUpdate = async(id: string, enable: boolean) => { + await initListUpdateInfo() + const targetInfo = listUpdateInfo[id] ?? { updateTime: 0, isAutoUpdate: false } + targetInfo.isAutoUpdate = enable + listUpdateInfo[id] = targetInfo + saveListUpdateInfoThrottle() +} +export const setListUpdateTime = async(id: string, time: number) => { + await initListUpdateInfo() + const targetInfo = listUpdateInfo[id] ?? { updateTime: 0, isAutoUpdate: false } + targetInfo.updateTime = time + listUpdateInfo[id] = targetInfo + saveListUpdateInfoThrottle() +} +// export const setListUpdateInfo = (id, { updateTime, isAutoUpdate }) => { +// listUpdateInfo[id] = { updateTime, isAutoUpdate } +// saveListUpdateInfo() +// } +export const removeListUpdateInfo = async(id: string) => { + await initListUpdateInfo() + delete listUpdateInfo[id] + saveListUpdateInfoThrottle() +} +export const overwriteListUpdateInfo = async(ids: string[]) => { + await initListUpdateInfo() + const removedIds = [] + for (const id of Object.keys(listUpdateInfo)) { + if (ids.includes(id)) continue + removedIds.push(id) + } + for (const id of removedIds) delete listUpdateInfo[id] + saveListUpdateInfoThrottle() +} + +let ignoreVersion: string | null +export const saveIgnoreVersion = (version: string | null) => { + ignoreVersion = version + if (version == null) { + void removeData(ignoreVersionKey) + } else { + void saveData(ignoreVersionKey, version) + } +} +// 获取忽略更新的版本号 +export const getIgnoreVersion = async() => { + if (ignoreVersion === undefined) ignoreVersion = (await getData<string | null>(ignoreVersionKey)) ?? null + return ignoreVersion +} + + +export const getSearchSetting = async() => { + searchSetting ??= await getData(searchSettingKey) ?? { ...DEFAULT_SETTING.search } + return { ...searchSetting } +} +export const saveSearchSetting = async(setting: Partial<typeof DEFAULT_SETTING['search']>) => { + if (!searchSetting) await getSearchSetting() + let requiredSave = false + if (setting.source && searchSetting.source != setting.source) requiredSave = true + if (setting.type && searchSetting.type != setting.type) requiredSave = true + if (setting.temp_source && searchSetting.temp_source != setting.temp_source) requiredSave = true + + if (!requiredSave) return + searchSetting = Object.assign(searchSetting, setting) + saveSearchSettingThrottle() +} + +export const getSearchHistory = async() => { + searchHistoryList ??= await getData(searchHistoryListKey) ?? [] + return [...searchHistoryList] +} +export const saveSearchHistory = async(historyList: typeof searchHistoryList) => { + if (!searchHistoryList) await getSearchHistory() + searchHistoryList = historyList + saveSearchHistoryThrottle() +} + +export const getSongListSetting = async() => { + songListSetting ??= await getData(songListSettingKey) ?? { ...DEFAULT_SETTING.songList } + return { ...songListSetting } +} +export const saveSongListSetting = async(setting: Partial<typeof DEFAULT_SETTING['songList']>) => { + if (!songListSetting) await getSongListSetting() + songListSetting = Object.assign(songListSetting, setting) + saveSongListSettingThrottle() +} + +export const getLeaderboardSetting = async() => { + leaderboardSetting ??= await getData(leaderboardSettingKey) ?? { ...DEFAULT_SETTING.leaderboard } + return { ...leaderboardSetting } +} +export const saveLeaderboardSetting = async(setting: Partial<typeof DEFAULT_SETTING['leaderboard']>) => { + if (!leaderboardSetting) await getLeaderboardSetting() + leaderboardSetting = Object.assign(leaderboardSetting, setting) + saveLeaderboardSettingThrottle() +} + +export const getViewPrevState = async() => { + return await getData<{ id: NAV_ID_Type }>(viewPrevStateKey) ?? { ...DEFAULT_SETTING.viewPrevState } +} +export const saveViewPrevState = (state: { id: NAV_ID_Type }) => { + saveViewPrevStateThrottle(state) +} + + +/** + * 获取用户列表 + */ +export const getUserLists = async(): Promise<LX.List.UserListInfo[]> => { + const list = await getData<LX.List.UserListInfo[]>(userListKey) + return list ?? [] +} + +/** + * 保存用户列表 + * @param listInfo + */ +export const saveUserList = async(listInfo: LX.List.UserListInfo[]) => { + await saveData(userListKey, listInfo) +} + +/** + * 获取列表内歌曲 + * @param listId 列表id + * @returns + */ +export const getListMusics = async(listId: string): Promise<LX.Music.MusicInfo[]> => { + const list = await getData<LX.Music.MusicInfo[]>(listPrefix + listId) + return list ?? [] +} + +/** + * 保存列表内歌曲 + * @param listData 列表数据 + */ +export const saveListMusics = async(listData: Array<{ id: string, musics: LX.Music.MusicInfo[] }>) => { + if (listData.length > 1) { + await saveDataMultiple(listData.map(list => ([listPrefix + list.id, list.musics]))) + } else { + const list = listData[0] + await saveData(listPrefix + list.id, list.musics) + } +} + +/** + * 移除歌曲列表 + * @param ids + */ +export const removeListMusics = async(ids: string[]): Promise<void> => { + if (ids.length > 1) { + await removeDataMultiple(ids.map(id => { + // delete global.lx.listScrollPosition[id] + // delete global.lx.listSort[id] + return listPrefix + id + })) + } else { + await removeData(listPrefix + ids[0]) + } + // await saveData(listSortPrefix, global.lx.listSort) + // delaySaveListScrollPosition(global.lx.listScrollPosition) +} + + +export const getMusicUrl = async(musicInfo: LX.Music.MusicInfo, type: LX.Quality) => getData<string>(`${storageDataPrefix.musicUrl}${musicInfo.id}_${type}`).then((url) => url ?? '') +export const saveMusicUrl = async(musicInfo: LX.Music.MusicInfo, type: LX.Quality, url: string) => saveData(`${storageDataPrefix.musicUrl}${musicInfo.id}_${type}`, url) +export const clearMusicUrl = async() => { + let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.musicUrl)) + await removeDataMultiple(keys) +} + +export const getLyric = async(musicInfo: LX.Music.MusicInfo) => getData<LX.Music.LyricInfo>(`${storageDataPrefix.lyric}${musicInfo.id}`).then(lrcInfo => lrcInfo ?? { lyric: '' }) +export const saveLyric = async(musicInfo: LX.Music.MusicInfo, lyricInfo: LX.Music.LyricInfo) => saveData(`${storageDataPrefix.lyric}${musicInfo.id}`, lyricInfo) +export const clearLyric = async() => { + let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.lyric)) + await removeDataMultiple(keys) +} +export const saveEditedLyric = async(musicInfo: LX.Music.MusicInfo, lyricInfo: LX.Music.LyricInfo) => saveData(`${storageDataPrefix.lyric}${musicInfo.id}_edited`, lyricInfo) +export const clearEditedLyric = async() => { + let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.lyric) && key.endsWith('_edited')) + await removeDataMultiple(keys) +} +export const getPlayerLyric = async(musicInfo: LX.Music.MusicInfo): Promise<LX.Player.LyricInfo> => { + return getDataMultiple([ + `${storageDataPrefix.lyric}${musicInfo.id}`, + `${storageDataPrefix.lyric}${musicInfo.id}_edited`, + ]).then(([lrcInfo, lrcInfo_edited]) => { + const lyricInfo: LX.Music.LyricInfo = lrcInfo_edited[1] as LX.Music.LyricInfo | null ?? { + lyric: '', + } + let rawLyricInfo: LX.Music.LyricInfo = lrcInfo[1] as LX.Music.LyricInfo | null ?? { + lyric: '', + } + return lyricInfo.lyric ? { + ...lyricInfo, + rawlrcInfo: rawLyricInfo, + } : { + ...rawLyricInfo, + rawlrcInfo: rawLyricInfo, + } + }) +} + +export const getOtherSource = async(id: string) => getData<LX.Music.MusicInfoOnline[]>(`${storageDataPrefix.musicOtherSource}${id}`).then((url) => url ?? []) +export const saveOtherSource = async(id: string, sourceInfo: LX.Music.MusicInfoOnline[]) => saveData(`${storageDataPrefix.musicOtherSource}${id}`, sourceInfo) +export const clearOtherSource = async() => { + let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.musicOtherSource)) + await removeDataMultiple(keys) +} + +export const clearMusicUrlAndLyric = async() => { + let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.musicUrl) || key.startsWith(storageDataPrefix.lyric)) + await removeDataMultiple(keys) +} + +export const savePlayInfo = async(playInfo: LX.Player.SavedPlayInfo) => { + return saveData(playInfoStorageKey, playInfo) +} +// 获取上次关闭时的当前歌曲播放信息 +export const getPlayInfo = async() => { + return getData<LX.Player.SavedPlayInfo | null>(playInfoStorageKey) +} + +export const getSyncAuthKey = async(serverId: string) => { + const keys = await getData<Record<string, LX.Sync.KeyInfo>>(syncAuthKeyPrefix) + if (!keys) return null + return keys[serverId] ?? null +} +export const setSyncAuthKey = async(serverId: string, key: string) => { + let keys = await getData<Record<string, string>>(syncAuthKeyPrefix) ?? {} + keys[serverId] = key + await saveData(syncAuthKeyPrefix, keys) +} + +let syncHostInfo: { host: string, port: string } +export const getSyncHost = async() => { + if (syncHostInfo === undefined) { + syncHostInfo = await getData(syncHostPrefix) ?? { host: '', port: '23332' } + } + return { ...syncHostInfo } +} +export const setSyncHost = async({ host, port }: { host: string, port: string }) => { + // let hostInfo = await getData(syncHostPrefix) || {} + // hostInfo.host = host + // hostInfo.port = port + syncHostInfo.host = host + syncHostInfo.port = port + await saveData(syncHostPrefix, syncHostInfo) +} +let syncHostHistory: Array<{ host: string, port: string }> +export const getSyncHostHistory = async() => { + if (syncHostHistory === undefined) { + syncHostHistory = await getData(syncHostHistoryPrefix) ?? [] + } + return syncHostHistory +} +export const addSyncHostHistory = async(host: string, port: string) => { + let syncHostHistory = await getSyncHostHistory() + if (syncHostHistory.some(h => h.host == host && h.port == port)) return + syncHostHistory.unshift({ host, port }) + if (syncHostHistory.length > 20) syncHostHistory = syncHostHistory.slice(0, 20) // 最多存储20个 + await saveData(syncHostHistoryPrefix, syncHostHistory) +} +export const removeSyncHostHistory = async(index: number) => { + syncHostHistory.splice(index, 1) + await saveData(syncHostHistoryPrefix, syncHostHistory) +} + diff --git a/src/utils/env.js b/src/utils/env.js deleted file mode 100644 index 553f01e..0000000 --- a/src/utils/env.js +++ /dev/null @@ -1,5 +0,0 @@ -const isDev = process.env.NODE_ENV === 'development' - -export const debug = isDev && true -export const debugRequest = isDev && false -export const debugDownload = isDev && false diff --git a/src/utils/errorHandle.js b/src/utils/errorHandle.ts similarity index 64% rename from src/utils/errorHandle.js rename to src/utils/errorHandle.ts index 7576a2a..5d5773a 100644 --- a/src/utils/errorHandle.js +++ b/src/utils/errorHandle.ts @@ -1,14 +1,14 @@ import { Alert } from 'react-native' -import { exitApp } from '@/utils/common' +// import { exitApp } from '@/utils/common' import { setJSExceptionHandler, setNativeExceptionHandler } from 'react-native-exception-handler' import { log } from '@/utils/log' -const errorHandler = (e, isFatal) => { +const errorHandler = (e: Error, isFatal: boolean) => { if (isFatal) { Alert.alert( '💥Unexpected error occurred💥', ` -应用出bug了😭,已崩溃💥,以下是错误异常信息,请截图通过企鹅群或者GitHub反馈,现在应用将会关闭,请自行重新启动! +应用出bug了😭,以下是错误异常信息,请截图(并附上刚才你进行了什么操作)通过企鹅群或者GitHub反馈,现在应用可能会出现异常,若出现异常请尝试强制结束APP后重新启动! Error: ${isFatal ? 'Fatal:' : ''} ${e.name} ${e.message} @@ -16,7 +16,7 @@ ${isFatal ? 'Fatal:' : ''} ${e.name} ${e.message} [{ text: '关闭 (Close)', onPress: () => { - exitApp() + // exitApp() }, }], ) diff --git a/src/utils/fs.js b/src/utils/fs.ts similarity index 61% rename from src/utils/fs.js rename to src/utils/fs.ts index 3d0d6a2..ac4e492 100644 --- a/src/utils/fs.js +++ b/src/utils/fs.ts @@ -5,27 +5,27 @@ export const externalDirectoryPath = RNFS.ExternalDirectoryPath export const temporaryDirectoryPath = RNFS.TemporaryDirectoryPath export const externalStorageDirectoryPath = RNFS.ExternalStorageDirectoryPath -export const unlink = path => RNFS.unlink(path) +export const unlink = async(path: string) => RNFS.unlink(path) -export const readDir = path => RNFS.readDir(path) +export const readDir = async(path: string) => RNFS.readDir(path) -export const mkdir = path => RNFS.mkdir(path) +export const mkdir = async(path: string) => RNFS.mkdir(path) -export const stat = path => RNFS.stat(path) +export const stat = async(path: string) => RNFS.stat(path) -export const readFile = (path, encoding) => RNFS.readFile(path, encoding) +export const readFile = async(path: string, encoding = 'utf8') => RNFS.readFile(path, encoding) -export const copyFile = (fromPath, toPath) => RNFS.copyFile(fromPath, toPath) +export const copyFile = async(fromPath: string, toPath: string) => RNFS.copyFile(fromPath, toPath) -export const moveFile = (fromPath, toPath) => RNFS.moveFile(fromPath, toPath) +export const moveFile = async(fromPath: string, toPath: string) => RNFS.moveFile(fromPath, toPath) -export const existsFile = path => RNFS.exists(path) +export const existsFile = async(path: string) => RNFS.exists(path) -export const writeFile = (path, data, encoding = 'utf8') => RNFS.writeFile(path, data, encoding) +export const writeFile = async(path: string, data: string, encoding = 'utf8') => RNFS.writeFile(path, data, encoding) -export const appendFile = (path, data, encoding = 'utf8') => RNFS.appendFile(path, data, encoding) +export const appendFile = async(path: string, data: string, encoding = 'utf8') => RNFS.appendFile(path, data, encoding) -export const downloadFile = (url, path, options = {}) => { +export const downloadFile = (url: string, path: string, options: Omit<RNFS.DownloadFileOptions, 'fromUrl' | 'toFile'> = {}) => { if (!options.headers) { options.headers = { 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Mobile Safari/537.36', @@ -50,4 +50,4 @@ export const downloadFile = (url, path, options = {}) => { }) } -export const stopDownload = jobId => RNFS.stopDownload(jobId) +export const stopDownload = (jobId: number) => RNFS.stopDownload(jobId) diff --git a/src/utils/hooks/useLayout.js b/src/utils/hooks/useLayout.tsx similarity index 58% rename from src/utils/hooks/useLayout.js rename to src/utils/hooks/useLayout.tsx index 85c93f7..73c5aaa 100644 --- a/src/utils/hooks/useLayout.js +++ b/src/utils/hooks/useLayout.tsx @@ -1,4 +1,5 @@ import { useState, useCallback } from 'react' +import { type LayoutChangeEvent } from 'react-native' export default () => { const [layout, setLayout] = useState({ @@ -7,7 +8,7 @@ export default () => { width: 0, height: 0, }) - const onLayout = useCallback((e) => setLayout(e.nativeEvent.layout), []) + const onLayout = useCallback((e: LayoutChangeEvent) => { setLayout(e.nativeEvent.layout) }, []) return { onLayout, diff --git a/src/utils/index.js b/src/utils/index.js deleted file mode 100644 index 34dd5ba..0000000 --- a/src/utils/index.js +++ /dev/null @@ -1,161 +0,0 @@ - - -/** - * 获取两个数之间的随机整数,大于等于min,小于max - * @param {*} min - * @param {*} max - */ -export const getRandom = (min, max) => Math.floor(Math.random() * (max - min)) + min - - -export const sizeFormate = size => { - // https://gist.github.com/thomseddon/3511330 - if (!size) return '0 B' - const units = ['B', 'KB', 'MB', 'GB', 'TB'] - const number = Math.floor(Math.log(size) / Math.log(1024)) - return `${(size / Math.pow(1024, Math.floor(number))).toFixed(2)} ${units[number]}` -} - -/** - * 日期格式化 - * @param {*} date 时间 - * @param {String} format 时间格式,默认YYYY-MM-DD hh:mm:ss - */ -export const dateFormat = (date = new Date(), format = 'YYYY-MM-DD hh:mm:ss') => { - if (typeof date != 'object') date = new Date(date) - const munFix = (n) => n < 10 ? ('0' + n) : n - return format - .replace('YYYY', date.getFullYear()) - .replace('MM', munFix(date.getMonth() + 1)) - .replace('DD', munFix(date.getDate())) - .replace('hh', munFix(date.getHours())) - .replace('mm', munFix(date.getMinutes())) - .replace('ss', munFix(date.getSeconds())) -} - -/** - * 时间格式化 - */ -export const dateFormat2 = time => { - let differ = parseInt((Date.now() - time) / 1000) - if (differ < 60) { - return global.i18n.t('date_format_second', { num: differ }) - } else if (differ < 3600) { - return global.i18n.t('date_format_minute', { num: parseInt(differ / 60) }) - } else if (differ < 86400) { - return global.i18n.t('date_format_hour', { num: parseInt(differ / 3600) }) - } else { - return dateFormat(time) - } -} - -export const formatPlayTime = time => { - const m = parseInt(time / 60) - const s = parseInt(time % 60) - return m === 0 && s === 0 ? '--/--' : (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s) -} - -export const formatPlayTime2 = time => { - const m = parseInt(time / 60) - const s = parseInt(time % 60) - return (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s) -} - -export const b64DecodeUnicode = str => { - // Going backwards: from bytestream, to percent-encoding, to original string. - return Buffer.from(str, 'base64').toString() -} - -const encodeNames = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'", - ''': "'", -} -export const decodeName = (str = '') => str.replace(/(?:&|<|>|"|'|')/gm, s => encodeNames[s]) - -// https://stackoverflow.com/a/53387532 -export const compareVer = (currentVer, targetVer) => { - // treat non-numerical characters as lower version - // replacing them with a negative number based on charcode of each character - const fix = s => `.${s.toLowerCase().charCodeAt(0) - 2147483647}.` - - currentVer = ('' + currentVer).replace(/[^0-9.]/g, fix).split('.') - targetVer = ('' + targetVer).replace(/[^0-9.]/g, fix).split('.') - const c = Math.max(currentVer.length, targetVer.length) - for (let i = 0; i < c; i++) { - // convert to integer the most efficient way - currentVer[i] = ~~currentVer[i] - targetVer[i] = ~~targetVer[i] - if (currentVer[i] > targetVer[i]) return 1 - else if (currentVer[i] < targetVer[i]) return -1 - } - return 0 -} - -export const isObject = item => item && typeof item === 'object' && !Array.isArray(item) - -/** - * 对象深度合并 - * @param {} target 要合并源对象 - * @param {} source 要合并目标对象 - */ -export const objectDeepMerge = (target, source, mergedObj) => { - if (!mergedObj) { - mergedObj = new Set() - mergedObj.add(target) - } - const base = {} - Object.keys(source).forEach(item => { - if (isObject(source[item])) { - if (mergedObj.has(source[item])) return - if (!isObject(target[item])) target[item] = {} - mergedObj.add(source[item]) - objectDeepMerge(target[item], source[item], mergedObj) - return - } - base[item] = source[item] - }) - Object.assign(target, base) -} - -/** - * 生成节流函数 - * @param {*} fn - * @param {*} delay - */ -export const throttle = (fn, delay = 100) => { - let timer = null - let _args = null - return function(...args) { - _args = args - if (timer) return - timer = setTimeout(() => { - timer = null - fn.apply(this, _args) - }, delay) - } -} - -/** - * 生成防抖函数 - * @param {*} fn - * @param {*} delay - */ -export const debounce = (fn, delay = 100) => { - let timer = null - let _args = null - return function(...args) { - _args = args - if (timer) clearTimeout(timer) - timer = setTimeout(() => { - timer = null - fn.apply(this, _args) - }, delay) - } -} - -const fileNameRxp = /[\\/:*?#"<>|]/g -export const filterFileName = name => name.replace(fileNameRxp, '') diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..565e0dc --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,182 @@ +import { dateFormat } from './common' + +export { tranditionalize as langS2T } from '@/utils/simplify-chinese-main' + +export * from './common' + +// https://stackoverflow.com/a/53387532 +export function compareVer(currentVer: string, targetVer: string): -1 | 0 | 1 { + // treat non-numerical characters as lower version + // replacing them with a negative number based on charcode of each character + const fix = (s: string) => `.${s.toLowerCase().charCodeAt(0) - 2147483647}.` + + const currentVerArr: Array<string | number> = ('' + currentVer).replace(/[^0-9.]/g, fix).split('.') + const targetVerArr: Array<string | number> = ('' + targetVer).replace(/[^0-9.]/g, fix).split('.') + let c = Math.max(currentVerArr.length, targetVerArr.length) + for (let i = 0; i < c; i++) { + // convert to integer the most efficient way + currentVerArr[i] = ~~currentVerArr[i] + targetVerArr[i] = ~~targetVerArr[i] + if (currentVerArr[i] > targetVerArr[i]) return 1 + else if (currentVerArr[i] < targetVerArr[i]) return -1 + } + return 0 +} + + +export const toNewMusicInfo = (oldMusicInfo: any): LX.Music.MusicInfo => { + const meta: Record<string, any> = { + songId: oldMusicInfo.songmid, // 歌曲ID,mg源为copyrightId,local为文件路径 + albumName: oldMusicInfo.albumName, // 歌曲专辑名称 + picUrl: oldMusicInfo.img, // 歌曲图片链接 + } + + if (oldMusicInfo.source == 'local') { + meta.filePath = oldMusicInfo.filePath ?? oldMusicInfo.songmid ?? '' + meta.ext = oldMusicInfo.ext ?? /\.(\w+)$/.exec(meta.filePath)?.[1] ?? '' + } else { + meta.qualitys = oldMusicInfo.types + meta._qualitys = oldMusicInfo._types + meta.albumId = oldMusicInfo.albumId + if (meta._qualitys.flac32bit && !meta._qualitys.flac24bit) { + meta._qualitys.flac24bit = meta._qualitys.flac32bit + delete meta._qualitys.flac32bit + + meta.qualitys = (meta.qualitys as any[]).map(quality => { + if (quality.type == 'flac32bit') quality.type = 'flac24bit' + return quality + }) + } + + switch (oldMusicInfo.source) { + case 'kg': + meta.hash = oldMusicInfo.hash + break + case 'tx': + meta.strMediaMid = oldMusicInfo.strMediaMid + meta.albumMid = oldMusicInfo.albumMid + meta.id = oldMusicInfo.songId + break + case 'mg': + meta.copyrightId = oldMusicInfo.copyrightId + meta.lrcUrl = oldMusicInfo.lrcUrl + meta.mrcUrl = oldMusicInfo.mrcUrl + meta.trcUrl = oldMusicInfo.trcUrl + break + } + } + + return { + id: `${oldMusicInfo.source as string}_${oldMusicInfo.songmid as string}`, + name: oldMusicInfo.name, + singer: oldMusicInfo.singer, + source: oldMusicInfo.source, + interval: oldMusicInfo.interval, + meta: meta as LX.Music.MusicInfoOnline['meta'], + } +} + +export const toOldMusicInfo = (minfo: LX.Music.MusicInfo): any => { + const oInfo: Record<string, any> = { + name: minfo.name, + singer: minfo.singer, + source: minfo.source, + songmid: minfo.meta.songId, + interval: minfo.interval, + albumName: minfo.meta.albumName, + img: minfo.meta.picUrl ?? '', + typeUrl: {}, + } + if (minfo.source == 'local') { + oInfo.filePath = minfo.meta.filePath + oInfo.ext = minfo.meta.ext + oInfo.albumId = '' + oInfo.types = [] + oInfo._types = {} + } else { + oInfo.albumId = minfo.meta.albumId + oInfo.types = minfo.meta.qualitys + oInfo._types = minfo.meta._qualitys + + switch (minfo.source) { + case 'kg': + oInfo.hash = minfo.meta.hash + break + case 'tx': + oInfo.strMediaMid = minfo.meta.strMediaMid + oInfo.albumMid = minfo.meta.albumMid + oInfo.songId = minfo.meta.id + break + case 'mg': + oInfo.copyrightId = minfo.meta.copyrightId + oInfo.lrcUrl = minfo.meta.lrcUrl + oInfo.mrcUrl = minfo.meta.mrcUrl + oInfo.trcUrl = minfo.meta.trcUrl + break + } + } + + return oInfo +} + +/** + * 修复2.0.0-dev.8之前的新列表数据音质 + * @param musicInfo + */ +export const fixNewMusicInfoQuality = (musicInfo: LX.Music.MusicInfo) => { + if (musicInfo.source == 'local') return musicInfo + + // @ts-expect-error + if (musicInfo.meta._qualitys.flac32bit && !musicInfo.meta._qualitys.flac24bit) { + // @ts-expect-error + musicInfo.meta._qualitys.flac24bit = musicInfo.meta._qualitys.flac32bit + // @ts-expect-error + delete musicInfo.meta._qualitys.flac32bit + + musicInfo.meta.qualitys = musicInfo.meta.qualitys.map(quality => { + // @ts-expect-error + if (quality.type == 'flac32bit') quality.type = 'flac24bit' + return quality + }) + } + + return musicInfo +} + + +export const filterMusicList = <T extends LX.Music.MusicInfo>(list: T[]): T[] => { + const ids = new Set<string>() + return list.filter(s => { + if (!s.id || ids.has(s.id) || !s.name) return false + if (s.singer == null) s.singer = '' + ids.add(s.id) + return true + }) +} + + +export const deduplicationList = <T extends LX.Music.MusicInfo>(list: T[]): T[] => { + const ids = new Set<string>() + return list.filter(s => { + if (ids.has(s.id)) return false + ids.add(s.id) + return true + }) +} + + +/** + * 时间格式化 + */ +export const dateFormat2 = (time: number): string => { + let differ = Math.trunc((Date.now() - time) / 1000) + if (differ < 60) { + return global.i18n.t('date_format_second', { num: differ }) + } else if (differ < 3600) { + return global.i18n.t('date_format_minute', { num: Math.trunc(differ / 60) }) + } else if (differ < 86400) { + return global.i18n.t('date_format_hour', { num: Math.trunc(differ / 3600) }) + } else { + return dateFormat(time) + } +} diff --git a/src/utils/listData.js b/src/utils/listData.js deleted file mode 100644 index 521d9c3..0000000 --- a/src/utils/listData.js +++ /dev/null @@ -1,95 +0,0 @@ - -export const toNewMusicInfo = (oldMusicInfo) => { - const meta = { - songId: oldMusicInfo.songmid, // 歌曲ID,mg源为copyrightId,local为文件路径 - albumName: oldMusicInfo.albumName, // 歌曲专辑名称 - picUrl: oldMusicInfo.img, // 歌曲图片链接 - } - - if (oldMusicInfo.source == 'local') { - meta.filePath = oldMusicInfo.filePath ?? oldMusicInfo.songmid ?? '' - meta.ext = oldMusicInfo.ext ?? /\.(\w+)$/.exec(meta.filePath)?.[1] ?? '' - } else { - meta.qualitys = oldMusicInfo.types - meta._qualitys = oldMusicInfo._types - meta.albumId = oldMusicInfo.albumId - if (meta._qualitys.flac32bit && !meta._qualitys.flac24bit) { - meta._qualitys.flac24bit = meta._qualitys.flac32bit - delete meta._qualitys.flac32bit - - meta.qualitys = meta.qualitys.map(quality => { - if (quality.type == 'flac32bit') quality.type = 'flac24bit' - return quality - }) - } - - switch (oldMusicInfo.source) { - case 'kg': - meta.hash = oldMusicInfo.hash - break - case 'tx': - meta.strMediaMid = oldMusicInfo.strMediaMid - meta.albumMid = oldMusicInfo.albumMid - meta.id = oldMusicInfo.songId - break - case 'mg': - meta.copyrightId = oldMusicInfo.copyrightId - meta.lrcUrl = oldMusicInfo.lrcUrl - meta.mrcUrl = oldMusicInfo.mrcUrl - meta.trcUrl = oldMusicInfo.trcUrl - break - } - } - - return { - id: `${oldMusicInfo.source}_${oldMusicInfo.songmid}`, - name: oldMusicInfo.name, - singer: oldMusicInfo.singer, - source: oldMusicInfo.source, - interval: oldMusicInfo.interval, - meta, - } -} - -export const toOldMusicInfo = (minfo) => { - const oInfo = { - name: minfo.name, - singer: minfo.singer, - source: minfo.source, - songmid: minfo.meta.songId, - interval: minfo.interval, - albumName: minfo.meta.albumName, - img: minfo.meta.picUrl ?? '', - typeUrl: {}, - } - if (minfo.source == 'local') { - oInfo.filePath = minfo.meta.filePath - oInfo.ext = minfo.meta.ext - oInfo.albumId = '' - oInfo.types = [] - oInfo._types = {} - } else { - oInfo.albumId = minfo.meta.albumId - oInfo.types = minfo.meta.qualitys - oInfo._types = minfo.meta._qualitys - - switch (minfo.source) { - case 'kg': - oInfo.hash = minfo.meta.hash - break - case 'tx': - oInfo.strMediaMid = minfo.meta.strMediaMid - oInfo.albumMid = minfo.meta.albumMid - oInfo.songId = minfo.meta.id - break - case 'mg': - oInfo.copyrightId = minfo.meta.copyrightId - oInfo.lrcUrl = minfo.meta.lrcUrl - oInfo.mrcUrl = minfo.meta.mrcUrl - oInfo.trcUrl = minfo.meta.trcUrl - break - } - } - - return oInfo -} diff --git a/src/utils/listManage.ts b/src/utils/listManage.ts new file mode 100644 index 0000000..0314013 --- /dev/null +++ b/src/utils/listManage.ts @@ -0,0 +1,329 @@ +import { + getUserLists as getUserListsFromStore, + getListMusics as getListMusicsFromStore, + // saveListMusics as saveListMusicsFromStore, + // removeListMusics as removeListMusicsFromStore, + overwriteListPosition, + overwriteListUpdateInfo, + removeListPosition, + removeListUpdateInfo, +} from '@/utils/data' +import { arrPush, arrPushByPosition, arrUnshift, freezeListItem } from '@/utils/common' +import { LIST_IDS } from '@/config/constant' + +export const userLists: LX.List.UserListInfo[] = [] +export const allMusicList = new Map<string, LX.Music.MusicInfo[]>() + +export const setUserLists = (lists: LX.List.UserListInfo[]) => { + userLists.splice(0, userLists.length, ...lists) + return userLists +} + +export const setMusicList = (listId: string, musicList: LX.Music.MusicInfo[]): LX.Music.MusicInfo[] => { + const list = freezeListItem(musicList) + allMusicList.set(listId, list) + return list +} +export const removeMusicList = (id: string) => { + allMusicList.delete(id) +} + + +const createUserList = ({ + name, + id, + source, + sourceListId, + locationUpdateTime, +}: LX.List.UserListInfo, position: number) => { + if (position < 0 || position >= userLists.length) { + userLists.push({ + name, + id, + source, + sourceListId, + locationUpdateTime, + }) + } else { + userLists.splice(position, 0, { + name, + id, + source, + sourceListId, + locationUpdateTime, + }) + } +} + +const updateList = ({ + name, + id, + source, + sourceListId, + // meta, + locationUpdateTime, +}: LX.List.UserListInfo & { meta?: { id?: string } }) => { + let index + switch (id) { + case LIST_IDS.DEFAULT: + case LIST_IDS.LOVE: + break + case LIST_IDS.TEMP: + // tempList.meta = meta ?? {} + // break + default: + index = userLists.findIndex(l => l.id == id) + if (index < 0) return + userLists.splice(index, 1, { ...userLists[index], name, source, sourceListId, locationUpdateTime }) + break + } +} + +const removeUserList = (id: string) => { + const index = userLists.findIndex(l => l.id == id) + if (index < 0) return + userLists.splice(index, 1) + // removeMusicList(id) +} + +const overwriteUserList = (lists: LX.List.UserListInfo[]) => { + userLists.splice(0, userLists.length, ...lists) +} + + +// const sendMyListUpdateEvent = (ids: string[]) => { +// window.app_event.myListUpdate(ids) +// } + +/** + * 获取用户列表 + * @returns 所有用户列表 + */ +export const getUserLists = async() => { + const lists = await getUserListsFromStore() + return setUserLists(lists) +} + + +export const listDataOverwrite = ({ defaultList, loveList, userList, tempList }: MakeOptional<LX.List.ListDataFull, 'tempList'>): string[] => { + const updatedListIds: string[] = [] + const newUserIds: string[] = [] + const newUserListInfos = userList.map(({ list, ...listInfo }) => { + if (allMusicList.has(listInfo.id)) updatedListIds.push(listInfo.id) + newUserIds.push(listInfo.id) + setMusicList(listInfo.id, list) + return listInfo + }) + for (const list of userLists) { + if (!allMusicList.has(list.id) || newUserIds.includes(list.id)) continue + removeMusicList(list.id) + updatedListIds.push(list.id) + } + overwriteUserList(newUserListInfos) + + if (allMusicList.has(LIST_IDS.DEFAULT)) updatedListIds.push(LIST_IDS.DEFAULT) + setMusicList(LIST_IDS.DEFAULT, defaultList) + setMusicList(LIST_IDS.LOVE, loveList) + updatedListIds.push(LIST_IDS.LOVE) + + if (tempList && allMusicList.has(LIST_IDS.TEMP)) { + setMusicList(LIST_IDS.TEMP, tempList) + updatedListIds.push(LIST_IDS.TEMP) + } + const newIds = [LIST_IDS.DEFAULT, LIST_IDS.LOVE, ...userList.map(l => l.id)] + if (tempList) newIds.push(LIST_IDS.TEMP) + void overwriteListPosition(newIds) + void overwriteListUpdateInfo(newIds) + return updatedListIds +} + +export const userListCreate = ({ name, id, source, sourceListId, position, locationUpdateTime }: { + name: string + id: string + source?: LX.OnlineSource + sourceListId?: string + position: number + locationUpdateTime: number | null +}) => { + if (userLists.some(item => item.id == id)) return + const newList: LX.List.UserListInfo = { + name, + id, + source, + sourceListId, + locationUpdateTime, + } + createUserList(newList, position) +} + +export const userListsRemove = (ids: string[]) => { + const changedIds = [] + for (const id of ids) { + removeUserList(id) + if (!allMusicList.has(id)) continue + removeMusicList(id) + void removeListPosition(id) + void removeListUpdateInfo(id) + changedIds.push(id) + } + + return changedIds +} + +export const userListsUpdate = (listInfos: LX.List.UserListInfo[]) => { + for (const info of listInfos) { + updateList(info) + } +} + +export const userListsUpdatePosition = (position: number, ids: string[]) => { + const newUserLists = [...userLists] + + // console.log(position, ids) + + const updateLists: LX.List.UserListInfo[] = [] + + // const targetItem = list[position] + const map = new Map<string, LX.List.UserListInfo>() + for (const item of newUserLists) map.set(item.id, item) + for (const id of ids) { + const listInfo = map.get(id) as LX.List.UserListInfo + listInfo.locationUpdateTime = Date.now() + updateLists.push(listInfo) + map.delete(id) + } + newUserLists.splice(0, newUserLists.length, ...newUserLists.filter(mInfo => map.has(mInfo.id))) + newUserLists.splice(Math.min(position, newUserLists.length), 0, ...updateLists) + + setUserLists(newUserLists) +} + +export const getListMusicSync = (id: string | null) => { + return id ? allMusicList.get(id) ?? [] : [] +} + +/** + * 获取列表内的歌曲 + * @param listId + */ +export const getListMusics = async(listId: string): Promise<LX.Music.MusicInfo[]> => { + if (!listId) return [] + if (allMusicList.has(listId)) return allMusicList.get(listId) as LX.Music.MusicInfo[] + const list = await getListMusicsFromStore(listId) + return setMusicList(listId, list) +} + +export const listMusicOverwrite = async(listId: string, musicInfos: LX.Music.MusicInfo[]): Promise<string[]> => { + setMusicList(listId, musicInfos) + return [listId] +} + +export const listMusicAdd = async(id: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType): Promise<string[]> => { + const targetList = await getListMusics(id) + + const listSet = new Set<string>() + for (const item of targetList) listSet.add(item.id) + musicInfos = musicInfos.filter(item => { + if (listSet.has(item.id)) return false + Object.freeze(item) + listSet.add(item.id) + return true + }) + switch (addMusicLocationType) { + case 'top': + arrUnshift(targetList, musicInfos) + break + case 'bottom': + default: + arrPush(targetList, musicInfos) + break + } + + return [id] +} + +export const listMusicRemove = async(listId: string, ids: string[]): Promise<string[]> => { + let targetList = await getListMusics(listId) + + const listSet = new Set<string>() + for (const item of targetList) listSet.add(item.id) + for (const id of ids) listSet.delete(id) + const newList = targetList.filter(mInfo => listSet.has(mInfo.id)) + targetList.splice(0, targetList.length) + arrPush(targetList, newList) + + return [listId] +} + +export const listMusicMove = async(fromId: string, toId: string, musicInfos: LX.Music.MusicInfo[], addMusicLocationType: LX.AddMusicLocationType): Promise<string[]> => { + return [ + ...await listMusicRemove(fromId, musicInfos.map(musicInfo => musicInfo.id)), + ...await listMusicAdd(toId, musicInfos, addMusicLocationType), + ] +} + +export const listMusicUpdateInfo = async(musicInfos: LX.List.ListActionMusicUpdate): Promise<string[]> => { + const updateListIds = new Set<string>() + for (const { id, musicInfo } of musicInfos) { + const targetList = await getListMusics(id) + if (!targetList.length) continue + const index = targetList.findIndex(l => l.id == musicInfo.id) + if (index < 0) continue + const info: LX.Music.MusicInfo = { ...targetList[index] } + Object.assign(info, { + name: musicInfo.name, + singer: musicInfo.singer, + source: musicInfo.source, + interval: musicInfo.interval, + meta: musicInfo.meta, + }) + targetList.splice(index, 1, Object.freeze(info)) + updateListIds.add(id) + } + return Array.from(updateListIds) +} + + +export const listMusicUpdatePosition = async(listId: string, position: number, ids: string[]): Promise<string[]> => { + let targetList = await getListMusics(listId) + + // const infos = Array(ids.length) + // for (let i = targetList.length; i--;) { + // const item = targetList[i] + // const index = ids.indexOf(item.id) + // if (index < 0) continue + // infos.splice(index, 1, targetList.splice(i, 1)[0]) + // } + // targetList.splice(Math.min(position, targetList.length - 1), 0, ...infos) + + // console.time('ts') + + // const list = createSortedList(targetList, position, ids) + const infos: LX.Music.MusicInfo[] = [] + const map = new Map<string, LX.Music.MusicInfo>() + for (const item of targetList) map.set(item.id, item) + for (const id of ids) { + infos.push(map.get(id) as LX.Music.MusicInfo) + map.delete(id) + } + const list = targetList.filter(mInfo => map.has(mInfo.id)) + arrPushByPosition(list, infos, Math.min(position, list.length)) + + targetList.splice(0, targetList.length) + arrPush(targetList, list) + + // console.timeEnd('ts') + return [listId] +} + + +export const listMusicClear = async(ids: string[]): Promise<string[]> => { + const changedIds: string[] = [] + for (const id of ids) { + const list = await getListMusics(id) + if (!list.length) continue + setMusicList(id, []) + changedIds.push(id) + } + return changedIds +} diff --git a/src/utils/log.js b/src/utils/log.ts similarity index 85% rename from src/utils/log.js rename to src/utils/log.ts index 7e3834d..f55ec1c 100644 --- a/src/utils/log.js +++ b/src/utils/log.ts @@ -4,16 +4,16 @@ import { temporaryDirectoryPath, existsFile, writeFile, appendFile, readFile, un const logPath = temporaryDirectoryPath + '/error.log' const logTools = { - tempLog: [], - writeLog(msg) { + tempLog: [] as Array<{ time: string, type: 'LOG' | 'WARN' | 'ERROR', text: string }> | null, + writeLog(msg: string) { console.log(msg) - appendFile(logPath, '\n----lx log----\n' + msg) + void appendFile(logPath, '\n----lx log----\n' + msg) }, async initLogFile() { try { let isExists = await existsFile(logPath) if (!isExists) await writeFile(logPath, '') - if (this.tempLog.length) this.writeLog(this.tempLog.map(m => `${m.time} ${m.type} ${m.text}`).join('\n----lx log----\n')) + if (this.tempLog?.length) this.writeLog(this.tempLog.map(m => `${m.time} ${m.type} ${m.text}`).join('\n----lx log----\n')) this.tempLog = null } catch (err) { console.log(err) @@ -21,20 +21,20 @@ const logTools = { }, } -export const init = () => { +export const init = async() => { return logTools.initLogFile() } -export const getLogs = () => { +export const getLogs = async() => { return readFile(logPath) } -export const clearLogs = () => { - return unlink(logPath).then(() => writeFile(logPath, '')) +export const clearLogs = async() => { + return unlink(logPath).then(async() => writeFile(logPath, '')) } export const log = { - info(...msgs) { + info(...msgs: any[]) { // console.info(...msgs) const msg = msgs.map(m => typeof m == 'string' ? m : JSON.stringify(m)).join(' ') if (msg.startsWith('%c')) return @@ -43,7 +43,7 @@ export const log = { logTools.tempLog.push({ type: 'LOG', time, text: msg }) } else logTools.writeLog(`${time} LOG ${msg}`) }, - warn(...msgs) { + warn(...msgs: any[]) { // console.warn(...msgs) const msg = msgs.map(m => typeof m == 'string' ? m : JSON.stringify(m)).join(' ') const time = new Date().toLocaleString() @@ -51,7 +51,7 @@ export const log = { logTools.tempLog.push({ type: 'WARN', time, text: msg }) } else logTools.writeLog(`${time} WARN ${msg}`) }, - error(...msgs) { + error(...msgs: any[]) { // console.error...(msgs) const msg = msgs.map(m => typeof m == 'string' ? m : JSON.stringify(m)).join(' ') const time = new Date().toLocaleString() diff --git a/src/utils/lyric.js b/src/utils/lyric.js deleted file mode 100644 index aadbed7..0000000 --- a/src/utils/lyric.js +++ /dev/null @@ -1,76 +0,0 @@ -import { - play as lrcPlay, - setLyric as lrcSetLyric, - pause as lrcPause, - toggleTranslation as lrcToggleTranslation, - toggleRoma as lrcToggleRoma, - init as lrcInit, -} from '@/plugins/lyric' -import { - play as lrcdPlay, - setLyric as lrcdSetLyric, - pause as lrcdPause, - toggleTranslation as lrcdToggleTranslation, - toggleRoma as lrcdToggleRoma, -} from '@/utils/lyricDesktop' - -/** - * init lyric - * @returns {Promise} - */ -export const init = () => { - return lrcInit() -} - -/** - * set lyric - * @param {String} lyric lyric str - * @param {String} translation lyric translation - */ -export const setLyric = (lyric, translation = '', romalrc = '') => { - lrcdSetLyric(lyric, translation, romalrc) - lrcSetLyric(lyric, translation, romalrc) -} - -/** - * play lyric - * @param {Number} time play time - */ -export const play = time => { - lrcPlay(time) - lrcdPlay(time) -} - -/** - * pause lyric - */ -export const pause = () => { - lrcPause() - lrcdPause() -} - -/** - * stop lyric - */ -export const stop = () => { - setLyric('') -} - -/** - * toggle show translation - * @param {Boolean} isShowTranslation is show translation - */ -export const toggleTranslation = isShowTranslation => { - lrcToggleTranslation(isShowTranslation) - lrcdToggleTranslation(isShowTranslation) -} - -/** - * toggle show roma lyric - * @param {Boolean} isShowLyricRoma is show roma lyric - */ -export const toggleRoma = isShowLyricRoma => { - lrcToggleRoma(isShowLyricRoma) - lrcdToggleRoma(isShowLyricRoma) -} - diff --git a/src/utils/lyricDesktop.js b/src/utils/lyricDesktop.js deleted file mode 100644 index b11ec1a..0000000 --- a/src/utils/lyricDesktop.js +++ /dev/null @@ -1,231 +0,0 @@ -import { NativeModules, NativeEventEmitter } from 'react-native' - -const { LyricModule } = NativeModules - -let isShowLyric = false - -export const themes = [ - { id: 'green', value: '#07c556' }, - { id: 'yellow', value: '#fffa12' }, - { id: 'blue', value: '#19b5fe' }, - { id: 'red', value: '#ff1222' }, - { id: 'pink', value: '#f1828d' }, - { id: 'purple', value: '#c851d4' }, - { id: 'orange', value: '#ffad12' }, - { id: 'grey', value: '#bdc3c7' }, - { id: 'black', value: '#333333' }, - { id: 'white', value: '#ffffff' }, -] - -export const textPositionX = [ - { id: 'left', value: 'LEFT' }, - { id: 'center', value: 'CENTER' }, - { id: 'right', value: 'RIGHT' }, -] -export const textPositionY = [ - { id: 'top', value: 'TOP' }, - { id: 'center', value: 'CENTER' }, - { id: 'bottom', value: 'BOTTOM' }, -] - -const getThemeColor = themeId => (themes.find(t => t.id == themeId) || themes[0]).value -const getTextPositionX = x => (textPositionX.find(t => t.id == x) || textPositionX[0]).value -const getTextPositionY = y => (textPositionY.find(t => t.id == y) || textPositionY[0]).value -const getAlpha = num => parseInt(num) / 100 -const getTextSize = num => parseInt(num) / 10 - - -/** - * show lyric - * @param {Number} isLock is lock lyric window - * @returns {Promise} Promise - */ -export const showLyric = ({ - isShowToggleAnima, - isSingleLine, - width, - maxLineNum, - isLock, - themeId, - opacity, - textSize, - positionX, - positionY, - textPositionX, - textPositionY, -}) => { - if (isShowLyric) return Promise.resolve() - return LyricModule.showLyric({ - isSingleLine, - isShowToggleAnima, - isLock, - themeColor: getThemeColor(themeId), - alpha: getAlpha(opacity), - textSize: getTextSize(textSize), - lyricViewX: positionX, - lyricViewY: positionY, - textX: getTextPositionX(textPositionX), - textY: getTextPositionY(textPositionY), - width, - maxLineNum, - }).then(() => { - isShowLyric = true - }) -} - -/** - * hide lyric - * @returns {Promise} Promise - */ -export const hideLyric = () => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.hideLyric().then(() => { - isShowLyric = false - }) -} - - -/** - * play lyric - * @param {Number} time play time - * @returns {Promise} Promise - */ -export const play = time => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.play(time) -} - -/** - * pause lyric - * @returns {Promise} Promise - */ -export const pause = () => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.pause() -} - -/** - * set lyric - * @param {String} lyric lyric str - * @param {String} translation lyric translation - * @returns {Promise} Promise - */ -export const setLyric = (lyric, translation, romalrc) => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setLyric(lyric, translation || '', romalrc || '') -} - -/** - * toggle show translation - * @param {Boolean} isShowTranslation is show translation - * @returns {Promise} Promise - */ -export const toggleTranslation = isShowTranslation => { - // if (!isShowLyric) return Promise.resolve() - return LyricModule.toggleTranslation(isShowTranslation) -} - -/** - * toggle show roma lyric - * @param {Boolean} isShowRoma is show roma lyric - * @returns {Promise} Promise - */ -export const toggleRoma = isShowRoma => { - // if (!isShowLyric) return Promise.resolve() - return LyricModule.toggleRoma(isShowRoma) -} - -/** - * toggle is lock lyric window - * @param {Boolean} isLock is lock lyric window - * @returns {Promise} Promise - */ -export const toggleLock = isLock => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.toggleLock(isLock) -} - -/** - * set theme - * @param {*} themeId theme id - * @returns {Promise} Promise - */ -export const setTheme = themeId => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setColor(getThemeColor(themeId)) -} - -/** - * set text alpha - * @param {*} alpha text alpha - * @returns {Promise} Promise - */ -export const setAlpha = alpha => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setAlpha(getAlpha(alpha)) -} - -/** - * set text size - * @param {*} size text size - * @returns {Promise} Promise - */ -export const setTextSize = size => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setTextSize(getTextSize(size)) -} - -export const setShowToggleAnima = isShowToggleAnima => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setShowToggleAnima(isShowToggleAnima) -} - -export const setSingleLine = isSingleLine => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setSingleLine(isSingleLine) -} - -export const setPosition = (x, y) => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setPosition(x, y) -} - -export const setMaxLineNum = maxLineNum => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setMaxLineNum(maxLineNum) -} - -export const setWidth = width => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setWidth(width) -} - -export const fixViewPosition = () => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.fixViewPosition() -} - -export const setLyricTextPosition = (textX, textY) => { - if (!isShowLyric) return Promise.resolve() - return LyricModule.setLyricTextPosition(getTextPositionX(textX), getTextPositionY(textY)) -} - -export const checkOverlayPermission = () => { - return LyricModule.checkOverlayPermission() -} - -export const openOverlayPermissionActivity = () => { - return LyricModule.openOverlayPermissionActivity() -} - -export const onPositionChange = callback => { - const eventEmitter = new NativeEventEmitter(LyricModule) - const eventListener = eventEmitter.addListener('set-position', event => { - callback(event) - }) - - return () => { - eventListener.remove() - } -} - diff --git a/src/utils/message.js b/src/utils/message.ts similarity index 97% rename from src/utils/message.js rename to src/utils/message.ts index fb5accd..f1d15b8 100644 --- a/src/utils/message.js +++ b/src/utils/message.ts @@ -5,4 +5,4 @@ export const requestMsg = { // unachievable: '哦No😱...接口无法访问了!已帮你切换到临时接口,重试下看能不能播放吧~', notConnectNetwork: '无法连接到服务器', cancelRequest: '取消http请求', -} +} as const diff --git a/src/utils/music/api-source-info.js b/src/utils/musicSdk/api-source-info.js similarity index 100% rename from src/utils/music/api-source-info.js rename to src/utils/musicSdk/api-source-info.js diff --git a/src/utils/music/api-source.js b/src/utils/musicSdk/api-source.js similarity index 90% rename from src/utils/music/api-source.js rename to src/utils/musicSdk/api-source.js index b783367..969b411 100644 --- a/src/utils/music/api-source.js +++ b/src/utils/musicSdk/api-source.js @@ -13,6 +13,9 @@ import direct_api_tx from './tx/api-direct' import direct_api_wy from './wy/api-direct' import direct_api_mg from './mg/api-direct' +import settingState from '@/store/setting/state' + + const apiList = { temp_api_kw, // test_api_bd: require('./bd/api-test'), @@ -41,7 +44,7 @@ for (const api of apiSourceInfo) { // } } -const getAPI = source => apiList[`${global.globalObj.apiSource}_api_${source}`] +const getAPI = source => apiList[`${settingState.setting['common.apiSource']}_api_${source}`] const apis = source => { const api = getAPI(source) diff --git a/src/utils/music/bd/api-test.js b/src/utils/musicSdk/bd/api-test.js similarity index 100% rename from src/utils/music/bd/api-test.js rename to src/utils/musicSdk/bd/api-test.js diff --git a/src/utils/music/bd/hotSearch.js b/src/utils/musicSdk/bd/hotSearch.js similarity index 100% rename from src/utils/music/bd/hotSearch.js rename to src/utils/musicSdk/bd/hotSearch.js diff --git a/src/utils/music/bd/index.js b/src/utils/musicSdk/bd/index.js similarity index 100% rename from src/utils/music/bd/index.js rename to src/utils/musicSdk/bd/index.js diff --git a/src/utils/music/bd/leaderboard.js b/src/utils/musicSdk/bd/leaderboard.js similarity index 100% rename from src/utils/music/bd/leaderboard.js rename to src/utils/musicSdk/bd/leaderboard.js diff --git a/src/utils/music/bd/musicInfo.js b/src/utils/musicSdk/bd/musicInfo.js similarity index 100% rename from src/utils/music/bd/musicInfo.js rename to src/utils/musicSdk/bd/musicInfo.js diff --git a/src/utils/music/bd/musicSearch.js b/src/utils/musicSdk/bd/musicSearch.js similarity index 100% rename from src/utils/music/bd/musicSearch.js rename to src/utils/musicSdk/bd/musicSearch.js diff --git a/src/utils/music/bd/songList.js b/src/utils/musicSdk/bd/songList.js similarity index 100% rename from src/utils/music/bd/songList.js rename to src/utils/musicSdk/bd/songList.js diff --git a/src/utils/music/index.js b/src/utils/musicSdk/index.js similarity index 100% rename from src/utils/music/index.js rename to src/utils/musicSdk/index.js diff --git a/src/utils/music/kg/api-direct.js b/src/utils/musicSdk/kg/api-direct.js similarity index 100% rename from src/utils/music/kg/api-direct.js rename to src/utils/musicSdk/kg/api-direct.js diff --git a/src/utils/music/kg/api-test.js b/src/utils/musicSdk/kg/api-test.js similarity index 100% rename from src/utils/music/kg/api-test.js rename to src/utils/musicSdk/kg/api-test.js diff --git a/src/utils/music/kg/comment.js b/src/utils/musicSdk/kg/comment.js similarity index 89% rename from src/utils/music/kg/comment.js rename to src/utils/musicSdk/kg/comment.js index 17f9928..a2178e0 100644 --- a/src/utils/music/kg/comment.js +++ b/src/utils/musicSdk/kg/comment.js @@ -1,5 +1,5 @@ import { httpFetch } from '../../request' -import { decodeName, dateFormat2 } from '../../' +import { decodeName, dateFormat2 } from '../../index' export default { _requestObj: null, @@ -7,7 +7,7 @@ export default { async getComment({ hash }, page = 1, limit = 20) { if (this._requestObj) this._requestObj.cancelHttp() - const _requestObj = httpFetch(`http://comment.service.kugou.com/index.php?r=commentsv2/getCommentWithLike&code=fc4be23b4e972707f36b8a828a93ba8a&extdata=${hash}&p=${page}&pagesize=${limit}&ver=1.01&clientver=8373&appid=1001&kugouid=687373022`, { + const _requestObj = httpFetch(`http://comment.service.kugou.com/index.php?r=commentsv2/getCommentWithLike&code=fc4be23b4e972707f36b8a828a93ba8a&extdata=${hash}&p=${page}&pagesize=${limit}&ver=1.01&clientver=8373&appid=1001&kugouid=687373022&need_show_image=1`, { headers: { 'User-Agent': 'Android712-AndroidPhone-8983-18-0-COMMENT-wifi', }, @@ -21,7 +21,7 @@ export default { // console.log(songmid) if (this._requestObj2) this._requestObj2.cancelHttp() - const _requestObj2 = httpFetch(`http://comment.service.kugou.com/index.php?r=commentsv2/getCommentWithLike&code=fc4be23b4e972707f36b8a828a93ba8a&extdata=${hash}&p=${page}&pagesize=${limit}&ver=1.01&clientver=8373&appid=1001&kugouid=687373022`, { + const _requestObj2 = httpFetch(`http://comment.service.kugou.com/index.php?r=commentsv2/getCommentWithLike&code=fc4be23b4e972707f36b8a828a93ba8a&extdata=${hash}&p=${page}&pagesize=${limit}&ver=1.01&clientver=8373&appid=1001&kugouid=687373022&need_show_image=1`, { headers: { 'User-Agent': 'Android712-AndroidPhone-8983-18-0-COMMENT-wifi', }, @@ -39,7 +39,7 @@ export default { ? audioId.split('_')[0] : songmid - const _requestObj2 = httpFetch(`http://comment.service.kugou.com/index.php?r=commentsv2/getReplyWithLike&code=fc4be23b4e972707f36b8a828a93ba8a&p=${page}&pagesize=${limit}&ver=1.01&clientver=8373&kugouid=687373022&appid=1001&childrenid=${songmid}&tid=${replyId}`, { + const _requestObj2 = httpFetch(`http://comment.service.kugou.com/index.php?r=commentsv2/getReplyWithLike&code=fc4be23b4e972707f36b8a828a93ba8a&p=${page}&pagesize=${limit}&ver=1.01&clientver=8373&kugouid=687373022&need_show_image=1&appid=1001&childrenid=${songmid}&tid=${replyId}`, { headers: { 'User-Agent': 'Android712-AndroidPhone-8983-18-0-COMMENT-wifi', }, @@ -54,6 +54,8 @@ export default { let data = { id: item.id, text: decodeName(item.content || '').split('\n'), + images: item.images ? item.images.map(i => i.url) : [], + location: item.location, time: item.addtime, timeStr: dateFormat2(new Date(item.addtime).getTime()), userName: item.user_name, diff --git a/src/utils/music/kg/hotSearch.js b/src/utils/musicSdk/kg/hotSearch.js similarity index 98% rename from src/utils/music/kg/hotSearch.js rename to src/utils/musicSdk/kg/hotSearch.js index 4e0e244..0496c0e 100644 --- a/src/utils/music/kg/hotSearch.js +++ b/src/utils/musicSdk/kg/hotSearch.js @@ -9,6 +9,7 @@ export default { const _requestObj = httpFetch('http://gateway.kugou.com/api/v3/search/hot_tab?signature=ee44edb9d7155821412d220bcaf509dd&appid=1005&clientver=10026&plat=0', { method: 'get', + cache: null, headers: { dfid: '1ssiv93oVqMp27cirf2CvoF1', mid: '156798703528610303473757548878786007104', diff --git a/src/utils/music/kg/index.js b/src/utils/musicSdk/kg/index.js similarity index 100% rename from src/utils/music/kg/index.js rename to src/utils/musicSdk/kg/index.js diff --git a/src/utils/music/kg/leaderboard.js b/src/utils/musicSdk/kg/leaderboard.js similarity index 100% rename from src/utils/music/kg/leaderboard.js rename to src/utils/musicSdk/kg/leaderboard.js diff --git a/src/utils/music/kg/lyric.js b/src/utils/musicSdk/kg/lyric.js similarity index 100% rename from src/utils/music/kg/lyric.js rename to src/utils/musicSdk/kg/lyric.js diff --git a/src/utils/music/kg/musicSearch.js b/src/utils/musicSdk/kg/musicSearch.js similarity index 98% rename from src/utils/music/kg/musicSearch.js rename to src/utils/musicSdk/kg/musicSearch.js index 20c59a4..b9357cb 100644 --- a/src/utils/music/kg/musicSearch.js +++ b/src/utils/musicSdk/kg/musicSearch.js @@ -77,7 +77,7 @@ export default { }) return list }, - search(str, page = 1, { limit } = {}, retryNum = 0) { + search(str, page = 1, limit, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 diff --git a/src/utils/music/kg/pic.js b/src/utils/musicSdk/kg/pic.js similarity index 100% rename from src/utils/music/kg/pic.js rename to src/utils/musicSdk/kg/pic.js diff --git a/src/utils/music/kg/songList.js b/src/utils/musicSdk/kg/songList.js similarity index 94% rename from src/utils/music/kg/songList.js rename to src/utils/musicSdk/kg/songList.js index 3477fe3..fe0dd01 100644 --- a/src/utils/music/kg/songList.js +++ b/src/utils/musicSdk/kg/songList.js @@ -1,5 +1,5 @@ import { httpFetch } from '../../request' -import { decodeName, formatPlayTime, sizeFormate } from '../../index' +import { decodeName, formatPlayTime, sizeFormate, dateFormat } from '../../index' import { toMD5 } from '../utils' import infSign from './vendors/infSign.min' @@ -154,8 +154,9 @@ export default { id: 'id_' + item.specialid, author: item.nickname, name: item.specialname, - time: item.publish_time || item.publishtime, + time: dateFormat(item.publish_time || item.publishtime, 'Y-M-D'), img: item.img || item.imgurl, + total: item.songcount, grade: item.grade, desc: item.intro, source: 'kg', @@ -165,7 +166,6 @@ export default { async createHttp(url, options, retryNum = 0) { if (retryNum > 2) throw new Error('try max num') let result - options.cache = 'default' try { result = await httpFetch(url, options).promise } catch (err) { @@ -522,7 +522,8 @@ export default { if (id.includes('special/single/')) { id = id.replace(this.regExps.listDetailLink, '$1') } else if (/https?:/.test(id)) { - return this.getUserListDetail(id.replace(/^.*http/, 'http'), page) + // fix https://www.kugou.com/songlist/xxx/?uid=xxx&chl=qq_client&cover=http%3A%2F%2Fimge.kugou.com%xxx.jpg&iszlist=1 + return this.getUserListDetail(id.replace(/^.*?http/, 'http'), page) } else if (/^\d+$/.test(id)) { return this.getUserListDetailByCode(id) } else if (id.startsWith('id_')) { @@ -729,6 +730,35 @@ export default { } return `https://www.kugou.com/yy/special/single/${id}.html` }, + + search(text, page, limit = 20) { + // http://msearchretry.kugou.com/api/v3/search/special?version=9209&keyword=%E5%91%A8%E6%9D%B0%E4%BC%A6&pagesize=20&filter=0&page=1&sver=2&with_res_tag=0 + // return httpFetch(`http://ioscdn.kugou.com/api/v3/search/special?keyword=${encodeURIComponent(text)}&page=${page}&pagesize=${limit}&showtype=10&plat=2&version=7910&correct=1&sver=5`) + return httpFetch(`http://msearchretry.kugou.com/api/v3/search/special?keyword=${encodeURIComponent(text)}&page=${page}&pagesize=${limit}&showtype=10&filter=0&version=7910&sver=2`) + .promise.then(({ body }) => { + if (body.errcode != 0) throw new Error('filed') + // console.log(body.data.info) + return { + list: body.data.info.map(item => { + return { + play_count: this.formatPlayCount(item.playcount), + id: 'id_' + item.specialid, + author: item.nickname, + name: item.specialname, + time: dateFormat(item.publishtime, 'Y-M-D'), + img: item.imgurl, + grade: item.grade, + desc: item.intro, + total: item.songcount, + source: 'kg', + } + }), + limit, + total: body.data.total, + source: 'kg', + } + }) + }, } // getList diff --git a/src/utils/music/kg/util.js b/src/utils/musicSdk/kg/util.js similarity index 100% rename from src/utils/music/kg/util.js rename to src/utils/musicSdk/kg/util.js diff --git a/src/utils/music/kg/vendors/infSign.min.js b/src/utils/musicSdk/kg/vendors/infSign.min.js similarity index 100% rename from src/utils/music/kg/vendors/infSign.min.js rename to src/utils/musicSdk/kg/vendors/infSign.min.js diff --git a/src/utils/music/kw/album.js b/src/utils/musicSdk/kw/album.js similarity index 100% rename from src/utils/music/kw/album.js rename to src/utils/musicSdk/kw/album.js diff --git a/src/utils/music/kw/api-direct.js b/src/utils/musicSdk/kw/api-direct.js similarity index 100% rename from src/utils/music/kw/api-direct.js rename to src/utils/musicSdk/kw/api-direct.js diff --git a/src/utils/music/kw/api-temp.js b/src/utils/musicSdk/kw/api-temp.js similarity index 100% rename from src/utils/music/kw/api-temp.js rename to src/utils/musicSdk/kw/api-temp.js diff --git a/src/utils/music/kw/api-test.js b/src/utils/musicSdk/kw/api-test.js similarity index 100% rename from src/utils/music/kw/api-test.js rename to src/utils/musicSdk/kw/api-test.js diff --git a/src/utils/music/kw/comment.js b/src/utils/musicSdk/kw/comment.js similarity index 100% rename from src/utils/music/kw/comment.js rename to src/utils/musicSdk/kw/comment.js diff --git a/src/utils/music/kw/decodeLyric.js b/src/utils/musicSdk/kw/decodeLyric.js similarity index 98% rename from src/utils/music/kw/decodeLyric.js rename to src/utils/musicSdk/kw/decodeLyric.js index d36aa6f..25d32ee 100644 --- a/src/utils/music/kw/decodeLyric.js +++ b/src/utils/musicSdk/kw/decodeLyric.js @@ -13,7 +13,7 @@ const decodeLyric = async(buf, isGetLyricx) => { // if (!info.startsWith('tp=content')) return null // const isLyric = info.includes('\r\nlrcx=0\r\n') if (buf.toString('utf8', 0, 10) != 'tp=content') return '' - console.log(buf) + // console.log(buf) // const index = buf.indexOf('\r\n\r\n') + 4 const lrcData = await handleInflate(buf.slice(buf.indexOf('\r\n\r\n') + 4)) diff --git a/src/utils/music/kw/hotSearch.js b/src/utils/musicSdk/kw/hotSearch.js similarity index 100% rename from src/utils/music/kw/hotSearch.js rename to src/utils/musicSdk/kw/hotSearch.js diff --git a/src/utils/music/kw/index.js b/src/utils/musicSdk/kw/index.js similarity index 100% rename from src/utils/music/kw/index.js rename to src/utils/musicSdk/kw/index.js diff --git a/src/utils/music/kw/leaderboard.js b/src/utils/musicSdk/kw/leaderboard.js similarity index 100% rename from src/utils/music/kw/leaderboard.js rename to src/utils/musicSdk/kw/leaderboard.js diff --git a/src/utils/music/kw/lyric.js b/src/utils/musicSdk/kw/lyric.js similarity index 100% rename from src/utils/music/kw/lyric.js rename to src/utils/musicSdk/kw/lyric.js diff --git a/src/utils/music/kw/musicSearch.js b/src/utils/musicSdk/kw/musicSearch.js similarity index 98% rename from src/utils/music/kw/musicSearch.js rename to src/utils/musicSdk/kw/musicSearch.js index e348b20..9edd8e9 100644 --- a/src/utils/music/kw/musicSearch.js +++ b/src/utils/musicSdk/kw/musicSearch.js @@ -100,7 +100,7 @@ export default { // console.log(result) return result }, - search(str, page = 1, { limit } = {}, retryNum = 0) { + search(str, page = 1, limit, retryNum = 0) { if (retryNum > 2) return Promise.reject(new Error('try max num')) if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 diff --git a/src/utils/music/kw/pic.js b/src/utils/musicSdk/kw/pic.js similarity index 100% rename from src/utils/music/kw/pic.js rename to src/utils/musicSdk/kw/pic.js diff --git a/src/utils/music/kw/songList.js b/src/utils/musicSdk/kw/songList.js similarity index 93% rename from src/utils/music/kw/songList.js rename to src/utils/musicSdk/kw/songList.js index ca3b7a5..c81e458 100644 --- a/src/utils/music/kw/songList.js +++ b/src/utils/musicSdk/kw/songList.js @@ -1,6 +1,6 @@ import { httpFetch } from '../../request' import { formatPlayTime, decodeName } from '../../index' -import { formatSinger } from './util' +import { formatSinger, objStr2JSON } from './util' import album from './album' export default { @@ -110,7 +110,7 @@ export default { source: 'kw', } } else if (!body.length) { - return this.getList(sortId, id, type, page, ++tryNum) + return this.getList(sortId, tagId, page, ++tryNum) } return { list: this.filterList2(body), @@ -402,8 +402,8 @@ export default { if (info) { switch (info[2]) { case '4000': - types.push({ type: 'flac32bit', size: info[4] }) - _types.flac32bit = { + types.push({ type: 'flac24bit', size: info[4] }) + _types.flac24bit = { size: info[4].toLocaleUpperCase(), } break @@ -459,6 +459,32 @@ export default { } return `http://www.kuwo.cn/playlist_detail/${id}` }, + + search(text, page, limit = 20) { + return httpFetch(`http://search.kuwo.cn/r.s?all=${encodeURIComponent(text)}&pn=${page - 1}&rn=${limit}&rformat=json&encoding=utf8&ver=mbox&vipver=MUSIC_8.7.7.0_BCS37&plat=pc&devid=28156413&ft=playlist&pay=0&needliveshow=0`) + .promise.then(({ body }) => { + body = objStr2JSON(body) + // console.log(body) + return { + list: body.abslist.map(item => { + return { + play_count: this.formatPlayCount(item.playcnt), + id: item.playlistid, + author: decodeName(item.nickname), + name: decodeName(item.name), + total: item.songnum, + // time: item.publish_time, + img: item.pic, + desc: decodeName(item.intro), + source: 'kw', + } + }), + limit, + total: parseInt(body.TOTAL), + source: 'kw', + } + }) + }, } // getList diff --git a/src/utils/music/kw/tempSearch.js b/src/utils/musicSdk/kw/tempSearch.js similarity index 100% rename from src/utils/music/kw/tempSearch.js rename to src/utils/musicSdk/kw/tempSearch.js diff --git a/src/utils/music/kw/util.js b/src/utils/musicSdk/kw/util.js similarity index 73% rename from src/utils/music/kw/util.js rename to src/utils/musicSdk/kw/util.js index 4df9da0..625f48c 100644 --- a/src/utils/music/kw/util.js +++ b/src/utils/musicSdk/kw/util.js @@ -7,26 +7,32 @@ const kw_token = { isGetingToken: false, } -const translationMap = { - "{'": '{"', - "'}\n": '"}', - "'}": '"}', - "':'": '":"', - "','": '","', - "':{'": '":{"', - "':['": '":["', - "'}],'": '"}],"', - "':[{'": '":[{"', - "'},'": '"},"', - "'},{'": '"},{"', - "':[],'": '":[],"', - "':{},'": '":{},"', -} +// const translationMap = { +// "{'": '{"', +// "'}\n": '"}', +// "'}": '"}', +// "':'": '":"', +// "','": '","', +// "':{'": '":{"', +// "':['": '":["', +// "'}],'": '"}],"', +// "':[{'": '":[{"', +// "'},'": '"},"', +// "'},{'": '"},{"', +// "':[],'": '":[],"', +// "':{},'": '":{},"', +// "'}]}": '"}]}', +// } + +// export const objStr2JSON = str => { +// return JSON.parse(str.replace(/(^{'|'}\n$|'}$|':'|','|':\[{'|'}\],'|':{'|'},'|'},{'|':\['|':\[\],'|':{},'|'}]})/g, s => translationMap[s])) +// } export const objStr2JSON = str => { - return JSON.parse(str.replace(/(^{'|'}\n$|'}$|':'|','|':\[{'|'}\],'|':{'|'},'|'},{'|':\['|':\[\],'|':{},')/g, s => translationMap[s])) + return JSON.parse(str.replace(/('(?=(,\s*')))|('(?=:))|((?<=([:,]\s*))')|((?<={)')|('(?=}))/g, '"')) } + export const formatSinger = rawData => rawData.replace(/&/g, '、') export const matchToken = headers => { diff --git a/src/utils/music/mg/album.js b/src/utils/musicSdk/mg/album.js similarity index 97% rename from src/utils/music/mg/album.js rename to src/utils/musicSdk/mg/album.js index 625fc3a..759f363 100644 --- a/src/utils/music/mg/album.js +++ b/src/utils/musicSdk/mg/album.js @@ -22,7 +22,7 @@ export default { requestObj.cancelHttp = tryRequestObj.cancelHttp.bind(tryRequestObj) return tryRequestObj.promise } - console.log(body) + // console.log(body) return body.songList }) return requestObj diff --git a/src/utils/music/mg/api-direct.js b/src/utils/musicSdk/mg/api-direct.js similarity index 100% rename from src/utils/music/mg/api-direct.js rename to src/utils/musicSdk/mg/api-direct.js diff --git a/src/utils/music/mg/api-test.js b/src/utils/musicSdk/mg/api-test.js similarity index 100% rename from src/utils/music/mg/api-test.js rename to src/utils/musicSdk/mg/api-test.js diff --git a/src/utils/music/mg/comment.js b/src/utils/musicSdk/mg/comment.js similarity index 100% rename from src/utils/music/mg/comment.js rename to src/utils/musicSdk/mg/comment.js diff --git a/src/utils/music/mg/hotSearch.js b/src/utils/musicSdk/mg/hotSearch.js similarity index 100% rename from src/utils/music/mg/hotSearch.js rename to src/utils/musicSdk/mg/hotSearch.js diff --git a/src/utils/music/mg/index.js b/src/utils/musicSdk/mg/index.js similarity index 100% rename from src/utils/music/mg/index.js rename to src/utils/musicSdk/mg/index.js diff --git a/src/utils/music/mg/leaderboard.js b/src/utils/musicSdk/mg/leaderboard.js similarity index 100% rename from src/utils/music/mg/leaderboard.js rename to src/utils/musicSdk/mg/leaderboard.js diff --git a/src/utils/music/mg/leaderboard2.js b/src/utils/musicSdk/mg/leaderboard2.js similarity index 100% rename from src/utils/music/mg/leaderboard2.js rename to src/utils/musicSdk/mg/leaderboard2.js diff --git a/src/utils/music/mg/lyric.js b/src/utils/musicSdk/mg/lyric.js similarity index 100% rename from src/utils/music/mg/lyric.js rename to src/utils/musicSdk/mg/lyric.js diff --git a/src/utils/music/mg/musicSearch.js b/src/utils/musicSdk/mg/musicSearch.js similarity index 98% rename from src/utils/music/mg/musicSearch.js rename to src/utils/musicSdk/mg/musicSearch.js index 43bc8c9..421f4ce 100644 --- a/src/utils/music/mg/musicSearch.js +++ b/src/utils/musicSdk/mg/musicSearch.js @@ -107,7 +107,7 @@ export default { }) return list }, - search(str, page = 1, { limit } = {}, retryNum = 0) { + search(str, page = 1, limit, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 diff --git a/src/utils/music/mg/pic.js b/src/utils/musicSdk/mg/pic.js similarity index 100% rename from src/utils/music/mg/pic.js rename to src/utils/musicSdk/mg/pic.js diff --git a/src/utils/music/mg/songList.js b/src/utils/musicSdk/mg/songList.js similarity index 93% rename from src/utils/music/mg/songList.js rename to src/utils/musicSdk/mg/songList.js index 9bfaed5..243008d 100644 --- a/src/utils/music/mg/songList.js +++ b/src/utils/musicSdk/mg/songList.js @@ -1,5 +1,5 @@ import { httpFetch } from '../../request' -import { sizeFormate } from '../../index' +import { sizeFormate, dateFormat } from '../../index' // const tagData = { code: '000000', info: 'SUCCESS', columnInfo: { columnTitle: '分类', columnId: '15244430', columnPid: '15031270', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 6, columnStatus: 1, columnCreateTime: '2016-11-10 10:53:05.077', columntype: 2011, contents: [{ contentId: '18464615', relationType: 2011, objectInfo: { columnTitle: '热门', columnId: '18464615', columnPid: '15244430', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 8, columnStatus: 1, columnCreateTime: '2017-02-20 16:09:13.400', columntype: 2011, contents: [{ contentId: '1000001672', relationType: 4034, objectInfo: { tagId: '1000001672', tagName: '流行', resourceType: '2034' }, relationSort: 9 }, { contentId: '1003449727', relationType: 4034, objectInfo: { tagId: '1003449727', tagName: '厂牌', resourceType: '2034' }, relationSort: 8 }, { contentId: '1000001795', relationType: 4034, objectInfo: { tagId: '1000001795', tagName: '伤感', resourceType: '2034' }, relationSort: 7 }, { contentId: '1001076080', relationType: 4034, objectInfo: { tagId: '1001076080', tagName: '电影', resourceType: '2034' }, relationSort: 6 }, { contentId: '1000001675', relationType: 4034, objectInfo: { tagId: '1000001675', tagName: '中国风', resourceType: '2034' }, relationSort: 5 }, { contentId: '1000001635', relationType: 4034, objectInfo: { tagId: '1000001635', tagName: '经典老歌', resourceType: '2034' }, relationSort: 4 }, { contentId: '1000001831', relationType: 4034, objectInfo: { tagId: '1000001831', tagName: '翻唱', resourceType: '2034' }, relationSort: 3 }, { contentId: '1000001762', relationType: 4034, objectInfo: { tagId: '1000001762', tagName: '国语', resourceType: '2034' }, relationSort: 1 }], dataVersion: '1620410266029', customizedPicUrls: [] }, relationSort: 6 }, { contentId: '15244503', relationType: 2011, objectInfo: { columnTitle: '主题', columnId: '15244503', columnPid: '15244430', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 23, columnStatus: 1, columnCreateTime: '2016-11-10 10:54:10.261', columntype: 2011, contents: [{ contentId: '1003449727', relationType: 4034, objectInfo: { tagId: '1003449727', tagName: '厂牌', resourceType: '2034' }, relationSort: 29 }, { contentId: '1001076080', relationType: 4034, objectInfo: { tagId: '1001076080', tagName: '电影', resourceType: '2034' }, relationSort: 28 }, { contentId: '1001076078', relationType: 4034, objectInfo: { tagId: '1001076078', tagName: '电视剧', resourceType: '2034' }, relationSort: 27 }, { contentId: '1001076083', relationType: 4034, objectInfo: { tagId: '1001076083', tagName: '综艺', resourceType: '2034' }, relationSort: 26 }, { contentId: '1000001827', relationType: 4034, objectInfo: { tagId: '1000001827', tagName: 'KTV', resourceType: '2034' }, relationSort: 23 }, { contentId: '1000001698', relationType: 4034, objectInfo: { tagId: '1000001698', tagName: '爱情', resourceType: '2034' }, relationSort: 22 }, { contentId: '1000001635', relationType: 4034, objectInfo: { tagId: '1000001635', tagName: '经典老歌', resourceType: '2034' }, relationSort: 21 }, { contentId: '1001076096', relationType: 4034, objectInfo: { tagId: '1001076096', tagName: '网络热歌', resourceType: '2034' }, relationSort: 20 }, { contentId: '1000001780', relationType: 4034, objectInfo: { tagId: '1000001780', tagName: '儿童歌曲', resourceType: '2034' }, relationSort: 19 }, { contentId: '1000587702', relationType: 4034, objectInfo: { tagId: '1000587702', tagName: '广场舞', resourceType: '2034' }, relationSort: 18 }, { contentId: '1000587717', relationType: 4034, objectInfo: { tagId: '1000587717', tagName: '70后', resourceType: '2034' }, relationSort: 17 }, { contentId: '1000587718', relationType: 4034, objectInfo: { tagId: '1000587718', tagName: '80后', resourceType: '2034' }, relationSort: 16 }, { contentId: '1000587726', relationType: 4034, objectInfo: { tagId: '1000587726', tagName: '90后', resourceType: '2034' }, relationSort: 15 }, { contentId: '1000001670', relationType: 4034, objectInfo: { tagId: '1000001670', tagName: '红歌', resourceType: '2034' }, relationSort: 14 }, { contentId: '1000587698', relationType: 4034, objectInfo: { tagId: '1000587698', tagName: '游戏', resourceType: '2034' }, relationSort: 13 }, { contentId: '1000587706', relationType: 4034, objectInfo: { tagId: '1000587706', tagName: '动漫', resourceType: '2034' }, relationSort: 12 }, { contentId: '1000001675', relationType: 4034, objectInfo: { tagId: '1000001675', tagName: '中国风', resourceType: '2034' }, relationSort: 11 }, { contentId: '1000587712', relationType: 4034, objectInfo: { tagId: '1000587712', tagName: '青春校园', resourceType: '2034' }, relationSort: 10 }, { contentId: '1000587673', relationType: 4034, objectInfo: { tagId: '1000587673', tagName: '小清新', resourceType: '2034' }, relationSort: 9 }, { contentId: '1000093902', relationType: 4034, objectInfo: { tagId: '1000093902', tagName: 'DJ舞曲', resourceType: '2034' }, relationSort: 7 }, { contentId: '1000093963', relationType: 4034, objectInfo: { tagId: '1000093963', tagName: '广告', resourceType: '2034' }, relationSort: 6 }, { contentId: '1000001831', relationType: 4034, objectInfo: { tagId: '1000001831', tagName: '翻唱', resourceType: '2034' }, relationSort: 2 }, { contentId: '1003449726', relationType: 4034, objectInfo: { tagId: '1003449726', tagName: '读书', resourceType: '2034' }, relationSort: 1 }], dataVersion: '1620410266055', customizedPicUrls: [] }, relationSort: 5 }, { contentId: '15244509', relationType: 2011, objectInfo: { columnTitle: '风格', columnId: '15244509', columnPid: '15244430', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 12, columnStatus: 1, columnCreateTime: '2016-11-10 10:54:57.257', columntype: 2011, contents: [{ contentId: '1000001672', relationType: 4034, objectInfo: { tagId: '1000001672', tagName: '流行', resourceType: '2034' }, relationSort: 14 }, { contentId: '1000001808', relationType: 4034, objectInfo: { tagId: '1000001808', tagName: 'R&B', resourceType: '2034' }, relationSort: 13 }, { contentId: '1000001809', relationType: 4034, objectInfo: { tagId: '1000001809', tagName: '嘻哈', resourceType: '2034' }, relationSort: 12 }, { contentId: '1000001674', relationType: 4034, objectInfo: { tagId: '1000001674', tagName: '摇滚', resourceType: '2034' }, relationSort: 11 }, { contentId: '1000001682', relationType: 4034, objectInfo: { tagId: '1000001682', tagName: '电子', resourceType: '2034' }, relationSort: 10 }, { contentId: '1000001852', relationType: 4034, objectInfo: { tagId: '1000001852', tagName: '电子舞曲', resourceType: '2034' }, relationSort: 9 }, { contentId: '1000001681', relationType: 4034, objectInfo: { tagId: '1000001681', tagName: '爵士', resourceType: '2034' }, relationSort: 6 }, { contentId: '1000001683', relationType: 4034, objectInfo: { tagId: '1000001683', tagName: '乡村', resourceType: '2034' }, relationSort: 5 }, { contentId: '1000001851', relationType: 4034, objectInfo: { tagId: '1000001851', tagName: '蓝调', resourceType: '2034' }, relationSort: 4 }, { contentId: '1000001775', relationType: 4034, objectInfo: { tagId: '1000001775', tagName: '民谣', resourceType: '2034' }, relationSort: 3 }, { contentId: '1000001807', relationType: 4034, objectInfo: { tagId: '1000001807', tagName: '纯音乐', resourceType: '2034' }, relationSort: 2 }, { contentId: '1000001783', relationType: 4034, objectInfo: { tagId: '1000001783', tagName: '古典', resourceType: '2034' }, relationSort: 1 }], dataVersion: '1620410266033', customizedPicUrls: [] }, relationSort: 4 }, { contentId: '18464665', relationType: 2011, objectInfo: { columnTitle: '语种', columnId: '18464665', columnPid: '15244430', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 6, columnStatus: 1, columnCreateTime: '2017-02-20 16:07:16.566', columntype: 2011, contents: [{ contentId: '1000001762', relationType: 4034, objectInfo: { tagId: '1000001762', tagName: '国语', resourceType: '2034' }, relationSort: 6 }, { contentId: '1000001763', relationType: 4034, objectInfo: { tagId: '1000001763', tagName: '粤语', resourceType: '2034' }, relationSort: 5 }, { contentId: '1000001766', relationType: 4034, objectInfo: { tagId: '1000001766', tagName: '英语', resourceType: '2034' }, relationSort: 4 }, { contentId: '1000001599', relationType: 4034, objectInfo: { tagId: '1000001599', tagName: '韩语', resourceType: '2034' }, relationSort: 3 }, { contentId: '1000001767', relationType: 4034, objectInfo: { tagId: '1000001767', tagName: '日语', resourceType: '2034' }, relationSort: 2 }, { contentId: '1003449724', relationType: 4034, objectInfo: { tagId: '1003449724', tagName: '小语种', resourceType: '2034' }, relationSort: 1 }], dataVersion: '1620410266036', customizedPicUrls: [] }, relationSort: 3 }, { contentId: '18464583', relationType: 2011, objectInfo: { columnTitle: '心情', columnId: '18464583', columnPid: '15244430', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 13, columnStatus: 1, columnCreateTime: '2017-02-20 15:59:03.412', columntype: 2011, contents: [{ contentId: '1000587677', relationType: 4034, objectInfo: { tagId: '1000587677', tagName: '幸福', resourceType: '2034' }, relationSort: 15 }, { contentId: '1000587710', relationType: 4034, objectInfo: { tagId: '1000587710', tagName: '治愈', resourceType: '2034' }, relationSort: 14 }, { contentId: '1000001703', relationType: 4034, objectInfo: { tagId: '1000001703', tagName: '思念', resourceType: '2034' }, relationSort: 13 }, { contentId: '1000587667', relationType: 4034, objectInfo: { tagId: '1000587667', tagName: '期待', resourceType: '2034' }, relationSort: 12 }, { contentId: '1000001700', relationType: 4034, objectInfo: { tagId: '1000001700', tagName: '励志', resourceType: '2034' }, relationSort: 11 }, { contentId: '1000001694', relationType: 4034, objectInfo: { tagId: '1000001694', tagName: '欢快', resourceType: '2034' }, relationSort: 10 }, { contentId: '1002600588', relationType: 4034, objectInfo: { tagId: '1002600588', tagName: '叛逆', resourceType: '2034' }, relationSort: 9 }, { contentId: '1002600585', relationType: 4034, objectInfo: { tagId: '1002600585', tagName: '宣泄', resourceType: '2034' }, relationSort: 8 }, { contentId: '1000001696', relationType: 4034, objectInfo: { tagId: '1000001696', tagName: '怀旧', resourceType: '2034' }, relationSort: 7 }, { contentId: '1000587679', relationType: 4034, objectInfo: { tagId: '1000587679', tagName: '减压', resourceType: '2034' }, relationSort: 6 }, { contentId: '1000001699', relationType: 4034, objectInfo: { tagId: '1000001699', tagName: '寂寞', resourceType: '2034' }, relationSort: 5 }, { contentId: '1002600579', relationType: 4034, objectInfo: { tagId: '1002600579', tagName: '忧郁', resourceType: '2034' }, relationSort: 4 }, { contentId: '1000001795', relationType: 4034, objectInfo: { tagId: '1000001795', tagName: '伤感', resourceType: '2034' }, relationSort: 3 }], dataVersion: '1620410266187', customizedPicUrls: [] }, relationSort: 2 }, { contentId: '18464638', relationType: 2011, objectInfo: { columnTitle: '场景', columnId: '18464638', columnPid: '15244430', opNumItem: { playNum: 0, playNumDesc: '0', keepNum: 0, keepNumDesc: '0', commentNum: 0, commentNumDesc: '0', shareNum: 0, shareNumDesc: '0', orderNumByWeek: 0, orderNumByWeekDesc: '0', orderNumByTotal: 0, orderNumByTotalDesc: '0', thumbNum: 0, thumbNumDesc: '0', followNum: 0, followNumDesc: '0', subscribeNum: 0, subscribeNumDesc: '0', livePlayNum: 0, livePlayNumDesc: '0', popularNum: 0, popularNumDesc: '0', bookingNum: 0, bookingNumDesc: '0' }, contentsCount: 13, columnStatus: 1, columnCreateTime: '2017-02-20 16:02:59.711', columntype: 2011, contents: [{ contentId: '1000587689', relationType: 4034, objectInfo: { tagId: '1000587689', tagName: '清晨', resourceType: '2034' }, relationSort: 21 }, { contentId: '1000587690', relationType: 4034, objectInfo: { tagId: '1000587690', tagName: '夜晚', resourceType: '2034' }, relationSort: 20 }, { contentId: '1000587688', relationType: 4034, objectInfo: { tagId: '1000587688', tagName: '睡前安眠', resourceType: '2034' }, relationSort: 19 }, { contentId: '1003449726', relationType: 4034, objectInfo: { tagId: '1003449726', tagName: '读书', resourceType: '2034' }, relationSort: 18 }, { contentId: '1003449723', relationType: 4034, objectInfo: { tagId: '1003449723', tagName: '下午·茶', resourceType: '2034' }, relationSort: 16 }, { contentId: '1000093923', relationType: 4034, objectInfo: { tagId: '1000093923', tagName: '驾车', resourceType: '2034' }, relationSort: 15 }, { contentId: '1003449615', relationType: 4034, objectInfo: { tagId: '1003449615', tagName: '运动', resourceType: '2034' }, relationSort: 13 }, { contentId: '1000587694', relationType: 4034, objectInfo: { tagId: '1000587694', tagName: '散步', resourceType: '2034' }, relationSort: 12 }, { contentId: '1000001749', relationType: 4034, objectInfo: { tagId: '1000001749', tagName: '旅行', resourceType: '2034' }, relationSort: 11 }, { contentId: '1000587686', relationType: 4034, objectInfo: { tagId: '1000587686', tagName: '夜店', resourceType: '2034' }, relationSort: 10 }, { contentId: '1002600606', relationType: 4034, objectInfo: { tagId: '1002600606', tagName: '派对', resourceType: '2034' }, relationSort: 9 }, { contentId: '1000001634', relationType: 4034, objectInfo: { tagId: '1000001634', tagName: '咖啡馆', resourceType: '2034' }, relationSort: 3 }, { contentId: '1000587692', relationType: 4034, objectInfo: { tagId: '1000587692', tagName: '瑜伽', resourceType: '2034' }, relationSort: 1 }], dataVersion: '1620846028994', customizedPicUrls: [] }, relationSort: 1 }], dataVersion: '1620846028941', customizedPicUrls: [] } } @@ -169,30 +169,30 @@ export default { let size switch (type.formatType) { case 'PQ': - size = sizeFormate(type.size) + size = sizeFormate(type.size ?? type.androidSize) types.push({ type: '128k', size }) _types['128k'] = { size, } break case 'HQ': - size = sizeFormate(type.size) + size = sizeFormate(type.size ?? type.androidSize) types.push({ type: '320k', size }) _types['320k'] = { size, } break case 'SQ': - size = sizeFormate(type.size) + size = sizeFormate(type.size ?? type.androidSize) types.push({ type: 'flac', size }) _types.flac = { size, } break case 'ZQ': - size = sizeFormate(type.size) - types.push({ type: 'flac32bit', size }) - _types.flac32bit = { + size = sizeFormate(type.size ?? type.androidSize) + types.push({ type: 'flac24bit', size }) + _types.flac24bit = { size, } break @@ -286,12 +286,13 @@ export default { // }) }, filterList(rawData) { + // console.log(rawData) return rawData.map(item => ({ play_count: this.formatPlayCount(item.playCount), id: item.playListId, author: item.createName, name: item.playListName, - time: item.createTime, + time: dateFormat(item.createTime, 'Y-M-D'), img: item.image, grade: item.grade, total: item.contentCount, @@ -362,6 +363,38 @@ export default { } return `https://music.migu.cn/v3/music/playlist/${id}` }, + + search(text, page, limit = 20) { + // return httpFetch(`http://search.kuwo.cn/r.s?all=${encodeURIComponent(text)}&pn=${page - 1}&rn=${limit}&rformat=json&encoding=utf8&ver=mbox&vipver=MUSIC_8.7.7.0_BCS37&plat=pc&devid=28156413&ft=playlist&pay=0&needliveshow=0`) + return httpFetch(`http://pd.musicapp.migu.cn/MIGUM2.0/v1.0/content/search_all.do?ua=Android_migu&version=5.0.1&text=${encodeURIComponent(text)}&pageNo=${page}&pageSize=${limit}&searchSwitch=%7B%22song%22%3A0%2C%22album%22%3A0%2C%22singer%22%3A0%2C%22tagSong%22%3A0%2C%22mvSong%22%3A0%2C%22bestShow%22%3A1%2C%22songlist%22%3A1%2C%22lyricSong%22%3A0%7D`, { + headers: { + 'User-Agent': 'okhttp/3.9.1', + osVersion: 'android 7.0', + }, + // family: 6, + }) + .promise.then(({ body }) => { + // console.log(body) + if (body.code != this.successCode) throw new Error('failed') + return { + list: body.songListResultData.result.map(item => { + return { + play_count: this.formatPlayCount(item.playcount), + id: item.id, + // author: item.createName, + name: item.name, + // time: item.createTime, + img: item.musicListPicUrl, + total: item.musicNum, + source: 'mg', + } + }), + limit, + total: parseInt(body.songListResultData.totalCount), + source: 'mg', + } + }) + }, } // getList diff --git a/src/utils/music/options.js b/src/utils/musicSdk/options.js similarity index 100% rename from src/utils/music/options.js rename to src/utils/musicSdk/options.js diff --git a/src/utils/music/tx/api-direct.js b/src/utils/musicSdk/tx/api-direct.js similarity index 100% rename from src/utils/music/tx/api-direct.js rename to src/utils/musicSdk/tx/api-direct.js diff --git a/src/utils/music/tx/api-test.js b/src/utils/musicSdk/tx/api-test.js similarity index 100% rename from src/utils/music/tx/api-test.js rename to src/utils/musicSdk/tx/api-test.js diff --git a/src/utils/music/tx/comment.js b/src/utils/musicSdk/tx/comment.js similarity index 100% rename from src/utils/music/tx/comment.js rename to src/utils/musicSdk/tx/comment.js diff --git a/src/utils/music/tx/hotSearch.js b/src/utils/musicSdk/tx/hotSearch.js similarity index 100% rename from src/utils/music/tx/hotSearch.js rename to src/utils/musicSdk/tx/hotSearch.js diff --git a/src/utils/music/tx/index.js b/src/utils/musicSdk/tx/index.js similarity index 100% rename from src/utils/music/tx/index.js rename to src/utils/musicSdk/tx/index.js diff --git a/src/utils/music/tx/leaderboard.js b/src/utils/musicSdk/tx/leaderboard.js similarity index 100% rename from src/utils/music/tx/leaderboard.js rename to src/utils/musicSdk/tx/leaderboard.js diff --git a/src/utils/music/tx/lyric.js b/src/utils/musicSdk/tx/lyric.js similarity index 100% rename from src/utils/music/tx/lyric.js rename to src/utils/musicSdk/tx/lyric.js diff --git a/src/utils/music/tx/musicInfo.js b/src/utils/musicSdk/tx/musicInfo.js similarity index 100% rename from src/utils/music/tx/musicInfo.js rename to src/utils/musicSdk/tx/musicInfo.js diff --git a/src/utils/music/tx/musicSearch.js b/src/utils/musicSdk/tx/musicSearch.js similarity index 99% rename from src/utils/music/tx/musicSearch.js rename to src/utils/musicSdk/tx/musicSearch.js index 15b7fba..044672e 100644 --- a/src/utils/music/tx/musicSearch.js +++ b/src/utils/musicSdk/tx/musicSearch.js @@ -118,7 +118,7 @@ export default { // console.log(list) return list }, - search(str, page = 1, { limit } = {}) { + search(str, page = 1, limit) { if (limit == null) limit = this.limit // http://newlyric.kuwo.cn/newlyric.lrc?62355680 return this.musicSearch(str, page, limit).then(({ body, meta }) => { diff --git a/src/utils/music/tx/songList.js b/src/utils/musicSdk/tx/songList.js similarity index 87% rename from src/utils/music/tx/songList.js rename to src/utils/musicSdk/tx/songList.js index d9a2a01..a73462d 100644 --- a/src/utils/music/tx/songList.js +++ b/src/utils/musicSdk/tx/songList.js @@ -1,5 +1,5 @@ import { httpFetch } from '../../request' -import { decodeName, formatPlayTime, sizeFormate } from '../../index' +import { decodeName, formatPlayTime, sizeFormate, dateFormat } from '../../index' export default { _requestObj_tags: null, @@ -120,6 +120,7 @@ export default { this._requestObj_list = httpFetch( this.getListUrl(sortId, tagId, page), ) + // console.log(this.getListUrl(sortId, tagId, page)) return this._requestObj_list.promise.then(({ body }) => { if (body.code !== this.successCode) return this.getList(sortId, tagId, page, ++tryNum) return tagId ? this.filterList2(body.playlist.data, page) : this.filterList(body.playlist.data, page) @@ -143,7 +144,7 @@ export default { id: item.tid, author: item.creator_info.nick, name: item.title, - // time: item.publish_time, + time: item.modify_time ? dateFormat(item.modify_time * 1000, 'Y-M-D') : '', img: item.cover_url_medium, // grade: item.favorcnt / 10, total: item.song_ids?.length, @@ -266,8 +267,8 @@ export default { } if (item.file.size_hires !== 0) { let size = sizeFormate(item.file.size_hires) - types.push({ type: 'flac32bit', size }) - _types.flac32bit = { + types.push({ type: 'flac24bit', size }) + _types.flac24bit = { size, } } @@ -303,6 +304,38 @@ export default { return `https://y.qq.com/n/ryqq/playlist/${id}` }, + + search(text, page, limit = 20) { + return httpFetch(`http://c.y.qq.com/soso/fcgi-bin/client_music_search_songlist?page_no=${page - 1}&num_per_page=${limit}&format=json&query=${encodeURIComponent(text)}&remoteplace=txt.yqq.playlist&inCharset=utf8&outCharset=utf-8`, { + headers: { + 'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)', + Referer: 'http://y.qq.com/portal/search.html', + }, + }) + .promise.then(({ body }) => { + if (body.code != 0) throw new Error('filed') + // console.log(body.data.list) + return { + list: body.data.list.map(item => { + return { + play_count: this.formatPlayCount(item.listennum), + id: item.dissid, + author: item.creator.name, + name: item.dissname, + time: dateFormat(item.createtime, 'Y-M-D'), + img: item.imgurl, + // grade: item.favorcnt / 10, + total: item.song_count, + desc: item.introduction, + source: 'tx', + } + }), + limit, + total: body.data.sum, + source: 'tx', + } + }) + }, } // getList diff --git a/src/utils/music/tx/tipSearch.js b/src/utils/musicSdk/tx/tipSearch.js similarity index 100% rename from src/utils/music/tx/tipSearch.js rename to src/utils/musicSdk/tx/tipSearch.js diff --git a/src/utils/music/utils.js b/src/utils/musicSdk/utils.js similarity index 90% rename from src/utils/music/utils.js rename to src/utils/musicSdk/utils.js index 84d42c4..ad83d10 100644 --- a/src/utils/music/utils.js +++ b/src/utils/musicSdk/utils.js @@ -8,7 +8,7 @@ import crypto from 'crypto' const types = ['flac32bit', 'flac', 'wav', 'ape', '320k', '192k', '128k'] export const getMusicType = (info, type) => { - const list = global.globalObj.qualityList[info.source] + const list = global.lx.qualityList[info.source] if (!list) return '128k' if (!list.includes(type)) type = list[list.length - 1] const rangeType = types.slice(types.indexOf(type)) diff --git a/src/utils/music/wy/api-direct.js b/src/utils/musicSdk/wy/api-direct.js similarity index 100% rename from src/utils/music/wy/api-direct.js rename to src/utils/musicSdk/wy/api-direct.js diff --git a/src/utils/music/wy/api-test.js b/src/utils/musicSdk/wy/api-test.js similarity index 100% rename from src/utils/music/wy/api-test.js rename to src/utils/musicSdk/wy/api-test.js diff --git a/src/utils/music/wy/comment.js b/src/utils/musicSdk/wy/comment.js similarity index 100% rename from src/utils/music/wy/comment.js rename to src/utils/musicSdk/wy/comment.js diff --git a/src/utils/music/wy/hotSearch.js b/src/utils/musicSdk/wy/hotSearch.js similarity index 100% rename from src/utils/music/wy/hotSearch.js rename to src/utils/musicSdk/wy/hotSearch.js diff --git a/src/utils/music/wy/index.js b/src/utils/musicSdk/wy/index.js similarity index 100% rename from src/utils/music/wy/index.js rename to src/utils/musicSdk/wy/index.js diff --git a/src/utils/music/wy/leaderboard.js b/src/utils/musicSdk/wy/leaderboard.js similarity index 100% rename from src/utils/music/wy/leaderboard.js rename to src/utils/musicSdk/wy/leaderboard.js diff --git a/src/utils/music/wy/lyric.js b/src/utils/musicSdk/wy/lyric.js similarity index 100% rename from src/utils/music/wy/lyric.js rename to src/utils/musicSdk/wy/lyric.js diff --git a/src/utils/music/wy/musicDetail.js b/src/utils/musicSdk/wy/musicDetail.js similarity index 100% rename from src/utils/music/wy/musicDetail.js rename to src/utils/musicSdk/wy/musicDetail.js diff --git a/src/utils/music/wy/musicInfo.js b/src/utils/musicSdk/wy/musicInfo.js similarity index 100% rename from src/utils/music/wy/musicInfo.js rename to src/utils/musicSdk/wy/musicInfo.js diff --git a/src/utils/music/wy/musicSearch.js b/src/utils/musicSdk/wy/musicSearch.js similarity index 98% rename from src/utils/music/wy/musicSearch.js rename to src/utils/musicSdk/wy/musicSearch.js index 85e278b..1fccbb7 100644 --- a/src/utils/music/wy/musicSearch.js +++ b/src/utils/musicSdk/wy/musicSearch.js @@ -73,7 +73,7 @@ export default { } }) }, - search(str, page = 1, { limit } = {}, retryNum = 0) { + search(str, page = 1, limit, retryNum = 0) { if (++retryNum > 3) return Promise.reject(new Error('try max num')) if (limit == null) limit = this.limit return this.musicSearch(str, page, limit).then(result => { diff --git a/src/utils/music/wy/songList.js b/src/utils/musicSdk/wy/songList.js similarity index 92% rename from src/utils/music/wy/songList.js rename to src/utils/musicSdk/wy/songList.js index 642b0fe..926b497 100644 --- a/src/utils/music/wy/songList.js +++ b/src/utils/musicSdk/wy/songList.js @@ -5,8 +5,9 @@ import { weapi, linuxapi } from './utils/crypto' import { httpFetch } from '../../request' -import { formatPlayTime, sizeFormate } from '../../index' +import { formatPlayTime, sizeFormate, dateFormat } from '../../index' import musicDetailApi from './musicDetail' +import { eapiRequest } from './utils/index' export default { _requestObj_tags: null, @@ -43,7 +44,7 @@ export default { }, getSinger(singers) { let arr = [] - singers.forEach(singer => { + singers?.forEach(singer => { arr.push(singer.name) }) return arr.join('、') @@ -238,12 +239,13 @@ export default { }) }, filterList(rawData) { + // console.log(rawData) return rawData.map(item => ({ play_count: this.formatPlayCount(item.playCount), id: item.id, author: item.creator.nickname, name: item.name, - time: item.createTime, + time: item.createTime ? dateFormat(item.createTime, 'Y-M-D') : '', img: item.coverImgUrl, grade: item.grade, total: item.trackCount, @@ -320,6 +322,26 @@ export default { const { id } = await this.getListId(rawId) return `https://music.163.com/#/playlist?id=${id}` }, + + search(text, page, limit = 20) { + return eapiRequest('/api/cloudsearch/pc', { + s: text, + type: 1000, // 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频 + limit, + total: page == 1, + offset: limit * (page - 1), + }) + .promise.then(({ body }) => { + if (body.code != this.successCode) throw new Error('filed') + // console.log(body) + return { + list: this.filterList(body.result.playlists), + limit, + total: body.result.playlistCount, + source: 'wy', + } + }) + }, } // getList diff --git a/src/utils/music/wy/utils/crypto.js b/src/utils/musicSdk/wy/utils/crypto.js similarity index 97% rename from src/utils/music/wy/utils/crypto.js rename to src/utils/musicSdk/wy/utils/crypto.js index 64eac76..ce365dd 100644 --- a/src/utils/music/wy/utils/crypto.js +++ b/src/utils/musicSdk/wy/utils/crypto.js @@ -19,7 +19,7 @@ const aesDecrypt = function(cipherBuffer, mode, key, iv) { const rsaEncrypt = (buffer, key) => { buffer = Buffer.concat([Buffer.alloc(128 - buffer.length), buffer]) - return publicEncrypt({ key: key, padding: 3 }, buffer) + return publicEncrypt({ key, padding: 3 }, buffer) } export const weapi = object => { diff --git a/src/utils/music/wy/utils/index.js b/src/utils/musicSdk/wy/utils/index.js similarity index 100% rename from src/utils/music/wy/utils/index.js rename to src/utils/musicSdk/wy/utils/index.js diff --git a/src/utils/music/xm.js b/src/utils/musicSdk/xm.js similarity index 100% rename from src/utils/music/xm.js rename to src/utils/musicSdk/xm.js diff --git a/src/utils/nativeModules/cache.ts b/src/utils/nativeModules/cache.ts new file mode 100644 index 0000000..985b852 --- /dev/null +++ b/src/utils/nativeModules/cache.ts @@ -0,0 +1,6 @@ +import { NativeModules } from 'react-native' + +const { CacheModule } = NativeModules + +export const getAppCacheSize = async(): Promise<number> => CacheModule.getAppCacheSize().then((size: number) => Math.trunc(size)) +export const clearAppCache = CacheModule.clearAppCache as () => Promise<void> diff --git a/src/utils/gzip.js b/src/utils/nativeModules/gzip.ts similarity index 63% rename from src/utils/gzip.js rename to src/utils/nativeModules/gzip.ts index 72e9b0a..07350e6 100644 --- a/src/utils/gzip.js +++ b/src/utils/nativeModules/gzip.ts @@ -2,11 +2,11 @@ import { NativeModules } from 'react-native' const { GzipModule } = NativeModules -export const gzip = (sourceFilePath, targetFilePath) => { +export const gzip = (sourceFilePath: string, targetFilePath: string) => { console.log(sourceFilePath, targetFilePath) return GzipModule.gzip(sourceFilePath, targetFilePath, true) } -export const ungzip = (sourceFilePath, targetFilePath) => { +export const ungzip = (sourceFilePath: string, targetFilePath: string) => { return GzipModule.unGzip(sourceFilePath, targetFilePath, true) } diff --git a/src/utils/nativeModules/lyricDesktop.ts b/src/utils/nativeModules/lyricDesktop.ts new file mode 100644 index 0000000..d34ace5 --- /dev/null +++ b/src/utils/nativeModules/lyricDesktop.ts @@ -0,0 +1,242 @@ +import { NativeModules, NativeEventEmitter } from 'react-native' + +const { LyricModule } = NativeModules + +let isShowLyric = false + +// export const themes = [ +// { id: 'green', value: '#07c556' }, +// { id: 'yellow', value: '#fffa12' }, +// { id: 'blue', value: '#19b5fe' }, +// { id: 'red', value: '#ff1222' }, +// { id: 'pink', value: '#f1828d' }, +// { id: 'purple', value: '#c851d4' }, +// { id: 'orange', value: '#ffad12' }, +// { id: 'grey', value: '#bdc3c7' }, +// { id: 'black', value: '#333333' }, +// { id: 'white', value: '#ffffff' }, +// ] + +// export const textPositionX = [ +// { id: 'left', value: 'LEFT' }, +// { id: 'center', value: 'CENTER' }, +// { id: 'right', value: 'RIGHT' }, +// ] +// export const textPositionY = [ +// { id: 'top', value: 'TOP' }, +// { id: 'center', value: 'CENTER' }, +// { id: 'bottom', value: 'BOTTOM' }, +// ] + +// const getThemeColor = themeId => (themes.find(t => t.id == themeId) || themes[0]).value +// const getTextPositionX = x => (textPositionX.find(t => t.id == x) || textPositionX[0]).value +// const getTextPositionY = y => (textPositionY.find(t => t.id == y) || textPositionY[0]).value +const getAlpha = (num: number) => num / 100 +const getTextSize = (num: number) => num / 10 + + +/** + * show lyric + */ +export const showLyric = async({ + isShowToggleAnima, + isSingleLine, + width, + maxLineNum, + isLock, + unplayColor, + playedColor, + shadowColor, + opacity, + textSize, + positionX, + positionY, + textPositionX, + textPositionY, +}: { + isShowToggleAnima: boolean + isSingleLine: boolean + width: number + maxLineNum: number + isLock: boolean + unplayColor: string + playedColor: string + shadowColor: string + opacity: number + textSize: number + positionX: number + positionY: number + textPositionX: LX.AppSetting['desktopLyric.textPosition.x'] + textPositionY: LX.AppSetting['desktopLyric.textPosition.y'] +}): Promise<void> => { + if (isShowLyric) return Promise.resolve() + return LyricModule.showLyric({ + isSingleLine, + isShowToggleAnima, + isLock, + unplayColor, + playedColor, + shadowColor, + alpha: getAlpha(opacity), + textSize: getTextSize(textSize), + lyricViewX: positionX, + lyricViewY: positionY, + textX: textPositionX.toUpperCase(), + textY: textPositionY.toUpperCase(), + width, + maxLineNum, + }).then(() => { + isShowLyric = true + }) +} + +/** + * hide lyric + */ +export const hideLyric = async(): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.hideLyric().then(() => { + isShowLyric = false + }) +} + + +/** + * play lyric + * @param {Number} time play time + * @returns {Promise} Promise + */ +export const play = async(time: number): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.play(time) +} + +/** + * pause lyric + */ +export const pause = async(): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.pause() +} + +/** + * set lyric + * @param lyric lyric str + * @param translation lyric translation + * @param romalrc lyric translation + */ +export const setLyric = async(lyric: string, translation: string, romalrc: string): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setLyric(lyric, translation || '', romalrc || '') +} + +/** + * toggle show translation + * @param isShowTranslation is show translation + */ +export const toggleTranslation = async(isShowTranslation: boolean): Promise<void> => { + // if (!isShowLyric) return Promise.resolve() + return LyricModule.toggleTranslation(isShowTranslation) +} + +/** + * toggle show roma lyric + * @param isShowRoma is show roma lyric + */ +export const toggleRoma = async(isShowRoma: boolean): Promise<void> => { + // if (!isShowLyric) return Promise.resolve() + return LyricModule.toggleRoma(isShowRoma) +} + +/** + * toggle is lock lyric window + * @param isLock is lock lyric window + */ +export const toggleLock = async(isLock: boolean): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.toggleLock(isLock) +} + +/** + * set color + * @param unplayColor + * @param playedColor + * @param shadowColor + */ +export const setColor = async(unplayColor: string, playedColor: string, shadowColor: string): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setColor(unplayColor, playedColor, shadowColor) +} + +/** + * set text alpha + * @param alpha text alpha + */ +export const setAlpha = async(alpha: number): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setAlpha(getAlpha(alpha)) +} + +/** + * set text size + * @param size text size + */ +export const setTextSize = async(size: any): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setTextSize(getTextSize(size)) +} + +export const setShowToggleAnima = async(isShowToggleAnima: boolean): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setShowToggleAnima(isShowToggleAnima) +} + +export const setSingleLine = async(isSingleLine: boolean): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setSingleLine(isSingleLine) +} + +export const setPosition = async(x: number, y: number): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setPosition(x, y) +} + +export const setMaxLineNum = async(maxLineNum: number): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setMaxLineNum(maxLineNum) +} + +export const setWidth = async(width: number): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setWidth(width) +} + +// export const fixViewPosition = async(): Promise<void> => { +// if (!isShowLyric) return Promise.resolve() +// return LyricModule.fixViewPosition() +// } + +export const setLyricTextPosition = async(textX: LX.AppSetting['desktopLyric.textPosition.x'], textY: LX.AppSetting['desktopLyric.textPosition.y']): Promise<void> => { + if (!isShowLyric) return Promise.resolve() + return LyricModule.setLyricTextPosition(textX.toUpperCase(), textY.toUpperCase()) +} + +export const checkOverlayPermission = async(): Promise<void> => { + return LyricModule.checkOverlayPermission() +} + +export const openOverlayPermissionActivity = async(): Promise<void> => { + return LyricModule.openOverlayPermissionActivity() +} + +export const onPositionChange = (callback: (position: { x: number, y: number }) => void): () => void => { + const eventEmitter = new NativeEventEmitter(LyricModule) + const eventListener = eventEmitter.addListener('set-position', event => { + callback(event) + }) + + return () => { + eventListener.remove() + } +} + diff --git a/src/utils/nativeModules/utils.ts b/src/utils/nativeModules/utils.ts new file mode 100644 index 0000000..7149cba --- /dev/null +++ b/src/utils/nativeModules/utils.ts @@ -0,0 +1,36 @@ +import { NativeModules } from 'react-native' + +const { UtilsModule } = NativeModules + +export const exitApp = UtilsModule.exitApp + +export const getSupportedAbis = UtilsModule.getSupportedAbis + +export const installApk = (filePath: string, fileProviderAuthority: string) => UtilsModule.installApk(filePath, fileProviderAuthority) + + +export const screenkeepAwake = () => { + if (global.lx.isScreenKeepAwake) return + global.lx.isScreenKeepAwake = true + UtilsModule.screenkeepAwake() +} +export const screenUnkeepAwake = () => { + // console.log('screenUnkeepAwake') + if (!global.lx.isScreenKeepAwake) return + global.lx.isScreenKeepAwake = false + UtilsModule.screenUnkeepAwake() +} + +export const getWIFIIPV4Address = UtilsModule.getWIFIIPV4Address as () => Promise<string> + +export const getDeviceName = async(): Promise<string> => { + return UtilsModule.getDeviceName().then((deviceName: string) => deviceName || 'Unknown') +} + +export const isNotificationsEnabled = UtilsModule.isNotificationsEnabled as () => Promise<boolean> + +export const openNotificationPermissionActivity = UtilsModule.openNotificationPermissionActivity as () => Promise<void> + +export const shareText = async(shareTitle: string, title: string, text: string): Promise<void> => { + UtilsModule.shareText(shareTitle, title, text) +} diff --git a/src/utils/permissions.js b/src/utils/permissions.js deleted file mode 100644 index d271aea..0000000 --- a/src/utils/permissions.js +++ /dev/null @@ -1,44 +0,0 @@ -import { PermissionsAndroid } from 'react-native' - - -export const checkStoragePermissions = () => PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE) - -export const requestStoragePermission = async() => { - const isGranted = await checkStoragePermissions() - if (isGranted) return isGranted - - try { - const granted = await PermissionsAndroid.requestMultiple( - [ - PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, - PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, - ], - // { - // title: '存储读写权限申请', - // message: - // '洛雪音乐助手需要使用存储读写权限才能下载歌曲.', - // buttonNeutral: '一会再问我', - // buttonNegative: '取消', - // buttonPositive: '确定', - // }, - ) - // console.log(granted) - // console.log(Object.values(granted).every(r => r === PermissionsAndroid.RESULTS.GRANTED)) - // console.log(PermissionsAndroid.RESULTS) - const granteds = Object.values(granted) - return granteds.every(r => r === PermissionsAndroid.RESULTS.GRANTED) - ? true - : granteds.includes(PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN) - ? null - : false - // if (granted === PermissionsAndroid.RESULTS.GRANTED) { - // console.log('You can use the storage') - // } else { - // console.log('Storage permission denied') - // } - } catch (err) { - console.warn(err) - return err.message - } -} - diff --git a/src/utils/pixelRatio.ts b/src/utils/pixelRatio.ts new file mode 100644 index 0000000..1c630f6 --- /dev/null +++ b/src/utils/pixelRatio.ts @@ -0,0 +1,78 @@ +/** + * Created by qianxin on 17/6/1. + * 屏幕工具类 + * ui设计基准,iphone 6 + * width:375 + * height:667 + */ +import { Dimensions, PixelRatio } from 'react-native' + +// 高保真的宽度和高度 +const designWidth = 375.0 +const designHeight = 667.0 + +// 获取屏幕的dp +let screenW = Dimensions.get('window').width +let screenH = Dimensions.get('window').height +if (screenW > screenH) { + const temp = screenW + screenW = screenH + screenH = temp +} +let fontScale = PixelRatio.getFontScale() +let pixelRatio = PixelRatio.get() +// 根据dp获取屏幕的px +let screenPxW = PixelRatio.getPixelSizeForLayoutSize(screenW) +let screenPxH = PixelRatio.getPixelSizeForLayoutSize(screenH) +// console.log(screenPxW, screenPxH) + +const scaleW = screenPxW / designWidth +const scaleH = screenPxH / designHeight +const scale = Math.min(scaleW, scaleH, 3.1) +// console.log(scale) + +/** + * 设置text + * @param size px + * @returns dp + */ +export function getTextSize(size: number) { + // console.log('screenW======' + screenW) + // console.log('screenPxW======' + screenPxW) + let scaleWidth = screenW / designWidth + let scaleHeight = screenH / designHeight + // console.log(scaleWidth, scaleHeight) + let scale = Math.min(scaleWidth, scaleHeight, 1.3) + size = Math.floor(size * scale / fontScale) + // console.log(size) + return size +} +export function setSpText(size: number) { + return getTextSize(size) * global.lx.fontSize +} + +/** + * 设置高度 + * @param size px + * @returns dp + */ +export function scaleSizeH(size: number) { + // console.log(screenPxH / designHeight) + // let scaleHeight = size * Math.min(screenPxH / designHeight, 3.1) + let scaleHeight = size * scale + size = Math.floor(scaleHeight / pixelRatio) + return size * global.lx.fontSize +} + +/** + * 设置宽度 + * @param size px + * @returns dp + */ +export function scaleSizeW(size: number) { + // console.log(screenPxW / designWidth) + // let scaleWidth = size * Math.min(screenPxW / designWidth, 3.1) + let scaleWidth = size * scale + size = Math.floor(scaleWidth / pixelRatio) + return size * global.lx.fontSize +} diff --git a/src/utils/request.js b/src/utils/request.js index 0555d13..5ae7ae4 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,9 +1,8 @@ // import needle from 'needle' // import progress from 'request-progress' import BackgroundTimer from 'react-native-background-timer' -import { debugRequest } from './env' import { requestMsg } from './message' -import { bHh } from './music/options' +import { bHh } from './musicSdk/options' import { deflateRaw } from 'pako' const defaultHeaders = { @@ -56,7 +55,7 @@ export const httpGet = (url, options, callback) => { requestObj.request.then(resp => { callback(null, resp, resp.body) }).catch(err => { - debugRequest && console.log(JSON.stringify(err)) + // debugRequest && console.log(JSON.stringify(err)) callback(err, null, null) }) @@ -158,16 +157,16 @@ const fetchData = (url, { timeout = 15000, ...options }) => { console.log('---start---', url) const controller = new global.AbortController() - const id = BackgroundTimer.setTimeout(() => controller.abort(), timeout) + let id = BackgroundTimer.setTimeout(() => { + id = null + controller.abort() + }, timeout) return { request: handleRequestData(url, options).then(options => { return global.fetch(url, { ...options, signal: controller.signal, - }).then(response => { - BackgroundTimer.clearTimeout(id) - return response }).then(resp => resp.text().then(text => { // console.log(options, headers, text) return { @@ -186,6 +185,9 @@ const fetchData = (url, { timeout = 15000, ...options }) => { }).catch(err => { // console.log(err, err.code, err.message) return Promise.reject(err) + }).finally(() => { + if (id == null) return + BackgroundTimer.clearTimeout(id) }) }), abort() { diff --git a/src/utils/tools.js b/src/utils/tools.js deleted file mode 100644 index a2cef41..0000000 --- a/src/utils/tools.js +++ /dev/null @@ -1,446 +0,0 @@ -import { Platform, NativeModules, ToastAndroid, BackHandler, Linking, Dimensions, Alert, Appearance } from 'react-native' -// import ExtraDimensions from 'react-native-extra-dimensions-android' -import Clipboard from '@react-native-clipboard/clipboard' -import { getData, setData, getAllKeys, removeData, removeDataMultiple, setDataMultiple, getDataMultiple } from '@/plugins/storage' -import { storageDataPrefix } from '@/config' -import { throttle } from './index' -import { gzip, ungzip } from '@/utils/gzip' -import { readFile, writeFile, temporaryDirectoryPath, unlink } from '@/utils/fs' -import { isNotificationsEnabled, openNotificationPermissionActivity, shareText } from '@/utils/utils' -import { i18n } from '@/plugins/i18n' -import music from '@/utils/music' - -const playInfoStorageKey = storageDataPrefix.playInfo -const listPositionPrefix = storageDataPrefix.listPosition -const syncAuthKeyPrefix = storageDataPrefix.syncAuthKey -const syncHostPrefix = storageDataPrefix.syncHost -const syncHostHistoryPrefix = storageDataPrefix.syncHostHistory -const listPrefix = storageDataPrefix.list -const listSortPrefix = storageDataPrefix.listSort -const defaultListKey = listPrefix + 'default' -const loveListKey = listPrefix + 'love' -const notificationTipEnableKey = storageDataPrefix.notificationTipEnable - - -// https://stackoverflow.com/a/47349998 -let deviceLanguage = Platform.OS === 'ios' - ? NativeModules.SettingsManager.settings.AppleLocale || - NativeModules.SettingsManager.settings.AppleLanguages[0] // iOS 13 - : NativeModules.I18nManager.localeIdentifier -deviceLanguage = typeof deviceLanguage === 'string' ? deviceLanguage.substring(0, 5).toLocaleLowerCase() : '' - -export const isAndroid = Platform.OS === 'android' -export const osVer = Platform.constants.Release - -const handleSaveListScrollPosition = throttle(data => { - setData(listPositionPrefix, data) -}, 1000) - - -// fix https://github.com/facebook/react-native/issues/4934 -export const getWindowSise = windowDimensions => { - if (!windowDimensions) windowDimensions = Dimensions.get('window') - // if (Platform.OS === 'ios') return windowDimensions - return windowDimensions - // const windowSize = { - // width: ExtraDimensions.getRealWindowWidth(), - // height: ExtraDimensions.getRealWindowHeight(), - // } - // if ( - // (windowDimensions.height > windowDimensions.width && windowSize.height < windowSize.width) || - // (windowDimensions.width > windowDimensions.height && windowSize.width < windowSize.height) - // ) { - // windowSize.height = windowSize.width - // } - // windowSize.width = windowDimensions.width - - // if (ExtraDimensions.isSoftMenuBarEnabled()) { - // windowSize.height -= ExtraDimensions.getSoftMenuBarHeight() - // } - // return windowSize -} - - -/** - * 显示toast - * @param {String} message 消息 - * @param {String} duration 时长,可用值:long、short - * @param {String} position 位置,可用值:top、center、bottom - */ -export const toast = (message, duration = 'short', position = 'bottom') => { - switch (duration) { - case 'long': - duration = ToastAndroid.LONG - break - case 'short': - default: - duration = ToastAndroid.SHORT - break - } - switch (position) { - case 'top': - position = ToastAndroid.TOP - break - case 'center': - position = ToastAndroid.CENTER - break - case 'bottom': - default: - position = ToastAndroid.BOTTOM - break - } - ToastAndroid.show(message, duration, position) -} - -export const openUrl = url => Linking.canOpenURL(url).then(() => Linking.openURL(url)) - -export const assertApiSupport = source => global.globalObj.qualityList[source] != undefined - -// const handleRemoveDataMultiple = async keys => { -// await removeDataMultiple(keys.splice(0, 500)) -// if (keys.length) return handleRemoveDataMultiple(keys) -// } - - -export const getAllListData = async() => { - let defaultList - let loveList - let userList = [] - let keys = await getAllKeys() - const listKeys = [] - for (const key of keys) { - if (key.startsWith(listPrefix)) { - listKeys.push(key) - } - } - const listData = await getDataMultiple(listKeys) - for (const { key, value } of listData) { - switch (key) { - case defaultListKey: - defaultList = value - break - case loveListKey: - loveList = value - break - default: - userList.push(value) - break - } - } - const listPositionData = await getData(listPositionPrefix) || {} - const listPosition = {} - for (const [key, value] of Object.entries(listPositionData)) { - listPosition[key] = value - } - const listSortData = await getData(listSortPrefix) || {} - return { - defaultList, - loveList, - userList, - listPosition, - listSort: listSortData, - } -} - -export const saveList = async listData => { - if (Array.isArray(listData)) { - await setDataMultiple(listData.map(list => ({ key: listPrefix + list.id, value: list }))) - } else { - await setData(listPrefix + listData.id, listData) - } -} -export const removeList = async listId => { - if (Array.isArray(listId)) { - await removeDataMultiple(listId.map(id => { - delete global.listScrollPosition[id] - delete global.listSort[id] - return listPrefix + id - })) - } else { - await removeData(listPrefix + listId) - } - await setData(listSortPrefix, global.listSort) - handleSaveListScrollPosition(global.listScrollPosition) -} - - -export const saveListAllSort = async listSort => { - global.listSort = listSort - await setData(listSortPrefix, listSort) -} -export const saveListSort = (listId, index) => { - global.listSort[listId] = index - setData(listSortPrefix, global.listSort) -} -export const removeListSort = async listIds => { - for (const id of listIds) { - delete global.listSort[id] - } - setData(listSortPrefix, global.listSort) -} - -export const getMusicUrl = (musicInfo, type) => getData(`${storageDataPrefix.musicUrl}${musicInfo.source}_${musicInfo.songmid}_${type}`).then(url => url || '') -export const saveMusicUrl = (musicInfo, type, url) => setData(`${storageDataPrefix.musicUrl}${musicInfo.source}_${musicInfo.songmid}_${type}`, url) -export const clearMusicUrl = async() => { - let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.musicUrl)) - await removeDataMultiple(keys) -} - -export const getLyric = musicInfo => getData(`${storageDataPrefix.lyric}${musicInfo.source}_${musicInfo.songmid}`).then(lrcInfo => lrcInfo || {}) -export const saveLyric = (musicInfo, { lyric, tlyric, rlyric, lxlyric }) => setData(`${storageDataPrefix.lyric}${musicInfo.source}_${musicInfo.songmid}`, { lyric, tlyric, rlyric, lxlyric }) -export const clearLyric = async() => { - let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.lyric)) - await removeDataMultiple(keys) -} - -export const clearMusicUrlAndLyric = async() => { - let keys = (await getAllKeys()).filter(key => key.startsWith(storageDataPrefix.musicUrl) || key.startsWith(storageDataPrefix.lyric)) - await removeDataMultiple(keys) -} - -export const delaySavePlayInfo = throttle(n => { - setData(playInfoStorageKey, n) -}, 2000) -export const savePlayInfo = (info, isDelay) => { - isDelay - ? delaySavePlayInfo(info) - : setData(playInfoStorageKey, info) -} -export const getPlayInfo = () => getData(playInfoStorageKey) - - -export const saveListScrollPosition = (listId, position) => { - global.listScrollPosition[listId] = position - handleSaveListScrollPosition(global.listScrollPosition) -} -export const getListScrollPosition = listId => { - return global.listScrollPosition[listId] || 0 -} -export const removeListScrollPosition = async listIds => { - for (const id of listIds) { - delete global.listScrollPosition[id] - } - handleSaveListScrollPosition(global.listScrollPosition) -} - -export const getSyncAuthKey = async serverId => { - const keys = await getData(syncAuthKeyPrefix) - if (!keys) return null - return keys[serverId] || null -} - -export const setSyncAuthKey = async(serverId, key) => { - let keys = await getData(syncAuthKeyPrefix) || {} - keys[serverId] = key - await setData(syncAuthKeyPrefix, keys) -} - -let syncHostInfo -export const getSyncHost = async() => { - if (syncHostInfo === undefined) { - syncHostInfo = await getData(syncHostPrefix) || { host: '', port: '23332' } - } - return { ...syncHostInfo } -} -export const setSyncHost = async({ host, port }) => { - // let hostInfo = await getData(syncHostPrefix) || {} - // hostInfo.host = host - // hostInfo.port = port - syncHostInfo.host = host - syncHostInfo.port = port - await setData(syncHostPrefix, syncHostInfo) -} -let syncHostHistory -export const getSyncHostHistory = async() => { - if (syncHostHistory === undefined) { - syncHostHistory = await getData(syncHostHistoryPrefix) || [] - } - return syncHostHistory -} -export const addSyncHostHistory = async(host, port) => { - let syncHostHistory = await getSyncHostHistory() - if (syncHostHistory.some(h => h.host == host && h.port == port)) return - syncHostHistory.unshift({ host, port }) - if (syncHostHistory.length > 20) syncHostHistory = syncHostHistory.slice(0, 20) // 最多存储20个 - await setData(syncHostHistoryPrefix, syncHostHistory) -} -export const removeSyncHostHistory = async index => { - syncHostHistory.splice(index, 1) - await setData(syncHostHistoryPrefix, syncHostHistory) -} - -export const exitApp = BackHandler.exitApp - -export const handleSaveFile = async(path, data) => { - // if (!path.endsWith('.json')) path += '.json' - // const buffer = gzip(data) - const tempFilePath = `${temporaryDirectoryPath}/tempFile.json` - await writeFile(tempFilePath, JSON.stringify(data), 'utf8') - await gzip(tempFilePath, path) - await unlink(tempFilePath) -} -export const handleReadFile = async(path) => { - let isJSON = path.endsWith('.json') - let data - if (isJSON) { - data = await readFile(path, 'utf8') - } else { - const tempFilePath = `${temporaryDirectoryPath}/tempFile.json` - await ungzip(path, tempFilePath) - data = await readFile(tempFilePath, 'utf8') - await unlink(tempFilePath) - } - return JSON.parse(data) -} - -export const confirmDialog = ({ - message = '', - cancelButtonText = global.i18n.t('dialog_cancel'), - confirmButtonText = global.i18n.t('dialog_confirm'), - bgClose = true, -}) => { - return new Promise(resolve => { - Alert.alert(null, message, [ - { - text: cancelButtonText, - onPress() { - resolve(false) - }, - }, - { - text: confirmButtonText, - onPress() { - resolve(true) - }, - }, - ], { - cancelable: bgClose, - onDismiss() { - resolve(false) - }, - }) - }) -} - -export const clipboardWriteText = str => { - Clipboard.setString(str) -} - -export const checkNotificationPermission = async() => { - const isHide = await getData(notificationTipEnableKey) - if (isHide != null) return - const enabled = await isNotificationsEnabled() - if (enabled) return - Alert.alert( - i18n.t('notifications_check_title'), - i18n.t('notifications_check_tip'), - [ - { - text: i18n.t('never_show'), - onPress: () => { - setData(notificationTipEnableKey, '1') - toast(i18n.t('disagree_tip')) - }, - }, - { - text: i18n.t('disagree'), - onPress: () => { - toast(i18n.t('disagree_tip')) - }, - }, - { - text: i18n.t('agree_go'), - onPress: () => { - openNotificationPermissionActivity() - }, - }, - ], - ) -} -export const resetNotificationPermissionCheck = () => { - return removeData(notificationTipEnableKey) -} - -export const shareMusic = (shareType, downloadFileName, musicInfo) => { - const name = musicInfo.name - const singer = musicInfo.singer - const detailUrl = music[musicInfo.source]?.getMusicDetailPageUrl(musicInfo) ?? '' - const musicTitle = downloadFileName.replace('歌名', name).replace('歌手', singer) - switch (shareType) { - case 'system': - shareText(i18n.t('share_card_title_music', { name }), i18n.t('share_title_music'), `${musicTitle.replace(/\s/g, '')} \n${detailUrl}`) - break - case 'clipboard': - clipboardWriteText(`${musicTitle} ${detailUrl}`) - toast(i18n.t('copy_name_tip')) - break - } -} - -export const getAppearance = () => { - return Appearance.getColorScheme() -} - -export const onAppearanceChange = callback => { - return Appearance.addChangeListener(({ colorScheme }) => { - callback(colorScheme) - }) -} - -let isSupportedAutoTheme = null -export const getIsSupportedAutoTheme = () => { - if (isSupportedAutoTheme == null) { - const osVerNum = parseInt(osVer) - isSupportedAutoTheme = isAndroid - ? osVerNum >= 10 - : osVerNum >= 13 - } - return isSupportedAutoTheme -} - - -export const deduplicationList = list => { - const ids = new Set() - return list.filter(s => { - if (ids.has(s.songmid)) return false - ids.add(s.songmid) - return true - }) -} - -export const showImportTip = type => { - let message - switch (type) { - case 'defautlList': - case 'playList': - message = i18n.t('list_import_tip__playlist') - break - case 'setting': - message = i18n.t('list_import_tip__setting') - break - case 'allData': - message = i18n.t('list_import_tip__alldata') - break - case 'playListPart': - message = i18n.t('list_import_tip__playlist_part') - break - - default: - message = i18n.t('list_import_tip__unknown') - break - } - Alert.alert( - i18n.t('list_import_tip__failed'), - message, - [ - { - text: i18n.t('ok'), - }, - ], - ) -} - - -export { - deviceLanguage, -} diff --git a/src/utils/tools.ts b/src/utils/tools.ts new file mode 100644 index 0000000..e497270 --- /dev/null +++ b/src/utils/tools.ts @@ -0,0 +1,421 @@ +import { Platform, NativeModules, ToastAndroid, BackHandler, Linking, Dimensions, Alert, Appearance, PermissionsAndroid, AppState, StyleSheet, type ScaledSize } from 'react-native' +// import ExtraDimensions from 'react-native-extra-dimensions-android' +import Clipboard from '@react-native-clipboard/clipboard' +import { storageDataPrefix } from '@/config/constant' +import { gzip, ungzip } from '@/utils/nativeModules/gzip' +import { readFile, writeFile, temporaryDirectoryPath, unlink } from '@/utils/fs' +import { isNotificationsEnabled, openNotificationPermissionActivity, shareText } from '@/utils/nativeModules/utils' +import musicSdk from '@/utils/musicSdk' +import { getData, removeData, saveData } from '@/plugins/storage' +import BackgroundTimer from 'react-native-background-timer' +import { scaleSizeH, scaleSizeW, setSpText } from './pixelRatio' + + +// https://stackoverflow.com/a/47349998 +let deviceLanguage = Platform.OS === 'ios' + ? NativeModules.SettingsManager.settings.AppleLocale || + NativeModules.SettingsManager.settings.AppleLanguages[0] // iOS 13 + : NativeModules.I18nManager.localeIdentifier +deviceLanguage = typeof deviceLanguage === 'string' ? deviceLanguage.substring(0, 5).toLocaleLowerCase() : '' + +export const isAndroid = Platform.OS === 'android' +// @ts-expect-error +export const osVer = Platform.constants.Release as string + +export const isActive = () => AppState.currentState == 'active' + + +// fix https://github.com/facebook/react-native/issues/4934 +export const getWindowSise = (windowDimensions?: ReturnType<(typeof Dimensions)['get']>) => { + windowDimensions ??= Dimensions.get('window') + // if (Platform.OS === 'ios') return windowDimensions + return windowDimensions + // const windowSize = { + // width: ExtraDimensions.getRealWindowWidth(), + // height: ExtraDimensions.getRealWindowHeight(), + // } + // if ( + // (windowDimensions.height > windowDimensions.width && windowSize.height < windowSize.width) || + // (windowDimensions.width > windowDimensions.height && windowSize.width < windowSize.height) + // ) { + // windowSize.height = windowSize.width + // } + // windowSize.width = windowDimensions.width + + // if (ExtraDimensions.isSoftMenuBarEnabled()) { + // windowSize.height -= ExtraDimensions.getSoftMenuBarHeight() + // } + // return windowSize +} + +export const checkStoragePermissions = async() => PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE) + +export const requestStoragePermission = async() => { + const isGranted = await checkStoragePermissions() + if (isGranted) return isGranted + + try { + const granted = await PermissionsAndroid.requestMultiple( + [ + PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, + PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, + ], + // { + // title: '存储读写权限申请', + // message: + // '洛雪音乐助手需要使用存储读写权限才能下载歌曲.', + // buttonNeutral: '一会再问我', + // buttonNegative: '取消', + // buttonPositive: '确定', + // }, + ) + // console.log(granted) + // console.log(Object.values(granted).every(r => r === PermissionsAndroid.RESULTS.GRANTED)) + // console.log(PermissionsAndroid.RESULTS) + const granteds = Object.values(granted) + return granteds.every(r => r === PermissionsAndroid.RESULTS.GRANTED) + ? true + : granteds.includes(PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN) + ? null + : false + // if (granted === PermissionsAndroid.RESULTS.GRANTED) { + // console.log('You can use the storage') + // } else { + // console.log('Storage permission denied') + // } + } catch (err: any) { + // console.warn(err) + return false + } +} + + +/** + * 显示toast + * @param message 消息 + * @param duration 时长 + * @param position 位置 + */ +export const toast = (message: string, duration: 'long' | 'short' = 'short', position: 'top' | 'center' | 'bottom' = 'bottom') => { + let _duration + switch (duration) { + case 'long': + _duration = ToastAndroid.LONG + break + case 'short': + default: + _duration = ToastAndroid.SHORT + break + } + let _position + switch (position) { + case 'top': + _position = ToastAndroid.TOP + break + case 'center': + _position = ToastAndroid.CENTER + break + case 'bottom': + default: + _position = ToastAndroid.BOTTOM + break + } + ToastAndroid.showWithGravity(message, _duration, _position) +} + +export const openUrl = async(url: string): Promise<void> => Linking.canOpenURL(url).then(async() => Linking.openURL(url)) + +export const assertApiSupport = (source: LX.Source): boolean => { + return source == 'local' || global.lx.qualityList[source] != null +} + +// const handleRemoveDataMultiple = async keys => { +// await removeDataMultiple(keys.splice(0, 500)) +// if (keys.length) return handleRemoveDataMultiple(keys) +// } + +export const exitApp = BackHandler.exitApp + +export const handleSaveFile = async(path: string, data: any) => { + // if (!path.endsWith('.json')) path += '.json' + // const buffer = gzip(data) + const tempFilePath = `${temporaryDirectoryPath}/tempFile.json` + await writeFile(tempFilePath, JSON.stringify(data), 'utf8') + await gzip(tempFilePath, path) + await unlink(tempFilePath) +} +export const handleReadFile = async<T = unknown>(path: string): Promise<T> => { + let isJSON = path.endsWith('.json') + let data + if (isJSON) { + data = await readFile(path, 'utf8') + } else { + const tempFilePath = `${temporaryDirectoryPath}/tempFile.json` + await ungzip(path, tempFilePath) + data = await readFile(tempFilePath, 'utf8') + await unlink(tempFilePath) + } + return JSON.parse(data) +} + +export const confirmDialog = async({ + message = '', + cancelButtonText = global.i18n.t('dialog_cancel'), + confirmButtonText = global.i18n.t('dialog_confirm'), + bgClose = true, +}) => { + return new Promise(resolve => { + Alert.alert('', message, [ + { + text: cancelButtonText, + onPress() { + resolve(false) + }, + }, + { + text: confirmButtonText, + onPress() { + resolve(true) + }, + }, + ], { + cancelable: bgClose, + onDismiss() { + resolve(false) + }, + }) + }) +} + +export const clipboardWriteText = (str: string) => { + Clipboard.setString(str) +} + + +export const checkNotificationPermission = async() => { + const isHide = await getData(storageDataPrefix.notificationTipEnable) + if (isHide != null) return + const enabled = await isNotificationsEnabled() + if (enabled) return + Alert.alert( + global.i18n.t('notifications_check_title'), + global.i18n.t('notifications_check_tip'), + [ + { + text: global.i18n.t('never_show'), + onPress: () => { + void saveData(storageDataPrefix.notificationTipEnable, '1') + toast(global.i18n.t('disagree_tip')) + }, + }, + { + text: global.i18n.t('disagree'), + onPress: () => { + toast(global.i18n.t('disagree_tip')) + }, + }, + { + text: global.i18n.t('agree_go'), + onPress: () => { + void openNotificationPermissionActivity() + }, + }, + ], + ) +} +export const resetNotificationPermissionCheck = async() => { + return removeData(storageDataPrefix.notificationTipEnable) +} + +export const shareMusic = (shareType: LX.ShareType, downloadFileName: LX.AppSetting['download.fileName'], musicInfo: LX.Music.MusicInfo) => { + const name = musicInfo.name + const singer = musicInfo.singer + const detailUrl = musicInfo.source == 'local' ? '' : musicSdk[musicInfo.source]?.getMusicDetailPageUrl(musicInfo) ?? '' + const musicTitle = downloadFileName.replace('歌名', name).replace('歌手', singer) + switch (shareType) { + case 'system': + void shareText(global.i18n.t('share_card_title_music', { name }), global.i18n.t('share_title_music'), `${musicTitle.replace(/\s/g, '')}${detailUrl ? '\n' + detailUrl : ''}`) + break + case 'clipboard': + clipboardWriteText(`${musicTitle}${detailUrl ? '\n' + detailUrl : ''}`) + toast(global.i18n.t('copy_name_tip')) + break + } +} + +export const onDimensionChange = (handler: (info: { window: ScaledSize, screen: ScaledSize }) => void) => { + return Dimensions.addEventListener('change', handler) +} + + +export const getAppearance = () => { + return Appearance.getColorScheme() ?? 'light' +} + +export const onAppearanceChange = (callback: (colorScheme: Parameters<Parameters<typeof Appearance['addChangeListener']>[0]>[0]['colorScheme']) => void) => { + return Appearance.addChangeListener(({ colorScheme }) => { + callback(colorScheme) + }) +} + +let isSupportedAutoTheme: boolean | null = null +export const getIsSupportedAutoTheme = () => { + if (isSupportedAutoTheme == null) { + const osVerNum = parseInt(osVer) + isSupportedAutoTheme = isAndroid + ? osVerNum >= 10 + : osVerNum >= 13 + } + return isSupportedAutoTheme +} + + +export const showImportTip = (type: string) => { + let message + switch (type) { + case 'defautlList': + case 'playList': + case 'playList_v2': + message = global.i18n.t('list_import_tip__playlist') + break + case 'setting': + case 'setting_v2': + message = global.i18n.t('list_import_tip__setting') + break + case 'allData': + case 'allData_v2': + message = global.i18n.t('list_import_tip__alldata') + break + case 'playListPart': + case 'playListPart_v2': + message = global.i18n.t('list_import_tip__playlist_part') + break + + default: + message = global.i18n.t('list_import_tip__unknown') + break + } + Alert.alert( + global.i18n.t('list_import_tip__failed'), + message, + [ + { + text: global.i18n.t('ok'), + }, + ], + ) +} + + +/** + * 生成节流函数 + * @param fn 回调 + * @param delay 延迟 + * @returns + */ +export function throttleBackgroundTimer<Args extends any[]>(fn: (...args: Args) => void | Promise<void>, delay = 100) { + let timer: number | null = null + let _args: Args + return (...args: Args) => { + _args = args + if (timer) return + timer = BackgroundTimer.setTimeout(() => { + timer = null + void fn(..._args) + }, delay) + } +} + +/** + * 生成防抖函数 + * @param fn 回调 + * @param delay 延迟 + * @returns + */ +export function debounceBackgroundTimer<Args extends any[]>(fn: (...args: Args) => void | Promise<void>, delay = 100) { + let timer: number | null = null + let _args: Args + return (...args: Args) => { + _args = args + if (timer) BackgroundTimer.clearTimeout(timer) + timer = BackgroundTimer.setTimeout(() => { + timer = null + void fn(..._args) + }, delay) + } +} + +// eslint-disable-next-line @typescript-eslint/ban-types +type Styles = StyleSheet.NamedStyles<Record<string, {}>> +type Style = Styles[keyof Styles] +const trasformeProps: Array<keyof Style> = [ + // @ts-expect-error + 'fontSize', + // @ts-expect-error + 'lineHeight', + // 'margin', + // 'marginLeft', + // 'marginRight', + // 'marginTop', + // 'marginBottom', + // 'padding', + // 'paddingLeft', + // 'paddingRight', + // 'paddingTop', + // 'paddingBottom', + 'left', + 'right', + 'top', + 'bottom', +] +export const trasformeStyle = <T extends Style>(styles: T): T => { + const newStyle: T = { ...styles } + + for (const [p, v] of Object.entries(newStyle) as Array<[keyof Style, Style[keyof Style]]>) { + if (typeof v != 'number') continue + switch (p) { + case 'height': + case 'minHeight': + case 'marginTop': + case 'marginBottom': + case 'paddingTop': + case 'paddingBottom': + newStyle[p] = scaleSizeH(v) + break + case 'width': + case 'minWidth': + case 'marginLeft': + case 'marginRight': + case 'paddingLeft': + case 'paddingRight': + newStyle[p] = scaleSizeW(v) + break + case 'padding': + newStyle.paddingRight = newStyle.paddingLeft = scaleSizeW(v) + newStyle.paddingBottom = newStyle.paddingTop = scaleSizeH(v) + break + case 'margin': + newStyle.marginRight = newStyle.marginLeft = scaleSizeW(v) + newStyle.marginBottom = newStyle.marginTop = scaleSizeH(v) + break + default: + // @ts-expect-error + if (trasformeProps.includes(p)) newStyle[p] = setSpText(v) + break + } + } + return newStyle +} + +export const createStyle = <T extends StyleSheet.NamedStyles<T>>(styles: T | StyleSheet.NamedStyles<T>): T => { + const newStyle: Record<string, Style> = { ...styles } + for (const [n, s] of Object.entries(newStyle)) { + newStyle[n] = trasformeStyle(s) + } + return StyleSheet.create(newStyle as StyleSheet.NamedStyles<T>) +} + + +export { + deviceLanguage, +} diff --git a/src/utils/utils.js b/src/utils/utils.js deleted file mode 100644 index 6fe2865..0000000 --- a/src/utils/utils.js +++ /dev/null @@ -1,36 +0,0 @@ -import { NativeModules } from 'react-native' - -const { UtilsModule } = NativeModules - -export const exitApp = UtilsModule.exitApp - -export const getSupportedAbis = UtilsModule.getSupportedAbis - -export const installApk = (filePath, fileProviderAuthority) => UtilsModule.installApk(filePath, fileProviderAuthority) - - -export const screenkeepAwake = () => { - if (global.isScreenKeepAwake) return - global.isScreenKeepAwake = true - UtilsModule.screenkeepAwake() -} -export const screenUnkeepAwake = () => { - // console.log('screenUnkeepAwake') - if (!global.isScreenKeepAwake) return - global.isScreenKeepAwake = false - UtilsModule.screenUnkeepAwake() -} - -export const getWIFIIPV4Address = UtilsModule.getWIFIIPV4Address - -export const getDeviceName = () => { - return UtilsModule.getDeviceName().then(deviceName => deviceName || 'Unknown') -} - -export const isNotificationsEnabled = UtilsModule.isNotificationsEnabled - -export const openNotificationPermissionActivity = UtilsModule.openNotificationPermissionActivity - -export const shareText = (shareTitle, title, text) => { - UtilsModule.shareText(shareTitle, title, text) -} diff --git a/src/utils/version.js b/src/utils/version.js index 788b9ca..ececd30 100644 --- a/src/utils/version.js +++ b/src/utils/version.js @@ -1,9 +1,8 @@ import { httpGet } from '@/utils/request' import { author, name } from '../../package.json' import { downloadFile, stopDownload, temporaryDirectoryPath } from '@/utils/fs' -import { getSupportedAbis, installApk } from '@/utils/utils' +import { getSupportedAbis, installApk } from '@/utils/nativeModules/utils' import { APP_PROVIDER_NAME } from '@/config/constant' -import { toast } from './tools' const abis = [ 'arm64-v8a', @@ -67,7 +66,7 @@ const getTargetAbi = async() => { return abis[abis.length - 1] } let downloadJobId = null -const noop = () => {} +const noop = (total, download) => {} let apkSavePath export const downloadNewVersion = async(version, onDownload = noop) => { @@ -75,7 +74,7 @@ export const downloadNewVersion = async(version, onDownload = noop) => { const url = `https://github.com/${author.name}/${name}/releases/download/v${version}/${name}-v${version}-${abi}.apk` let savePath = temporaryDirectoryPath + '/lx-music-mobile.apk' - if (downloadJobId) await stopDownload(downloadJobId) + if (downloadJobId) stopDownload(downloadJobId) const { jobId, promise } = downloadFile(url, savePath, { progressInterval: 500, diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..0042dc9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +// prettier-ignore +{ + "extends": "@tsconfig/react-native/tsconfig.json", /* Recommended React Native TSConfig base */ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + "types": ["react-native"], + /* Completeness */ + "skipLibCheck": true, /* Skip type checking all .d.ts files. */ + + "baseUrl": "./", + "paths": { + "@/*": ["src/*"], + // "@config": ["src/config"], + // "@store": ["src/store"], + // "@components": ["src/components"], + // "@navigation": ["src/navigation"], + // "@screens": ["src/screens"], + // "@theme": ["src/theme"], + // "@utils": ["src/utils"], + } + }, + "exclude": ["node_modules", "build", "dist", ".eslintrc.js"] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..c898f30 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6455 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==" + "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": + "integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": + "integrity" "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz" + "version" "7.20.14" + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.20.12", "@babel/core@^7.4.0-0": + "integrity" "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz" + "version" "7.20.12" + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.2.2" + "semver" "^6.3.0" + +"@babel/generator@^7.14.0", "@babel/generator@^7.20.7": + "integrity" "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz" + "version" "7.20.14" + dependencies: + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" + "jsesc" "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + "integrity" "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==" + "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + "integrity" "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + "integrity" "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + "browserslist" "^4.21.3" + "lru-cache" "^5.1.1" + "semver" "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2": + "integrity" "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": + "integrity" "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz" + "version" "7.19.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "regexpu-core" "^5.1.0" + +"@babel/helper-define-polyfill-provider@^0.3.3": + "integrity" "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + "debug" "^4.1.1" + "lodash.debounce" "^4.0.8" + "resolve" "^1.14.2" + "semver" "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9": + "integrity" "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" + "version" "7.18.9" + +"@babel/helper-explode-assignable-expression@^7.18.6": + "integrity" "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==" + "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + "integrity" "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz" + "version" "7.19.0" + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.9": + "integrity" "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-module-imports@^7.18.6": + "integrity" "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.11": + "integrity" "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz" + "version" "7.20.11" + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" + +"@babel/helper-optimise-call-expression@^7.18.6": + "integrity" "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + "integrity" "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" + "version" "7.20.2" + +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + "integrity" "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==" + "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1": + "integrity" "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz" + "version" "7.19.1" + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" + +"@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2": + "integrity" "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + "integrity" "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==" + "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/types" "^7.20.0" + +"@babel/helper-split-export-declaration@^7.18.6": + "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + "integrity" "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + "resolved" "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" + "version" "7.19.4" + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + "integrity" "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" + "version" "7.19.1" + +"@babel/helper-validator-option@^7.18.6": + "integrity" "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + "version" "7.18.6" + +"@babel/helper-wrap-function@^7.18.9": + "integrity" "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==" + "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz" + "version" "7.19.0" + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helpers@^7.20.7": + "integrity" "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz" + "version" "7.20.13" + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.13" + "@babel/types" "^7.20.7" + +"@babel/highlight@^7.18.6": + "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" + +"@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": + "integrity" "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz" + "version" "7.20.15" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + "integrity" "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + "integrity" "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + +"@babel/plugin-proposal-async-generator-functions@^7.0.0", "@babel/plugin-proposal-async-generator-functions@^7.20.1": + "integrity" "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz" + "version" "7.20.1" + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.6": + "integrity" "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.18.6": + "integrity" "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + "integrity" "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-default-from@^7.0.0": + "integrity" "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz" + "version" "7.18.10" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-default-from" "^7.18.6" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + "integrity" "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + "integrity" "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + "integrity" "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + "integrity" "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + "integrity" "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.20.2": + "integrity" "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.1" + +"@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.18.6": + "integrity" "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.18.9": + "integrity" "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + "integrity" "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + "integrity" "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + "integrity" "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.18.6": + "integrity" "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.18.6", "@babel/plugin-syntax-flow@^7.2.0": + "integrity" "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-import-assertions@^7.20.0": + "integrity" "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-syntax-json-strings@^7.8.3": + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.18.6": + "integrity" "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.20.0": + "integrity" "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz" + "version" "7.20.0" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.18.6": + "integrity" "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.18.6": + "integrity" "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.18.6": + "integrity" "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.20.2": + "integrity" "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.20.2": + "integrity" "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-split-export-declaration" "^7.18.6" + "globals" "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.18.9": + "integrity" "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.20.2": + "integrity" "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + "integrity" "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + "integrity" "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.0.0", "@babel/plugin-transform-exponentiation-operator@^7.18.6": + "integrity" "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.18.6": + "integrity" "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz" + "version" "7.19.0" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-flow" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.18.8": + "integrity" "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" + "version" "7.18.8" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.18.9": + "integrity" "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.18.9": + "integrity" "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.18.6": + "integrity" "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.19.6": + "integrity" "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz" + "version" "7.19.6" + dependencies: + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.19.6": + "integrity" "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz" + "version" "7.19.6" + dependencies: + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-simple-access" "^7.19.4" + +"@babel/plugin-transform-modules-systemjs@^7.19.6": + "integrity" "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz" + "version" "7.19.6" + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-validator-identifier" "^7.19.1" + +"@babel/plugin-transform-modules-umd@^7.18.6": + "integrity" "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.0.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": + "integrity" "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz" + "version" "7.19.1" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-new-target@^7.18.6": + "integrity" "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.18.6": + "integrity" "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.1": + "integrity" "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz" + "version" "7.20.3" + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.18.6": + "integrity" "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-display-name@^7.0.0": + "integrity" "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + "integrity" "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + "integrity" "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz" + "version" "7.19.6" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + "integrity" "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz" + "version" "7.19.0" + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.19.0" + +"@babel/plugin-transform-regenerator@^7.18.6": + "integrity" "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "regenerator-transform" "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.18.6": + "integrity" "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.0.0": + "integrity" "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz" + "version" "7.19.6" + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "babel-plugin-polyfill-corejs2" "^0.3.3" + "babel-plugin-polyfill-corejs3" "^0.6.0" + "babel-plugin-polyfill-regenerator" "^0.4.1" + "semver" "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.18.6": + "integrity" "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.19.0": + "integrity" "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz" + "version" "7.19.0" + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + +"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.18.6": + "integrity" "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.18.9": + "integrity" "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + "integrity" "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typescript@^7.18.6", "@babel/plugin-transform-typescript@^7.5.0": + "integrity" "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/helper-create-class-features-plugin" "^7.20.2" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" + +"@babel/plugin-transform-unicode-escapes@^7.18.10": + "integrity" "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz" + "version" "7.18.10" + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-regex@^7.0.0", "@babel/plugin-transform-unicode-regex@^7.18.6": + "integrity" "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.1.6": + "integrity" "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz" + "version" "7.20.2" + dependencies: + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.20.1" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.20.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.20.2" + "@babel/plugin-transform-classes" "^7.20.2" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.20.2" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.19.6" + "@babel/plugin-transform-modules-commonjs" "^7.19.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.6" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.20.1" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.20.2" + "babel-plugin-polyfill-corejs2" "^0.3.3" + "babel-plugin-polyfill-corejs3" "^0.6.0" + "babel-plugin-polyfill-regenerator" "^0.4.1" + "core-js-compat" "^3.25.1" + "semver" "^6.3.0" + +"@babel/preset-flow@^7.13.13": + "integrity" "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==" + "resolved" "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-flow-strip-types" "^7.18.6" + +"@babel/preset-modules@^0.1.5": + "integrity" "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==" + "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + "esutils" "^2.0.2" + +"@babel/preset-typescript@^7.13.0": + "integrity" "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==" + "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-typescript" "^7.18.6" + +"@babel/register@^7.13.16": + "integrity" "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==" + "resolved" "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz" + "version" "7.18.9" + dependencies: + "clone-deep" "^4.0.1" + "find-cache-dir" "^2.0.0" + "make-dir" "^2.1.0" + "pirates" "^4.0.5" + "source-map-support" "^0.5.16" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4": + "integrity" "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz" + "version" "7.20.13" + dependencies: + "regenerator-runtime" "^0.13.11" + +"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.20.7": + "integrity" "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13": + "integrity" "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz" + "version" "7.20.13" + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.13" + "@babel/types" "^7.20.7" + "debug" "^4.1.0" + "globals" "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.4.4": + "integrity" "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz" + "version" "7.20.7" + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + "to-fast-properties" "^2.0.0" + +"@craftzdog/react-native-buffer@^6.0.4", "@craftzdog/react-native-buffer@^6.0.5": + "integrity" "sha512-Av+YqfwA9e7jhgI9GFE/gTpwl/H+dRRLmZyJPOpKTy107j9Oj7oXlm3/YiMNz+C/CEGqcKAOqnXDLs4OL6AAFw==" + "resolved" "https://registry.npmjs.org/@craftzdog/react-native-buffer/-/react-native-buffer-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "ieee754" "^1.2.1" + "react-native-quick-base64" "^2.0.5" + +"@eslint/eslintrc@^1.3.3": + "integrity" "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==" + "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz" + "version" "1.3.3" + dependencies: + "ajv" "^6.12.4" + "debug" "^4.3.2" + "espree" "^9.4.0" + "globals" "^13.15.0" + "ignore" "^5.2.0" + "import-fresh" "^3.2.1" + "js-yaml" "^4.1.0" + "minimatch" "^3.1.2" + "strip-json-comments" "^3.1.1" + +"@hapi/hoek@^9.0.0": + "integrity" "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + "version" "9.3.0" + +"@hapi/topo@^5.0.0": + "integrity" "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==" + "resolved" "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "@hapi/hoek" "^9.0.0" + +"@humanwhocodes/config-array@^0.11.6": + "integrity" "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz" + "version" "0.11.7" + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + "debug" "^4.1.1" + "minimatch" "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + "integrity" "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + "version" "1.0.1" + +"@humanwhocodes/object-schema@^1.2.1": + "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + "version" "1.2.1" + +"@jest/create-cache-key-function@^27.0.1": + "integrity" "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==" + "resolved" "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@jest/types" "^27.5.1" + +"@jest/types@^26.6.2": + "integrity" "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + "chalk" "^4.0.0" + +"@jest/types@^27.5.1": + "integrity" "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + "chalk" "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + "version" "1.1.2" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14": + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": + "integrity" "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" + "version" "0.3.17" + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@nodelib/fs.scandir@2.1.5": + "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + "version" "2.1.5" + dependencies: + "@nodelib/fs.stat" "2.0.5" + "run-parallel" "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + "version" "2.0.5" + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" + "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "@nodelib/fs.scandir" "2.1.5" + "fastq" "^1.6.0" + +"@react-native-async-storage/async-storage@^1.17.11": + "integrity" "sha512-bzs45n5HNcDq6mxXnSsOHysZWn1SbbebNxldBXCQs8dSvF8Aor9KCdpm+TpnnGweK3R6diqsT8lFhX77VX0NFw==" + "resolved" "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.17.11.tgz" + "version" "1.17.11" + dependencies: + "merge-options" "^3.0.4" + +"@react-native-clipboard/clipboard@^1.11.1": + "integrity" "sha512-nvSIIHzybVWqYxcJE5hpT17ekxAAg383Ggzw5WrYHtkKX61N1AwaKSNmXs5xHV7pmKSOe/yWjtSwxIzfW51I5Q==" + "resolved" "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.11.1.tgz" + "version" "1.11.1" + +"@react-native-community/checkbox@^0.5.14": + "integrity" "sha512-UmGf3wBpoCXLmVRKIDZyzOG+QR1fOhm0FOw4KzxHTCXpsBvZgIn5wbJ+MWk4io5RohQdY8GSX2MYFmkPJeJpeA==" + "resolved" "https://registry.npmjs.org/@react-native-community/checkbox/-/checkbox-0.5.14.tgz" + "version" "0.5.14" + +"@react-native-community/cli-clean@^9.2.1": + "integrity" "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz" + "version" "9.2.1" + dependencies: + "@react-native-community/cli-tools" "^9.2.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "prompts" "^2.4.0" + +"@react-native-community/cli-config@^9.2.1": + "integrity" "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz" + "version" "9.2.1" + dependencies: + "@react-native-community/cli-tools" "^9.2.1" + "cosmiconfig" "^5.1.0" + "deepmerge" "^3.2.0" + "glob" "^7.1.3" + "joi" "^17.2.1" + +"@react-native-community/cli-debugger-ui@^9.0.0": + "integrity" "sha512-7hH05ZwU9Tp0yS6xJW0bqcZPVt0YCK7gwj7gnRu1jDNN2kughf6Lg0Ys29rAvtZ7VO1PK5c1O+zs7yFnylQDUA==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-9.0.0.tgz" + "version" "9.0.0" + dependencies: + "serve-static" "^1.13.1" + +"@react-native-community/cli-doctor@^9.3.0": + "integrity" "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz" + "version" "9.3.0" + dependencies: + "@react-native-community/cli-config" "^9.2.1" + "@react-native-community/cli-platform-ios" "^9.3.0" + "@react-native-community/cli-tools" "^9.2.1" + "chalk" "^4.1.2" + "command-exists" "^1.2.8" + "envinfo" "^7.7.2" + "execa" "^1.0.0" + "hermes-profile-transformer" "^0.0.6" + "ip" "^1.1.5" + "node-stream-zip" "^1.9.1" + "ora" "^5.4.1" + "prompts" "^2.4.0" + "semver" "^6.3.0" + "strip-ansi" "^5.2.0" + "sudo-prompt" "^9.0.0" + "wcwidth" "^1.0.1" + +"@react-native-community/cli-hermes@^9.3.1": + "integrity" "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz" + "version" "9.3.1" + dependencies: + "@react-native-community/cli-platform-android" "^9.3.1" + "@react-native-community/cli-tools" "^9.2.1" + "chalk" "^4.1.2" + "hermes-profile-transformer" "^0.0.6" + "ip" "^1.1.5" + +"@react-native-community/cli-platform-android@^9.3.1", "@react-native-community/cli-platform-android@9.3.1": + "integrity" "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz" + "version" "9.3.1" + dependencies: + "@react-native-community/cli-tools" "^9.2.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "fs-extra" "^8.1.0" + "glob" "^7.1.3" + "logkitty" "^0.7.1" + "slash" "^3.0.0" + +"@react-native-community/cli-platform-ios@^9.3.0", "@react-native-community/cli-platform-ios@9.3.0": + "integrity" "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz" + "version" "9.3.0" + dependencies: + "@react-native-community/cli-tools" "^9.2.1" + "chalk" "^4.1.2" + "execa" "^1.0.0" + "glob" "^7.1.3" + "ora" "^5.4.1" + +"@react-native-community/cli-plugin-metro@^9.2.1": + "integrity" "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz" + "version" "9.2.1" + dependencies: + "@react-native-community/cli-server-api" "^9.2.1" + "@react-native-community/cli-tools" "^9.2.1" + "chalk" "^4.1.2" + "metro" "0.72.3" + "metro-config" "0.72.3" + "metro-core" "0.72.3" + "metro-react-native-babel-transformer" "0.72.3" + "metro-resolver" "0.72.3" + "metro-runtime" "0.72.3" + "readline" "^1.3.0" + +"@react-native-community/cli-server-api@^9.2.1": + "integrity" "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz" + "version" "9.2.1" + dependencies: + "@react-native-community/cli-debugger-ui" "^9.0.0" + "@react-native-community/cli-tools" "^9.2.1" + "compression" "^1.7.1" + "connect" "^3.6.5" + "errorhandler" "^1.5.0" + "nocache" "^3.0.1" + "pretty-format" "^26.6.2" + "serve-static" "^1.13.1" + "ws" "^7.5.1" + +"@react-native-community/cli-tools@^9.2.1": + "integrity" "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz" + "version" "9.2.1" + dependencies: + "appdirsjs" "^1.2.4" + "chalk" "^4.1.2" + "find-up" "^5.0.0" + "mime" "^2.4.1" + "node-fetch" "^2.6.0" + "open" "^6.2.0" + "ora" "^5.4.1" + "semver" "^6.3.0" + "shell-quote" "^1.7.3" + +"@react-native-community/cli-types@^9.1.0": + "integrity" "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz" + "version" "9.1.0" + dependencies: + "joi" "^17.2.1" + +"@react-native-community/cli@9.3.2": + "integrity" "sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==" + "resolved" "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz" + "version" "9.3.2" + dependencies: + "@react-native-community/cli-clean" "^9.2.1" + "@react-native-community/cli-config" "^9.2.1" + "@react-native-community/cli-debugger-ui" "^9.0.0" + "@react-native-community/cli-doctor" "^9.3.0" + "@react-native-community/cli-hermes" "^9.3.1" + "@react-native-community/cli-plugin-metro" "^9.2.1" + "@react-native-community/cli-server-api" "^9.2.1" + "@react-native-community/cli-tools" "^9.2.1" + "@react-native-community/cli-types" "^9.1.0" + "chalk" "^4.1.2" + "commander" "^9.4.0" + "execa" "^1.0.0" + "find-up" "^4.1.0" + "fs-extra" "^8.1.0" + "graceful-fs" "^4.1.3" + "prompts" "^2.4.0" + "semver" "^6.3.0" + +"@react-native-community/slider@^4.4.2": + "integrity" "sha512-D9bv+3Vd2gairAhnRPAghwccgEmoM7g562pm8i4qB3Esrms5mggF81G3UvCyc0w3jjtFHh8dpQkfEoKiP0NW/Q==" + "resolved" "https://registry.npmjs.org/@react-native-community/slider/-/slider-4.4.2.tgz" + "version" "4.4.2" + +"@react-native/assets@1.0.0": + "integrity" "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==" + "resolved" "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz" + "version" "1.0.0" + +"@react-native/normalize-color@2.0.0": + "integrity" "sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==" + "resolved" "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.0.0.tgz" + "version" "2.0.0" + +"@react-native/polyfills@2.0.0": + "integrity" "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==" + "resolved" "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz" + "version" "2.0.0" + +"@sideway/address@^4.1.3": + "integrity" "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==" + "resolved" "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz" + "version" "4.1.4" + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + "integrity" "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "resolved" "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" + "version" "3.0.1" + +"@sideway/pinpoint@^2.0.0": + "integrity" "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "resolved" "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + "version" "2.0.0" + +"@socket.io/component-emitter@~3.1.0": + "integrity" "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "resolved" "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz" + "version" "3.1.0" + +"@tsconfig/react-native@^2.0.3": + "integrity" "sha512-jE58snEKBd9DXfyR4+ssZmYJ/W2mOSnNrvljR0aLyQJL9JKX6vlWELHkRjb3HBbcM9Uy0hZGijXbqEAjOERW2A==" + "resolved" "https://registry.npmjs.org/@tsconfig/react-native/-/react-native-2.0.3.tgz" + "version" "2.0.3" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + "version" "2.0.4" + +"@types/istanbul-lib-report@*": + "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.9": + "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + "version" "7.0.11" + +"@types/json5@^0.0.29": + "integrity" "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + "version" "0.0.29" + +"@types/node@*": + "integrity" "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz" + "version" "18.11.17" + +"@types/node@^17.0.31": + "integrity" "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz" + "version" "17.0.45" + +"@types/prop-types@*": + "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" + "version" "15.7.5" + +"@types/react-native-background-timer@^2.0.0": + "integrity" "sha512-y5VW82dL/ESOLg+5QQHyBdsFVA4ZklENxmOyxv8o06T+3HBG2JOSuz/CIPz1vKdB7dmWDGPZNuPosdtnp+xv2A==" + "resolved" "https://registry.npmjs.org/@types/react-native-background-timer/-/react-native-background-timer-2.0.0.tgz" + "version" "2.0.0" + +"@types/react-native-vector-icons@^6.4.13": + "integrity" "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==" + "resolved" "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz" + "version" "6.4.13" + dependencies: + "@types/react" "*" + "@types/react-native" "^0.70" + +"@types/react-native@^0.70", "@types/react-native@^0.70.11": + "integrity" "sha512-FobPtzoNPNHugBKMfzs4Li0Q9ei4tgU8SI1M5Ayg7+t5/+noCm2sknI8uwij22wMkcHcefv8RFx4q28nNVJtCQ==" + "resolved" "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.11.tgz" + "version" "0.70.11" + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.0.28": + "integrity" "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==" + "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz" + "version" "18.0.28" + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + "csstype" "^3.0.2" + +"@types/scheduler@*": + "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + "version" "0.16.2" + +"@types/semver@^7.3.12": + "integrity" "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" + "version" "7.3.13" + +"@types/yargs-parser@*": + "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + "version" "21.0.0" + +"@types/yargs@^15.0.0": + "integrity" "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz" + "version" "15.0.14" + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + "integrity" "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz" + "version" "16.0.4" + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^5.0.0": + "integrity" "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@typescript-eslint/scope-manager" "5.51.0" + "@typescript-eslint/type-utils" "5.51.0" + "@typescript-eslint/utils" "5.51.0" + "debug" "^4.3.4" + "grapheme-splitter" "^1.0.4" + "ignore" "^5.2.0" + "natural-compare-lite" "^1.4.0" + "regexpp" "^3.2.0" + "semver" "^7.3.7" + "tsutils" "^3.21.0" + +"@typescript-eslint/parser@^5.0.0": + "integrity" "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@typescript-eslint/scope-manager" "5.51.0" + "@typescript-eslint/types" "5.51.0" + "@typescript-eslint/typescript-estree" "5.51.0" + "debug" "^4.3.4" + +"@typescript-eslint/scope-manager@5.51.0": + "integrity" "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@typescript-eslint/types" "5.51.0" + "@typescript-eslint/visitor-keys" "5.51.0" + +"@typescript-eslint/type-utils@5.51.0": + "integrity" "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@typescript-eslint/typescript-estree" "5.51.0" + "@typescript-eslint/utils" "5.51.0" + "debug" "^4.3.4" + "tsutils" "^3.21.0" + +"@typescript-eslint/types@5.51.0": + "integrity" "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz" + "version" "5.51.0" + +"@typescript-eslint/typescript-estree@5.51.0": + "integrity" "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@typescript-eslint/types" "5.51.0" + "@typescript-eslint/visitor-keys" "5.51.0" + "debug" "^4.3.4" + "globby" "^11.1.0" + "is-glob" "^4.0.3" + "semver" "^7.3.7" + "tsutils" "^3.21.0" + +"@typescript-eslint/utils@5.51.0": + "integrity" "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.51.0" + "@typescript-eslint/types" "5.51.0" + "@typescript-eslint/typescript-estree" "5.51.0" + "eslint-scope" "^5.1.1" + "eslint-utils" "^3.0.0" + "semver" "^7.3.7" + +"@typescript-eslint/visitor-keys@5.51.0": + "integrity" "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==" + "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz" + "version" "5.51.0" + dependencies: + "@typescript-eslint/types" "5.51.0" + "eslint-visitor-keys" "^3.3.0" + +"abort-controller@^3.0.0": + "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" + "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "event-target-shim" "^5.0.0" + +"absolute-path@^0.0.0": + "integrity" "sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==" + "resolved" "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz" + "version" "0.0.0" + +"accepts@^1.3.7", "accepts@~1.3.5", "accepts@~1.3.7": + "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" + "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + "version" "1.3.8" + dependencies: + "mime-types" "~2.1.34" + "negotiator" "0.6.3" + +"acorn-jsx@^5.3.2": + "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + "version" "5.3.2" + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.8.0": + "integrity" "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz" + "version" "8.8.1" + +"ajv@^6.10.0", "ajv@^6.12.4": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"anser@^1.4.9": + "integrity" "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" + "resolved" "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz" + "version" "1.4.10" + +"ansi-fragments@^0.2.1": + "integrity" "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==" + "resolved" "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "colorette" "^1.0.7" + "slice-ansi" "^2.0.0" + "strip-ansi" "^5.0.0" + +"ansi-regex@^4.1.0": + "integrity" "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" + "version" "4.1.1" + +"ansi-regex@^5.0.0", "ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"anymatch@^3.0.3": + "integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" + +"appdirsjs@^1.2.4": + "integrity" "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==" + "resolved" "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz" + "version" "1.2.7" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" + +"arr-diff@^4.0.0": + "integrity" "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" + "resolved" "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + "version" "4.0.0" + +"arr-flatten@^1.1.0": + "integrity" "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "resolved" "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + "version" "1.1.0" + +"arr-union@^3.1.0": + "integrity" "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" + "resolved" "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + "version" "3.1.0" + +"array-includes@^3.1.5", "array-includes@^3.1.6": + "integrity" "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==" + "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" + "version" "3.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "get-intrinsic" "^1.1.3" + "is-string" "^1.0.7" + +"array-union@^2.1.0": + "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + "version" "2.1.0" + +"array-unique@^0.3.2": + "integrity" "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" + "resolved" "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + "version" "0.3.2" + +"array.prototype.flat@^1.3.1": + "integrity" "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==" + "resolved" "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + +"array.prototype.flatmap@^1.3.1": + "integrity" "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==" + "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + +"array.prototype.tosorted@^1.1.1": + "integrity" "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==" + "resolved" "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "es-shim-unscopables" "^1.0.0" + "get-intrinsic" "^1.1.3" + +"asap@~2.0.6": + "integrity" "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + "version" "2.0.6" + +"asn1.js@^5.2.0": + "integrity" "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==" + "resolved" "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "bn.js" "^4.0.0" + "inherits" "^2.0.1" + "minimalistic-assert" "^1.0.0" + "safer-buffer" "^2.1.0" + +"assign-symbols@^1.0.0": + "integrity" "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" + "resolved" "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + "version" "1.0.0" + +"ast-types@0.14.2": + "integrity" "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==" + "resolved" "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz" + "version" "0.14.2" + dependencies: + "tslib" "^2.0.1" + +"astral-regex@^1.0.0": + "integrity" "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + "version" "1.0.0" + +"async-limiter@~1.0.0": + "integrity" "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "resolved" "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + "version" "1.0.1" + +"async@^3.2.2": + "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz" + "version" "3.2.4" + +"atob@^2.1.2": + "integrity" "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + "version" "2.1.2" + +"babel-core@^7.0.0-bridge.0": + "integrity" "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==" + "resolved" "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" + "version" "7.0.0-bridge.0" + +"babel-plugin-module-resolver@^5.0.0": + "integrity" "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==" + "resolved" "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "find-babel-config" "^2.0.0" + "glob" "^8.0.3" + "pkg-up" "^3.1.0" + "reselect" "^4.1.7" + "resolve" "^1.22.1" + +"babel-plugin-polyfill-corejs2@^0.3.3": + "integrity" "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + "semver" "^6.1.1" + +"babel-plugin-polyfill-corejs3@^0.6.0": + "integrity" "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + "core-js-compat" "^3.25.1" + +"babel-plugin-polyfill-regenerator@^0.4.1": + "integrity" "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.3" + +"babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0": + "integrity" "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz" + "version" "7.0.0-beta.0" + +"babel-preset-fbjs@^3.4.0": + "integrity" "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==" + "resolved" "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "babel-plugin-syntax-trailing-function-commas" "^7.0.0-beta.0" + +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" + +"base-64@^0.1.0": + "integrity" "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + "resolved" "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz" + "version" "0.1.0" + +"base@^0.11.1": + "integrity" "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==" + "resolved" "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + "version" "0.11.2" + dependencies: + "cache-base" "^1.0.1" + "class-utils" "^0.3.5" + "component-emitter" "^1.2.1" + "define-property" "^1.0.0" + "isobject" "^3.0.1" + "mixin-deep" "^1.2.0" + "pascalcase" "^0.1.1" + +"base64-js@^1.1.2", "base64-js@^1.3.1", "base64-js@^1.5.1": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" + +"bl@^4.1.0": + "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" + "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "buffer" "^5.5.0" + "inherits" "^2.0.4" + "readable-stream" "^3.4.0" + +"bn.js@^4.0.0": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^4.1.0": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^4.11.9": + "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + "version" "4.12.0" + +"bn.js@^5.0.0", "bn.js@^5.1.1": + "integrity" "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + "version" "5.2.1" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"brace-expansion@^2.0.1": + "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "balanced-match" "^1.0.0" + +"braces@^2.3.1": + "integrity" "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==" + "resolved" "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + "version" "2.3.2" + dependencies: + "arr-flatten" "^1.1.0" + "array-unique" "^0.3.2" + "extend-shallow" "^2.0.1" + "fill-range" "^4.0.0" + "isobject" "^3.0.1" + "repeat-element" "^1.1.2" + "snapdragon" "^0.8.1" + "snapdragon-node" "^2.0.1" + "split-string" "^3.0.2" + "to-regex" "^3.0.1" + +"braces@^3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"brorand@^1.0.1", "brorand@^1.1.0": + "integrity" "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + "version" "1.1.0" + +"browserify-aes@^1.0.0", "browserify-aes@^1.0.4": + "integrity" "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==" + "resolved" "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "buffer-xor" "^1.0.3" + "cipher-base" "^1.0.0" + "create-hash" "^1.1.0" + "evp_bytestokey" "^1.0.3" + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"browserify-cipher@^1.0.0": + "integrity" "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==" + "resolved" "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "browserify-aes" "^1.0.4" + "browserify-des" "^1.0.0" + "evp_bytestokey" "^1.0.0" + +"browserify-des@^1.0.0": + "integrity" "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==" + "resolved" "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "cipher-base" "^1.0.1" + "des.js" "^1.0.0" + "inherits" "^2.0.1" + "safe-buffer" "^5.1.2" + +"browserify-rsa@^4.0.0", "browserify-rsa@^4.0.1": + "integrity" "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==" + "resolved" "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "bn.js" "^5.0.0" + "randombytes" "^2.0.1" + +"browserify-sign@^4.0.0": + "integrity" "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==" + "resolved" "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "bn.js" "^5.1.1" + "browserify-rsa" "^4.0.1" + "create-hash" "^1.2.0" + "create-hmac" "^1.1.7" + "elliptic" "^6.5.3" + "inherits" "^2.0.4" + "parse-asn1" "^5.1.5" + "readable-stream" "^3.6.0" + "safe-buffer" "^5.2.0" + +"browserslist@^4.21.3", "browserslist@^4.21.4", "browserslist@>= 4.21.0": + "integrity" "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz" + "version" "4.21.4" + dependencies: + "caniuse-lite" "^1.0.30001400" + "electron-to-chromium" "^1.4.251" + "node-releases" "^2.0.6" + "update-browserslist-db" "^1.0.9" + +"bser@2.1.1": + "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" + "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-int64" "^0.4.0" + +"buffer-from@^1.0.0": + "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + "version" "1.1.2" + +"buffer-xor@^1.0.3": + "integrity" "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "resolved" "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + "version" "1.0.3" + +"buffer@^5.5.0": + "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + "version" "5.7.1" + dependencies: + "base64-js" "^1.3.1" + "ieee754" "^1.1.13" + +"builtins@^5.0.1": + "integrity" "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==" + "resolved" "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "semver" "^7.0.0" + +"bytes@3.0.0": + "integrity" "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + "version" "3.0.0" + +"cache-base@^1.0.1": + "integrity" "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==" + "resolved" "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "collection-visit" "^1.0.0" + "component-emitter" "^1.2.1" + "get-value" "^2.0.6" + "has-value" "^1.0.0" + "isobject" "^3.0.1" + "set-value" "^2.0.0" + "to-object-path" "^0.3.0" + "union-value" "^1.0.0" + "unset-value" "^1.0.0" + +"call-bind@^1.0.0", "call-bind@^1.0.2": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"caller-callsite@^2.0.0": + "integrity" "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==" + "resolved" "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "callsites" "^2.0.0" + +"caller-path@^2.0.0": + "integrity" "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==" + "resolved" "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-callsite" "^2.0.0" + +"callsites@^2.0.0": + "integrity" "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + "version" "2.0.0" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camelcase@^5.0.0": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.0.0": + "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + "version" "6.3.0" + +"caniuse-lite@^1.0.30001400": + "integrity" "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz" + "version" "1.0.30001431" + +"chalk@^2.0.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.0.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.2": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^3.2.0": + "integrity" "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz" + "version" "3.6.1" + +"cipher-base@^1.0.0", "cipher-base@^1.0.1", "cipher-base@^1.0.3": + "integrity" "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" + "resolved" "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"class-utils@^0.3.5": + "integrity" "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==" + "resolved" "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + "version" "0.3.6" + dependencies: + "arr-union" "^3.1.0" + "define-property" "^0.2.5" + "isobject" "^3.0.0" + "static-extend" "^0.1.1" + +"cli-cursor@^3.1.0": + "integrity" "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "restore-cursor" "^3.1.0" + +"cli-spinners@^2.5.0": + "integrity" "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz" + "version" "2.7.0" + +"cliui@^6.0.0": + "integrity" "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^6.2.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"clone-deep@^4.0.1": + "integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==" + "resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-plain-object" "^2.0.4" + "kind-of" "^6.0.2" + "shallow-clone" "^3.0.0" + +"clone@^1.0.2": + "integrity" "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + +"collection-visit@^1.0.0": + "integrity" "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==" + "resolved" "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "map-visit" "^1.0.0" + "object-visit" "^1.0.0" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"colorette@^1.0.7": + "integrity" "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" + "resolved" "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" + "version" "1.4.0" + +"command-exists@^1.2.8": + "integrity" "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + "resolved" "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" + "version" "1.2.9" + +"commander@^9.4.0": + "integrity" "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" + "resolved" "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz" + "version" "9.4.1" + +"commander@~2.13.0": + "integrity" "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz" + "version" "2.13.0" + +"commondir@^1.0.1": + "integrity" "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "resolved" "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + "version" "1.0.1" + +"component-emitter@^1.2.1": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"compressible@~2.0.16": + "integrity" "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==" + "resolved" "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + "version" "2.0.18" + dependencies: + "mime-db" ">= 1.43.0 < 2" + +"compression@^1.7.1": + "integrity" "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==" + "resolved" "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + "version" "1.7.4" + dependencies: + "accepts" "~1.3.5" + "bytes" "3.0.0" + "compressible" "~2.0.16" + "debug" "2.6.9" + "on-headers" "~1.0.2" + "safe-buffer" "5.1.2" + "vary" "~1.1.2" + +"concat-map@0.0.1": + "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"connect@^3.6.5": + "integrity" "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==" + "resolved" "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" + "version" "3.7.0" + dependencies: + "debug" "2.6.9" + "finalhandler" "1.1.2" + "parseurl" "~1.3.3" + "utils-merge" "1.0.1" + +"convert-source-map@^1.7.0": + "integrity" "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + "version" "1.9.0" + +"copy-descriptor@^0.1.0": + "integrity" "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" + "resolved" "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + "version" "0.1.1" + +"core-js-compat@^3.25.1": + "integrity" "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==" + "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz" + "version" "3.26.0" + dependencies: + "browserslist" "^4.21.4" + +"core-util-is@~1.0.0": + "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + "version" "1.0.3" + +"cosmiconfig@^5.0.5", "cosmiconfig@^5.1.0": + "integrity" "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "import-fresh" "^2.0.0" + "is-directory" "^0.3.1" + "js-yaml" "^3.13.1" + "parse-json" "^4.0.0" + +"create-ecdh@^4.0.0": + "integrity" "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==" + "resolved" "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "bn.js" "^4.1.0" + "elliptic" "^6.5.3" + +"create-hash@^1.1.0", "create-hash@^1.1.2", "create-hash@^1.2.0": + "integrity" "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==" + "resolved" "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "cipher-base" "^1.0.1" + "inherits" "^2.0.1" + "md5.js" "^1.3.4" + "ripemd160" "^2.0.1" + "sha.js" "^2.4.0" + +"create-hmac@^1.1.0", "create-hmac@^1.1.4", "create-hmac@^1.1.7": + "integrity" "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==" + "resolved" "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "cipher-base" "^1.0.3" + "create-hash" "^1.1.0" + "inherits" "^2.0.1" + "ripemd160" "^2.0.0" + "safe-buffer" "^5.0.1" + "sha.js" "^2.4.8" + +"cross-spawn@^6.0.0": + "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "nice-try" "^1.0.4" + "path-key" "^2.0.1" + "semver" "^5.5.0" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"cross-spawn@^7.0.2": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"crypto-browserify@^3.12.0": + "integrity" "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==" + "resolved" "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + "version" "3.12.0" + dependencies: + "browserify-cipher" "^1.0.0" + "browserify-sign" "^4.0.0" + "create-ecdh" "^4.0.0" + "create-hash" "^1.1.0" + "create-hmac" "^1.1.0" + "diffie-hellman" "^5.0.0" + "inherits" "^2.0.1" + "pbkdf2" "^3.0.3" + "public-encrypt" "^4.0.0" + "randombytes" "^2.0.0" + "randomfill" "^1.0.3" + +"csstype@^3.0.2": + "integrity" "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" + "version" "3.1.1" + +"dayjs@^1.8.15": + "integrity" "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" + "resolved" "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz" + "version" "1.11.6" + +"debug@^2.2.0": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^2.3.3": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^3.2.7": + "integrity" "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + "version" "3.2.7" + dependencies: + "ms" "^2.1.1" + +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4", "debug@~4.3.1", "debug@~4.3.2": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"decamelize@^1.2.0": + "integrity" "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" + +"decode-uri-component@^0.2.0": + "integrity" "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + "resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" + "version" "0.2.2" + +"deep-is@^0.1.3": + "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + "version" "0.1.4" + +"deepmerge@^3.2.0": + "integrity" "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz" + "version" "3.3.0" + +"defaults@^1.0.3": + "integrity" "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "clone" "^1.0.2" + +"define-properties@^1.1.3", "define-properties@^1.1.4": + "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "has-property-descriptors" "^1.0.0" + "object-keys" "^1.1.1" + +"define-property@^0.2.5": + "integrity" "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + "version" "0.2.5" + dependencies: + "is-descriptor" "^0.1.0" + +"define-property@^1.0.0": + "integrity" "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-descriptor" "^1.0.0" + +"define-property@^2.0.2": + "integrity" "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==" + "resolved" "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "is-descriptor" "^1.0.2" + "isobject" "^3.0.1" + +"denodeify@^1.2.1": + "integrity" "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==" + "resolved" "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" + "version" "1.2.1" + +"depd@2.0.0": + "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + "version" "2.0.0" + +"des.js@^1.0.0": + "integrity" "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==" + "resolved" "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "inherits" "^2.0.1" + "minimalistic-assert" "^1.0.0" + +"destroy@1.2.0": + "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + "version" "1.2.0" + +"diffie-hellman@^5.0.0": + "integrity" "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==" + "resolved" "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + "version" "5.0.3" + dependencies: + "bn.js" "^4.1.0" + "miller-rabin" "^4.0.0" + "randombytes" "^2.0.0" + +"dir-glob@^3.0.1": + "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" + "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "path-type" "^4.0.0" + +"doctrine@^2.1.0": + "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "esutils" "^2.0.2" + +"doctrine@^3.0.0": + "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" + "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "esutils" "^2.0.2" + +"ee-first@1.1.1": + "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "version" "1.1.1" + +"electron-to-chromium@^1.4.251": + "integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz" + "version" "1.4.284" + +"elliptic@^6.5.3": + "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" + "resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + "version" "6.5.4" + dependencies: + "bn.js" "^4.11.9" + "brorand" "^1.1.0" + "hash.js" "^1.0.0" + "hmac-drbg" "^1.0.1" + "inherits" "^2.0.4" + "minimalistic-assert" "^1.0.1" + "minimalistic-crypto-utils" "^1.0.1" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"encodeurl@~1.0.2": + "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"end-of-stream@^1.1.0": + "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + "version" "1.4.4" + dependencies: + "once" "^1.4.0" + +"engine.io-client@~6.4.0": + "integrity" "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==" + "resolved" "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz" + "version" "6.4.0" + dependencies: + "@socket.io/component-emitter" "~3.1.0" + "debug" "~4.3.1" + "engine.io-parser" "~5.0.3" + "ws" "~8.11.0" + "xmlhttprequest-ssl" "~2.0.0" + +"engine.io-parser@~5.0.3": + "integrity" "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==" + "resolved" "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz" + "version" "5.0.6" + +"envinfo@^7.7.2": + "integrity" "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" + "resolved" "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" + "version" "7.8.1" + +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"error-stack-parser@^2.0.6": + "integrity" "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==" + "resolved" "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "stackframe" "^1.3.4" + +"errorhandler@^1.5.0": + "integrity" "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==" + "resolved" "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz" + "version" "1.5.1" + dependencies: + "accepts" "~1.3.7" + "escape-html" "~1.0.3" + +"es-abstract@^1.19.0", "es-abstract@^1.20.4": + "integrity" "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz" + "version" "1.20.4" + dependencies: + "call-bind" "^1.0.2" + "es-to-primitive" "^1.2.1" + "function-bind" "^1.1.1" + "function.prototype.name" "^1.1.5" + "get-intrinsic" "^1.1.3" + "get-symbol-description" "^1.0.0" + "has" "^1.0.3" + "has-property-descriptors" "^1.0.0" + "has-symbols" "^1.0.3" + "internal-slot" "^1.0.3" + "is-callable" "^1.2.7" + "is-negative-zero" "^2.0.2" + "is-regex" "^1.1.4" + "is-shared-array-buffer" "^1.0.2" + "is-string" "^1.0.7" + "is-weakref" "^1.0.2" + "object-inspect" "^1.12.2" + "object-keys" "^1.1.1" + "object.assign" "^4.1.4" + "regexp.prototype.flags" "^1.4.3" + "safe-regex-test" "^1.0.0" + "string.prototype.trimend" "^1.0.5" + "string.prototype.trimstart" "^1.0.5" + "unbox-primitive" "^1.0.2" + +"es-shim-unscopables@^1.0.0": + "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==" + "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has" "^1.0.3" + +"es-to-primitive@^1.2.1": + "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==" + "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-html@~1.0.3": + "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + "version" "1.0.3" + +"escape-string-regexp@^1.0.5": + "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"eslint-config-standard-with-typescript@^34.0.0": + "integrity" "sha512-zhCsI4/A0rJ1ma8sf3RLXYc0gc7yPmdTWRVXMh9dtqeUx3yBQyALH0wosHhk1uQ9QyItynLdNOtcHKNw8G7lQw==" + "resolved" "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-34.0.0.tgz" + "version" "34.0.0" + dependencies: + "@typescript-eslint/parser" "^5.0.0" + "eslint-config-standard" "17.0.0" + +"eslint-config-standard@17.0.0": + "integrity" "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==" + "resolved" "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz" + "version" "17.0.0" + +"eslint-import-resolver-node@^0.3.7": + "integrity" "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==" + "resolved" "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz" + "version" "0.3.7" + dependencies: + "debug" "^3.2.7" + "is-core-module" "^2.11.0" + "resolve" "^1.22.1" + +"eslint-module-utils@^2.7.4": + "integrity" "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==" + "resolved" "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz" + "version" "2.7.4" + dependencies: + "debug" "^3.2.7" + +"eslint-plugin-es@^4.1.0": + "integrity" "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==" + "resolved" "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "eslint-utils" "^2.0.0" + "regexpp" "^3.0.0" + +"eslint-plugin-import@^2.25.2": + "integrity" "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==" + "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz" + "version" "2.27.5" + dependencies: + "array-includes" "^3.1.6" + "array.prototype.flat" "^1.3.1" + "array.prototype.flatmap" "^1.3.1" + "debug" "^3.2.7" + "doctrine" "^2.1.0" + "eslint-import-resolver-node" "^0.3.7" + "eslint-module-utils" "^2.7.4" + "has" "^1.0.3" + "is-core-module" "^2.11.0" + "is-glob" "^4.0.3" + "minimatch" "^3.1.2" + "object.values" "^1.1.6" + "resolve" "^1.22.1" + "semver" "^6.3.0" + "tsconfig-paths" "^3.14.1" + +"eslint-plugin-n@^15.0.0": + "integrity" "sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==" + "resolved" "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.6.1.tgz" + "version" "15.6.1" + dependencies: + "builtins" "^5.0.1" + "eslint-plugin-es" "^4.1.0" + "eslint-utils" "^3.0.0" + "ignore" "^5.1.1" + "is-core-module" "^2.11.0" + "minimatch" "^3.1.2" + "resolve" "^1.22.1" + "semver" "^7.3.8" + +"eslint-plugin-promise@^6.0.0": + "integrity" "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==" + "resolved" "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz" + "version" "6.1.1" + +"eslint-plugin-react-hooks@^4.6.0": + "integrity" "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==" + "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" + "version" "4.6.0" + +"eslint-plugin-react@^7.32.2": + "integrity" "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==" + "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz" + "version" "7.32.2" + dependencies: + "array-includes" "^3.1.6" + "array.prototype.flatmap" "^1.3.1" + "array.prototype.tosorted" "^1.1.1" + "doctrine" "^2.1.0" + "estraverse" "^5.3.0" + "jsx-ast-utils" "^2.4.1 || ^3.0.0" + "minimatch" "^3.1.2" + "object.entries" "^1.1.6" + "object.fromentries" "^2.0.6" + "object.hasown" "^1.1.2" + "object.values" "^1.1.6" + "prop-types" "^15.8.1" + "resolve" "^2.0.0-next.4" + "semver" "^6.3.0" + "string.prototype.matchall" "^4.0.8" + +"eslint-scope@^5.1.1": + "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^4.1.1" + +"eslint-scope@^7.1.1": + "integrity" "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==" + "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + "version" "7.1.1" + dependencies: + "esrecurse" "^4.3.0" + "estraverse" "^5.2.0" + +"eslint-utils@^2.0.0": + "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==" + "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "eslint-visitor-keys" "^1.1.0" + +"eslint-utils@^3.0.0": + "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" + "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "eslint-visitor-keys" "^2.0.0" + +"eslint-visitor-keys@^1.1.0": + "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + "version" "1.3.0" + +"eslint-visitor-keys@^2.0.0": + "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + "version" "2.1.0" + +"eslint-visitor-keys@^3.3.0": + "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + "version" "3.3.0" + +"eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^8.0.1", "eslint@>=4.19.1", "eslint@>=5", "eslint@>=7.0.0": + "integrity" "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==" + "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz" + "version" "8.27.0" + dependencies: + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.11.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "ajv" "^6.10.0" + "chalk" "^4.0.0" + "cross-spawn" "^7.0.2" + "debug" "^4.3.2" + "doctrine" "^3.0.0" + "escape-string-regexp" "^4.0.0" + "eslint-scope" "^7.1.1" + "eslint-utils" "^3.0.0" + "eslint-visitor-keys" "^3.3.0" + "espree" "^9.4.0" + "esquery" "^1.4.0" + "esutils" "^2.0.2" + "fast-deep-equal" "^3.1.3" + "file-entry-cache" "^6.0.1" + "find-up" "^5.0.0" + "glob-parent" "^6.0.2" + "globals" "^13.15.0" + "grapheme-splitter" "^1.0.4" + "ignore" "^5.2.0" + "import-fresh" "^3.0.0" + "imurmurhash" "^0.1.4" + "is-glob" "^4.0.0" + "is-path-inside" "^3.0.3" + "js-sdsl" "^4.1.4" + "js-yaml" "^4.1.0" + "json-stable-stringify-without-jsonify" "^1.0.1" + "levn" "^0.4.1" + "lodash.merge" "^4.6.2" + "minimatch" "^3.1.2" + "natural-compare" "^1.4.0" + "optionator" "^0.9.1" + "regexpp" "^3.2.0" + "strip-ansi" "^6.0.1" + "strip-json-comments" "^3.1.0" + "text-table" "^0.2.0" + +"espree@^9.4.0": + "integrity" "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==" + "resolved" "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz" + "version" "9.4.1" + dependencies: + "acorn" "^8.8.0" + "acorn-jsx" "^5.3.2" + "eslint-visitor-keys" "^3.3.0" + +"esprima@^4.0.0", "esprima@~4.0.0": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"esquery@^1.4.0": + "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" + "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "estraverse" "^5.1.0" + +"esrecurse@^4.3.0": + "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" + "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "estraverse" "^5.2.0" + +"estraverse@^4.1.1": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0", "estraverse@^5.2.0", "estraverse@^5.3.0": + "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + "version" "5.3.0" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"etag@~1.8.1": + "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + "version" "1.8.1" + +"event-target-shim@^5.0.0", "event-target-shim@^5.0.1": + "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" + "version" "5.0.1" + +"events@^3.3.0": + "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + "version" "3.3.0" + +"evp_bytestokey@^1.0.0", "evp_bytestokey@^1.0.3": + "integrity" "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==" + "resolved" "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "md5.js" "^1.3.4" + "safe-buffer" "^5.1.1" + +"execa@^1.0.0": + "integrity" "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==" + "resolved" "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "cross-spawn" "^6.0.0" + "get-stream" "^4.0.0" + "is-stream" "^1.1.0" + "npm-run-path" "^2.0.0" + "p-finally" "^1.0.0" + "signal-exit" "^3.0.0" + "strip-eof" "^1.0.0" + +"expand-brackets@^2.1.4": + "integrity" "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==" + "resolved" "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "debug" "^2.3.3" + "define-property" "^0.2.5" + "extend-shallow" "^2.0.1" + "posix-character-classes" "^0.1.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"extend-shallow@^2.0.1": + "integrity" "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "is-extendable" "^0.1.0" + +"extend-shallow@^3.0.0", "extend-shallow@^3.0.2": + "integrity" "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==" + "resolved" "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "assign-symbols" "^1.0.0" + "is-extendable" "^1.0.1" + +"extglob@^2.0.4": + "integrity" "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==" + "resolved" "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "array-unique" "^0.3.2" + "define-property" "^1.0.0" + "expand-brackets" "^2.1.4" + "extend-shallow" "^2.0.1" + "fragment-cache" "^0.2.1" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-glob@^3.2.9": + "integrity" "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==" + "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" + "version" "3.2.12" + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + "glob-parent" "^5.1.2" + "merge2" "^1.3.0" + "micromatch" "^4.0.4" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" + +"fast-levenshtein@^2.0.6": + "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + "version" "2.0.6" + +"fastq@^1.6.0": + "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" + "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + "version" "1.13.0" + dependencies: + "reusify" "^1.0.4" + +"fb-watchman@^2.0.0": + "integrity" "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==" + "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "bser" "2.1.1" + +"file-entry-cache@^6.0.1": + "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" + "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "flat-cache" "^3.0.4" + +"fill-range@^4.0.0": + "integrity" "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "extend-shallow" "^2.0.1" + "is-number" "^3.0.0" + "repeat-string" "^1.6.1" + "to-regex-range" "^2.1.0" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"finalhandler@1.1.2": + "integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==" + "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "~2.3.0" + "parseurl" "~1.3.3" + "statuses" "~1.5.0" + "unpipe" "~1.0.0" + +"find-babel-config@^2.0.0": + "integrity" "sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==" + "resolved" "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "json5" "^2.1.1" + "path-exists" "^4.0.0" + +"find-cache-dir@^2.0.0": + "integrity" "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==" + "resolved" "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "commondir" "^1.0.1" + "make-dir" "^2.0.0" + "pkg-dir" "^3.0.0" + +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + +"find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-up@^5.0.0": + "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "locate-path" "^6.0.0" + "path-exists" "^4.0.0" + +"flat-cache@^3.0.4": + "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" + "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "flatted" "^3.1.0" + "rimraf" "^3.0.2" + +"flatted@^3.1.0": + "integrity" "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" + "version" "3.2.7" + +"flow-parser@^0.121.0", "flow-parser@0.*": + "integrity" "sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==" + "resolved" "https://registry.npmjs.org/flow-parser/-/flow-parser-0.121.0.tgz" + "version" "0.121.0" + +"for-in@^1.0.2": + "integrity" "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + "resolved" "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + "version" "1.0.2" + +"fragment-cache@^0.2.1": + "integrity" "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==" + "resolved" "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "map-cache" "^0.2.2" + +"fresh@0.5.2": + "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + "version" "0.5.2" + +"fs-extra@^1.0.0": + "integrity" "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^2.1.0" + "klaw" "^1.0.0" + +"fs-extra@^8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs.realpath@^1.0.0": + "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"function.prototype.name@^1.1.5": + "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==" + "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "es-abstract" "^1.19.0" + "functions-have-names" "^1.2.2" + +"functions-have-names@^1.2.2": + "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + "version" "1.2.3" + +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1", "get-intrinsic@^1.1.3": + "integrity" "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.3" + +"get-stream@^4.0.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-symbol-description@^1.0.0": + "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==" + "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.1" + +"get-value@^2.0.3", "get-value@^2.0.6": + "integrity" "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" + "resolved" "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + "version" "2.0.6" + +"glob-parent@^5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob-parent@^6.0.2": + "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "is-glob" "^4.0.3" + +"glob@^7.1.3": + "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + "version" "7.2.3" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.1.1" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"glob@^8.0.3": + "integrity" "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^5.0.1" + "once" "^1.3.0" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"globals@^13.15.0": + "integrity" "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz" + "version" "13.17.0" + dependencies: + "type-fest" "^0.20.2" + +"globby@^11.1.0": + "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" + "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + "version" "11.1.0" + dependencies: + "array-union" "^2.1.0" + "dir-glob" "^3.0.1" + "fast-glob" "^3.2.9" + "ignore" "^5.2.0" + "merge2" "^1.4.1" + "slash" "^3.0.0" + +"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.1.9", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4", "graceful-fs@^4.2.9": + "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + "version" "4.2.10" + +"grapheme-splitter@^1.0.4": + "integrity" "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "resolved" "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" + "version" "1.0.4" + +"has-bigints@^1.0.1", "has-bigints@^1.0.2": + "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + "version" "1.0.2" + +"has-flag@^3.0.0": + "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-property-descriptors@^1.0.0": + "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" + "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-intrinsic" "^1.1.1" + +"has-symbols@^1.0.2", "has-symbols@^1.0.3": + "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + "version" "1.0.3" + +"has-tostringtag@^1.0.0": + "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==" + "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-symbols" "^1.0.2" + +"has-value@^0.3.1": + "integrity" "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==" + "resolved" "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + "version" "0.3.1" + dependencies: + "get-value" "^2.0.3" + "has-values" "^0.1.4" + "isobject" "^2.0.0" + +"has-value@^1.0.0": + "integrity" "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==" + "resolved" "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-value" "^2.0.6" + "has-values" "^1.0.0" + "isobject" "^3.0.0" + +"has-values@^0.1.4": + "integrity" "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" + "resolved" "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + "version" "0.1.4" + +"has-values@^1.0.0": + "integrity" "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==" + "resolved" "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "is-number" "^3.0.0" + "kind-of" "^4.0.0" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hash-base@^3.0.0": + "integrity" "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==" + "resolved" "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "inherits" "^2.0.4" + "readable-stream" "^3.6.0" + "safe-buffer" "^5.2.0" + +"hash.js@^1.0.0", "hash.js@^1.0.3": + "integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==" + "resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + "version" "1.1.7" + dependencies: + "inherits" "^2.0.3" + "minimalistic-assert" "^1.0.1" + +"hermes-estree@0.8.0": + "integrity" "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q==" + "resolved" "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz" + "version" "0.8.0" + +"hermes-parser@0.8.0": + "integrity" "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==" + "resolved" "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz" + "version" "0.8.0" + dependencies: + "hermes-estree" "0.8.0" + +"hermes-profile-transformer@^0.0.6": + "integrity" "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==" + "resolved" "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz" + "version" "0.0.6" + dependencies: + "source-map" "^0.7.3" + +"hmac-drbg@^1.0.1": + "integrity" "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==" + "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "hash.js" "^1.0.3" + "minimalistic-assert" "^1.0.0" + "minimalistic-crypto-utils" "^1.0.1" + +"hoist-non-react-statics@3.x.x": + "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" + "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + "version" "3.3.2" + dependencies: + "react-is" "^16.7.0" + +"http-errors@2.0.0": + "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "depd" "2.0.0" + "inherits" "2.0.4" + "setprototypeof" "1.2.0" + "statuses" "2.0.1" + "toidentifier" "1.0.1" + +"iconv-lite@^0.6.3": + "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + "version" "0.6.3" + dependencies: + "safer-buffer" ">= 2.1.2 < 3.0.0" + +"ieee754@^1.1.13", "ieee754@^1.2.1": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"ignore@^5.1.1", "ignore@^5.2.0": + "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" + "version" "5.2.0" + +"image-size@^0.6.0": + "integrity" "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" + "resolved" "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz" + "version" "0.6.3" + +"import-fresh@^2.0.0": + "integrity" "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "caller-path" "^2.0.0" + "resolve-from" "^3.0.0" + +"import-fresh@^3.0.0", "import-fresh@^3.2.1": + "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" + "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "parent-module" "^1.0.0" + "resolve-from" "^4.0.0" + +"imurmurhash@^0.1.4": + "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"inflight@^1.0.4": + "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.1", "inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@~2.0.4", "inherits@2", "inherits@2.0.4": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"internal-slot@^1.0.3": + "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==" + "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "get-intrinsic" "^1.1.0" + "has" "^1.0.3" + "side-channel" "^1.0.4" + +"invariant@^2.2.4": + "integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==" + "resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + "version" "2.2.4" + dependencies: + "loose-envify" "^1.0.0" + +"ip@^1.1.5": + "integrity" "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + "resolved" "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" + "version" "1.1.8" + +"is-accessor-descriptor@^0.1.6": + "integrity" "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==" + "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "kind-of" "^3.0.2" + +"is-accessor-descriptor@^1.0.0": + "integrity" "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==" + "resolved" "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "kind-of" "^6.0.0" + +"is-arrayish@^0.2.1": + "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-bigint@^1.0.1": + "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" + "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-bigints" "^1.0.1" + +"is-boolean-object@^1.1.0": + "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==" + "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-buffer@^1.1.5": + "integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "version" "1.1.6" + +"is-callable@^1.1.4", "is-callable@^1.2.7": + "integrity" "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + "version" "1.2.7" + +"is-core-module@^2.11.0", "is-core-module@^2.9.0": + "integrity" "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" + "version" "2.11.0" + dependencies: + "has" "^1.0.3" + +"is-data-descriptor@^0.1.4": + "integrity" "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==" + "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + "version" "0.1.4" + dependencies: + "kind-of" "^3.0.2" + +"is-data-descriptor@^1.0.0": + "integrity" "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==" + "resolved" "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "kind-of" "^6.0.0" + +"is-date-object@^1.0.1": + "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-descriptor@^0.1.0": + "integrity" "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==" + "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + "version" "0.1.6" + dependencies: + "is-accessor-descriptor" "^0.1.6" + "is-data-descriptor" "^0.1.4" + "kind-of" "^5.0.0" + +"is-descriptor@^1.0.0", "is-descriptor@^1.0.2": + "integrity" "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==" + "resolved" "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-accessor-descriptor" "^1.0.0" + "is-data-descriptor" "^1.0.0" + "kind-of" "^6.0.2" + +"is-directory@^0.3.1": + "integrity" "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" + "resolved" "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + "version" "0.3.1" + +"is-extendable@^0.1.0", "is-extendable@^0.1.1": + "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + +"is-extendable@^0.1.1": + "integrity" "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + "version" "0.1.1" + +"is-extendable@^1.0.1": + "integrity" "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==" + "resolved" "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "is-plain-object" "^2.0.4" + +"is-extglob@^2.1.1": + "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-interactive@^1.0.0": + "integrity" "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + "version" "1.0.0" + +"is-negative-zero@^2.0.2": + "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + "version" "2.0.2" + +"is-number-object@^1.0.4": + "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==" + "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-number@^3.0.0": + "integrity" "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "kind-of" "^3.0.2" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-path-inside@^3.0.3": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + +"is-plain-obj@^2.1.0": + "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + "version" "2.1.0" + +"is-plain-object@^2.0.3", "is-plain-object@^2.0.4": + "integrity" "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==" + "resolved" "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + "version" "2.0.4" + dependencies: + "isobject" "^3.0.1" + +"is-regex@^1.1.4": + "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "call-bind" "^1.0.2" + "has-tostringtag" "^1.0.0" + +"is-shared-array-buffer@^1.0.2": + "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==" + "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + +"is-stream@^1.1.0": + "integrity" "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + "version" "1.1.0" + +"is-string@^1.0.5", "is-string@^1.0.7": + "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==" + "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + "version" "1.0.7" + dependencies: + "has-tostringtag" "^1.0.0" + +"is-symbol@^1.0.2", "is-symbol@^1.0.3": + "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==" + "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has-symbols" "^1.0.2" + +"is-unicode-supported@^0.1.0": + "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + "version" "0.1.0" + +"is-weakref@^1.0.2": + "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==" + "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + +"is-windows@^1.0.2": + "integrity" "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "resolved" "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + "version" "1.0.2" + +"is-wsl@^1.1.0": + "integrity" "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + "version" "1.1.0" + +"isarray@~1.0.0", "isarray@1.0.0": + "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isexe@^2.0.0": + "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isobject@^2.0.0": + "integrity" "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "isarray" "1.0.0" + +"isobject@^3.0.0", "isobject@^3.0.1": + "integrity" "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + "resolved" "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + "version" "3.0.1" + +"jest-get-type@^26.3.0": + "integrity" "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" + "version" "26.3.0" + +"jest-regex-util@^27.0.6": + "integrity" "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" + "version" "27.5.1" + +"jest-serializer@^27.0.6": + "integrity" "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==" + "resolved" "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@types/node" "*" + "graceful-fs" "^4.2.9" + +"jest-util@^27.2.0": + "integrity" "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "graceful-fs" "^4.2.9" + "picomatch" "^2.2.3" + +"jest-validate@^26.5.2": + "integrity" "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@jest/types" "^26.6.2" + "camelcase" "^6.0.0" + "chalk" "^4.0.0" + "jest-get-type" "^26.3.0" + "leven" "^3.1.0" + "pretty-format" "^26.6.2" + +"jest-worker@^27.2.0": + "integrity" "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + "version" "27.5.1" + dependencies: + "@types/node" "*" + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" + +"joi@^17.2.1": + "integrity" "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==" + "resolved" "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz" + "version" "17.7.0" + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + +"js-sdsl@^4.1.4": + "integrity" "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==" + "resolved" "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz" + "version" "4.1.5" + +"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1": + "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@^4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "argparse" "^2.0.1" + +"jsc-android@^250230.2.1": + "integrity" "sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q==" + "resolved" "https://registry.npmjs.org/jsc-android/-/jsc-android-250230.2.1.tgz" + "version" "250230.2.1" + +"jscodeshift@^0.13.1": + "integrity" "sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==" + "resolved" "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz" + "version" "0.13.1" + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" + "babel-core" "^7.0.0-bridge.0" + "chalk" "^4.1.2" + "flow-parser" "0.*" + "graceful-fs" "^4.2.4" + "micromatch" "^3.1.10" + "neo-async" "^2.5.0" + "node-dir" "^0.1.17" + "recast" "^0.20.4" + "temp" "^0.8.4" + "write-file-atomic" "^2.3.0" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"jsesc@~0.5.0": + "integrity" "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "version" "0.5.0" + +"json-parse-better-errors@^1.0.1": + "integrity" "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "resolved" "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + "version" "1.0.2" + +"json-schema-traverse@^0.4.1": + "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-stable-stringify-without-jsonify@^1.0.1": + "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + "version" "1.0.1" + +"json5@^1.0.1": + "integrity" "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "minimist" "^1.2.0" + +"json5@^2.1.1", "json5@^2.2.2": + "integrity" "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + "version" "2.2.3" + +"jsonfile@^2.1.0": + "integrity" "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" + "version" "2.4.0" + optionalDependencies: + "graceful-fs" "^4.1.6" + +"jsonfile@^4.0.0": + "integrity" "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" + optionalDependencies: + "graceful-fs" "^4.1.6" + +"jsx-ast-utils@^2.4.1 || ^3.0.0": + "integrity" "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==" + "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz" + "version" "3.3.3" + dependencies: + "array-includes" "^3.1.5" + "object.assign" "^4.1.3" + +"kind-of@^3.0.2", "kind-of@^3.0.3": + "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^3.2.0": + "integrity" "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^4.0.0": + "integrity" "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "is-buffer" "^1.1.5" + +"kind-of@^5.0.0": + "integrity" "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + "version" "5.1.0" + +"kind-of@^6.0.0", "kind-of@^6.0.2": + "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + "version" "6.0.3" + +"klaw@^1.0.0": + "integrity" "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==" + "resolved" "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" + "version" "1.3.1" + optionalDependencies: + "graceful-fs" "^4.1.9" + +"kleur@^3.0.3": + "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + "version" "3.0.3" + +"leven@^3.1.0": + "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + "version" "3.1.0" + +"levn@^0.4.1": + "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "prelude-ls" "^1.2.1" + "type-check" "~0.4.0" + +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"locate-path@^6.0.0": + "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "p-locate" "^5.0.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.merge@^4.6.2": + "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + "version" "4.6.2" + +"lodash.throttle@^4.1.1": + "integrity" "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + "resolved" "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" + "version" "4.1.1" + +"lodash@4.17.x": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"log-symbols@^4.1.0": + "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "chalk" "^4.1.0" + "is-unicode-supported" "^0.1.0" + +"logkitty@^0.7.1": + "integrity" "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==" + "resolved" "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz" + "version" "0.7.1" + dependencies: + "ansi-fragments" "^0.2.1" + "dayjs" "^1.8.15" + "yargs" "^15.1.0" + +"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.4.0": + "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" + "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "js-tokens" "^3.0.0 || ^4.0.0" + +"lrc-file-parser@^2.3.0": + "integrity" "sha512-EX+Dnvwqgb8q3mf7WYIR4flOzwrOp9vE2MU+eyRZO0rFUF5BIZgN52SSGXFhfnHd5tUmo7VnLrpCFdURe3O2KQ==" + "resolved" "https://registry.npmjs.org/lrc-file-parser/-/lrc-file-parser-2.3.0.tgz" + "version" "2.3.0" + +"lru-cache@^5.1.1": + "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "yallist" "^3.0.2" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"make-dir@^2.0.0", "make-dir@^2.1.0": + "integrity" "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "pify" "^4.0.1" + "semver" "^5.6.0" + +"makeerror@1.0.12": + "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + "version" "1.0.12" + dependencies: + "tmpl" "1.0.5" + +"map-cache@^0.2.2": + "integrity" "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + "resolved" "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + "version" "0.2.2" + +"map-visit@^1.0.0": + "integrity" "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==" + "resolved" "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "object-visit" "^1.0.0" + +"md5.js@^1.3.4": + "integrity" "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==" + "resolved" "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + "version" "1.3.5" + dependencies: + "hash-base" "^3.0.0" + "inherits" "^2.0.1" + "safe-buffer" "^5.1.2" + +"memoize-one@^5.0.0": + "integrity" "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + "resolved" "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" + "version" "5.2.1" + +"merge-options@^3.0.4": + "integrity" "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==" + "resolved" "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "is-plain-obj" "^2.1.0" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"merge2@^1.3.0", "merge2@^1.4.1": + "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + "version" "1.4.1" + +"metro-babel-transformer@0.72.3": + "integrity" "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==" + "resolved" "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/core" "^7.14.0" + "hermes-parser" "0.8.0" + "metro-source-map" "0.72.3" + "nullthrows" "^1.1.1" + +"metro-cache-key@0.72.3": + "integrity" "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg==" + "resolved" "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz" + "version" "0.72.3" + +"metro-cache@0.72.3": + "integrity" "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==" + "resolved" "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "metro-core" "0.72.3" + "rimraf" "^2.5.4" + +"metro-config@0.72.3": + "integrity" "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==" + "resolved" "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "cosmiconfig" "^5.0.5" + "jest-validate" "^26.5.2" + "metro" "0.72.3" + "metro-cache" "0.72.3" + "metro-core" "0.72.3" + "metro-runtime" "0.72.3" + +"metro-core@0.72.3": + "integrity" "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==" + "resolved" "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "lodash.throttle" "^4.1.1" + "metro-resolver" "0.72.3" + +"metro-file-map@0.72.3": + "integrity" "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==" + "resolved" "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "abort-controller" "^3.0.0" + "anymatch" "^3.0.3" + "debug" "^2.2.0" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.2.4" + "invariant" "^2.2.4" + "jest-regex-util" "^27.0.6" + "jest-serializer" "^27.0.6" + "jest-util" "^27.2.0" + "jest-worker" "^27.2.0" + "micromatch" "^4.0.4" + "walker" "^1.0.7" + optionalDependencies: + "fsevents" "^2.1.2" + +"metro-hermes-compiler@0.72.3": + "integrity" "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg==" + "resolved" "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz" + "version" "0.72.3" + +"metro-inspector-proxy@0.72.3": + "integrity" "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==" + "resolved" "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "connect" "^3.6.5" + "debug" "^2.2.0" + "ws" "^7.5.1" + "yargs" "^15.3.1" + +"metro-minify-uglify@0.72.3": + "integrity" "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==" + "resolved" "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "uglify-es" "^3.1.9" + +"metro-react-native-babel-preset@0.72.3": + "integrity" "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==" + "resolved" "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/core" "^7.14.0" + "@babel/plugin-proposal-async-generator-functions" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.0.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "react-refresh" "^0.4.0" + +"metro-react-native-babel-transformer@0.72.3": + "integrity" "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==" + "resolved" "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/core" "^7.14.0" + "babel-preset-fbjs" "^3.4.0" + "hermes-parser" "0.8.0" + "metro-babel-transformer" "0.72.3" + "metro-react-native-babel-preset" "0.72.3" + "metro-source-map" "0.72.3" + "nullthrows" "^1.1.1" + +"metro-resolver@0.72.3": + "integrity" "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==" + "resolved" "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "absolute-path" "^0.0.0" + +"metro-runtime@0.72.3": + "integrity" "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==" + "resolved" "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/runtime" "^7.0.0" + "react-refresh" "^0.4.0" + +"metro-source-map@0.72.3": + "integrity" "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==" + "resolved" "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + "invariant" "^2.2.4" + "metro-symbolicate" "0.72.3" + "nullthrows" "^1.1.1" + "ob1" "0.72.3" + "source-map" "^0.5.6" + "vlq" "^1.0.0" + +"metro-symbolicate@0.72.3": + "integrity" "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==" + "resolved" "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "invariant" "^2.2.4" + "metro-source-map" "0.72.3" + "nullthrows" "^1.1.1" + "source-map" "^0.5.6" + "through2" "^2.0.1" + "vlq" "^1.0.0" + +"metro-transform-plugins@0.72.3": + "integrity" "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==" + "resolved" "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.14.0" + "nullthrows" "^1.1.1" + +"metro-transform-worker@0.72.3": + "integrity" "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==" + "resolved" "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/types" "^7.0.0" + "babel-preset-fbjs" "^3.4.0" + "metro" "0.72.3" + "metro-babel-transformer" "0.72.3" + "metro-cache" "0.72.3" + "metro-cache-key" "0.72.3" + "metro-hermes-compiler" "0.72.3" + "metro-source-map" "0.72.3" + "metro-transform-plugins" "0.72.3" + "nullthrows" "^1.1.1" + +"metro@0.72.3": + "integrity" "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==" + "resolved" "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz" + "version" "0.72.3" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + "absolute-path" "^0.0.0" + "accepts" "^1.3.7" + "async" "^3.2.2" + "chalk" "^4.0.0" + "ci-info" "^2.0.0" + "connect" "^3.6.5" + "debug" "^2.2.0" + "denodeify" "^1.2.1" + "error-stack-parser" "^2.0.6" + "fs-extra" "^1.0.0" + "graceful-fs" "^4.2.4" + "hermes-parser" "0.8.0" + "image-size" "^0.6.0" + "invariant" "^2.2.4" + "jest-worker" "^27.2.0" + "lodash.throttle" "^4.1.1" + "metro-babel-transformer" "0.72.3" + "metro-cache" "0.72.3" + "metro-cache-key" "0.72.3" + "metro-config" "0.72.3" + "metro-core" "0.72.3" + "metro-file-map" "0.72.3" + "metro-hermes-compiler" "0.72.3" + "metro-inspector-proxy" "0.72.3" + "metro-minify-uglify" "0.72.3" + "metro-react-native-babel-preset" "0.72.3" + "metro-resolver" "0.72.3" + "metro-runtime" "0.72.3" + "metro-source-map" "0.72.3" + "metro-symbolicate" "0.72.3" + "metro-transform-plugins" "0.72.3" + "metro-transform-worker" "0.72.3" + "mime-types" "^2.1.27" + "node-fetch" "^2.2.0" + "nullthrows" "^1.1.1" + "rimraf" "^2.5.4" + "serialize-error" "^2.1.0" + "source-map" "^0.5.6" + "strip-ansi" "^6.0.0" + "temp" "0.8.3" + "throat" "^5.0.0" + "ws" "^7.5.1" + "yargs" "^15.3.1" + +"micromatch@^3.1.10": + "integrity" "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + "version" "3.1.10" + dependencies: + "arr-diff" "^4.0.0" + "array-unique" "^0.3.2" + "braces" "^2.3.1" + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "extglob" "^2.0.4" + "fragment-cache" "^0.2.1" + "kind-of" "^6.0.2" + "nanomatch" "^1.2.9" + "object.pick" "^1.3.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.2" + +"micromatch@^4.0.4": + "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + "version" "4.0.5" + dependencies: + "braces" "^3.0.2" + "picomatch" "^2.3.1" + +"miller-rabin@^4.0.0": + "integrity" "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==" + "resolved" "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "bn.js" "^4.0.0" + "brorand" "^1.0.1" + +"mime-db@>= 1.43.0 < 2", "mime-db@1.52.0": + "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + "version" "1.52.0" + +"mime-types@^2.1.27", "mime-types@~2.1.34": + "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + "version" "2.1.35" + dependencies: + "mime-db" "1.52.0" + +"mime@^2.4.1": + "integrity" "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + "version" "2.6.0" + +"mime@1.6.0": + "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1": + "integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + "version" "1.0.1" + +"minimalistic-crypto-utils@^1.0.1": + "integrity" "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + "version" "1.0.1" + +"minimatch@^3.0.2", "minimatch@^3.0.5", "minimatch@^3.1.1", "minimatch@^3.1.2": + "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "brace-expansion" "^1.1.7" + +"minimatch@^5.0.1": + "integrity" "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + "version" "5.1.6" + dependencies: + "brace-expansion" "^2.0.1" + +"minimist@^1.2.0", "minimist@^1.2.6": + "integrity" "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" + "version" "1.2.7" + +"mixin-deep@^1.2.0": + "integrity" "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==" + "resolved" "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "for-in" "^1.0.2" + "is-extendable" "^1.0.1" + +"mkdirp@^0.5.1": + "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + "version" "0.5.6" + dependencies: + "minimist" "^1.2.6" + +"ms@^2.1.1", "ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"ms@2.1.3": + "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + "version" "2.1.3" + +"nanomatch@^1.2.9": + "integrity" "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==" + "resolved" "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + "version" "1.2.13" + dependencies: + "arr-diff" "^4.0.0" + "array-unique" "^0.3.2" + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "fragment-cache" "^0.2.1" + "is-windows" "^1.0.2" + "kind-of" "^6.0.2" + "object.pick" "^1.3.0" + "regex-not" "^1.0.0" + "snapdragon" "^0.8.1" + "to-regex" "^3.0.1" + +"natural-compare-lite@^1.4.0": + "integrity" "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + "resolved" "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + "version" "1.4.0" + +"natural-compare@^1.4.0": + "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + "version" "1.4.0" + +"negotiator@0.6.3": + "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + "version" "0.6.3" + +"neo-async@^2.5.0": + "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + "version" "2.6.2" + +"nice-try@^1.0.4": + "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + "version" "1.0.5" + +"nocache@^3.0.1": + "integrity" "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==" + "resolved" "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz" + "version" "3.0.4" + +"node-dir@^0.1.17": + "integrity" "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==" + "resolved" "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" + "version" "0.1.17" + dependencies: + "minimatch" "^3.0.2" + +"node-fetch@^2.2.0", "node-fetch@^2.6.0": + "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + "version" "2.6.7" + dependencies: + "whatwg-url" "^5.0.0" + +"node-int64@^0.4.0": + "integrity" "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + "version" "0.4.0" + +"node-releases@^2.0.6": + "integrity" "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" + "version" "2.0.6" + +"node-stream-zip@^1.9.1": + "integrity" "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==" + "resolved" "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz" + "version" "1.15.0" + +"normalize-path@^3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"npm-run-path@^2.0.0": + "integrity" "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "path-key" "^2.0.0" + +"nullthrows@^1.1.1": + "integrity" "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + "resolved" "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" + "version" "1.1.1" + +"ob1@0.72.3": + "integrity" "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg==" + "resolved" "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz" + "version" "0.72.3" + +"object-assign@^4.1.1": + "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-copy@^0.1.0": + "integrity" "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==" + "resolved" "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "copy-descriptor" "^0.1.0" + "define-property" "^0.2.5" + "kind-of" "^3.0.3" + +"object-inspect@^1.12.2", "object-inspect@^1.9.0": + "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + "version" "1.12.2" + +"object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object-visit@^1.0.0": + "integrity" "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==" + "resolved" "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "isobject" "^3.0.0" + +"object.assign@^4.1.3", "object.assign@^4.1.4": + "integrity" "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" + "version" "4.1.4" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "has-symbols" "^1.0.3" + "object-keys" "^1.1.1" + +"object.entries@^1.1.6": + "integrity" "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==" + "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz" + "version" "1.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.fromentries@^2.0.6": + "integrity" "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==" + "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz" + "version" "2.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.hasown@^1.1.2": + "integrity" "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==" + "resolved" "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"object.pick@^1.3.0": + "integrity" "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==" + "resolved" "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "isobject" "^3.0.1" + +"object.values@^1.1.6": + "integrity" "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==" + "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" + "version" "1.1.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"on-finished@~2.3.0": + "integrity" "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ee-first" "1.1.1" + +"on-finished@2.4.1": + "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "ee-first" "1.1.1" + +"on-headers@~1.0.2": + "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + "version" "1.0.2" + +"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": + "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^5.1.0": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "mimic-fn" "^2.1.0" + +"open@^6.2.0": + "integrity" "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==" + "resolved" "https://registry.npmjs.org/open/-/open-6.4.0.tgz" + "version" "6.4.0" + dependencies: + "is-wsl" "^1.1.0" + +"optionator@^0.9.1": + "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + "version" "0.9.1" + dependencies: + "deep-is" "^0.1.3" + "fast-levenshtein" "^2.0.6" + "levn" "^0.4.1" + "prelude-ls" "^1.2.1" + "type-check" "^0.4.0" + "word-wrap" "^1.2.3" + +"ora@^5.4.1": + "integrity" "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==" + "resolved" "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + "version" "5.4.1" + dependencies: + "bl" "^4.1.0" + "chalk" "^4.1.0" + "cli-cursor" "^3.1.0" + "cli-spinners" "^2.5.0" + "is-interactive" "^1.0.0" + "is-unicode-supported" "^0.1.0" + "log-symbols" "^4.1.0" + "strip-ansi" "^6.0.0" + "wcwidth" "^1.0.1" + +"os-tmpdir@^1.0.0": + "integrity" "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"p-finally@^1.0.0": + "integrity" "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" + "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + "version" "1.0.0" + +"p-limit@^2.0.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "p-try" "^2.0.0" + +"p-limit@^3.0.2": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "yocto-queue" "^0.1.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "p-limit" "^2.2.0" + +"p-locate@^5.0.0": + "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-limit" "^3.0.2" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"pako@^2.1.0": + "integrity" "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "resolved" "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz" + "version" "2.1.0" + +"parent-module@^1.0.0": + "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" + "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "callsites" "^3.0.0" + +"parse-asn1@^5.0.0", "parse-asn1@^5.1.5": + "integrity" "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==" + "resolved" "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" + "version" "5.1.6" + dependencies: + "asn1.js" "^5.2.0" + "browserify-aes" "^1.0.0" + "evp_bytestokey" "^1.0.0" + "pbkdf2" "^3.0.3" + "safe-buffer" "^5.1.1" + +"parse-json@^4.0.0": + "integrity" "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "error-ex" "^1.3.1" + "json-parse-better-errors" "^1.0.1" + +"parseurl@~1.3.3": + "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + "version" "1.3.3" + +"pascalcase@^0.1.1": + "integrity" "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" + "resolved" "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + "version" "0.1.1" + +"path-exists@^3.0.0": + "integrity" "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^2.0.0": + "integrity" "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-key@^2.0.1": + "integrity" "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.7": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-type@^4.0.0": + "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + "version" "4.0.0" + +"pbkdf2@^3.0.3": + "integrity" "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==" + "resolved" "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "create-hash" "^1.1.2" + "create-hmac" "^1.1.4" + "ripemd160" "^2.0.1" + "safe-buffer" "^5.0.1" + "sha.js" "^2.4.8" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.3", "picomatch@^2.3.1": + "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + "version" "2.3.1" + +"pify@^4.0.1": + "integrity" "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "resolved" "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + "version" "4.0.1" + +"pirates@^4.0.5": + "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + "version" "4.0.5" + +"pkg-dir@^3.0.0": + "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "find-up" "^3.0.0" + +"pkg-up@^3.1.0": + "integrity" "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==" + "resolved" "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "find-up" "^3.0.0" + +"posix-character-classes@^0.1.0": + "integrity" "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" + "resolved" "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + "version" "0.1.1" + +"prelude-ls@^1.2.1": + "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + "version" "1.2.1" + +"pretty-format@^26.5.2", "pretty-format@^26.6.2": + "integrity" "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" + "version" "26.6.2" + dependencies: + "@jest/types" "^26.6.2" + "ansi-regex" "^5.0.0" + "ansi-styles" "^4.0.0" + "react-is" "^17.0.1" + +"process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"promise@^8.3.0": + "integrity" "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==" + "resolved" "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" + "version" "8.3.0" + dependencies: + "asap" "~2.0.6" + +"prompts@^2.4.0": + "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "kleur" "^3.0.3" + "sisteransi" "^1.0.5" + +"prop-types@^15.7.2", "prop-types@^15.8.1", "prop-types@15.x.x": + "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" + "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + "version" "15.8.1" + dependencies: + "loose-envify" "^1.4.0" + "object-assign" "^4.1.1" + "react-is" "^16.13.1" + +"public-encrypt@^4.0.0": + "integrity" "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==" + "resolved" "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "bn.js" "^4.1.0" + "browserify-rsa" "^4.0.0" + "create-hash" "^1.1.0" + "parse-asn1" "^5.0.0" + "randombytes" "^2.0.1" + "safe-buffer" "^5.1.2" + +"pump@^3.0.0": + "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"punycode@^2.1.0": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"queue-microtask@^1.2.2": + "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + "version" "1.2.3" + +"randombytes@^2.0.0", "randombytes@^2.0.1", "randombytes@^2.0.5": + "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" + "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "safe-buffer" "^5.1.0" + +"randomfill@^1.0.3": + "integrity" "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==" + "resolved" "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "randombytes" "^2.0.5" + "safe-buffer" "^5.1.0" + +"range-parser@~1.2.1": + "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + "version" "1.2.1" + +"react-devtools-core@4.24.0": + "integrity" "sha512-Rw7FzYOOzcfyUPaAm9P3g0tFdGqGq2LLiAI+wjYcp6CsF3DeeMrRS3HZAho4s273C29G/DJhx0e8BpRE/QZNGg==" + "resolved" "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.24.0.tgz" + "version" "4.24.0" + dependencies: + "shell-quote" "^1.6.1" + "ws" "^7" + +"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", "react-is@^16.13.1", "react-is@^16.7.0": + "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + "version" "16.13.1" + +"react-is@^17.0.1": + "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + "version" "17.0.2" + +"react-lifecycles-compat@2.0.0": + "integrity" "sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==" + "resolved" "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-2.0.0.tgz" + "version" "2.0.0" + +"react-native-background-timer@^2.4.1": + "integrity" "sha512-TE4Kiy7jUyv+hugxDxitzu38sW1NqjCk4uE5IgU2WevLv7sZacaBc6PZKOShNRPGirLl1NWkaG3LDEkdb9Um5g==" + "resolved" "https://registry.npmjs.org/react-native-background-timer/-/react-native-background-timer-2.4.1.tgz" + "version" "2.4.1" + +"react-native-codegen@^0.70.6": + "integrity" "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==" + "resolved" "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz" + "version" "0.70.6" + dependencies: + "@babel/parser" "^7.14.0" + "flow-parser" "^0.121.0" + "jscodeshift" "^0.13.1" + "nullthrows" "^1.1.1" + +"react-native-exception-handler@^2.10.10": + "integrity" "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==" + "resolved" "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz" + "version" "2.10.10" + +"react-native-fs@^2.20.0": + "integrity" "sha512-VkTBzs7fIDUiy/XajOSNk0XazFE9l+QlMAce7lGuebZcag5CnjszB+u4BdqzwaQOdcYb5wsJIsqq4kxInIRpJQ==" + "resolved" "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.20.0.tgz" + "version" "2.20.0" + dependencies: + "base-64" "^0.1.0" + "utf8" "^3.0.0" + +"react-native-gradle-plugin@^0.70.3": + "integrity" "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==" + "resolved" "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz" + "version" "0.70.3" + +"react-native-navigation@^7.32.1": + "integrity" "sha512-qqpccWh6MqTG0hn/XeggKonSYg+h64kOsYBot/+g2EUC/Usp8TZsKi1B2gzsUrDQy8EmsF9iTBoZMIgjxFG/WQ==" + "resolved" "https://registry.npmjs.org/react-native-navigation/-/react-native-navigation-7.32.1.tgz" + "version" "7.32.1" + dependencies: + "hoist-non-react-statics" "3.x.x" + "lodash" "4.17.x" + "prop-types" "15.x.x" + "react-lifecycles-compat" "2.0.0" + "tslib" "1.9.3" + +"react-native-pager-view@^6.1.4": + "integrity" "sha512-fmTwgGwPxGCBusKAq7gHzm+s1Yp0qh5rKPoQszaCuxrb+76KgK4Qe82jJNPUp2xTZOKSw+FbJU2QahF8ncTl+w==" + "resolved" "https://registry.npmjs.org/react-native-pager-view/-/react-native-pager-view-6.1.4.tgz" + "version" "6.1.4" + +"react-native-quick-base64@^2.0.2", "react-native-quick-base64@^2.0.5": + "integrity" "sha512-waRcIlchdLCSzpWYqRNIN5NyE5PxKyedMQ/sTgA/fcEkBzwp3EOwjhsfVuJuBtc1bHL2Mg34pxDVBxyLU3Mu2Q==" + "resolved" "https://registry.npmjs.org/react-native-quick-base64/-/react-native-quick-base64-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "base64-js" "^1.5.1" + +"react-native-quick-crypto@^0.5.0": + "integrity" "sha512-NYc8r97UaKOfkHj0iyM8OD+S5U+8mTKheb/BYpu7CNJ0qt1VkwFEaWkJtOUWSRbyd24d0AKrC9+97UkroBs9JA==" + "resolved" "https://registry.npmjs.org/react-native-quick-crypto/-/react-native-quick-crypto-0.5.0.tgz" + "version" "0.5.0" + dependencies: + "@craftzdog/react-native-buffer" "^6.0.4" + "@types/node" "^17.0.31" + "crypto-browserify" "^3.12.0" + "events" "^3.3.0" + "react-native-quick-base64" "^2.0.2" + "stream-browserify" "^3.0.0" + "string_decoder" "^1.3.0" + +"react-native-track-player@github:lyswhut/react-native-track-player#38027954a5ac6e3d92961745e0a9633fc647f47a": + "integrity" "sha512-WLUJIbfNPTudwEhr8D70U0kwg3sQsivdFHCGjiq9ko44PmxlINFty+0g1/DmFdWZOAKUrq8y3/e6S+Uj7Uv7Bw==" + "resolved" "git+ssh://git@github.com/lyswhut/react-native-track-player.git#38027954a5ac6e3d92961745e0a9633fc647f47a" + "version" "2.1.2" + +"react-native-vector-icons@^9.2.0": + "integrity" "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==" + "resolved" "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz" + "version" "9.2.0" + dependencies: + "prop-types" "^15.7.2" + "yargs" "^16.1.1" + +"react-native@*", "react-native@^0.0.0-0 || 0.60 - 0.71 || 1000.0.0", "react-native@>= 0.62", "react-native@>=0.47.0", "react-native@>=0.57.0", "react-native@>=0.60.0-rc.2", "react-native@0.70.7": + "integrity" "sha512-MvnJJXiEPuOBbf1VPY5WXIUR/n6QB/DAk5XtBz3bzinpy9YBXiiQkhGIrTpVdVt37JeHOzafhfxAMf+Rs8jpvA==" + "resolved" "https://registry.npmjs.org/react-native/-/react-native-0.70.7.tgz" + "version" "0.70.7" + dependencies: + "@jest/create-cache-key-function" "^27.0.1" + "@react-native-community/cli" "9.3.2" + "@react-native-community/cli-platform-android" "9.3.1" + "@react-native-community/cli-platform-ios" "9.3.0" + "@react-native/assets" "1.0.0" + "@react-native/normalize-color" "2.0.0" + "@react-native/polyfills" "2.0.0" + "abort-controller" "^3.0.0" + "anser" "^1.4.9" + "base64-js" "^1.1.2" + "event-target-shim" "^5.0.1" + "invariant" "^2.2.4" + "jsc-android" "^250230.2.1" + "memoize-one" "^5.0.0" + "metro-react-native-babel-transformer" "0.72.3" + "metro-runtime" "0.72.3" + "metro-source-map" "0.72.3" + "mkdirp" "^0.5.1" + "nullthrows" "^1.1.1" + "pretty-format" "^26.5.2" + "promise" "^8.3.0" + "react-devtools-core" "4.24.0" + "react-native-codegen" "^0.70.6" + "react-native-gradle-plugin" "^0.70.3" + "react-refresh" "^0.4.0" + "react-shallow-renderer" "^16.15.0" + "regenerator-runtime" "^0.13.2" + "scheduler" "^0.22.0" + "stacktrace-parser" "^0.1.3" + "use-sync-external-store" "^1.0.0" + "whatwg-fetch" "^3.0.0" + "ws" "^6.1.4" + +"react-refresh@^0.4.0": + "integrity" "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==" + "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz" + "version" "0.4.3" + +"react-shallow-renderer@^16.15.0": + "integrity" "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==" + "resolved" "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz" + "version" "16.15.0" + dependencies: + "object-assign" "^4.1.1" + "react-is" "^16.12.0 || ^17.0.0 || ^18.0.0" + +"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@>=16.0", "react@>=16.8.6", "react@18.1.0": + "integrity" "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==" + "resolved" "https://registry.npmjs.org/react/-/react-18.1.0.tgz" + "version" "18.1.0" + dependencies: + "loose-envify" "^1.1.0" + +"readable-stream@^3.4.0", "readable-stream@^3.5.0", "readable-stream@^3.6.0": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@~2.3.6": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readline@^1.3.0": + "integrity" "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==" + "resolved" "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz" + "version" "1.3.0" + +"recast@^0.20.4": + "integrity" "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==" + "resolved" "https://registry.npmjs.org/recast/-/recast-0.20.5.tgz" + "version" "0.20.5" + dependencies: + "ast-types" "0.14.2" + "esprima" "~4.0.0" + "source-map" "~0.6.1" + "tslib" "^2.0.1" + +"regenerate-unicode-properties@^10.1.0": + "integrity" "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==" + "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz" + "version" "10.1.0" + dependencies: + "regenerate" "^1.4.2" + +"regenerate@^1.4.2": + "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + "version" "1.4.2" + +"regenerator-runtime@^0.13.11", "regenerator-runtime@^0.13.2": + "integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + "version" "0.13.11" + +"regenerator-transform@^0.15.0": + "integrity" "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==" + "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + "version" "0.15.0" + dependencies: + "@babel/runtime" "^7.8.4" + +"regex-not@^1.0.0", "regex-not@^1.0.2": + "integrity" "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==" + "resolved" "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "extend-shallow" "^3.0.2" + "safe-regex" "^1.1.0" + +"regexp.prototype.flags@^1.4.3": + "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==" + "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" + "version" "1.4.3" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.3" + "functions-have-names" "^1.2.2" + +"regexpp@^3.0.0", "regexpp@^3.2.0": + "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + "version" "3.2.0" + +"regexpu-core@^5.1.0": + "integrity" "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==" + "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "regenerate" "^1.4.2" + "regenerate-unicode-properties" "^10.1.0" + "regjsgen" "^0.7.1" + "regjsparser" "^0.9.1" + "unicode-match-property-ecmascript" "^2.0.0" + "unicode-match-property-value-ecmascript" "^2.0.0" + +"regjsgen@^0.7.1": + "integrity" "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" + "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz" + "version" "0.7.1" + +"regjsparser@^0.9.1": + "integrity" "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==" + "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + "version" "0.9.1" + dependencies: + "jsesc" "~0.5.0" + +"repeat-element@^1.1.2": + "integrity" "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + "resolved" "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" + "version" "1.1.4" + +"repeat-string@^1.6.1": + "integrity" "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + "resolved" "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + "version" "1.6.1" + +"require-directory@^2.1.1": + "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"reselect@^4.1.7": + "integrity" "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" + "resolved" "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz" + "version" "4.1.7" + +"resolve-from@^3.0.0": + "integrity" "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + "version" "3.0.0" + +"resolve-from@^4.0.0": + "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + "version" "4.0.0" + +"resolve-url@^0.2.1": + "integrity" "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" + "resolved" "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + "version" "0.2.1" + +"resolve@^1.14.2", "resolve@^1.22.1": + "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + "version" "1.22.1" + dependencies: + "is-core-module" "^2.9.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +"resolve@^2.0.0-next.4": + "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz" + "version" "2.0.0-next.4" + dependencies: + "is-core-module" "^2.9.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +"restore-cursor@^3.1.0": + "integrity" "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "onetime" "^5.1.0" + "signal-exit" "^3.0.2" + +"ret@~0.1.10": + "integrity" "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "resolved" "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + "version" "0.1.15" + +"reusify@^1.0.4": + "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + "version" "1.0.4" + +"rimraf@^2.5.4": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + +"rimraf@~2.2.6": + "integrity" "sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version" "2.2.8" + +"rimraf@~2.6.2": + "integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + "version" "2.6.3" + dependencies: + "glob" "^7.1.3" + +"ripemd160@^2.0.0", "ripemd160@^2.0.1": + "integrity" "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==" + "resolved" "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "hash-base" "^3.0.0" + "inherits" "^2.0.1" + +"run-parallel@^1.1.9": + "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" + "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "queue-microtask" "^1.2.2" + +"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@^5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-buffer@~5.2.0": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-regex-test@^1.0.0": + "integrity" "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==" + "resolved" "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "call-bind" "^1.0.2" + "get-intrinsic" "^1.1.3" + "is-regex" "^1.1.4" + +"safe-regex@^1.1.0": + "integrity" "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==" + "resolved" "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "ret" "~0.1.10" + +"safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3.0.0": + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"scheduler@^0.22.0": + "integrity" "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==" + "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz" + "version" "0.22.0" + dependencies: + "loose-envify" "^1.1.0" + +"semver@^5.5.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^5.6.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.0.0": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.7": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.8": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"send@0.18.0": + "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" + "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + "version" "0.18.0" + dependencies: + "debug" "2.6.9" + "depd" "2.0.0" + "destroy" "1.2.0" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "2.0.0" + "mime" "1.6.0" + "ms" "2.1.3" + "on-finished" "2.4.1" + "range-parser" "~1.2.1" + "statuses" "2.0.1" + +"serialize-error@^2.1.0": + "integrity" "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==" + "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" + "version" "2.1.0" + +"serve-static@^1.13.1": + "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" + "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + "version" "1.15.0" + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.3" + "send" "0.18.0" + +"set-blocking@^2.0.0": + "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"set-value@^2.0.0", "set-value@^2.0.1": + "integrity" "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==" + "resolved" "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "extend-shallow" "^2.0.1" + "is-extendable" "^0.1.1" + "is-plain-object" "^2.0.3" + "split-string" "^3.0.1" + +"setprototypeof@1.2.0": + "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + "version" "1.2.0" + +"sha.js@^2.4.0", "sha.js@^2.4.8": + "integrity" "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==" + "resolved" "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + "version" "2.4.11" + dependencies: + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"shallow-clone@^3.0.0": + "integrity" "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==" + "resolved" "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^6.0.2" + +"shebang-command@^1.2.0": + "integrity" "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "shebang-regex" "^1.0.0" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^1.0.0": + "integrity" "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + "version" "1.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"shell-quote@^1.6.1", "shell-quote@^1.7.3": + "integrity" "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" + "resolved" "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz" + "version" "1.7.4" + +"side-channel@^1.0.4": + "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2": + "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + "version" "3.0.7" + +"sisteransi@^1.0.5": + "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + "version" "1.0.5" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"slice-ansi@^2.0.0": + "integrity" "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==" + "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "astral-regex" "^1.0.0" + "is-fullwidth-code-point" "^2.0.0" + +"snapdragon-node@^2.0.1": + "integrity" "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==" + "resolved" "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "define-property" "^1.0.0" + "isobject" "^3.0.0" + "snapdragon-util" "^3.0.1" + +"snapdragon-util@^3.0.1": + "integrity" "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==" + "resolved" "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "kind-of" "^3.2.0" + +"snapdragon@^0.8.1": + "integrity" "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==" + "resolved" "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + "version" "0.8.2" + dependencies: + "base" "^0.11.1" + "debug" "^2.2.0" + "define-property" "^0.2.5" + "extend-shallow" "^2.0.1" + "map-cache" "^0.2.2" + "source-map" "^0.5.6" + "source-map-resolve" "^0.5.0" + "use" "^3.1.0" + +"socket.io-client@^4.6.0": + "integrity" "sha512-2XOp18xnGghUICSd5ziUIS4rB0dhr6S8OvAps8y+HhOjFQlqGcf+FIh6fCIsKKZyWFxJeFPrZRNPGsHDTsz1Ug==" + "resolved" "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.0.tgz" + "version" "4.6.0" + dependencies: + "@socket.io/component-emitter" "~3.1.0" + "debug" "~4.3.2" + "engine.io-client" "~6.4.0" + "socket.io-parser" "~4.2.1" + +"socket.io-parser@~4.2.1": + "integrity" "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==" + "resolved" "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "@socket.io/component-emitter" "~3.1.0" + "debug" "~4.3.1" + +"source-map-resolve@^0.5.0": + "integrity" "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==" + "resolved" "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + "version" "0.5.3" + dependencies: + "atob" "^2.1.2" + "decode-uri-component" "^0.2.0" + "resolve-url" "^0.2.1" + "source-map-url" "^0.4.0" + "urix" "^0.1.0" + +"source-map-support@^0.5.16": + "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + "version" "0.5.21" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map-url@^0.4.0": + "integrity" "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "resolved" "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" + "version" "0.4.1" + +"source-map@^0.5.6": + "integrity" "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.7.3": + "integrity" "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + "version" "0.7.4" + +"source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"split-string@^3.0.1", "split-string@^3.0.2": + "integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==" + "resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "extend-shallow" "^3.0.0" + +"sprintf-js@~1.0.2": + "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"stackframe@^1.3.4": + "integrity" "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + "resolved" "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" + "version" "1.3.4" + +"stacktrace-parser@^0.1.3": + "integrity" "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==" + "resolved" "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" + "version" "0.1.10" + dependencies: + "type-fest" "^0.7.1" + +"static-extend@^0.1.1": + "integrity" "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==" + "resolved" "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "define-property" "^0.2.5" + "object-copy" "^0.1.0" + +"statuses@~1.5.0": + "integrity" "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + "version" "1.5.0" + +"statuses@2.0.1": + "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + "version" "2.0.1" + +"stream-browserify@^3.0.0": + "integrity" "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==" + "resolved" "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "inherits" "~2.0.4" + "readable-stream" "^3.5.0" + +"string_decoder@^1.1.1", "string_decoder@^1.3.0": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-width@^4.1.0", "string-width@^4.2.0": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string.prototype.matchall@^4.0.8": + "integrity" "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==" + "resolved" "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz" + "version" "4.0.8" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + "get-intrinsic" "^1.1.3" + "has-symbols" "^1.0.3" + "internal-slot" "^1.0.3" + "regexp.prototype.flags" "^1.4.3" + "side-channel" "^1.0.4" + +"string.prototype.trimend@^1.0.5": + "integrity" "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==" + "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"string.prototype.trimstart@^1.0.5": + "integrity" "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==" + "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "call-bind" "^1.0.2" + "define-properties" "^1.1.4" + "es-abstract" "^1.20.4" + +"strip-ansi@^5.0.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" + +"strip-bom@^3.0.0": + "integrity" "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + "version" "3.0.0" + +"strip-eof@^1.0.0": + "integrity" "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" + "resolved" "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + "version" "1.0.0" + +"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"sudo-prompt@^9.0.0": + "integrity" "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" + "resolved" "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz" + "version" "9.2.1" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "has-flag" "^4.0.0" + +"supports-preserve-symlinks-flag@^1.0.0": + "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + "version" "1.0.0" + +"temp@^0.8.4": + "integrity" "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==" + "resolved" "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" + "version" "0.8.4" + dependencies: + "rimraf" "~2.6.2" + +"temp@0.8.3": + "integrity" "sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==" + "resolved" "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz" + "version" "0.8.3" + dependencies: + "os-tmpdir" "^1.0.0" + "rimraf" "~2.2.6" + +"text-table@^0.2.0": + "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + "version" "0.2.0" + +"throat@^5.0.0": + "integrity" "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + "resolved" "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" + "version" "5.0.0" + +"through2@^2.0.1": + "integrity" "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==" + "resolved" "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "readable-stream" "~2.3.6" + "xtend" "~4.0.1" + +"tmpl@1.0.5": + "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + "version" "1.0.5" + +"to-fast-properties@^2.0.0": + "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + +"to-object-path@^0.3.0": + "integrity" "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==" + "resolved" "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "kind-of" "^3.0.2" + +"to-regex-range@^2.1.0": + "integrity" "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-number" "^3.0.0" + "repeat-string" "^1.6.1" + +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "is-number" "^7.0.0" + +"to-regex@^3.0.1", "to-regex@^3.0.2": + "integrity" "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==" + "resolved" "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "define-property" "^2.0.2" + "extend-shallow" "^3.0.2" + "regex-not" "^1.0.2" + "safe-regex" "^1.1.0" + +"toidentifier@1.0.1": + "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + "version" "1.0.1" + +"tr46@~0.0.3": + "integrity" "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + "version" "0.0.3" + +"tsconfig-paths@^3.14.1": + "integrity" "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==" + "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" + "version" "3.14.1" + dependencies: + "@types/json5" "^0.0.29" + "json5" "^1.0.1" + "minimist" "^1.2.6" + "strip-bom" "^3.0.0" + +"tslib@^1.8.1": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslib@^2.0.1": + "integrity" "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz" + "version" "2.4.1" + +"tslib@1.9.3": + "integrity" "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz" + "version" "1.9.3" + +"tsutils@^3.21.0": + "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" + "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + "version" "3.21.0" + dependencies: + "tslib" "^1.8.1" + +"type-check@^0.4.0", "type-check@~0.4.0": + "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "prelude-ls" "^1.2.1" + +"type-fest@^0.20.2": + "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + "version" "0.20.2" + +"type-fest@^0.7.1": + "integrity" "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" + "version" "0.7.1" + +"typescript@*", "typescript@^4.9.5", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": + "integrity" "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + "version" "4.9.5" + +"uglify-es@^3.1.9": + "integrity" "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==" + "resolved" "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz" + "version" "3.3.9" + dependencies: + "commander" "~2.13.0" + "source-map" "~0.6.1" + +"unbox-primitive@^1.0.2": + "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" + "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "call-bind" "^1.0.2" + "has-bigints" "^1.0.2" + "has-symbols" "^1.0.3" + "which-boxed-primitive" "^1.0.2" + +"unicode-canonical-property-names-ecmascript@^2.0.0": + "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-match-property-ecmascript@^2.0.0": + "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==" + "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "unicode-canonical-property-names-ecmascript" "^2.0.0" + "unicode-property-aliases-ecmascript" "^2.0.0" + +"unicode-match-property-value-ecmascript@^2.0.0": + "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-property-aliases-ecmascript@^2.0.0": + "integrity" "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + "version" "2.1.0" + +"union-value@^1.0.0": + "integrity" "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==" + "resolved" "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "arr-union" "^3.1.0" + "get-value" "^2.0.6" + "is-extendable" "^0.1.1" + "set-value" "^2.0.1" + +"universalify@^0.1.0": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"unpipe@~1.0.0": + "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "version" "1.0.0" + +"unset-value@^1.0.0": + "integrity" "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==" + "resolved" "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "has-value" "^0.3.1" + "isobject" "^3.0.0" + +"update-browserslist-db@^1.0.9": + "integrity" "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==" + "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "escalade" "^3.1.1" + "picocolors" "^1.0.0" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"urix@^0.1.0": + "integrity" "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" + "resolved" "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + "version" "0.1.0" + +"use-sync-external-store@^1.0.0": + "integrity" "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" + "resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" + "version" "1.2.0" + +"use@^3.1.0": + "integrity" "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "resolved" "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + "version" "3.1.1" + +"utf8@^3.0.0": + "integrity" "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + "resolved" "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz" + "version" "3.0.0" + +"util-deprecate@^1.0.1", "util-deprecate@~1.0.1": + "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"utils-merge@1.0.1": + "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + "version" "1.0.1" + +"vary@~1.1.2": + "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + "version" "1.1.2" + +"vlq@^1.0.0": + "integrity" "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + "resolved" "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" + "version" "1.0.1" + +"walker@^1.0.7": + "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "makeerror" "1.0.12" + +"wcwidth@^1.0.1": + "integrity" "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "defaults" "^1.0.3" + +"webidl-conversions@^3.0.0": + "integrity" "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + "version" "3.0.1" + +"whatwg-fetch@^3.0.0": + "integrity" "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + "resolved" "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" + "version" "3.6.2" + +"whatwg-url@^5.0.0": + "integrity" "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "tr46" "~0.0.3" + "webidl-conversions" "^3.0.0" + +"which-boxed-primitive@^1.0.2": + "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==" + "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "is-bigint" "^1.0.1" + "is-boolean-object" "^1.1.0" + "is-number-object" "^1.0.4" + "is-string" "^1.0.5" + "is-symbol" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which@^1.2.9": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^2.0.1": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"word-wrap@^1.2.3": + "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "version" "1.2.3" + +"wrap-ansi@^6.2.0": + "integrity" "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^2.3.0": + "integrity" "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" + "version" "2.4.3" + dependencies: + "graceful-fs" "^4.1.11" + "imurmurhash" "^0.1.4" + "signal-exit" "^3.0.2" + +"ws@^6.1.4": + "integrity" "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==" + "resolved" "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" + "version" "6.2.2" + dependencies: + "async-limiter" "~1.0.0" + +"ws@^7.5.1": + "integrity" "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + "version" "7.5.9" + +"ws@^7": + "integrity" "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==" + "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" + "version" "7.5.9" + +"ws@~8.11.0": + "integrity" "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==" + "resolved" "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz" + "version" "8.11.0" + +"xmlhttprequest-ssl@~2.0.0": + "integrity" "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" + "resolved" "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz" + "version" "2.0.0" + +"xtend@~4.0.1": + "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + "version" "4.0.2" + +"y18n@^4.0.0": + "integrity" "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + "version" "4.0.3" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^3.0.2": + "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + "version" "3.1.1" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^18.1.2": + "integrity" "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + "version" "18.1.3" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^20.2.2": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs@^15.1.0", "yargs@^15.3.1": + "integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + "version" "15.4.1" + dependencies: + "cliui" "^6.0.0" + "decamelize" "^1.2.0" + "find-up" "^4.1.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^4.2.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^18.1.2" + +"yargs@^16.1.1": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0"