From 0cd94da7ce95fe17c037cdb3fc4f4be17bd95265 Mon Sep 17 00:00:00 2001 From: Saif Shaikh Date: Tue, 13 Jan 2026 05:30:56 -0800 Subject: [PATCH 01/58] fix: brightness issue #299 --- src/components/player/android/hooks/usePlayerSetup.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/player/android/hooks/usePlayerSetup.ts b/src/components/player/android/hooks/usePlayerSetup.ts index a9a396e9..f3f448dd 100644 --- a/src/components/player/android/hooks/usePlayerSetup.ts +++ b/src/components/player/android/hooks/usePlayerSetup.ts @@ -112,10 +112,14 @@ export const usePlayerSetup = ( subscription?.remove(); disableImmersiveMode(); - // Restore brightness on unmount - if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) { - // restoration logic normally happens here or in a separate effect + async function restoreBrightness() { + logger.log('yobrrrrrrrrrrrrrr'); + await Brightness.setBrightnessAsync(originalSystemBrightnessRef.current!).then(); + setBrightness(originalSystemBrightnessRef.current!); } + // Restore brightness on unmount + if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) + restoreBrightness(); }; }, []); From 54b51391add33be90d7cf0b4be678cd5a9a60ba0 Mon Sep 17 00:00:00 2001 From: Saif Shaikh Date: Wed, 14 Jan 2026 03:35:15 -0800 Subject: [PATCH 02/58] Revert "fix: brightness issue #299" This reverts commit 0cd94da7ce95fe17c037cdb3fc4f4be17bd95265. --- src/components/player/android/hooks/usePlayerSetup.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/components/player/android/hooks/usePlayerSetup.ts b/src/components/player/android/hooks/usePlayerSetup.ts index f3f448dd..a9a396e9 100644 --- a/src/components/player/android/hooks/usePlayerSetup.ts +++ b/src/components/player/android/hooks/usePlayerSetup.ts @@ -112,14 +112,10 @@ export const usePlayerSetup = ( subscription?.remove(); disableImmersiveMode(); - async function restoreBrightness() { - logger.log('yobrrrrrrrrrrrrrr'); - await Brightness.setBrightnessAsync(originalSystemBrightnessRef.current!).then(); - setBrightness(originalSystemBrightnessRef.current!); - } // Restore brightness on unmount - if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) - restoreBrightness(); + if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) { + // restoration logic normally happens here or in a separate effect + } }; }, []); From eef72d8b706886f6ea5cbf926679ed669a18753b Mon Sep 17 00:00:00 2001 From: Saif Shaikh Date: Wed, 14 Jan 2026 03:37:00 -0800 Subject: [PATCH 03/58] fix: Brightness issue #299 --- src/components/player/android/hooks/usePlayerSetup.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/player/android/hooks/usePlayerSetup.ts b/src/components/player/android/hooks/usePlayerSetup.ts index a9a396e9..05630a8d 100644 --- a/src/components/player/android/hooks/usePlayerSetup.ts +++ b/src/components/player/android/hooks/usePlayerSetup.ts @@ -111,11 +111,12 @@ export const usePlayerSetup = ( return () => { subscription?.remove(); disableImmersiveMode(); - - // Restore brightness on unmount - if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) { - // restoration logic normally happens here or in a separate effect + async function restoreBrightness() { + await Brightness.setBrightnessAsync(originalSystemBrightnessRef.current!); + setBrightness(originalSystemBrightnessRef.current!); } + if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) + restoreBrightness(); }; }, []); From a6fe84b07adbd2984315ddd2f72d10ea96b864c0 Mon Sep 17 00:00:00 2001 From: Nayif <85391825+tapframe@users.noreply.github.com> Date: Sat, 17 Jan 2026 17:31:47 +0530 Subject: [PATCH 04/58] Revert "fix tmdb enrichment overriding addon provided metadata even when turned off" --- src/hooks/useMetadata.ts | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/hooks/useMetadata.ts b/src/hooks/useMetadata.ts index 727e6ec0..3b1bc7b8 100644 --- a/src/hooks/useMetadata.ts +++ b/src/hooks/useMetadata.ts @@ -823,9 +823,6 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // Store addon logo before TMDB enrichment overwrites it const addonLogo = (finalMetadata as any).logo; - const addonName = finalMetadata.name; - const addonDescription = finalMetadata.description; - const addonBanner = finalMetadata.banner; try { @@ -860,8 +857,8 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat finalMetadata = { ...finalMetadata, - name: (addonName && addonName.trim()) ? addonName : (localized.title || finalMetadata.name), - description: (addonDescription && addonDescription.trim()) ? addonDescription : (localized.overview || finalMetadata.description), + name: localized.title || finalMetadata.name, + description: localized.overview || finalMetadata.description, movieDetails: movieDetailsObj, ...(productionInfo.length > 0 && { networks: productionInfo }), }; @@ -897,8 +894,8 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat finalMetadata = { ...finalMetadata, - name: (addonName && addonName.trim()) ? addonName : (localized.name || finalMetadata.name), - description: (addonDescription && addonDescription.trim()) ? addonDescription : (localized.overview || finalMetadata.description), + name: localized.name || finalMetadata.name, + description: localized.overview || finalMetadata.description, tvDetails, ...(productionInfo.length > 0 && { networks: productionInfo }), }; @@ -930,7 +927,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat if (tmdbIdForLogo) { const logoUrl = await tmdbService.getContentLogo(contentType, tmdbIdForLogo, preferredLanguage); // Use TMDB logo if found, otherwise fall back to addon logo - finalMetadata.logo = addonLogo || logoUrl || undefined; + finalMetadata.logo = logoUrl || addonLogo || undefined; if (__DEV__) { console.log('[useMetadata] Logo fetch result:', { contentType, @@ -970,15 +967,12 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat } // Clear banner field if TMDB banner enrichment is enabled to prevent flash - if (settings.enrichMetadataWithTMDB && settings.tmdbEnrichBanners) { - if (!addonBanner && !finalMetadata.banner) { - finalMetadata = { - ...finalMetadata, - banner: undefined, - // Let useMetadataAssets handle banner via TMDB + if (settings.enrichMetadataWithTMDB && settings.tmdbEnrichBanners && !finalMetadata.banner) { + finalMetadata = { + ...finalMetadata, + banner: undefined, // Let useMetadataAssets handle banner via TMDB }; } - } // Preserve existing collection if it was set by fetchProductionInfo setMetadata((prev) => { From 301560b21a2a94ca03748e69dd9c5f7e69a8d1e1 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 10:25:42 +0530 Subject: [PATCH 05/58] minor bug fixes --- src/components/metadata/MetadataDetails.tsx | 13 ++++++++++ src/components/metadata/RatingsSection.tsx | 8 +++--- src/components/metadata/SeriesContent.tsx | 27 +++++++++++++++++++-- src/components/player/KSPlayerCore.tsx | 25 +++++++++++-------- src/hooks/useMetadataAssets.ts | 8 +++--- 5 files changed, 62 insertions(+), 19 deletions(-) diff --git a/src/components/metadata/MetadataDetails.tsx b/src/components/metadata/MetadataDetails.tsx index a51e53cd..57b25d35 100644 --- a/src/components/metadata/MetadataDetails.tsx +++ b/src/components/metadata/MetadataDetails.tsx @@ -23,6 +23,8 @@ import { isMDBListEnabled } from '../../screens/MDBListSettingsScreen'; import { getAgeRatingColor } from '../../utils/ageRatingColors'; import AgeRatingBadge from '../common/AgeRatingBadge'; +const IMDb_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/IMDB_Logo_2016.svg/575px-IMDB_Logo_2016.svg.png'; + // Enhanced responsive breakpoints for Metadata Details const BREAKPOINTS = { phone: 0, @@ -233,6 +235,17 @@ const MetadataDetails: React.FC = ({ )} {metadata.imdbRating && !isMDBEnabled && ( + = ({ imdbId, type }) const ratingConfig = { imdb: { name: 'IMDb', - icon: null, // No icon for IMDb - isImage: false, + icon: { uri: IMDb_LOGO }, + isImage: true, color: '#F5C518', transform: (value: number) => value.toFixed(1) }, @@ -245,7 +247,7 @@ export const RatingsSection: React.FC = ({ imdbId, type }) {config.isImage ? ( ) : config.icon ? ( diff --git a/src/components/metadata/SeriesContent.tsx b/src/components/metadata/SeriesContent.tsx index 639a63b6..4d2035f8 100644 --- a/src/components/metadata/SeriesContent.tsx +++ b/src/components/metadata/SeriesContent.tsx @@ -41,6 +41,7 @@ interface SeriesContentProps { const DEFAULT_PLACEHOLDER = 'https://via.placeholder.com/300x450/1a1a1a/666666?text=No+Image'; const EPISODE_PLACEHOLDER = 'https://via.placeholder.com/500x280/1a1a1a/666666?text=No+Preview'; const TMDB_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Tmdb.new.logo.svg/512px-Tmdb.new.logo.svg.png?20200406190906'; +const IMDb_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/IMDB_Logo_2016.svg/575px-IMDB_Logo_2016.svg.png'; const SeriesContentComponent: React.FC = ({ episodes, @@ -1166,7 +1167,18 @@ const SeriesContentComponent: React.FC = ({ {isImdbRating ? ( <> - + = ({ {isImdbRating ? ( <> - + { controls.seekToTime(value); }; + const handleProgress = useCallback((d: any) => { + if (!isSliderDragging) { + setCurrentTime(d.currentTime); + } + // Only update buffered if it changed by more than 0.5s to reduce re-renders + const newBuffered = d.buffered || 0; + setBuffered(prevBuffered => { + if (Math.abs(newBuffered - prevBuffered) > 0.5) { + return newBuffered; + } + return prevBuffered; + }); + }, [isSliderDragging, setCurrentTime, setBuffered]); + return ( + {userStats && ( + + + + {userStats.movies?.watched ?? 0} + + + Movies + + + + + {userStats.shows?.watched ?? 0} + + + Shows + + + + + {userStats.episodes?.watched ?? 0} + + + Episodes + + + + + {Math.round(((userStats.minutes ?? 0) + (userStats.movies?.minutes ?? 0) + (userStats.shows?.minutes ?? 0) + (userStats.episodes?.minutes ?? 0)) / 60)}h + + + Watched + + + + )} ; +} + +export interface SimklStats { + total_mins: number; + movies?: { + total_mins: number; + completed?: { count: number }; + }; + tv?: { + total_mins: number; + watching?: { count: number }; + completed?: { count: number }; + }; + anime?: { + total_mins: number; + watching?: { count: number }; + completed?: { count: number }; + }; +} + export class SimklService { private static instance: SimklService; private accessToken: string | null = null; @@ -480,18 +518,41 @@ export class SimklService { } public async getPlaybackStatus(): Promise { - // Get both movies and episodes - // Simkl endpoint: /sync/playback (returns all if no type specified, or we specify type) - // Docs say /sync/playback/{type} - // Let's trying getting all if possible, or fetch both. Docs say type is optional param? - // Docs: /sync/playback/{type} -> actually path param seems required or at least standard. - // But query params: type (optional). - // Let's try fetching without path param or empty? - // Docs: "Retrieves all paused... optionally filter by type by appending /movie" - // Let's assume /sync/playback works for all. + // Docs: GET /sync/playback/{type} with {type} values `movies` or `episodes`. + // Some docs also mention appending /movie or /episode; we try both variants for safety. + const tryEndpoints = async (endpoints: string[]): Promise => { + for (const endpoint of endpoints) { + try { + const res = await this.apiRequest(endpoint); + if (Array.isArray(res)) { + logger.log(`[SimklService] getPlaybackStatus: ${endpoint} -> ${res.length} items`); + return res; + } + } catch (e) { + logger.warn(`[SimklService] getPlaybackStatus: ${endpoint} failed`, e); + } + } + return []; + }; - const response = await this.apiRequest('/sync/playback'); - return response || []; + const movies = await tryEndpoints([ + '/sync/playback/movies', + '/sync/playback/movie', + '/sync/playback?type=movies' + ]); + + const episodes = await tryEndpoints([ + '/sync/playback/episodes', + '/sync/playback/episode', + '/sync/playback?type=episodes' + ]); + + const combined = [...episodes, ...movies] + .filter(Boolean) + .sort((a, b) => new Date(b.paused_at).getTime() - new Date(a.paused_at).getTime()); + + logger.log(`[SimklService] getPlaybackStatus: combined ${combined.length} items (episodes=${episodes.length}, movies=${movies.length})`); + return combined; } /** @@ -506,4 +567,42 @@ export class SimklService { } return await this.apiRequest(url); } -} + + /** + * Get user settings/profile + */ + public async getUserSettings(): Promise { + try { + const response = await this.apiRequest('/users/settings', 'POST'); + logger.log('[SimklService] getUserSettings:', JSON.stringify(response)); + return response; + } catch (error) { + logger.error('[SimklService] Failed to get user settings:', error); + return null; + } + } + + /** + * Get user stats + */ + public async getUserStats(): Promise { + try { + if (!await this.isAuthenticated()) { + return null; + } + + // Need account ID from settings first + const settings = await this.getUserSettings(); + if (!settings?.account?.id) { + logger.warn('[SimklService] Cannot get user stats: no account ID'); + return null; + } + + const response = await this.apiRequest(`/users/${settings.account.id}/stats`, 'POST'); + logger.log('[SimklService] getUserStats:', JSON.stringify(response)); + return response; + } catch (error) { + logger.error('[SimklService] Failed to get user stats:', error); + return null; + } + }} \ No newline at end of file diff --git a/src/services/traktService.ts b/src/services/traktService.ts index 80b0b6c5..bb5de6f9 100644 --- a/src/services/traktService.ts +++ b/src/services/traktService.ts @@ -27,6 +27,22 @@ export interface TraktUser { avatar?: string; } +export interface TraktUserStats { + movies?: { + watched?: number; + minutes?: number; + }; + shows?: { + watched?: number; + minutes?: number; + }; + episodes?: { + watched?: number; + minutes?: number; + }; + minutes?: number; // total minutes watched +} + export interface TraktWatchedItem { movie?: { title: string; @@ -1117,6 +1133,13 @@ export class TraktService { return this.apiRequest('/users/me?extended=full'); } + /** + * Get the user's watch stats + */ + public async getUserStats(): Promise { + return this.apiRequest('/users/me/stats'); + } + /** * Get the user's watched movies */ From 4a611366901464fa925f8b05762c8c10b2a77ff0 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:18:30 +0530 Subject: [PATCH 10/58] removed primary colour from trakt icon --- src/screens/SettingsScreen.tsx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index dc8e620c..577b980b 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -375,10 +375,10 @@ const SettingsScreen: React.FC = () => { return ( {isItemVisible('trakt') && ( - } + } renderControl={() => } onPress={() => navigation.navigate('TraktSettings')} isLast={!isItemVisible('simkl')} @@ -386,10 +386,10 @@ const SettingsScreen: React.FC = () => { /> )} {isItemVisible('simkl') && ( - } + } renderControl={() => } onPress={() => navigation.navigate('SimklSettings')} isLast={true} @@ -683,7 +683,7 @@ const SettingsScreen: React.FC = () => { } + customIcon={} renderControl={() => } onPress={() => navigation.navigate('TraktSettings')} isLast={!isItemVisible('simkl')} @@ -693,7 +693,7 @@ const SettingsScreen: React.FC = () => { } + customIcon={} renderControl={() => } onPress={() => navigation.navigate('SimklSettings')} isLast={true} From 3e30048c033ee385c74ae8eeadd0015227afaea7 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:26:23 +0530 Subject: [PATCH 11/58] added "simk" harcodings to locales --- src/i18n/locales/ar.json | 24 +++++++++++++++++++++++ src/i18n/locales/de.json | 24 +++++++++++++++++++++++ src/i18n/locales/en.json | 24 +++++++++++++++++++++++ src/i18n/locales/es.json | 24 +++++++++++++++++++++++ src/i18n/locales/fr.json | 24 +++++++++++++++++++++++ src/i18n/locales/it.json | 24 +++++++++++++++++++++++ src/i18n/locales/pt-BR.json | 24 +++++++++++++++++++++++ src/i18n/locales/pt-PT.json | 24 +++++++++++++++++++++++ src/screens/SettingsScreen.tsx | 8 ++++---- src/screens/SimklSettingsScreen.tsx | 30 +++++++++++++++-------------- 10 files changed, 212 insertions(+), 18 deletions(-) diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 623d4c06..44bc4fbc 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -522,6 +522,27 @@ "sync_success_msg": "تمت مزامنة تقدم المشاهدة مع Trakt بنجاح.", "sync_error_msg": "ÙØ´Ù„ت المزامنة. يرجى المحاولة مرة أخرى." }, + "simkl": { + "title": "إعدادات Simkl", + "settings_title": "إعدادات Simkl", + "connect_title": "الاتصال بـ Simkl", + "connect_desc": "زامن تاريخ مشاهدتك وتتبع ما تشاهده", + "sign_in": "تسجيل الدخول بـ Simkl", + "sign_out": "قطع الاتصال", + "sign_out_confirm": "هل أنت متأكد من أنك تريد قطع الاتصال من SimklØŸ", + "syncing_desc": "عناصرك المشاهدة تتم مزامنتها مع Simkl.", + "auth_success_title": "تم الاتصال بنجاح", + "auth_success_msg": "تم ربط حساب Simkl الخاص بك بنجاح.", + "auth_error_title": "خطأ ÙÙŠ المصادقة", + "auth_error_msg": "ÙØ´Ù„ ÙÙŠ إكمال المصادقة مع Simkl.", + "auth_error_generic": "حدث خطأ أثناء المصادقة.", + "sign_out_error": "ÙØ´Ù„ ÙÙŠ قطع الاتصال من Simkl.", + "config_error_title": "خطأ ÙÙŠ التكوين", + "config_error_msg": "معر٠عميل Simkl Ù…Ùقود ÙÙŠ متغيرات البيئة.", + "conflict_title": "تعارض", + "conflict_msg": "لا يمكنك ربط Simkl بينما Trakt متصل. يرجى قطع اتصال Trakt أولاً.", + "disclaimer": "Nuvio غير مرتبط بشركة Simkl." + }, "tmdb_settings": { "title": "إعدادات TMDb", "metadata_enrichment": "إثراء البيانات التعريÙية", @@ -675,6 +696,9 @@ "mdblist": "MDBList", "mdblist_connected": "متصل", "mdblist_desc": "ØªÙØ¹ÙŠÙ„ Ù„Ø¥Ø¶Ø§ÙØ© التقييمات والمراجعات", + "simkl": "Simkl", + "simkl_connected": "متصل", + "simkl_desc": "تتبع ما تشاهده", "tmdb": "TMDB", "tmdb_desc": "مزود البيانات التعريÙية والشعارات", "openrouter": "OpenRouter API", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index ace11a3d..3501bcf9 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -522,6 +522,27 @@ "sync_success_msg": "Wiedergabefortschritt erfolgreich mit Trakt synchronisiert.", "sync_error_msg": "Synchronisierung fehlgeschlagen. Bitte versuchen Sie es erneut." }, + "simkl": { + "title": "Simkl Einstellungen", + "settings_title": "Simkl Einstellungen", + "connect_title": "Mit Simkl verbinden", + "connect_desc": "Synchronisieren Sie Ihren Verlauf und verfolgen Sie, was Sie sehen", + "sign_in": "Mit Simkl anmelden", + "sign_out": "Trennen", + "sign_out_confirm": "Sind Sie sicher, dass Sie die Verbindung zu Simkl trennen möchten?", + "syncing_desc": "Ihre gesehenen Elemente werden mit Simkl synchronisiert.", + "auth_success_title": "Erfolgreich verbunden", + "auth_success_msg": "Ihr Simkl-Konto wurde erfolgreich verbunden.", + "auth_error_title": "Authentifizierungsfehler", + "auth_error_msg": "Authentifizierung mit Simkl fehlgeschlagen.", + "auth_error_generic": "Bei der Authentifizierung ist ein Fehler aufgetreten.", + "sign_out_error": "Verbindung zu Simkl konnte nicht getrennt werden.", + "config_error_title": "Konfigurationsfehler", + "config_error_msg": "Simkl Client ID fehlt in den Umgebungsvariablen.", + "conflict_title": "Konflikt", + "conflict_msg": "Sie können Simkl nicht verbinden, während Trakt verbunden ist. Bitte trennen Sie zuerst Trakt.", + "disclaimer": "Nuvio ist nicht mit Simkl verbunden." + }, "tmdb_settings": { "title": "TMDb Einstellungen", "metadata_enrichment": "Metadaten-Anreicherung", @@ -675,6 +696,9 @@ "mdblist": "MDBList", "mdblist_connected": "Verbunden", "mdblist_desc": "Aktivieren, um Bewertungen & Rezensionen hinzuzufügen", + "simkl": "Simkl", + "simkl_connected": "Verbunden", + "simkl_desc": "Verfolge, was du schaust", "tmdb": "TMDB", "tmdb_desc": "Metadaten- & Logo-Quellanbieter", "openrouter": "OpenRouter API", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index f11b13a7..3a3b52a2 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -522,6 +522,27 @@ "sync_success_msg": "Successfully synced your watch progress with Trakt.", "sync_error_msg": "Sync failed. Please try again." }, + "simkl": { + "title": "Simkl Settings", + "settings_title": "Simkl Settings", + "connect_title": "Connect with Simkl", + "connect_desc": "Sync your watch history and track what you're watching", + "sign_in": "Sign In with Simkl", + "sign_out": "Disconnect", + "sign_out_confirm": "Are you sure you want to disconnect from Simkl?", + "syncing_desc": "Your watched items are syncing with Simkl.", + "auth_success_title": "Successfully Connected", + "auth_success_msg": "Your Simkl account has been connected successfully.", + "auth_error_title": "Authentication Error", + "auth_error_msg": "Failed to complete authentication with Simkl.", + "auth_error_generic": "An error occurred during authentication.", + "sign_out_error": "Failed to disconnect from Simkl.", + "config_error_title": "Configuration Error", + "config_error_msg": "Simkl Client ID is missing in environment variables.", + "conflict_title": "Conflict", + "conflict_msg": "You cannot connect to Simkl while Trakt is connected. Please disconnect Trakt first.", + "disclaimer": "Nuvio is not affiliated with Simkl." + }, "tmdb_settings": { "title": "TMDb Settings", "metadata_enrichment": "Metadata Enrichment", @@ -675,6 +696,9 @@ "mdblist": "MDBList", "mdblist_connected": "Connected", "mdblist_desc": "Enable to add ratings & reviews", + "simkl": "Simkl", + "simkl_connected": "Connected", + "simkl_desc": "Track what you watch", "tmdb": "TMDB", "tmdb_desc": "Metadata & logo source provider", "openrouter": "OpenRouter API", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 2efd681c..d542aa8b 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -522,6 +522,27 @@ "sync_success_msg": "Sincronización del progreso con Trakt completada con éxito.", "sync_error_msg": "La sincronización falló. Por favor, inténtalo de nuevo." }, + "simkl": { + "title": "Configuración de Simkl", + "settings_title": "Configuración de Simkl", + "connect_title": "Conectar con Simkl", + "connect_desc": "Sincroniza tu historial de visualización y rastrea lo que ves", + "sign_in": "Iniciar sesión con Simkl", + "sign_out": "Desconectar", + "sign_out_confirm": "¿Estás seguro de que quieres desconectar de Simkl?", + "syncing_desc": "Tus elementos vistos se están sincronizando con Simkl.", + "auth_success_title": "Conectado exitosamente", + "auth_success_msg": "Tu cuenta de Simkl se ha conectado exitosamente.", + "auth_error_title": "Error de autenticación", + "auth_error_msg": "Error al completar la autenticación con Simkl.", + "auth_error_generic": "Ocurrió un error durante la autenticación.", + "sign_out_error": "Error al desconectar de Simkl.", + "config_error_title": "Error de configuración", + "config_error_msg": "El ID de cliente de Simkl falta en las variables de entorno.", + "conflict_title": "Conflicto", + "conflict_msg": "No puedes conectar Simkl mientras Trakt está conectado. Por favor, desconecta Trakt primero.", + "disclaimer": "Nuvio no está afiliado con Simkl." + }, "tmdb_settings": { "title": "Ajustes de TMDb", "metadata_enrichment": "Enriquecimiento de metadatos", @@ -675,6 +696,9 @@ "mdblist": "MDBList", "mdblist_connected": "Conectado", "mdblist_desc": "Activar para añadir valoraciones y reseñas", + "simkl": "Simkl", + "simkl_connected": "Conectado", + "simkl_desc": "Rastrea lo que ves", "tmdb": "TMDB", "tmdb_desc": "Proveedor de metadatos y logos", "openrouter": "API de OpenRouter", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 1bcd2808..38008ebc 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -522,6 +522,27 @@ "sync_success_msg": "Votre progression a été synchronisée avec succès avec Trakt.", "sync_error_msg": "La synchronisation a échoué. Veuillez réessayer." }, + "simkl": { + "title": "Paramètres Simkl", + "settings_title": "Paramètres Simkl", + "connect_title": "Se connecter avec Simkl", + "connect_desc": "Synchronisez votre historique de visionnage et suivez ce que vous regardez", + "sign_in": "Se connecter avec Simkl", + "sign_out": "Déconnecter", + "sign_out_confirm": "Êtes-vous sûr de vouloir vous déconnecter de Simkl ?", + "syncing_desc": "Vos éléments regardés sont synchronisés avec Simkl.", + "auth_success_title": "Connecté avec succès", + "auth_success_msg": "Votre compte Simkl a été connecté avec succès.", + "auth_error_title": "Erreur d'authentification", + "auth_error_msg": "Échec de l'authentification avec Simkl.", + "auth_error_generic": "Une erreur s'est produite lors de l'authentification.", + "sign_out_error": "Échec de la déconnexion de Simkl.", + "config_error_title": "Erreur de configuration", + "config_error_msg": "L'ID client Simkl est manquant dans les variables d'environnement.", + "conflict_title": "Conflit", + "conflict_msg": "Vous ne pouvez pas connecter Simkl tant que Trakt est connecté. Veuillez d'abord déconnecter Trakt.", + "disclaimer": "Nuvio n'est pas affilié à Simkl." + }, "tmdb_settings": { "title": "Paramètres TMDb", "metadata_enrichment": "Enrichissement des métadonnées", @@ -675,6 +696,9 @@ "mdblist": "MDBList", "mdblist_connected": "Connecté", "mdblist_desc": "Activer pour ajouter les notes et avis", + "simkl": "Simkl", + "simkl_connected": "Connecté", + "simkl_desc": "Suivez ce que vous regardez", "tmdb": "TMDB", "tmdb_desc": "Fournisseur de métadonnées et de logos", "openrouter": "API OpenRouter", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 6559bc0f..d1895f0b 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -522,6 +522,27 @@ "sync_success_msg": "Progressi di visione sincronizzati con successo con Trakt.", "sync_error_msg": "Sincronizzazione fallita. Riprova." }, + "simkl": { + "title": "Impostazioni Simkl", + "settings_title": "Impostazioni Simkl", + "connect_title": "Connetti con Simkl", + "connect_desc": "Sincronizza la tua cronologia di visione e traccia ciò che guardi", + "sign_in": "Accedi con Simkl", + "sign_out": "Disconnetti", + "sign_out_confirm": "Sei sicuro di voler disconnettere da Simkl?", + "syncing_desc": "I tuoi elementi guardati sono in sincronizzazione con Simkl.", + "auth_success_title": "Connesso con successo", + "auth_success_msg": "Il tuo account Simkl è stato connesso con successo.", + "auth_error_title": "Errore di autenticazione", + "auth_error_msg": "Impossibile completare l'autenticazione con Simkl.", + "auth_error_generic": "Si è verificato un errore durante l'autenticazione.", + "sign_out_error": "Impossibile disconnettere da Simkl.", + "config_error_title": "Errore di configurazione", + "config_error_msg": "L'ID client Simkl manca nelle variabili d'ambiente.", + "conflict_title": "Conflitto", + "conflict_msg": "Non puoi connettere Simkl mentre Trakt è connesso. Disconnetti prima Trakt.", + "disclaimer": "Nuvio non è affiliato con Simkl." + }, "tmdb_settings": { "title": "Impostazioni TMDb", "metadata_enrichment": "Arricchimento metadati", @@ -675,6 +696,9 @@ "mdblist": "MDBList", "mdblist_connected": "Connesso", "mdblist_desc": "Abilita per aggiungere voti e recensioni", + "simkl": "Simkl", + "simkl_connected": "Connesso", + "simkl_desc": "Traccia ciò che guardi", "tmdb": "TMDB", "tmdb_desc": "Sorgente metadati e loghi", "openrouter": "API OpenRouter", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 05f9823b..277ba9ef 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -522,6 +522,27 @@ "sync_success_msg": "Progresso sincronizado com sucesso com o Trakt.", "sync_error_msg": "Falha na sincronização. Tente novamente." }, + "simkl": { + "title": "Configurações do Simkl", + "settings_title": "Configurações do Simkl", + "connect_title": "Conectar com Simkl", + "connect_desc": "Sincronize seu histórico de visualização e rastreie o que você assiste", + "sign_in": "Entrar com Simkl", + "sign_out": "Desconectar", + "sign_out_confirm": "Tem certeza de que deseja desconectar do Simkl?", + "syncing_desc": "Seus itens assistidos estão sendo sincronizados com o Simkl.", + "auth_success_title": "Conectado com sucesso", + "auth_success_msg": "Sua conta Simkl foi conectada com sucesso.", + "auth_error_title": "Erro de autenticação", + "auth_error_msg": "Falha ao completar a autenticação com o Simkl.", + "auth_error_generic": "Ocorreu um erro durante a autenticação.", + "sign_out_error": "Falha ao desconectar do Simkl.", + "config_error_title": "Erro de configuração", + "config_error_msg": "O ID do cliente Simkl está faltando nas variáveis de ambiente.", + "conflict_title": "Conflito", + "conflict_msg": "Você não pode conectar o Simkl enquanto o Trakt está conectado. Desconecte o Trakt primeiro.", + "disclaimer": "Nuvio não é afiliado ao Simkl." + }, "tmdb_settings": { "title": "Configurações do TMDb", "metadata_enrichment": "Enriquecimento de Metadados", @@ -689,6 +710,9 @@ "mdblist": "MDBList", "mdblist_connected": "Conectado", "mdblist_desc": "Habilitar para adicionar avaliações e resenhas", + "simkl": "Simkl", + "simkl_connected": "Conectado", + "simkl_desc": "Acompanhe o que você assiste", "tmdb": "TMDB", "tmdb_desc": "Provedor de metadados e logos", "openrouter": "OpenRouter API", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 424fd409..8345eed9 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -522,6 +522,27 @@ "sync_success_msg": "Progresso sincronizado com sucesso com o Trakt.", "sync_error_msg": "Falha na sincronização. Tenta novamente." }, + "simkl": { + "title": "Configurações do Simkl", + "settings_title": "Configurações do Simkl", + "connect_title": "Ligar ao Simkl", + "connect_desc": "Sincroniza o teu histórico de visualização e rastreia o que vês", + "sign_in": "Entrar com Simkl", + "sign_out": "Desligar", + "sign_out_confirm": "Tens a certeza de que queres desligar do Simkl?", + "syncing_desc": "Os teus itens vistos estão a ser sincronizados com o Simkl.", + "auth_success_title": "Ligado com sucesso", + "auth_success_msg": "A tua conta Simkl foi ligada com sucesso.", + "auth_error_title": "Erro de autenticação", + "auth_error_msg": "Falha ao completar a autenticação com o Simkl.", + "auth_error_generic": "Ocorreu um erro durante a autenticação.", + "sign_out_error": "Falha ao desligar do Simkl.", + "config_error_title": "Erro de configuração", + "config_error_msg": "O ID do cliente Simkl está em falta nas variáveis de ambiente.", + "conflict_title": "Conflito", + "conflict_msg": "Não podes ligar o Simkl enquanto o Trakt está ligado. Desliga primeiro o Trakt.", + "disclaimer": "Nuvio não é afiliado ao Simkl." + }, "tmdb_settings": { "title": "Configurações do TMDb", "metadata_enrichment": "Enriquecimento de Metadados", @@ -689,6 +710,9 @@ "mdblist": "MDBList", "mdblist_connected": "Conectado", "mdblist_desc": "Ativar para adicionar avaliações e críticas", + "simkl": "Simkl", + "simkl_connected": "Conectado", + "simkl_desc": "Acompanhe o que vê", "tmdb": "TMDB", "tmdb_desc": "Provedor de metadados e logos", "openrouter": "OpenRouter API", diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index 577b980b..386d511c 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -387,8 +387,8 @@ const SettingsScreen: React.FC = () => { )} {isItemVisible('simkl') && ( } renderControl={() => } onPress={() => navigation.navigate('SimklSettings')} @@ -691,8 +691,8 @@ const SettingsScreen: React.FC = () => { )} {isItemVisible('simkl') && ( } renderControl={() => } onPress={() => navigation.navigate('SimklSettings')} diff --git a/src/screens/SimklSettingsScreen.tsx b/src/screens/SimklSettingsScreen.tsx index e326adcd..1ef22708 100644 --- a/src/screens/SimklSettingsScreen.tsx +++ b/src/screens/SimklSettingsScreen.tsx @@ -21,6 +21,7 @@ import { useTheme } from '../contexts/ThemeContext'; import { useSimklIntegration } from '../hooks/useSimklIntegration'; import { useTraktIntegration } from '../hooks/useTraktIntegration'; import CustomAlert from '../components/CustomAlert'; +import { useTranslation } from 'react-i18next'; const ANDROID_STATUSBAR_HEIGHT = StatusBar.currentHeight || 0; @@ -50,6 +51,7 @@ const SimklSettingsScreen: React.FC = () => { const [alertMessage, setAlertMessage] = useState(''); const { currentTheme } = useTheme(); + const { t } = useTranslation(); const { isAuthenticated, @@ -97,30 +99,30 @@ const SimklSettingsScreen: React.FC = () => { .then(success => { if (success) { refreshAuthStatus(); - openAlert('Success', 'Connected to Simkl successfully!'); + openAlert(t('common.success'), t('simkl.auth_success_msg')); } else { - openAlert('Error', 'Failed to connect to Simkl.'); + openAlert(t('common.error'), t('simkl.auth_error_msg')); } }) .catch(err => { logger.error('[SimklSettingsScreen] Token exchange error:', err); - openAlert('Error', 'An error occurred during connection.'); + openAlert(t('common.error'), t('simkl.auth_error_generic')); }) .finally(() => setIsExchangingCode(false)); } else if (response.type === 'error') { - openAlert('Error', 'Authentication error: ' + (response.error?.message || 'Unknown')); + openAlert(t('simkl.auth_error_title'), t('simkl.auth_error_generic') + ' ' + (response.error?.message || t('common.unknown'))); } } }, [response, refreshAuthStatus]); const handleSignIn = () => { if (!SIMKL_CLIENT_ID) { - openAlert('Configuration Error', 'Simkl Client ID is missing in environment variables.'); + openAlert(t('simkl.config_error_title'), t('simkl.config_error_msg')); return; } if (isTraktAuthenticated) { - openAlert('Conflict', 'You cannot connect to Simkl while Trakt is connected. Please disconnect Trakt first.'); + openAlert(t('simkl.conflict_title'), t('simkl.conflict_msg')); return; } @@ -130,7 +132,7 @@ const SimklSettingsScreen: React.FC = () => { const handleSignOut = async () => { await simklService.logout(); refreshAuthStatus(); - openAlert('Signed Out', 'You have disconnected from Simkl.'); + openAlert(t('common.success'), t('simkl.sign_out_confirm')); }; return ( @@ -156,7 +158,7 @@ const SimklSettingsScreen: React.FC = () => { - Simkl Integration + {t('simkl.settings_title')} @@ -195,7 +197,7 @@ const SimklSettingsScreen: React.FC = () => { - Your watched items are syncing with Simkl. + {t('simkl.syncing_desc')} {userStats && ( @@ -239,16 +241,16 @@ const SimklSettingsScreen: React.FC = () => { style={[styles.button, { backgroundColor: currentTheme.colors.error, marginTop: 20 }]} onPress={handleSignOut} > - Disconnect + {t('simkl.sign_out')} ) : ( - Connect Simkl + {t('simkl.connect_title')} - Sync your watch history and track what you're watching. + {t('simkl.connect_desc')} { {isExchangingCode ? ( ) : ( - Sign In with Simkl + {t('simkl.sign_in')} )} @@ -277,7 +279,7 @@ const SimklSettingsScreen: React.FC = () => { - Nuvio is not affiliated with Simkl. + {t('simkl.disclaimer')} From 6f15e104ef51f8494d7ed526683bd2e0ba5d0f68 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:27:49 +0530 Subject: [PATCH 12/58] margin adjustments --- src/screens/SearchScreen.tsx | 31 ++++++++--------------------- src/screens/SimklSettingsScreen.tsx | 4 ++-- 2 files changed, 10 insertions(+), 25 deletions(-) diff --git a/src/screens/SearchScreen.tsx b/src/screens/SearchScreen.tsx index e70c37df..8d5a6745 100644 --- a/src/screens/SearchScreen.tsx +++ b/src/screens/SearchScreen.tsx @@ -153,18 +153,13 @@ const SearchScreen = () => { type: catalog.type, }; await mmkvStorage.setItem(DISCOVER_CATALOG_KEY, JSON.stringify(catalogData)); - } else { - // Clear catalog if null - await mmkvStorage.removeItem(DISCOVER_CATALOG_KEY); } - // Save genre - use empty string to indicate "All genres" - // This way we distinguish between "not set" and "All genres" + // Save genre if (genre) { await mmkvStorage.setItem(DISCOVER_GENRE_KEY, genre); } else { - // Save empty string to indicate "All genres" is selected - await mmkvStorage.setItem(DISCOVER_GENRE_KEY, ''); + await mmkvStorage.removeItem(DISCOVER_GENRE_KEY); } } catch (error) { logger.error('Failed to save discover settings:', error); @@ -193,21 +188,11 @@ const SearchScreen = () => { // Load saved genre const savedGenre = await mmkvStorage.getItem(DISCOVER_GENRE_KEY); - if (savedGenre !== null) { - if (savedGenre === '') { - // Empty string means "All genres" was selected - setSelectedDiscoverGenre(null); - } else if (foundCatalog.genres.includes(savedGenre)) { - setSelectedDiscoverGenre(savedGenre); - } else if (foundCatalog.genres.length > 0) { - // Set first genre as default if saved genre not available - setSelectedDiscoverGenre(foundCatalog.genres[0]); - } - } else { - // No saved genre, default to first genre - if (foundCatalog.genres.length > 0) { - setSelectedDiscoverGenre(foundCatalog.genres[0]); - } + if (savedGenre && foundCatalog.genres.includes(savedGenre)) { + setSelectedDiscoverGenre(savedGenre); + } else if (foundCatalog.genres.length > 0) { + // Set first genre as default if saved genre not available + setSelectedDiscoverGenre(foundCatalog.genres[0]); } return; } @@ -703,7 +688,7 @@ const SearchScreen = () => { const handleGenreSelect = (genre: string | null) => { setSelectedDiscoverGenre(genre); - // Save genre setting - this will save empty string for null (All genres) + // Save genre setting saveDiscoverSettings(selectedDiscoverType, selectedCatalog, genre); genreSheetRef.current?.dismiss(); diff --git a/src/screens/SimklSettingsScreen.tsx b/src/screens/SimklSettingsScreen.tsx index 1ef22708..d6a7bf96 100644 --- a/src/screens/SimklSettingsScreen.tsx +++ b/src/screens/SimklSettingsScreen.tsx @@ -431,7 +431,7 @@ const styles = StyleSheet.create({ disclaimer: { fontSize: 12, textAlign: 'center', - marginTop: 20, + marginTop: 8, marginBottom: 8, }, logoSection: { @@ -439,7 +439,7 @@ const styles = StyleSheet.create({ justifyContent: 'center', paddingVertical: 20, marginTop: 16, - marginBottom: 8, + marginBottom: 0, }, logo: { width: 150, From 00cf7e696daaf7e932ebc9e129b39f325a09c2f7 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:29:00 +0530 Subject: [PATCH 13/58] Revert "margin adjustments" This reverts commit 6f15e104ef51f8494d7ed526683bd2e0ba5d0f68. --- src/screens/SearchScreen.tsx | 31 +++++++++++++++++++++-------- src/screens/SimklSettingsScreen.tsx | 4 ++-- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/screens/SearchScreen.tsx b/src/screens/SearchScreen.tsx index 8d5a6745..e70c37df 100644 --- a/src/screens/SearchScreen.tsx +++ b/src/screens/SearchScreen.tsx @@ -153,13 +153,18 @@ const SearchScreen = () => { type: catalog.type, }; await mmkvStorage.setItem(DISCOVER_CATALOG_KEY, JSON.stringify(catalogData)); + } else { + // Clear catalog if null + await mmkvStorage.removeItem(DISCOVER_CATALOG_KEY); } - // Save genre + // Save genre - use empty string to indicate "All genres" + // This way we distinguish between "not set" and "All genres" if (genre) { await mmkvStorage.setItem(DISCOVER_GENRE_KEY, genre); } else { - await mmkvStorage.removeItem(DISCOVER_GENRE_KEY); + // Save empty string to indicate "All genres" is selected + await mmkvStorage.setItem(DISCOVER_GENRE_KEY, ''); } } catch (error) { logger.error('Failed to save discover settings:', error); @@ -188,11 +193,21 @@ const SearchScreen = () => { // Load saved genre const savedGenre = await mmkvStorage.getItem(DISCOVER_GENRE_KEY); - if (savedGenre && foundCatalog.genres.includes(savedGenre)) { - setSelectedDiscoverGenre(savedGenre); - } else if (foundCatalog.genres.length > 0) { - // Set first genre as default if saved genre not available - setSelectedDiscoverGenre(foundCatalog.genres[0]); + if (savedGenre !== null) { + if (savedGenre === '') { + // Empty string means "All genres" was selected + setSelectedDiscoverGenre(null); + } else if (foundCatalog.genres.includes(savedGenre)) { + setSelectedDiscoverGenre(savedGenre); + } else if (foundCatalog.genres.length > 0) { + // Set first genre as default if saved genre not available + setSelectedDiscoverGenre(foundCatalog.genres[0]); + } + } else { + // No saved genre, default to first genre + if (foundCatalog.genres.length > 0) { + setSelectedDiscoverGenre(foundCatalog.genres[0]); + } } return; } @@ -688,7 +703,7 @@ const SearchScreen = () => { const handleGenreSelect = (genre: string | null) => { setSelectedDiscoverGenre(genre); - // Save genre setting + // Save genre setting - this will save empty string for null (All genres) saveDiscoverSettings(selectedDiscoverType, selectedCatalog, genre); genreSheetRef.current?.dismiss(); diff --git a/src/screens/SimklSettingsScreen.tsx b/src/screens/SimklSettingsScreen.tsx index d6a7bf96..1ef22708 100644 --- a/src/screens/SimklSettingsScreen.tsx +++ b/src/screens/SimklSettingsScreen.tsx @@ -431,7 +431,7 @@ const styles = StyleSheet.create({ disclaimer: { fontSize: 12, textAlign: 'center', - marginTop: 8, + marginTop: 20, marginBottom: 8, }, logoSection: { @@ -439,7 +439,7 @@ const styles = StyleSheet.create({ justifyContent: 'center', paddingVertical: 20, marginTop: 16, - marginBottom: 0, + marginBottom: 8, }, logo: { width: 150, From 34d809c510dc6211c799f4be9746b890f6a1015d Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:29:36 +0530 Subject: [PATCH 14/58] margin adjustment --- src/screens/SimklSettingsScreen.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/screens/SimklSettingsScreen.tsx b/src/screens/SimklSettingsScreen.tsx index 1ef22708..d6a7bf96 100644 --- a/src/screens/SimklSettingsScreen.tsx +++ b/src/screens/SimklSettingsScreen.tsx @@ -431,7 +431,7 @@ const styles = StyleSheet.create({ disclaimer: { fontSize: 12, textAlign: 'center', - marginTop: 20, + marginTop: 8, marginBottom: 8, }, logoSection: { @@ -439,7 +439,7 @@ const styles = StyleSheet.create({ justifyContent: 'center', paddingVertical: 20, marginTop: 16, - marginBottom: 8, + marginBottom: 0, }, logo: { width: 150, From 34a3c52aede90d9512148e5961d27bb49f0d407b Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:31:54 +0530 Subject: [PATCH 15/58] Mentioning Alpha stage --- src/screens/SimklSettingsScreen.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/SimklSettingsScreen.tsx b/src/screens/SimklSettingsScreen.tsx index d6a7bf96..5bcb8087 100644 --- a/src/screens/SimklSettingsScreen.tsx +++ b/src/screens/SimklSettingsScreen.tsx @@ -158,7 +158,7 @@ const SimklSettingsScreen: React.FC = () => { - {t('simkl.settings_title')} + {t('simkl.settings_title')} (Alpha) From 335edb214a009e5e1ab130fde0d12b8e3cd9263a Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 14:36:21 +0530 Subject: [PATCH 16/58] update gitignore --- .gitignore | 7 ++++++- LibTorrent | 1 - iTorrent | 1 - 3 files changed, 6 insertions(+), 3 deletions(-) delete mode 160000 LibTorrent delete mode 160000 iTorrent diff --git a/.gitignore b/.gitignore index b953572e..12130781 100644 --- a/.gitignore +++ b/.gitignore @@ -97,4 +97,9 @@ trakt-docss # Removed submodules (kept locally) libmpv-android/ mpv-android/ -mpvKt/ \ No newline at end of file +mpvKt/ + +# Torrent libraries +LibTorrent/ +iTorrent/ +simkl-docss \ No newline at end of file diff --git a/LibTorrent b/LibTorrent deleted file mode 160000 index eb1c7139..00000000 --- a/LibTorrent +++ /dev/null @@ -1 +0,0 @@ -Subproject commit eb1c71397b8716b97fcd375fd646e96c89632a5e diff --git a/iTorrent b/iTorrent deleted file mode 160000 index c27088b0..00000000 --- a/iTorrent +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c27088b0ac36bf9bb30fae34dc36db1231263bfd From effab63a70a267aacaee98ece2cc7b919635c2a8 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 18 Jan 2026 16:57:18 +0530 Subject: [PATCH 17/58] simkl optimizations --- .../player/android/hooks/usePlayerSetup.ts | 28 +++++-- src/hooks/useSimklIntegration.ts | 84 +++++++++++++++++-- src/services/simklService.ts | 77 ++++++++--------- 3 files changed, 137 insertions(+), 52 deletions(-) diff --git a/src/components/player/android/hooks/usePlayerSetup.ts b/src/components/player/android/hooks/usePlayerSetup.ts index 05630a8d..f5f1d211 100644 --- a/src/components/player/android/hooks/usePlayerSetup.ts +++ b/src/components/player/android/hooks/usePlayerSetup.ts @@ -16,6 +16,7 @@ export const usePlayerSetup = ( setBrightness: (bri: number) => void, paused: boolean ) => { + const originalAppBrightnessRef = useRef(null); const originalSystemBrightnessRef = useRef(null); const originalSystemBrightnessModeRef = useRef(null); const isAppBackgrounded = useRef(false); @@ -100,6 +101,7 @@ export const usePlayerSetup = ( } } const currentBrightness = await Brightness.getBrightnessAsync(); + originalAppBrightnessRef.current = currentBrightness; setBrightness(currentBrightness); } catch (error) { logger.warn('[usePlayerSetup] Error setting brightness', error); @@ -111,12 +113,26 @@ export const usePlayerSetup = ( return () => { subscription?.remove(); disableImmersiveMode(); - async function restoreBrightness() { - await Brightness.setBrightnessAsync(originalSystemBrightnessRef.current!); - setBrightness(originalSystemBrightnessRef.current!); - } - if (Platform.OS === 'android' && originalSystemBrightnessRef.current !== null) - restoreBrightness(); + const restoreBrightness = async () => { + try { + if (Platform.OS === 'android') { + if (originalSystemBrightnessModeRef.current !== null) { + await (Brightness as any).setSystemBrightnessModeAsync?.(originalSystemBrightnessModeRef.current); + } + if (originalSystemBrightnessRef.current !== null) { + await (Brightness as any).setSystemBrightnessAsync?.(originalSystemBrightnessRef.current); + } + } + if (originalAppBrightnessRef.current !== null) { + await Brightness.setBrightnessAsync(originalAppBrightnessRef.current); + setBrightness(originalAppBrightnessRef.current); + } + } catch (e) { + logger.warn('[usePlayerSetup] Error restoring brightness', e); + } + }; + + restoreBrightness(); }; }, []); diff --git a/src/hooks/useSimklIntegration.ts b/src/hooks/useSimklIntegration.ts index 2e2f19bd..3fe37d53 100644 --- a/src/hooks/useSimklIntegration.ts +++ b/src/hooks/useSimklIntegration.ts @@ -1,25 +1,59 @@ -import { useState, useEffect, useCallback } from 'react'; +import { useState, useEffect, useCallback, useRef } from 'react'; import { AppState, AppStateStatus } from 'react-native'; import { SimklService, SimklContentData, SimklPlaybackData, SimklUserSettings, - SimklStats + SimklStats, + SimklActivities } from '../services/simklService'; import { storageService } from '../services/storageService'; import { logger } from '../utils/logger'; const simklService = SimklService.getInstance(); +let hasLoadedProfileOnce = false; +let cachedUserSettings: SimklUserSettings | null = null; +let cachedUserStats: SimklStats | null = null; + export function useSimklIntegration() { const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); // Basic lists const [continueWatching, setContinueWatching] = useState([]); - const [userSettings, setUserSettings] = useState(null); - const [userStats, setUserStats] = useState(null); + const [userSettings, setUserSettings] = useState(() => cachedUserSettings); + const [userStats, setUserStats] = useState(() => cachedUserStats); + + const lastPlaybackFetchAt = useRef(0); + const lastActivitiesCheckAt = useRef(0); + const lastPlaybackActivityAt = useRef(null); + + const parseActivityDate = (value?: string): number | null => { + if (!value) return null; + const parsed = Date.parse(value); + return Number.isNaN(parsed) ? null : parsed; + }; + + const getLatestPlaybackActivity = (activities: SimklActivities | null): number | null => { + if (!activities) return null; + + const candidates: Array = [ + parseActivityDate(activities.playback?.all), + parseActivityDate(activities.playback?.movies), + parseActivityDate(activities.playback?.episodes), + parseActivityDate(activities.playback?.tv), + parseActivityDate(activities.playback?.anime), + parseActivityDate(activities.all), + parseActivityDate((activities as any).last_update), + parseActivityDate((activities as any).updated_at) + ]; + + const timestamps = candidates.filter((value): value is number => typeof value === 'number'); + if (timestamps.length === 0) return null; + return Math.max(...timestamps); + }; // Check authentication status const checkAuthStatus = useCallback(async () => { @@ -56,9 +90,17 @@ export function useSimklIntegration() { try { const settings = await simklService.getUserSettings(); setUserSettings(settings); + cachedUserSettings = settings; - const stats = await simklService.getUserStats(); - setUserStats(stats); + const accountId = settings?.account?.id; + if (accountId) { + const stats = await simklService.getUserStats(accountId); + setUserStats(stats); + cachedUserStats = stats; + } else { + setUserStats(null); + cachedUserStats = null; + } } catch (error) { logger.error('[useSimklIntegration] Error loading user profile:', error); } @@ -170,9 +212,33 @@ export function useSimklIntegration() { if (!isAuthenticated) return false; try { + const now = Date.now(); + if (now - lastActivitiesCheckAt.current < 30000) { + return true; + } + lastActivitiesCheckAt.current = now; + + const activities = await simklService.getActivities(); + const latestPlaybackActivity = getLatestPlaybackActivity(activities); + + if (latestPlaybackActivity && lastPlaybackActivityAt.current === latestPlaybackActivity) { + return true; + } + + if (latestPlaybackActivity) { + lastPlaybackActivityAt.current = latestPlaybackActivity; + } + + if (now - lastPlaybackFetchAt.current < 60000) { + return true; + } + lastPlaybackFetchAt.current = now; + const playback = await simklService.getPlaybackStatus(); logger.log(`[useSimklIntegration] fetched Simkl playback: ${playback.length}`); + setContinueWatching(playback); + for (const item of playback) { let id: string | undefined; let type: string; @@ -215,9 +281,11 @@ export function useSimklIntegration() { useEffect(() => { if (isAuthenticated) { - loadPlaybackStatus(); fetchAndMergeSimklProgress(); - loadUserProfile(); + if (!hasLoadedProfileOnce) { + hasLoadedProfileOnce = true; + loadUserProfile(); + } } }, [isAuthenticated, loadPlaybackStatus, fetchAndMergeSimklProgress, loadUserProfile]); diff --git a/src/services/simklService.ts b/src/services/simklService.ts index 7f6691dd..677664a8 100644 --- a/src/services/simklService.ts +++ b/src/services/simklService.ts @@ -1,6 +1,7 @@ import { mmkvStorage } from './mmkvStorage'; import { AppState, AppStateStatus } from 'react-native'; import { logger } from '../utils/logger'; +import Constants from 'expo-constants'; // Storage keys export const SIMKL_ACCESS_TOKEN_KEY = 'simkl_access_token'; @@ -119,6 +120,19 @@ export interface SimklStats { }; } +export interface SimklActivities { + all?: string; + playback?: { + all?: string; + movies?: string; + episodes?: string; + tv?: string; + anime?: string; + [key: string]: string | undefined; + }; + [key: string]: any; +} + export class SimklService { private static instance: SimklService; private accessToken: string | null = null; @@ -272,10 +286,12 @@ export class SimklService { return null; } + const appVersion = Constants.expoConfig?.version || (Constants as any).manifest?.version || 'unknown'; const headers: HeadersInit = { 'Content-Type': 'application/json', 'Authorization': `Bearer ${this.accessToken}`, - 'simkl-api-key': SIMKL_CLIENT_ID + 'simkl-api-key': SIMKL_CLIENT_ID, + 'User-Agent': `Nuvio/${appVersion}` }; const options: RequestInit = { @@ -518,41 +534,27 @@ export class SimklService { } public async getPlaybackStatus(): Promise { - // Docs: GET /sync/playback/{type} with {type} values `movies` or `episodes`. - // Some docs also mention appending /movie or /episode; we try both variants for safety. - const tryEndpoints = async (endpoints: string[]): Promise => { - for (const endpoint of endpoints) { - try { - const res = await this.apiRequest(endpoint); - if (Array.isArray(res)) { - logger.log(`[SimklService] getPlaybackStatus: ${endpoint} -> ${res.length} items`); - return res; - } - } catch (e) { - logger.warn(`[SimklService] getPlaybackStatus: ${endpoint} failed`, e); - } - } - return []; - }; - - const movies = await tryEndpoints([ - '/sync/playback/movies', - '/sync/playback/movie', - '/sync/playback?type=movies' - ]); - - const episodes = await tryEndpoints([ - '/sync/playback/episodes', - '/sync/playback/episode', - '/sync/playback?type=episodes' - ]); - - const combined = [...episodes, ...movies] + const playback = await this.apiRequest('/sync/playback'); + const items = Array.isArray(playback) ? playback : []; + const sorted = items .filter(Boolean) .sort((a, b) => new Date(b.paused_at).getTime() - new Date(a.paused_at).getTime()); - logger.log(`[SimklService] getPlaybackStatus: combined ${combined.length} items (episodes=${episodes.length}, movies=${movies.length})`); - return combined; + logger.log(`[SimklService] getPlaybackStatus: ${sorted.length} items`); + return sorted; + } + + /** + * SYNC: Get account activity timestamps + */ + public async getActivities(): Promise { + try { + const response = await this.apiRequest('/sync/activities'); + return response || null; + } catch (error) { + logger.error('[SimklService] Failed to get activities:', error); + return null; + } } /** @@ -585,20 +587,19 @@ export class SimklService { /** * Get user stats */ - public async getUserStats(): Promise { + public async getUserStats(accountId?: number): Promise { try { if (!await this.isAuthenticated()) { return null; } - // Need account ID from settings first - const settings = await this.getUserSettings(); - if (!settings?.account?.id) { + const resolvedAccountId = accountId ?? (await this.getUserSettings())?.account?.id; + if (!resolvedAccountId) { logger.warn('[SimklService] Cannot get user stats: no account ID'); return null; } - const response = await this.apiRequest(`/users/${settings.account.id}/stats`, 'POST'); + const response = await this.apiRequest(`/users/${resolvedAccountId}/stats`, 'POST'); logger.log('[SimklService] getUserStats:', JSON.stringify(response)); return response; } catch (error) { From b3765f13dad710bf64e938f547d7bb3ace13d744 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 19 Jan 2026 12:52:03 +0530 Subject: [PATCH 18/58] various simkl api call optimizations --- src/services/simklService.ts | 78 +++++++++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 10 deletions(-) diff --git a/src/services/simklService.ts b/src/services/simklService.ts index 677664a8..b824a138 100644 --- a/src/services/simklService.ts +++ b/src/services/simklService.ts @@ -151,6 +151,16 @@ export class SimklService { // Default completion threshold (can't be configured on Simkl side essentially, but we use it for logic) private readonly COMPLETION_THRESHOLD = 80; + // Caching & Deduplication + private playbackStatusPromise: Promise | null = null; + private cachedPlaybackStatus: SimklPlaybackData[] = []; + private lastPlaybackStatusTime: number = 0; + private readonly PLAYBACK_CACHE_TTL = 10000; // 10 seconds + + private cachedUserSettings: SimklUserSettings | null = null; + private lastUserSettingsTime: number = 0; + private readonly USER_SETTINGS_CACHE_TTL = 300000; // 5 minutes (5 * 60 * 1000) + private constructor() { // Determine cleanup logic if needed AppState.addEventListener('change', this.handleAppStateChange); @@ -254,6 +264,16 @@ export class SimklService { await this.ensureInitialized(); this.accessToken = null; await mmkvStorage.removeItem(SIMKL_ACCESS_TOKEN_KEY); + + // Clear caches + this.cachedPlaybackStatus = []; + this.lastPlaybackStatusTime = 0; + this.playbackStatusPromise = null; + this.lastSyncTimes.clear(); + + this.cachedUserSettings = null; + this.lastUserSettingsTime = 0; + logger.log('[SimklService] Logged out'); } @@ -533,15 +553,40 @@ export class SimklService { return await this.apiRequest('/sync/history/remove', 'POST', items); } - public async getPlaybackStatus(): Promise { - const playback = await this.apiRequest('/sync/playback'); - const items = Array.isArray(playback) ? playback : []; - const sorted = items - .filter(Boolean) - .sort((a, b) => new Date(b.paused_at).getTime() - new Date(a.paused_at).getTime()); + public async getPlaybackStatus(forceRefresh: boolean = false): Promise { + await this.ensureInitialized(); - logger.log(`[SimklService] getPlaybackStatus: ${sorted.length} items`); - return sorted; + const now = Date.now(); + + // 1. Check cache (unless forced) + if (!forceRefresh && this.cachedPlaybackStatus.length > 0 && (now - this.lastPlaybackStatusTime < this.PLAYBACK_CACHE_TTL)) { + logger.log('[SimklService] getPlaybackStatus: Returning cached data'); + return this.cachedPlaybackStatus; + } + + // 2. Check in-flight request deduplication + if (this.playbackStatusPromise) { + logger.log('[SimklService] getPlaybackStatus: Returning in-flight promise'); + return this.playbackStatusPromise; + } + + // 3. Make new request + this.playbackStatusPromise = (async () => { + try { + const response = await this.apiRequest('/sync/playback'); + const data = response || []; + + // Update cache + this.cachedPlaybackStatus = data; + this.lastPlaybackStatusTime = Date.now(); + + return data; + } finally { + this.playbackStatusPromise = null; + } + })(); + + return this.playbackStatusPromise; } /** @@ -573,10 +618,22 @@ export class SimklService { /** * Get user settings/profile */ - public async getUserSettings(): Promise { + public async getUserSettings(forceRefresh: boolean = false): Promise { + const now = Date.now(); + if (!forceRefresh && this.cachedUserSettings && (now - this.lastUserSettingsTime < this.USER_SETTINGS_CACHE_TTL)) { + logger.log('[SimklService] getUserSettings: Returning cached data'); + return this.cachedUserSettings; + } + try { const response = await this.apiRequest('/users/settings', 'POST'); logger.log('[SimklService] getUserSettings:', JSON.stringify(response)); + + if (response) { + this.cachedUserSettings = response; + this.lastUserSettingsTime = Date.now(); + } + return response; } catch (error) { logger.error('[SimklService] Failed to get user settings:', error); @@ -606,4 +663,5 @@ export class SimklService { logger.error('[SimklService] Failed to get user stats:', error); return null; } - }} \ No newline at end of file + } +} \ No newline at end of file From 674dbcf818adf1415695bd2d4bd0d7e8a1952f55 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 19 Jan 2026 13:19:33 +0530 Subject: [PATCH 19/58] slide parallax fix appletv hero --- src/components/home/AppleTVHero.tsx | 65 +++++++++++------------------ src/hooks/useFeaturedContent.ts | 9 ++-- 2 files changed, 31 insertions(+), 43 deletions(-) diff --git a/src/components/home/AppleTVHero.tsx b/src/components/home/AppleTVHero.tsx index bfaf704a..019b1152 100644 --- a/src/components/home/AppleTVHero.tsx +++ b/src/components/home/AppleTVHero.tsx @@ -224,7 +224,8 @@ const AppleTVHero: React.FC = ({ const thumbnailOpacity = useSharedValue(1); const trailerOpacity = useSharedValue(0); const trailerMuted = settings?.trailerMuted ?? true; - const heroOpacity = useSharedValue(0); // Start hidden for smooth fade-in + // Initialize to 0 for smooth fade-in + const heroOpacity = useSharedValue(0); // Handler for trailer end const handleTrailerEnd = useCallback(() => { @@ -270,15 +271,8 @@ const AppleTVHero: React.FC = ({ 'worklet'; const scrollYValue = scrollY.value; - // Disable parallax during drag to avoid transform conflicts - if (isDragging.value > 0) { - return { - transform: [ - { scale: 1.0 }, - { translateY: 0 } - ], - }; - } + // Keep parallax active during drag to prevent jumps + // if (isDragging.value > 0) { ... } // Pre-calculated constants - start at 1.0 for normal size const DEFAULT_ZOOM = 1.0; @@ -308,15 +302,8 @@ const AppleTVHero: React.FC = ({ 'worklet'; const scrollYValue = scrollY.value; - // Disable parallax during drag to avoid transform conflicts - if (isDragging.value > 0) { - return { - transform: [ - { scale: 1.0 }, - { translateY: 0 } - ], - }; - } + // Keep parallax active during drag to prevent jumps + // if (isDragging.value > 0) { ... } // Pre-calculated constants - start at 1.0 for normal size const DEFAULT_ZOOM = 1.0; @@ -360,13 +347,10 @@ const AppleTVHero: React.FC = ({ // Smooth fade-in when content loads useEffect(() => { if (currentItem && !loading) { - heroOpacity.value = withDelay( - 100, - withTiming(1, { - duration: 500, - easing: Easing.out(Easing.cubic), - }) - ); + heroOpacity.value = withTiming(1, { + duration: 800, + easing: Easing.out(Easing.cubic), + }); } }, [currentItem, loading, heroOpacity]); @@ -970,7 +954,7 @@ const AppleTVHero: React.FC = ({ setCurrentIndex(index); }, []); - if (loading) { + if (loading && !currentItem) { return ( @@ -1008,8 +992,7 @@ const AppleTVHero: React.FC = ({ return ( {/* Background Images with Crossfade */} @@ -1029,17 +1012,19 @@ const AppleTVHero: React.FC = ({ {/* Next/Preview Image - Animated overlay during drag */} {nextIndex !== currentIndex && ( - - setBannerLoaded((prev) => ({ ...prev, [nextIndex]: true }))} - /> + + + setBannerLoaded((prev) => ({ ...prev, [nextIndex]: true }))} + /> + )} diff --git a/src/hooks/useFeaturedContent.ts b/src/hooks/useFeaturedContent.ts index 3138483f..f95d8b10 100644 --- a/src/hooks/useFeaturedContent.ts +++ b/src/hooks/useFeaturedContent.ts @@ -77,7 +77,10 @@ export function useFeaturedContent() { } } - setLoading(true); + // Only show loading if we don't have any content + if (!featuredContent && !persistentStore.featuredContent) { + setLoading(true); + } cleanup(); abortControllerRef.current = new AbortController(); const signal = abortControllerRef.current.signal; @@ -116,8 +119,8 @@ export function useFeaturedContent() { try { if (base.logo && !isTmdbUrl(base.logo)) { return base; - } - + } + if (!settings.enrichMetadataWithTMDB) { return { ...base, logo: base.logo || undefined }; } From 2314d1db861b6c210b416762d6ec717b47528d97 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 19 Jan 2026 13:57:49 +0530 Subject: [PATCH 20/58] verbose logs cleanup --- src/components/StreamCard.tsx | 241 ++++++++++---------- src/components/home/AppleTVHero.tsx | 6 +- src/components/metadata/CommentsSection.tsx | 10 +- src/components/metadata/HeroSection.tsx | 2 +- src/components/video/TrailerPlayer.tsx | 86 +++---- src/contexts/DownloadsContext.tsx | 102 ++++----- src/hooks/useTraktComments.ts | 6 +- src/services/trailerService.ts | 70 +++--- src/services/traktService.ts | 8 +- 9 files changed, 265 insertions(+), 266 deletions(-) diff --git a/src/components/StreamCard.tsx b/src/components/StreamCard.tsx index 2040c4fc..74308d06 100644 --- a/src/components/StreamCard.tsx +++ b/src/components/StreamCard.tsx @@ -38,36 +38,36 @@ interface StreamCardProps { parentImdbId?: string; } -const StreamCard = memo(({ - stream, - onPress, - index, - isLoading, - statusMessage, - theme, - showLogos, - scraperLogo, - showAlert, - parentTitle, - parentType, - parentSeason, - parentEpisode, - parentEpisodeTitle, - parentPosterUrl, - providerName, - parentId, - parentImdbId +const StreamCard = memo(({ + stream, + onPress, + index, + isLoading, + statusMessage, + theme, + showLogos, + scraperLogo, + showAlert, + parentTitle, + parentType, + parentSeason, + parentEpisode, + parentEpisodeTitle, + parentPosterUrl, + providerName, + parentId, + parentImdbId }: StreamCardProps) => { const { settings } = useSettings(); const { startDownload } = useDownloads(); const { showSuccess, showInfo } = useToast(); - + // Handle long press to copy stream URL to clipboard const handleLongPress = useCallback(async () => { if (stream.url) { try { await Clipboard.setString(stream.url); - + // Use toast for Android, custom alert for iOS if (Platform.OS === 'android') { showSuccess('URL Copied', 'Stream URL copied to clipboard!'); @@ -85,13 +85,13 @@ const StreamCard = memo(({ } } }, [stream.url, showAlert, showSuccess, showInfo]); - + const styles = React.useMemo(() => createStyles(theme.colors), [theme.colors]); - + const streamInfo = useMemo(() => { const title = stream.title || ''; const name = stream.name || ''; - + // Helper function to format size from bytes const formatSize = (bytes: number): string => { if (bytes === 0) return '0 Bytes'; @@ -100,16 +100,16 @@ const StreamCard = memo(({ const i = Math.floor(Math.log(bytes) / Math.log(k)); return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; }; - + // Get size from title (legacy format) or from stream.size field let sizeDisplay = title.match(/💾\s*([\d.]+\s*[GM]B)/)?.[1]; if (!sizeDisplay && stream.size && typeof stream.size === 'number' && stream.size > 0) { sizeDisplay = formatSize(stream.size); } - + // Extract quality for badge display const basicQuality = title.match(/(\d+)p/)?.[1] || null; - + return { quality: basicQuality, isHDR: title.toLowerCase().includes('hdr'), @@ -120,7 +120,7 @@ const StreamCard = memo(({ subTitle: title && title !== name ? title : null }; }, [stream.name, stream.title, stream.behaviorHints, stream.size]); - + const handleDownload = useCallback(async () => { try { const url = stream.url; @@ -132,9 +132,10 @@ const StreamCard = memo(({ showAlert('Already Downloading', 'This download has already started for this exact link.'); return; } - } catch {} + } catch { } // Show immediate feedback on both platforms - showAlert('Starting Download', 'Download will be started.'); + // Show immediate feedback on both platforms + // showAlert('Starting Download', 'Download will be started.'); const parent: any = stream as any; const inferredTitle = parentTitle || stream.name || stream.title || parent.metaName || 'Content'; const inferredType: 'movie' | 'series' = parentType || (parent.kind === 'series' || parent.type === 'series' ? 'series' : 'movie'); @@ -143,10 +144,10 @@ const StreamCard = memo(({ const episodeTitle = parentEpisodeTitle || parent.episodeTitle || parent.episode_name; // Prefer the stream's display name (often includes provider + resolution) const provider = (stream.name as any) || (stream.title as any) || providerName || parent.addonName || parent.addonId || (stream.addonName as any) || (stream.addonId as any) || 'Provider'; - + // Use parentId first (from route params), fallback to stream metadata const idForContent = parentId || parent.imdbId || parent.tmdbId || parent.addonId || inferredTitle; - + // Extract tmdbId if available (from parentId or parent metadata) let tmdbId: number | undefined = undefined; if (parentId && parentId.startsWith('tmdb:')) { @@ -172,99 +173,101 @@ const StreamCard = memo(({ tmdbId: tmdbId, }); showAlert('Download Started', 'Your download has been added to the queue.'); - } catch {} + } catch (e: any) { + showAlert('Download Failed', e.message || 'Could not start download.'); + } }, [startDownload, stream.url, stream.headers, streamInfo.quality, showAlert, stream.name, stream.title, parentId, parentImdbId, parentTitle, parentType, parentSeason, parentEpisode, parentEpisodeTitle, parentPosterUrl, providerName]); const isDebrid = streamInfo.isDebrid; return ( - {/* Scraper Logo */} - {showLogos && scraperLogo && ( - - {scraperLogo.toLowerCase().endsWith('.svg') || scraperLogo.toLowerCase().includes('.svg?') ? ( - - ) : ( - - )} - - )} - - - - - - {streamInfo.displayName} - - {streamInfo.subTitle && ( - - {streamInfo.subTitle} - - )} - - - {/* Show loading indicator if stream is loading */} - {isLoading && ( - - - - {statusMessage || "Loading..."} - - - )} - - - - {streamInfo.isDolby && ( - - )} - - {streamInfo.size && ( - - 💾 {streamInfo.size} - - )} - - {streamInfo.isDebrid && ( - - DEBRID - - )} - - - - - {settings?.enableDownloads !== false && ( - - + {/* Scraper Logo */} + {showLogos && scraperLogo && ( + + {scraperLogo.toLowerCase().endsWith('.svg') || scraperLogo.toLowerCase().includes('.svg?') ? ( + - - )} - + ) : ( + + )} + + )} + + + + + + {streamInfo.displayName} + + {streamInfo.subTitle && ( + + {streamInfo.subTitle} + + )} + + + {/* Show loading indicator if stream is loading */} + {isLoading && ( + + + + {statusMessage || "Loading..."} + + + )} + + + + {streamInfo.isDolby && ( + + )} + + {streamInfo.size && ( + + 💾 {streamInfo.size} + + )} + + {streamInfo.isDebrid && ( + + DEBRID + + )} + + + + + {settings?.enableDownloads !== false && ( + + + + )} + ); }); diff --git a/src/components/home/AppleTVHero.tsx b/src/components/home/AppleTVHero.tsx index 019b1152..1f257307 100644 --- a/src/components/home/AppleTVHero.tsx +++ b/src/components/home/AppleTVHero.tsx @@ -446,7 +446,7 @@ const AppleTVHero: React.FC = ({ if (url) { const bestUrl = TrailerService.getBestFormatUrl(url); setTrailerUrl(bestUrl); - logger.info('[AppleTVHero] Trailer URL loaded:', bestUrl); + // logger.info('[AppleTVHero] Trailer URL loaded:', bestUrl); } else { logger.info('[AppleTVHero] No trailer found for:', currentItem.name); setTrailerUrl(null); @@ -997,7 +997,7 @@ const AppleTVHero: React.FC = ({ {/* Background Images with Crossfade */} {/* Current Image - Always visible as base */} - + setIsPressed(true)} onPressOut={() => setIsPressed(false)} onPress={() => { - console.log('CompactCommentCard: TouchableOpacity pressed for comment:', comment.id); onPress(); }} activeOpacity={1} @@ -789,26 +788,21 @@ export const CommentsSection: React.FC = ({ }, [loading]); // Debug logging - console.log('CommentsSection: Comments data:', comments); - console.log('CommentsSection: Comments length:', comments?.length); - console.log('CommentsSection: Loading:', loading); - console.log('CommentsSection: Error:', error); + // Debug logging removed per user request const renderComment = useCallback(({ item }: { item: TraktContentComment }) => { // Safety check for null/undefined items if (!item || !item.id) { - console.log('CommentsSection: Invalid comment item:', item); return null; } - console.log('CommentsSection: Rendering comment:', item.id); + return ( { - console.log('CommentsSection: Comment pressed:', item.id); onCommentPress?.(item); }} isSpoilerRevealed={true} diff --git a/src/components/metadata/HeroSection.tsx b/src/components/metadata/HeroSection.tsx index c53d020f..911986c1 100644 --- a/src/components/metadata/HeroSection.tsx +++ b/src/components/metadata/HeroSection.tsx @@ -925,7 +925,7 @@ const HeroSection: React.FC = memo(({ // Handle trailer preload completion const handleTrailerPreloaded = useCallback(() => { setTrailerPreloaded(true); - logger.info('HeroSection', 'Trailer preloaded successfully'); + // logger.info('HeroSection', 'Trailer preloaded successfully'); }, []); // Handle smooth transition when trailer is ready to play diff --git a/src/components/video/TrailerPlayer.tsx b/src/components/video/TrailerPlayer.tsx index c39b5858..de8a7b91 100644 --- a/src/components/video/TrailerPlayer.tsx +++ b/src/components/video/TrailerPlayer.tsx @@ -64,7 +64,7 @@ const TrailerPlayer = React.forwardRef(({ const { currentTheme } = useTheme(); const { isTrailerPlaying: globalTrailerPlaying } = useTrailer(); const videoRef = useRef(null); - + const [isLoading, setIsLoading] = useState(true); const [isPlaying, setIsPlaying] = useState(autoPlay); const [isMuted, setIsMuted] = useState(muted); @@ -90,16 +90,16 @@ const TrailerPlayer = React.forwardRef(({ if (videoRef.current) { // Pause the video setIsPlaying(false); - + // Seek to beginning to stop any background processing videoRef.current.seek(0); - + // Clear any pending timeouts if (hideControlsTimeout.current) { clearTimeout(hideControlsTimeout.current); hideControlsTimeout.current = null; } - + logger.info('TrailerPlayer', 'Video cleanup completed'); } } catch (error) { @@ -138,7 +138,7 @@ const TrailerPlayer = React.forwardRef(({ // Component mount/unmount tracking useEffect(() => { setIsComponentMounted(true); - + return () => { setIsComponentMounted(false); cleanupVideo(); @@ -185,15 +185,15 @@ const TrailerPlayer = React.forwardRef(({ const showControlsWithTimeout = useCallback(() => { if (!isComponentMounted) return; - + setShowControls(true); controlsOpacity.value = withTiming(1, { duration: 200 }); - + // Clear existing timeout if (hideControlsTimeout.current) { clearTimeout(hideControlsTimeout.current); } - + // Set new timeout to hide controls hideControlsTimeout.current = setTimeout(() => { if (isComponentMounted) { @@ -205,7 +205,7 @@ const TrailerPlayer = React.forwardRef(({ const handleVideoPress = useCallback(() => { if (!isComponentMounted) return; - + if (showControls) { // If controls are visible, toggle play/pause handlePlayPause(); @@ -218,7 +218,7 @@ const TrailerPlayer = React.forwardRef(({ const handlePlayPause = useCallback(async () => { try { if (!videoRef.current || !isComponentMounted) return; - + playButtonScale.value = withTiming(0.8, { duration: 100 }, () => { if (isComponentMounted) { playButtonScale.value = withTiming(1, { duration: 100 }); @@ -226,7 +226,7 @@ const TrailerPlayer = React.forwardRef(({ }); setIsPlaying(!isPlaying); - + showControlsWithTimeout(); } catch (error) { logger.error('TrailerPlayer', 'Error toggling playback:', error); @@ -236,7 +236,7 @@ const TrailerPlayer = React.forwardRef(({ const handleMuteToggle = useCallback(async () => { try { if (!videoRef.current || !isComponentMounted) return; - + setIsMuted(!isMuted); showControlsWithTimeout(); } catch (error) { @@ -246,28 +246,28 @@ const TrailerPlayer = React.forwardRef(({ const handleLoadStart = useCallback(() => { if (!isComponentMounted) return; - + setIsLoading(true); setHasError(false); // Only show loading spinner if not hidden loadingOpacity.value = hideLoadingSpinner ? 0 : 1; onLoadStart?.(); - logger.info('TrailerPlayer', 'Video load started'); + // logger.info('TrailerPlayer', 'Video load started'); }, [loadingOpacity, onLoadStart, hideLoadingSpinner, isComponentMounted]); const handleLoad = useCallback((data: OnLoadData) => { if (!isComponentMounted) return; - + setIsLoading(false); loadingOpacity.value = withTiming(0, { duration: 300 }); setDuration(data.duration * 1000); // Convert to milliseconds onLoad?.(); - logger.info('TrailerPlayer', 'Video loaded successfully'); + // logger.info('TrailerPlayer', 'Video loaded successfully'); }, [loadingOpacity, onLoad, isComponentMounted]); const handleError = useCallback((error: any) => { if (!isComponentMounted) return; - + setIsLoading(false); setHasError(true); loadingOpacity.value = withTiming(0, { duration: 300 }); @@ -278,10 +278,10 @@ const TrailerPlayer = React.forwardRef(({ const handleProgress = useCallback((data: OnProgressData) => { if (!isComponentMounted) return; - + setPosition(data.currentTime * 1000); // Convert to milliseconds onProgress?.(data); - + if (onPlaybackStatusUpdate) { onPlaybackStatusUpdate({ isLoaded: data.currentTime > 0, @@ -304,7 +304,7 @@ const TrailerPlayer = React.forwardRef(({ clearTimeout(hideControlsTimeout.current); hideControlsTimeout.current = null; } - + // Reset all animated values to prevent memory leaks try { controlsOpacity.value = 0; @@ -313,7 +313,7 @@ const TrailerPlayer = React.forwardRef(({ } catch (error) { logger.error('TrailerPlayer', 'Error cleaning up animation values:', error); } - + // Ensure video is stopped cleanupVideo(); }; @@ -420,9 +420,9 @@ const TrailerPlayer = React.forwardRef(({ )} - {/* Video controls overlay */} + {/* Video controls overlay */} {!hideControls && ( - (({ - @@ -457,8 +457,8 @@ const TrailerPlayer = React.forwardRef(({ {/* Progress bar */} - @@ -466,27 +466,27 @@ const TrailerPlayer = React.forwardRef(({ {/* Control buttons */} - - + - - + {onFullscreenToggle && ( - )} diff --git a/src/contexts/DownloadsContext.tsx b/src/contexts/DownloadsContext.tsx index d6afb2aa..76fb59da 100644 --- a/src/contexts/DownloadsContext.tsx +++ b/src/contexts/DownloadsContext.tsx @@ -75,7 +75,7 @@ async function getExtensionFromHeaders(url: string, headers?: Record - lower.includes(format) || + const isStreamingFormat = streamingFormats.some(format => + lower.includes(format) || lower.includes(`ext=${format}`) || lower.includes(`format=${format}`) || lower.includes(`container=${format}`) ); - + // Return true if it's NOT a streaming format (m3u8 or DASH) return !isStreamingFormat; } @@ -183,7 +183,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi }); setDownloads(restored); } - } catch {} + } catch { } })(); }, []); @@ -209,18 +209,18 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi if (d.progress <= prev || d.progress - prev < 2) return; // notify every 2% lastNotifyRef.current.set(d.id, d.progress); await notificationService.notifyDownloadProgress(d.title, d.progress, d.downloadedBytes, d.totalBytes); - } catch {} + } catch { } }, []); const notifyCompleted = useCallback(async (d: DownloadItem) => { try { if (appStateRef.current === 'active') return; await notificationService.notifyDownloadComplete(d.title); - } catch {} + } catch { } }, []); useEffect(() => { - mmkvStorage.setItem(STORAGE_KEY, JSON.stringify(downloads)).catch(() => {}); + mmkvStorage.setItem(STORAGE_KEY, JSON.stringify(downloads)).catch(() => { }); }, [downloads]); const updateDownload = useCallback((id: string, updater: (d: DownloadItem) => DownloadItem) => { @@ -247,7 +247,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // No need to recreate it } else { console.log(`[DownloadsContext] Creating new resumable for download: ${id}`); - + // Use the exact same file URI that was used initially const fileUri = item.fileUri; if (!fileUri) { @@ -322,13 +322,13 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi if (fileInfo.size === 0) { throw new Error('Downloaded file is empty (0 bytes)'); } - + // CRITICAL FIX: Check if file size matches expected size (if known) const currentItem = downloadsRef.current.find(d => d.id === id); if (currentItem && currentItem.totalBytes > 0) { const sizeDifference = Math.abs(fileInfo.size - currentItem.totalBytes); const percentDifference = (sizeDifference / currentItem.totalBytes) * 100; - + // Allow up to 1% difference to account for potential header/metadata variations if (percentDifference > 1) { throw new Error( @@ -336,7 +336,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi ); } } - + console.log(`[DownloadsContext] File validation passed: ${result.uri} (${fileInfo.size} bytes)`); } catch (validationError) { console.error(`[DownloadsContext] File validation failed: ${validationError}`); @@ -373,15 +373,15 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // Only mark as error and clean up if it's a real error (not pause-related) console.log(`[DownloadsContext] Marking download as error: ${id}`); - + // For validation errors, clear resumeData and allow fresh restart if (e.message && e.message.includes('validation failed')) { console.log(`[DownloadsContext] Validation error - clearing resume data for fresh start: ${id}`); - updateDownload(id, (d) => ({ - ...d, - status: 'error', + updateDownload(id, (d) => ({ + ...d, + status: 'error', resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() + updatedAt: Date.now() })); // Clean up resumable to force fresh download on retry resumablesRef.current.delete(id); @@ -389,13 +389,13 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } else if (e.message && (e.message.includes('size mismatch') || e.message.includes('empty'))) { // File corruption detected - clear everything for fresh start console.log(`[DownloadsContext] File corruption detected - clearing for fresh start: ${id}`); - updateDownload(id, (d) => ({ - ...d, + updateDownload(id, (d) => ({ + ...d, status: 'error', downloadedBytes: 0, progress: 0, resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() + updatedAt: Date.now() })); resumablesRef.current.delete(id); lastBytesRef.current.delete(id); @@ -443,7 +443,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi const fileUri = extension ? `${baseDir}downloads/${uniqueId}.${extension}` : `${baseDir}downloads/${uniqueId}`; // Ensure directory exists - await FileSystem.makeDirectoryAsync(`${baseDir}downloads`, { intermediates: true }).catch(() => {}); + await FileSystem.makeDirectoryAsync(`${baseDir}downloads`, { intermediates: true }).catch(() => { }); const createdAt = Date.now(); const newItem: DownloadItem = { @@ -515,9 +515,9 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi resumablesRef.current.set(compoundId, resumable); lastBytesRef.current.set(compoundId, { bytes: 0, time: Date.now() }); - try { - const result = await resumable.downloadAsync(); - + // Start download in background (non-blocking) to allow UI success alert + resumable.downloadAsync().then(async (result) => { + // Check if download was paused during download const currentItem = downloadsRef.current.find(d => d.id === compoundId); if (currentItem && currentItem.status === 'paused') { @@ -536,7 +536,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // Don't delete resumable - keep it for resume return; } - + if (!result) throw new Error('Download failed'); // Validate the downloaded file @@ -548,13 +548,13 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi if (fileInfo.size === 0) { throw new Error('Downloaded file is empty (0 bytes)'); } - + // CRITICAL FIX: Check if file size matches expected size (if known) const currentItem = downloadsRef.current.find(d => d.id === compoundId); if (currentItem && currentItem.totalBytes > 0) { const sizeDifference = Math.abs(fileInfo.size - currentItem.totalBytes); const percentDifference = (sizeDifference / currentItem.totalBytes) * 100; - + // Allow up to 1% difference to account for potential header/metadata variations if (percentDifference > 1) { throw new Error( @@ -562,7 +562,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi ); } } - + console.log(`[DownloadsContext] File validation passed: ${result.uri} (${fileInfo.size} bytes)`); } catch (validationError) { console.error(`[DownloadsContext] File validation failed: ${validationError}`); @@ -581,7 +581,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi if (done) notifyCompleted({ ...done, status: 'completed', progress: 100, fileUri: result.uri } as DownloadItem); resumablesRef.current.delete(compoundId); lastBytesRef.current.delete(compoundId); - } catch (e: any) { + }).catch(async (e: any) => { // If user paused, keep paused state, else error const current = downloadsRef.current.find(d => d.id === compoundId); if (current && current.status === 'paused') { @@ -602,15 +602,15 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } console.log(`[DownloadsContext] Marking initial download as error: ${compoundId}`); - + // For validation errors, clear resumeData and allow fresh restart if (e.message && e.message.includes('validation failed')) { console.log(`[DownloadsContext] Validation error - clearing resume data for fresh start: ${compoundId}`); - updateDownload(compoundId, (d) => ({ - ...d, - status: 'error', + updateDownload(compoundId, (d) => ({ + ...d, + status: 'error', resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() + updatedAt: Date.now() })); // Clean up resumable to force fresh download on retry resumablesRef.current.delete(compoundId); @@ -618,13 +618,13 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } else if (e.message && (e.message.includes('size mismatch') || e.message.includes('empty'))) { // File corruption detected - clear everything for fresh start console.log(`[DownloadsContext] File corruption detected - clearing for fresh start: ${compoundId}`); - updateDownload(compoundId, (d) => ({ - ...d, + updateDownload(compoundId, (d) => ({ + ...d, status: 'error', downloadedBytes: 0, progress: 0, resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() + updatedAt: Date.now() })); resumablesRef.current.delete(compoundId); lastBytesRef.current.delete(compoundId); @@ -634,27 +634,27 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi updateDownload(compoundId, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); // Keep resumable for potential retry } - } + }); }, [updateDownload, resumeDownload]); const pauseDownload = useCallback(async (id: string) => { console.log(`[DownloadsContext] Pausing download: ${id}`); - + // First, update the status to 'paused' immediately // This will cause any ongoing download/resume operations to check status and exit gracefully updateDownload(id, (d) => ({ ...d, status: 'paused', updatedAt: Date.now() })); - + const resumable = resumablesRef.current.get(id); if (resumable) { try { // CRITICAL FIX: Get the pause state which contains resumeData const pauseResult = await resumable.pauseAsync(); console.log(`[DownloadsContext] Successfully paused download: ${id}`); - + // CRITICAL FIX: Save the resumeData from pauseAsync result or savable() // The pauseAsync returns a DownloadPauseState object with resumeData const savableState = resumable.savable(); - + // Update the download item with the critical resumeData for future resume updateDownload(id, (d) => ({ ...d, @@ -662,9 +662,9 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi resumeData: savableState.resumeData || pauseResult.resumeData, // Store resume data updatedAt: Date.now(), })); - + console.log(`[DownloadsContext] Saved resume data for download: ${id}`); - + // Keep the resumable in memory for resume - DO NOT DELETE } catch (error) { console.log(`[DownloadsContext] Pause async failed (this is normal if already paused): ${id}`, error); @@ -691,7 +691,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi const resumable = resumablesRef.current.get(id); try { if (resumable) { - try { await resumable.pauseAsync(); } catch {} + try { await resumable.pauseAsync(); } catch { } } } finally { resumablesRef.current.delete(id); @@ -700,7 +700,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi const item = downloadsRef.current.find(d => d.id === id); if (item?.fileUri) { - await FileSystem.deleteAsync(item.fileUri, { idempotent: true }).catch(() => {}); + await FileSystem.deleteAsync(item.fileUri, { idempotent: true }).catch(() => { }); } setDownloads(prev => prev.filter(d => d.id !== id)); }, []); @@ -708,7 +708,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi const removeDownload = useCallback(async (id: string) => { const item = downloadsRef.current.find(d => d.id === id); if (item?.fileUri && item.status === 'completed') { - await FileSystem.deleteAsync(item.fileUri, { idempotent: true }).catch(() => {}); + await FileSystem.deleteAsync(item.fileUri, { idempotent: true }).catch(() => { }); } setDownloads(prev => prev.filter(d => d.id !== id)); }, []); diff --git a/src/hooks/useTraktComments.ts b/src/hooks/useTraktComments.ts index 3b87ad23..2fd184f3 100644 --- a/src/hooks/useTraktComments.ts +++ b/src/hooks/useTraktComments.ts @@ -60,7 +60,7 @@ export const useTraktComments = ({ const traktService = TraktService.getInstance(); let fetchedComments: TraktContentComment[] = []; - console.log(`[useTraktComments] Loading comments for ${type} - IMDb: ${imdbId}, TMDB: ${tmdbId}, page: ${pageNum}`); + switch (type) { case 'movie': @@ -87,10 +87,10 @@ export const useTraktComments = ({ setComments(prevComments => { if (append) { const newComments = [...prevComments, ...fetchedComments]; - console.log(`[useTraktComments] Appended ${fetchedComments.length} comments, total: ${newComments.length}`); + return newComments; } else { - console.log(`[useTraktComments] Loaded ${fetchedComments.length} comments`); + return fetchedComments; } }); diff --git a/src/services/trailerService.ts b/src/services/trailerService.ts index ad6b4050..8e73667c 100644 --- a/src/services/trailerService.ts +++ b/src/services/trailerService.ts @@ -33,10 +33,10 @@ export class TrailerService { // Try local server first, fallback to XPrime if it fails const localResult = await this.getTrailerFromLocalServer(title, year, tmdbId, type); if (localResult) { - logger.info('TrailerService', 'Returning trailer URL from local server'); + // logger.info('TrailerService', 'Returning trailer URL from local server'); return localResult; } - + logger.info('TrailerService', `Local server failed, falling back to XPrime for: ${title} (${year})`); return this.getTrailerFromXPrime(title, year); } else { @@ -59,11 +59,11 @@ export class TrailerService { // Build URL with parameters const params = new URLSearchParams(); - + // Always send title and year for logging and fallback params.append('title', title); params.append('year', year.toString()); - + if (tmdbId) { params.append('tmdbId', tmdbId); params.append('type', type || 'movie'); @@ -76,9 +76,9 @@ export class TrailerService { logger.info('TrailerService', `Local server request URL: ${url}`); logger.info('TrailerService', `Local server timeout set to ${this.TIMEOUT}ms`); logger.info('TrailerService', `Making fetch request to: ${url}`); - + try { - + const response = await fetch(url, { method: 'GET', headers: { @@ -87,24 +87,26 @@ export class TrailerService { }, signal: controller.signal, }); - - logger.info('TrailerService', `Fetch request completed. Response status: ${response.status}`); + + // logger.info('TrailerService', `Fetch request completed. Response status: ${response.status}`); clearTimeout(timeoutId); const elapsed = Date.now() - startTime; const contentType = response.headers.get('content-type') || 'unknown'; - logger.info('TrailerService', `Local server response: status=${response.status} ok=${response.ok} content-type=${contentType} elapsedMs=${elapsed}`); + // logger.info('TrailerService', `Local server response: status=${response.status} ok=${response.ok} content-type=${contentType} elapsedMs=${elapsed}`); // Read body as text first so we can log it even on non-200s let rawText = ''; try { rawText = await response.text(); if (rawText) { + /* const preview = rawText.length > 200 ? `${rawText.slice(0, 200)}...` : rawText; logger.info('TrailerService', `Local server body preview: ${preview}`); + */ } else { - logger.info('TrailerService', 'Local server body is empty'); + // logger.info('TrailerService', 'Local server body is empty'); } } catch (e) { const msg = e instanceof Error ? `${e.name}: ${e.message}` : String(e); @@ -120,20 +122,20 @@ export class TrailerService { let data: any = null; try { data = rawText ? JSON.parse(rawText) : null; - const keys = typeof data === 'object' && data !== null ? Object.keys(data).join(',') : typeof data; - logger.info('TrailerService', `Local server JSON parsed. Keys/Type: ${keys}`); + // const keys = typeof data === 'object' && data !== null ? Object.keys(data).join(',') : typeof data; + // logger.info('TrailerService', `Local server JSON parsed. Keys/Type: ${keys}`); } catch (e) { const msg = e instanceof Error ? `${e.name}: ${e.message}` : String(e); logger.warn('TrailerService', `Failed to parse local server JSON: ${msg}`); return null; } - + if (!data.url || !this.isValidTrailerUrl(data.url)) { logger.warn('TrailerService', `Invalid trailer URL from auto-search: ${data.url}`); return null; } - logger.info('TrailerService', `Successfully found trailer: ${String(data.url).substring(0, 80)}...`); + // logger.info('TrailerService', `Successfully found trailer: ${String(data.url).substring(0, 80)}...`); return data.url; } catch (error) { if (error instanceof Error && error.name === 'AbortError') { @@ -164,11 +166,11 @@ export class TrailerService { const timeoutId = setTimeout(() => controller.abort(), this.TIMEOUT); const url = `${this.XPRIME_URL}?title=${encodeURIComponent(title)}&year=${year}`; - + logger.info('TrailerService', `Fetching trailer from XPrime for: ${title} (${year})`); logger.info('TrailerService', `XPrime request URL: ${url}`); logger.info('TrailerService', `XPrime timeout set to ${this.TIMEOUT}ms`); - + const response = await fetch(url, { method: 'GET', headers: { @@ -188,7 +190,7 @@ export class TrailerService { const trailerUrl = await response.text(); logger.info('TrailerService', `XPrime raw URL length: ${trailerUrl ? trailerUrl.length : 0}`); - + if (!trailerUrl || !this.isValidTrailerUrl(trailerUrl.trim())) { logger.warn('TrailerService', `Invalid trailer URL from XPrime: ${trailerUrl}`); return null; @@ -196,7 +198,7 @@ export class TrailerService { const cleanUrl = trailerUrl.trim(); logger.info('TrailerService', `Successfully fetched trailer from XPrime: ${cleanUrl}`); - + return cleanUrl; } catch (error) { if (error instanceof Error && error.name === 'AbortError') { @@ -218,7 +220,7 @@ export class TrailerService { private static isValidTrailerUrl(url: string): boolean { try { const urlObj = new URL(url); - + // Check if it's a valid HTTP/HTTPS URL if (!['http:', 'https:'].includes(urlObj.protocol)) { return false; @@ -242,19 +244,19 @@ export class TrailerService { ]; const hostname = urlObj.hostname.toLowerCase(); - const isValidDomain = validDomains.some(domain => + const isValidDomain = validDomains.some(domain => hostname.includes(domain) || hostname.endsWith(domain) ); // Special check for Google Video CDN (YouTube direct streaming URLs) - const isGoogleVideoCDN = hostname.includes('googlevideo.com') || - hostname.includes('sn-') && hostname.includes('.googlevideo.com'); + const isGoogleVideoCDN = hostname.includes('googlevideo.com') || + hostname.includes('sn-') && hostname.includes('.googlevideo.com'); // Check for video file extensions or streaming formats const hasVideoFormat = /\.(mp4|m3u8|mpd|webm|mov|avi|mkv)$/i.test(urlObj.pathname) || - url.includes('formats=') || - url.includes('manifest') || - url.includes('playlist'); + url.includes('formats=') || + url.includes('manifest') || + url.includes('playlist'); return isValidDomain || hasVideoFormat || isGoogleVideoCDN; } catch { @@ -286,9 +288,9 @@ export class TrailerService { return best; } } - + // Return the original URL if no format optimization is needed - logger.info('TrailerService', 'No format optimization applied'); + // logger.info('TrailerService', 'No format optimization applied'); return url; } @@ -314,7 +316,7 @@ export class TrailerService { static async getTrailerData(title: string, year: number): Promise { logger.info('TrailerService', `getTrailerData for: ${title} (${year})`); const url = await this.getTrailerUrl(title, year); - + if (!url) { logger.info('TrailerService', 'No trailer URL found for getTrailerData'); return null; @@ -433,9 +435,9 @@ export class TrailerService { signal: AbortSignal.timeout(5000) // 5 second timeout }); if (response.ok || response.status === 404) { // 404 is ok, means server is running - results.localServer = { - status: 'online', - responseTime: Date.now() - startTime + results.localServer = { + status: 'online', + responseTime: Date.now() - startTime }; logger.info('TrailerService', `Local server online. Response time: ${results.localServer.responseTime}ms`); } @@ -452,9 +454,9 @@ export class TrailerService { signal: AbortSignal.timeout(5000) // 5 second timeout }); if (response.ok || response.status === 404) { // 404 is ok, means server is running - results.xprimeServer = { - status: 'online', - responseTime: Date.now() - startTime + results.xprimeServer = { + status: 'online', + responseTime: Date.now() - startTime }; logger.info('TrailerService', `XPrime server online. Response time: ${results.xprimeServer.responseTime}ms`); } diff --git a/src/services/traktService.ts b/src/services/traktService.ts index bb5de6f9..64c12120 100644 --- a/src/services/traktService.ts +++ b/src/services/traktService.ts @@ -1463,7 +1463,7 @@ export class TraktService { if (matchingResult) { const traktId = matchingResult[type]?.ids?.trakt; if (traktId) { - logger.log(`[TraktService] Found Trakt ID: ${traktId} for IMDb ID: ${fullImdbId}`); + // logger.log(`[TraktService] Found Trakt ID: ${traktId} for IMDb ID: ${fullImdbId}`); return traktId; } } @@ -1471,7 +1471,7 @@ export class TraktService { // Fallback: try the first result if type filtering didn't work const traktId = data[0][type]?.ids?.trakt; if (traktId) { - logger.log(`[TraktService] Found Trakt ID (fallback): ${traktId} for IMDb ID: ${fullImdbId}`); + // logger.log(`[TraktService] Found Trakt ID (fallback): ${traktId} for IMDb ID: ${fullImdbId}`); return traktId; } } @@ -2860,7 +2860,7 @@ export class TraktService { if (data && data.length > 0) { const traktId = data[0][type === 'show' ? 'show' : type]?.ids?.trakt; if (traktId) { - logger.log(`[TraktService] Found Trakt ID via TMDB: ${traktId} for TMDB ID: ${tmdbId}`); + // logger.log(`[TraktService] Found Trakt ID via TMDB: ${traktId} for TMDB ID: ${tmdbId}`); return traktId; } } @@ -2893,7 +2893,7 @@ export class TraktService { const endpoint = `/movies/${traktId}/comments?page=${page}&limit=${limit}`; const result = await this.apiRequest(endpoint, 'GET'); - console.log(`[TraktService] Movie comments response:`, result); + // console.log(`[TraktService] Movie comments response:`, result); return result; } catch (error) { logger.error('[TraktService] Failed to get movie comments:', error); From b817ff37b5b2528f4e22b4f3a815b0886695aeb8 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 20 Jan 2026 19:37:25 +0530 Subject: [PATCH 21/58] Revert "streamscreen tvshow rendering fix" This reverts commit 41adf5913f96207a2f0dabd95d7a0d39d3776960. --- src/hooks/useMetadata.ts | 14 ++++---------- src/screens/streams/useStreamsScreen.ts | 3 +-- src/services/stremioService.ts | 12 +++++------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/hooks/useMetadata.ts b/src/hooks/useMetadata.ts index 3b1bc7b8..751e8c83 100644 --- a/src/hooks/useMetadata.ts +++ b/src/hooks/useMetadata.ts @@ -1537,9 +1537,6 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat const allStremioAddons = await stremioService.getInstalledAddons(); const localScrapers = await localScraperService.getInstalledScrapers(); - // Map app-level "tv" type to Stremio "series" for addon capability checks - const stremioType = type === 'tv' ? 'series' : type; - // Filter Stremio addons to only include those that provide streams for this content type const streamAddons = allStremioAddons.filter(addon => { if (!addon.resources || !Array.isArray(addon.resources)) { @@ -1555,7 +1552,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat const typedResource = resource as any; if (typedResource.name === 'stream' && Array.isArray(typedResource.types) && - typedResource.types.includes(stremioType)) { + typedResource.types.includes(type)) { hasStreamResource = true; // Check if this addon supports the ID prefix generically: any prefix must match start of id @@ -1570,7 +1567,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat } // Check if the element is the simple string "stream" AND the addon has a top-level types array else if (typeof resource === 'string' && resource === 'stream' && addon.types) { - if (Array.isArray(addon.types) && addon.types.includes(stremioType)) { + if (Array.isArray(addon.types) && addon.types.includes(type)) { hasStreamResource = true; // For simple string resources, check addon-level idPrefixes generically if (addon.idPrefixes && Array.isArray(addon.idPrefixes) && addon.idPrefixes.length > 0) { @@ -1638,9 +1635,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // Start Stremio request using the converted ID format if (__DEV__) console.log('🎬 [loadStreams] Using ID for Stremio addons:', stremioId); - // Map app-level "tv" type to Stremio "series" when requesting streams - const stremioContentType = type === 'tv' ? 'series' : type; - processStremioSource(stremioContentType, stremioId, false); + processStremioSource(type, stremioId, false); // Also extract any embedded streams from metadata (PPV-style addons) extractEmbeddedStreams(); @@ -1918,8 +1913,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // For collections, treat episodes as individual movies, not series // For other types (e.g. StreamsPPV), preserve the original type unless it's explicitly 'series' logic we want - // Map app-level "tv" type to Stremio "series" for addon stream endpoint - const contentType = isCollection ? 'movie' : (type === 'tv' ? 'series' : type); + const contentType = isCollection ? 'movie' : type; if (__DEV__) console.log(`🎬 [loadEpisodeStreams] Using content type: ${contentType} for ${isCollection ? 'collection' : type}`); processStremioSource(contentType, stremioEpisodeId, true); diff --git a/src/screens/streams/useStreamsScreen.ts b/src/screens/streams/useStreamsScreen.ts index de3299b1..90164c11 100644 --- a/src/screens/streams/useStreamsScreen.ts +++ b/src/screens/streams/useStreamsScreen.ts @@ -678,8 +678,7 @@ export const useStreamsScreen = () => { hasDoneInitialLoadRef.current = true; try { - const stremioType = type === 'tv' ? 'series' : type; - const hasStremioProviders = await stremioService.hasStreamProviders(stremioType); + const hasStremioProviders = await stremioService.hasStreamProviders(type); const hasLocalScrapers = settings.enableLocalScrapers && (await localScraperService.hasScrapers()); const hasProviders = hasStremioProviders || hasLocalScrapers; diff --git a/src/services/stremioService.ts b/src/services/stremioService.ts index d0b10283..65d129c9 100644 --- a/src/services/stremioService.ts +++ b/src/services/stremioService.ts @@ -1836,8 +1836,6 @@ class StremioService { // Check if any installed addons can provide streams (including embedded streams in metadata) async hasStreamProviders(type?: string): Promise { await this.ensureInitialized(); - // App-level content type "tv" maps to Stremio "series" - const normalizedType = type === 'tv' ? 'series' : type; const addons = Array.from(this.installedAddons.values()); for (const addon of addons) { @@ -1851,12 +1849,12 @@ class StremioService { if (hasStreamResource) { // If type specified, also check if addon supports this type - if (normalizedType) { - const supportsType = addon.types?.includes(normalizedType) || + if (type) { + const supportsType = addon.types?.includes(type) || addon.resources.some(resource => typeof resource === 'object' && (resource as any).name === 'stream' && - (resource as any).types?.includes(normalizedType) + (resource as any).types?.includes(type) ); if (supportsType) return true; } else { @@ -1866,14 +1864,14 @@ class StremioService { // Also check for addons with meta resource that support the type // These addons might provide embedded streams within metadata - if (normalizedType) { + if (type) { const hasMetaResource = addon.resources.some(resource => typeof resource === 'string' ? resource === 'meta' : (resource as any).name === 'meta' ); - if (hasMetaResource && addon.types?.includes(normalizedType)) { + if (hasMetaResource && addon.types?.includes(type)) { // This addon provides meta for the type - might have embedded streams return true; } From 0ee748cd10162a5e4196b44b91114a43b23704d7 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 15:01:47 +0530 Subject: [PATCH 22/58] adjusted safe area view --- App.tsx | 37 +- .../exoplayer/ReactExoplayerView.java | 841 ++++--- package-lock.json | 8 +- package.json | 2 +- patches/react-native-video+6.18.0.patch | 2009 ----------------- patches/react-native-video+6.19.0.patch | 1280 +++++++++++ src/navigation/AppNavigator.tsx | 9 +- 7 files changed, 1860 insertions(+), 2326 deletions(-) delete mode 100644 patches/react-native-video+6.18.0.patch create mode 100644 patches/react-native-video+6.19.0.patch diff --git a/App.tsx b/App.tsx index 102d672c..5ba73d2e 100644 --- a/App.tsx +++ b/App.tsx @@ -18,6 +18,7 @@ import { NavigationContainer } from '@react-navigation/native'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { StatusBar } from 'expo-status-bar'; import { Provider as PaperProvider } from 'react-native-paper'; +import { SafeAreaProvider } from 'react-native-safe-area-context'; import { enableScreens, enableFreeze } from 'react-native-screens'; import AppNavigator, { CustomNavigationDarkTheme, @@ -213,23 +214,25 @@ const ThemedApp = () => { function App(): React.JSX.Element { return ( - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ); } diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 54312f71..8018a723 100644 --- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -55,6 +55,7 @@ import androidx.media3.common.text.CueGroup; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSource; import androidx.media3.datasource.DataSpec; +import androidx.media3.datasource.DefaultDataSource; import androidx.media3.datasource.HttpDataSource; import androidx.media3.exoplayer.DefaultLoadControl; import androidx.media3.exoplayer.DefaultRenderersFactory; @@ -76,6 +77,8 @@ import androidx.media3.exoplayer.drm.HttpMediaDrmCallback; import androidx.media3.exoplayer.drm.UnsupportedDrmException; import androidx.media3.exoplayer.hls.HlsMediaSource; import androidx.media3.exoplayer.ima.ImaAdsLoader; +import androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource; +import androidx.media3.exoplayer.ima.ImaServerSideAdInsertionUriBuilder; import androidx.media3.exoplayer.mediacodec.MediaCodecInfo; import androidx.media3.exoplayer.mediacodec.MediaCodecUtil; import androidx.media3.exoplayer.rtsp.RtspMediaSource; @@ -125,9 +128,11 @@ import com.brentvatne.react.ReactNativeVideoManager; import com.brentvatne.receiver.AudioBecomingNoisyReceiver; import com.brentvatne.receiver.BecomingNoisyListener; import com.brentvatne.receiver.PictureInPictureReceiver; +import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.UiThreadUtil; +import com.facebook.react.bridge.WritableMap; import com.facebook.react.uimanager.ThemedReactContext; import com.google.ads.interactivemedia.v3.api.AdError; import com.google.ads.interactivemedia.v3.api.AdErrorEvent; @@ -161,11 +166,10 @@ public class ReactExoplayerView extends FrameLayout implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener { - public static final double DEFAULT_MAX_HEAP_ALLOCATION_PERCENT = 0.5; + public static final double DEFAULT_MAX_HEAP_ALLOCATION_PERCENT = 1; public static final double DEFAULT_MIN_BUFFER_MEMORY_RESERVE = 0; private static final String TAG = "ReactExoplayerView"; - private static final ExecutorService SHARED_EXECUTOR = Executors.newSingleThreadExecutor(); private static final CookieManager DEFAULT_COOKIE_MANAGER; private static final int SHOW_PROGRESS = 1; @@ -183,6 +187,7 @@ public class ReactExoplayerView extends FrameLayout implements private ExoPlayerView exoPlayerView; private FullScreenPlayerView fullScreenPlayerView; private ImaAdsLoader adsLoader; + private ImaServerSideAdInsertionMediaSource.AdsLoader daiAdsLoader; private DataSource.Factory mediaDataSourceFactory; private ExoPlayer player; @@ -212,7 +217,6 @@ public class ReactExoplayerView extends FrameLayout implements private float audioVolume = 1f; private int maxBitRate = 0; private boolean hasDrmFailed = false; - private int drmRetryCount = 0; private boolean isUsingContentResolution = false; private boolean selectTrackWhenReady = false; private final Handler mainHandler; @@ -224,7 +228,8 @@ public class ReactExoplayerView extends FrameLayout implements private ArrayList rootViewChildrenOriginalVisibility = new ArrayList(); /* - * When user is seeking first called is on onPositionDiscontinuity -> DISCONTINUITY_REASON_SEEK + * When user is seeking first called is on onPositionDiscontinuity -> + * DISCONTINUITY_REASON_SEEK * Then we set if to false when playback is back in onIsPlayingChanged -> true */ private boolean isSeeking = false; @@ -245,7 +250,7 @@ public class ReactExoplayerView extends FrameLayout implements private BufferingStrategy.BufferingStrategyEnum bufferingStrategy; private boolean disableDisconnectError; private boolean preventsDisplaySleepDuringVideoPlayback = true; - private float mProgressUpdateInterval = 1000.0f; + private float mProgressUpdateInterval = 250.0f; protected boolean playInBackground = false; private boolean mReportBandwidth = false; private boolean controls = false; @@ -294,7 +299,8 @@ public class ReactExoplayerView extends FrameLayout implements lastPos = pos; lastBufferDuration = bufferedDuration; lastDuration = duration; - eventEmitter.onVideoProgress.invoke(pos, bufferedDuration, player.getDuration(), getPositionInFirstPeriodMsForCurrentWindow(pos)); + eventEmitter.onVideoProgress.invoke(pos, bufferedDuration, player.getDuration(), + getPositionInFirstPeriodMsForCurrentWindow(pos)); } } } @@ -312,7 +318,7 @@ public class ReactExoplayerView extends FrameLayout implements public double getPositionInFirstPeriodMsForCurrentWindow(long currentPosition) { Timeline.Window window = new Timeline.Window(); - if(!player.getCurrentTimeline().isEmpty()) { + if (!player.getCurrentTimeline().isEmpty()) { player.getCurrentTimeline().getWindow(player.getCurrentMediaItemIndex(), window); } return window.windowStartTimeMs + currentPosition; @@ -351,9 +357,9 @@ public class ReactExoplayerView extends FrameLayout implements LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); exoPlayerView = new ExoPlayerView(getContext()); - exoPlayerView.addOnLayoutChangeListener( (View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) -> - PictureInPictureUtil.applySourceRectHint(themedReactContext, pictureInPictureParamsBuilder, exoPlayerView) - ); + exoPlayerView.addOnLayoutChangeListener( + (View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) -> PictureInPictureUtil + .applySourceRectHint(themedReactContext, pictureInPictureParamsBuilder, exoPlayerView)); exoPlayerView.setLayoutParams(layoutParams); addView(exoPlayerView, 0, layoutParams); @@ -379,8 +385,10 @@ public class ReactExoplayerView extends FrameLayout implements public void onHostPause() { isInBackground = true; Activity activity = themedReactContext.getCurrentActivity(); - boolean isInPictureInPicture = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null && activity.isInPictureInPictureMode(); - boolean isInMultiWindowMode = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null && activity.isInMultiWindowMode(); + boolean isInPictureInPicture = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null + && activity.isInPictureInPictureMode(); + boolean isInMultiWindowMode = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null + && activity.isInMultiWindowMode(); if (playInBackground || isInPictureInPicture || isInMultiWindowMode) { return; } @@ -399,7 +407,7 @@ public class ReactExoplayerView extends FrameLayout implements viewHasDropped = true; } - //BandwidthMeter.EventListener implementation + // BandwidthMeter.EventListener implementation @Override public void onBandwidthSample(int elapsedMs, long bytes, long bitrate) { if (mReportBandwidth) { @@ -407,7 +415,8 @@ public class ReactExoplayerView extends FrameLayout implements eventEmitter.onVideoBandwidthUpdate.invoke(bitrate, 0, 0, null); } else { Format videoFormat = player.getVideoFormat(); - boolean isRotatedContent = videoFormat != null && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); + boolean isRotatedContent = videoFormat != null + && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); int width = videoFormat != null ? (isRotatedContent ? videoFormat.height : videoFormat.width) : 0; int height = videoFormat != null ? (isRotatedContent ? videoFormat.width : videoFormat.height) : 0; String trackId = videoFormat != null ? videoFormat.id : null; @@ -422,7 +431,8 @@ public class ReactExoplayerView extends FrameLayout implements * Toggling the visibility of the player control view */ private void togglePlayerControlVisibility() { - if (player == null) return; + if (player == null) + return; if (exoPlayerView.isControllerVisible()) { exoPlayerView.hideController(); } else { @@ -432,7 +442,7 @@ public class ReactExoplayerView extends FrameLayout implements private void initializePlayerControl() { exoPlayerView.setPlayer(player); - + exoPlayerView.setControllerVisibilityListener(visibility -> { boolean isVisible = visibility == View.VISIBLE; eventEmitter.onControlsVisibilityChange.invoke(isVisible); @@ -446,26 +456,28 @@ public class ReactExoplayerView extends FrameLayout implements } private void updateControllerConfig() { - if (exoPlayerView == null) return; - + if (exoPlayerView == null) + return; + exoPlayerView.setControllerShowTimeoutMs(5000); - + exoPlayerView.setControllerAutoShow(true); exoPlayerView.setControllerHideOnTouch(true); - + updateControllerVisibility(); } private void updateControllerVisibility() { - if (exoPlayerView == null) return; - + if (exoPlayerView == null) + return; + exoPlayerView.setUseController(controls && !controlsConfig.getHideFullscreen()); } private void openSettings() { AlertDialog.Builder builder = new AlertDialog.Builder(themedReactContext); builder.setTitle(R.string.settings); - String[] settingsOptions = {themedReactContext.getString(R.string.playback_speed)}; + String[] settingsOptions = { themedReactContext.getString(R.string.playback_speed) }; builder.setItems(settingsOptions, (dialog, which) -> { if (which == 0) { showPlaybackSpeedOptions(); @@ -475,7 +487,7 @@ public class ReactExoplayerView extends FrameLayout implements } private void showPlaybackSpeedOptions() { - String[] speedOptions = {"0.5x", "1.0x", "1.5x", "2.0x"}; + String[] speedOptions = { "0.5x", "1.0x", "1.5x", "2.0x" }; AlertDialog.Builder builder = new AlertDialog.Builder(themedReactContext); builder.setTitle(R.string.select_playback_speed); @@ -493,8 +505,10 @@ public class ReactExoplayerView extends FrameLayout implements speed = 2.0f; break; default: - speed = 1.0f;; - }; + speed = 1.0f; + ; + } + ; setRateModifier(speed); }); builder.show(); @@ -506,24 +520,30 @@ public class ReactExoplayerView extends FrameLayout implements /** * Update the layout - * @param view view needs to update layout + * + * @param view view needs to update layout * - * This is a workaround for the open bug in react-native: ... + * This is a workaround for the open bug in react-native: ... */ private void reLayout(View view) { - if (view == null) return; + if (view == null) + return; view.measure(MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.EXACTLY)); view.layout(view.getLeft(), view.getTop(), view.getMeasuredWidth(), view.getMeasuredHeight()); } private void refreshControlsStyles() { - if (exoPlayerView == null || player == null || !controls) return; + if (exoPlayerView == null || player == null || !controls) + return; updateControllerVisibility(); } - // Note: The following methods for live content and button visibility are no longer needed - // as PlayerView handles controls automatically. Some functionality may need to be + // Note: The following methods for live content and button visibility are no + // longer needed + // as PlayerView handles controls automatically. Some functionality may need to + // be // reimplemented using PlayerView's APIs if custom behavior is required. private void reLayoutControls() { @@ -560,6 +580,7 @@ public class ReactExoplayerView extends FrameLayout implements private class RNVLoadControl extends DefaultLoadControl { private final int availableHeapInBytes; private final Runtime runtime; + public RNVLoadControl(DefaultAllocator allocator, BufferConfig config) { super(allocator, config.getMinBufferMs() != BufferConfig.Companion.getBufferConfigPropUnsetInt() @@ -570,7 +591,7 @@ public class ReactExoplayerView extends FrameLayout implements : DefaultLoadControl.DEFAULT_MAX_BUFFER_MS, config.getBufferForPlaybackMs() != BufferConfig.Companion.getBufferConfigPropUnsetInt() ? config.getBufferForPlaybackMs() - : DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS , + : DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS, config.getBufferForPlaybackAfterRebufferMs() != BufferConfig.Companion.getBufferConfigPropUnsetInt() ? config.getBufferForPlaybackAfterRebufferMs() : DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS, @@ -581,10 +602,12 @@ public class ReactExoplayerView extends FrameLayout implements : DefaultLoadControl.DEFAULT_BACK_BUFFER_DURATION_MS, DefaultLoadControl.DEFAULT_RETAIN_BACK_BUFFER_FROM_KEYFRAME); runtime = Runtime.getRuntime(); - ActivityManager activityManager = (ActivityManager) themedReactContext.getSystemService(ThemedReactContext.ACTIVITY_SERVICE); - double maxHeap = config.getMaxHeapAllocationPercent() != BufferConfig.Companion.getBufferConfigPropUnsetDouble() - ? config.getMaxHeapAllocationPercent() - : DEFAULT_MAX_HEAP_ALLOCATION_PERCENT; + ActivityManager activityManager = (ActivityManager) themedReactContext + .getSystemService(ThemedReactContext.ACTIVITY_SERVICE); + double maxHeap = config.getMaxHeapAllocationPercent() != BufferConfig.Companion + .getBufferConfigPropUnsetDouble() + ? config.getMaxHeapAllocationPercent() + : DEFAULT_MAX_HEAP_ALLOCATION_PERCENT; availableHeapInBytes = (int) Math.floor(activityManager.getMemoryClass() * maxHeap * 1024 * 1024); } @@ -602,13 +625,15 @@ public class ReactExoplayerView extends FrameLayout implements } long usedMemory = runtime.totalMemory() - runtime.freeMemory(); long freeMemory = runtime.maxMemory() - usedMemory; - double minBufferMemoryReservePercent = source.getBufferConfig().getMinBufferMemoryReservePercent() != BufferConfig.Companion.getBufferConfigPropUnsetDouble() - ? source.getBufferConfig().getMinBufferMemoryReservePercent() - : ReactExoplayerView.DEFAULT_MIN_BUFFER_MEMORY_RESERVE; + double minBufferMemoryReservePercent = source.getBufferConfig() + .getMinBufferMemoryReservePercent() != BufferConfig.Companion.getBufferConfigPropUnsetDouble() + ? source.getBufferConfig().getMinBufferMemoryReservePercent() + : ReactExoplayerView.DEFAULT_MIN_BUFFER_MEMORY_RESERVE; long reserveMemory = (long) minBufferMemoryReservePercent * runtime.maxMemory(); long bufferedMs = bufferedDurationUs / (long) 1000; if (reserveMemory > freeMemory && bufferedMs > 2000) { - // We don't have enough memory in reserve so we stop buffering to allow other components to use it instead + // We don't have enough memory in reserve so we stop buffering to allow other + // components to use it instead return false; } if (runtime.freeMemory() == 0) { @@ -624,7 +649,6 @@ public class ReactExoplayerView extends FrameLayout implements private void initializePlayer() { disableCache = ReactNativeVideoManager.Companion.getInstance().shouldDisableCache(source); - ReactExoplayerView self = this; Activity activity = themedReactContext.getCurrentActivity(); // This ensures all props have been settled, to avoid async racing conditions. @@ -634,7 +658,7 @@ public class ReactExoplayerView extends FrameLayout implements return; } try { - if (runningSource.getUri() == null) { + if (runningSource.getUri() == null && !isDaiRequest(runningSource)) { return; } @@ -642,16 +666,13 @@ public class ReactExoplayerView extends FrameLayout implements // Initialize core configuration and listeners initializePlayerCore(self); pipListenerUnsubscribe = PictureInPictureUtil.addLifecycleEventListener(themedReactContext, this); - PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, this.enterPictureInPictureOnLeave); + PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, + this.enterPictureInPictureOnLeave); } if (!source.isLocalAssetFile() && !source.isAsset() && source.getBufferConfig().getCacheSize() > 0) { - long requestedCacheSize = source.getBufferConfig().getCacheSize(); - long MAX_SAFE_CACHE_SIZE = 100L * 1024 * 1024; - long effectiveCacheSize = Math.min(requestedCacheSize, MAX_SAFE_CACHE_SIZE); RNVSimpleCache.INSTANCE.setSimpleCache( this.getContext(), - (int) effectiveCacheSize - ); + source.getBufferConfig().getCacheSize()); useCache = true; } else { useCache = false; @@ -659,17 +680,18 @@ public class ReactExoplayerView extends FrameLayout implements if (playerNeedsSource) { // Will force display of shutter view if needed exoPlayerView.invalidateAspectRatio(); - drmRetryCount = 0; - hasDrmFailed = false; - // DRM session manager creation must be done on a different thread to prevent crashes so we start a new thread - SHARED_EXECUTOR.execute(() -> { + // DRM session manager creation must be done on a different thread to prevent + // crashes so we start a new thread + ExecutorService es = Executors.newSingleThreadExecutor(); + es.execute(() -> { // DRM initialization must run on a different thread if (viewHasDropped && runningSource == source) { return; } if (activity == null) { DebugLog.e(TAG, "Failed to initialize Player!, null activity"); - eventEmitter.onVideoError.invoke("Failed to initialize Player!", new Exception("Current Activity is null!"), "1001"); + eventEmitter.onVideoError.invoke("Failed to initialize Player!", + new Exception("Current Activity is null!"), "1001"); return; } @@ -722,8 +744,7 @@ public class ReactExoplayerView extends FrameLayout implements DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); RNVLoadControl loadControl = new RNVLoadControl( allocator, - source.getBufferConfig() - ); + source.getBufferConfig()); long initialBitrate = source.getBufferConfig().getInitialBitrate(); if (initialBitrate > 0) { @@ -731,18 +752,26 @@ public class ReactExoplayerView extends FrameLayout implements this.bandwidthMeter = config.getBandwidthMeter(); } - DefaultRenderersFactory renderersFactory = - new DefaultRenderersFactory(getContext()) - .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER) - .setEnableDecoderFallback(true) - .forceEnableMediaCodecAsynchronousQueueing(); + DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(getContext()) + .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER) + .setEnableDecoderFallback(true) + .forceEnableMediaCodecAsynchronousQueueing(); - DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory); - if (useCache && !disableCache) { - mediaSourceFactory.setDataSourceFactory(RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true))); + DefaultMediaSourceFactory mediaSourceFactory; + + if (isDaiRequest(source)) { + mediaSourceFactory = createDaiMediaSourceFactory(); + } else { + mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory); + + mediaSourceFactory.setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, + exoPlayerView.getPlayerView()); } - mediaSourceFactory.setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, exoPlayerView.getPlayerView()); + if (useCache && !disableCache) { + mediaSourceFactory + .setDataSourceFactory(RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true))); + } player = new ExoPlayer.Builder(getContext(), renderersFactory) .setTrackSelector(self.trackSelector) @@ -766,7 +795,7 @@ public class ReactExoplayerView extends FrameLayout implements player.setPlaybackParameters(params); changeAudioOutput(this.audioOutput); - if(showNotificationControls) { + if (showNotificationControls) { setupPlaybackService(); } } @@ -778,8 +807,7 @@ public class ReactExoplayerView extends FrameLayout implements Uri adTagUrl = adProps.getAdTagUrl(); if (adTagUrl != null) { // Create an AdsLoader. - ImaAdsLoader.Builder imaLoaderBuilder = new ImaAdsLoader - .Builder(themedReactContext) + ImaAdsLoader.Builder imaLoaderBuilder = new ImaAdsLoader.Builder(themedReactContext) .setAdEventListener(this) .setAdErrorListener(this); @@ -811,7 +839,8 @@ public class ReactExoplayerView extends FrameLayout implements } try { - // First check if there's a custom DRM manager registered through the plugin system + // First check if there's a custom DRM manager registered through the plugin + // system DRMManagerSpec drmManager = ReactNativeVideoManager.Companion.getInstance().getDRMManager(); if (drmManager == null) { // If no custom manager is registered, use the default implementation @@ -820,11 +849,13 @@ public class ReactExoplayerView extends FrameLayout implements DrmSessionManager drmSessionManager = drmManager.buildDrmSessionManager(uuid, drmProps); if (drmSessionManager == null) { - eventEmitter.onVideoError.invoke("Failed to build DRM session manager", new Exception("DRM session manager is null"), "3007"); + eventEmitter.onVideoError.invoke("Failed to build DRM session manager", + new Exception("DRM session manager is null"), "3007"); } // Allow plugins to override the DrmSessionManager - DrmSessionManager overriddenManager = ReactNativeVideoManager.Companion.getInstance().overrideDrmSessionManager(source, drmSessionManager); + DrmSessionManager overriddenManager = ReactNativeVideoManager.Companion.getInstance() + .overrideDrmSessionManager(source, drmSessionManager); return overriddenManager != null ? overriddenManager : drmSessionManager; } catch (UnsupportedDrmException ex) { // Unsupported DRM exceptions are handled by the calling method @@ -837,12 +868,18 @@ public class ReactExoplayerView extends FrameLayout implements } private void initializePlayerSource(Source runningSource) { + if (isDaiRequest(runningSource)) { + initializeDaiSource(runningSource); + return; + } + if (runningSource.getUri() == null) { return; } /// init DRM DrmSessionManager drmSessionManager = initializePlayerDrm(); - if (drmSessionManager == null && runningSource.getDrmProps() != null && runningSource.getDrmProps().getDrmType() != null) { + if (drmSessionManager == null && runningSource.getDrmProps() != null + && runningSource.getDrmProps().getDrmType() != null) { // Failed to initialize DRM session manager - cannot continue DebugLog.e(TAG, "Failed to initialize DRM Session Manager Framework!"); return; @@ -857,10 +894,13 @@ public class ReactExoplayerView extends FrameLayout implements MediaSource mediaSource = Objects.requireNonNullElse(mediaSourceWithAds, videoSource); // wait for player to be set - if (player == null) { - DebugLog.w(TAG, "Player not ready yet, aborting source initialization"); - playerNeedsSource = true; - return; + while (player == null) { + try { + wait(); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + DebugLog.e(TAG, ex.toString()); + } } boolean haveResumePosition = resumeWindow != C.INDEX_UNSET; @@ -896,7 +936,8 @@ public class ReactExoplayerView extends FrameLayout implements } catch (UnsupportedDrmException e) { int errorStringId = Util.SDK_INT < 18 ? R.string.error_drm_not_supported : (e.reason == UnsupportedDrmException.REASON_UNSUPPORTED_SCHEME - ? R.string.error_drm_unsupported_scheme : R.string.error_drm_unknown); + ? R.string.error_drm_unsupported_scheme + : R.string.error_drm_unknown); eventEmitter.onVideoError.invoke(getResources().getString(errorStringId), e, "3003"); } } @@ -941,7 +982,8 @@ public class ReactExoplayerView extends FrameLayout implements if (playbackServiceBinder != null) { playbackServiceBinder.getService().unregisterPlayer(player); } - } catch (Exception ignored) {} + } catch (Exception ignored) { + } playbackServiceBinder = null; } @@ -973,21 +1015,22 @@ public class ReactExoplayerView extends FrameLayout implements private void cleanupPlaybackService() { try { - if(player != null && playbackServiceBinder != null) { + if (player != null && playbackServiceBinder != null) { playbackServiceBinder.getService().unregisterPlayer(player); } playbackServiceBinder = null; - if(playbackServiceConnection != null) { + if (playbackServiceConnection != null) { themedReactContext.unbindService(playbackServiceConnection); } - } catch(Exception e) { + } catch (Exception e) { DebugLog.w(TAG, "Cloud not cleanup playback service"); } } - private MediaSource buildMediaSource(Uri uri, String overrideExtension, DrmSessionManager drmSessionManager, long cropStartMs, long cropEndMs) { + private MediaSource buildMediaSource(Uri uri, String overrideExtension, DrmSessionManager drmSessionManager, + long cropStartMs, long cropEndMs) { if (uri == null) { throw new IllegalStateException("Invalid video uri"); } @@ -1008,23 +1051,23 @@ public class ReactExoplayerView extends FrameLayout implements if (customMetadata != null) { mediaItemBuilder.setMediaMetadata(customMetadata); } - + // Add external subtitles to MediaItem List subtitleConfigurations = buildSubtitleConfigurations(); if (subtitleConfigurations != null) { mediaItemBuilder.setSubtitleConfigurations(subtitleConfigurations); } - + if (source.getAdsProps() != null) { Uri adTagUrl = source.getAdsProps().getAdTagUrl(); if (adTagUrl != null) { mediaItemBuilder.setAdsConfiguration( - new MediaItem.AdsConfiguration.Builder(adTagUrl).build() - ); + new MediaItem.AdsConfiguration.Builder(adTagUrl).build()); } } - MediaItem.LiveConfiguration.Builder liveConfiguration = ConfigurationUtils.getLiveConfiguration(source.getBufferConfig()); + MediaItem.LiveConfiguration.Builder liveConfiguration = ConfigurationUtils + .getLiveConfiguration(source.getBufferConfig()); mediaItemBuilder.setLiveConfiguration(liveConfiguration.build()); MediaSource.Factory mediaSourceFactory; @@ -1036,29 +1079,26 @@ public class ReactExoplayerView extends FrameLayout implements drmProvider = new DefaultDrmSessionManagerProvider(); } - switch (type) { case CONTENT_TYPE_SS: - if(!BuildConfig.USE_EXOPLAYER_SMOOTH_STREAMING) { + if (!BuildConfig.USE_EXOPLAYER_SMOOTH_STREAMING) { DebugLog.e("Exo Player Exception", "Smooth Streaming is not enabled!"); throw new IllegalStateException("Smooth Streaming is not enabled!"); } mediaSourceFactory = new SsMediaSource.Factory( new DefaultSsChunkSource.Factory(mediaDataSourceFactory), - buildDataSourceFactory(false) - ); + buildDataSourceFactory(false)); break; case CONTENT_TYPE_DASH: - if(!BuildConfig.USE_EXOPLAYER_DASH) { + if (!BuildConfig.USE_EXOPLAYER_DASH) { DebugLog.e("Exo Player Exception", "DASH is not enabled!"); throw new IllegalStateException("DASH is not enabled!"); } mediaSourceFactory = new DashMediaSource.Factory( new DefaultDashChunkSource.Factory(mediaDataSourceFactory), - buildDataSourceFactory(false) - ); + buildDataSourceFactory(false)); break; case CONTENT_TYPE_HLS: if (!BuildConfig.USE_EXOPLAYER_HLS) { @@ -1073,13 +1113,14 @@ public class ReactExoplayerView extends FrameLayout implements } mediaSourceFactory = new HlsMediaSource.Factory( - dataSourceFactory - ).setAllowChunklessPreparation(source.getTextTracksAllowChunklessPreparation()); + dataSourceFactory) + .setAllowChunklessPreparation(source.getTextTracksAllowChunklessPreparation()); break; case CONTENT_TYPE_OTHER: if ("asset".equals(uri.getScheme())) { try { - DataSource.Factory assetDataSourceFactory = DataSourceUtil.buildAssetDataSourceFactory(themedReactContext, uri); + DataSource.Factory assetDataSourceFactory = DataSourceUtil + .buildAssetDataSourceFactory(themedReactContext, uri); mediaSourceFactory = new ProgressiveMediaSource.Factory(assetDataSourceFactory); } catch (Exception e) { throw new IllegalStateException("cannot open input file:" + uri); @@ -1087,12 +1128,10 @@ public class ReactExoplayerView extends FrameLayout implements } else if ("file".equals(uri.getScheme()) || !useCache) { mediaSourceFactory = new ProgressiveMediaSource.Factory( - mediaDataSourceFactory - ); + mediaDataSourceFactory); } else { mediaSourceFactory = new ProgressiveMediaSource.Factory( - RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true)) - ); + RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true))); } break; @@ -1111,20 +1150,19 @@ public class ReactExoplayerView extends FrameLayout implements if (cmcdConfigurationFactory != null) { mediaSourceFactory = mediaSourceFactory.setCmcdConfigurationFactory( - cmcdConfigurationFactory::createCmcdConfiguration - ); + cmcdConfigurationFactory::createCmcdConfiguration); } mediaSourceFactory = Objects.requireNonNullElse( ReactNativeVideoManager.Companion.getInstance() .overrideMediaSourceFactory(source, mediaSourceFactory, mediaDataSourceFactory), - mediaSourceFactory - ); + mediaSourceFactory); mediaItemBuilder.setStreamKeys(streamKeys); @Nullable - final MediaItem.Builder overridenMediaItemBuilder = ReactNativeVideoManager.Companion.getInstance().overrideMediaItemBuilder(source, mediaItemBuilder); + final MediaItem.Builder overridenMediaItemBuilder = ReactNativeVideoManager.Companion.getInstance() + .overrideMediaItemBuilder(source, mediaItemBuilder); MediaItem mediaItem = overridenMediaItemBuilder != null ? overridenMediaItemBuilder.build() @@ -1133,8 +1171,7 @@ public class ReactExoplayerView extends FrameLayout implements MediaSource mediaSource = mediaSourceFactory .setDrmSessionManagerProvider(drmProvider) .setLoadErrorHandlingPolicy( - config.buildLoadErrorHandlingPolicy(source.getMinLoadRetryCount()) - ) + config.buildLoadErrorHandlingPolicy(source.getMinLoadRetryCount())) .createMediaSource(mediaItem); if (cropStartMs >= 0 && cropEndMs >= 0) { @@ -1168,32 +1205,36 @@ public class ReactExoplayerView extends FrameLayout implements label += " (" + track.getLanguage() + ")"; } } - - MediaItem.SubtitleConfiguration.Builder configBuilder = new MediaItem.SubtitleConfiguration.Builder(track.getUri()) + + MediaItem.SubtitleConfiguration.Builder configBuilder = new MediaItem.SubtitleConfiguration.Builder( + track.getUri()) .setId(trackId) .setMimeType(track.getType()) .setLabel(label) .setRoleFlags(C.ROLE_FLAG_SUBTITLE); - + // Set language if available if (track.getLanguage() != null && !track.getLanguage().isEmpty()) { configBuilder.setLanguage(track.getLanguage()); } - - // Set selection flags - make first track default if no specific track is selected + + // Set selection flags - make first track default if no specific track is + // selected if (trackIndex == 0 && (textTrackType == null || "disabled".equals(textTrackType))) { configBuilder.setSelectionFlags(C.SELECTION_FLAG_DEFAULT); } else { configBuilder.setSelectionFlags(0); } - + MediaItem.SubtitleConfiguration subtitleConfiguration = configBuilder.build(); subtitleConfigurations.add(subtitleConfiguration); - - DebugLog.d(TAG, "Created subtitle configuration: " + trackId + " - " + label + " (" + track.getType() + ")"); + + DebugLog.d(TAG, + "Created subtitle configuration: " + trackId + " - " + label + " (" + track.getType() + ")"); trackIndex++; } catch (Exception e) { - DebugLog.e(TAG, "Error creating SubtitleConfiguration for URI " + track.getUri() + ": " + e.getMessage()); + DebugLog.e(TAG, + "Error creating SubtitleConfiguration for URI " + track.getUri() + ": " + e.getMessage()); } } @@ -1206,7 +1247,7 @@ public class ReactExoplayerView extends FrameLayout implements private void releasePlayer() { if (player != null) { - if(playbackServiceBinder != null) { + if (playbackServiceBinder != null) { playbackServiceBinder.getService().unregisterPlayer(player); themedReactContext.unbindService(playbackServiceConnection); } @@ -1228,6 +1269,12 @@ public class ReactExoplayerView extends FrameLayout implements adsLoader.release(); adsLoader = null; } + + if (daiAdsLoader != null) { + daiAdsLoader.release(); + daiAdsLoader = null; + } + progressHandler.removeMessages(SHOW_PROGRESS); audioBecomingNoisyReceiver.removeListener(); pictureInPictureReceiver.removeListener(); @@ -1256,7 +1303,8 @@ public class ReactExoplayerView extends FrameLayout implements case AudioManager.AUDIOFOCUS_LOSS: view.hasAudioFocus = false; view.eventEmitter.onAudioFocusChanged.invoke(false); - // FIXME this pause can cause issue if content doesn't have pause capability (can happen on live channel) + // FIXME this pause can cause issue if content doesn't have pause capability + // (can happen on live channel) if (activity != null) { activity.runOnUiThread(view::pausePlayback); } @@ -1277,16 +1325,12 @@ public class ReactExoplayerView extends FrameLayout implements if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { // Lower the volume if (!view.muted) { - activity.runOnUiThread(() -> - view.player.setVolume(view.audioVolume * 0.8f) - ); + activity.runOnUiThread(() -> view.player.setVolume(view.audioVolume * 0.8f)); } } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) { // Raise it back to normal if (!view.muted) { - activity.runOnUiThread(() -> - view.player.setVolume(view.audioVolume * 1) - ); + activity.runOnUiThread(() -> view.player.setVolume(view.audioVolume * 1)); } } } @@ -1359,7 +1403,8 @@ public class ReactExoplayerView extends FrameLayout implements /** * Returns a new DataSource factory. * - * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener to the new + * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener + * to the new * DataSource factory. * @return A new DataSource factory. */ @@ -1371,12 +1416,14 @@ public class ReactExoplayerView extends FrameLayout implements /** * Returns a new HttpDataSource factory. * - * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener to the new - * DataSource factory. + * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener + * to the new + * DataSource factory. * @return A new HttpDataSource factory. */ private HttpDataSource.Factory buildHttpDataSourceFactory(boolean useBandwidthMeter) { - return DataSourceUtil.getDefaultHttpDataSourceFactory(this.themedReactContext, useBandwidthMeter ? bandwidthMeter : null, source.getHeaders()); + return DataSourceUtil.getDefaultHttpDataSourceFactory(this.themedReactContext, + useBandwidthMeter ? bandwidthMeter : null, source.getHeaders()); } // AudioBecomingNoisyListener implementation @@ -1393,11 +1440,13 @@ public class ReactExoplayerView extends FrameLayout implements @Override public void onEvents(@NonNull Player player, Player.Events events) { - if (events.contains(Player.EVENT_PLAYBACK_STATE_CHANGED) || events.contains(Player.EVENT_PLAY_WHEN_READY_CHANGED)) { + if (events.contains(Player.EVENT_PLAYBACK_STATE_CHANGED) + || events.contains(Player.EVENT_PLAY_WHEN_READY_CHANGED)) { int playbackState = player.getPlaybackState(); boolean playWhenReady = player.getPlayWhenReady(); String text = "onStateChanged: playWhenReady=" + playWhenReady + ", playbackState="; - eventEmitter.onPlaybackRateChange.invoke(playWhenReady && playbackState == ExoPlayer.STATE_READY ? 1.0f : 0.0f); + eventEmitter.onPlaybackRateChange + .invoke(playWhenReady && playbackState == ExoPlayer.STATE_READY ? 1.0f : 0.0f); switch (playbackState) { case Player.STATE_IDLE: text += "idle"; @@ -1454,9 +1503,11 @@ public class ReactExoplayerView extends FrameLayout implements } /** - * The progress message handler will duplicate recursions of the onProgressMessage handler - * on change of player state from any state to STATE_READY with playWhenReady is true (when - * the video is not paused). This clears all existing messages. + * The progress message handler will duplicate recursions of the + * onProgressMessage handler + * on change of player state from any state to STATE_READY with playWhenReady is + * true (when + * the video is not paused). This clears all existing messages. */ private void clearProgressMessageHandler() { progressHandler.removeMessages(SHOW_PROGRESS); @@ -1475,7 +1526,8 @@ public class ReactExoplayerView extends FrameLayout implements setSelectedTextTrack(textTrackType, textTrackValue); } Format videoFormat = player.getVideoFormat(); - boolean isRotatedContent = videoFormat != null && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); + boolean isRotatedContent = videoFormat != null + && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); int width = videoFormat != null ? (isRotatedContent ? videoFormat.height : videoFormat.width) : 0; int height = videoFormat != null ? (isRotatedContent ? videoFormat.width : videoFormat.height) : 0; String trackId = videoFormat != null ? videoFormat.id : null; @@ -1484,18 +1536,20 @@ public class ReactExoplayerView extends FrameLayout implements long duration = player.getDuration(); long currentPosition = player.getCurrentPosition(); ArrayList audioTracks = getAudioTrackInfo(); - ArrayList textTracks = getTextTrackInfo(); + ArrayList textTracks = getTextTrackInfo(); if (source.getContentStartTime() != -1) { - SHARED_EXECUTOR.execute(() -> { - // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread and notify the player only when we're done + ExecutorService es = Executors.newSingleThreadExecutor(); + es.execute(() -> { + // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread + // and notify the player only when we're done ArrayList videoTracks = getVideoTrackInfoFromManifest(); if (videoTracks != null) { isUsingContentResolution = true; } eventEmitter.onVideoLoad.invoke(duration, currentPosition, width, height, - audioTracks, textTracks, videoTracks, trackId ); - + audioTracks, textTracks, videoTracks, trackId); + updateSubtitleButtonVisibility(); }); return; @@ -1512,9 +1566,9 @@ public class ReactExoplayerView extends FrameLayout implements } private static boolean isTrackSelected(TrackSelection selection, TrackGroup group, - int trackIndex){ + int trackIndex) { return selection != null && selection.getTrackGroup() == group - && selection.indexOf( trackIndex ) != C.INDEX_UNSET; + && selection.indexOf(trackIndex) != C.INDEX_UNSET; } private ArrayList getAudioTrackInfo() { @@ -1532,23 +1586,22 @@ public class ReactExoplayerView extends FrameLayout implements TrackSelectionArray selectionArray = player.getCurrentTrackSelections(); TrackSelection selection = selectionArray.get(C.TRACK_TYPE_AUDIO); - for (int groupIndex = 0; groupIndex < groups.length; ++groupIndex) { TrackGroup group = groups.get(groupIndex); Format format = group.getFormat(0); - + // Check if this specific group is the currently selected one boolean isSelected = false; if (selection != null && selection.getTrackGroup() == group) { isSelected = true; } - + Track audioTrack = exoplayerTrackToGenericTrack(format, groupIndex, selection, group); audioTrack.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate); audioTrack.setSelected(isSelected); audioTracks.add(audioTrack); } - + return audioTracks; } @@ -1558,7 +1611,8 @@ public class ReactExoplayerView extends FrameLayout implements videoTrack.setHeight(format.height == Format.NO_VALUE ? 0 : format.height); videoTrack.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate); videoTrack.setRotation(format.rotationDegrees); - if (format.codecs != null) videoTrack.setCodecs(format.codecs); + if (format.codecs != null) + videoTrack.setCodecs(format.codecs); videoTrack.setTrackId(format.id == null ? String.valueOf(trackIndex) : format.id); videoTrack.setIndex(trackIndex); return videoTrack; @@ -1595,32 +1649,36 @@ public class ReactExoplayerView extends FrameLayout implements return this.getVideoTrackInfoFromManifest(0); } - // We need retry count to in case where minefest request fails from poor network conditions + // We need retry count to in case where minefest request fails from poor network + // conditions @WorkerThread private ArrayList getVideoTrackInfoFromManifest(int retryCount) { + ExecutorService es = Executors.newSingleThreadExecutor(); final DataSource dataSource = this.mediaDataSourceFactory.createDataSource(); final Uri sourceUri = source.getUri(); final long startTime = source.getContentStartTime() * 1000 - 100; // s -> ms with 100ms offset - Future> result = SHARED_EXECUTOR.submit(new Callable>() { + Future> result = es.submit(new Callable() { final DataSource ds = dataSource; final Uri uri = sourceUri; final long startTimeUs = startTime * 1000; // ms -> us public ArrayList call() { ArrayList videoTracks = new ArrayList<>(); - try { + try { DashManifest manifest = DashUtil.loadManifest(this.ds, this.uri); int periodCount = manifest.getPeriodCount(); for (int i = 0; i < periodCount; i++) { Period period = manifest.getPeriod(i); - for (int adaptationIndex = 0; adaptationIndex < period.adaptationSets.size(); adaptationIndex++) { + for (int adaptationIndex = 0; adaptationIndex < period.adaptationSets + .size(); adaptationIndex++) { AdaptationSet adaptation = period.adaptationSets.get(adaptationIndex); if (adaptation.type != C.TRACK_TYPE_VIDEO) { continue; } boolean hasFoundContentPeriod = false; - for (int representationIndex = 0; representationIndex < adaptation.representations.size(); representationIndex++) { + for (int representationIndex = 0; representationIndex < adaptation.representations + .size(); representationIndex++) { Representation representation = adaptation.representations.get(representationIndex); Format format = representation.format; if (isFormatSupported(format)) { @@ -1628,7 +1686,8 @@ public class ReactExoplayerView extends FrameLayout implements break; } hasFoundContentPeriod = true; - VideoTrack videoTrack = exoplayerVideoTrackToGenericVideoTrack(format, representationIndex); + VideoTrack videoTrack = exoplayerVideoTrackToGenericVideoTrack(format, + representationIndex); videoTracks.add(videoTrack); } } @@ -1649,6 +1708,7 @@ public class ReactExoplayerView extends FrameLayout implements if (results == null && retryCount < 1) { return this.getVideoTrackInfoFromManifest(++retryCount); } + es.shutdown(); return results; } catch (Exception e) { DebugLog.w(TAG, "error in getVideoTrackInfoFromManifest handling request:" + e.getMessage()); @@ -1657,12 +1717,16 @@ public class ReactExoplayerView extends FrameLayout implements return null; } - private Track exoplayerTrackToGenericTrack(Format format, int trackIndex, TrackSelection selection, TrackGroup group) { + private Track exoplayerTrackToGenericTrack(Format format, int trackIndex, TrackSelection selection, + TrackGroup group) { Track track = new Track(); track.setIndex(trackIndex); - if (format.sampleMimeType != null) track.setMimeType(format.sampleMimeType); - if (format.language != null) track.setLanguage(format.language); - if (format.label != null) track.setTitle(format.label); + if (format.sampleMimeType != null) + track.setMimeType(format.sampleMimeType); + if (format.language != null) + track.setLanguage(format.language); + if (format.label != null) + track.setTitle(format.label); track.setSelected(isTrackSelected(selection, group, trackIndex)); return track; } @@ -1672,13 +1736,13 @@ public class ReactExoplayerView extends FrameLayout implements if (trackSelector == null) { return textTracks; } - + MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo(); int index = getTrackRendererIndex(C.TRACK_TYPE_TEXT); if (info == null || index == C.INDEX_UNSET) { return textTracks; } - + TrackSelectionArray selectionArray = player.getCurrentTrackSelections(); TrackSelection selection = selectionArray.get(C.TRACK_TYPE_TEXT); TrackGroupArray groups = info.getTrackGroups(index); @@ -1688,12 +1752,12 @@ public class ReactExoplayerView extends FrameLayout implements for (int trackIndex = 0; trackIndex < group.length; trackIndex++) { Format format = group.getFormat(trackIndex); Track textTrack = exoplayerTrackToGenericTrack(format, trackIndex, selection, group); - + boolean isExternal = format.id != null && format.id.startsWith("external-subtitle-"); boolean isSelected = isTrackSelected(selection, group, trackIndex); - + textTrack.setIndex(textTracks.size()); - + if (textTrack.getTitle() == null || textTrack.getTitle().isEmpty()) { if (isExternal) { textTrack.setTitle("External " + (trackIndex + 1)); @@ -1701,7 +1765,7 @@ public class ReactExoplayerView extends FrameLayout implements textTrack.setTitle("Track " + (textTracks.size() + 1)); } } - + textTracks.add(textTrack); } } @@ -1721,23 +1785,24 @@ public class ReactExoplayerView extends FrameLayout implements } TrackGroupArray groups = info.getTrackGroups(index); - + for (int groupIndex = 0; groupIndex < groups.length; ++groupIndex) { TrackGroup group = groups.get(groupIndex); Format format = group.getFormat(0); - + // Create track without trying to determine selection status Track track = new Track(); track.setIndex(groupIndex); track.setLanguage(format.language != null ? format.language : "unknown"); track.setTitle(format.label != null ? format.label : "Track " + (groupIndex + 1)); track.setSelected(false); // Don't report selection status - let PlayerView handle it - if (format.sampleMimeType != null) track.setMimeType(format.sampleMimeType); + if (format.sampleMimeType != null) + track.setMimeType(format.sampleMimeType); track.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate); - + tracks.add(track); } - + DebugLog.d(TAG, "getBasicAudioTrackInfo: returning " + tracks.size() + " audio tracks (no selection status)"); return tracks; } @@ -1747,27 +1812,29 @@ public class ReactExoplayerView extends FrameLayout implements if (trackSelector == null) { return textTracks; } - + MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo(); int index = getTrackRendererIndex(C.TRACK_TYPE_TEXT); if (info == null || index == C.INDEX_UNSET) { return textTracks; } - + TrackGroupArray groups = info.getTrackGroups(index); for (int groupIndex = 0; groupIndex < groups.length; ++groupIndex) { TrackGroup group = groups.get(groupIndex); for (int trackIndex = 0; trackIndex < group.length; trackIndex++) { Format format = group.getFormat(trackIndex); - + Track textTrack = new Track(); textTrack.setIndex(textTracks.size()); - if (format.sampleMimeType != null) textTrack.setMimeType(format.sampleMimeType); - if (format.language != null) textTrack.setLanguage(format.language); - + if (format.sampleMimeType != null) + textTrack.setMimeType(format.sampleMimeType); + if (format.language != null) + textTrack.setLanguage(format.language); + boolean isExternal = format.id != null && format.id.startsWith("external-subtitle-"); - + if (format.label != null && !format.label.isEmpty()) { textTrack.setTitle(format.label); } else if (isExternal) { @@ -1775,7 +1842,7 @@ public class ReactExoplayerView extends FrameLayout implements } else { textTrack.setTitle("Track " + (textTracks.size() + 1)); } - + textTrack.setSelected(false); // Don't report selection status - let PlayerView handle it textTracks.add(textTrack); } @@ -1798,28 +1865,34 @@ public class ReactExoplayerView extends FrameLayout implements } @Override - public void onPositionDiscontinuity(@NonNull Player.PositionInfo oldPosition, @NonNull Player.PositionInfo newPosition, @Player.DiscontinuityReason int reason) { + public void onPositionDiscontinuity(@NonNull Player.PositionInfo oldPosition, + @NonNull Player.PositionInfo newPosition, @Player.DiscontinuityReason int reason) { if (reason == Player.DISCONTINUITY_REASON_SEEK) { isSeeking = true; seekPosition = newPosition.positionMs; if (isUsingContentResolution) { - // We need to update the selected track to make sure that it still matches user selection if track list has changed in this period + // We need to update the selected track to make sure that it still matches user + // selection if track list has changed in this period setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); } } if (playerNeedsSource) { - // This will only occur if the user has performed a seek whilst in the error state. Update the - // resume position so that if the user then retries, playback will resume from the position to + // This will only occur if the user has performed a seek whilst in the error + // state. Update the + // resume position so that if the user then retries, playback will resume from + // the position to // which they seeked. updateResumePosition(); } if (isUsingContentResolution) { - // Discontinuity events might have a different track list so we update the selected track + // Discontinuity events might have a different track list so we update the + // selected track setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); selectTrackWhenReady = true; } - // When repeat is turned on, reaching the end of the video will not cause a state change + // When repeat is turned on, reaching the end of the video will not cause a + // state change // so we need to explicitly detect it. if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION && player.getRepeatMode() == Player.REPEAT_MODE_ONE) { @@ -1839,12 +1912,12 @@ public class ReactExoplayerView extends FrameLayout implements @Override public void onTracksChanged(@NonNull Tracks tracks) { DebugLog.d(TAG, "onTracksChanged called - updating track information, controls=" + controls); - + if (controls) { ArrayList textTracks = getBasicTextTrackInfo(); - ArrayList audioTracks = getBasicAudioTrackInfo(); + ArrayList audioTracks = getBasicAudioTrackInfo(); ArrayList videoTracks = getVideoTrackInfo(); - + eventEmitter.onTextTracks.invoke(textTracks); eventEmitter.onAudioTracks.invoke(audioTracks); eventEmitter.onVideoTracks.invoke(videoTracks); @@ -1852,7 +1925,7 @@ public class ReactExoplayerView extends FrameLayout implements ArrayList textTracks = getTextTrackInfo(); ArrayList audioTracks = getAudioTrackInfo(); ArrayList videoTracks = getVideoTrackInfo(); - + eventEmitter.onTextTracks.invoke(textTracks); eventEmitter.onAudioTracks.invoke(audioTracks); eventEmitter.onVideoTracks.invoke(videoTracks); @@ -1863,22 +1936,24 @@ public class ReactExoplayerView extends FrameLayout implements } } } - + updateSubtitleButtonVisibility(); } - - + private boolean hasBuiltInTextTracks() { - if (player == null || trackSelector == null) return false; - + if (player == null || trackSelector == null) + return false; + MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo(); - if (info == null) return false; - + if (info == null) + return false; + int textRendererIndex = getTrackRendererIndex(C.TRACK_TYPE_TEXT); - if (textRendererIndex == C.INDEX_UNSET) return false; - + if (textRendererIndex == C.INDEX_UNSET) + return false; + TrackGroupArray groups = info.getTrackGroups(textRendererIndex); - + // Check if any groups have tracks that are NOT external subtitles for (int i = 0; i < groups.length; i++) { TrackGroup group = groups.get(i); @@ -1890,17 +1965,18 @@ public class ReactExoplayerView extends FrameLayout implements } } } - + return false; } private void updateSubtitleButtonVisibility() { - if (exoPlayerView == null) return; - - boolean hasTextTracks = (source.getSideLoadedTextTracks() != null && - !source.getSideLoadedTextTracks().getTracks().isEmpty()) || - hasBuiltInTextTracks(); - + if (exoPlayerView == null) + return; + + boolean hasTextTracks = (source.getSideLoadedTextTracks() != null && + !source.getSideLoadedTextTracks().getTracks().isEmpty()) || + hasBuiltInTextTracks(); + exoPlayerView.setShowSubtitleButton(hasTextTracks); } @@ -1919,7 +1995,8 @@ public class ReactExoplayerView extends FrameLayout implements if (isPlaying && isSeeking) { eventEmitter.onVideoSeek.invoke(player.getCurrentPosition(), seekPosition); } - PictureInPictureUtil.applyPlayingStatus(themedReactContext, pictureInPictureParamsBuilder, pictureInPictureReceiver, !isPlaying); + PictureInPictureUtil.applyPlayingStatus(themedReactContext, pictureInPictureParamsBuilder, + pictureInPictureReceiver, !isPlaying); eventEmitter.onVideoPlaybackStateChanged.invoke(isPlaying, isSeeking); if (isPlaying) { @@ -1931,23 +2008,21 @@ public class ReactExoplayerView extends FrameLayout implements public void onPlayerError(@NonNull PlaybackException e) { String errorString = "ExoPlaybackException: " + PlaybackException.getErrorCodeName(e.errorCode); String errorCode = "2" + e.errorCode; - switch(e.errorCode) { + switch (e.errorCode) { case PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED: case PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED: case PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED: case PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR: case PlaybackException.ERROR_CODE_DRM_UNSPECIFIED: if (!hasDrmFailed) { - // When DRM fails to reach the app level certificate server it will fail with a source error so we assume that it is DRM related and try one more time - if (drmRetryCount < 1) { - drmRetryCount++; - hasDrmFailed = true; - playerNeedsSource = true; - updateResumePosition(); - initializePlayer(); - setPlayWhenReady(true); - return; - } + // When DRM fails to reach the app level certificate server it will fail with a + // source error so we assume that it is DRM related and try one more time + hasDrmFailed = true; + playerNeedsSource = true; + updateResumePosition(); + initializePlayer(); + setPlayWhenReady(true); + return; } break; default: @@ -2018,19 +2093,21 @@ public class ReactExoplayerView extends FrameLayout implements } public void setSrc(Source source) { - if (source.getUri() != null) { + if (source.getUri() != null || isDaiRequest(source)) { clearResumePosition(); boolean isSourceEqual = source.isEquals(this.source); hasDrmFailed = false; this.source = source; - final DataSource.Factory tmpMediaDataSourceFactory = - DataSourceUtil.getDefaultDataSourceFactory(this.themedReactContext, bandwidthMeter, - source.getHeaders()); + final DataSource.Factory tmpMediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory( + this.themedReactContext, bandwidthMeter, + source.getHeaders()); @Nullable - final DataSource.Factory overriddenMediaDataSourceFactory = ReactNativeVideoManager.Companion.getInstance().overrideMediaDataSourceFactory(source, tmpMediaDataSourceFactory); + final DataSource.Factory overriddenMediaDataSourceFactory = ReactNativeVideoManager.Companion.getInstance() + .overrideMediaDataSourceFactory(source, tmpMediaDataSourceFactory); - this.mediaDataSourceFactory = Objects.requireNonNullElse(overriddenMediaDataSourceFactory, tmpMediaDataSourceFactory); + this.mediaDataSourceFactory = Objects.requireNonNullElse(overriddenMediaDataSourceFactory, + tmpMediaDataSourceFactory); if (source.getCmcdProps() != null) { CMCDConfig cmcdConfig = new CMCDConfig(source.getCmcdProps()); @@ -2049,6 +2126,7 @@ public class ReactExoplayerView extends FrameLayout implements clearSrc(); } } + public void clearSrc() { if (source.getUri() != null) { if (player != null) { @@ -2097,8 +2175,9 @@ public class ReactExoplayerView extends FrameLayout implements } public void disableTrack(int rendererIndex) { - if (trackSelector == null) return; - + if (trackSelector == null) + return; + DefaultTrackSelector.Parameters disableParameters = trackSelector.getParameters() .buildUpon() .setRendererDisabled(rendererIndex, true) @@ -2107,75 +2186,67 @@ public class ReactExoplayerView extends FrameLayout implements } private void selectTextTrackInternal(String type, String value) { - if (player == null || trackSelector == null) return; - + if (player == null || trackSelector == null) + return; + DebugLog.d(TAG, "selectTextTrackInternal: type=" + type + ", value=" + value); - + DefaultTrackSelector.Parameters.Builder parametersBuilder = trackSelector.getParameters().buildUpon(); - + if ("disabled".equals(type) || value == null) { parametersBuilder.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, true); } else { parametersBuilder.setTrackTypeDisabled(C.TRACK_TYPE_TEXT, false); - + parametersBuilder.clearOverridesOfType(C.TRACK_TYPE_TEXT); - + MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo(); if (info != null) { int textRendererIndex = getTrackRendererIndex(C.TRACK_TYPE_TEXT); if (textRendererIndex != C.INDEX_UNSET) { TrackGroupArray groups = info.getTrackGroups(textRendererIndex); boolean trackFound = false; - // NOTE: - // RNVideo emits textTracks as a flattened list (Track.index is assigned using textTracks.size()). - // However, previous logic compared the requested "index" against the *trackIndex within a group*, - // which makes any index > 0 either select the wrong subtitle or keep the first one. - // Here we interpret type="index" as the flattened index, matching the JS list order. - int targetFlatIndex = -1; - if ("index".equals(type)) { - targetFlatIndex = ReactBridgeUtils.safeParseInt(value, -1); - } - int flatIndex = 0; - + for (int groupIndex = 0; groupIndex < groups.length; groupIndex++) { TrackGroup group = groups.get(groupIndex); for (int trackIndex = 0; trackIndex < group.length; trackIndex++) { Format format = group.getFormat(trackIndex); - + boolean isMatch = false; if ("language".equals(type) && format.language != null && format.language.equals(value)) { isMatch = true; } else if ("title".equals(type) && format.label != null && format.label.equals(value)) { isMatch = true; } else if ("index".equals(type)) { - if (targetFlatIndex != -1 && targetFlatIndex == flatIndex) { + int targetIndex = ReactBridgeUtils.safeParseInt(value, -1); + if (targetIndex == trackIndex) { isMatch = true; } } - + if (isMatch) { - TrackSelectionOverride override = new TrackSelectionOverride(group, - java.util.Arrays.asList(trackIndex)); + TrackSelectionOverride override = new TrackSelectionOverride(group, + java.util.Arrays.asList(trackIndex)); parametersBuilder.addOverride(override); trackFound = true; break; } - flatIndex++; } - if (trackFound) break; + if (trackFound) + break; } - + if (!trackFound) { - DebugLog.w(TAG, "Text track not found for type=" + type + ", value=" + value + - ". Keeping current selection."); + DebugLog.w(TAG, "Text track not found for type=" + type + ", value=" + value + + ". Keeping current selection."); } } } } - + try { trackSelector.setParameters(parametersBuilder.build()); - + // Give PlayerView time to update its controls mainHandler.postDelayed(() -> { if (exoPlayerView != null) { @@ -2188,17 +2259,18 @@ public class ReactExoplayerView extends FrameLayout implements } public void setSelectedTrack(int trackType, String type, String value) { - if (player == null || trackSelector == null) return; - + if (player == null || trackSelector == null) + return; + if (controls) { return; } - + int rendererIndex = getTrackRendererIndex(trackType); if (rendererIndex == C.INDEX_UNSET) { return; } - + MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo(); if (info == null) { return; @@ -2262,9 +2334,11 @@ public class ReactExoplayerView extends FrameLayout implements usingExactMatch = true; break; } else if (isUsingContentResolution) { - // When using content resolution rather than ads, we need to try and find the closest match if there is no exact match + // When using content resolution rather than ads, we need to try and find the + // closest match if there is no exact match if (closestFormat != null) { - if ((format.bitrate > closestFormat.bitrate || format.height > closestFormat.height) && format.height < height) { + if ((format.bitrate > closestFormat.bitrate || format.height > closestFormat.height) + && format.height < height) { // Higher quality match closestFormat = format; closestTrackIndex = j; @@ -2275,7 +2349,8 @@ public class ReactExoplayerView extends FrameLayout implements } } } - // This is a fallback if the new period contains only higher resolutions than the user has selected + // This is a fallback if the new period contains only higher resolutions than + // the user has selected if (closestFormat == null && isUsingContentResolution && !usingExactMatch) { // No close match found - so we pick the lowest quality int minHeight = Integer.MAX_VALUE; @@ -2298,8 +2373,8 @@ public class ReactExoplayerView extends FrameLayout implements } } else if (trackType == C.TRACK_TYPE_TEXT && Util.SDK_INT > 18) { // Text default // Use system settings if possible - CaptioningManager captioningManager - = (CaptioningManager)themedReactContext.getSystemService(Context.CAPTIONING_SERVICE); + CaptioningManager captioningManager = (CaptioningManager) themedReactContext + .getSystemService(Context.CAPTIONING_SERVICE); if (captioningManager != null && captioningManager.isEnabled()) { groupIndex = getGroupIndexForDefaultLocale(groups); } @@ -2328,7 +2403,7 @@ public class ReactExoplayerView extends FrameLayout implements // With only one tracks we can't remove any tracks so attempt to play it anyway tracks = allTracks; } else { - tracks = new ArrayList<>(supportedFormatLength + 1); + tracks = new ArrayList<>(supportedFormatLength + 1); for (int k = 0; k < allTracks.size(); k++) { Format format = group.getFormat(k); if (isFormatSupported(format)) { @@ -2353,8 +2428,9 @@ public class ReactExoplayerView extends FrameLayout implements .setExceedVideoConstraintsIfNecessary(true) .setRendererDisabled(rendererIndex, false); - // Clear existing overrides for this track type to avoid conflicts - // But be careful with audio tracks - don't clear unless explicitly selecting a different track + // Clear existing overrides for this track type to avoid conflicts + // But be careful with audio tracks - don't clear unless explicitly selecting a + // different track if (trackType != C.TRACK_TYPE_AUDIO || !type.equals("default")) { selectionParameters.clearOverridesOfType(selectionOverride.getType()); } @@ -2369,8 +2445,8 @@ public class ReactExoplayerView extends FrameLayout implements if (trackType == C.TRACK_TYPE_AUDIO) { selectionParameters.setForceHighestSupportedBitrate(false); selectionParameters.setForceLowestBitrate(false); - DebugLog.d(TAG, "Audio track selection: group=" + groupIndex + ", tracks=" + tracks + - ", override=" + selectionOverride); + DebugLog.d(TAG, "Audio track selection: group=" + groupIndex + ", tracks=" + tracks + + ", override=" + selectionOverride); } trackSelector.setParameters(selectionParameters.build()); @@ -2401,7 +2477,7 @@ public class ReactExoplayerView extends FrameLayout implements } private int getGroupIndexForDefaultLocale(TrackGroupArray groups) { - if (groups.length == 0){ + if (groups.length == 0) { return C.INDEX_UNSET; } @@ -2422,13 +2498,14 @@ public class ReactExoplayerView extends FrameLayout implements public void setSelectedVideoTrack(String type, String value) { videoTrackType = type; videoTrackValue = value; - if (!loadVideoStarted) setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); + if (!loadVideoStarted) + setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); } public void setSelectedAudioTrack(String type, String value) { audioTrackType = type; audioTrackValue = value; - + if (!controls && player != null && trackSelector != null) { setSelectedTrack(C.TRACK_TYPE_AUDIO, audioTrackType, audioTrackValue); } @@ -2437,7 +2514,7 @@ public class ReactExoplayerView extends FrameLayout implements public void setSelectedTextTrack(String type, String value) { textTrackType = type; textTrackValue = value; - + selectTextTrackInternal(type, value); } @@ -2453,9 +2530,11 @@ public class ReactExoplayerView extends FrameLayout implements } public void setEnterPictureInPictureOnLeave(boolean enterPictureInPictureOnLeave) { - this.enterPictureInPictureOnLeave = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && enterPictureInPictureOnLeave; + this.enterPictureInPictureOnLeave = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N + && enterPictureInPictureOnLeave; if (player != null) { - PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, this.enterPictureInPictureOnLeave); + PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, + this.enterPictureInPictureOnLeave); } } @@ -2463,12 +2542,14 @@ public class ReactExoplayerView extends FrameLayout implements eventEmitter.onPictureInPictureStatusChanged.invoke(isInPictureInPicture); if (fullScreenPlayerView != null && fullScreenPlayerView.isShowing()) { - if (isInPictureInPicture) fullScreenPlayerView.hideWithoutPlayer(); + if (isInPictureInPicture) + fullScreenPlayerView.hideWithoutPlayer(); return; } Activity currentActivity = themedReactContext.getCurrentActivity(); - if (currentActivity == null) return; + if (currentActivity == null) + return; View decorView = currentActivity.getWindow().getDecorView(); ViewGroup rootView = decorView.findViewById(android.R.id.content); @@ -2478,7 +2559,7 @@ public class ReactExoplayerView extends FrameLayout implements LayoutParams.MATCH_PARENT); if (isInPictureInPicture) { - ViewGroup parent = (ViewGroup)exoPlayerView.getParent(); + ViewGroup parent = (ViewGroup) exoPlayerView.getParent(); if (parent != null) { parent.removeView(exoPlayerView); } @@ -2504,10 +2585,12 @@ public class ReactExoplayerView extends FrameLayout implements public void enterPictureInPictureMode() { PictureInPictureParams _pipParams = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - ArrayList actions = PictureInPictureUtil.getPictureInPictureActions(themedReactContext, isPaused, pictureInPictureReceiver); + ArrayList actions = PictureInPictureUtil.getPictureInPictureActions(themedReactContext, + isPaused, pictureInPictureReceiver); pictureInPictureParamsBuilder.setActions(actions); if (player.getPlaybackState() == Player.STATE_READY) { - pictureInPictureParamsBuilder.setAspectRatio(PictureInPictureUtil.calcPictureInPictureAspectRatio(player)); + pictureInPictureParamsBuilder + .setAspectRatio(PictureInPictureUtil.calcPictureInPictureAspectRatio(player)); } _pipParams = pictureInPictureParamsBuilder.build(); } @@ -2516,13 +2599,15 @@ public class ReactExoplayerView extends FrameLayout implements public void exitPictureInPictureMode() { Activity currentActivity = themedReactContext.getCurrentActivity(); - if (currentActivity == null) return; + if (currentActivity == null) + return; View decorView = currentActivity.getWindow().getDecorView(); ViewGroup rootView = decorView.findViewById(android.R.id.content); if (!rootViewChildrenOriginalVisibility.isEmpty()) { - if (exoPlayerView.getParent().equals(rootView)) rootView.removeView(exoPlayerView); + if (exoPlayerView.getParent().equals(rootView)) + rootView.removeView(exoPlayerView); for (int i = 0; i < rootView.getChildCount(); i++) { rootView.getChildAt(i).setVisibility(rootViewChildrenOriginalVisibility.get(i)); } @@ -2620,7 +2705,7 @@ public class ReactExoplayerView extends FrameLayout implements if (playbackServiceConnection == null && showNotificationControls) { setupPlaybackService(); - } else if(!showNotificationControls && playbackServiceConnection != null) { + } else if (!showNotificationControls && playbackServiceConnection != null) { cleanupPlaybackService(); } } @@ -2649,12 +2734,13 @@ public class ReactExoplayerView extends FrameLayout implements } if (isFullscreen) { - fullScreenPlayerView = new FullScreenPlayerView(getContext(), exoPlayerView, this, null, new OnBackPressedCallback(true) { - @Override - public void handleOnBackPressed() { - setFullscreen(false); - } - }, controlsConfig); + fullScreenPlayerView = new FullScreenPlayerView(getContext(), exoPlayerView, this, null, + new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + setFullscreen(false); + } + }, controlsConfig); eventEmitter.onVideoFullscreenPlayerWillPresent.invoke(); if (fullScreenPlayerView != null) { fullScreenPlayerView.show(); @@ -2691,7 +2777,8 @@ public class ReactExoplayerView extends FrameLayout implements } @Override - public void onDrmSessionManagerError(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId, @NonNull Exception e) { + public void onDrmSessionManagerError(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId, + @NonNull Exception e) { DebugLog.d("DRM Info", "onDrmSessionManagerError"); eventEmitter.onVideoError.invoke("onDrmSessionManagerError", e, "3002"); } @@ -2709,7 +2796,7 @@ public class ReactExoplayerView extends FrameLayout implements /** * Handling controls prop * - * @param controls Controls prop, if true enable controls, if false disable them + * @param controls Controls prop, if true enable controls, if false disable them */ public void setControls(boolean controls) { this.controls = controls; @@ -2718,7 +2805,7 @@ public class ReactExoplayerView extends FrameLayout implements // Additional configuration for proper touch handling if (controls) { exoPlayerView.setControllerAutoShow(true); - exoPlayerView.setControllerHideOnTouch(true); // Show controls on touch, don't hide + exoPlayerView.setControllerHideOnTouch(true); // Show controls on touch, don't hide exoPlayerView.setControllerShowTimeoutMs(5000); } } @@ -2751,13 +2838,185 @@ public class ReactExoplayerView extends FrameLayout implements Map errMap = Map.of( "message", error.getMessage(), "code", String.valueOf(error.getErrorCode()), - "type", String.valueOf(error.getErrorType()) - ); + "type", String.valueOf(error.getErrorType())); eventEmitter.onReceiveAdEvent.invoke("ERROR", errMap); + + handleDaiBackupStream(); } public void setControlsStyles(ControlsConfig controlsStyles) { controlsConfig = controlsStyles; refreshControlsStyles(); } + + /** + * Checks if the source is a DAI (Dynamic Ad Insertion) request. + * + * A DAI request is identified by either: + * - VOD: both contentSourceId and videoId are present + * - Live: assetKey is present + * + * @param source The source to check + * @return true if the source is a DAI request, false otherwise + */ + private boolean isDaiRequest(Source source) { + if (source == null || source.getAdsProps() == null) { + return false; + } + return source.getAdsProps().isDAI(); + } + + /** + * Creates and configures a server-side ad insertion (SSAI) AdsLoader for DAI. + * + * @return The configured IMA server-side ad insertion AdsLoader + */ + private ImaServerSideAdInsertionMediaSource.AdsLoader createAdsLoader() { + ImaServerSideAdInsertionMediaSource.AdsLoader.Builder adsLoaderBuilder = new ImaServerSideAdInsertionMediaSource.AdsLoader.Builder( + getContext(), exoPlayerView.getPlayerView()) + .setAdEventListener(this) + .setAdErrorListener(this); + + return adsLoaderBuilder.build(); + } + + /** + * Creates and configures a media source factory for DAI playback. + * + * @return The configured DefaultMediaSourceFactory with DAI support + */ + private DefaultMediaSourceFactory createDaiMediaSourceFactory() { + daiAdsLoader = createAdsLoader(); + + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(getContext()); + DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(dataSourceFactory); + + ImaServerSideAdInsertionMediaSource.Factory adsMediaSourceFactory = new ImaServerSideAdInsertionMediaSource.Factory( + daiAdsLoader, mediaSourceFactory); + + mediaSourceFactory.setServerSideAdInsertionMediaSourceFactory(adsMediaSourceFactory); + + return mediaSourceFactory; + } + + /** + * Initializes the player for DAI source. + * + * Requests the DAI stream and completes player initialization. + * + * @param runningSource The source containing DAI properties + */ + private void initializeDaiSource(Source runningSource) { + if (player == null) { + DebugLog.w(TAG, "Player is null in initializeDaiSource, skipping DAI initialization"); + return; + } + + requestDaiStream(runningSource); + + player.prepare(); + playerNeedsSource = false; + + eventEmitter.onVideoLoadStart.invoke(); + loadVideoStarted = true; + + finishPlayerInitialization(); + } + + /** + * Requests a DAI stream from Google IMA using the ExoPlayer IMA extension. + * + * Builds an SSAI URI based on the provided parameters and sets it on the + * player. + * Supports both VOD (contentSourceId + videoId) and Live (assetKey) streams. + * + * @param runningSource The source containing DAI properties + */ + private void requestDaiStream(Source runningSource) { + if (daiAdsLoader == null) { + eventEmitter.onVideoError.invoke("DaiAdsLoader is null", null, "DAI_ADS_LOADER_NULL_ERROR"); + return; + } + + daiAdsLoader.setPlayer(player); + + AdsProps adsProps = runningSource.getAdsProps(); + int streamFormat = "dash".equalsIgnoreCase(adsProps.getFormat()) ? CONTENT_TYPE_DASH : CONTENT_TYPE_HLS; + + try { + Uri.Builder uriBuilder; + + if (adsProps.isDAILive()) { + uriBuilder = new ImaServerSideAdInsertionUriBuilder() + .setAssetKey(adsProps.getAssetKey()) + .setFormat(streamFormat) + .build() + .buildUpon(); + } else if (adsProps.isDAIVod()) { + uriBuilder = new ImaServerSideAdInsertionUriBuilder() + .setContentSourceId(adsProps.getContentSourceId()) + .setVideoId(adsProps.getVideoId()) + .setFormat(streamFormat) + .build() + .buildUpon(); + } else { + throw new IllegalArgumentException( + "Either assetKey (for live) or contentSourceId+videoId (for VOD) must be provided"); + } + + Map adTagParameters = adsProps.getAdTagParameters(); + if (adTagParameters != null && !adTagParameters.isEmpty()) { + for (Map.Entry entry : adTagParameters.entrySet()) { + uriBuilder.appendQueryParameter(entry.getKey(), entry.getValue()); + } + } + + Uri ssaiUri = uriBuilder.build(); + MediaItem ssaiMediaItem = MediaItem.fromUri(ssaiUri); + + player.setMediaItem(ssaiMediaItem); + } catch (Exception e) { + eventEmitter.onVideoError.invoke("DAI stream request failed: " + e.getMessage(), e, "DAI_REQUEST_ERROR"); + handleDaiBackupStream(); + } + } + + /** + * Handles fallback to backup stream when DAI stream fails. + * + * If a backup stream URI is available in the DAI properties, it cleans up DAI + * resources + * and switches to the backup stream. + * + * @return true if backup stream was successfully used, false otherwise + */ + private boolean handleDaiBackupStream() { + if (source == null || source.getAdsProps() == null) { + return false; + } + + String fallbackStreamUri = source.getAdsProps().getFallbackUri(); + if (fallbackStreamUri == null || fallbackStreamUri.isEmpty()) { + return false; + } + + DebugLog.d(TAG, "DAI stream error occurred, falling back to backup stream URI: " + fallbackStreamUri); + + WritableMap backupSourceMap = Arguments.createMap(); + backupSourceMap.putString("uri", fallbackStreamUri); + backupSourceMap.putBoolean("isNetwork", true); + + Source backupSource = Source.parse(backupSourceMap, themedReactContext); + if (backupSource == null || backupSource.getUri() == null) { + return false; + } + + if (daiAdsLoader != null) { + daiAdsLoader.setPlayer(null); + } + + setSrc(backupSource); + + return true; + } } diff --git a/package-lock.json b/package-lock.json index d9ecbd17..8b75e02c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -91,7 +91,7 @@ "react-native-svg": "^15.12.1", "react-native-url-polyfill": "^3.0.0", "react-native-vector-icons": "^10.3.0", - "react-native-video": "6.18.0", + "react-native-video": "^6.19.0", "react-native-web": "^0.21.0", "react-native-wheel-color-picker": "^1.3.1", "react-native-worklets": "^0.7.1" @@ -11195,9 +11195,9 @@ } }, "node_modules/react-native-video": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/react-native-video/-/react-native-video-6.18.0.tgz", - "integrity": "sha512-9BjAtAh1uGq6h/GNCCh5yzb/iI9qJHuflwNGExyhoUxbhPD1s+15h+CdpJ2MKKJTXw6J7w+nQOp1Ywa54R8w7Q==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/react-native-video/-/react-native-video-6.19.0.tgz", + "integrity": "sha512-JVojWIxwuH5C3RjVrF4UyuweuOH/Guq/W2xeN9zugePXZI8Xn/j6/oU94gCWHaFzkR/HGeJpqMq+l9aEHSnpIQ==", "license": "MIT", "peerDependencies": { "react": "*", diff --git a/package.json b/package.json index 64512dcd..92781d16 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "react-native-svg": "^15.12.1", "react-native-url-polyfill": "^3.0.0", "react-native-vector-icons": "^10.3.0", - "react-native-video": "6.18.0", + "react-native-video": "^6.19.0", "react-native-web": "^0.21.0", "react-native-wheel-color-picker": "^1.3.1", "react-native-worklets": "^0.7.1" diff --git a/patches/react-native-video+6.18.0.patch b/patches/react-native-video+6.18.0.patch deleted file mode 100644 index db294fb7..00000000 --- a/patches/react-native-video+6.18.0.patch +++ /dev/null @@ -1,2009 +0,0 @@ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/028370e4575f206e9ebac60013572605/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/028370e4575f206e9ebac60013572605/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/028370e4575f206e9ebac60013572605/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/028370e4575f206e9ebac60013572605/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/028370e4575f206e9ebac60013572605/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..83d6ed6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/028370e4575f206e9ebac60013572605/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/41904b52a493ec37d5f38c060e4ae4c7/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/41904b52a493ec37d5f38c060e4ae4c7/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/41904b52a493ec37d5f38c060e4ae4c7/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/41904b52a493ec37d5f38c060e4ae4c7/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/41904b52a493ec37d5f38c060e4ae4c7/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..5c0a147 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/41904b52a493ec37d5f38c060e4ae4c7/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4ab1c81df82d5078216fa3a2e3e201e5/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4ab1c81df82d5078216fa3a2e3e201e5/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4ab1c81df82d5078216fa3a2e3e201e5/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4ab1c81df82d5078216fa3a2e3e201e5/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4ab1c81df82d5078216fa3a2e3e201e5/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..e74c2bf -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4ab1c81df82d5078216fa3a2e3e201e5/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4e62ae45002eade3f68471ae8fe8d84f/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4e62ae45002eade3f68471ae8fe8d84f/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4e62ae45002eade3f68471ae8fe8d84f/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4e62ae45002eade3f68471ae8fe8d84f/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4e62ae45002eade3f68471ae8fe8d84f/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..d25d1d1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/4e62ae45002eade3f68471ae8fe8d84f/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/6db26500d91cbce8361f70f1540f2ea8/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/6db26500d91cbce8361f70f1540f2ea8/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/6db26500d91cbce8361f70f1540f2ea8/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/6db26500d91cbce8361f70f1540f2ea8/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/6db26500d91cbce8361f70f1540f2ea8/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..28daa05 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/6db26500d91cbce8361f70f1540f2ea8/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java -new file mode 100644 -index 0000000..b26a50e ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java -@@ -0,0 +1,22 @@ -+/** -+ * Automatically generated file. DO NOT MODIFY -+ */ -+package com.brentvatne.react; -+ -+public final class BuildConfig { -+ public static final boolean DEBUG = Boolean.parseBoolean("true"); -+ public static final String LIBRARY_PACKAGE_NAME = "com.brentvatne.react"; -+ public static final String BUILD_TYPE = "debug"; -+ // Field from default config. -+ public static final boolean IS_NEW_ARCHITECTURE_ENABLED = true; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_DASH = true; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_HLS = true; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_IMA = false; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_RTSP = false; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_SMOOTH_STREAMING = true; -+} -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml -new file mode 100644 -index 0000000..728c5a9 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml -@@ -0,0 +1,7 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json -new file mode 100644 -index 0000000..247891c ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "com.brentvatne.react", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties -new file mode 100644 -index 0000000..1211b1e ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties -@@ -0,0 +1,6 @@ -+aarFormatVersion=1.0 -+aarMetadataVersion=1.0 -+minCompileSdk=1 -+minCompileSdkExtension=0 -+minAndroidGradlePluginVersion=1.0.0 -+coreLibraryDesugaringEnabled=false -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json -new file mode 100644 -index 0000000..9e26dfe ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json -@@ -0,0 +1 @@ -+{} -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar -new file mode 100644 -index 0000000..e5f72fd -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar -new file mode 100644 -index 0000000..0889def -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt -new file mode 100644 -index 0000000..b5a67e1 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt -@@ -0,0 +1,44 @@ -+int color player_overlay_color 0x0 -+int color red 0x0 -+int color silver_gray 0x0 -+int color white 0x0 -+int dimen controller_wrapper_padding_top 0x0 -+int dimen full_screen_margin 0x0 -+int dimen full_screen_size 0x0 -+int dimen live_wrapper_margin_top 0x0 -+int dimen position_duration_horizontal_padding 0x0 -+int dimen position_duration_text_size 0x0 -+int dimen position_duration_width 0x0 -+int dimen seekBar_height 0x0 -+int dimen seekBar_wrapper_margin_top 0x0 -+int drawable circle 0x0 -+int id exo_duration 0x0 -+int id exo_ffwd 0x0 -+int id exo_fullscreen 0x0 -+int id exo_live_container 0x0 -+int id exo_live_icon 0x0 -+int id exo_live_label 0x0 -+int id exo_next 0x0 -+int id exo_pause 0x0 -+int id exo_play 0x0 -+int id exo_play_pause_container 0x0 -+int id exo_position 0x0 -+int id exo_prev 0x0 -+int id exo_progress 0x0 -+int id exo_rew 0x0 -+int id exo_settings 0x0 -+int layout exo_legacy_player_control_view 0x0 -+int string error_drm_not_supported 0x0 -+int string error_drm_unknown 0x0 -+int string error_drm_unsupported_scheme 0x0 -+int string error_instantiating_decoder 0x0 -+int string error_no_decoder 0x0 -+int string error_no_secure_decoder 0x0 -+int string error_querying_decoders 0x0 -+int string media_playback_notification_text 0x0 -+int string media_playback_notification_title 0x0 -+int string playback_speed 0x0 -+int string select_playback_speed 0x0 -+int string settings 0x0 -+int string unrecognized_media_format 0x0 -+int style ExoMediaButton_FullScreen 0x0 -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat -new file mode 100644 -index 0000000..e62758d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat -new file mode 100644 -index 0000000..bb5b5f9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -new file mode 100644 -index 0000000..186e5bd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -@@ -0,0 +1,3 @@ -+#Sun Jan 11 19:30:05 IST 2026 -+com.brentvatne.react.react-native-video-main-6\:/drawable/circle.xml=/Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml -+com.brentvatne.react.react-native-video-main-6\:/layout/exo_legacy_player_control_view.xml=/Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml -new file mode 100644 -index 0000000..e8dd9e4 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml -@@ -0,0 +1,33 @@ -+ -+ -+ #00000000 -+ #FF0000 -+ #FFBEBEBE -+ #FFFFFF -+ 4dp -+ 4dp -+ 30dp -+ 12dp -+ 4dp -+ 14sp -+ 50dp -+ 26dp -+ 4dp -+ Protected content not supported on API levels below 18 -+ An unknown DRM error occurred -+ This device does not support the required DRM scheme -+ Unable to instantiate decoder %1$s -+ This device does not provide a decoder for %1$s -+ This device does not provide a secure decoder for %1$s -+ Unable to query device decoders -+ Preparing playback -+ Media playback -+ Playback Speed -+ Select Playback Speed -+ Settings -+ Unrecognized media format -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml -new file mode 100644 -index 0000000..55ffc6b ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml -@@ -0,0 +1,5 @@ -+ -+#FFBEBEBE#00000000#FFFFFF#FF00004dp4dp12dp4dp4dp50dp26dp30dp14spThis device does not provide a decoder for %1$sThis device does not provide a secure decoder for %1$sUnable to query device decodersUnable to instantiate decoder %1$sProtected content not supported on API levels below 18Unrecognized media formatThis device does not support the required DRM schemeAn unknown DRM error occurredSettingsPlayback SpeedSelect Playback SpeedMedia playbackPreparing playback -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml -new file mode 100644 -index 0000000..8769311 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -new file mode 100644 -index 0000000..af687a7 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml -new file mode 100644 -index 0000000..65138a3 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module -new file mode 100644 -index 0000000..1698483 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class -new file mode 100644 -index 0000000..b019110 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class -new file mode 100644 -index 0000000..5e16e53 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class -new file mode 100644 -index 0000000..b08faeb -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class -new file mode 100644 -index 0000000..2f92e20 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class -new file mode 100644 -index 0000000..2a5b980 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class -new file mode 100644 -index 0000000..750c145 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class -new file mode 100644 -index 0000000..19b4277 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class -new file mode 100644 -index 0000000..9f6af89 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class -new file mode 100644 -index 0000000..99b4560 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class -new file mode 100644 -index 0000000..077afc1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class -new file mode 100644 -index 0000000..4d14dd4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class -new file mode 100644 -index 0000000..4c5c87e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class -new file mode 100644 -index 0000000..0a9b7a7 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class -new file mode 100644 -index 0000000..1380a05 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class -new file mode 100644 -index 0000000..07ab3fa -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class -new file mode 100644 -index 0000000..dbe9984 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class -new file mode 100644 -index 0000000..88ae34c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class -new file mode 100644 -index 0000000..a3184b3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class -new file mode 100644 -index 0000000..264cd83 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class -new file mode 100644 -index 0000000..46cea81 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class -new file mode 100644 -index 0000000..a4cef0d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt -new file mode 100644 -index 0000000..987e479 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt -@@ -0,0 +1,46 @@ -+R_DEF: Internal format may change without notice -+local -+color player_overlay_color -+color red -+color silver_gray -+color white -+dimen controller_wrapper_padding_top -+dimen full_screen_margin -+dimen full_screen_size -+dimen live_wrapper_margin_top -+dimen position_duration_horizontal_padding -+dimen position_duration_text_size -+dimen position_duration_width -+dimen seekBar_height -+dimen seekBar_wrapper_margin_top -+drawable circle -+id exo_duration -+id exo_ffwd -+id exo_fullscreen -+id exo_live_container -+id exo_live_icon -+id exo_live_label -+id exo_next -+id exo_pause -+id exo_play -+id exo_play_pause_container -+id exo_position -+id exo_prev -+id exo_progress -+id exo_rew -+id exo_settings -+layout exo_legacy_player_control_view -+string error_drm_not_supported -+string error_drm_unknown -+string error_drm_unsupported_scheme -+string error_instantiating_decoder -+string error_no_decoder -+string error_no_secure_decoder -+string error_querying_decoders -+string media_playback_notification_text -+string media_playback_notification_title -+string playback_speed -+string select_playback_speed -+string settings -+string unrecognized_media_format -+style ExoMediaButton.FullScreen -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt -new file mode 100644 -index 0000000..2300097 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt -@@ -0,0 +1,7 @@ -+1 -+2 -+4 -+5 -+6 -+7 -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml -new file mode 100644 -index 0000000..728c5a9 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml -@@ -0,0 +1,7 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json -new file mode 100644 -index 0000000..0637a08 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json -@@ -0,0 +1 @@ -+[] -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt -new file mode 100644 -index 0000000..08f4ebe ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt -@@ -0,0 +1 @@ -+0 Warning/Error -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml -new file mode 100644 -index 0000000..9f06d7c ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml -@@ -0,0 +1,6 @@ -+ -+ -+ -+ -+ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml -new file mode 100644 -index 0000000..e0babc4 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml -@@ -0,0 +1,120 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml -new file mode 100644 -index 0000000..e8dd9e4 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml -@@ -0,0 +1,33 @@ -+ -+ -+ #00000000 -+ #FF0000 -+ #FFBEBEBE -+ #FFFFFF -+ 4dp -+ 4dp -+ 30dp -+ 12dp -+ 4dp -+ 14sp -+ 50dp -+ 26dp -+ 4dp -+ Protected content not supported on API levels below 18 -+ An unknown DRM error occurred -+ This device does not support the required DRM scheme -+ Unable to instantiate decoder %1$s -+ This device does not provide a decoder for %1$s -+ This device does not provide a secure decoder for %1$s -+ Unable to query device decoders -+ Preparing playback -+ Media playback -+ Playback Speed -+ Select Playback Speed -+ Settings -+ Unrecognized media format -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar -new file mode 100644 -index 0000000..1f68b89 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt -new file mode 100644 -index 0000000..1cb95ed ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt -@@ -0,0 +1,45 @@ -+com.brentvatne.react -+color player_overlay_color -+color red -+color silver_gray -+color white -+dimen controller_wrapper_padding_top -+dimen full_screen_margin -+dimen full_screen_size -+dimen live_wrapper_margin_top -+dimen position_duration_horizontal_padding -+dimen position_duration_text_size -+dimen position_duration_width -+dimen seekBar_height -+dimen seekBar_wrapper_margin_top -+drawable circle -+id exo_duration -+id exo_ffwd -+id exo_fullscreen -+id exo_live_container -+id exo_live_icon -+id exo_live_label -+id exo_next -+id exo_pause -+id exo_play -+id exo_play_pause_container -+id exo_position -+id exo_prev -+id exo_progress -+id exo_rew -+id exo_settings -+layout exo_legacy_player_control_view -+string error_drm_not_supported -+string error_drm_unknown -+string error_drm_unsupported_scheme -+string error_instantiating_decoder -+string error_no_decoder -+string error_no_secure_decoder -+string error_querying_decoders -+string media_playback_notification_text -+string media_playback_notification_title -+string playback_speed -+string select_playback_speed -+string settings -+string unrecognized_media_format -+style ExoMediaButton_FullScreen -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab -new file mode 100644 -index 0000000..6eb806a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream -new file mode 100644 -index 0000000..1a55594 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len -new file mode 100644 -index 0000000..74ddf64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len -new file mode 100644 -index 0000000..41d6c24 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at -new file mode 100644 -index 0000000..c7f2806 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i -new file mode 100644 -index 0000000..8a80b7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab -new file mode 100644 -index 0000000..d038dce -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream -new file mode 100644 -index 0000000..1d1d548 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len -new file mode 100644 -index 0000000..3247724 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len -new file mode 100644 -index 0000000..bba171d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at -new file mode 100644 -index 0000000..9a58d92 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i -new file mode 100644 -index 0000000..045022c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab -new file mode 100644 -index 0000000..e70d24d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream -new file mode 100644 -index 0000000..1d1d548 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len -new file mode 100644 -index 0000000..3247724 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len -new file mode 100644 -index 0000000..bba171d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at -new file mode 100644 -index 0000000..23ddf3d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i -new file mode 100644 -index 0000000..045022c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab -new file mode 100644 -index 0000000..496bda2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream -new file mode 100644 -index 0000000..a49789c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len -new file mode 100644 -index 0000000..a3d0573 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len -new file mode 100644 -index 0000000..93a595b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at -new file mode 100644 -index 0000000..9d91003 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i -new file mode 100644 -index 0000000..1598ef3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab -new file mode 100644 -index 0000000..daeef6b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream -new file mode 100644 -index 0000000..9d05b9a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len -new file mode 100644 -index 0000000..d3e09af -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len -new file mode 100644 -index 0000000..b7d7395 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at -new file mode 100644 -index 0000000..3412003 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i -new file mode 100644 -index 0000000..af27d9c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab -new file mode 100644 -index 0000000..bdf584a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream -new file mode 100644 -index 0000000..a9e6823 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len -new file mode 100644 -index 0000000..de8bf97 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len -new file mode 100644 -index 0000000..2a17e6e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at -new file mode 100644 -index 0000000..46d6744 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i -new file mode 100644 -index 0000000..2073982 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab -new file mode 100644 -index 0000000..409b10e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream -new file mode 100644 -index 0000000..7214377 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len -new file mode 100644 -index 0000000..86b154b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len -new file mode 100644 -index 0000000..882f24f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values -new file mode 100644 -index 0000000..8cabf48 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at -new file mode 100644 -index 0000000..6e6f502 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s -new file mode 100644 -index 0000000..67a228d ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s -@@ -0,0 +1 @@ -+ÏÒñÐãÊÃÊ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i -new file mode 100644 -index 0000000..0cbafa1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab -new file mode 100644 -index 0000000..1298c8c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream -new file mode 100644 -index 0000000..1a55594 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len -new file mode 100644 -index 0000000..74ddf64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len -new file mode 100644 -index 0000000..41d6c24 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at -new file mode 100644 -index 0000000..7c991ce -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i -new file mode 100644 -index 0000000..8a80b7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab -new file mode 100644 -index 0000000..5a73f92 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream -new file mode 100644 -index 0000000..90b21c4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len -new file mode 100644 -index 0000000..4cb813c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len -new file mode 100644 -index 0000000..385642d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at -new file mode 100644 -index 0000000..119e277 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i -new file mode 100644 -index 0000000..5e4a0c0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab -new file mode 100644 -index 0000000..52ad30e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream -new file mode 100644 -index 0000000..ae4ac93 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len -new file mode 100644 -index 0000000..6dc1435 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len -new file mode 100644 -index 0000000..42df8b9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at -new file mode 100644 -index 0000000..8157519 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i -new file mode 100644 -index 0000000..f0c9463 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab -new file mode 100644 -index 0000000..1c94f4d ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab -@@ -0,0 +1,2 @@ -+49 -+0 -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab -new file mode 100644 -index 0000000..b2fe254 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream -new file mode 100644 -index 0000000..1a55594 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len -new file mode 100644 -index 0000000..74ddf64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len -new file mode 100644 -index 0000000..41d6c24 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at -new file mode 100644 -index 0000000..d69b273 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i -new file mode 100644 -index 0000000..8a80b7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab -new file mode 100644 -index 0000000..bfd339b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream -new file mode 100644 -index 0000000..5ecc69a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len -new file mode 100644 -index 0000000..1c209ae -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len -new file mode 100644 -index 0000000..31ed51e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at -new file mode 100644 -index 0000000..17f0ceb -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i -new file mode 100644 -index 0000000..c49a939 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab -new file mode 100644 -index 0000000..cb83174 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream -new file mode 100644 -index 0000000..9652ad6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len -new file mode 100644 -index 0000000..33b23e4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len -new file mode 100644 -index 0000000..47e3ec3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values -new file mode 100644 -index 0000000..19d0fa5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at -new file mode 100644 -index 0000000..00fa3dd -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s -new file mode 100644 -index 0000000..9ae424c ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s -@@ -0,0 +1 @@ -+ì‡ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i -new file mode 100644 -index 0000000..ab80614 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin -new file mode 100644 -index 0000000..dcaf58a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin -new file mode 100644 -index 0000000..d7d62e0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin -new file mode 100644 -index 0000000..ee3ec97 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt -new file mode 100644 -index 0000000..a388215 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt -@@ -0,0 +1,16 @@ -+-- Merging decision tree log --- -+manifest -+ADDED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:1-2:12 -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:1-2:12 -+ package -+ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+ xmlns:android -+ ADDED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:11-69 -+uses-sdk -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml reason: use-sdk injection requested -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+ android:targetSdkVersion -+ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+ android:minSdkVersion -+ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 -new file mode 100644 -index 0000000..2a5b980 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 -new file mode 100644 -index 0000000..750c145 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 -new file mode 100644 -index 0000000..19b4277 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 -new file mode 100644 -index 0000000..9f6af89 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 -new file mode 100644 -index 0000000..99b4560 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 -new file mode 100644 -index 0000000..077afc1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 -new file mode 100644 -index 0000000..4d14dd4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin -new file mode 100644 -index 0000000..0f0a9cf -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module -new file mode 100644 -index 0000000..1698483 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class -new file mode 100644 -index 0000000..2e5d42b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class -new file mode 100644 -index 0000000..e2b54bd -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class -new file mode 100644 -index 0000000..0fbaa90 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class -new file mode 100644 -index 0000000..ce1128e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class -new file mode 100644 -index 0000000..2054200 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class -new file mode 100644 -index 0000000..7ef226b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class -new file mode 100644 -index 0000000..162566c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class -new file mode 100644 -index 0000000..7477be8 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class -new file mode 100644 -index 0000000..3516405 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class -new file mode 100644 -index 0000000..5145552 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class -new file mode 100644 -index 0000000..e813d1a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class -new file mode 100644 -index 0000000..e6c0538 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class -new file mode 100644 -index 0000000..b2e5cfc -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class -new file mode 100644 -index 0000000..a672b48 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class -new file mode 100644 -index 0000000..949a5b9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class -new file mode 100644 -index 0000000..8e26a44 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class -new file mode 100644 -index 0000000..8c2948d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class -new file mode 100644 -index 0000000..ab7c203 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class -new file mode 100644 -index 0000000..3262de8 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class -new file mode 100644 -index 0000000..a6b7907 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class -new file mode 100644 -index 0000000..a41fe7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class -new file mode 100644 -index 0000000..ec0f170 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class -new file mode 100644 -index 0000000..20c7316 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class -new file mode 100644 -index 0000000..3a83d08 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class -new file mode 100644 -index 0000000..381c5ea -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class -new file mode 100644 -index 0000000..763511c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class -new file mode 100644 -index 0000000..efa138a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class -new file mode 100644 -index 0000000..c328ffb -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class -new file mode 100644 -index 0000000..81dc3f7 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class -new file mode 100644 -index 0000000..bf9687d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class -new file mode 100644 -index 0000000..a011166 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class -new file mode 100644 -index 0000000..2dfe0a5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class -new file mode 100644 -index 0000000..24c319c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class -new file mode 100644 -index 0000000..7c1c2f6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class -new file mode 100644 -index 0000000..68c48f1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class -new file mode 100644 -index 0000000..0dceebe -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class -new file mode 100644 -index 0000000..6116962 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class -new file mode 100644 -index 0000000..1f63a29 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class -new file mode 100644 -index 0000000..35fd981 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class -new file mode 100644 -index 0000000..5b3a99d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class -new file mode 100644 -index 0000000..e1e118c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class -new file mode 100644 -index 0000000..8955650 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class -new file mode 100644 -index 0000000..fdbd8c4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class -new file mode 100644 -index 0000000..49bd1a1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class -new file mode 100644 -index 0000000..1b9ff2b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class -new file mode 100644 -index 0000000..24ff469 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class -new file mode 100644 -index 0000000..8623659 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class -new file mode 100644 -index 0000000..c054558 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class -new file mode 100644 -index 0000000..3ba0b21 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class -new file mode 100644 -index 0000000..435095f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class -new file mode 100644 -index 0000000..7d79368 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class -new file mode 100644 -index 0000000..7c35b62 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class -new file mode 100644 -index 0000000..055451a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class -new file mode 100644 -index 0000000..be801e5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class -new file mode 100644 -index 0000000..8bcae8d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class -new file mode 100644 -index 0000000..550135d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class -new file mode 100644 -index 0000000..257de83 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class -new file mode 100644 -index 0000000..9e8c1b9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class -new file mode 100644 -index 0000000..2c42f4a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class -new file mode 100644 -index 0000000..5ae25b4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class -new file mode 100644 -index 0000000..af3decf -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class -new file mode 100644 -index 0000000..9bc6115 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class -new file mode 100644 -index 0000000..659e439 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class -new file mode 100644 -index 0000000..2456c95 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class -new file mode 100644 -index 0000000..38ce458 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class -new file mode 100644 -index 0000000..bc906a9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class -new file mode 100644 -index 0000000..07bd865 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class -new file mode 100644 -index 0000000..5e67aa0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class -new file mode 100644 -index 0000000..6ba65f2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class -new file mode 100644 -index 0000000..647f782 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class -new file mode 100644 -index 0000000..0f20e85 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class -new file mode 100644 -index 0000000..8a576c2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class -new file mode 100644 -index 0000000..8a59f22 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class -new file mode 100644 -index 0000000..32d6d1f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class -new file mode 100644 -index 0000000..2679ae0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class -new file mode 100644 -index 0000000..2af2d2c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class -new file mode 100644 -index 0000000..d8a4aa3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class -new file mode 100644 -index 0000000..8348d9d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class -new file mode 100644 -index 0000000..435293b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class -new file mode 100644 -index 0000000..c28e02b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class -new file mode 100644 -index 0000000..990ca48 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class -new file mode 100644 -index 0000000..07a503b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class -new file mode 100644 -index 0000000..efa3ee3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class -new file mode 100644 -index 0000000..75d1cd4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class -new file mode 100644 -index 0000000..535aad5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class -new file mode 100644 -index 0000000..0143f64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class differ -diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt -index 1ac0fd0..953eb59 100644 ---- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt -+++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt -@@ -1,5 +1,6 @@ - package com.brentvatne.common.api - -+import android.graphics.Color - import com.brentvatne.common.toolbox.ReactBridgeUtils - import com.facebook.react.bridge.ReadableMap - -@@ -22,6 +23,17 @@ class SubtitleStyle public constructor() { - var subtitlesFollowVideo = true - private set - -+ // Extended styling (used by ExoPlayerView via Media3 SubtitleView) -+ // Stored as Android color ints to avoid parsing multiple times. -+ var textColor: Int? = null -+ private set -+ var backgroundColor: Int? = null -+ private set -+ var edgeType: String? = null -+ private set -+ var edgeColor: Int? = null -+ private set -+ - companion object { - private const val PROP_FONT_SIZE_TRACK = "fontSize" - private const val PROP_PADDING_BOTTOM = "paddingBottom" -@@ -31,6 +43,21 @@ class SubtitleStyle public constructor() { - private const val PROP_OPACITY = "opacity" - private const val PROP_SUBTITLES_FOLLOW_VIDEO = "subtitlesFollowVideo" - -+ // Extended props (optional) -+ private const val PROP_TEXT_COLOR = "textColor" -+ private const val PROP_BACKGROUND_COLOR = "backgroundColor" -+ private const val PROP_EDGE_TYPE = "edgeType" -+ private const val PROP_EDGE_COLOR = "edgeColor" -+ -+ private fun parseColorOrNull(value: String?): Int? { -+ if (value.isNullOrBlank()) return null -+ return try { -+ Color.parseColor(value) -+ } catch (_: IllegalArgumentException) { -+ null -+ } -+ } -+ - @JvmStatic - fun parse(src: ReadableMap?): SubtitleStyle { - val subtitleStyle = SubtitleStyle() -@@ -41,6 +68,13 @@ class SubtitleStyle public constructor() { - subtitleStyle.paddingRight = ReactBridgeUtils.safeGetInt(src, PROP_PADDING_RIGHT, 0) - subtitleStyle.opacity = ReactBridgeUtils.safeGetFloat(src, PROP_OPACITY, 1f) - subtitleStyle.subtitlesFollowVideo = ReactBridgeUtils.safeGetBool(src, PROP_SUBTITLES_FOLLOW_VIDEO, true) -+ -+ // Extended styling -+ subtitleStyle.textColor = parseColorOrNull(ReactBridgeUtils.safeGetString(src, PROP_TEXT_COLOR, null)) -+ subtitleStyle.backgroundColor = parseColorOrNull(ReactBridgeUtils.safeGetString(src, PROP_BACKGROUND_COLOR, null)) -+ subtitleStyle.edgeType = ReactBridgeUtils.safeGetString(src, PROP_EDGE_TYPE, null) -+ subtitleStyle.edgeColor = parseColorOrNull(ReactBridgeUtils.safeGetString(src, PROP_EDGE_COLOR, null)) -+ - return subtitleStyle - } - } -diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt -index bb945fe..2d3f8ca 100644 ---- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt -+++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt -@@ -10,11 +10,14 @@ import android.widget.FrameLayout - import android.widget.TextView - import androidx.media3.common.Player - import androidx.media3.common.Timeline -+import androidx.media3.common.text.CueGroup - import androidx.media3.common.util.UnstableApi - import androidx.media3.exoplayer.ExoPlayer - import androidx.media3.ui.AspectRatioFrameLayout -+import androidx.media3.ui.CaptionStyleCompat - import androidx.media3.ui.DefaultTimeBar - import androidx.media3.ui.PlayerView -+import androidx.media3.ui.SubtitleView - import com.brentvatne.common.api.ResizeMode - import com.brentvatne.common.api.SubtitleStyle - -@@ -52,15 +55,58 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute - resizeMode = androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT - } - -+ /** -+ * Subtitles rendered in a full-size overlay (NOT inside PlayerView's content frame). -+ * This keeps subtitles anchored in-place even when the video surface/content frame moves -+ * due to aspect ratio / resizeMode changes. -+ * -+ * Controlled by SubtitleStyle.subtitlesFollowVideo. -+ */ -+ private val overlaySubtitleView = SubtitleView(context).apply { -+ layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) -+ visibility = View.GONE -+ // We control styling via SubtitleStyle; don't pull Android system caption defaults. -+ setApplyEmbeddedStyles(true) -+ setApplyEmbeddedFontSizes(true) -+ } -+ -+ private fun updateSubtitleRenderingMode() { -+ val internalSubtitleView = playerView.subtitleView -+ val followVideo = localStyle.subtitlesFollowVideo -+ val shouldShow = localStyle.opacity != 0.0f -+ -+ if (followVideo) { -+ internalSubtitleView?.visibility = if (shouldShow) View.VISIBLE else View.GONE -+ overlaySubtitleView.visibility = View.GONE -+ } else { -+ // Hard-disable PlayerView's internal subtitle view. PlayerView can recreate/toggle this view -+ // during resize/layout, so we re-assert this in multiple lifecycle points. -+ internalSubtitleView?.visibility = View.GONE -+ internalSubtitleView?.alpha = 0f -+ overlaySubtitleView.visibility = if (shouldShow) View.VISIBLE else View.GONE -+ overlaySubtitleView.alpha = 1f -+ } -+ } -+ - init { - // Add PlayerView with explicit layout parameters - val playerViewLayoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) - addView(playerView, playerViewLayoutParams) - -+ // Add overlay subtitles above PlayerView (so it doesn't move with video content frame) -+ val subtitleOverlayLayoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) -+ addView(overlaySubtitleView, subtitleOverlayLayoutParams) -+ - // Add live badge with its own layout parameters - val liveBadgeLayoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) - liveBadgeLayoutParams.setMargins(16, 16, 16, 16) - addView(liveBadge, liveBadgeLayoutParams) -+ -+ // PlayerView may internally recreate its subtitle view during relayouts (e.g. resizeMode changes). -+ // Ensure our rendering mode is re-applied whenever PlayerView lays out. -+ playerView.addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ -> -+ updateSubtitleRenderingMode() -+ } - } - - fun setPlayer(player: ExoPlayer?) { -@@ -80,6 +126,10 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute - playerView.resizeMode = resizeMode - } - } -+ -+ // Re-assert subtitle rendering mode for the current style. -+ updateSubtitleRenderingMode() -+ applySubtitleStyle(localStyle) - } - - fun getPlayerView(): PlayerView = playerView -@@ -108,23 +158,63 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute - } - - fun setSubtitleStyle(style: SubtitleStyle) { -+ localStyle = style -+ applySubtitleStyle(localStyle) -+ } -+ -+ private fun applySubtitleStyle(style: SubtitleStyle) { -+ updateSubtitleRenderingMode() -+ - playerView.subtitleView?.let { subtitleView -> -- // Reset to defaults -- subtitleView.setUserDefaultStyle() -- subtitleView.setUserDefaultTextSize() -+ // Important: -+ // Avoid inheriting Android system caption settings via setUserDefaultStyle(), -+ // because those can force a background/window that the app doesn't want. -+ val resolvedTextColor = style.textColor ?: CaptionStyleCompat.DEFAULT.foregroundColor -+ val resolvedBackgroundColor = style.backgroundColor ?: Color.TRANSPARENT -+ val resolvedEdgeColor = style.edgeColor ?: Color.BLACK -+ -+ val resolvedEdgeType = when (style.edgeType?.lowercase()) { -+ "outline" -> CaptionStyleCompat.EDGE_TYPE_OUTLINE -+ "shadow" -> CaptionStyleCompat.EDGE_TYPE_DROP_SHADOW -+ else -> CaptionStyleCompat.EDGE_TYPE_NONE -+ } -+ -+ // windowColor MUST be transparent to avoid the "caption window" background. -+ val captionStyle = CaptionStyleCompat( -+ resolvedTextColor, -+ resolvedBackgroundColor, -+ Color.TRANSPARENT, -+ resolvedEdgeType, -+ resolvedEdgeColor, -+ null -+ ) -+ subtitleView.setStyle(captionStyle) - -- // Apply custom styling -+ // Text size: if not provided, fall back to user default size. - if (style.fontSize > 0) { -- subtitleView.setFixedTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, style.fontSize.toFloat()) -+ // Use DIP so the value matches React Native's dp-based fontSize more closely. -+ // SP would multiply by system fontScale and makes "30" look larger than RN "30". -+ subtitleView.setFixedTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, style.fontSize.toFloat()) -+ } else { -+ subtitleView.setUserDefaultTextSize() - } - -+ // Horizontal padding is still useful (safe area); vertical offset is handled via bottomPaddingFraction. - subtitleView.setPadding( - style.paddingLeft, - style.paddingTop, - style.paddingRight, -- style.paddingBottom -+ 0 - ) - -+ // Bottom offset for *internal* subtitles: -+ // Use Media3 SubtitleView's bottomPaddingFraction (moves cues up) rather than raw view padding. -+ if (style.paddingBottom > 0 && playerView.height > 0) { -+ val fraction = (style.paddingBottom.toFloat() / playerView.height.toFloat()) -+ .coerceIn(0f, 0.9f) -+ subtitleView.setBottomPaddingFraction(fraction) -+ } -+ - if (style.opacity != 0.0f) { - subtitleView.alpha = style.opacity - subtitleView.visibility = android.view.View.VISIBLE -@@ -132,7 +222,59 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute - subtitleView.visibility = android.view.View.GONE - } - } -- localStyle = style -+ -+ // Apply the same styling to the overlay subtitle view. -+ run { -+ val subtitleView = overlaySubtitleView -+ -+ val resolvedTextColor = style.textColor ?: CaptionStyleCompat.DEFAULT.foregroundColor -+ val resolvedBackgroundColor = style.backgroundColor ?: Color.TRANSPARENT -+ val resolvedEdgeColor = style.edgeColor ?: Color.BLACK -+ -+ val resolvedEdgeType = when (style.edgeType?.lowercase()) { -+ "outline" -> CaptionStyleCompat.EDGE_TYPE_OUTLINE -+ "shadow" -> CaptionStyleCompat.EDGE_TYPE_DROP_SHADOW -+ else -> CaptionStyleCompat.EDGE_TYPE_NONE -+ } -+ -+ val captionStyle = CaptionStyleCompat( -+ resolvedTextColor, -+ resolvedBackgroundColor, -+ Color.TRANSPARENT, -+ resolvedEdgeType, -+ resolvedEdgeColor, -+ null -+ ) -+ subtitleView.setStyle(captionStyle) -+ -+ if (style.fontSize > 0) { -+ // Use DIP so the value matches React Native's dp-based fontSize more closely. -+ subtitleView.setFixedTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, style.fontSize.toFloat()) -+ } else { -+ subtitleView.setUserDefaultTextSize() -+ } -+ -+ subtitleView.setPadding( -+ style.paddingLeft, -+ style.paddingTop, -+ style.paddingRight, -+ 0 -+ ) -+ -+ // Bottom offset relative to the full view height (stable even when video content frame moves). -+ val h = height.takeIf { it > 0 } ?: subtitleView.height -+ if (style.paddingBottom > 0 && h > 0) { -+ val fraction = (style.paddingBottom.toFloat() / h.toFloat()) -+ .coerceIn(0f, 0.9f) -+ subtitleView.setBottomPaddingFraction(fraction) -+ } else { -+ subtitleView.setBottomPaddingFraction(0f) -+ } -+ -+ if (style.opacity != 0.0f) { -+ subtitleView.alpha = style.opacity -+ } -+ } - } - - fun setShutterColor(color: Int) { -@@ -223,6 +365,13 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute - } - - private val playerListener = object : Player.Listener { -+ override fun onCues(cueGroup: CueGroup) { -+ // Keep overlay subtitles in sync. This does NOT interfere with PlayerView's own subtitle rendering. -+ // When subtitlesFollowVideo=false, overlaySubtitleView is the visible one. -+ updateSubtitleRenderingMode() -+ overlaySubtitleView.setCues(cueGroup.cues) -+ } -+ - override fun onTimelineChanged(timeline: Timeline, reason: Int) { - playerView.post { - playerView.requestLayout() -@@ -284,6 +433,9 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute - pendingResizeMode?.let { resizeMode -> - playerView.resizeMode = resizeMode - } -+ // Re-apply bottomPaddingFraction once we have a concrete height. -+ updateSubtitleRenderingMode() -+ applySubtitleStyle(localStyle) - } - } - } -diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java -index 539ecfd..54312f7 100644 ---- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java -+++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java -@@ -161,10 +161,11 @@ public class ReactExoplayerView extends FrameLayout implements - AdEvent.AdEventListener, - AdErrorEvent.AdErrorListener { - -- public static final double DEFAULT_MAX_HEAP_ALLOCATION_PERCENT = 1; -+ public static final double DEFAULT_MAX_HEAP_ALLOCATION_PERCENT = 0.5; - public static final double DEFAULT_MIN_BUFFER_MEMORY_RESERVE = 0; - - private static final String TAG = "ReactExoplayerView"; -+ private static final ExecutorService SHARED_EXECUTOR = Executors.newSingleThreadExecutor(); - - private static final CookieManager DEFAULT_COOKIE_MANAGER; - private static final int SHOW_PROGRESS = 1; -@@ -211,6 +212,7 @@ public class ReactExoplayerView extends FrameLayout implements - private float audioVolume = 1f; - private int maxBitRate = 0; - private boolean hasDrmFailed = false; -+ private int drmRetryCount = 0; - private boolean isUsingContentResolution = false; - private boolean selectTrackWhenReady = false; - private final Handler mainHandler; -@@ -243,7 +245,7 @@ public class ReactExoplayerView extends FrameLayout implements - private BufferingStrategy.BufferingStrategyEnum bufferingStrategy; - private boolean disableDisconnectError; - private boolean preventsDisplaySleepDuringVideoPlayback = true; -- private float mProgressUpdateInterval = 250.0f; -+ private float mProgressUpdateInterval = 1000.0f; - protected boolean playInBackground = false; - private boolean mReportBandwidth = false; - private boolean controls = false; -@@ -643,9 +645,12 @@ public class ReactExoplayerView extends FrameLayout implements - PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, this.enterPictureInPictureOnLeave); - } - if (!source.isLocalAssetFile() && !source.isAsset() && source.getBufferConfig().getCacheSize() > 0) { -+ long requestedCacheSize = source.getBufferConfig().getCacheSize(); -+ long MAX_SAFE_CACHE_SIZE = 100L * 1024 * 1024; -+ long effectiveCacheSize = Math.min(requestedCacheSize, MAX_SAFE_CACHE_SIZE); - RNVSimpleCache.INSTANCE.setSimpleCache( - this.getContext(), -- source.getBufferConfig().getCacheSize() -+ (int) effectiveCacheSize - ); - useCache = true; - } else { -@@ -654,9 +659,10 @@ public class ReactExoplayerView extends FrameLayout implements - if (playerNeedsSource) { - // Will force display of shutter view if needed - exoPlayerView.invalidateAspectRatio(); -+ drmRetryCount = 0; -+ hasDrmFailed = false; - // DRM session manager creation must be done on a different thread to prevent crashes so we start a new thread -- ExecutorService es = Executors.newSingleThreadExecutor(); -- es.execute(() -> { -+ SHARED_EXECUTOR.execute(() -> { - // DRM initialization must run on a different thread - if (viewHasDropped && runningSource == source) { - return; -@@ -727,7 +733,7 @@ public class ReactExoplayerView extends FrameLayout implements - - DefaultRenderersFactory renderersFactory = - new DefaultRenderersFactory(getContext()) -- .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF) -+ .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER) - .setEnableDecoderFallback(true) - .forceEnableMediaCodecAsynchronousQueueing(); - -@@ -851,13 +857,10 @@ public class ReactExoplayerView extends FrameLayout implements - MediaSource mediaSource = Objects.requireNonNullElse(mediaSourceWithAds, videoSource); - - // wait for player to be set -- while (player == null) { -- try { -- wait(); -- } catch (InterruptedException ex) { -- Thread.currentThread().interrupt(); -- DebugLog.e(TAG, ex.toString()); -- } -+ if (player == null) { -+ DebugLog.w(TAG, "Player not ready yet, aborting source initialization"); -+ playerNeedsSource = true; -+ return; - } - - boolean haveResumePosition = resumeWindow != C.INDEX_UNSET; -@@ -1484,8 +1487,7 @@ public class ReactExoplayerView extends FrameLayout implements - ArrayList textTracks = getTextTrackInfo(); - - if (source.getContentStartTime() != -1) { -- ExecutorService es = Executors.newSingleThreadExecutor(); -- es.execute(() -> { -+ SHARED_EXECUTOR.execute(() -> { - // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread and notify the player only when we're done - ArrayList videoTracks = getVideoTrackInfoFromManifest(); - if (videoTracks != null) { -@@ -1596,12 +1598,11 @@ public class ReactExoplayerView extends FrameLayout implements - // We need retry count to in case where minefest request fails from poor network conditions - @WorkerThread - private ArrayList getVideoTrackInfoFromManifest(int retryCount) { -- ExecutorService es = Executors.newSingleThreadExecutor(); - final DataSource dataSource = this.mediaDataSourceFactory.createDataSource(); - final Uri sourceUri = source.getUri(); - final long startTime = source.getContentStartTime() * 1000 - 100; // s -> ms with 100ms offset - -- Future> result = es.submit(new Callable() { -+ Future> result = SHARED_EXECUTOR.submit(new Callable>() { - final DataSource ds = dataSource; - final Uri uri = sourceUri; - final long startTimeUs = startTime * 1000; // ms -> us -@@ -1648,7 +1649,6 @@ public class ReactExoplayerView extends FrameLayout implements - if (results == null && retryCount < 1) { - return this.getVideoTrackInfoFromManifest(++retryCount); - } -- es.shutdown(); - return results; - } catch (Exception e) { - DebugLog.w(TAG, "error in getVideoTrackInfoFromManifest handling request:" + e.getMessage()); -@@ -1939,12 +1939,15 @@ public class ReactExoplayerView extends FrameLayout implements - case PlaybackException.ERROR_CODE_DRM_UNSPECIFIED: - if (!hasDrmFailed) { - // When DRM fails to reach the app level certificate server it will fail with a source error so we assume that it is DRM related and try one more time -- hasDrmFailed = true; -- playerNeedsSource = true; -- updateResumePosition(); -- initializePlayer(); -- setPlayWhenReady(true); -- return; -+ if (drmRetryCount < 1) { -+ drmRetryCount++; -+ hasDrmFailed = true; -+ playerNeedsSource = true; -+ updateResumePosition(); -+ initializePlayer(); -+ setPlayWhenReady(true); -+ return; -+ } - } - break; - default: -@@ -2123,6 +2126,16 @@ public class ReactExoplayerView extends FrameLayout implements - if (textRendererIndex != C.INDEX_UNSET) { - TrackGroupArray groups = info.getTrackGroups(textRendererIndex); - boolean trackFound = false; -+ // NOTE: -+ // RNVideo emits textTracks as a flattened list (Track.index is assigned using textTracks.size()). -+ // However, previous logic compared the requested "index" against the *trackIndex within a group*, -+ // which makes any index > 0 either select the wrong subtitle or keep the first one. -+ // Here we interpret type="index" as the flattened index, matching the JS list order. -+ int targetFlatIndex = -1; -+ if ("index".equals(type)) { -+ targetFlatIndex = ReactBridgeUtils.safeParseInt(value, -1); -+ } -+ int flatIndex = 0; - - for (int groupIndex = 0; groupIndex < groups.length; groupIndex++) { - TrackGroup group = groups.get(groupIndex); -@@ -2135,8 +2148,7 @@ public class ReactExoplayerView extends FrameLayout implements - } else if ("title".equals(type) && format.label != null && format.label.equals(value)) { - isMatch = true; - } else if ("index".equals(type)) { -- int targetIndex = ReactBridgeUtils.safeParseInt(value, -1); -- if (targetIndex == trackIndex) { -+ if (targetFlatIndex != -1 && targetFlatIndex == flatIndex) { - isMatch = true; - } - } -@@ -2148,6 +2160,7 @@ public class ReactExoplayerView extends FrameLayout implements - trackFound = true; - break; - } -+ flatIndex++; - } - if (trackFound) break; - } diff --git a/patches/react-native-video+6.19.0.patch b/patches/react-native-video+6.19.0.patch new file mode 100644 index 00000000..3cf30b36 --- /dev/null +++ b/patches/react-native-video+6.19.0.patch @@ -0,0 +1,1280 @@ +diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +index e16ac96..8018a72 100644 +--- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java ++++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +@@ -228,7 +228,8 @@ public class ReactExoplayerView extends FrameLayout implements + private ArrayList rootViewChildrenOriginalVisibility = new ArrayList(); + + /* +- * When user is seeking first called is on onPositionDiscontinuity -> DISCONTINUITY_REASON_SEEK ++ * When user is seeking first called is on onPositionDiscontinuity -> ++ * DISCONTINUITY_REASON_SEEK + * Then we set if to false when playback is back in onIsPlayingChanged -> true + */ + private boolean isSeeking = false; +@@ -298,7 +299,8 @@ public class ReactExoplayerView extends FrameLayout implements + lastPos = pos; + lastBufferDuration = bufferedDuration; + lastDuration = duration; +- eventEmitter.onVideoProgress.invoke(pos, bufferedDuration, player.getDuration(), getPositionInFirstPeriodMsForCurrentWindow(pos)); ++ eventEmitter.onVideoProgress.invoke(pos, bufferedDuration, player.getDuration(), ++ getPositionInFirstPeriodMsForCurrentWindow(pos)); + } + } + } +@@ -316,7 +318,7 @@ public class ReactExoplayerView extends FrameLayout implements + + public double getPositionInFirstPeriodMsForCurrentWindow(long currentPosition) { + Timeline.Window window = new Timeline.Window(); +- if(!player.getCurrentTimeline().isEmpty()) { ++ if (!player.getCurrentTimeline().isEmpty()) { + player.getCurrentTimeline().getWindow(player.getCurrentMediaItemIndex(), window); + } + return window.windowStartTimeMs + currentPosition; +@@ -355,9 +357,9 @@ public class ReactExoplayerView extends FrameLayout implements + LayoutParams.MATCH_PARENT, + LayoutParams.MATCH_PARENT); + exoPlayerView = new ExoPlayerView(getContext()); +- exoPlayerView.addOnLayoutChangeListener( (View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) -> +- PictureInPictureUtil.applySourceRectHint(themedReactContext, pictureInPictureParamsBuilder, exoPlayerView) +- ); ++ exoPlayerView.addOnLayoutChangeListener( ++ (View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) -> PictureInPictureUtil ++ .applySourceRectHint(themedReactContext, pictureInPictureParamsBuilder, exoPlayerView)); + exoPlayerView.setLayoutParams(layoutParams); + addView(exoPlayerView, 0, layoutParams); + +@@ -383,8 +385,10 @@ public class ReactExoplayerView extends FrameLayout implements + public void onHostPause() { + isInBackground = true; + Activity activity = themedReactContext.getCurrentActivity(); +- boolean isInPictureInPicture = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null && activity.isInPictureInPictureMode(); +- boolean isInMultiWindowMode = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null && activity.isInMultiWindowMode(); ++ boolean isInPictureInPicture = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null ++ && activity.isInPictureInPictureMode(); ++ boolean isInMultiWindowMode = Util.SDK_INT >= Build.VERSION_CODES.N && activity != null ++ && activity.isInMultiWindowMode(); + if (playInBackground || isInPictureInPicture || isInMultiWindowMode) { + return; + } +@@ -403,7 +407,7 @@ public class ReactExoplayerView extends FrameLayout implements + viewHasDropped = true; + } + +- //BandwidthMeter.EventListener implementation ++ // BandwidthMeter.EventListener implementation + @Override + public void onBandwidthSample(int elapsedMs, long bytes, long bitrate) { + if (mReportBandwidth) { +@@ -411,7 +415,8 @@ public class ReactExoplayerView extends FrameLayout implements + eventEmitter.onVideoBandwidthUpdate.invoke(bitrate, 0, 0, null); + } else { + Format videoFormat = player.getVideoFormat(); +- boolean isRotatedContent = videoFormat != null && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); ++ boolean isRotatedContent = videoFormat != null ++ && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); + int width = videoFormat != null ? (isRotatedContent ? videoFormat.height : videoFormat.width) : 0; + int height = videoFormat != null ? (isRotatedContent ? videoFormat.width : videoFormat.height) : 0; + String trackId = videoFormat != null ? videoFormat.id : null; +@@ -426,7 +431,8 @@ public class ReactExoplayerView extends FrameLayout implements + * Toggling the visibility of the player control view + */ + private void togglePlayerControlVisibility() { +- if (player == null) return; ++ if (player == null) ++ return; + if (exoPlayerView.isControllerVisible()) { + exoPlayerView.hideController(); + } else { +@@ -450,7 +456,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private void updateControllerConfig() { +- if (exoPlayerView == null) return; ++ if (exoPlayerView == null) ++ return; + + exoPlayerView.setControllerShowTimeoutMs(5000); + +@@ -461,7 +468,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private void updateControllerVisibility() { +- if (exoPlayerView == null) return; ++ if (exoPlayerView == null) ++ return; + + exoPlayerView.setUseController(controls && !controlsConfig.getHideFullscreen()); + } +@@ -469,7 +477,7 @@ public class ReactExoplayerView extends FrameLayout implements + private void openSettings() { + AlertDialog.Builder builder = new AlertDialog.Builder(themedReactContext); + builder.setTitle(R.string.settings); +- String[] settingsOptions = {themedReactContext.getString(R.string.playback_speed)}; ++ String[] settingsOptions = { themedReactContext.getString(R.string.playback_speed) }; + builder.setItems(settingsOptions, (dialog, which) -> { + if (which == 0) { + showPlaybackSpeedOptions(); +@@ -479,7 +487,7 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private void showPlaybackSpeedOptions() { +- String[] speedOptions = {"0.5x", "1.0x", "1.5x", "2.0x"}; ++ String[] speedOptions = { "0.5x", "1.0x", "1.5x", "2.0x" }; + AlertDialog.Builder builder = new AlertDialog.Builder(themedReactContext); + builder.setTitle(R.string.select_playback_speed); + +@@ -497,8 +505,10 @@ public class ReactExoplayerView extends FrameLayout implements + speed = 2.0f; + break; + default: +- speed = 1.0f;; +- }; ++ speed = 1.0f; ++ ; ++ } ++ ; + setRateModifier(speed); + }); + builder.show(); +@@ -510,24 +520,30 @@ public class ReactExoplayerView extends FrameLayout implements + + /** + * Update the layout +- * @param view view needs to update layout + * +- * This is a workaround for the open bug in react-native: ... ++ * @param view view needs to update layout ++ * ++ * This is a workaround for the open bug in react-native: ... + */ + private void reLayout(View view) { +- if (view == null) return; ++ if (view == null) ++ return; + view.measure(MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.EXACTLY)); + view.layout(view.getLeft(), view.getTop(), view.getMeasuredWidth(), view.getMeasuredHeight()); + } + + private void refreshControlsStyles() { +- if (exoPlayerView == null || player == null || !controls) return; ++ if (exoPlayerView == null || player == null || !controls) ++ return; + updateControllerVisibility(); + } + +- // Note: The following methods for live content and button visibility are no longer needed +- // as PlayerView handles controls automatically. Some functionality may need to be ++ // Note: The following methods for live content and button visibility are no ++ // longer needed ++ // as PlayerView handles controls automatically. Some functionality may need to ++ // be + // reimplemented using PlayerView's APIs if custom behavior is required. + + private void reLayoutControls() { +@@ -564,6 +580,7 @@ public class ReactExoplayerView extends FrameLayout implements + private class RNVLoadControl extends DefaultLoadControl { + private final int availableHeapInBytes; + private final Runtime runtime; ++ + public RNVLoadControl(DefaultAllocator allocator, BufferConfig config) { + super(allocator, + config.getMinBufferMs() != BufferConfig.Companion.getBufferConfigPropUnsetInt() +@@ -574,7 +591,7 @@ public class ReactExoplayerView extends FrameLayout implements + : DefaultLoadControl.DEFAULT_MAX_BUFFER_MS, + config.getBufferForPlaybackMs() != BufferConfig.Companion.getBufferConfigPropUnsetInt() + ? config.getBufferForPlaybackMs() +- : DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS , ++ : DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS, + config.getBufferForPlaybackAfterRebufferMs() != BufferConfig.Companion.getBufferConfigPropUnsetInt() + ? config.getBufferForPlaybackAfterRebufferMs() + : DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS, +@@ -585,10 +602,12 @@ public class ReactExoplayerView extends FrameLayout implements + : DefaultLoadControl.DEFAULT_BACK_BUFFER_DURATION_MS, + DefaultLoadControl.DEFAULT_RETAIN_BACK_BUFFER_FROM_KEYFRAME); + runtime = Runtime.getRuntime(); +- ActivityManager activityManager = (ActivityManager) themedReactContext.getSystemService(ThemedReactContext.ACTIVITY_SERVICE); +- double maxHeap = config.getMaxHeapAllocationPercent() != BufferConfig.Companion.getBufferConfigPropUnsetDouble() +- ? config.getMaxHeapAllocationPercent() +- : DEFAULT_MAX_HEAP_ALLOCATION_PERCENT; ++ ActivityManager activityManager = (ActivityManager) themedReactContext ++ .getSystemService(ThemedReactContext.ACTIVITY_SERVICE); ++ double maxHeap = config.getMaxHeapAllocationPercent() != BufferConfig.Companion ++ .getBufferConfigPropUnsetDouble() ++ ? config.getMaxHeapAllocationPercent() ++ : DEFAULT_MAX_HEAP_ALLOCATION_PERCENT; + availableHeapInBytes = (int) Math.floor(activityManager.getMemoryClass() * maxHeap * 1024 * 1024); + } + +@@ -606,13 +625,15 @@ public class ReactExoplayerView extends FrameLayout implements + } + long usedMemory = runtime.totalMemory() - runtime.freeMemory(); + long freeMemory = runtime.maxMemory() - usedMemory; +- double minBufferMemoryReservePercent = source.getBufferConfig().getMinBufferMemoryReservePercent() != BufferConfig.Companion.getBufferConfigPropUnsetDouble() +- ? source.getBufferConfig().getMinBufferMemoryReservePercent() +- : ReactExoplayerView.DEFAULT_MIN_BUFFER_MEMORY_RESERVE; ++ double minBufferMemoryReservePercent = source.getBufferConfig() ++ .getMinBufferMemoryReservePercent() != BufferConfig.Companion.getBufferConfigPropUnsetDouble() ++ ? source.getBufferConfig().getMinBufferMemoryReservePercent() ++ : ReactExoplayerView.DEFAULT_MIN_BUFFER_MEMORY_RESERVE; + long reserveMemory = (long) minBufferMemoryReservePercent * runtime.maxMemory(); + long bufferedMs = bufferedDurationUs / (long) 1000; + if (reserveMemory > freeMemory && bufferedMs > 2000) { +- // We don't have enough memory in reserve so we stop buffering to allow other components to use it instead ++ // We don't have enough memory in reserve so we stop buffering to allow other ++ // components to use it instead + return false; + } + if (runtime.freeMemory() == 0) { +@@ -645,13 +666,13 @@ public class ReactExoplayerView extends FrameLayout implements + // Initialize core configuration and listeners + initializePlayerCore(self); + pipListenerUnsubscribe = PictureInPictureUtil.addLifecycleEventListener(themedReactContext, this); +- PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, this.enterPictureInPictureOnLeave); ++ PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, ++ this.enterPictureInPictureOnLeave); + } + if (!source.isLocalAssetFile() && !source.isAsset() && source.getBufferConfig().getCacheSize() > 0) { + RNVSimpleCache.INSTANCE.setSimpleCache( + this.getContext(), +- source.getBufferConfig().getCacheSize() +- ); ++ source.getBufferConfig().getCacheSize()); + useCache = true; + } else { + useCache = false; +@@ -659,7 +680,8 @@ public class ReactExoplayerView extends FrameLayout implements + if (playerNeedsSource) { + // Will force display of shutter view if needed + exoPlayerView.invalidateAspectRatio(); +- // DRM session manager creation must be done on a different thread to prevent crashes so we start a new thread ++ // DRM session manager creation must be done on a different thread to prevent ++ // crashes so we start a new thread + ExecutorService es = Executors.newSingleThreadExecutor(); + es.execute(() -> { + // DRM initialization must run on a different thread +@@ -668,7 +690,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + if (activity == null) { + DebugLog.e(TAG, "Failed to initialize Player!, null activity"); +- eventEmitter.onVideoError.invoke("Failed to initialize Player!", new Exception("Current Activity is null!"), "1001"); ++ eventEmitter.onVideoError.invoke("Failed to initialize Player!", ++ new Exception("Current Activity is null!"), "1001"); + return; + } + +@@ -721,8 +744,7 @@ public class ReactExoplayerView extends FrameLayout implements + DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); + RNVLoadControl loadControl = new RNVLoadControl( + allocator, +- source.getBufferConfig() +- ); ++ source.getBufferConfig()); + + long initialBitrate = source.getBufferConfig().getInitialBitrate(); + if (initialBitrate > 0) { +@@ -730,11 +752,10 @@ public class ReactExoplayerView extends FrameLayout implements + this.bandwidthMeter = config.getBandwidthMeter(); + } + +- DefaultRenderersFactory renderersFactory = +- new DefaultRenderersFactory(getContext()) +- .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF) +- .setEnableDecoderFallback(true) +- .forceEnableMediaCodecAsynchronousQueueing(); ++ DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(getContext()) ++ .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER) ++ .setEnableDecoderFallback(true) ++ .forceEnableMediaCodecAsynchronousQueueing(); + + DefaultMediaSourceFactory mediaSourceFactory; + +@@ -743,11 +764,13 @@ public class ReactExoplayerView extends FrameLayout implements + } else { + mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory); + +- mediaSourceFactory.setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, exoPlayerView.getPlayerView()); ++ mediaSourceFactory.setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, ++ exoPlayerView.getPlayerView()); + } + + if (useCache && !disableCache) { +- mediaSourceFactory.setDataSourceFactory(RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true))); ++ mediaSourceFactory ++ .setDataSourceFactory(RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true))); + } + + player = new ExoPlayer.Builder(getContext(), renderersFactory) +@@ -772,7 +795,7 @@ public class ReactExoplayerView extends FrameLayout implements + player.setPlaybackParameters(params); + changeAudioOutput(this.audioOutput); + +- if(showNotificationControls) { ++ if (showNotificationControls) { + setupPlaybackService(); + } + } +@@ -784,8 +807,7 @@ public class ReactExoplayerView extends FrameLayout implements + Uri adTagUrl = adProps.getAdTagUrl(); + if (adTagUrl != null) { + // Create an AdsLoader. +- ImaAdsLoader.Builder imaLoaderBuilder = new ImaAdsLoader +- .Builder(themedReactContext) ++ ImaAdsLoader.Builder imaLoaderBuilder = new ImaAdsLoader.Builder(themedReactContext) + .setAdEventListener(this) + .setAdErrorListener(this); + +@@ -817,7 +839,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + try { +- // First check if there's a custom DRM manager registered through the plugin system ++ // First check if there's a custom DRM manager registered through the plugin ++ // system + DRMManagerSpec drmManager = ReactNativeVideoManager.Companion.getInstance().getDRMManager(); + if (drmManager == null) { + // If no custom manager is registered, use the default implementation +@@ -826,11 +849,13 @@ public class ReactExoplayerView extends FrameLayout implements + + DrmSessionManager drmSessionManager = drmManager.buildDrmSessionManager(uuid, drmProps); + if (drmSessionManager == null) { +- eventEmitter.onVideoError.invoke("Failed to build DRM session manager", new Exception("DRM session manager is null"), "3007"); ++ eventEmitter.onVideoError.invoke("Failed to build DRM session manager", ++ new Exception("DRM session manager is null"), "3007"); + } + + // Allow plugins to override the DrmSessionManager +- DrmSessionManager overriddenManager = ReactNativeVideoManager.Companion.getInstance().overrideDrmSessionManager(source, drmSessionManager); ++ DrmSessionManager overriddenManager = ReactNativeVideoManager.Companion.getInstance() ++ .overrideDrmSessionManager(source, drmSessionManager); + return overriddenManager != null ? overriddenManager : drmSessionManager; + } catch (UnsupportedDrmException ex) { + // Unsupported DRM exceptions are handled by the calling method +@@ -853,7 +878,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + /// init DRM + DrmSessionManager drmSessionManager = initializePlayerDrm(); +- if (drmSessionManager == null && runningSource.getDrmProps() != null && runningSource.getDrmProps().getDrmType() != null) { ++ if (drmSessionManager == null && runningSource.getDrmProps() != null ++ && runningSource.getDrmProps().getDrmType() != null) { + // Failed to initialize DRM session manager - cannot continue + DebugLog.e(TAG, "Failed to initialize DRM Session Manager Framework!"); + return; +@@ -910,7 +936,8 @@ public class ReactExoplayerView extends FrameLayout implements + } catch (UnsupportedDrmException e) { + int errorStringId = Util.SDK_INT < 18 ? R.string.error_drm_not_supported + : (e.reason == UnsupportedDrmException.REASON_UNSUPPORTED_SCHEME +- ? R.string.error_drm_unsupported_scheme : R.string.error_drm_unknown); ++ ? R.string.error_drm_unsupported_scheme ++ : R.string.error_drm_unknown); + eventEmitter.onVideoError.invoke(getResources().getString(errorStringId), e, "3003"); + } + } +@@ -955,7 +982,8 @@ public class ReactExoplayerView extends FrameLayout implements + if (playbackServiceBinder != null) { + playbackServiceBinder.getService().unregisterPlayer(player); + } +- } catch (Exception ignored) {} ++ } catch (Exception ignored) { ++ } + + playbackServiceBinder = null; + } +@@ -987,21 +1015,22 @@ public class ReactExoplayerView extends FrameLayout implements + + private void cleanupPlaybackService() { + try { +- if(player != null && playbackServiceBinder != null) { ++ if (player != null && playbackServiceBinder != null) { + playbackServiceBinder.getService().unregisterPlayer(player); + } + + playbackServiceBinder = null; + +- if(playbackServiceConnection != null) { ++ if (playbackServiceConnection != null) { + themedReactContext.unbindService(playbackServiceConnection); + } +- } catch(Exception e) { ++ } catch (Exception e) { + DebugLog.w(TAG, "Cloud not cleanup playback service"); + } + } + +- private MediaSource buildMediaSource(Uri uri, String overrideExtension, DrmSessionManager drmSessionManager, long cropStartMs, long cropEndMs) { ++ private MediaSource buildMediaSource(Uri uri, String overrideExtension, DrmSessionManager drmSessionManager, ++ long cropStartMs, long cropEndMs) { + if (uri == null) { + throw new IllegalStateException("Invalid video uri"); + } +@@ -1033,12 +1062,12 @@ public class ReactExoplayerView extends FrameLayout implements + Uri adTagUrl = source.getAdsProps().getAdTagUrl(); + if (adTagUrl != null) { + mediaItemBuilder.setAdsConfiguration( +- new MediaItem.AdsConfiguration.Builder(adTagUrl).build() +- ); ++ new MediaItem.AdsConfiguration.Builder(adTagUrl).build()); + } + } + +- MediaItem.LiveConfiguration.Builder liveConfiguration = ConfigurationUtils.getLiveConfiguration(source.getBufferConfig()); ++ MediaItem.LiveConfiguration.Builder liveConfiguration = ConfigurationUtils ++ .getLiveConfiguration(source.getBufferConfig()); + mediaItemBuilder.setLiveConfiguration(liveConfiguration.build()); + + MediaSource.Factory mediaSourceFactory; +@@ -1050,29 +1079,26 @@ public class ReactExoplayerView extends FrameLayout implements + drmProvider = new DefaultDrmSessionManagerProvider(); + } + +- + switch (type) { + case CONTENT_TYPE_SS: +- if(!BuildConfig.USE_EXOPLAYER_SMOOTH_STREAMING) { ++ if (!BuildConfig.USE_EXOPLAYER_SMOOTH_STREAMING) { + DebugLog.e("Exo Player Exception", "Smooth Streaming is not enabled!"); + throw new IllegalStateException("Smooth Streaming is not enabled!"); + } + + mediaSourceFactory = new SsMediaSource.Factory( + new DefaultSsChunkSource.Factory(mediaDataSourceFactory), +- buildDataSourceFactory(false) +- ); ++ buildDataSourceFactory(false)); + break; + case CONTENT_TYPE_DASH: +- if(!BuildConfig.USE_EXOPLAYER_DASH) { ++ if (!BuildConfig.USE_EXOPLAYER_DASH) { + DebugLog.e("Exo Player Exception", "DASH is not enabled!"); + throw new IllegalStateException("DASH is not enabled!"); + } + + mediaSourceFactory = new DashMediaSource.Factory( + new DefaultDashChunkSource.Factory(mediaDataSourceFactory), +- buildDataSourceFactory(false) +- ); ++ buildDataSourceFactory(false)); + break; + case CONTENT_TYPE_HLS: + if (!BuildConfig.USE_EXOPLAYER_HLS) { +@@ -1087,13 +1113,14 @@ public class ReactExoplayerView extends FrameLayout implements + } + + mediaSourceFactory = new HlsMediaSource.Factory( +- dataSourceFactory +- ).setAllowChunklessPreparation(source.getTextTracksAllowChunklessPreparation()); ++ dataSourceFactory) ++ .setAllowChunklessPreparation(source.getTextTracksAllowChunklessPreparation()); + break; + case CONTENT_TYPE_OTHER: + if ("asset".equals(uri.getScheme())) { + try { +- DataSource.Factory assetDataSourceFactory = DataSourceUtil.buildAssetDataSourceFactory(themedReactContext, uri); ++ DataSource.Factory assetDataSourceFactory = DataSourceUtil ++ .buildAssetDataSourceFactory(themedReactContext, uri); + mediaSourceFactory = new ProgressiveMediaSource.Factory(assetDataSourceFactory); + } catch (Exception e) { + throw new IllegalStateException("cannot open input file:" + uri); +@@ -1101,12 +1128,10 @@ public class ReactExoplayerView extends FrameLayout implements + } else if ("file".equals(uri.getScheme()) || + !useCache) { + mediaSourceFactory = new ProgressiveMediaSource.Factory( +- mediaDataSourceFactory +- ); ++ mediaDataSourceFactory); + } else { + mediaSourceFactory = new ProgressiveMediaSource.Factory( +- RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true)) +- ); ++ RNVSimpleCache.INSTANCE.getCacheFactory(buildHttpDataSourceFactory(true))); + + } + break; +@@ -1125,20 +1150,19 @@ public class ReactExoplayerView extends FrameLayout implements + + if (cmcdConfigurationFactory != null) { + mediaSourceFactory = mediaSourceFactory.setCmcdConfigurationFactory( +- cmcdConfigurationFactory::createCmcdConfiguration +- ); ++ cmcdConfigurationFactory::createCmcdConfiguration); + } + + mediaSourceFactory = Objects.requireNonNullElse( + ReactNativeVideoManager.Companion.getInstance() + .overrideMediaSourceFactory(source, mediaSourceFactory, mediaDataSourceFactory), +- mediaSourceFactory +- ); ++ mediaSourceFactory); + + mediaItemBuilder.setStreamKeys(streamKeys); + + @Nullable +- final MediaItem.Builder overridenMediaItemBuilder = ReactNativeVideoManager.Companion.getInstance().overrideMediaItemBuilder(source, mediaItemBuilder); ++ final MediaItem.Builder overridenMediaItemBuilder = ReactNativeVideoManager.Companion.getInstance() ++ .overrideMediaItemBuilder(source, mediaItemBuilder); + + MediaItem mediaItem = overridenMediaItemBuilder != null + ? overridenMediaItemBuilder.build() +@@ -1147,8 +1171,7 @@ public class ReactExoplayerView extends FrameLayout implements + MediaSource mediaSource = mediaSourceFactory + .setDrmSessionManagerProvider(drmProvider) + .setLoadErrorHandlingPolicy( +- config.buildLoadErrorHandlingPolicy(source.getMinLoadRetryCount()) +- ) ++ config.buildLoadErrorHandlingPolicy(source.getMinLoadRetryCount())) + .createMediaSource(mediaItem); + + if (cropStartMs >= 0 && cropEndMs >= 0) { +@@ -1183,7 +1206,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + } + +- MediaItem.SubtitleConfiguration.Builder configBuilder = new MediaItem.SubtitleConfiguration.Builder(track.getUri()) ++ MediaItem.SubtitleConfiguration.Builder configBuilder = new MediaItem.SubtitleConfiguration.Builder( ++ track.getUri()) + .setId(trackId) + .setMimeType(track.getType()) + .setLabel(label) +@@ -1194,7 +1218,8 @@ public class ReactExoplayerView extends FrameLayout implements + configBuilder.setLanguage(track.getLanguage()); + } + +- // Set selection flags - make first track default if no specific track is selected ++ // Set selection flags - make first track default if no specific track is ++ // selected + if (trackIndex == 0 && (textTrackType == null || "disabled".equals(textTrackType))) { + configBuilder.setSelectionFlags(C.SELECTION_FLAG_DEFAULT); + } else { +@@ -1204,10 +1229,12 @@ public class ReactExoplayerView extends FrameLayout implements + MediaItem.SubtitleConfiguration subtitleConfiguration = configBuilder.build(); + subtitleConfigurations.add(subtitleConfiguration); + +- DebugLog.d(TAG, "Created subtitle configuration: " + trackId + " - " + label + " (" + track.getType() + ")"); ++ DebugLog.d(TAG, ++ "Created subtitle configuration: " + trackId + " - " + label + " (" + track.getType() + ")"); + trackIndex++; + } catch (Exception e) { +- DebugLog.e(TAG, "Error creating SubtitleConfiguration for URI " + track.getUri() + ": " + e.getMessage()); ++ DebugLog.e(TAG, ++ "Error creating SubtitleConfiguration for URI " + track.getUri() + ": " + e.getMessage()); + } + } + +@@ -1220,7 +1247,7 @@ public class ReactExoplayerView extends FrameLayout implements + + private void releasePlayer() { + if (player != null) { +- if(playbackServiceBinder != null) { ++ if (playbackServiceBinder != null) { + playbackServiceBinder.getService().unregisterPlayer(player); + themedReactContext.unbindService(playbackServiceConnection); + } +@@ -1276,7 +1303,8 @@ public class ReactExoplayerView extends FrameLayout implements + case AudioManager.AUDIOFOCUS_LOSS: + view.hasAudioFocus = false; + view.eventEmitter.onAudioFocusChanged.invoke(false); +- // FIXME this pause can cause issue if content doesn't have pause capability (can happen on live channel) ++ // FIXME this pause can cause issue if content doesn't have pause capability ++ // (can happen on live channel) + if (activity != null) { + activity.runOnUiThread(view::pausePlayback); + } +@@ -1297,16 +1325,12 @@ public class ReactExoplayerView extends FrameLayout implements + if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { + // Lower the volume + if (!view.muted) { +- activity.runOnUiThread(() -> +- view.player.setVolume(view.audioVolume * 0.8f) +- ); ++ activity.runOnUiThread(() -> view.player.setVolume(view.audioVolume * 0.8f)); + } + } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) { + // Raise it back to normal + if (!view.muted) { +- activity.runOnUiThread(() -> +- view.player.setVolume(view.audioVolume * 1) +- ); ++ activity.runOnUiThread(() -> view.player.setVolume(view.audioVolume * 1)); + } + } + } +@@ -1379,7 +1403,8 @@ public class ReactExoplayerView extends FrameLayout implements + /** + * Returns a new DataSource factory. + * +- * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener to the new ++ * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener ++ * to the new + * DataSource factory. + * @return A new DataSource factory. + */ +@@ -1391,12 +1416,14 @@ public class ReactExoplayerView extends FrameLayout implements + /** + * Returns a new HttpDataSource factory. + * +- * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener to the new +- * DataSource factory. ++ * @param useBandwidthMeter Whether to set {@link #bandwidthMeter} as a listener ++ * to the new ++ * DataSource factory. + * @return A new HttpDataSource factory. + */ + private HttpDataSource.Factory buildHttpDataSourceFactory(boolean useBandwidthMeter) { +- return DataSourceUtil.getDefaultHttpDataSourceFactory(this.themedReactContext, useBandwidthMeter ? bandwidthMeter : null, source.getHeaders()); ++ return DataSourceUtil.getDefaultHttpDataSourceFactory(this.themedReactContext, ++ useBandwidthMeter ? bandwidthMeter : null, source.getHeaders()); + } + + // AudioBecomingNoisyListener implementation +@@ -1413,11 +1440,13 @@ public class ReactExoplayerView extends FrameLayout implements + + @Override + public void onEvents(@NonNull Player player, Player.Events events) { +- if (events.contains(Player.EVENT_PLAYBACK_STATE_CHANGED) || events.contains(Player.EVENT_PLAY_WHEN_READY_CHANGED)) { ++ if (events.contains(Player.EVENT_PLAYBACK_STATE_CHANGED) ++ || events.contains(Player.EVENT_PLAY_WHEN_READY_CHANGED)) { + int playbackState = player.getPlaybackState(); + boolean playWhenReady = player.getPlayWhenReady(); + String text = "onStateChanged: playWhenReady=" + playWhenReady + ", playbackState="; +- eventEmitter.onPlaybackRateChange.invoke(playWhenReady && playbackState == ExoPlayer.STATE_READY ? 1.0f : 0.0f); ++ eventEmitter.onPlaybackRateChange ++ .invoke(playWhenReady && playbackState == ExoPlayer.STATE_READY ? 1.0f : 0.0f); + switch (playbackState) { + case Player.STATE_IDLE: + text += "idle"; +@@ -1474,9 +1503,11 @@ public class ReactExoplayerView extends FrameLayout implements + } + + /** +- * The progress message handler will duplicate recursions of the onProgressMessage handler +- * on change of player state from any state to STATE_READY with playWhenReady is true (when +- * the video is not paused). This clears all existing messages. ++ * The progress message handler will duplicate recursions of the ++ * onProgressMessage handler ++ * on change of player state from any state to STATE_READY with playWhenReady is ++ * true (when ++ * the video is not paused). This clears all existing messages. + */ + private void clearProgressMessageHandler() { + progressHandler.removeMessages(SHOW_PROGRESS); +@@ -1495,7 +1526,8 @@ public class ReactExoplayerView extends FrameLayout implements + setSelectedTextTrack(textTrackType, textTrackValue); + } + Format videoFormat = player.getVideoFormat(); +- boolean isRotatedContent = videoFormat != null && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); ++ boolean isRotatedContent = videoFormat != null ++ && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270); + int width = videoFormat != null ? (isRotatedContent ? videoFormat.height : videoFormat.width) : 0; + int height = videoFormat != null ? (isRotatedContent ? videoFormat.width : videoFormat.height) : 0; + String trackId = videoFormat != null ? videoFormat.id : null; +@@ -1504,18 +1536,19 @@ public class ReactExoplayerView extends FrameLayout implements + long duration = player.getDuration(); + long currentPosition = player.getCurrentPosition(); + ArrayList audioTracks = getAudioTrackInfo(); +- ArrayList textTracks = getTextTrackInfo(); ++ ArrayList textTracks = getTextTrackInfo(); + + if (source.getContentStartTime() != -1) { + ExecutorService es = Executors.newSingleThreadExecutor(); + es.execute(() -> { +- // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread and notify the player only when we're done ++ // To prevent ANRs caused by getVideoTrackInfo we run this on a different thread ++ // and notify the player only when we're done + ArrayList videoTracks = getVideoTrackInfoFromManifest(); + if (videoTracks != null) { + isUsingContentResolution = true; + } + eventEmitter.onVideoLoad.invoke(duration, currentPosition, width, height, +- audioTracks, textTracks, videoTracks, trackId ); ++ audioTracks, textTracks, videoTracks, trackId); + + updateSubtitleButtonVisibility(); + }); +@@ -1533,9 +1566,9 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private static boolean isTrackSelected(TrackSelection selection, TrackGroup group, +- int trackIndex){ ++ int trackIndex) { + return selection != null && selection.getTrackGroup() == group +- && selection.indexOf( trackIndex ) != C.INDEX_UNSET; ++ && selection.indexOf(trackIndex) != C.INDEX_UNSET; + } + + private ArrayList getAudioTrackInfo() { +@@ -1553,7 +1586,6 @@ public class ReactExoplayerView extends FrameLayout implements + TrackSelectionArray selectionArray = player.getCurrentTrackSelections(); + TrackSelection selection = selectionArray.get(C.TRACK_TYPE_AUDIO); + +- + for (int groupIndex = 0; groupIndex < groups.length; ++groupIndex) { + TrackGroup group = groups.get(groupIndex); + Format format = group.getFormat(0); +@@ -1579,7 +1611,8 @@ public class ReactExoplayerView extends FrameLayout implements + videoTrack.setHeight(format.height == Format.NO_VALUE ? 0 : format.height); + videoTrack.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate); + videoTrack.setRotation(format.rotationDegrees); +- if (format.codecs != null) videoTrack.setCodecs(format.codecs); ++ if (format.codecs != null) ++ videoTrack.setCodecs(format.codecs); + videoTrack.setTrackId(format.id == null ? String.valueOf(trackIndex) : format.id); + videoTrack.setIndex(trackIndex); + return videoTrack; +@@ -1616,7 +1649,8 @@ public class ReactExoplayerView extends FrameLayout implements + return this.getVideoTrackInfoFromManifest(0); + } + +- // We need retry count to in case where minefest request fails from poor network conditions ++ // We need retry count to in case where minefest request fails from poor network ++ // conditions + @WorkerThread + private ArrayList getVideoTrackInfoFromManifest(int retryCount) { + ExecutorService es = Executors.newSingleThreadExecutor(); +@@ -1631,18 +1665,20 @@ public class ReactExoplayerView extends FrameLayout implements + + public ArrayList call() { + ArrayList videoTracks = new ArrayList<>(); +- try { ++ try { + DashManifest manifest = DashUtil.loadManifest(this.ds, this.uri); + int periodCount = manifest.getPeriodCount(); + for (int i = 0; i < periodCount; i++) { + Period period = manifest.getPeriod(i); +- for (int adaptationIndex = 0; adaptationIndex < period.adaptationSets.size(); adaptationIndex++) { ++ for (int adaptationIndex = 0; adaptationIndex < period.adaptationSets ++ .size(); adaptationIndex++) { + AdaptationSet adaptation = period.adaptationSets.get(adaptationIndex); + if (adaptation.type != C.TRACK_TYPE_VIDEO) { + continue; + } + boolean hasFoundContentPeriod = false; +- for (int representationIndex = 0; representationIndex < adaptation.representations.size(); representationIndex++) { ++ for (int representationIndex = 0; representationIndex < adaptation.representations ++ .size(); representationIndex++) { + Representation representation = adaptation.representations.get(representationIndex); + Format format = representation.format; + if (isFormatSupported(format)) { +@@ -1650,7 +1686,8 @@ public class ReactExoplayerView extends FrameLayout implements + break; + } + hasFoundContentPeriod = true; +- VideoTrack videoTrack = exoplayerVideoTrackToGenericVideoTrack(format, representationIndex); ++ VideoTrack videoTrack = exoplayerVideoTrackToGenericVideoTrack(format, ++ representationIndex); + videoTracks.add(videoTrack); + } + } +@@ -1680,12 +1717,16 @@ public class ReactExoplayerView extends FrameLayout implements + return null; + } + +- private Track exoplayerTrackToGenericTrack(Format format, int trackIndex, TrackSelection selection, TrackGroup group) { ++ private Track exoplayerTrackToGenericTrack(Format format, int trackIndex, TrackSelection selection, ++ TrackGroup group) { + Track track = new Track(); + track.setIndex(trackIndex); +- if (format.sampleMimeType != null) track.setMimeType(format.sampleMimeType); +- if (format.language != null) track.setLanguage(format.language); +- if (format.label != null) track.setTitle(format.label); ++ if (format.sampleMimeType != null) ++ track.setMimeType(format.sampleMimeType); ++ if (format.language != null) ++ track.setLanguage(format.language); ++ if (format.label != null) ++ track.setTitle(format.label); + track.setSelected(isTrackSelected(selection, group, trackIndex)); + return track; + } +@@ -1755,7 +1796,8 @@ public class ReactExoplayerView extends FrameLayout implements + track.setLanguage(format.language != null ? format.language : "unknown"); + track.setTitle(format.label != null ? format.label : "Track " + (groupIndex + 1)); + track.setSelected(false); // Don't report selection status - let PlayerView handle it +- if (format.sampleMimeType != null) track.setMimeType(format.sampleMimeType); ++ if (format.sampleMimeType != null) ++ track.setMimeType(format.sampleMimeType); + track.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate); + + tracks.add(track); +@@ -1786,8 +1828,10 @@ public class ReactExoplayerView extends FrameLayout implements + + Track textTrack = new Track(); + textTrack.setIndex(textTracks.size()); +- if (format.sampleMimeType != null) textTrack.setMimeType(format.sampleMimeType); +- if (format.language != null) textTrack.setLanguage(format.language); ++ if (format.sampleMimeType != null) ++ textTrack.setMimeType(format.sampleMimeType); ++ if (format.language != null) ++ textTrack.setLanguage(format.language); + + boolean isExternal = format.id != null && format.id.startsWith("external-subtitle-"); + +@@ -1821,28 +1865,34 @@ public class ReactExoplayerView extends FrameLayout implements + } + + @Override +- public void onPositionDiscontinuity(@NonNull Player.PositionInfo oldPosition, @NonNull Player.PositionInfo newPosition, @Player.DiscontinuityReason int reason) { ++ public void onPositionDiscontinuity(@NonNull Player.PositionInfo oldPosition, ++ @NonNull Player.PositionInfo newPosition, @Player.DiscontinuityReason int reason) { + if (reason == Player.DISCONTINUITY_REASON_SEEK) { + isSeeking = true; + seekPosition = newPosition.positionMs; + if (isUsingContentResolution) { +- // We need to update the selected track to make sure that it still matches user selection if track list has changed in this period ++ // We need to update the selected track to make sure that it still matches user ++ // selection if track list has changed in this period + setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); + } + } + + if (playerNeedsSource) { +- // This will only occur if the user has performed a seek whilst in the error state. Update the +- // resume position so that if the user then retries, playback will resume from the position to ++ // This will only occur if the user has performed a seek whilst in the error ++ // state. Update the ++ // resume position so that if the user then retries, playback will resume from ++ // the position to + // which they seeked. + updateResumePosition(); + } + if (isUsingContentResolution) { +- // Discontinuity events might have a different track list so we update the selected track ++ // Discontinuity events might have a different track list so we update the ++ // selected track + setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); + selectTrackWhenReady = true; + } +- // When repeat is turned on, reaching the end of the video will not cause a state change ++ // When repeat is turned on, reaching the end of the video will not cause a ++ // state change + // so we need to explicitly detect it. + if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION + && player.getRepeatMode() == Player.REPEAT_MODE_ONE) { +@@ -1890,15 +1940,17 @@ public class ReactExoplayerView extends FrameLayout implements + updateSubtitleButtonVisibility(); + } + +- + private boolean hasBuiltInTextTracks() { +- if (player == null || trackSelector == null) return false; ++ if (player == null || trackSelector == null) ++ return false; + + MappingTrackSelector.MappedTrackInfo info = trackSelector.getCurrentMappedTrackInfo(); +- if (info == null) return false; ++ if (info == null) ++ return false; + + int textRendererIndex = getTrackRendererIndex(C.TRACK_TYPE_TEXT); +- if (textRendererIndex == C.INDEX_UNSET) return false; ++ if (textRendererIndex == C.INDEX_UNSET) ++ return false; + + TrackGroupArray groups = info.getTrackGroups(textRendererIndex); + +@@ -1918,11 +1970,12 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private void updateSubtitleButtonVisibility() { +- if (exoPlayerView == null) return; ++ if (exoPlayerView == null) ++ return; + + boolean hasTextTracks = (source.getSideLoadedTextTracks() != null && +- !source.getSideLoadedTextTracks().getTracks().isEmpty()) || +- hasBuiltInTextTracks(); ++ !source.getSideLoadedTextTracks().getTracks().isEmpty()) || ++ hasBuiltInTextTracks(); + + exoPlayerView.setShowSubtitleButton(hasTextTracks); + } +@@ -1942,7 +1995,8 @@ public class ReactExoplayerView extends FrameLayout implements + if (isPlaying && isSeeking) { + eventEmitter.onVideoSeek.invoke(player.getCurrentPosition(), seekPosition); + } +- PictureInPictureUtil.applyPlayingStatus(themedReactContext, pictureInPictureParamsBuilder, pictureInPictureReceiver, !isPlaying); ++ PictureInPictureUtil.applyPlayingStatus(themedReactContext, pictureInPictureParamsBuilder, ++ pictureInPictureReceiver, !isPlaying); + eventEmitter.onVideoPlaybackStateChanged.invoke(isPlaying, isSeeking); + + if (isPlaying) { +@@ -1954,14 +2008,15 @@ public class ReactExoplayerView extends FrameLayout implements + public void onPlayerError(@NonNull PlaybackException e) { + String errorString = "ExoPlaybackException: " + PlaybackException.getErrorCodeName(e.errorCode); + String errorCode = "2" + e.errorCode; +- switch(e.errorCode) { ++ switch (e.errorCode) { + case PlaybackException.ERROR_CODE_DRM_DEVICE_REVOKED: + case PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED: + case PlaybackException.ERROR_CODE_DRM_PROVISIONING_FAILED: + case PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR: + case PlaybackException.ERROR_CODE_DRM_UNSPECIFIED: + if (!hasDrmFailed) { +- // When DRM fails to reach the app level certificate server it will fail with a source error so we assume that it is DRM related and try one more time ++ // When DRM fails to reach the app level certificate server it will fail with a ++ // source error so we assume that it is DRM related and try one more time + hasDrmFailed = true; + playerNeedsSource = true; + updateResumePosition(); +@@ -2043,14 +2098,16 @@ public class ReactExoplayerView extends FrameLayout implements + boolean isSourceEqual = source.isEquals(this.source); + hasDrmFailed = false; + this.source = source; +- final DataSource.Factory tmpMediaDataSourceFactory = +- DataSourceUtil.getDefaultDataSourceFactory(this.themedReactContext, bandwidthMeter, +- source.getHeaders()); ++ final DataSource.Factory tmpMediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory( ++ this.themedReactContext, bandwidthMeter, ++ source.getHeaders()); + + @Nullable +- final DataSource.Factory overriddenMediaDataSourceFactory = ReactNativeVideoManager.Companion.getInstance().overrideMediaDataSourceFactory(source, tmpMediaDataSourceFactory); ++ final DataSource.Factory overriddenMediaDataSourceFactory = ReactNativeVideoManager.Companion.getInstance() ++ .overrideMediaDataSourceFactory(source, tmpMediaDataSourceFactory); + +- this.mediaDataSourceFactory = Objects.requireNonNullElse(overriddenMediaDataSourceFactory, tmpMediaDataSourceFactory); ++ this.mediaDataSourceFactory = Objects.requireNonNullElse(overriddenMediaDataSourceFactory, ++ tmpMediaDataSourceFactory); + + if (source.getCmcdProps() != null) { + CMCDConfig cmcdConfig = new CMCDConfig(source.getCmcdProps()); +@@ -2069,6 +2126,7 @@ public class ReactExoplayerView extends FrameLayout implements + clearSrc(); + } + } ++ + public void clearSrc() { + if (source.getUri() != null) { + if (player != null) { +@@ -2117,7 +2175,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + public void disableTrack(int rendererIndex) { +- if (trackSelector == null) return; ++ if (trackSelector == null) ++ return; + + DefaultTrackSelector.Parameters disableParameters = trackSelector.getParameters() + .buildUpon() +@@ -2127,7 +2186,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private void selectTextTrackInternal(String type, String value) { +- if (player == null || trackSelector == null) return; ++ if (player == null || trackSelector == null) ++ return; + + DebugLog.d(TAG, "selectTextTrackInternal: type=" + type + ", value=" + value); + +@@ -2166,18 +2226,19 @@ public class ReactExoplayerView extends FrameLayout implements + + if (isMatch) { + TrackSelectionOverride override = new TrackSelectionOverride(group, +- java.util.Arrays.asList(trackIndex)); ++ java.util.Arrays.asList(trackIndex)); + parametersBuilder.addOverride(override); + trackFound = true; + break; + } + } +- if (trackFound) break; ++ if (trackFound) ++ break; + } + + if (!trackFound) { + DebugLog.w(TAG, "Text track not found for type=" + type + ", value=" + value + +- ". Keeping current selection."); ++ ". Keeping current selection."); + } + } + } +@@ -2198,7 +2259,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + public void setSelectedTrack(int trackType, String type, String value) { +- if (player == null || trackSelector == null) return; ++ if (player == null || trackSelector == null) ++ return; + + if (controls) { + return; +@@ -2272,9 +2334,11 @@ public class ReactExoplayerView extends FrameLayout implements + usingExactMatch = true; + break; + } else if (isUsingContentResolution) { +- // When using content resolution rather than ads, we need to try and find the closest match if there is no exact match ++ // When using content resolution rather than ads, we need to try and find the ++ // closest match if there is no exact match + if (closestFormat != null) { +- if ((format.bitrate > closestFormat.bitrate || format.height > closestFormat.height) && format.height < height) { ++ if ((format.bitrate > closestFormat.bitrate || format.height > closestFormat.height) ++ && format.height < height) { + // Higher quality match + closestFormat = format; + closestTrackIndex = j; +@@ -2285,7 +2349,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + } + } +- // This is a fallback if the new period contains only higher resolutions than the user has selected ++ // This is a fallback if the new period contains only higher resolutions than ++ // the user has selected + if (closestFormat == null && isUsingContentResolution && !usingExactMatch) { + // No close match found - so we pick the lowest quality + int minHeight = Integer.MAX_VALUE; +@@ -2308,8 +2373,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + } else if (trackType == C.TRACK_TYPE_TEXT && Util.SDK_INT > 18) { // Text default + // Use system settings if possible +- CaptioningManager captioningManager +- = (CaptioningManager)themedReactContext.getSystemService(Context.CAPTIONING_SERVICE); ++ CaptioningManager captioningManager = (CaptioningManager) themedReactContext ++ .getSystemService(Context.CAPTIONING_SERVICE); + if (captioningManager != null && captioningManager.isEnabled()) { + groupIndex = getGroupIndexForDefaultLocale(groups); + } +@@ -2338,7 +2403,7 @@ public class ReactExoplayerView extends FrameLayout implements + // With only one tracks we can't remove any tracks so attempt to play it anyway + tracks = allTracks; + } else { +- tracks = new ArrayList<>(supportedFormatLength + 1); ++ tracks = new ArrayList<>(supportedFormatLength + 1); + for (int k = 0; k < allTracks.size(); k++) { + Format format = group.getFormat(k); + if (isFormatSupported(format)) { +@@ -2364,7 +2429,8 @@ public class ReactExoplayerView extends FrameLayout implements + .setRendererDisabled(rendererIndex, false); + + // Clear existing overrides for this track type to avoid conflicts +- // But be careful with audio tracks - don't clear unless explicitly selecting a different track ++ // But be careful with audio tracks - don't clear unless explicitly selecting a ++ // different track + if (trackType != C.TRACK_TYPE_AUDIO || !type.equals("default")) { + selectionParameters.clearOverridesOfType(selectionOverride.getType()); + } +@@ -2380,7 +2446,7 @@ public class ReactExoplayerView extends FrameLayout implements + selectionParameters.setForceHighestSupportedBitrate(false); + selectionParameters.setForceLowestBitrate(false); + DebugLog.d(TAG, "Audio track selection: group=" + groupIndex + ", tracks=" + tracks + +- ", override=" + selectionOverride); ++ ", override=" + selectionOverride); + } + + trackSelector.setParameters(selectionParameters.build()); +@@ -2411,7 +2477,7 @@ public class ReactExoplayerView extends FrameLayout implements + } + + private int getGroupIndexForDefaultLocale(TrackGroupArray groups) { +- if (groups.length == 0){ ++ if (groups.length == 0) { + return C.INDEX_UNSET; + } + +@@ -2432,7 +2498,8 @@ public class ReactExoplayerView extends FrameLayout implements + public void setSelectedVideoTrack(String type, String value) { + videoTrackType = type; + videoTrackValue = value; +- if (!loadVideoStarted) setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); ++ if (!loadVideoStarted) ++ setSelectedTrack(C.TRACK_TYPE_VIDEO, videoTrackType, videoTrackValue); + } + + public void setSelectedAudioTrack(String type, String value) { +@@ -2463,9 +2530,11 @@ public class ReactExoplayerView extends FrameLayout implements + } + + public void setEnterPictureInPictureOnLeave(boolean enterPictureInPictureOnLeave) { +- this.enterPictureInPictureOnLeave = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && enterPictureInPictureOnLeave; ++ this.enterPictureInPictureOnLeave = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ++ && enterPictureInPictureOnLeave; + if (player != null) { +- PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, this.enterPictureInPictureOnLeave); ++ PictureInPictureUtil.applyAutoEnterEnabled(themedReactContext, pictureInPictureParamsBuilder, ++ this.enterPictureInPictureOnLeave); + } + } + +@@ -2473,12 +2542,14 @@ public class ReactExoplayerView extends FrameLayout implements + eventEmitter.onPictureInPictureStatusChanged.invoke(isInPictureInPicture); + + if (fullScreenPlayerView != null && fullScreenPlayerView.isShowing()) { +- if (isInPictureInPicture) fullScreenPlayerView.hideWithoutPlayer(); ++ if (isInPictureInPicture) ++ fullScreenPlayerView.hideWithoutPlayer(); + return; + } + + Activity currentActivity = themedReactContext.getCurrentActivity(); +- if (currentActivity == null) return; ++ if (currentActivity == null) ++ return; + + View decorView = currentActivity.getWindow().getDecorView(); + ViewGroup rootView = decorView.findViewById(android.R.id.content); +@@ -2488,7 +2559,7 @@ public class ReactExoplayerView extends FrameLayout implements + LayoutParams.MATCH_PARENT); + + if (isInPictureInPicture) { +- ViewGroup parent = (ViewGroup)exoPlayerView.getParent(); ++ ViewGroup parent = (ViewGroup) exoPlayerView.getParent(); + if (parent != null) { + parent.removeView(exoPlayerView); + } +@@ -2514,10 +2585,12 @@ public class ReactExoplayerView extends FrameLayout implements + public void enterPictureInPictureMode() { + PictureInPictureParams _pipParams = null; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +- ArrayList actions = PictureInPictureUtil.getPictureInPictureActions(themedReactContext, isPaused, pictureInPictureReceiver); ++ ArrayList actions = PictureInPictureUtil.getPictureInPictureActions(themedReactContext, ++ isPaused, pictureInPictureReceiver); + pictureInPictureParamsBuilder.setActions(actions); + if (player.getPlaybackState() == Player.STATE_READY) { +- pictureInPictureParamsBuilder.setAspectRatio(PictureInPictureUtil.calcPictureInPictureAspectRatio(player)); ++ pictureInPictureParamsBuilder ++ .setAspectRatio(PictureInPictureUtil.calcPictureInPictureAspectRatio(player)); + } + _pipParams = pictureInPictureParamsBuilder.build(); + } +@@ -2526,13 +2599,15 @@ public class ReactExoplayerView extends FrameLayout implements + + public void exitPictureInPictureMode() { + Activity currentActivity = themedReactContext.getCurrentActivity(); +- if (currentActivity == null) return; ++ if (currentActivity == null) ++ return; + + View decorView = currentActivity.getWindow().getDecorView(); + ViewGroup rootView = decorView.findViewById(android.R.id.content); + + if (!rootViewChildrenOriginalVisibility.isEmpty()) { +- if (exoPlayerView.getParent().equals(rootView)) rootView.removeView(exoPlayerView); ++ if (exoPlayerView.getParent().equals(rootView)) ++ rootView.removeView(exoPlayerView); + for (int i = 0; i < rootView.getChildCount(); i++) { + rootView.getChildAt(i).setVisibility(rootViewChildrenOriginalVisibility.get(i)); + } +@@ -2630,7 +2705,7 @@ public class ReactExoplayerView extends FrameLayout implements + + if (playbackServiceConnection == null && showNotificationControls) { + setupPlaybackService(); +- } else if(!showNotificationControls && playbackServiceConnection != null) { ++ } else if (!showNotificationControls && playbackServiceConnection != null) { + cleanupPlaybackService(); + } + } +@@ -2659,12 +2734,13 @@ public class ReactExoplayerView extends FrameLayout implements + } + + if (isFullscreen) { +- fullScreenPlayerView = new FullScreenPlayerView(getContext(), exoPlayerView, this, null, new OnBackPressedCallback(true) { +- @Override +- public void handleOnBackPressed() { +- setFullscreen(false); +- } +- }, controlsConfig); ++ fullScreenPlayerView = new FullScreenPlayerView(getContext(), exoPlayerView, this, null, ++ new OnBackPressedCallback(true) { ++ @Override ++ public void handleOnBackPressed() { ++ setFullscreen(false); ++ } ++ }, controlsConfig); + eventEmitter.onVideoFullscreenPlayerWillPresent.invoke(); + if (fullScreenPlayerView != null) { + fullScreenPlayerView.show(); +@@ -2701,7 +2777,8 @@ public class ReactExoplayerView extends FrameLayout implements + } + + @Override +- public void onDrmSessionManagerError(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId, @NonNull Exception e) { ++ public void onDrmSessionManagerError(int windowIndex, MediaSource.MediaPeriodId mediaPeriodId, ++ @NonNull Exception e) { + DebugLog.d("DRM Info", "onDrmSessionManagerError"); + eventEmitter.onVideoError.invoke("onDrmSessionManagerError", e, "3002"); + } +@@ -2719,7 +2796,7 @@ public class ReactExoplayerView extends FrameLayout implements + /** + * Handling controls prop + * +- * @param controls Controls prop, if true enable controls, if false disable them ++ * @param controls Controls prop, if true enable controls, if false disable them + */ + public void setControls(boolean controls) { + this.controls = controls; +@@ -2728,7 +2805,7 @@ public class ReactExoplayerView extends FrameLayout implements + // Additional configuration for proper touch handling + if (controls) { + exoPlayerView.setControllerAutoShow(true); +- exoPlayerView.setControllerHideOnTouch(true); // Show controls on touch, don't hide ++ exoPlayerView.setControllerHideOnTouch(true); // Show controls on touch, don't hide + exoPlayerView.setControllerShowTimeoutMs(5000); + } + } +@@ -2761,8 +2838,7 @@ public class ReactExoplayerView extends FrameLayout implements + Map errMap = Map.of( + "message", error.getMessage(), + "code", String.valueOf(error.getErrorCode()), +- "type", String.valueOf(error.getErrorType()) +- ); ++ "type", String.valueOf(error.getErrorType())); + eventEmitter.onReceiveAdEvent.invoke("ERROR", errMap); + + handleDaiBackupStream(); +@@ -2796,10 +2872,10 @@ public class ReactExoplayerView extends FrameLayout implements + * @return The configured IMA server-side ad insertion AdsLoader + */ + private ImaServerSideAdInsertionMediaSource.AdsLoader createAdsLoader() { +- ImaServerSideAdInsertionMediaSource.AdsLoader.Builder adsLoaderBuilder = +- new ImaServerSideAdInsertionMediaSource.AdsLoader.Builder(getContext(), exoPlayerView.getPlayerView()) +- .setAdEventListener(this) +- .setAdErrorListener(this); ++ ImaServerSideAdInsertionMediaSource.AdsLoader.Builder adsLoaderBuilder = new ImaServerSideAdInsertionMediaSource.AdsLoader.Builder( ++ getContext(), exoPlayerView.getPlayerView()) ++ .setAdEventListener(this) ++ .setAdErrorListener(this); + + return adsLoaderBuilder.build(); + } +@@ -2815,8 +2891,8 @@ public class ReactExoplayerView extends FrameLayout implements + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(getContext()); + DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(dataSourceFactory); + +- ImaServerSideAdInsertionMediaSource.Factory adsMediaSourceFactory = +- new ImaServerSideAdInsertionMediaSource.Factory(daiAdsLoader, mediaSourceFactory); ++ ImaServerSideAdInsertionMediaSource.Factory adsMediaSourceFactory = new ImaServerSideAdInsertionMediaSource.Factory( ++ daiAdsLoader, mediaSourceFactory); + + mediaSourceFactory.setServerSideAdInsertionMediaSourceFactory(adsMediaSourceFactory); + +@@ -2850,7 +2926,8 @@ public class ReactExoplayerView extends FrameLayout implements + /** + * Requests a DAI stream from Google IMA using the ExoPlayer IMA extension. + * +- * Builds an SSAI URI based on the provided parameters and sets it on the player. ++ * Builds an SSAI URI based on the provided parameters and sets it on the ++ * player. + * Supports both VOD (contentSourceId + videoId) and Live (assetKey) streams. + * + * @param runningSource The source containing DAI properties +@@ -2883,7 +2960,8 @@ public class ReactExoplayerView extends FrameLayout implements + .build() + .buildUpon(); + } else { +- throw new IllegalArgumentException("Either assetKey (for live) or contentSourceId+videoId (for VOD) must be provided"); ++ throw new IllegalArgumentException( ++ "Either assetKey (for live) or contentSourceId+videoId (for VOD) must be provided"); + } + + Map adTagParameters = adsProps.getAdTagParameters(); +@@ -2906,7 +2984,8 @@ public class ReactExoplayerView extends FrameLayout implements + /** + * Handles fallback to backup stream when DAI stream fails. + * +- * If a backup stream URI is available in the DAI properties, it cleans up DAI resources ++ * If a backup stream URI is available in the DAI properties, it cleans up DAI ++ * resources + * and switches to the backup stream. + * + * @return true if backup stream was successfully used, false otherwise diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index f0a91093..c7d3c697 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -761,7 +761,7 @@ const MainTabs = () => { bottom: 0, left: 0, right: 0, - height: Platform.OS === 'android' ? 70 + insets.bottom : 85 + insets.bottom, + height: Platform.OS === 'android' ? 70 : 85 + insets.bottom, backgroundColor: 'transparent', overflow: 'hidden', }}> @@ -811,7 +811,7 @@ const MainTabs = () => { + <> - + ); }; From a4548c69e9b9fc3b8a009c6bcc83ed1d220011c0 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 15:59:13 +0530 Subject: [PATCH 23/58] added inbuit update downloader for android --- App.tsx | 45 ++++++++- android/app/src/main/AndroidManifest.xml | 1 + src/components/MajorUpdateOverlay.tsx | 21 ++++- src/hooks/useGithubMajorUpdate.ts | 7 +- src/screens/UpdateScreen.tsx | 56 +++++++++++- src/services/androidUpdateService.ts | 111 +++++++++++++++++++++++ src/services/githubReleaseService.ts | 16 +++- 7 files changed, 244 insertions(+), 13 deletions(-) create mode 100644 src/services/androidUpdateService.ts diff --git a/App.tsx b/App.tsx index 5ba73d2e..4be43b96 100644 --- a/App.tsx +++ b/App.tsx @@ -11,7 +11,8 @@ import { StyleSheet, I18nManager, Platform, - LogBox + LogBox, + Linking } from 'react-native'; import './src/i18n'; // Initialize i18n import { NavigationContainer } from '@react-navigation/native'; @@ -104,6 +105,45 @@ const ThemedApp = () => { // GitHub major/minor release overlay const githubUpdate = useGithubMajorUpdate(); + const [isDownloadingGitHub, setIsDownloadingGitHub] = useState(false); + const [downloadProgress, setDownloadProgress] = useState(0); + + const handleGithubUpdateAction = async () => { + console.log('handleGithubUpdateAction triggered. Release data exists:', !!githubUpdate.releaseData); + if (Platform.OS === 'android') { + setIsDownloadingGitHub(true); + setDownloadProgress(0); + try { + const { default: AndroidUpdateService } = await import('./src/services/androidUpdateService'); + if (githubUpdate.releaseData) { + console.log('Calling AndroidUpdateService with:', githubUpdate.releaseData.tag_name); + const success = await AndroidUpdateService.downloadAndInstallUpdate( + githubUpdate.releaseData, + (progress) => { + setDownloadProgress(progress); + } + ); + console.log('AndroidUpdateService result:', success); + if (!success) { + console.log('Update failed, falling back to browser'); + // If download fails or no APK found, fallback to browser + if (githubUpdate.releaseUrl) Linking.openURL(githubUpdate.releaseUrl); + } + } else if (githubUpdate.releaseUrl) { + console.log('No release data, falling back to browser'); + Linking.openURL(githubUpdate.releaseUrl); + } + } catch (error) { + console.error('Failed to update via Android service', error); + if (githubUpdate.releaseUrl) Linking.openURL(githubUpdate.releaseUrl); + } finally { + setIsDownloadingGitHub(false); + setDownloadProgress(0); + } + } else { + if (githubUpdate.releaseUrl) Linking.openURL(githubUpdate.releaseUrl); + } + }; // Check onboarding status and initialize services useEffect(() => { @@ -202,6 +242,9 @@ const ThemedApp = () => { releaseUrl={githubUpdate.releaseUrl} onDismiss={githubUpdate.onDismiss} onLater={githubUpdate.onLater} + onUpdateAction={handleGithubUpdateAction} + isDownloading={isDownloadingGitHub} + downloadProgress={downloadProgress} /> diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 8478405b..810d5111 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + diff --git a/src/components/MajorUpdateOverlay.tsx b/src/components/MajorUpdateOverlay.tsx index cd3cc194..bd21d963 100644 --- a/src/components/MajorUpdateOverlay.tsx +++ b/src/components/MajorUpdateOverlay.tsx @@ -10,13 +10,18 @@ interface Props { releaseUrl?: string; onDismiss: () => void; onLater: () => void; + onUpdateAction?: () => void; + isDownloading?: boolean; + downloadProgress?: number; } -const MajorUpdateOverlay: React.FC = ({ visible, latestTag, releaseNotes, releaseUrl, onDismiss, onLater }) => { +const MajorUpdateOverlay: React.FC = ({ visible, latestTag, releaseNotes, releaseUrl, onDismiss, onLater, onUpdateAction, isDownloading, downloadProgress }) => { const { currentTheme } = useTheme(); if (!visible) return null; + const progressPercent = downloadProgress ? Math.round(downloadProgress * 100) : 0; + return ( @@ -40,10 +45,16 @@ const MajorUpdateOverlay: React.FC = ({ visible, latestTag, releaseNotes, )} - {releaseUrl ? ( - Linking.openURL(releaseUrl)}> - - View release + {releaseUrl || onUpdateAction ? ( + releaseUrl && Linking.openURL(releaseUrl))} + disabled={isDownloading} + > + + + {isDownloading ? `Downloading... ${progressPercent}%` : (onUpdateAction ? 'Update Now' : 'View release')} + ) : null} diff --git a/src/hooks/useGithubMajorUpdate.ts b/src/hooks/useGithubMajorUpdate.ts index 00e0e4ba..ef4b042c 100644 --- a/src/hooks/useGithubMajorUpdate.ts +++ b/src/hooks/useGithubMajorUpdate.ts @@ -7,11 +7,14 @@ import { fetchLatestGithubRelease, isAnyUpgrade } from '../services/githubReleas const DISMISSED_KEY = '@github_major_update_dismissed_version'; +import { GithubReleaseInfo } from '../services/githubReleaseService'; + export interface MajorUpdateData { visible: boolean; latestTag?: string; releaseNotes?: string; releaseUrl?: string; + releaseData?: GithubReleaseInfo; onDismiss: () => void; onLater: () => void; refresh: () => void; @@ -22,6 +25,7 @@ export function useGithubMajorUpdate(): MajorUpdateData { const [latestTag, setLatestTag] = useState(); const [releaseNotes, setReleaseNotes] = useState(); const [releaseUrl, setReleaseUrl] = useState(); + const [releaseData, setReleaseData] = useState(); const check = useCallback(async () => { if (Platform.OS === 'ios') return; @@ -47,6 +51,7 @@ export function useGithubMajorUpdate(): MajorUpdateData { setLatestTag(info.tag_name); setReleaseNotes(info.body); setReleaseUrl(info.html_url); + setReleaseData(info); setVisible(true); } } catch { @@ -67,7 +72,7 @@ export function useGithubMajorUpdate(): MajorUpdateData { setVisible(false); }, []); - return { visible, latestTag, releaseNotes, releaseUrl, onDismiss, onLater, refresh: check }; + return { visible, latestTag, releaseNotes, releaseUrl, releaseData, onDismiss, onLater, refresh: check }; } diff --git a/src/screens/UpdateScreen.tsx b/src/screens/UpdateScreen.tsx index 3fffe275..fcf11576 100644 --- a/src/screens/UpdateScreen.tsx +++ b/src/screens/UpdateScreen.tsx @@ -230,13 +230,48 @@ const UpdateScreen: React.FC = () => { } }, []); - const installUpdate = async () => { + const installUpdate = async (options?: { forceGithub?: boolean }) => { try { setIsInstalling(true); setUpdateStatus('downloading'); setUpdateProgress(0); setLastOperation(t('updates.status_downloading')); + const forceGithub = options?.forceGithub === true; + + // If it's a GitHub release update + if ((updateInfo?.source === 'github' || forceGithub) && Platform.OS === 'android') { + const { default: AndroidUpdateService } = await import('../services/androidUpdateService'); + + // We need the full release info with assets + const fullRelease = await import('../services/githubReleaseService').then(m => m.fetchLatestGithubRelease()); + + if (!fullRelease || !fullRelease.assets) { + throw new Error('Could not fetch release assets'); + } + + setLastOperation('Downloading APK...'); + // Note: Progress is not currently supported by FileSystem.downloadAsync in the simple way + // We'll simulate it for now or implement a more complex downloader later if needed + const success = await AndroidUpdateService.downloadAndInstallUpdate( + fullRelease, + (progress) => { + setUpdateProgress(progress * 100); + } + ); + + if (success) { + setUpdateProgress(100); + setUpdateStatus('success'); + setLastOperation(t('updates.status_success')); + // No alert needed, system installer takes over + } else { + throw new Error('Download or installation failed'); + } + return; + } + + // Fallback for OTA / Expo Updates // Simulate progress updates const progressInterval = setInterval(() => { setUpdateProgress(prev => { @@ -509,7 +544,7 @@ const UpdateScreen: React.FC = () => { { backgroundColor: currentTheme.colors.success || '#34C759' }, (isInstalling) && styles.disabledAction ]} - onPress={installUpdate} + onPress={() => installUpdate()} disabled={isInstalling} activeOpacity={0.8} > @@ -634,6 +669,23 @@ const UpdateScreen: React.FC = () => { + {Platform.OS === 'android' && ( + installUpdate({ forceGithub: true })} + disabled={isInstalling} + activeOpacity={0.8} + > + {isInstalling ? ( + + ) : ( + + )} + + {isInstalling ? `${t('updates.status_downloading')}...` : t('updates.action_install')} + + + )} github.releaseUrl ? Linking.openURL(github.releaseUrl as string) : null} diff --git a/src/services/androidUpdateService.ts b/src/services/androidUpdateService.ts new file mode 100644 index 00000000..089a4960 --- /dev/null +++ b/src/services/androidUpdateService.ts @@ -0,0 +1,111 @@ +import * as FileSystem from 'expo-file-system/legacy'; +import * as IntentLauncher from 'expo-intent-launcher'; +import * as Device from 'expo-device'; +import { Platform } from 'react-native'; +import { GithubReleaseInfo } from './githubReleaseService'; + +class AndroidUpdateService { + /** + * Downloads and installs the APK from the given GitHub release. + * Matches the device architecture to the correct APK asset. + * + * @param release The GitHub release info containing assets + * @returns Promise true if installation started, false otherwise + */ + /** + * Downloads and installs the APK from the given GitHub release. + * Matches the device architecture to the correct APK asset. + * + * @param release The GitHub release info containing assets + * @param onProgress Optional callback for download progress (0-1) + * @returns Promise true if installation started, false otherwise + */ + async downloadAndInstallUpdate(release: GithubReleaseInfo, onProgress?: (progress: number) => void): Promise { + if (Platform.OS !== 'android') return false; + + const apkUrl = this.getBestApkUrl(release); + if (!apkUrl) { + console.warn('No suitable APK found for this device architecture'); + return false; + } + + try { + // Create a temporary file path + const filename = `nuvio-update-${release.tag_name}.apk`; + // @ts-ignore + const downloadDest = `${FileSystem.cacheDirectory}${filename}`; + + // Create a resumable download to track progress + const callback = (downloadProgress: FileSystem.DownloadProgressData) => { + const progress = downloadProgress.totalBytesWritten / downloadProgress.totalBytesExpectedToWrite; + if (onProgress) onProgress(progress); + }; + + const downloadResumable = FileSystem.createDownloadResumable( + apkUrl, + downloadDest, + {}, + callback + ); + + // Download the APK + const downloadRes = await downloadResumable.downloadAsync(); + + if (!downloadRes || downloadRes.status !== 200) { + console.error('Failed to download APK', downloadRes?.status); + return false; + } + + // Get Content URI using Expo's FileSystem + const contentUri = await FileSystem.getContentUriAsync(downloadDest); + + // Launch the intent to install + console.log('AndroidUpdateService: Starting installation intent with content URI:', contentUri); + await IntentLauncher.startActivityAsync('android.intent.action.VIEW', { + data: contentUri, + flags: 1 | 268435456, // FLAG_GRANT_READ_URI_PERMISSION (1) | FLAG_ACTIVITY_NEW_TASK (0x10000000) + type: 'application/vnd.android.package-archive', + }); + + console.log('AndroidUpdateService: Installation intent started successfully'); + return true; + } catch (error) { + console.error('Error downloading or installing update:', error); + return false; + } + } + + /** + * Selects the best APK URL based on device architecture. + * Priority: Specific Arch > Universal > First APK found + */ + private getBestApkUrl(release: GithubReleaseInfo): string | null { + console.log('AndroidUpdateService: Finding best APK for release assets:', release.assets?.length); + if (!release.assets || release.assets.length === 0) return null; + + const supportedArchs = Device.supportedCpuArchitectures; // e.g. ['arm64-v8a', 'armeabi-v7a'] + console.log('Device architectures:', supportedArchs); + + // Helper to find asset containing string (case-insensitive) + const findAsset = (keyword: string) => + release.assets?.find(a => + a.name.toLowerCase().includes(keyword.toLowerCase()) && + a.name.toLowerCase().endsWith('.apk') + ); + + // 1. Try to match supported architectures in order + if (supportedArchs) { + for (const arch of supportedArchs) { + const match = findAsset(arch); + if (match) return match.browser_download_url; + } + } + + // 2. No fallback: If no specific architecture match is found, return null. + // User requested strict matching to avoid downloading incompatible APKs. + console.warn('AndroidUpdateService: No matching APK found for device architectures:', supportedArchs); + return null; + } +} + +export default new AndroidUpdateService(); diff --git a/src/services/githubReleaseService.ts b/src/services/githubReleaseService.ts index b2696b7c..109dda9c 100644 --- a/src/services/githubReleaseService.ts +++ b/src/services/githubReleaseService.ts @@ -6,6 +6,13 @@ export interface GithubReleaseInfo { body?: string; html_url?: string; published_at?: string; + assets?: Array<{ + name: string; + browser_download_url: string; + content_type: string; + size: number; + download_count: number; + }>; } const GITHUB_LATEST_RELEASE_URL = 'https://api.github.com/repos/tapframe/NuvioStreaming/releases/latest'; @@ -27,6 +34,7 @@ export async function fetchLatestGithubRelease(): Promise { }); if (!res.ok) return null; const releases = await res.json(); - + let total = 0; releases.forEach((release: any) => { if (release.assets && Array.isArray(release.assets)) { @@ -78,7 +86,7 @@ export async function fetchTotalDownloads(): Promise { }); } }); - + return total; } catch { return null; @@ -102,12 +110,12 @@ export async function fetchContributors(): Promise { 'User-Agent': `Nuvio/${Platform.OS}`, }, }); - + if (!res.ok) { if (__DEV__) console.error('GitHub API error:', res.status, res.statusText); return null; } - + const contributors = await res.json(); return contributors; } catch (error) { From 9d0163b4eba106a78b51c772eff5a9ce50eafa36 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 16:25:09 +0530 Subject: [PATCH 24/58] removed the stream/MKV/URL-validation HEAD probes; --- .../player/android/hooks/usePlayerSetup.ts | 7 +--- src/hooks/useMetadataAssets.ts | 42 ------------------- src/hooks/useSettings.ts | 2 - src/screens/PluginsScreen.tsx | 20 --------- src/screens/streams/useStreamsScreen.ts | 32 -------------- src/screens/streams/utils.ts | 25 ----------- src/services/pluginService.ts | 7 ---- src/services/streamCacheService.ts | 20 --------- src/utils/playerSelection.ts | 1 - 9 files changed, 1 insertion(+), 155 deletions(-) diff --git a/src/components/player/android/hooks/usePlayerSetup.ts b/src/components/player/android/hooks/usePlayerSetup.ts index f5f1d211..88a4167d 100644 --- a/src/components/player/android/hooks/usePlayerSetup.ts +++ b/src/components/player/android/hooks/usePlayerSetup.ts @@ -116,12 +116,7 @@ export const usePlayerSetup = ( const restoreBrightness = async () => { try { if (Platform.OS === 'android') { - if (originalSystemBrightnessModeRef.current !== null) { - await (Brightness as any).setSystemBrightnessModeAsync?.(originalSystemBrightnessModeRef.current); - } - if (originalSystemBrightnessRef.current !== null) { - await (Brightness as any).setSystemBrightnessAsync?.(originalSystemBrightnessRef.current); - } + } if (originalAppBrightnessRef.current !== null) { await Brightness.setBrightnessAsync(originalAppBrightnessRef.current); diff --git a/src/hooks/useMetadataAssets.ts b/src/hooks/useMetadataAssets.ts index 16ad53e4..d5639941 100644 --- a/src/hooks/useMetadataAssets.ts +++ b/src/hooks/useMetadataAssets.ts @@ -3,48 +3,6 @@ import { logger } from '../utils/logger'; import { TMDBService } from '../services/tmdbService'; import { isTmdbUrl } from '../utils/logoUtils'; import FastImage from '@d11/react-native-fast-image'; -import { mmkvStorage } from '../services/mmkvStorage'; - -// Cache for image availability checks -const imageAvailabilityCache: Record = {}; - -// Helper function to check image availability with caching -const checkImageAvailability = async (url: string): Promise => { - // Check memory cache first - if (imageAvailabilityCache[url] !== undefined) { - return imageAvailabilityCache[url]; - } - - // Check AsyncStorage cache - try { - const cachedResult = await mmkvStorage.getItem(`image_available:${url}`); - if (cachedResult !== null) { - const isAvailable = cachedResult === 'true'; - imageAvailabilityCache[url] = isAvailable; - return isAvailable; - } - } catch (error) { - // Ignore AsyncStorage errors - } - - // Perform actual check - try { - const response = await fetch(url, { method: 'HEAD' }); - const isAvailable = response.ok; - - // Update caches - imageAvailabilityCache[url] = isAvailable; - try { - await mmkvStorage.setItem(`image_available:${url}`, isAvailable ? 'true' : 'false'); - } catch (error) { - // Ignore AsyncStorage errors - } - - return isAvailable; - } catch (error) { - return false; - } -}; export const useMetadataAssets = ( metadata: any, diff --git a/src/hooks/useSettings.ts b/src/hooks/useSettings.ts index 32489de2..c285a1de 100644 --- a/src/hooks/useSettings.ts +++ b/src/hooks/useSettings.ts @@ -49,7 +49,6 @@ export interface AppSettings { scraperRepositoryUrl: string; // URL to the scraper repository enableLocalScrapers: boolean; // Enable/disable local scraper functionality scraperTimeout: number; // Timeout for scraper execution in seconds - enableScraperUrlValidation: boolean; // Enable/disable URL validation for scrapers streamDisplayMode: 'separate' | 'grouped'; // How to display streaming links - separately by provider or grouped under one name streamSortMode: 'scraper-then-quality' | 'quality-then-scraper'; // How to sort streams - by scraper first or quality first showScraperLogos: boolean; // Show scraper logos next to streaming links @@ -138,7 +137,6 @@ export const DEFAULT_SETTINGS: AppSettings = { scraperRepositoryUrl: '', enableLocalScrapers: true, scraperTimeout: 60, // 60 seconds timeout - enableScraperUrlValidation: true, // Enable URL validation by default streamDisplayMode: 'separate', // Default to separate display by provider streamSortMode: 'scraper-then-quality', // Default to current behavior (scraper first, then quality) showScraperLogos: true, // Show scraper logos by default diff --git a/src/screens/PluginsScreen.tsx b/src/screens/PluginsScreen.tsx index c87326bd..626fe0c7 100644 --- a/src/screens/PluginsScreen.tsx +++ b/src/screens/PluginsScreen.tsx @@ -1443,10 +1443,6 @@ const PluginsScreen: React.FC = () => { } }; - const handleToggleUrlValidation = async (enabled: boolean) => { - await updateSetting('enableScraperUrlValidation', enabled); - }; - const handleToggleQualityExclusion = async (quality: string) => { const currentExcluded = settings.excludedQualities || []; const isExcluded = currentExcluded.includes(quality); @@ -1971,22 +1967,6 @@ const PluginsScreen: React.FC = () => { colors={colors} styles={styles} > - - - {t('plugins.enable_url_validation')} - - {t('plugins.url_validation_desc')} - - - - - {t('plugins.group_streams')} diff --git a/src/screens/streams/useStreamsScreen.ts b/src/screens/streams/useStreamsScreen.ts index 90164c11..6af075b5 100644 --- a/src/screens/streams/useStreamsScreen.ts +++ b/src/screens/streams/useStreamsScreen.ts @@ -23,7 +23,6 @@ import { filterStreamsByQuality, filterStreamsByLanguage, getQualityNumeric, - detectMkvViaHead, inferVideoTypeFromUrl, sortStreamsByQuality, } from './utils'; @@ -37,7 +36,6 @@ import { TMDBEpisodeOverride, AlertAction, } from './types'; -import { MKV_HEAD_TIMEOUT_MS } from './constants'; // Cache for scraper logos const scraperLogoCache = new Map(); @@ -469,36 +467,6 @@ export const useStreamsScreen = () => { return; } - // iOS MKV detection - if (Platform.OS === 'ios' && settings.preferredPlayer === 'internal') { - const lowerUrl = (stream.url || '').toLowerCase(); - const isMkvByPath = - lowerUrl.includes('.mkv') || - /[?&]ext=mkv\b/i.test(lowerUrl) || - /format=mkv\b/i.test(lowerUrl) || - /container=mkv\b/i.test(lowerUrl); - const isHttp = lowerUrl.startsWith('http://') || lowerUrl.startsWith('https://'); - - if (!isMkvByPath && isHttp) { - try { - const mkvDetected = await Promise.race([ - detectMkvViaHead(stream.url, (stream.headers as any) || undefined), - new Promise(res => setTimeout(() => res(false), MKV_HEAD_TIMEOUT_MS)), - ]); - if (mkvDetected) { - const mergedHeaders = { - ...(stream.headers || {}), - 'Content-Type': 'video/x-matroska', - } as Record; - navigateToPlayer(stream, { headers: mergedHeaders }); - return; - } - } catch (e) { - logger.warn('[StreamsScreen] MKV detection failed:', e); - } - } - } - // iOS external player if (Platform.OS === 'ios' && settings.preferredPlayer !== 'internal') { try { diff --git a/src/screens/streams/utils.ts b/src/screens/streams/utils.ts index 751cf764..e531ca08 100644 --- a/src/screens/streams/utils.ts +++ b/src/screens/streams/utils.ts @@ -1,5 +1,4 @@ import { Stream } from '../../types/metadata'; -import { MKV_HEAD_TIMEOUT_MS } from './constants'; /** * Language variations for filtering @@ -150,30 +149,6 @@ export const sortStreamsByQuality = (streams: Stream[]): Stream[] => { }); }; -/** - * Detect MKV format via HEAD request - */ -export const detectMkvViaHead = async ( - url: string, - headers?: Record -): Promise => { - const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), MKV_HEAD_TIMEOUT_MS); - try { - const res = await fetch(url, { - method: 'HEAD', - headers, - signal: controller.signal as any, - } as any); - const contentType = res.headers.get('content-type') || ''; - return /matroska|x-matroska/i.test(contentType); - } catch (_e) { - return false; - } finally { - clearTimeout(timeout); - } -}; - /** * Infer video type from URL */ diff --git a/src/services/pluginService.ts b/src/services/pluginService.ts index 538210b4..d68859ef 100644 --- a/src/services/pluginService.ts +++ b/src/services/pluginService.ts @@ -1164,10 +1164,6 @@ class LocalScraperService { private async executePlugin(code: string, params: any, consoleOverride?: any): Promise { try { - const settingsData = await mmkvStorage.getItem('app_settings'); - const settings = settingsData ? JSON.parse(settingsData) : {}; - const urlValidationEnabled = settings.enableScraperUrlValidation ?? true; - const allScraperSettingsRaw = await mmkvStorage.getItem(this.SCRAPER_SETTINGS_KEY); const allScraperSettings = allScraperSettingsRaw ? JSON.parse(allScraperSettingsRaw) : {}; let perScraperSettings = (params && params.scraperId && allScraperSettings[params.scraperId]) @@ -1299,7 +1295,6 @@ class LocalScraperService { 'params', 'PRIMARY_KEY', 'TMDB_API_KEY', - 'URL_VALIDATION_ENABLED', 'SCRAPER_SETTINGS', 'SCRAPER_ID', ` @@ -1311,7 +1306,6 @@ class LocalScraperService { globalScope.TMDB_API_KEY = TMDB_API_KEY; globalScope.SCRAPER_SETTINGS = SCRAPER_SETTINGS; globalScope.SCRAPER_ID = SCRAPER_ID; - globalScope.URL_VALIDATION_ENABLED = URL_VALIDATION_ENABLED; } else { logger.error('[Plugin Sandbox] Could not find global scope to inject settings'); } @@ -1346,7 +1340,6 @@ class LocalScraperService { params, MOVIEBOX_PRIMARY_KEY, MOVIEBOX_TMDB_API_KEY, - urlValidationEnabled, perScraperSettings, params?.scraperId ); diff --git a/src/services/streamCacheService.ts b/src/services/streamCacheService.ts index 73c7c57d..c2496b21 100644 --- a/src/services/streamCacheService.ts +++ b/src/services/streamCacheService.ts @@ -149,26 +149,6 @@ class StreamCacheService { return episodeId ? `${baseKey}:${episodeId}` : baseKey; } - /** - * Validate if a stream URL is still accessible - */ - private async validateStreamUrl(url: string): Promise { - try { - const controller = new AbortController(); - const timeout = setTimeout(() => controller.abort(), 3000); // 3 second timeout - - const response = await fetch(url, { - method: 'HEAD', - signal: controller.signal as any, - } as any); - - clearTimeout(timeout); - return response.ok; - } catch (error) { - return false; - } - } - /** * Get cache info for debugging */ diff --git a/src/utils/playerSelection.ts b/src/utils/playerSelection.ts index 81dbcda3..27e3ae5d 100644 --- a/src/utils/playerSelection.ts +++ b/src/utils/playerSelection.ts @@ -4,7 +4,6 @@ */ import { Platform } from 'react-native'; -import { isMkvStream } from './mkvDetection'; export interface PlayerSelectionOptions { uri: string; From afdac8c1e97d888f0795b4ef3b112980f0790b95 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:01:40 +0530 Subject: [PATCH 25/58] minor sub fixes --- .../exoplayer/ReactExoplayerView.java | 9 +- patches/react-native-video+6.19.0.patch | 2077 ++++++++++++++++- src/components/player/AndroidVideoPlayer.tsx | 1 + .../android/components/VideoSurface.tsx | 29 + src/screens/streams/utils.ts | 16 +- 5 files changed, 2101 insertions(+), 31 deletions(-) diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index 8018a723..54221ef1 100644 --- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -2207,6 +2207,11 @@ public class ReactExoplayerView extends FrameLayout implements TrackGroupArray groups = info.getTrackGroups(textRendererIndex); boolean trackFound = false; + // react-native-video uses a flattened `textTracks` list on the JS side. + // For HLS/DASH, each TrackGroup often contains a single track at index 0, + // so comparing against `trackIndex` alone makes only the first subtitle selectable. + int flattenedIndex = 0; + for (int groupIndex = 0; groupIndex < groups.length; groupIndex++) { TrackGroup group = groups.get(groupIndex); for (int trackIndex = 0; trackIndex < group.length; trackIndex++) { @@ -2219,11 +2224,13 @@ public class ReactExoplayerView extends FrameLayout implements isMatch = true; } else if ("index".equals(type)) { int targetIndex = ReactBridgeUtils.safeParseInt(value, -1); - if (targetIndex == trackIndex) { + if (targetIndex == flattenedIndex) { isMatch = true; } } + flattenedIndex++; + if (isMatch) { TrackSelectionOverride override = new TrackSelectionOverride(group, java.util.Arrays.asList(trackIndex)); diff --git a/patches/react-native-video+6.19.0.patch b/patches/react-native-video+6.19.0.patch index 3cf30b36..537ad182 100644 --- a/patches/react-native-video+6.19.0.patch +++ b/patches/react-native-video+6.19.0.patch @@ -1,5 +1,2006 @@ +diff --git a/node_modules/react-native-video/.DS_Store b/node_modules/react-native-video/.DS_Store +new file mode 100644 +index 0000000..efb1c25 +Binary files /dev/null and b/node_modules/react-native-video/.DS_Store differ +diff --git a/node_modules/react-native-video/android/.project b/node_modules/react-native-video/android/.project +new file mode 100644 +index 0000000..52b6df8 +--- /dev/null ++++ b/node_modules/react-native-video/android/.project +@@ -0,0 +1,28 @@ ++ ++ ++ react-native-video ++ Project react-native-video created by Buildship. ++ ++ ++ ++ ++ org.eclipse.buildship.core.gradleprojectbuilder ++ ++ ++ ++ ++ ++ org.eclipse.buildship.core.gradleprojectnature ++ ++ ++ ++ 1768982564763 ++ ++ 30 ++ ++ org.eclipse.core.resources.regexFilterMatcher ++ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ ++ ++ ++ ++ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource$Factory.class +new file mode 100644 +index 0000000..2bb27a7 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.class +new file mode 100644 +index 0000000..b6d4f67 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashUtil.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashUtil.class +new file mode 100644 +index 0000000..8e39b9b +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashUtil.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource$Factory.class +new file mode 100644 +index 0000000..821a44f +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.class +new file mode 100644 +index 0000000..481ec08 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/AdaptationSet.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/AdaptationSet.class +new file mode 100644 +index 0000000..3375b36 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/AdaptationSet.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifest.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifest.class +new file mode 100644 +index 0000000..7bab9ce +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifest.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Period.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Period.class +new file mode 100644 +index 0000000..5e20d52 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Period.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Representation.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Representation.class +new file mode 100644 +index 0000000..bea0c46 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Representation.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource$Factory.class +new file mode 100644 +index 0000000..3ca6828 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.class +new file mode 100644 +index 0000000..8e0850f +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class +new file mode 100644 +index 0000000..f79b294 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader.class +new file mode 100644 +index 0000000..d881c1d +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class +new file mode 100644 +index 0000000..e185643 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class +new file mode 100644 +index 0000000..a2cc0a6 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class +new file mode 100644 +index 0000000..87a1860 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class +new file mode 100644 +index 0000000..f55e9a2 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class +new file mode 100644 +index 0000000..2e2d902 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class +new file mode 100644 +index 0000000..6904a64 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.class +new file mode 100644 +index 0000000..c95d5e5 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource$Factory.class +new file mode 100644 +index 0000000..76ab1ad +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource.class +new file mode 100644 +index 0000000..3f3cd35 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource$Factory.class +new file mode 100644 +index 0000000..12964d0 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.class +new file mode 100644 +index 0000000..0d15af4 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class +new file mode 100644 +index 0000000..b6e4634 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class +new file mode 100644 +index 0000000..da91274 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.class b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.class +new file mode 100644 +index 0000000..223a645 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdError.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdError.class +new file mode 100644 +index 0000000..aeb2518 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdError.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class +new file mode 100644 +index 0000000..3975101 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class +new file mode 100644 +index 0000000..5196841 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class +new file mode 100644 +index 0000000..3613e40 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent.class +new file mode 100644 +index 0000000..062ca54 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class +new file mode 100644 +index 0000000..b263292 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class +new file mode 100644 +index 0000000..973369b +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class +new file mode 100644 +index 0000000..ac2f7c5 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class differ +diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class +new file mode 100644 +index 0000000..c737896 +Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/results.bin +new file mode 100644 +index 0000000..0d259dd +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/results.bin +@@ -0,0 +1 @@ ++o/classes +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/transformed/classes/classes_dex/classes.dex +new file mode 100644 +index 0000000..437056e +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/transformed/classes/classes_dex/classes.dex differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/results.bin +new file mode 100644 +index 0000000..0d259dd +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/results.bin +@@ -0,0 +1 @@ ++o/classes +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/transformed/classes/classes_dex/classes.dex +new file mode 100644 +index 0000000..f0507ca +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/transformed/classes/classes_dex/classes.dex differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java +new file mode 100644 +index 0000000..b26a50e +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java +@@ -0,0 +1,22 @@ ++/** ++ * Automatically generated file. DO NOT MODIFY ++ */ ++package com.brentvatne.react; ++ ++public final class BuildConfig { ++ public static final boolean DEBUG = Boolean.parseBoolean("true"); ++ public static final String LIBRARY_PACKAGE_NAME = "com.brentvatne.react"; ++ public static final String BUILD_TYPE = "debug"; ++ // Field from default config. ++ public static final boolean IS_NEW_ARCHITECTURE_ENABLED = true; ++ // Field from default config. ++ public static final boolean USE_EXOPLAYER_DASH = true; ++ // Field from default config. ++ public static final boolean USE_EXOPLAYER_HLS = true; ++ // Field from default config. ++ public static final boolean USE_EXOPLAYER_IMA = false; ++ // Field from default config. ++ public static final boolean USE_EXOPLAYER_RTSP = false; ++ // Field from default config. ++ public static final boolean USE_EXOPLAYER_SMOOTH_STREAMING = true; ++} +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +new file mode 100644 +index 0000000..728c5a9 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +@@ -0,0 +1,7 @@ ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +new file mode 100644 +index 0000000..247891c +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +@@ -0,0 +1,18 @@ ++{ ++ "version": 3, ++ "artifactType": { ++ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", ++ "kind": "Directory" ++ }, ++ "applicationId": "com.brentvatne.react", ++ "variantName": "debug", ++ "elements": [ ++ { ++ "type": "SINGLE", ++ "filters": [], ++ "attributes": [], ++ "outputFile": "AndroidManifest.xml" ++ } ++ ], ++ "elementType": "File" ++} +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +new file mode 100644 +index 0000000..1211b1e +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +@@ -0,0 +1,6 @@ ++aarFormatVersion=1.0 ++aarMetadataVersion=1.0 ++minCompileSdk=1 ++minCompileSdkExtension=0 ++minAndroidGradlePluginVersion=1.0.0 ++coreLibraryDesugaringEnabled=false +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +new file mode 100644 +index 0000000..9e26dfe +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +@@ -0,0 +1 @@ ++{} +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +new file mode 100644 +index 0000000..caafbe5 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +new file mode 100644 +index 0000000..0889def +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +new file mode 100644 +index 0000000..b5a67e1 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +@@ -0,0 +1,44 @@ ++int color player_overlay_color 0x0 ++int color red 0x0 ++int color silver_gray 0x0 ++int color white 0x0 ++int dimen controller_wrapper_padding_top 0x0 ++int dimen full_screen_margin 0x0 ++int dimen full_screen_size 0x0 ++int dimen live_wrapper_margin_top 0x0 ++int dimen position_duration_horizontal_padding 0x0 ++int dimen position_duration_text_size 0x0 ++int dimen position_duration_width 0x0 ++int dimen seekBar_height 0x0 ++int dimen seekBar_wrapper_margin_top 0x0 ++int drawable circle 0x0 ++int id exo_duration 0x0 ++int id exo_ffwd 0x0 ++int id exo_fullscreen 0x0 ++int id exo_live_container 0x0 ++int id exo_live_icon 0x0 ++int id exo_live_label 0x0 ++int id exo_next 0x0 ++int id exo_pause 0x0 ++int id exo_play 0x0 ++int id exo_play_pause_container 0x0 ++int id exo_position 0x0 ++int id exo_prev 0x0 ++int id exo_progress 0x0 ++int id exo_rew 0x0 ++int id exo_settings 0x0 ++int layout exo_legacy_player_control_view 0x0 ++int string error_drm_not_supported 0x0 ++int string error_drm_unknown 0x0 ++int string error_drm_unsupported_scheme 0x0 ++int string error_instantiating_decoder 0x0 ++int string error_no_decoder 0x0 ++int string error_no_secure_decoder 0x0 ++int string error_querying_decoders 0x0 ++int string media_playback_notification_text 0x0 ++int string media_playback_notification_title 0x0 ++int string playback_speed 0x0 ++int string select_playback_speed 0x0 ++int string settings 0x0 ++int string unrecognized_media_format 0x0 ++int style ExoMediaButton_FullScreen 0x0 +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat +new file mode 100644 +index 0000000..e62758d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat +new file mode 100644 +index 0000000..bb5b5f9 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +new file mode 100644 +index 0000000..2cace67 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +@@ -0,0 +1,3 @@ ++#Tue Jan 20 19:56:29 IST 2026 ++com.brentvatne.react.react-native-video-main-6\:/drawable/circle.xml=/Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml ++com.brentvatne.react.react-native-video-main-6\:/layout/exo_legacy_player_control_view.xml=/Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml +new file mode 100644 +index 0000000..e8dd9e4 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml +@@ -0,0 +1,33 @@ ++ ++ ++ #00000000 ++ #FF0000 ++ #FFBEBEBE ++ #FFFFFF ++ 4dp ++ 4dp ++ 30dp ++ 12dp ++ 4dp ++ 14sp ++ 50dp ++ 26dp ++ 4dp ++ Protected content not supported on API levels below 18 ++ An unknown DRM error occurred ++ This device does not support the required DRM scheme ++ Unable to instantiate decoder %1$s ++ This device does not provide a decoder for %1$s ++ This device does not provide a secure decoder for %1$s ++ Unable to query device decoders ++ Preparing playback ++ Media playback ++ Playback Speed ++ Select Playback Speed ++ Settings ++ Unrecognized media format ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml +new file mode 100644 +index 0000000..55ffc6b +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml +@@ -0,0 +1,5 @@ ++ ++#FFBEBEBE#00000000#FFFFFF#FF00004dp4dp12dp4dp4dp50dp26dp30dp14spThis device does not provide a decoder for %1$sThis device does not provide a secure decoder for %1$sUnable to query device decodersUnable to instantiate decoder %1$sProtected content not supported on API levels below 18Unrecognized media formatThis device does not support the required DRM schemeAn unknown DRM error occurredSettingsPlayback SpeedSelect Playback SpeedMedia playbackPreparing playback +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml +new file mode 100644 +index 0000000..8769311 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +new file mode 100644 +index 0000000..af687a7 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml +new file mode 100644 +index 0000000..65138a3 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module +new file mode 100644 +index 0000000..1698483 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class +new file mode 100644 +index 0000000..b019110 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class +new file mode 100644 +index 0000000..5e16e53 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class +new file mode 100644 +index 0000000..426cee4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class +new file mode 100644 +index 0000000..49c2648 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class +new file mode 100644 +index 0000000..ca2a4e6 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class +new file mode 100644 +index 0000000..663e8c2 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class +new file mode 100644 +index 0000000..fb160cd +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class +new file mode 100644 +index 0000000..b08faeb +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class +new file mode 100644 +index 0000000..2f92e20 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class +new file mode 100644 +index 0000000..d05aa84 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class +new file mode 100644 +index 0000000..9955d46 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class +new file mode 100644 +index 0000000..79253a3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class +new file mode 100644 +index 0000000..f4a565b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class +new file mode 100644 +index 0000000..ae977d3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class +new file mode 100644 +index 0000000..dd0c9c1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class +new file mode 100644 +index 0000000..9f565f0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class +new file mode 100644 +index 0000000..4c5c87e +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class +new file mode 100644 +index 0000000..0a9b7a7 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class +new file mode 100644 +index 0000000..1380a05 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class +new file mode 100644 +index 0000000..07ab3fa +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class +new file mode 100644 +index 0000000..dbe9984 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class +new file mode 100644 +index 0000000..88ae34c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class +new file mode 100644 +index 0000000..a3184b3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class +new file mode 100644 +index 0000000..264cd83 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class +new file mode 100644 +index 0000000..46cea81 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class +new file mode 100644 +index 0000000..a4cef0d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +new file mode 100644 +index 0000000..987e479 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +@@ -0,0 +1,46 @@ ++R_DEF: Internal format may change without notice ++local ++color player_overlay_color ++color red ++color silver_gray ++color white ++dimen controller_wrapper_padding_top ++dimen full_screen_margin ++dimen full_screen_size ++dimen live_wrapper_margin_top ++dimen position_duration_horizontal_padding ++dimen position_duration_text_size ++dimen position_duration_width ++dimen seekBar_height ++dimen seekBar_wrapper_margin_top ++drawable circle ++id exo_duration ++id exo_ffwd ++id exo_fullscreen ++id exo_live_container ++id exo_live_icon ++id exo_live_label ++id exo_next ++id exo_pause ++id exo_play ++id exo_play_pause_container ++id exo_position ++id exo_prev ++id exo_progress ++id exo_rew ++id exo_settings ++layout exo_legacy_player_control_view ++string error_drm_not_supported ++string error_drm_unknown ++string error_drm_unsupported_scheme ++string error_instantiating_decoder ++string error_no_decoder ++string error_no_secure_decoder ++string error_querying_decoders ++string media_playback_notification_text ++string media_playback_notification_title ++string playback_speed ++string select_playback_speed ++string settings ++string unrecognized_media_format ++style ExoMediaButton.FullScreen +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +new file mode 100644 +index 0000000..2300097 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +@@ -0,0 +1,7 @@ ++1 ++2 ++4 ++5 ++6 ++7 +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +new file mode 100644 +index 0000000..728c5a9 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +@@ -0,0 +1,7 @@ ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +new file mode 100644 +index 0000000..0637a08 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +@@ -0,0 +1 @@ ++[] +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +new file mode 100644 +index 0000000..08f4ebe +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +@@ -0,0 +1 @@ ++0 Warning/Error +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml +new file mode 100644 +index 0000000..9f06d7c +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml +@@ -0,0 +1,6 @@ ++ ++ ++ ++ ++ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml +new file mode 100644 +index 0000000..e0babc4 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml +@@ -0,0 +1,120 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml +new file mode 100644 +index 0000000..e8dd9e4 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml +@@ -0,0 +1,33 @@ ++ ++ ++ #00000000 ++ #FF0000 ++ #FFBEBEBE ++ #FFFFFF ++ 4dp ++ 4dp ++ 30dp ++ 12dp ++ 4dp ++ 14sp ++ 50dp ++ 26dp ++ 4dp ++ Protected content not supported on API levels below 18 ++ An unknown DRM error occurred ++ This device does not support the required DRM scheme ++ Unable to instantiate decoder %1$s ++ This device does not provide a decoder for %1$s ++ This device does not provide a secure decoder for %1$s ++ Unable to query device decoders ++ Preparing playback ++ Media playback ++ Playback Speed ++ Select Playback Speed ++ Settings ++ Unrecognized media format ++ ++ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +new file mode 100644 +index 0000000..09d85c6 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +new file mode 100644 +index 0000000..1cb95ed +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +@@ -0,0 +1,45 @@ ++com.brentvatne.react ++color player_overlay_color ++color red ++color silver_gray ++color white ++dimen controller_wrapper_padding_top ++dimen full_screen_margin ++dimen full_screen_size ++dimen live_wrapper_margin_top ++dimen position_duration_horizontal_padding ++dimen position_duration_text_size ++dimen position_duration_width ++dimen seekBar_height ++dimen seekBar_wrapper_margin_top ++drawable circle ++id exo_duration ++id exo_ffwd ++id exo_fullscreen ++id exo_live_container ++id exo_live_icon ++id exo_live_label ++id exo_next ++id exo_pause ++id exo_play ++id exo_play_pause_container ++id exo_position ++id exo_prev ++id exo_progress ++id exo_rew ++id exo_settings ++layout exo_legacy_player_control_view ++string error_drm_not_supported ++string error_drm_unknown ++string error_drm_unsupported_scheme ++string error_instantiating_decoder ++string error_no_decoder ++string error_no_secure_decoder ++string error_querying_decoders ++string media_playback_notification_text ++string media_playback_notification_title ++string playback_speed ++string select_playback_speed ++string settings ++string unrecognized_media_format ++style ExoMediaButton_FullScreen +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +new file mode 100644 +index 0000000..a71e9f1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +new file mode 100644 +index 0000000..1a55594 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +new file mode 100644 +index 0000000..74ddf64 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +new file mode 100644 +index 0000000..41d6c24 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +new file mode 100644 +index 0000000..4565290 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +new file mode 100644 +index 0000000..8a80b7d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +new file mode 100644 +index 0000000..a15e3c2 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +new file mode 100644 +index 0000000..1d1d548 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +new file mode 100644 +index 0000000..3247724 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +new file mode 100644 +index 0000000..bba171d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +new file mode 100644 +index 0000000..cac8122 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +new file mode 100644 +index 0000000..045022c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +new file mode 100644 +index 0000000..8d9b86c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +new file mode 100644 +index 0000000..1d1d548 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +new file mode 100644 +index 0000000..3247724 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +new file mode 100644 +index 0000000..bba171d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +new file mode 100644 +index 0000000..ec746e0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +new file mode 100644 +index 0000000..045022c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +new file mode 100644 +index 0000000..d465c86 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +new file mode 100644 +index 0000000..a49789c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +new file mode 100644 +index 0000000..a3d0573 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +new file mode 100644 +index 0000000..93a595b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +new file mode 100644 +index 0000000..7d6fd0f +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +new file mode 100644 +index 0000000..1598ef3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +new file mode 100644 +index 0000000..bc77250 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +new file mode 100644 +index 0000000..9d05b9a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +new file mode 100644 +index 0000000..d3e09af +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +new file mode 100644 +index 0000000..b7d7395 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +new file mode 100644 +index 0000000..3c9bdb8 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +new file mode 100644 +index 0000000..af27d9c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +new file mode 100644 +index 0000000..d4df1e4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +new file mode 100644 +index 0000000..a9e6823 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +new file mode 100644 +index 0000000..de8bf97 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +new file mode 100644 +index 0000000..2a17e6e +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +new file mode 100644 +index 0000000..6fcb00a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +new file mode 100644 +index 0000000..2073982 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +new file mode 100644 +index 0000000..bbb0353 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +new file mode 100644 +index 0000000..7214377 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +new file mode 100644 +index 0000000..86b154b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +new file mode 100644 +index 0000000..882f24f +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +new file mode 100644 +index 0000000..5871667 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +new file mode 100644 +index 0000000..932d4a9 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +new file mode 100644 +index 0000000..b8a6997 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +@@ -0,0 +1 @@ ++ØÓÕÜ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +new file mode 100644 +index 0000000..0cbafa1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +new file mode 100644 +index 0000000..d448037 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +new file mode 100644 +index 0000000..1a55594 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +new file mode 100644 +index 0000000..74ddf64 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +new file mode 100644 +index 0000000..41d6c24 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +new file mode 100644 +index 0000000..8e087d3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +new file mode 100644 +index 0000000..8a80b7d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +new file mode 100644 +index 0000000..199d021 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +new file mode 100644 +index 0000000..90b21c4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +new file mode 100644 +index 0000000..4cb813c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +new file mode 100644 +index 0000000..385642d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +new file mode 100644 +index 0000000..b96c547 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +new file mode 100644 +index 0000000..5e4a0c0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +new file mode 100644 +index 0000000..421cdf6 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +new file mode 100644 +index 0000000..ae4ac93 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +new file mode 100644 +index 0000000..6dc1435 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +new file mode 100644 +index 0000000..42df8b9 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +new file mode 100644 +index 0000000..b83a0f5 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +new file mode 100644 +index 0000000..f0c9463 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +new file mode 100644 +index 0000000..b55f912 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +@@ -0,0 +1,2 @@ ++50 ++0 +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +new file mode 100644 +index 0000000..c9da9ed +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +new file mode 100644 +index 0000000..1a55594 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +new file mode 100644 +index 0000000..74ddf64 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +new file mode 100644 +index 0000000..41d6c24 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +new file mode 100644 +index 0000000..e1e0ed2 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +new file mode 100644 +index 0000000..8a80b7d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +new file mode 100644 +index 0000000..b880e05 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +new file mode 100644 +index 0000000..845a3a2 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +new file mode 100644 +index 0000000..c4a5886 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +new file mode 100644 +index 0000000..48e9f9a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +new file mode 100644 +index 0000000..ea06838 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +new file mode 100644 +index 0000000..574f909 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +new file mode 100644 +index 0000000..cf7ebd8 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +new file mode 100644 +index 0000000..a740bf4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +new file mode 100644 +index 0000000..a4a7322 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +new file mode 100644 +index 0000000..220a36c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +new file mode 100644 +index 0000000..cb99b44 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +new file mode 100644 +index 0000000..2f7ab3c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +new file mode 100644 +index 0000000..33ceb54 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +@@ -0,0 +1 @@ ++û¥ +\ No newline at end of file +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +new file mode 100644 +index 0000000..2c1a9ba +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin +new file mode 100644 +index 0000000..1eefcf0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +new file mode 100644 +index 0000000..3ab367b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin +new file mode 100644 +index 0000000..8d340e4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt +new file mode 100644 +index 0000000..a388215 +--- /dev/null ++++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt +@@ -0,0 +1,16 @@ ++-- Merging decision tree log --- ++manifest ++ADDED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:1-2:12 ++INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:1-2:12 ++ package ++ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml ++ xmlns:android ++ ADDED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:11-69 ++uses-sdk ++INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml reason: use-sdk injection requested ++INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml ++INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml ++ android:targetSdkVersion ++ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml ++ android:minSdkVersion ++ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 +new file mode 100644 +index 0000000..d05aa84 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 +new file mode 100644 +index 0000000..9955d46 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 +new file mode 100644 +index 0000000..79253a3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 +new file mode 100644 +index 0000000..c9e0e8c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 +new file mode 100644 +index 0000000..ae977d3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 +new file mode 100644 +index 0000000..dd0c9c1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 +new file mode 100644 +index 0000000..8552ff1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +new file mode 100644 +index 0000000..ebf5e07 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module +new file mode 100644 +index 0000000..1698483 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class +new file mode 100644 +index 0000000..a9b9eb0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class +new file mode 100644 +index 0000000..db638ca +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class +new file mode 100644 +index 0000000..0fbaa90 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class +new file mode 100644 +index 0000000..ce1128e +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class +new file mode 100644 +index 0000000..2054200 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class +new file mode 100644 +index 0000000..7ef226b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class +new file mode 100644 +index 0000000..162566c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class +new file mode 100644 +index 0000000..7477be8 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class +new file mode 100644 +index 0000000..3516405 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class +new file mode 100644 +index 0000000..5145552 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class +new file mode 100644 +index 0000000..e813d1a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class +new file mode 100644 +index 0000000..e6c0538 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class +new file mode 100644 +index 0000000..b2e5cfc +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class +new file mode 100644 +index 0000000..a672b48 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class +new file mode 100644 +index 0000000..949a5b9 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class +new file mode 100644 +index 0000000..8e26a44 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class +new file mode 100644 +index 0000000..8c2948d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class +new file mode 100644 +index 0000000..ab7c203 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class +new file mode 100644 +index 0000000..3262de8 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class +new file mode 100644 +index 0000000..a6b7907 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class +new file mode 100644 +index 0000000..a41fe7d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class +new file mode 100644 +index 0000000..ec0f170 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class +new file mode 100644 +index 0000000..d7fe609 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class +new file mode 100644 +index 0000000..03aec60 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class +new file mode 100644 +index 0000000..35fb8cd +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class +new file mode 100644 +index 0000000..e85f537 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class +new file mode 100644 +index 0000000..efa138a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class +new file mode 100644 +index 0000000..c328ffb +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class +new file mode 100644 +index 0000000..81dc3f7 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class +new file mode 100644 +index 0000000..bf9687d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class +new file mode 100644 +index 0000000..a011166 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class +new file mode 100644 +index 0000000..2dfe0a5 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class +new file mode 100644 +index 0000000..24c319c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class +new file mode 100644 +index 0000000..7c1c2f6 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class +new file mode 100644 +index 0000000..68c48f1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class +new file mode 100644 +index 0000000..0dceebe +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class +new file mode 100644 +index 0000000..6116962 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class +new file mode 100644 +index 0000000..1f63a29 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class +new file mode 100644 +index 0000000..35fd981 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class +new file mode 100644 +index 0000000..5b3a99d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class +new file mode 100644 +index 0000000..e1e118c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class +new file mode 100644 +index 0000000..8955650 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class +new file mode 100644 +index 0000000..fdbd8c4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class +new file mode 100644 +index 0000000..49bd1a1 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class +new file mode 100644 +index 0000000..1b9ff2b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class +new file mode 100644 +index 0000000..24ff469 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class +new file mode 100644 +index 0000000..8623659 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class +new file mode 100644 +index 0000000..c054558 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class +new file mode 100644 +index 0000000..3ba0b21 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class +new file mode 100644 +index 0000000..435095f +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class +new file mode 100644 +index 0000000..7d79368 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class +new file mode 100644 +index 0000000..7c35b62 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class +new file mode 100644 +index 0000000..055451a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class +new file mode 100644 +index 0000000..be801e5 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class +new file mode 100644 +index 0000000..8bcae8d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class +new file mode 100644 +index 0000000..550135d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class +new file mode 100644 +index 0000000..257de83 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class +new file mode 100644 +index 0000000..9e8c1b9 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class +new file mode 100644 +index 0000000..2c42f4a +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class +new file mode 100644 +index 0000000..5ae25b4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class +new file mode 100644 +index 0000000..af3decf +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class +new file mode 100644 +index 0000000..9bc6115 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class +new file mode 100644 +index 0000000..659e439 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class +new file mode 100644 +index 0000000..2456c95 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class +new file mode 100644 +index 0000000..38ce458 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class +new file mode 100644 +index 0000000..bc906a9 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class +new file mode 100644 +index 0000000..07bd865 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class +new file mode 100644 +index 0000000..5e67aa0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class +new file mode 100644 +index 0000000..6ba65f2 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class +new file mode 100644 +index 0000000..647f782 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class +new file mode 100644 +index 0000000..0f20e85 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class +new file mode 100644 +index 0000000..8a576c2 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class +new file mode 100644 +index 0000000..8a59f22 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class +new file mode 100644 +index 0000000..32d6d1f +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class +new file mode 100644 +index 0000000..2679ae0 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class +new file mode 100644 +index 0000000..2af2d2c +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class +new file mode 100644 +index 0000000..d8a4aa3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class +new file mode 100644 +index 0000000..8348d9d +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class +new file mode 100644 +index 0000000..435293b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class +new file mode 100644 +index 0000000..c28e02b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class +new file mode 100644 +index 0000000..990ca48 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class +new file mode 100644 +index 0000000..07a503b +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class +new file mode 100644 +index 0000000..efa3ee3 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class +new file mode 100644 +index 0000000..75d1cd4 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class +new file mode 100644 +index 0000000..535aad5 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class differ +diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class +new file mode 100644 +index 0000000..0143f64 +Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class differ +diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt +index 1ac0fd0..953eb59 100644 +--- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt ++++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt +@@ -1,5 +1,6 @@ + package com.brentvatne.common.api + ++import android.graphics.Color + import com.brentvatne.common.toolbox.ReactBridgeUtils + import com.facebook.react.bridge.ReadableMap + +@@ -22,6 +23,17 @@ class SubtitleStyle public constructor() { + var subtitlesFollowVideo = true + private set + ++ // Extended styling (used by ExoPlayerView via Media3 SubtitleView) ++ // Stored as Android color ints to avoid parsing multiple times. ++ var textColor: Int? = null ++ private set ++ var backgroundColor: Int? = null ++ private set ++ var edgeType: String? = null ++ private set ++ var edgeColor: Int? = null ++ private set ++ + companion object { + private const val PROP_FONT_SIZE_TRACK = "fontSize" + private const val PROP_PADDING_BOTTOM = "paddingBottom" +@@ -31,6 +43,21 @@ class SubtitleStyle public constructor() { + private const val PROP_OPACITY = "opacity" + private const val PROP_SUBTITLES_FOLLOW_VIDEO = "subtitlesFollowVideo" + ++ // Extended props (optional) ++ private const val PROP_TEXT_COLOR = "textColor" ++ private const val PROP_BACKGROUND_COLOR = "backgroundColor" ++ private const val PROP_EDGE_TYPE = "edgeType" ++ private const val PROP_EDGE_COLOR = "edgeColor" ++ ++ private fun parseColorOrNull(value: String?): Int? { ++ if (value.isNullOrBlank()) return null ++ return try { ++ Color.parseColor(value) ++ } catch (_: IllegalArgumentException) { ++ null ++ } ++ } ++ + @JvmStatic + fun parse(src: ReadableMap?): SubtitleStyle { + val subtitleStyle = SubtitleStyle() +@@ -41,6 +68,13 @@ class SubtitleStyle public constructor() { + subtitleStyle.paddingRight = ReactBridgeUtils.safeGetInt(src, PROP_PADDING_RIGHT, 0) + subtitleStyle.opacity = ReactBridgeUtils.safeGetFloat(src, PROP_OPACITY, 1f) + subtitleStyle.subtitlesFollowVideo = ReactBridgeUtils.safeGetBool(src, PROP_SUBTITLES_FOLLOW_VIDEO, true) ++ ++ // Extended styling ++ subtitleStyle.textColor = parseColorOrNull(ReactBridgeUtils.safeGetString(src, PROP_TEXT_COLOR, null)) ++ subtitleStyle.backgroundColor = parseColorOrNull(ReactBridgeUtils.safeGetString(src, PROP_BACKGROUND_COLOR, null)) ++ subtitleStyle.edgeType = ReactBridgeUtils.safeGetString(src, PROP_EDGE_TYPE, null) ++ subtitleStyle.edgeColor = parseColorOrNull(ReactBridgeUtils.safeGetString(src, PROP_EDGE_COLOR, null)) ++ + return subtitleStyle + } + } +diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt +index bb945fe..2d3f8ca 100644 +--- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt ++++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt +@@ -10,11 +10,14 @@ import android.widget.FrameLayout + import android.widget.TextView + import androidx.media3.common.Player + import androidx.media3.common.Timeline ++import androidx.media3.common.text.CueGroup + import androidx.media3.common.util.UnstableApi + import androidx.media3.exoplayer.ExoPlayer + import androidx.media3.ui.AspectRatioFrameLayout ++import androidx.media3.ui.CaptionStyleCompat + import androidx.media3.ui.DefaultTimeBar + import androidx.media3.ui.PlayerView ++import androidx.media3.ui.SubtitleView + import com.brentvatne.common.api.ResizeMode + import com.brentvatne.common.api.SubtitleStyle + +@@ -52,15 +55,58 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute + resizeMode = androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT + } + ++ /** ++ * Subtitles rendered in a full-size overlay (NOT inside PlayerView's content frame). ++ * This keeps subtitles anchored in-place even when the video surface/content frame moves ++ * due to aspect ratio / resizeMode changes. ++ * ++ * Controlled by SubtitleStyle.subtitlesFollowVideo. ++ */ ++ private val overlaySubtitleView = SubtitleView(context).apply { ++ layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) ++ visibility = View.GONE ++ // We control styling via SubtitleStyle; don't pull Android system caption defaults. ++ setApplyEmbeddedStyles(true) ++ setApplyEmbeddedFontSizes(true) ++ } ++ ++ private fun updateSubtitleRenderingMode() { ++ val internalSubtitleView = playerView.subtitleView ++ val followVideo = localStyle.subtitlesFollowVideo ++ val shouldShow = localStyle.opacity != 0.0f ++ ++ if (followVideo) { ++ internalSubtitleView?.visibility = if (shouldShow) View.VISIBLE else View.GONE ++ overlaySubtitleView.visibility = View.GONE ++ } else { ++ // Hard-disable PlayerView's internal subtitle view. PlayerView can recreate/toggle this view ++ // during resize/layout, so we re-assert this in multiple lifecycle points. ++ internalSubtitleView?.visibility = View.GONE ++ internalSubtitleView?.alpha = 0f ++ overlaySubtitleView.visibility = if (shouldShow) View.VISIBLE else View.GONE ++ overlaySubtitleView.alpha = 1f ++ } ++ } ++ + init { + // Add PlayerView with explicit layout parameters + val playerViewLayoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) + addView(playerView, playerViewLayoutParams) + ++ // Add overlay subtitles above PlayerView (so it doesn't move with video content frame) ++ val subtitleOverlayLayoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) ++ addView(overlaySubtitleView, subtitleOverlayLayoutParams) ++ + // Add live badge with its own layout parameters + val liveBadgeLayoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) + liveBadgeLayoutParams.setMargins(16, 16, 16, 16) + addView(liveBadge, liveBadgeLayoutParams) ++ ++ // PlayerView may internally recreate its subtitle view during relayouts (e.g. resizeMode changes). ++ // Ensure our rendering mode is re-applied whenever PlayerView lays out. ++ playerView.addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ -> ++ updateSubtitleRenderingMode() ++ } + } + + fun setPlayer(player: ExoPlayer?) { +@@ -80,6 +126,10 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute + playerView.resizeMode = resizeMode + } + } ++ ++ // Re-assert subtitle rendering mode for the current style. ++ updateSubtitleRenderingMode() ++ applySubtitleStyle(localStyle) + } + + fun getPlayerView(): PlayerView = playerView +@@ -108,23 +158,63 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute + } + + fun setSubtitleStyle(style: SubtitleStyle) { ++ localStyle = style ++ applySubtitleStyle(localStyle) ++ } ++ ++ private fun applySubtitleStyle(style: SubtitleStyle) { ++ updateSubtitleRenderingMode() ++ + playerView.subtitleView?.let { subtitleView -> +- // Reset to defaults +- subtitleView.setUserDefaultStyle() +- subtitleView.setUserDefaultTextSize() ++ // Important: ++ // Avoid inheriting Android system caption settings via setUserDefaultStyle(), ++ // because those can force a background/window that the app doesn't want. ++ val resolvedTextColor = style.textColor ?: CaptionStyleCompat.DEFAULT.foregroundColor ++ val resolvedBackgroundColor = style.backgroundColor ?: Color.TRANSPARENT ++ val resolvedEdgeColor = style.edgeColor ?: Color.BLACK ++ ++ val resolvedEdgeType = when (style.edgeType?.lowercase()) { ++ "outline" -> CaptionStyleCompat.EDGE_TYPE_OUTLINE ++ "shadow" -> CaptionStyleCompat.EDGE_TYPE_DROP_SHADOW ++ else -> CaptionStyleCompat.EDGE_TYPE_NONE ++ } ++ ++ // windowColor MUST be transparent to avoid the "caption window" background. ++ val captionStyle = CaptionStyleCompat( ++ resolvedTextColor, ++ resolvedBackgroundColor, ++ Color.TRANSPARENT, ++ resolvedEdgeType, ++ resolvedEdgeColor, ++ null ++ ) ++ subtitleView.setStyle(captionStyle) + +- // Apply custom styling ++ // Text size: if not provided, fall back to user default size. + if (style.fontSize > 0) { +- subtitleView.setFixedTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, style.fontSize.toFloat()) ++ // Use DIP so the value matches React Native's dp-based fontSize more closely. ++ // SP would multiply by system fontScale and makes "30" look larger than RN "30". ++ subtitleView.setFixedTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, style.fontSize.toFloat()) ++ } else { ++ subtitleView.setUserDefaultTextSize() + } + ++ // Horizontal padding is still useful (safe area); vertical offset is handled via bottomPaddingFraction. + subtitleView.setPadding( + style.paddingLeft, + style.paddingTop, + style.paddingRight, +- style.paddingBottom ++ 0 + ) + ++ // Bottom offset for *internal* subtitles: ++ // Use Media3 SubtitleView's bottomPaddingFraction (moves cues up) rather than raw view padding. ++ if (style.paddingBottom > 0 && playerView.height > 0) { ++ val fraction = (style.paddingBottom.toFloat() / playerView.height.toFloat()) ++ .coerceIn(0f, 0.9f) ++ subtitleView.setBottomPaddingFraction(fraction) ++ } ++ + if (style.opacity != 0.0f) { + subtitleView.alpha = style.opacity + subtitleView.visibility = android.view.View.VISIBLE +@@ -132,7 +222,59 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute + subtitleView.visibility = android.view.View.GONE + } + } +- localStyle = style ++ ++ // Apply the same styling to the overlay subtitle view. ++ run { ++ val subtitleView = overlaySubtitleView ++ ++ val resolvedTextColor = style.textColor ?: CaptionStyleCompat.DEFAULT.foregroundColor ++ val resolvedBackgroundColor = style.backgroundColor ?: Color.TRANSPARENT ++ val resolvedEdgeColor = style.edgeColor ?: Color.BLACK ++ ++ val resolvedEdgeType = when (style.edgeType?.lowercase()) { ++ "outline" -> CaptionStyleCompat.EDGE_TYPE_OUTLINE ++ "shadow" -> CaptionStyleCompat.EDGE_TYPE_DROP_SHADOW ++ else -> CaptionStyleCompat.EDGE_TYPE_NONE ++ } ++ ++ val captionStyle = CaptionStyleCompat( ++ resolvedTextColor, ++ resolvedBackgroundColor, ++ Color.TRANSPARENT, ++ resolvedEdgeType, ++ resolvedEdgeColor, ++ null ++ ) ++ subtitleView.setStyle(captionStyle) ++ ++ if (style.fontSize > 0) { ++ // Use DIP so the value matches React Native's dp-based fontSize more closely. ++ subtitleView.setFixedTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, style.fontSize.toFloat()) ++ } else { ++ subtitleView.setUserDefaultTextSize() ++ } ++ ++ subtitleView.setPadding( ++ style.paddingLeft, ++ style.paddingTop, ++ style.paddingRight, ++ 0 ++ ) ++ ++ // Bottom offset relative to the full view height (stable even when video content frame moves). ++ val h = height.takeIf { it > 0 } ?: subtitleView.height ++ if (style.paddingBottom > 0 && h > 0) { ++ val fraction = (style.paddingBottom.toFloat() / h.toFloat()) ++ .coerceIn(0f, 0.9f) ++ subtitleView.setBottomPaddingFraction(fraction) ++ } else { ++ subtitleView.setBottomPaddingFraction(0f) ++ } ++ ++ if (style.opacity != 0.0f) { ++ subtitleView.alpha = style.opacity ++ } ++ } + } + + fun setShutterColor(color: Int) { +@@ -223,6 +365,13 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute + } + + private val playerListener = object : Player.Listener { ++ override fun onCues(cueGroup: CueGroup) { ++ // Keep overlay subtitles in sync. This does NOT interfere with PlayerView's own subtitle rendering. ++ // When subtitlesFollowVideo=false, overlaySubtitleView is the visible one. ++ updateSubtitleRenderingMode() ++ overlaySubtitleView.setCues(cueGroup.cues) ++ } ++ + override fun onTimelineChanged(timeline: Timeline, reason: Int) { + playerView.post { + playerView.requestLayout() +@@ -284,6 +433,9 @@ class ExoPlayerView @JvmOverloads constructor(context: Context, attrs: Attribute + pendingResizeMode?.let { resizeMode -> + playerView.resizeMode = resizeMode + } ++ // Re-apply bottomPaddingFraction once we have a concrete height. ++ updateSubtitleRenderingMode() ++ applySubtitleStyle(localStyle) + } + } + } diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java -index e16ac96..8018a72 100644 +index e16ac96..54221ef 100644 --- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -228,7 +228,8 @@ public class ReactExoplayerView extends FrameLayout implements @@ -967,8 +2968,30 @@ index e16ac96..8018a72 100644 DebugLog.d(TAG, "selectTextTrackInternal: type=" + type + ", value=" + value); -@@ -2166,18 +2226,19 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2147,6 +2207,11 @@ public class ReactExoplayerView extends FrameLayout implements + TrackGroupArray groups = info.getTrackGroups(textRendererIndex); + boolean trackFound = false; ++ // react-native-video uses a flattened `textTracks` list on the JS side. ++ // For HLS/DASH, each TrackGroup often contains a single track at index 0, ++ // so comparing against `trackIndex` alone makes only the first subtitle selectable. ++ int flattenedIndex = 0; ++ + for (int groupIndex = 0; groupIndex < groups.length; groupIndex++) { + TrackGroup group = groups.get(groupIndex); + for (int trackIndex = 0; trackIndex < group.length; trackIndex++) { +@@ -2159,25 +2224,28 @@ public class ReactExoplayerView extends FrameLayout implements + isMatch = true; + } else if ("index".equals(type)) { + int targetIndex = ReactBridgeUtils.safeParseInt(value, -1); +- if (targetIndex == trackIndex) { ++ if (targetIndex == flattenedIndex) { + isMatch = true; + } + } + ++ flattenedIndex++; ++ if (isMatch) { TrackSelectionOverride override = new TrackSelectionOverride(group, - java.util.Arrays.asList(trackIndex)); @@ -990,7 +3013,7 @@ index e16ac96..8018a72 100644 } } } -@@ -2198,7 +2259,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2198,7 +2266,8 @@ public class ReactExoplayerView extends FrameLayout implements } public void setSelectedTrack(int trackType, String type, String value) { @@ -1000,7 +3023,7 @@ index e16ac96..8018a72 100644 if (controls) { return; -@@ -2272,9 +2334,11 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2272,9 +2341,11 @@ public class ReactExoplayerView extends FrameLayout implements usingExactMatch = true; break; } else if (isUsingContentResolution) { @@ -1014,7 +3037,7 @@ index e16ac96..8018a72 100644 // Higher quality match closestFormat = format; closestTrackIndex = j; -@@ -2285,7 +2349,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2285,7 +2356,8 @@ public class ReactExoplayerView extends FrameLayout implements } } } @@ -1024,7 +3047,7 @@ index e16ac96..8018a72 100644 if (closestFormat == null && isUsingContentResolution && !usingExactMatch) { // No close match found - so we pick the lowest quality int minHeight = Integer.MAX_VALUE; -@@ -2308,8 +2373,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2308,8 +2380,8 @@ public class ReactExoplayerView extends FrameLayout implements } } else if (trackType == C.TRACK_TYPE_TEXT && Util.SDK_INT > 18) { // Text default // Use system settings if possible @@ -1035,7 +3058,7 @@ index e16ac96..8018a72 100644 if (captioningManager != null && captioningManager.isEnabled()) { groupIndex = getGroupIndexForDefaultLocale(groups); } -@@ -2338,7 +2403,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2338,7 +2410,7 @@ public class ReactExoplayerView extends FrameLayout implements // With only one tracks we can't remove any tracks so attempt to play it anyway tracks = allTracks; } else { @@ -1044,7 +3067,7 @@ index e16ac96..8018a72 100644 for (int k = 0; k < allTracks.size(); k++) { Format format = group.getFormat(k); if (isFormatSupported(format)) { -@@ -2364,7 +2429,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2364,7 +2436,8 @@ public class ReactExoplayerView extends FrameLayout implements .setRendererDisabled(rendererIndex, false); // Clear existing overrides for this track type to avoid conflicts @@ -1054,7 +3077,7 @@ index e16ac96..8018a72 100644 if (trackType != C.TRACK_TYPE_AUDIO || !type.equals("default")) { selectionParameters.clearOverridesOfType(selectionOverride.getType()); } -@@ -2380,7 +2446,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2380,7 +2453,7 @@ public class ReactExoplayerView extends FrameLayout implements selectionParameters.setForceHighestSupportedBitrate(false); selectionParameters.setForceLowestBitrate(false); DebugLog.d(TAG, "Audio track selection: group=" + groupIndex + ", tracks=" + tracks + @@ -1063,7 +3086,7 @@ index e16ac96..8018a72 100644 } trackSelector.setParameters(selectionParameters.build()); -@@ -2411,7 +2477,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2411,7 +2484,7 @@ public class ReactExoplayerView extends FrameLayout implements } private int getGroupIndexForDefaultLocale(TrackGroupArray groups) { @@ -1072,7 +3095,7 @@ index e16ac96..8018a72 100644 return C.INDEX_UNSET; } -@@ -2432,7 +2498,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2432,7 +2505,8 @@ public class ReactExoplayerView extends FrameLayout implements public void setSelectedVideoTrack(String type, String value) { videoTrackType = type; videoTrackValue = value; @@ -1082,7 +3105,7 @@ index e16ac96..8018a72 100644 } public void setSelectedAudioTrack(String type, String value) { -@@ -2463,9 +2530,11 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2463,9 +2537,11 @@ public class ReactExoplayerView extends FrameLayout implements } public void setEnterPictureInPictureOnLeave(boolean enterPictureInPictureOnLeave) { @@ -1096,7 +3119,7 @@ index e16ac96..8018a72 100644 } } -@@ -2473,12 +2542,14 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2473,12 +2549,14 @@ public class ReactExoplayerView extends FrameLayout implements eventEmitter.onPictureInPictureStatusChanged.invoke(isInPictureInPicture); if (fullScreenPlayerView != null && fullScreenPlayerView.isShowing()) { @@ -1113,7 +3136,7 @@ index e16ac96..8018a72 100644 View decorView = currentActivity.getWindow().getDecorView(); ViewGroup rootView = decorView.findViewById(android.R.id.content); -@@ -2488,7 +2559,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2488,7 +2566,7 @@ public class ReactExoplayerView extends FrameLayout implements LayoutParams.MATCH_PARENT); if (isInPictureInPicture) { @@ -1122,7 +3145,7 @@ index e16ac96..8018a72 100644 if (parent != null) { parent.removeView(exoPlayerView); } -@@ -2514,10 +2585,12 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2514,10 +2592,12 @@ public class ReactExoplayerView extends FrameLayout implements public void enterPictureInPictureMode() { PictureInPictureParams _pipParams = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -1137,7 +3160,7 @@ index e16ac96..8018a72 100644 } _pipParams = pictureInPictureParamsBuilder.build(); } -@@ -2526,13 +2599,15 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2526,13 +2606,15 @@ public class ReactExoplayerView extends FrameLayout implements public void exitPictureInPictureMode() { Activity currentActivity = themedReactContext.getCurrentActivity(); @@ -1155,7 +3178,7 @@ index e16ac96..8018a72 100644 for (int i = 0; i < rootView.getChildCount(); i++) { rootView.getChildAt(i).setVisibility(rootViewChildrenOriginalVisibility.get(i)); } -@@ -2630,7 +2705,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2630,7 +2712,7 @@ public class ReactExoplayerView extends FrameLayout implements if (playbackServiceConnection == null && showNotificationControls) { setupPlaybackService(); @@ -1164,7 +3187,7 @@ index e16ac96..8018a72 100644 cleanupPlaybackService(); } } -@@ -2659,12 +2734,13 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2659,12 +2741,13 @@ public class ReactExoplayerView extends FrameLayout implements } if (isFullscreen) { @@ -1184,7 +3207,7 @@ index e16ac96..8018a72 100644 eventEmitter.onVideoFullscreenPlayerWillPresent.invoke(); if (fullScreenPlayerView != null) { fullScreenPlayerView.show(); -@@ -2701,7 +2777,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2701,7 +2784,8 @@ public class ReactExoplayerView extends FrameLayout implements } @Override @@ -1194,7 +3217,7 @@ index e16ac96..8018a72 100644 DebugLog.d("DRM Info", "onDrmSessionManagerError"); eventEmitter.onVideoError.invoke("onDrmSessionManagerError", e, "3002"); } -@@ -2719,7 +2796,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2719,7 +2803,7 @@ public class ReactExoplayerView extends FrameLayout implements /** * Handling controls prop * @@ -1203,7 +3226,7 @@ index e16ac96..8018a72 100644 */ public void setControls(boolean controls) { this.controls = controls; -@@ -2728,7 +2805,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2728,7 +2812,7 @@ public class ReactExoplayerView extends FrameLayout implements // Additional configuration for proper touch handling if (controls) { exoPlayerView.setControllerAutoShow(true); @@ -1212,7 +3235,7 @@ index e16ac96..8018a72 100644 exoPlayerView.setControllerShowTimeoutMs(5000); } } -@@ -2761,8 +2838,7 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2761,8 +2845,7 @@ public class ReactExoplayerView extends FrameLayout implements Map errMap = Map.of( "message", error.getMessage(), "code", String.valueOf(error.getErrorCode()), @@ -1222,7 +3245,7 @@ index e16ac96..8018a72 100644 eventEmitter.onReceiveAdEvent.invoke("ERROR", errMap); handleDaiBackupStream(); -@@ -2796,10 +2872,10 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2796,10 +2879,10 @@ public class ReactExoplayerView extends FrameLayout implements * @return The configured IMA server-side ad insertion AdsLoader */ private ImaServerSideAdInsertionMediaSource.AdsLoader createAdsLoader() { @@ -1237,7 +3260,7 @@ index e16ac96..8018a72 100644 return adsLoaderBuilder.build(); } -@@ -2815,8 +2891,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2815,8 +2898,8 @@ public class ReactExoplayerView extends FrameLayout implements DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(getContext()); DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(dataSourceFactory); @@ -1248,7 +3271,7 @@ index e16ac96..8018a72 100644 mediaSourceFactory.setServerSideAdInsertionMediaSourceFactory(adsMediaSourceFactory); -@@ -2850,7 +2926,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2850,7 +2933,8 @@ public class ReactExoplayerView extends FrameLayout implements /** * Requests a DAI stream from Google IMA using the ExoPlayer IMA extension. * @@ -1258,7 +3281,7 @@ index e16ac96..8018a72 100644 * Supports both VOD (contentSourceId + videoId) and Live (assetKey) streams. * * @param runningSource The source containing DAI properties -@@ -2883,7 +2960,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2883,7 +2967,8 @@ public class ReactExoplayerView extends FrameLayout implements .build() .buildUpon(); } else { @@ -1268,7 +3291,7 @@ index e16ac96..8018a72 100644 } Map adTagParameters = adsProps.getAdTagParameters(); -@@ -2906,7 +2984,8 @@ public class ReactExoplayerView extends FrameLayout implements +@@ -2906,7 +2991,8 @@ public class ReactExoplayerView extends FrameLayout implements /** * Handles fallback to backup stream when DAI stream fails. * diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index 7bdfb0b7..1e9483d5 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -737,6 +737,7 @@ const AndroidVideoPlayer: React.FC = () => { {!isTransitioningStream && ( { export const VideoSurface: React.FC = ({ processedStreamUrl, + videoType, headers, volume, playbackSpeed, @@ -136,6 +138,32 @@ export const VideoSurface: React.FC = ({ // Use the actual stream URL const streamUrl = currentStreamUrl || processedStreamUrl; + const normalizeRnVideoType = (t?: string): 'm3u8' | 'mpd' | undefined => { + if (!t) return undefined; + const lower = String(t).toLowerCase(); + if (lower === 'm3u8' || lower === 'hls') return 'm3u8'; + if (lower === 'mpd' || lower === 'dash') return 'mpd'; + return undefined; + }; + + const inferRnVideoTypeFromUrl = (url?: string): 'm3u8' | 'mpd' | undefined => { + if (!url) return undefined; + const lower = url.toLowerCase(); + // Strong signals + if (/\.m3u8(\b|$)/i.test(lower) || /(^|[?&])type=(m3u8|hls)(\b|$)/i.test(lower)) return 'm3u8'; + if (/\.mpd(\b|$)/i.test(lower) || /(^|[?&])type=(mpd|dash)(\b|$)/i.test(lower)) return 'mpd'; + + // Heuristics for providers that serve HLS behind extensionless endpoints. + if (/\b(hls|m3u8|m3u)\b/i.test(lower)) return 'm3u8'; + if (/\/playlist\//i.test(lower) && (/(^|[?&])token=/.test(lower) || /(^|[?&])expires=/.test(lower))) return 'm3u8'; + + // Common fallback keywords + if (/\bdash\b/i.test(lower) || /manifest/.test(lower)) return 'mpd'; + return undefined; + }; + + const resolvedRnVideoType = normalizeRnVideoType(videoType) ?? inferRnVideoTypeFromUrl(streamUrl); + // ========== MPV Handlers ========== const handleMpvLoad = (data: { duration: number; width: number; height: number }) => { console.log('[VideoSurface] MPV onLoad received:', data); @@ -304,6 +332,7 @@ export const VideoSurface: React.FC = ({ source={{ uri: streamUrl, headers: headers, + ...(resolvedRnVideoType ? { type: resolvedRnVideoType } : null), }} paused={paused} volume={volume} diff --git a/src/screens/streams/utils.ts b/src/screens/streams/utils.ts index e531ca08..b3836339 100644 --- a/src/screens/streams/utils.ts +++ b/src/screens/streams/utils.ts @@ -155,9 +155,19 @@ export const sortStreamsByQuality = (streams: Stream[]): Stream[] => { export const inferVideoTypeFromUrl = (url?: string): string | undefined => { if (!url) return undefined; const lower = url.toLowerCase(); - if (/(\.|ext=)(m3u8)(\b|$)/i.test(lower)) return 'm3u8'; - if (/(\.|ext=)(mpd)(\b|$)/i.test(lower)) return 'mpd'; - if (/(\.|ext=)(mp4)(\b|$)/i.test(lower)) return 'mp4'; + // HLS + if (/(\.|ext=)(m3u8)(\b|$)/i.test(lower) || /\.m3u8(\b|$)/i.test(lower)) return 'm3u8'; + if (/(^|[?&])type=(m3u8|hls)(\b|$)/i.test(lower)) return 'm3u8'; + if (/\b(m3u8|m3u)\b/i.test(lower) || /\bhls\b/i.test(lower)) return 'm3u8'; + // Some providers serve HLS playlists behind extensionless endpoints. + // Example: https:///playlist/?token=...&expires=... + if (/\/playlist\//i.test(lower) && (/(^|[?&])token=/.test(lower) || /(^|[?&])expires=/.test(lower))) return 'm3u8'; + + // DASH + if (/(\.|ext=)(mpd)(\b|$)/i.test(lower) || /\.mpd(\b|$)/i.test(lower)) return 'mpd'; + + // Progressive + if (/(\.|ext=)(mp4)(\b|$)/i.test(lower) || /\.mp4(\b|$)/i.test(lower)) return 'mp4'; return undefined; }; From b33fde8c9ef92eaa77962671a21e16064195c1d0 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:36:57 +0530 Subject: [PATCH 26/58] fix for txt file playback, exoplayer --- patches/react-native-video+6.19.0.patch | 1720 +---------------- .../android/components/VideoSurface.tsx | 177 +- 2 files changed, 98 insertions(+), 1799 deletions(-) diff --git a/patches/react-native-video+6.19.0.patch b/patches/react-native-video+6.19.0.patch index 537ad182..7b94a7ac 100644 --- a/patches/react-native-video+6.19.0.patch +++ b/patches/react-native-video+6.19.0.patch @@ -1,1695 +1,3 @@ -diff --git a/node_modules/react-native-video/.DS_Store b/node_modules/react-native-video/.DS_Store -new file mode 100644 -index 0000000..efb1c25 -Binary files /dev/null and b/node_modules/react-native-video/.DS_Store differ -diff --git a/node_modules/react-native-video/android/.project b/node_modules/react-native-video/android/.project -new file mode 100644 -index 0000000..52b6df8 ---- /dev/null -+++ b/node_modules/react-native-video/android/.project -@@ -0,0 +1,28 @@ -+ -+ -+ react-native-video -+ Project react-native-video created by Buildship. -+ -+ -+ -+ -+ org.eclipse.buildship.core.gradleprojectbuilder -+ -+ -+ -+ -+ -+ org.eclipse.buildship.core.gradleprojectnature -+ -+ -+ -+ 1768982564763 -+ -+ 30 -+ -+ org.eclipse.core.resources.regexFilterMatcher -+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ -+ -+ -+ -+ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource$Factory.class -new file mode 100644 -index 0000000..2bb27a7 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.class -new file mode 100644 -index 0000000..b6d4f67 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashMediaSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashUtil.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashUtil.class -new file mode 100644 -index 0000000..8e39b9b -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DashUtil.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource$Factory.class -new file mode 100644 -index 0000000..821a44f -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.class -new file mode 100644 -index 0000000..481ec08 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/DefaultDashChunkSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/AdaptationSet.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/AdaptationSet.class -new file mode 100644 -index 0000000..3375b36 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/AdaptationSet.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifest.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifest.class -new file mode 100644 -index 0000000..7bab9ce -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifest.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Period.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Period.class -new file mode 100644 -index 0000000..5e20d52 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Period.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Representation.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Representation.class -new file mode 100644 -index 0000000..bea0c46 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/dash/manifest/Representation.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource$Factory.class -new file mode 100644 -index 0000000..3ca6828 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.class -new file mode 100644 -index 0000000..8e0850f -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/hls/HlsMediaSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class -new file mode 100644 -index 0000000..f79b294 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader.class -new file mode 100644 -index 0000000..d881c1d -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaAdsLoader.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class -new file mode 100644 -index 0000000..e185643 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class -new file mode 100644 -index 0000000..a2cc0a6 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class -new file mode 100644 -index 0000000..87a1860 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class -new file mode 100644 -index 0000000..f55e9a2 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class -new file mode 100644 -index 0000000..2e2d902 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class -new file mode 100644 -index 0000000..6904a64 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.class -new file mode 100644 -index 0000000..c95d5e5 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource$Factory.class -new file mode 100644 -index 0000000..76ab1ad -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource.class -new file mode 100644 -index 0000000..3f3cd35 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/DefaultSsChunkSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource$Factory.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource$Factory.class -new file mode 100644 -index 0000000..12964d0 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.class b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.class -new file mode 100644 -index 0000000..0d15af4 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaSource.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class -new file mode 100644 -index 0000000..b6e4634 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class -new file mode 100644 -index 0000000..da91274 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.class b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.class -new file mode 100644 -index 0000000..223a645 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdError.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdError.class -new file mode 100644 -index 0000000..aeb2518 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdError.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class -new file mode 100644 -index 0000000..3975101 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class -new file mode 100644 -index 0000000..5196841 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class -new file mode 100644 -index 0000000..3613e40 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent.class -new file mode 100644 -index 0000000..062ca54 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/AdEvent.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class -new file mode 100644 -index 0000000..b263292 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class -new file mode 100644 -index 0000000..973369b -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class -new file mode 100644 -index 0000000..ac2f7c5 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class differ -diff --git a/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class -new file mode 100644 -index 0000000..c737896 -Binary files /dev/null and b/node_modules/react-native-video/android/bin/src/main/java/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..437056e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/1b1f7401f7405bdf64e15849e880ef49/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/results.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/transformed/classes/classes_dex/classes.dex b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..f0507ca -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/.transforms/eb4edcc7da4c1a203656d845b6f99bff/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java -new file mode 100644 -index 0000000..b26a50e ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/generated/source/buildConfig/debug/com/brentvatne/react/BuildConfig.java -@@ -0,0 +1,22 @@ -+/** -+ * Automatically generated file. DO NOT MODIFY -+ */ -+package com.brentvatne.react; -+ -+public final class BuildConfig { -+ public static final boolean DEBUG = Boolean.parseBoolean("true"); -+ public static final String LIBRARY_PACKAGE_NAME = "com.brentvatne.react"; -+ public static final String BUILD_TYPE = "debug"; -+ // Field from default config. -+ public static final boolean IS_NEW_ARCHITECTURE_ENABLED = true; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_DASH = true; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_HLS = true; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_IMA = false; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_RTSP = false; -+ // Field from default config. -+ public static final boolean USE_EXOPLAYER_SMOOTH_STREAMING = true; -+} -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml -new file mode 100644 -index 0000000..728c5a9 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml -@@ -0,0 +1,7 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json -new file mode 100644 -index 0000000..247891c ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "com.brentvatne.react", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties -new file mode 100644 -index 0000000..1211b1e ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties -@@ -0,0 +1,6 @@ -+aarFormatVersion=1.0 -+aarMetadataVersion=1.0 -+minCompileSdk=1 -+minCompileSdkExtension=0 -+minAndroidGradlePluginVersion=1.0.0 -+coreLibraryDesugaringEnabled=false -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json -new file mode 100644 -index 0000000..9e26dfe ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json -@@ -0,0 +1 @@ -+{} -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar -new file mode 100644 -index 0000000..caafbe5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar -new file mode 100644 -index 0000000..0889def -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt -new file mode 100644 -index 0000000..b5a67e1 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt -@@ -0,0 +1,44 @@ -+int color player_overlay_color 0x0 -+int color red 0x0 -+int color silver_gray 0x0 -+int color white 0x0 -+int dimen controller_wrapper_padding_top 0x0 -+int dimen full_screen_margin 0x0 -+int dimen full_screen_size 0x0 -+int dimen live_wrapper_margin_top 0x0 -+int dimen position_duration_horizontal_padding 0x0 -+int dimen position_duration_text_size 0x0 -+int dimen position_duration_width 0x0 -+int dimen seekBar_height 0x0 -+int dimen seekBar_wrapper_margin_top 0x0 -+int drawable circle 0x0 -+int id exo_duration 0x0 -+int id exo_ffwd 0x0 -+int id exo_fullscreen 0x0 -+int id exo_live_container 0x0 -+int id exo_live_icon 0x0 -+int id exo_live_label 0x0 -+int id exo_next 0x0 -+int id exo_pause 0x0 -+int id exo_play 0x0 -+int id exo_play_pause_container 0x0 -+int id exo_position 0x0 -+int id exo_prev 0x0 -+int id exo_progress 0x0 -+int id exo_rew 0x0 -+int id exo_settings 0x0 -+int layout exo_legacy_player_control_view 0x0 -+int string error_drm_not_supported 0x0 -+int string error_drm_unknown 0x0 -+int string error_drm_unsupported_scheme 0x0 -+int string error_instantiating_decoder 0x0 -+int string error_no_decoder 0x0 -+int string error_no_secure_decoder 0x0 -+int string error_querying_decoders 0x0 -+int string media_playback_notification_text 0x0 -+int string media_playback_notification_title 0x0 -+int string playback_speed 0x0 -+int string select_playback_speed 0x0 -+int string settings 0x0 -+int string unrecognized_media_format 0x0 -+int style ExoMediaButton_FullScreen 0x0 -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat -new file mode 100644 -index 0000000..e62758d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/drawable_circle.xml.flat differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat -new file mode 100644 -index 0000000..bb5b5f9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/layout_exo_legacy_player_control_view.xml.flat differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -new file mode 100644 -index 0000000..2cace67 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -@@ -0,0 +1,3 @@ -+#Tue Jan 20 19:56:29 IST 2026 -+com.brentvatne.react.react-native-video-main-6\:/drawable/circle.xml=/Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml -+com.brentvatne.react.react-native-video-main-6\:/layout/exo_legacy_player_control_view.xml=/Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml -new file mode 100644 -index 0000000..e8dd9e4 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml -@@ -0,0 +1,33 @@ -+ -+ -+ #00000000 -+ #FF0000 -+ #FFBEBEBE -+ #FFFFFF -+ 4dp -+ 4dp -+ 30dp -+ 12dp -+ 4dp -+ 14sp -+ 50dp -+ 26dp -+ 4dp -+ Protected content not supported on API levels below 18 -+ An unknown DRM error occurred -+ This device does not support the required DRM scheme -+ Unable to instantiate decoder %1$s -+ This device does not provide a decoder for %1$s -+ This device does not provide a secure decoder for %1$s -+ Unable to query device decoders -+ Preparing playback -+ Media playback -+ Playback Speed -+ Select Playback Speed -+ Settings -+ Unrecognized media format -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml -new file mode 100644 -index 0000000..55ffc6b ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/debug/packageDebugResources/merger.xml -@@ -0,0 +1,5 @@ -+ -+#FFBEBEBE#00000000#FFFFFF#FF00004dp4dp12dp4dp4dp50dp26dp30dp14spThis device does not provide a decoder for %1$sThis device does not provide a secure decoder for %1$sUnable to query device decodersUnable to instantiate decoder %1$sProtected content not supported on API levels below 18Unrecognized media formatThis device does not support the required DRM schemeAn unknown DRM error occurredSettingsPlayback SpeedSelect Playback SpeedMedia playbackPreparing playback -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml -new file mode 100644 -index 0000000..8769311 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugAssets/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -new file mode 100644 -index 0000000..af687a7 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugJniLibFolders/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml -new file mode 100644 -index 0000000..65138a3 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/incremental/mergeDebugShaders/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module -new file mode 100644 -index 0000000..1698483 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-video_debug.kotlin_module differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class -new file mode 100644 -index 0000000..b019110 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader$Builder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class -new file mode 100644 -index 0000000..5e16e53 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaAdsLoader.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class -new file mode 100644 -index 0000000..426cee4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader$Builder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class -new file mode 100644 -index 0000000..49c2648 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$AdsLoader.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class -new file mode 100644 -index 0000000..ca2a4e6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class -new file mode 100644 -index 0000000..663e8c2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionMediaSource.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class -new file mode 100644 -index 0000000..fb160cd -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/ima/ImaServerSideAdInsertionUriBuilder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class -new file mode 100644 -index 0000000..b08faeb -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource$Factory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class -new file mode 100644 -index 0000000..2f92e20 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/androidx/media3/exoplayer/rtsp/RtspMediaSource.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class -new file mode 100644 -index 0000000..d05aa84 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class -new file mode 100644 -index 0000000..9955d46 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$2.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class -new file mode 100644 -index 0000000..79253a3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$3.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class -new file mode 100644 -index 0000000..f4a565b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$4.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class -new file mode 100644 -index 0000000..ae977d3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$OnAudioFocusChangedListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class -new file mode 100644 -index 0000000..dd0c9c1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView$RNVLoadControl.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class -new file mode 100644 -index 0000000..9f565f0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/exoplayer/ReactExoplayerView.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class -new file mode 100644 -index 0000000..4c5c87e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/brentvatne/react/BuildConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class -new file mode 100644 -index 0000000..0a9b7a7 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdError.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class -new file mode 100644 -index 0000000..1380a05 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent$AdErrorListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class -new file mode 100644 -index 0000000..07ab3fa -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdErrorEvent.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class -new file mode 100644 -index 0000000..dbe9984 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent$AdEventListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class -new file mode 100644 -index 0000000..88ae34c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/AdEvent.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class -new file mode 100644 -index 0000000..a3184b3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkFactory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class -new file mode 100644 -index 0000000..264cd83 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ConcreteImaSdkSettings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class -new file mode 100644 -index 0000000..46cea81 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkFactory.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class -new file mode 100644 -index 0000000..a4cef0d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt -new file mode 100644 -index 0000000..987e479 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt -@@ -0,0 +1,46 @@ -+R_DEF: Internal format may change without notice -+local -+color player_overlay_color -+color red -+color silver_gray -+color white -+dimen controller_wrapper_padding_top -+dimen full_screen_margin -+dimen full_screen_size -+dimen live_wrapper_margin_top -+dimen position_duration_horizontal_padding -+dimen position_duration_text_size -+dimen position_duration_width -+dimen seekBar_height -+dimen seekBar_wrapper_margin_top -+drawable circle -+id exo_duration -+id exo_ffwd -+id exo_fullscreen -+id exo_live_container -+id exo_live_icon -+id exo_live_label -+id exo_next -+id exo_pause -+id exo_play -+id exo_play_pause_container -+id exo_position -+id exo_prev -+id exo_progress -+id exo_rew -+id exo_settings -+layout exo_legacy_player_control_view -+string error_drm_not_supported -+string error_drm_unknown -+string error_drm_unsupported_scheme -+string error_instantiating_decoder -+string error_no_decoder -+string error_no_secure_decoder -+string error_querying_decoders -+string media_playback_notification_text -+string media_playback_notification_title -+string playback_speed -+string select_playback_speed -+string settings -+string unrecognized_media_format -+style ExoMediaButton.FullScreen -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt -new file mode 100644 -index 0000000..2300097 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt -@@ -0,0 +1,7 @@ -+1 -+2 -+4 -+5 -+6 -+7 -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml -new file mode 100644 -index 0000000..728c5a9 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml -@@ -0,0 +1,7 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json -new file mode 100644 -index 0000000..0637a08 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json -@@ -0,0 +1 @@ -+[] -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt -new file mode 100644 -index 0000000..08f4ebe ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt -@@ -0,0 +1 @@ -+0 Warning/Error -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml -new file mode 100644 -index 0000000..9f06d7c ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/drawable/circle.xml -@@ -0,0 +1,6 @@ -+ -+ -+ -+ -+ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml -new file mode 100644 -index 0000000..e0babc4 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/layout/exo_legacy_player_control_view.xml -@@ -0,0 +1,120 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml -new file mode 100644 -index 0000000..e8dd9e4 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/packaged_res/debug/packageDebugResources/values/values.xml -@@ -0,0 +1,33 @@ -+ -+ -+ #00000000 -+ #FF0000 -+ #FFBEBEBE -+ #FFFFFF -+ 4dp -+ 4dp -+ 30dp -+ 12dp -+ 4dp -+ 14sp -+ 50dp -+ 26dp -+ 4dp -+ Protected content not supported on API levels below 18 -+ An unknown DRM error occurred -+ This device does not support the required DRM scheme -+ Unable to instantiate decoder %1$s -+ This device does not provide a decoder for %1$s -+ This device does not provide a secure decoder for %1$s -+ Unable to query device decoders -+ Preparing playback -+ Media playback -+ Playback Speed -+ Select Playback Speed -+ Settings -+ Unrecognized media format -+ -+ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar -new file mode 100644 -index 0000000..09d85c6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt -new file mode 100644 -index 0000000..1cb95ed ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt -@@ -0,0 +1,45 @@ -+com.brentvatne.react -+color player_overlay_color -+color red -+color silver_gray -+color white -+dimen controller_wrapper_padding_top -+dimen full_screen_margin -+dimen full_screen_size -+dimen live_wrapper_margin_top -+dimen position_duration_horizontal_padding -+dimen position_duration_text_size -+dimen position_duration_width -+dimen seekBar_height -+dimen seekBar_wrapper_margin_top -+drawable circle -+id exo_duration -+id exo_ffwd -+id exo_fullscreen -+id exo_live_container -+id exo_live_icon -+id exo_live_label -+id exo_next -+id exo_pause -+id exo_play -+id exo_play_pause_container -+id exo_position -+id exo_prev -+id exo_progress -+id exo_rew -+id exo_settings -+layout exo_legacy_player_control_view -+string error_drm_not_supported -+string error_drm_unknown -+string error_drm_unsupported_scheme -+string error_instantiating_decoder -+string error_no_decoder -+string error_no_secure_decoder -+string error_querying_decoders -+string media_playback_notification_text -+string media_playback_notification_title -+string playback_speed -+string select_playback_speed -+string settings -+string unrecognized_media_format -+style ExoMediaButton_FullScreen -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab -new file mode 100644 -index 0000000..a71e9f1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream -new file mode 100644 -index 0000000..1a55594 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len -new file mode 100644 -index 0000000..74ddf64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len -new file mode 100644 -index 0000000..41d6c24 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at -new file mode 100644 -index 0000000..4565290 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i -new file mode 100644 -index 0000000..8a80b7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab -new file mode 100644 -index 0000000..a15e3c2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream -new file mode 100644 -index 0000000..1d1d548 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len -new file mode 100644 -index 0000000..3247724 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len -new file mode 100644 -index 0000000..bba171d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at -new file mode 100644 -index 0000000..cac8122 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i -new file mode 100644 -index 0000000..045022c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab -new file mode 100644 -index 0000000..8d9b86c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream -new file mode 100644 -index 0000000..1d1d548 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len -new file mode 100644 -index 0000000..3247724 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len -new file mode 100644 -index 0000000..bba171d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at -new file mode 100644 -index 0000000..ec746e0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i -new file mode 100644 -index 0000000..045022c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab -new file mode 100644 -index 0000000..d465c86 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream -new file mode 100644 -index 0000000..a49789c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len -new file mode 100644 -index 0000000..a3d0573 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len -new file mode 100644 -index 0000000..93a595b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at -new file mode 100644 -index 0000000..7d6fd0f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i -new file mode 100644 -index 0000000..1598ef3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab -new file mode 100644 -index 0000000..bc77250 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream -new file mode 100644 -index 0000000..9d05b9a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len -new file mode 100644 -index 0000000..d3e09af -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len -new file mode 100644 -index 0000000..b7d7395 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at -new file mode 100644 -index 0000000..3c9bdb8 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i -new file mode 100644 -index 0000000..af27d9c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab -new file mode 100644 -index 0000000..d4df1e4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream -new file mode 100644 -index 0000000..a9e6823 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len -new file mode 100644 -index 0000000..de8bf97 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len -new file mode 100644 -index 0000000..2a17e6e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at -new file mode 100644 -index 0000000..6fcb00a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i -new file mode 100644 -index 0000000..2073982 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab -new file mode 100644 -index 0000000..bbb0353 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream -new file mode 100644 -index 0000000..7214377 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len -new file mode 100644 -index 0000000..86b154b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len -new file mode 100644 -index 0000000..882f24f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values -new file mode 100644 -index 0000000..5871667 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at -new file mode 100644 -index 0000000..932d4a9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s -new file mode 100644 -index 0000000..b8a6997 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s -@@ -0,0 +1 @@ -+ØÓÕÜ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i -new file mode 100644 -index 0000000..0cbafa1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab -new file mode 100644 -index 0000000..d448037 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream -new file mode 100644 -index 0000000..1a55594 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len -new file mode 100644 -index 0000000..74ddf64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len -new file mode 100644 -index 0000000..41d6c24 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at -new file mode 100644 -index 0000000..8e087d3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i -new file mode 100644 -index 0000000..8a80b7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab -new file mode 100644 -index 0000000..199d021 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream -new file mode 100644 -index 0000000..90b21c4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len -new file mode 100644 -index 0000000..4cb813c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len -new file mode 100644 -index 0000000..385642d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at -new file mode 100644 -index 0000000..b96c547 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i -new file mode 100644 -index 0000000..5e4a0c0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab -new file mode 100644 -index 0000000..421cdf6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream -new file mode 100644 -index 0000000..ae4ac93 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len -new file mode 100644 -index 0000000..6dc1435 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len -new file mode 100644 -index 0000000..42df8b9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at -new file mode 100644 -index 0000000..b83a0f5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i -new file mode 100644 -index 0000000..f0c9463 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab -new file mode 100644 -index 0000000..b55f912 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab -@@ -0,0 +1,2 @@ -+50 -+0 -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab -new file mode 100644 -index 0000000..c9da9ed -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream -new file mode 100644 -index 0000000..1a55594 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len -new file mode 100644 -index 0000000..74ddf64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len -new file mode 100644 -index 0000000..41d6c24 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at -new file mode 100644 -index 0000000..e1e0ed2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i -new file mode 100644 -index 0000000..8a80b7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab -new file mode 100644 -index 0000000..b880e05 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream -new file mode 100644 -index 0000000..845a3a2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len -new file mode 100644 -index 0000000..c4a5886 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len -new file mode 100644 -index 0000000..48e9f9a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at -new file mode 100644 -index 0000000..ea06838 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i -new file mode 100644 -index 0000000..574f909 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab -new file mode 100644 -index 0000000..cf7ebd8 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream -new file mode 100644 -index 0000000..a740bf4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len -new file mode 100644 -index 0000000..a4a7322 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len -new file mode 100644 -index 0000000..220a36c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values -new file mode 100644 -index 0000000..cb99b44 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at -new file mode 100644 -index 0000000..2f7ab3c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s -new file mode 100644 -index 0000000..33ceb54 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s -@@ -0,0 +1 @@ -+û¥ -\ No newline at end of file -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i -new file mode 100644 -index 0000000..2c1a9ba -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin -new file mode 100644 -index 0000000..1eefcf0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/cacheable/last-build.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin -new file mode 100644 -index 0000000..3ab367b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin -new file mode 100644 -index 0000000..8d340e4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/kotlin/compileDebugKotlin/local-state/build-history.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt -new file mode 100644 -index 0000000..a388215 ---- /dev/null -+++ b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/outputs/logs/manifest-merger-debug-report.txt -@@ -0,0 +1,16 @@ -+-- Merging decision tree log --- -+manifest -+ADDED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:1-2:12 -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:1-2:12 -+ package -+ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+ xmlns:android -+ ADDED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml:1:11-69 -+uses-sdk -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml reason: use-sdk injection requested -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+ android:targetSdkVersion -+ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -+ android:minSdkVersion -+ INJECTED from /Users/nayifnoushad/Documents/Projects/NuvioStreaming/node_modules/react-native-video/android/src/main/AndroidManifestNew.xml -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 -new file mode 100644 -index 0000000..d05aa84 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$1.class.uniqueId3 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 -new file mode 100644 -index 0000000..9955d46 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$2.class.uniqueId5 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 -new file mode 100644 -index 0000000..79253a3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$3.class.uniqueId1 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 -new file mode 100644 -index 0000000..c9e0e8c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$4.class.uniqueId6 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 -new file mode 100644 -index 0000000..ae977d3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$OnAudioFocusChangedListener.class.uniqueId2 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 -new file mode 100644 -index 0000000..dd0c9c1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView$RNVLoadControl.class.uniqueId4 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 -new file mode 100644 -index 0000000..8552ff1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ReactExoplayerView.class.uniqueId0 differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin -new file mode 100644 -index 0000000..ebf5e07 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module -new file mode 100644 -index 0000000..1698483 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/META-INF/react-native-video_debug.kotlin_module differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class -new file mode 100644 -index 0000000..a9b9eb0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class -new file mode 100644 -index 0000000..db638ca -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/AdsProps.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class -new file mode 100644 -index 0000000..0fbaa90 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class -new file mode 100644 -index 0000000..ce1128e -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class -new file mode 100644 -index 0000000..2054200 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig$Live.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class -new file mode 100644 -index 0000000..7ef226b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class -new file mode 100644 -index 0000000..162566c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$BufferingStrategyEnum.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class -new file mode 100644 -index 0000000..7477be8 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class -new file mode 100644 -index 0000000..3516405 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/BufferingStrategy.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class -new file mode 100644 -index 0000000..5145552 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion$WhenMappings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class -new file mode 100644 -index 0000000..e813d1a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class -new file mode 100644 -index 0000000..e6c0538 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/CMCDProps.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class -new file mode 100644 -index 0000000..b2e5cfc -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class -new file mode 100644 -index 0000000..a672b48 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ControlsConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class -new file mode 100644 -index 0000000..949a5b9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class -new file mode 100644 -index 0000000..8e26a44 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/DRMProps.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class -new file mode 100644 -index 0000000..8c2948d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode$Mode.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class -new file mode 100644 -index 0000000..ab7c203 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ResizeMode.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class -new file mode 100644 -index 0000000..3262de8 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class -new file mode 100644 -index 0000000..a6b7907 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrack.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class -new file mode 100644 -index 0000000..a41fe7d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class -new file mode 100644 -index 0000000..ec0f170 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SideLoadedTextTrackList.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class -new file mode 100644 -index 0000000..d7fe609 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class -new file mode 100644 -index 0000000..03aec60 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class -new file mode 100644 -index 0000000..35fb8cd -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source$Metadata.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class -new file mode 100644 -index 0000000..e85f537 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Source.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class -new file mode 100644 -index 0000000..efa138a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class -new file mode 100644 -index 0000000..c328ffb -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/SubtitleStyle.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class -new file mode 100644 -index 0000000..81dc3f7 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/TimedMetadata.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class -new file mode 100644 -index 0000000..bf9687d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/Track.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class -new file mode 100644 -index 0000000..a011166 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/VideoTrack.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class -new file mode 100644 -index 0000000..2dfe0a5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType$ViewType.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class -new file mode 100644 -index 0000000..24c319c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/api/ViewType.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class -new file mode 100644 -index 0000000..7c1c2f6 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class -new file mode 100644 -index 0000000..68c48f1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/EventTypes.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class -new file mode 100644 -index 0000000..0dceebe -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$EventBuilder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class -new file mode 100644 -index 0000000..6116962 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter$VideoCustomEvent.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class -new file mode 100644 -index 0000000..1f63a29 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/react/VideoEventEmitter.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class -new file mode 100644 -index 0000000..35fd981 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/DebugLog.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class -new file mode 100644 -index 0000000..5b3a99d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/common/toolbox/ReactBridgeUtils.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class -new file mode 100644 -index 0000000..e1e118c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class -new file mode 100644 -index 0000000..8955650 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AspectRatioFrameLayout.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class -new file mode 100644 -index 0000000..fdbd8c4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class -new file mode 100644 -index 0000000..49bd1a1 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/AudioOutput.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class -new file mode 100644 -index 0000000..1b9ff2b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig$createCmcdConfiguration$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class -new file mode 100644 -index 0000000..24ff469 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/CMCDConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class -new file mode 100644 -index 0000000..8623659 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ConfigurationUtils.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class -new file mode 100644 -index 0000000..c054558 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManager.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class -new file mode 100644 -index 0000000..3ba0b21 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DRMManagerSpec.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class -new file mode 100644 -index 0000000..435095f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DataSourceUtil.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class -new file mode 100644 -index 0000000..7d79368 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/DefaultReactExoplayerConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class -new file mode 100644 -index 0000000..7c35b62 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class -new file mode 100644 -index 0000000..055451a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView$playerListener$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class -new file mode 100644 -index 0000000..be801e5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ExoPlayerView.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class -new file mode 100644 -index 0000000..8bcae8d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class -new file mode 100644 -index 0000000..550135d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView$KeepScreenOnUpdater.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class -new file mode 100644 -index 0000000..257de83 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/FullScreenPlayerView.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class -new file mode 100644 -index 0000000..9e8c1b9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtil.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class -new file mode 100644 -index 0000000..2c42f4a -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PictureInPictureUtilKt.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class -new file mode 100644 -index 0000000..5ae25b4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/PlaybackServiceBinder.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class -new file mode 100644 -index 0000000..af3decf -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin$DefaultImpls.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class -new file mode 100644 -index 0000000..9bc6115 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVExoplayerPlugin.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class -new file mode 100644 -index 0000000..659e439 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/RNVSimpleCache.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class -new file mode 100644 -index 0000000..2456c95 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerConfig.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class -new file mode 100644 -index 0000000..38ce458 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerLoadErrorHandlingPolicy.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class -new file mode 100644 -index 0000000..bc906a9 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class -new file mode 100644 -index 0000000..07bd865 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/ReactExoplayerViewManager.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class -new file mode 100644 -index 0000000..5e67aa0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackCallback.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class -new file mode 100644 -index 0000000..6ba65f2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$COMMAND.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class -new file mode 100644 -index 0000000..647f782 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion$WhenMappings.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class -new file mode 100644 -index 0000000..0f20e85 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class -new file mode 100644 -index 0000000..8a576c2 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/exoplayer/VideoPlaybackService.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class -new file mode 100644 -index 0000000..8a59f22 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/RNVPlugin.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class -new file mode 100644 -index 0000000..32d6d1f -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class -new file mode 100644 -index 0000000..2679ae0 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactNativeVideoManager.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class -new file mode 100644 -index 0000000..2af2d2c -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/ReactVideoPackage.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class -new file mode 100644 -index 0000000..d8a4aa3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class -new file mode 100644 -index 0000000..8348d9d -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoDecoderInfoModule.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class -new file mode 100644 -index 0000000..435293b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class -new file mode 100644 -index 0000000..c28e02b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/react/VideoManagerModule.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class -new file mode 100644 -index 0000000..990ca48 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/AudioBecomingNoisyReceiver.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class -new file mode 100644 -index 0000000..07a503b -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion$NO_OP$1.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class -new file mode 100644 -index 0000000..efa3ee3 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class -new file mode 100644 -index 0000000..75d1cd4 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/BecomingNoisyListener.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class -new file mode 100644 -index 0000000..535aad5 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver$Companion.class differ -diff --git a/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class -new file mode 100644 -index 0000000..0143f64 -Binary files /dev/null and b/node_modules/react-native-video/android/buildOutput_a15d4dee7fc4eda61b91308cbb6a2e72/tmp/kotlin-classes/debug/com/brentvatne/receiver/PictureInPictureReceiver.class differ diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt index 1ac0fd0..953eb59 100644 --- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/common/api/SubtitleStyle.kt @@ -1755,6 +63,34 @@ index 1ac0fd0..953eb59 100644 return subtitleStyle } } +diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.kt +index 96a7887..6e5cf08 100644 +--- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.kt ++++ b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.kt +@@ -67,8 +67,21 @@ object DataSourceUtil { + .setTransferListener(bandwidthMeter) + + if (requestHeaders != null) { +- okHttpDataSourceFactory.setDefaultRequestProperties(requestHeaders) +- if (!requestHeaders.containsKey("User-Agent")) { ++ // IMPORTANT: ++ // If `Accept-Encoding` is explicitly set (e.g. to "gzip"), OkHttp will not ++ // transparently decompress the response body. This can cause ExoPlayer to ++ // receive gzipped playlist bytes and fail HLS parsing with: ++ // "Input does not start with the #EXTM3U header". ++ // Remove any user-supplied `Accept-Encoding` so OkHttp can manage it. ++ val sanitizedHeaders = HashMap(requestHeaders.size) ++ for ((k, v) in requestHeaders) { ++ if (!k.equals("Accept-Encoding", ignoreCase = true)) { ++ sanitizedHeaders[k] = v ++ } ++ } ++ ++ okHttpDataSourceFactory.setDefaultRequestProperties(sanitizedHeaders) ++ if (!sanitizedHeaders.containsKey("User-Agent")) { + okHttpDataSourceFactory.setUserAgent(getUserAgent(context)) + } + } else { diff --git a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt b/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt index bb945fe..2d3f8ca 100644 --- a/node_modules/react-native-video/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.kt diff --git a/src/components/player/android/components/VideoSurface.tsx b/src/components/player/android/components/VideoSurface.tsx index aaad41c7..d5ff03c5 100644 --- a/src/components/player/android/components/VideoSurface.tsx +++ b/src/components/player/android/components/VideoSurface.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useRef, forwardRef, useImperativeHandle } from 'react'; +import React, { useCallback, useRef, forwardRef, useImperativeHandle, useEffect } from 'react'; import { View, TouchableWithoutFeedback, StyleSheet } from 'react-native'; import { PinchGestureHandler } from 'react-native-gesture-handler'; import Video, { VideoRef, SelectedTrack, SelectedVideoTrack, ResizeMode } from 'react-native-video'; @@ -7,28 +7,14 @@ import { styles } from '../../utils/playerStyles'; import { ResizeModeType } from '../../utils/playerTypes'; import { logger } from '../../../../utils/logger'; -// Codec error patterns that indicate we should fallback to MPV + const CODEC_ERROR_PATTERNS = [ - 'exceeds_capabilities', - 'no_exceeds_capabilities', - 'decoder_exception', - 'decoder.*error', - 'codec.*error', - 'unsupported.*codec', - 'mediacodec.*exception', - 'omx.*error', - 'dolby.*vision', - 'hevc.*error', - 'no suitable decoder', - 'decoder initialization failed', - 'format.no_decoder', - 'no_decoder', - 'decoding_failed', - 'error_code_decoding', - 'exoplaybackexception', - 'mediacodecvideodecoder', - 'mediacodecvideodecoderexception', - 'decoder failed', + 'exceeds_capabilities', 'no_exceeds_capabilities', 'decoder_exception', + 'decoder.*error', 'codec.*error', 'unsupported.*codec', + 'mediacodec.*exception', 'omx.*error', 'dolby.*vision', 'hevc.*error', + 'no suitable decoder', 'decoder initialization failed', + 'format.no_decoder', 'no_decoder', 'decoding_failed', 'error_code_decoding', + 'mediacodecvideodecoder', 'mediacodecvideodecoderexception', 'decoder failed', ]; interface VideoSurfaceProps { @@ -135,7 +121,6 @@ export const VideoSurface: React.FC = ({ subtitleDelay, subtitleAlignment, }) => { - // Use the actual stream URL const streamUrl = currentStreamUrl || processedStreamUrl; const normalizeRnVideoType = (t?: string): 'm3u8' | 'mpd' | undefined => { @@ -149,22 +134,55 @@ export const VideoSurface: React.FC = ({ const inferRnVideoTypeFromUrl = (url?: string): 'm3u8' | 'mpd' | undefined => { if (!url) return undefined; const lower = url.toLowerCase(); - // Strong signals if (/\.m3u8(\b|$)/i.test(lower) || /(^|[?&])type=(m3u8|hls)(\b|$)/i.test(lower)) return 'm3u8'; if (/\.mpd(\b|$)/i.test(lower) || /(^|[?&])type=(mpd|dash)(\b|$)/i.test(lower)) return 'mpd'; - // Heuristics for providers that serve HLS behind extensionless endpoints. if (/\b(hls|m3u8|m3u)\b/i.test(lower)) return 'm3u8'; if (/\/playlist\//i.test(lower) && (/(^|[?&])token=/.test(lower) || /(^|[?&])expires=/.test(lower))) return 'm3u8'; - // Common fallback keywords if (/\bdash\b/i.test(lower) || /manifest/.test(lower)) return 'mpd'; return undefined; }; const resolvedRnVideoType = normalizeRnVideoType(videoType) ?? inferRnVideoTypeFromUrl(streamUrl); - // ========== MPV Handlers ========== + const probeHlsResponse = useCallback(async (url: string) => { + try { + const res = await fetch(url, { method: 'GET', headers: { Range: 'bytes=0-2047' } }); + const text = await res.text(); + const prefix = text.slice(0, 200).replace(/\s+/g, ' ').trim(); + console.log('[VideoSurface] Manifest probe:', { + status: res.status, + contentType: res.headers.get('content-type'), + contentEncoding: res.headers.get('content-encoding'), + prefix, + }); + } catch (e: any) { + console.log('[VideoSurface] Manifest probe failed:', e?.message); + } + }, []); + + const exoRequestHeaders = (() => { + const merged = { ...(headers ?? {}) } as Record; + const hasUA = Object.keys(merged).some(k => k.toLowerCase() === 'user-agent'); + if (!hasUA && resolvedRnVideoType === 'm3u8') { + merged['User-Agent'] = 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36'; + merged['Accept'] = '*/*'; + } + return merged; + })(); + + const exoRequestHeadersArray = Object.entries(exoRequestHeaders).map(([key, value]) => ({ key, value })); + + const lastLoggedExoRequestKeyRef = useRef(''); + useEffect(() => { + if (!__DEV__ || !useExoPlayer) return; + const key = `${streamUrl}::${JSON.stringify(exoRequestHeaders)}`; + if (lastLoggedExoRequestKeyRef.current === key) return; + lastLoggedExoRequestKeyRef.current = key; + console.log('[VideoSurface] Headers:', exoRequestHeaders); + }, [streamUrl, useExoPlayer, exoRequestHeaders]); + const handleMpvLoad = (data: { duration: number; width: number; height: number }) => { console.log('[VideoSurface] MPV onLoad received:', data); onLoad({ @@ -197,31 +215,18 @@ export const VideoSurface: React.FC = ({ onEnd(); }; - // ========== ExoPlayer Handlers ========== const handleExoLoad = (data: any) => { - console.log('[VideoSurface] ExoPlayer onLoad received:', data); - console.log('[VideoSurface] ExoPlayer textTracks raw:', JSON.stringify(data.textTracks, null, 2)); - - // Extract track information - // IMPORTANT: - // react-native-video expects selected*Track with { type: 'index', value: <0-based array index> }. - // Some RNVideo/Exo track objects expose `index`, but it is not guaranteed to be unique or - // aligned with the list index. Using it can cause only the first item to render/select. const audioTracks = data.audioTracks?.map((t: any, i: number) => ({ id: i, name: t.title || t.language || `Track ${i + 1}`, language: t.language, })) ?? []; - const subtitleTracks = data.textTracks?.map((t: any, i: number) => { - const track = { - id: i, - name: t.title || t.language || `Track ${i + 1}`, - language: t.language, - }; - console.log('[VideoSurface] Mapped subtitle track:', track, 'original:', t); - return track; - }) ?? []; + const subtitleTracks = data.textTracks?.map((t: any, i: number) => ({ + id: i, + name: t.title || t.language || `Track ${i + 1}`, + language: t.language, + })) ?? []; if (onTracksChanged && (audioTracks.length > 0 || subtitleTracks.length > 0)) { onTracksChanged({ audioTracks, subtitleTracks }); @@ -243,45 +248,26 @@ export const VideoSurface: React.FC = ({ }; const handleExoError = (error: any) => { - console.log('[VideoSurface] ExoPlayer onError received:', JSON.stringify(error, null, 2)); - - // Extract error string - try multiple paths - let errorString = 'Unknown error'; + // Extract error message from multiple possible paths const errorParts: string[] = []; + if (typeof error?.error === 'string') errorParts.push(error.error); + if (error?.error?.errorString) errorParts.push(error.error.errorString); + if (error?.error?.errorCode) errorParts.push(String(error.error.errorCode)); + if (typeof error === 'string') errorParts.push(error); + if (error?.nativeStackAndroid) errorParts.push(error.nativeStackAndroid.join(' ')); + if (error?.message) errorParts.push(error.message); + const errorString = errorParts.length > 0 ? errorParts.join(' ') : JSON.stringify(error); - if (typeof error?.error === 'string') { - errorParts.push(error.error); - } - if (error?.error?.errorString) { - errorParts.push(error.error.errorString); - } - if (error?.error?.errorCode) { - errorParts.push(String(error.error.errorCode)); - } - if (typeof error === 'string') { - errorParts.push(error); - } - if (error?.nativeStackAndroid) { - errorParts.push(error.nativeStackAndroid.join(' ')); - } - if (error?.message) { - errorParts.push(error.message); - } - - // Combine all error parts for comprehensive checking - errorString = errorParts.length > 0 ? errorParts.join(' ') : JSON.stringify(error); - - console.log('[VideoSurface] Extracted error string:', errorString); - console.log('[VideoSurface] isCodecError result:', isCodecError(errorString)); - - // Check if this is a codec error that should trigger fallback if (isCodecError(errorString)) { - logger.warn('[VideoSurface] ExoPlayer codec error detected, triggering MPV fallback:', errorString); + logger.warn('[VideoSurface] Codec error → MPV fallback:', errorString); onCodecError?.(); - return; // Don't propagate codec errors - we're falling back silently + return; + } + + if (__DEV__ && (errorString.includes('ERROR_CODE_PARSING_MANIFEST_MALFORMED') || errorString.includes('23002'))) { + probeHlsResponse(streamUrl); } - // Non-codec errors should be propagated onError({ error: { errorString: errorString, @@ -302,7 +288,6 @@ export const VideoSurface: React.FC = ({ onSeek({ currentTime: data.currentTime }); }; - // Map ResizeModeType to react-native-video ResizeMode const getExoResizeMode = (): ResizeMode => { switch (resizeMode) { case 'cover': @@ -331,9 +316,10 @@ export const VideoSurface: React.FC = ({ ref={exoPlayerRef} source={{ uri: streamUrl, - headers: headers, + headers: exoRequestHeaders, + requestHeaders: exoRequestHeadersArray, ...(resolvedRnVideoType ? { type: resolvedRnVideoType } : null), - }} + } as any} paused={paused} volume={volume} rate={playbackSpeed} @@ -353,39 +339,18 @@ export const VideoSurface: React.FC = ({ ignoreSilentSwitch="ignore" automaticallyWaitsToMinimizeStalling={true} useTextureView={true} - // Subtitle Styling for ExoPlayer - // ExoPlayer (via our patched react-native-video) supports: - // - fontSize, paddingTop/Bottom/Left/Right, opacity, subtitlesFollowVideo - // - PLUS: textColor, backgroundColor, edgeType, edgeColor (outline/shadow) subtitleStyle={{ - // Convert MPV-scaled size back to UI size (AndroidVideoPlayer passes MPV-scaled values here) fontSize: subtitleSize ? Math.round(subtitleSize / 1.5) : 28, paddingTop: 0, - // IMPORTANT: - // Use the same unit as external subtitles (RN CustomSubtitles uses dp bottomOffset directly). - // Using MPV's subtitlePosition mapping makes internal/external offsets feel inconsistent. paddingBottom: Math.max(0, Math.round(subtitleBottomOffset ?? 0)), paddingLeft: 16, paddingRight: 16, - // Opacity controls entire subtitle view visibility - // Always keep text visible (opacity 1), background control is limited in ExoPlayer opacity: 1, subtitlesFollowVideo: false, - // Extended styling (requires our patched RNVideo on Android) textColor: subtitleColor || '#FFFFFFFF', - // Android Color.parseColor doesn't accept rgba(...). Use #AARRGGBB. - backgroundColor: - subtitleBackgroundOpacity && subtitleBackgroundOpacity > 0 - ? `#${alphaHex(subtitleBackgroundOpacity)}000000` - : '#00000000', - edgeType: - subtitleBorderSize && subtitleBorderSize > 0 - ? 'outline' - : (subtitleShadowEnabled ? 'shadow' : 'none'), - edgeColor: - (subtitleBorderSize && subtitleBorderSize > 0 && subtitleBorderColor) - ? subtitleBorderColor - : (subtitleShadowEnabled ? '#FF000000' : 'transparent'), + backgroundColor: subtitleBackgroundOpacity && subtitleBackgroundOpacity > 0 ? `#${alphaHex(subtitleBackgroundOpacity)}000000` : '#00000000', + edgeType: subtitleBorderSize && subtitleBorderSize > 0 ? 'outline' : (subtitleShadowEnabled ? 'shadow' : 'none'), + edgeColor: (subtitleBorderSize && subtitleBorderSize > 0 && subtitleBorderColor) ? subtitleBorderColor : (subtitleShadowEnabled ? '#FF000000' : 'transparent'), } as any} /> ) : ( @@ -406,7 +371,6 @@ export const VideoSurface: React.FC = ({ onTracksChanged={onTracksChanged} decoderMode={decoderMode} gpuMode={gpuMode} - // Subtitle Styling subtitleSize={subtitleSize} subtitleColor={subtitleColor} subtitleBackgroundOpacity={subtitleBackgroundOpacity} @@ -419,7 +383,6 @@ export const VideoSurface: React.FC = ({ /> )} - {/* Gesture overlay - transparent, on top of the player */} Date: Wed, 21 Jan 2026 17:48:11 +0530 Subject: [PATCH 27/58] added aspect ratio indicator --- src/components/player/AndroidVideoPlayer.tsx | 20 +++- .../android/components/GestureControls.tsx | 105 ++++++++++++------ .../player/components/GestureControls.tsx | 29 ++++- src/hooks/usePlayerGestureControls.ts | 32 ++++++ 4 files changed, 147 insertions(+), 39 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index 1e9483d5..63c81025 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -704,9 +704,21 @@ const AndroidVideoPlayer: React.FC = () => { }, []); const cycleResizeMode = useCallback(() => { - if (playerState.resizeMode === 'contain') playerState.setResizeMode('cover'); - else playerState.setResizeMode('contain'); - }, [playerState.resizeMode]); + gestureControls.showResizeModeOverlayFn(() => { + switch (playerState.resizeMode) { + case 'contain': + playerState.setResizeMode('cover'); + break; + case 'cover': + playerState.setResizeMode('stretch'); + break; + case 'stretch': + default: + playerState.setResizeMode('contain'); + break; + } + }); + }, [playerState.resizeMode, gestureControls.showResizeModeOverlayFn]); // Memoize selectedTextTrack to prevent unnecessary re-renders const memoizedSelectedTextTrack = useMemo(() => { @@ -861,6 +873,8 @@ const AndroidVideoPlayer: React.FC = () => { volume={volume} brightness={brightness} controlsTimeout={controlsTimeout} + resizeMode={playerState.resizeMode} + resizeMode={playerState.resizeMode} /> ; + resizeMode?: string; } export const GestureControls: React.FC = ({ @@ -34,7 +35,8 @@ export const GestureControls: React.FC = ({ hideControls, volume, brightness, - controlsTimeout + controlsTimeout, + resizeMode = 'contain' }) => { const getVolumeIcon = (value: number) => { @@ -151,42 +153,77 @@ export const GestureControls: React.FC = ({ {/* Volume/Brightness Pill Overlay */} {(gestureControls.showVolumeOverlay || gestureControls.showBrightnessOverlay) && ( - - - + + + + - + {gestureControls.showVolumeOverlay && volume === 0 + ? "Muted" + : `${Math.round((gestureControls.showVolumeOverlay ? volume : brightness) * 100)}%` + } + + + + )} + + {/* Aspect Ratio Overlay */} + {gestureControls.showResizeModeOverlay && ( + + - {gestureControls.showVolumeOverlay && volume === 0 - ? "Muted" - : `${Math.round((gestureControls.showVolumeOverlay ? volume : brightness) * 100)}%` - } - + + + + + + {resizeMode.charAt(0).toUpperCase() + resizeMode.slice(1)} + + )} diff --git a/src/components/player/components/GestureControls.tsx b/src/components/player/components/GestureControls.tsx index a9b46ec2..403316ff 100644 --- a/src/components/player/components/GestureControls.tsx +++ b/src/components/player/components/GestureControls.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { View, Text, StyleSheet } from 'react-native'; +import { View, Text, StyleSheet, Animated } from 'react-native'; import { TapGestureHandler, PanGestureHandler, @@ -21,6 +21,7 @@ interface GestureControlsProps { volume: number; brightness: number; controlsTimeout: React.MutableRefObject; + resizeMode?: string; } export const GestureControls: React.FC = ({ @@ -34,7 +35,8 @@ export const GestureControls: React.FC = ({ hideControls, volume, brightness, - controlsTimeout + controlsTimeout, + resizeMode = 'contain' }) => { const getVolumeIcon = (value: number) => { @@ -194,6 +196,29 @@ export const GestureControls: React.FC = ({ )} + + {gestureControls.showResizeModeOverlay && ( + + + + + + + + {resizeMode.charAt(0).toUpperCase() + resizeMode.slice(1)} + + + + )} ); }; diff --git a/src/hooks/usePlayerGestureControls.ts b/src/hooks/usePlayerGestureControls.ts index 2030ea2e..f15bd3dc 100644 --- a/src/hooks/usePlayerGestureControls.ts +++ b/src/hooks/usePlayerGestureControls.ts @@ -19,18 +19,21 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { // State for overlays const [showVolumeOverlay, setShowVolumeOverlay] = useState(false); const [showBrightnessOverlay, setShowBrightnessOverlay] = useState(false); + const [showResizeModeOverlay, setShowResizeModeOverlay] = useState(false); // Animated values const volumeGestureTranslateY = useRef(new Animated.Value(0)).current; const brightnessGestureTranslateY = useRef(new Animated.Value(0)).current; const volumeOverlayOpacity = useRef(new Animated.Value(0)).current; const brightnessOverlayOpacity = useRef(new Animated.Value(0)).current; + const resizeModeOverlayOpacity = useRef(new Animated.Value(0)).current; // Tracking refs const lastVolumeGestureY = useRef(0); const lastBrightnessGestureY = useRef(0); const volumeOverlayTimeout = useRef(null); const brightnessOverlayTimeout = useRef(null); + const resizeModeOverlayTimeout = useRef(null); // Extract config with defaults and platform adjustments const volumeRange = config.volumeRange || { min: 0, max: 1 }; @@ -152,6 +155,30 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { if (brightnessOverlayTimeout.current) { clearTimeout(brightnessOverlayTimeout.current); } + if (resizeModeOverlayTimeout.current) { + clearTimeout(resizeModeOverlayTimeout.current); + } + }; + + const showResizeModeOverlayFn = (callback?: () => void) => { + if (resizeModeOverlayTimeout.current) { + clearTimeout(resizeModeOverlayTimeout.current); + } + setShowResizeModeOverlay(true); + Animated.timing(resizeModeOverlayOpacity, { + toValue: 1, + duration: 100, + useNativeDriver: true, + }).start(() => { + if (callback) callback(); + resizeModeOverlayTimeout.current = setTimeout(() => { + Animated.timing(resizeModeOverlayOpacity, { + toValue: 0, + duration: 200, + useNativeDriver: true, + }).start(() => setShowResizeModeOverlay(false)); + }, overlayTimeout); + }); }; return { @@ -162,8 +189,13 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { // Overlay state showVolumeOverlay, showBrightnessOverlay, + showResizeModeOverlay, volumeOverlayOpacity, brightnessOverlayOpacity, + resizeModeOverlayOpacity, + + // Overlay functions + showResizeModeOverlayFn, // Cleanup cleanup, From a042cf5ca63f47d59dfa0c6d6dfc7be8b300b600 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:51:17 +0530 Subject: [PATCH 28/58] update aspect ratio indicator ios --- src/components/player/KSPlayerCore.tsx | 17 ++++++++++++++++- src/components/player/android/MpvPlayer.tsx | 4 ++++ .../player/android/components/VideoSurface.tsx | 18 ++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/components/player/KSPlayerCore.tsx b/src/components/player/KSPlayerCore.tsx index 7259813c..4d042109 100644 --- a/src/components/player/KSPlayerCore.tsx +++ b/src/components/player/KSPlayerCore.tsx @@ -802,6 +802,7 @@ const KSPlayerCore: React.FC = () => { volume={volume} brightness={brightness} controlsTimeout={controlsTimeout} + resizeMode={resizeMode} /> {/* UI Controls */} @@ -829,7 +830,21 @@ const KSPlayerCore: React.FC = () => { togglePlayback={controls.togglePlayback} skip={controls.skip} handleClose={handleClose} - cycleAspectRatio={() => setResizeMode(prev => prev === 'cover' ? 'contain' : 'cover')} + cycleAspectRatio={() => { + gestureControls.showResizeModeOverlayFn(() => { + setResizeMode(prev => { + switch (prev) { + case 'contain': + return 'cover'; + case 'cover': + return 'stretch'; + case 'stretch': + default: + return 'contain'; + } + }); + }); + }} cyclePlaybackSpeed={() => speedControl.setPlaybackSpeed(speedControl.playbackSpeed >= 2 ? 1 : speedControl.playbackSpeed + 0.25)} currentPlaybackSpeed={speedControl.playbackSpeed} setShowAudioModal={modals.setShowAudioModal} diff --git a/src/components/player/android/MpvPlayer.tsx b/src/components/player/android/MpvPlayer.tsx index b84628e8..ce3dbc46 100644 --- a/src/components/player/android/MpvPlayer.tsx +++ b/src/components/player/android/MpvPlayer.tsx @@ -10,6 +10,7 @@ export interface MpvPlayerRef { seek: (positionSeconds: number) => void; setAudioTrack: (trackId: number) => void; setSubtitleTrack: (trackId: number) => void; + setResizeMode: (mode: 'contain' | 'cover' | 'stretch') => void; } export interface MpvPlayerProps { @@ -65,6 +66,9 @@ const MpvPlayer = forwardRef((props, ref) => { setSubtitleTrack: (trackId: number) => { dispatchCommand('setSubtitleTrack', [trackId]); }, + setResizeMode: (mode: 'contain' | 'cover' | 'stretch') => { + dispatchCommand('setResizeMode', [mode]); + }, }), [dispatchCommand]); if (Platform.OS !== 'android' || !MpvPlayerNative) { diff --git a/src/components/player/android/components/VideoSurface.tsx b/src/components/player/android/components/VideoSurface.tsx index d5ff03c5..d67f2e8d 100644 --- a/src/components/player/android/components/VideoSurface.tsx +++ b/src/components/player/android/components/VideoSurface.tsx @@ -183,6 +183,12 @@ export const VideoSurface: React.FC = ({ console.log('[VideoSurface] Headers:', exoRequestHeaders); }, [streamUrl, useExoPlayer, exoRequestHeaders]); + useEffect(() => { + if (mpvPlayerRef?.current && !useExoPlayer) { + mpvPlayerRef.current.setResizeMode(getMpvResizeMode()); + } + }, [resizeMode, useExoPlayer, mpvPlayerRef]); + const handleMpvLoad = (data: { duration: number; width: number; height: number }) => { console.log('[VideoSurface] MPV onLoad received:', data); onLoad({ @@ -300,6 +306,18 @@ export const VideoSurface: React.FC = ({ } }; + const getMpvResizeMode = (): 'contain' | 'cover' | 'stretch' => { + switch (resizeMode) { + case 'cover': + return 'cover'; + case 'stretch': + return 'stretch'; + case 'contain': + default: + return 'contain'; + } + }; + const alphaHex = (opacity01: number) => { const a = Math.max(0, Math.min(1, opacity01)); return Math.round(a * 255).toString(16).padStart(2, '0').toUpperCase(); From 1931bbc558f47c50b8d9ca594825eb8f7739d7a5 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:56:38 +0530 Subject: [PATCH 29/58] removed special episodes appearing from thisweeksection --- server/sync-service | 1 + src/components/home/ThisWeekSection.tsx | 3 ++- src/screens/CalendarScreen.tsx | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) create mode 160000 server/sync-service diff --git a/server/sync-service b/server/sync-service new file mode 160000 index 00000000..e79325ec --- /dev/null +++ b/server/sync-service @@ -0,0 +1 @@ +Subproject commit e79325ecb97f797801e3499285fca75efb180aa9 diff --git a/src/components/home/ThisWeekSection.tsx b/src/components/home/ThisWeekSection.tsx index 77d0539b..bcf56b27 100644 --- a/src/components/home/ThisWeekSection.tsx +++ b/src/components/home/ThisWeekSection.tsx @@ -142,7 +142,8 @@ export const ThisWeekSection = React.memo(() => { if (!thisWeekSection) return []; // Get raw episodes (limit to 60 to be safe for performance but allow grouping) - const rawEpisodes = memoryManager.limitArraySize(thisWeekSection.data, 60); + + const rawEpisodes = memoryManager.limitArraySize(thisWeekSection.data.filter(ep => ep.season !== 0), 60); // Group by series and date const groups: Record = {}; diff --git a/src/screens/CalendarScreen.tsx b/src/screens/CalendarScreen.tsx index 39f5d2da..fa39875c 100644 --- a/src/screens/CalendarScreen.tsx +++ b/src/screens/CalendarScreen.tsx @@ -236,8 +236,8 @@ const CalendarScreen = () => { const allEpisodes = React.useMemo(() => { if (!uiReady) return [] as CalendarEpisode[]; const episodes = calendarData.reduce((acc: CalendarEpisode[], section: CalendarSection) => { - // Pre-trim section arrays defensively - const trimmed = memoryManager.limitArraySize(section.data, 500); + + const trimmed = memoryManager.limitArraySize(section.data.filter(ep => ep.season !== 0), 500); return acc.length > 1500 ? acc : [...acc, ...trimmed]; }, [] as CalendarEpisode[]); // Global cap to keep memory bounded From ef1504ad5b478e644e1694c76290fa8dcdd2e68e Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 19:21:37 +0530 Subject: [PATCH 30/58] release: 1.3.6 --- android/app/build.gradle | 4 ++-- app.json | 4 ++-- ios/Nuvio.xcodeproj/project.pbxproj | 34 ++++++++++++++--------------- ios/Nuvio/Info.plist | 6 ++--- ios/Podfile.lock | 10 ++++----- nuvio-source.json | 12 ++++++++-- 6 files changed, 38 insertions(+), 32 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index eeec964d..a36d3d3b 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -95,7 +95,7 @@ android { applicationId 'com.nuvio.app' minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 33 + versionCode 34 versionName "1.3.5" buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\"" @@ -118,7 +118,7 @@ android { def abiVersionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4] applicationVariants.all { variant -> variant.outputs.each { output -> - def baseVersionCode = 33 // Current versionCode 33 from defaultConfig + def baseVersionCode = 34 // Current versionCode 34 from defaultConfig def abiName = output.getFilter(com.android.build.OutputFile.ABI) def versionCode = baseVersionCode * 100 // Base multiplier diff --git a/app.json b/app.json index cd3a4140..6bfbcb0e 100644 --- a/app.json +++ b/app.json @@ -17,7 +17,7 @@ "ios": { "supportsTablet": true, "icon": "./assets/ios/AppIcon.appiconset/Icon-App-60x60@3x.png", - "buildNumber": "33", + "buildNumber": "34", "infoPlist": { "NSAppTransportSecurity": { "NSAllowsArbitraryLoads": true @@ -51,7 +51,7 @@ "android.permission.WRITE_SETTINGS" ], "package": "com.nuvio.app", - "versionCode": 33, + "versionCode": 34, "architectures": [ "arm64-v8a", "armeabi-v7a", diff --git a/ios/Nuvio.xcodeproj/project.pbxproj b/ios/Nuvio.xcodeproj/project.pbxproj index f1f6d3ca..a8d83f22 100644 --- a/ios/Nuvio.xcodeproj/project.pbxproj +++ b/ios/Nuvio.xcodeproj/project.pbxproj @@ -11,10 +11,10 @@ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 9FBA88F42E86ECD700892850 /* KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */; }; - 9FBA88F52E86ECD700892850 /* KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */; }; - 9FBA88F62E86ECD700892850 /* KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */; }; - 9FBA88F72E86ECD700892850 /* KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */; }; + 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */; }; + 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */; }; + 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */; }; + 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; D66ACCC72CB69F1FF14A2585 /* libPods-Nuvio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 436A6FCA2C83F29076E121BA /* libPods-Nuvio.a */; }; F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; @@ -30,10 +30,10 @@ 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Nuvio/ExpoModulesProvider.swift"; sourceTree = ""; }; 73BB213C2E9EEAC700EC03F8 /* NuvioRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = NuvioRelease.entitlements; path = Nuvio/NuvioRelease.entitlements; sourceTree = ""; }; 904B4A0A0308D3727268BA5E /* Pods-Nuvio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.debug.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.debug.xcconfig"; sourceTree = ""; }; - 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../KSPlayer/RNBridge/KSPlayerManager.m; sourceTree = ""; }; - 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerModule.swift; sourceTree = ""; }; - 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerView.swift; sourceTree = ""; }; - 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerViewManager.swift; sourceTree = ""; }; + 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../KSPlayer/RNBridge/KSPlayerManager.m; sourceTree = ""; }; + 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerModule.swift; sourceTree = ""; }; + 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerView.swift; sourceTree = ""; }; + 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerViewManager.swift; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = Nuvio/SplashScreen.storyboard; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; @@ -59,10 +59,10 @@ 73BB213C2E9EEAC700EC03F8 /* NuvioRelease.entitlements */, F11748412D0307B40044C1D9 /* AppDelegate.swift */, F11748442D0722820044C1D9 /* Nuvio-Bridging-Header.h */, - 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */, - 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */, - 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */, - 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */, + 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */, + 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */, + 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */, + 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */, BB2F792B24A3F905000567C9 /* Supporting */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, @@ -413,13 +413,11 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React", "${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies", "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); @@ -436,10 +434,10 @@ buildActionMask = 2147483647; files = ( F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */, - 9FBA88F42E86ECD700892850 /* KSPlayerViewManager.swift in Sources */, - 9FBA88F52E86ECD700892850 /* KSPlayerModule.swift in Sources */, - 9FBA88F62E86ECD700892850 /* KSPlayerManager.m in Sources */, - 9FBA88F72E86ECD700892850 /* KSPlayerView.swift in Sources */, + 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */, + 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */, + 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */, + 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */, 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/ios/Nuvio/Info.plist b/ios/Nuvio/Info.plist index faaa4a9a..9ce58aff 100644 --- a/ios/Nuvio/Info.plist +++ b/ios/Nuvio/Info.plist @@ -39,7 +39,7 @@ CFBundleVersion - 29 + 34 LSMinimumSystemVersion 12.0 LSRequiresIPhoneOS @@ -71,8 +71,6 @@ UIFileSharingEnabled - UILaunchStoryboardName - SplashScreen UILaunchScreen UIColorName @@ -80,6 +78,8 @@ UIImageName SplashScreenLegacy + UILaunchStoryboardName + SplashScreen UIRequiredDeviceCapabilities arm64 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 6b8ed683..6e35d658 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1971,7 +1971,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-video (6.18.0): + - react-native-video (6.19.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1983,7 +1983,7 @@ PODS: - React-graphics - React-ImageManager - React-jsi - - react-native-video/Video (= 6.18.0) + - react-native-video/Video (= 6.19.0) - React-NativeModulesApple - React-RCTFabric - React-renderercss @@ -1994,7 +1994,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-video/Fabric (6.18.0): + - react-native-video/Fabric (6.19.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2016,7 +2016,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - react-native-video/Video (6.18.0): + - react-native-video/Video (6.19.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -3275,7 +3275,7 @@ SPEC CHECKSUMS: react-native-safe-area-context: 37e680fc4cace3c0030ee46e8987d24f5d3bdab2 react-native-skia: 268f183f849742e9da216743ee234bd7ad81c69b react-native-slider: f954578344106f0a732a4358ce3a3e11015eb6e1 - react-native-video: f5982e21efab0dc356d92541a8a9e19581307f58 + react-native-video: bca076cfff2a3e749fc63b3ac88118e1d8ee2689 React-NativeModulesApple: a9464983ccc0f66f45e93558671f60fc7536e438 React-oscompat: 73db7dbc80edef36a9d6ed3c6c4e1724ead4236d React-perflogger: 123272debf907cc423962adafcf4513320e43757 diff --git a/nuvio-source.json b/nuvio-source.json index 51d02b3b..6f3119c1 100644 --- a/nuvio-source.json +++ b/nuvio-source.json @@ -30,12 +30,20 @@ "https://github.com/tapframe/NuvioStreaming/blob/main/screenshots/search-portrait.png?raw=true" ], "versions": [ + { + "version": "1.3.6", + "buildVersion": "34", + "date": "2026-01-21", + "localizedDescription": "# Nuvio Media Hub – v1.3.6 \n\n## Update Notes\n\n### Player & Playback\n- Updated **React Native Video** to the latest version \n- Fixed some **TXT-based streams** failing to play in ExoPlayer \n- Fixed **M3U8 streams without file extension** failing to play in ExoPlayer \n- Added more **aspect ratio options** to ExoPlayer for better viewing control \n\n### Improvements & Fixes\n- Updated several **dependencies** \n- Added an **in-built major app update downloader** (Android) \n- Various **internal fixes and stability improvements** \n\nThis update focuses on improving playback compatibility, update handling, and overall stability.", + "downloadURL": "https://github.com/tapframe/NuvioStreaming/releases/download/v1.3.6/Stable_1-3-6.ipa", + "size": 25700000 + }, { "version": "1.3.5", "buildVersion": "33", "date": "2026-01-09", "localizedDescription": "## Update Notes\n\n### ExoPlayer Subtitle Fixes\nThis update mainly focuses on fixing multiple subtitle-related issues in ExoPlayer:\n- Fixed issue where **only the first subtitle index** was being rendered \n- Fixed subtitles **always showing background** due to Android native caption settings \n- Fixed subtitles being **rendered inside the player view** \n- Fixed **subtitle bottom offset** issues \n- Merged PR **#391** by **@saifshaikh1805** \n - Fixes issue **#301**\n\n### KSPlayer Improvements\n- Improved **subtitle behavior** in KSPlayer \n- Merged PR **#394** by **@AdityasahuX07**\n\n### Settings & Persistence\n- Implemented **save and load** functionality for **Discover settings**\n\nThis release improves subtitle rendering accuracy across players and adds better persistence for user preferences.", - "downloadURL": "https://github.com/tapframe/NuvioStreaming/releases/download/v1.3.5/app-release.apk", + "downloadURL": "https://github.com/tapframe/NuvioStreaming/releases/download/v1.3.5/Stable_1-3-5.ipa", "size": 25700000 }, { @@ -43,7 +51,7 @@ "buildVersion": "32", "date": "2026-01-06", "localizedDescription": "## Update Notes\n\n### Player & Playback\n- Fixed **Android player crashes with large files** when using ExoPlayer \n - Merged PR **#361** by **@chrisk325**\n\n### Trakt Improvements\n- Improved **Trakt Continue Watching** section for better accuracy and reliability\n\n### Internationalization\n- Added **multi-language support** across the app using **i18n** \n - More languages will be added through **community contributions** \n - âš ï¸ **Arabic UI does not use RTL yet**. RTL support will be added in a future update\n\n### Stability & Fixes\n- Crash optimizations and internal stability improvements\n\nThis update focuses on improving playback stability, Trakt experience, and expanding language support.", - "downloadURL": "https://github.com/tapframe/NuvioStreaming/releases/download/v1.3.4/app-release.apk", + "downloadURL": "https://github.com/tapframe/NuvioStreaming/releases/download/v1.3.4/Stable_1-3-4.ipa", "size": 25700000 }, { From 4547e153ace7af6ecf06b34934755ea91c476745 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Wed, 21 Jan 2026 20:43:54 +0530 Subject: [PATCH 31/58] forgot to update version num --- .gitignore | 1 + android/app/build.gradle | 2 +- android/app/src/main/res/values/strings.xml | 2 +- app.json | 4 +- ios/Nuvio.xcodeproj/project.pbxproj | 104 ++++++++++---------- ios/Nuvio/Info.plist | 2 +- server/sync-service | 1 - src/navigation/AppNavigator.tsx | 2 +- src/utils/version.ts | 2 +- 9 files changed, 61 insertions(+), 59 deletions(-) delete mode 160000 server/sync-service diff --git a/.gitignore b/.gitignore index 12130781..5f5b4204 100644 --- a/.gitignore +++ b/.gitignore @@ -85,6 +85,7 @@ mmkv.md fix-android-scroll-lag-summary.md server/cache-server server/campaign-manager +server/sync-service carousal.md node_modules expofs.md diff --git a/android/app/build.gradle b/android/app/build.gradle index a36d3d3b..f180bb2e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -96,7 +96,7 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 34 - versionName "1.3.5" + versionName "1.3.6" buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\"" } diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 712939e2..050c9866 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -3,5 +3,5 @@ contain false dark - 1.3.5 + 1.3.6 \ No newline at end of file diff --git a/app.json b/app.json index 6bfbcb0e..88699efc 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,7 @@ "expo": { "name": "Nuvio", "slug": "nuvio", - "version": "1.3.5", + "version": "1.3.6", "orientation": "default", "backgroundColor": "#020404", "icon": "./assets/ios/AppIcon.appiconset/Icon-App-60x60@3x.png", @@ -97,6 +97,6 @@ "fallbackToCacheTimeout": 30000, "url": "https://ota.nuvioapp.space/api/manifest" }, - "runtimeVersion": "1.3.5" + "runtimeVersion": "1.3.6" } } \ No newline at end of file diff --git a/ios/Nuvio.xcodeproj/project.pbxproj b/ios/Nuvio.xcodeproj/project.pbxproj index a8d83f22..f4ef9d51 100644 --- a/ios/Nuvio.xcodeproj/project.pbxproj +++ b/ios/Nuvio.xcodeproj/project.pbxproj @@ -11,12 +11,12 @@ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */; }; - 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */; }; - 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */; }; - 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */; }; + 7928F4CD932E4A58C167CEFA /* libPods-Nuvio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BA547FB5FF593C6C2371C8 /* libPods-Nuvio.a */; }; + 9FBA88F42E86ECD700892850 /* KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */; }; + 9FBA88F52E86ECD700892850 /* KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */; }; + 9FBA88F62E86ECD700892850 /* KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */; }; + 9FBA88F72E86ECD700892850 /* KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; - D66ACCC72CB69F1FF14A2585 /* libPods-Nuvio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 436A6FCA2C83F29076E121BA /* libPods-Nuvio.a */; }; F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; /* End PBXBuildFile section */ @@ -24,18 +24,18 @@ 13B07F961A680F5B00A75B9A /* Nuvio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Nuvio.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Nuvio/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Nuvio/Info.plist; sourceTree = ""; }; - 436A6FCA2C83F29076E121BA /* libPods-Nuvio.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Nuvio.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 49055D6E250FAFA21141FE49 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Nuvio/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 5346BAA9EF8C9C8182D4485C /* Pods-Nuvio.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.release.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.release.xcconfig"; sourceTree = ""; }; 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Nuvio/ExpoModulesProvider.swift"; sourceTree = ""; }; + 6E529CB0ACBADCCC9E9F1C34 /* Pods-Nuvio.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.release.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.release.xcconfig"; sourceTree = ""; }; 73BB213C2E9EEAC700EC03F8 /* NuvioRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = NuvioRelease.entitlements; path = Nuvio/NuvioRelease.entitlements; sourceTree = ""; }; - 904B4A0A0308D3727268BA5E /* Pods-Nuvio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.debug.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.debug.xcconfig"; sourceTree = ""; }; - 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../KSPlayer/RNBridge/KSPlayerManager.m; sourceTree = ""; }; - 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerModule.swift; sourceTree = ""; }; - 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerView.swift; sourceTree = ""; }; - 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerViewManager.swift; sourceTree = ""; }; + 872F6D9F073913A5EBC6DDAC /* Pods-Nuvio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.debug.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.debug.xcconfig"; sourceTree = ""; }; + 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../KSPlayer/RNBridge/KSPlayerManager.m; sourceTree = ""; }; + 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerModule.swift; sourceTree = ""; }; + 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerView.swift; sourceTree = ""; }; + 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerViewManager.swift; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = Nuvio/SplashScreen.storyboard; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; + D0BA547FB5FF593C6C2371C8 /* libPods-Nuvio.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Nuvio.a"; sourceTree = BUILT_PRODUCTS_DIR; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = Nuvio/AppDelegate.swift; sourceTree = ""; }; F11748442D0722820044C1D9 /* Nuvio-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Nuvio-Bridging-Header.h"; path = "Nuvio/Nuvio-Bridging-Header.h"; sourceTree = ""; }; @@ -46,7 +46,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D66ACCC72CB69F1FF14A2585 /* libPods-Nuvio.a in Frameworks */, + 7928F4CD932E4A58C167CEFA /* libPods-Nuvio.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -59,10 +59,10 @@ 73BB213C2E9EEAC700EC03F8 /* NuvioRelease.entitlements */, F11748412D0307B40044C1D9 /* AppDelegate.swift */, F11748442D0722820044C1D9 /* Nuvio-Bridging-Header.h */, - 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */, - 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */, - 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */, - 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */, + 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */, + 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */, + 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */, + 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */, BB2F792B24A3F905000567C9 /* Supporting */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, @@ -76,7 +76,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 436A6FCA2C83F29076E121BA /* libPods-Nuvio.a */, + D0BA547FB5FF593C6C2371C8 /* libPods-Nuvio.a */, ); name = Frameworks; sourceTree = ""; @@ -131,8 +131,8 @@ D90A3959C97EE9926C513293 /* Pods */ = { isa = PBXGroup; children = ( - 904B4A0A0308D3727268BA5E /* Pods-Nuvio.debug.xcconfig */, - 5346BAA9EF8C9C8182D4485C /* Pods-Nuvio.release.xcconfig */, + 872F6D9F073913A5EBC6DDAC /* Pods-Nuvio.debug.xcconfig */, + 6E529CB0ACBADCCC9E9F1C34 /* Pods-Nuvio.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -152,15 +152,15 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Nuvio" */; buildPhases = ( - 3B2D9C1D63379C2F30AC0F2B /* [CP] Check Pods Manifest.lock */, + 2F7776C5CF342CF6C593386C /* [CP] Check Pods Manifest.lock */, 99A79B70155E84EE1FB7F466 /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 9B977D89FE30470F8C59964C /* Upload Debug Symbols to Sentry */, - 9F740EE07B5F97C85979C145 /* [CP] Embed Pods Frameworks */, - 550CD54859274FE505BA4957 /* [CP] Copy Pods Resources */, + 0274FB5ED7475B1802656938 /* [CP] Embed Pods Frameworks */, + 8A1BEDBBF6815E406699791F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -234,7 +234,29 @@ shellPath = /bin/sh; shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n/bin/sh `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('@sentry/react-native/package.json')) + '/scripts/sentry-xcode.sh'\"` `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; }; - 3B2D9C1D63379C2F30AC0F2B /* [CP] Check Pods Manifest.lock */ = { + 0274FB5ED7475B1802656938 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 2F7776C5CF342CF6C593386C /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -256,7 +278,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 550CD54859274FE505BA4957 /* [CP] Copy Pods Resources */ = { + 8A1BEDBBF6815E406699791F /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -406,26 +428,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh `${NODE_BINARY:-node} --print \"require('path').dirname(require.resolve('@sentry/react-native/package.json')) + '/scripts/sentry-xcode-debug-files.sh'\"`"; }; - 9F740EE07B5F97C85979C145 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -434,10 +436,10 @@ buildActionMask = 2147483647; files = ( F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */, - 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */, - 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */, - 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */, - 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */, + 9FBA88F42E86ECD700892850 /* KSPlayerViewManager.swift in Sources */, + 9FBA88F52E86ECD700892850 /* KSPlayerModule.swift in Sources */, + 9FBA88F62E86ECD700892850 /* KSPlayerManager.m in Sources */, + 9FBA88F72E86ECD700892850 /* KSPlayerView.swift in Sources */, 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -447,7 +449,7 @@ /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 904B4A0A0308D3727268BA5E /* Pods-Nuvio.debug.xcconfig */; + baseConfigurationReference = 872F6D9F073913A5EBC6DDAC /* Pods-Nuvio.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -485,7 +487,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5346BAA9EF8C9C8182D4485C /* Pods-Nuvio.release.xcconfig */; + baseConfigurationReference = 6E529CB0ACBADCCC9E9F1C34 /* Pods-Nuvio.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; diff --git a/ios/Nuvio/Info.plist b/ios/Nuvio/Info.plist index 9ce58aff..f19c0554 100644 --- a/ios/Nuvio/Info.plist +++ b/ios/Nuvio/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.2.10 + 1.3.6 CFBundleSignature ???? CFBundleURLTypes diff --git a/server/sync-service b/server/sync-service deleted file mode 160000 index e79325ec..00000000 --- a/server/sync-service +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e79325ecb97f797801e3499285fca75efb180aa9 diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index c7d3c697..13f50760 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -1242,8 +1242,8 @@ const InnerNavigator = ({ initialRouteName }: { initialRouteName?: keyof RootSta Date: Thu, 22 Jan 2026 00:16:01 +0530 Subject: [PATCH 32/58] added concurrency limit to pluginservice --- src/services/pluginService.ts | 90 +++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 10 deletions(-) diff --git a/src/services/pluginService.ts b/src/services/pluginService.ts index d68859ef..f9f9236a 100644 --- a/src/services/pluginService.ts +++ b/src/services/pluginService.ts @@ -6,6 +6,12 @@ import { Stream } from '../types/streams'; import { cacheService } from './cacheService'; import CryptoJS from 'crypto-js'; +const MAX_CONCURRENT_SCRAPERS = 5; +const MAX_INFLIGHT_KEYS = 30; +const MAX_RESPONSE_SIZE = 5 * 1024 * 1024; +const MAX_RESULT_ITEMS = 150; +const SCRAPER_BATCH_DELAY_MS = 25; + // Types for local scrapers export interface ScraperManifest { name: string; @@ -1086,17 +1092,24 @@ class LocalScraperService { return; } - logger.log(`[LocalScraperService] Executing ${enabledScrapers.length} scrapers for ${media}:${tmdbId}`, { - scrapers: enabledScrapers.map(s => s.name) - }); + logger.log(`[LocalScraperService] Executing ${enabledScrapers.length} scrapers for ${media}:${tmdbId}`); // Generate a lightweight request id for tracing const requestId = `rs_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 6)}`; - // Execute all enabled scrapers - for (const scraper of enabledScrapers) { - this.executeScraper(scraper, media, tmdbId, season, episode, callback, requestId); - } + const executeBatch = async (scrapers: ScraperInfo[], batchSize: number) => { + for (let i = 0; i < scrapers.length; i += batchSize) { + const batch = scrapers.slice(i, i + batchSize); + batch.forEach(scraper => { + this.executeScraper(scraper, media, tmdbId, season, episode, callback, requestId); + }); + if (i + batchSize < scrapers.length) { + await new Promise(r => setTimeout(r, SCRAPER_BATCH_DELAY_MS)); + } + } + }; + + executeBatch(enabledScrapers, MAX_CONCURRENT_SCRAPERS); } // Execute individual scraper @@ -1121,6 +1134,11 @@ class LocalScraperService { // Build single-flight key const flightKey = `${scraper.id}|${type}|${tmdbId}|${season ?? ''}|${episode ?? ''}`; + if (this.inFlightByKey.size >= MAX_INFLIGHT_KEYS) { + const firstKey = this.inFlightByKey.keys().next().value; + if (firstKey) this.inFlightByKey.delete(firstKey); + } + // Create a sandboxed execution environment with single-flight coalescing let promise: Promise; if (this.inFlightByKey.has(flightKey)) { @@ -1143,7 +1161,11 @@ class LocalScraperService { }).catch(() => { }); } - const results = await promise; + let results = await promise; + + if (Array.isArray(results) && results.length > MAX_RESULT_ITEMS) { + results = results.slice(0, MAX_RESULT_ITEMS); + } // Convert results to Nuvio Stream format const streams = this.convertToStreams(results, scraper); @@ -1205,6 +1227,54 @@ class LocalScraperService { const MOVIEBOX_PRIMARY_KEY = process.env.EXPO_PUBLIC_MOVIEBOX_PRIMARY_KEY; const MOVIEBOX_TMDB_API_KEY = process.env.EXPO_PUBLIC_MOVIEBOX_TMDB_API_KEY || '439c478a771f35c05022f9feabcca01c'; + const sandboxedAxios = { + get: async (url: string, config?: any) => { + return axios.get(url, { + ...config, + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, + timeout: config?.timeout || 30000, + }); + }, + post: async (url: string, data?: any, config?: any) => { + return axios.post(url, data, { + ...config, + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, + timeout: config?.timeout || 30000, + }); + }, + put: async (url: string, data?: any, config?: any) => { + return axios.put(url, data, { + ...config, + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, + timeout: config?.timeout || 30000, + }); + }, + delete: async (url: string, config?: any) => { + return axios.delete(url, { + ...config, + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, + timeout: config?.timeout || 30000, + }); + }, + request: async (config: any) => { + return axios.request({ + ...config, + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, + timeout: config?.timeout || 30000, + }); + }, + create: (config?: any) => axios.create({ + ...config, + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, + }), + }; + // Custom require function for backward compatibility with existing plugins const pluginRequire = (moduleName: string): any => { switch (moduleName) { @@ -1216,7 +1286,7 @@ class LocalScraperService { case 'crypto-js': return CryptoJS; case 'axios': - return axios; + return sandboxedAxios; default: throw new Error(`Module '${moduleName}' is not available in plugins`); } @@ -1331,7 +1401,7 @@ class LocalScraperService { moduleObj, moduleExports, pluginRequire, - axios, + sandboxedAxios, polyfilledFetch, // Use polyfilled fetch for redirect: manual support CryptoJS, cheerio, From fefb0cda01b49e79894394ffe41efee5e2c7af8e Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Thu, 22 Jan 2026 00:51:34 +0530 Subject: [PATCH 33/58] minor ui changes --- .../home/ContinueWatchingSection.tsx | 5 ++-- src/components/metadata/CastDetailsModal.tsx | 3 +-- src/components/metadata/MetadataDetails.tsx | 25 +++++++++++-------- src/screens/CastMoviesScreen.tsx | 3 ++- src/utils/version.ts | 2 +- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/components/home/ContinueWatchingSection.tsx b/src/components/home/ContinueWatchingSection.tsx index 30e41a5a..104f4d9f 100644 --- a/src/components/home/ContinueWatchingSection.tsx +++ b/src/components/home/ContinueWatchingSection.tsx @@ -2165,7 +2165,8 @@ const ContinueWatchingSection = React.forwardRef((props, re } return ( - @@ -2304,7 +2305,7 @@ const ContinueWatchingSection = React.forwardRef((props, re )} - + ); }); diff --git a/src/components/metadata/CastDetailsModal.tsx b/src/components/metadata/CastDetailsModal.tsx index cce5b252..5262e89e 100644 --- a/src/components/metadata/CastDetailsModal.tsx +++ b/src/components/metadata/CastDetailsModal.tsx @@ -33,7 +33,6 @@ import Animated, { useAnimatedStyle, useSharedValue, withTiming, - withSpring, runOnJS, } from 'react-native-reanimated'; import { LinearGradient } from 'expo-linear-gradient'; @@ -83,7 +82,7 @@ export const CastDetailsModal: React.FC = ({ useEffect(() => { if (visible && castMember) { modalOpacity.value = withTiming(1, { duration: 250 }); - modalScale.value = withSpring(1, { damping: 20, stiffness: 200 }); + modalScale.value = withTiming(1, { duration: 250 }); if (!hasFetched || personDetails?.id !== castMember.id) { fetchPersonDetails(); diff --git a/src/components/metadata/MetadataDetails.tsx b/src/components/metadata/MetadataDetails.tsx index 57b25d35..cde9ab4d 100644 --- a/src/components/metadata/MetadataDetails.tsx +++ b/src/components/metadata/MetadataDetails.tsx @@ -110,26 +110,32 @@ const MetadataDetails: React.FC = ({ checkMDBListEnabled(); }, []); - const handleTextLayout = (event: any) => { - const { lines } = event.nativeEvent; - // If we have 3 or more lines, it means the text was truncated - setIsTextTruncated(lines.length >= 3); - }; + const handleCollapsedTextLayout = (event: any) => { const { height } = event.nativeEvent.layout; - setMeasuredHeights(prev => ({ ...prev, collapsed: height })); - // Only set initial measurement flag once we have a valid height + setMeasuredHeights(prev => { + const newHeights = { ...prev, collapsed: height }; + if (newHeights.expanded > 0 && height > 0) { + setIsTextTruncated(newHeights.expanded > height); + } + return newHeights; + }); if (height > 0 && !hasInitialMeasurement) { setHasInitialMeasurement(true); - // Update animated height immediately without animation for first measurement animatedHeight.value = height; } }; const handleExpandedTextLayout = (event: any) => { const { height } = event.nativeEvent.layout; - setMeasuredHeights(prev => ({ ...prev, expanded: height })); + setMeasuredHeights(prev => { + const newHeights = { ...prev, expanded: height }; + if (newHeights.collapsed > 0 && height > 0) { + setIsTextTruncated(height > newHeights.collapsed); + } + return newHeights; + }); }; // Animate height changes @@ -382,7 +388,6 @@ const MetadataDetails: React.FC = ({ } ]} numberOfLines={isFullDescriptionOpen ? undefined : 3} - onTextLayout={handleTextLayout} > {metadata.description} diff --git a/src/screens/CastMoviesScreen.tsx b/src/screens/CastMoviesScreen.tsx index 3b9d39b2..d278b5e1 100644 --- a/src/screens/CastMoviesScreen.tsx +++ b/src/screens/CastMoviesScreen.tsx @@ -40,7 +40,8 @@ import CustomAlert from '../components/CustomAlert'; const { width, height } = Dimensions.get('window'); const isTablet = width >= 768; const numColumns = isTablet ? 4 : 3; -const posterWidth = (width - 60 - (numColumns - 1) * 12) / numColumns; +const HORIZONTAL_PADDING = 20; +const posterWidth = (width - (HORIZONTAL_PADDING * 2) - (numColumns - 1) * 12) / numColumns; const posterHeight = posterWidth * 1.5; interface CastMovie { diff --git a/src/utils/version.ts b/src/utils/version.ts index d681c860..232d4534 100644 --- a/src/utils/version.ts +++ b/src/utils/version.ts @@ -1,7 +1,7 @@ // Single source of truth for the app version displayed in Settings // Update this when bumping app version -export const APP_VERSION = '1.3.6'; +export const APP_VERSION = '1.3.5'; export function getDisplayedAppVersion(): string { return APP_VERSION; From 181de15b93e787c60e0bf6e63c263afc00026ef5 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Thu, 22 Jan 2026 12:30:04 +0530 Subject: [PATCH 34/58] type fixes --- src/components/home/CatalogSection.tsx | 2 +- src/components/player/AndroidVideoPlayer.tsx | 11 +++++------ src/components/player/hooks/usePlayerState.ts | 2 +- src/utils/version.ts | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/home/CatalogSection.tsx b/src/components/home/CatalogSection.tsx index 4b0eed6a..e12250bb 100644 --- a/src/components/home/CatalogSection.tsx +++ b/src/components/home/CatalogSection.tsx @@ -207,7 +207,7 @@ const CatalogSection = ({ catalog }: CatalogSectionProps) => { horizontal showsHorizontalScrollIndicator={false} scrollEventThrottle={16} - decelerationRate="fast" + decelerationRate="normal" scrollEnabled={true} nestedScrollEnabled={true} contentContainerStyle={StyleSheet.flatten([ diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index 63c81025..b53e8682 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -149,18 +149,18 @@ const AndroidVideoPlayer: React.FC = () => { // Track previous video session to reset subtitle offset only when video actually changes const previousVideoRef = useRef<{ uri?: string; episodeId?: string }>({}); - + // Reset subtitle offset when starting a new video session useEffect(() => { const currentVideo = { uri, episodeId }; const previousVideo = previousVideoRef.current; - + // Only reset if this is actually a new video (uri or episodeId changed) - if (previousVideo.uri !== undefined && - (previousVideo.uri !== currentVideo.uri || previousVideo.episodeId !== currentVideo.episodeId)) { + if (previousVideo.uri !== undefined && + (previousVideo.uri !== currentVideo.uri || previousVideo.episodeId !== currentVideo.episodeId)) { setSubtitleOffsetSec(0); } - + // Update the ref for next comparison previousVideoRef.current = currentVideo; // eslint-disable-next-line react-hooks/exhaustive-deps @@ -874,7 +874,6 @@ const AndroidVideoPlayer: React.FC = () => { brightness={brightness} controlsTimeout={controlsTimeout} resizeMode={playerState.resizeMode} - resizeMode={playerState.resizeMode} /> { // Playback State diff --git a/src/utils/version.ts b/src/utils/version.ts index 232d4534..d681c860 100644 --- a/src/utils/version.ts +++ b/src/utils/version.ts @@ -1,7 +1,7 @@ // Single source of truth for the app version displayed in Settings // Update this when bumping app version -export const APP_VERSION = '1.3.5'; +export const APP_VERSION = '1.3.6'; export function getDisplayedAppVersion(): string { return APP_VERSION; From b24cd9ca669dc727f1e75c1b84528e6ead756c21 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:57:16 +0530 Subject: [PATCH 35/58] added axios response limit --- src/services/catalogService.ts | 11 +++++------ src/services/pluginService.ts | 21 +++++++++------------ src/services/stremioService.ts | 26 +++++++++++++------------- src/utils/axiosConfig.ts | 26 ++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 src/utils/axiosConfig.ts diff --git a/src/services/catalogService.ts b/src/services/catalogService.ts index 2a00dfeb..09d9fb82 100644 --- a/src/services/catalogService.ts +++ b/src/services/catalogService.ts @@ -5,6 +5,7 @@ import axios from 'axios'; import { TMDBService } from './tmdbService'; import { logger } from '../utils/logger'; import { getCatalogDisplayName } from '../utils/catalogNameUtils'; +import { createSafeAxiosConfig } from '../utils/axiosConfig'; // Add a constant for storing the data source preference const DATA_SOURCE_KEY = 'discover_data_source'; @@ -1476,7 +1477,7 @@ class CatalogService { logger.warn(`Search failed for catalog in ${addon.name}:`, s.reason); } } - + if (addonResults.length === 0) { logger.log(`No results from ${addon.name}`); return; @@ -1542,7 +1543,7 @@ class CatalogService { logger.warn(`Addon ${manifest.name} (${manifest.id}) has no URL, skipping search`); return []; } - + // Extract base URL and preserve query params (same logic as stremioService.getAddonBaseURL) const [baseUrlPart, queryParams] = chosenUrl.split('?'); let cleanBaseUrl = baseUrlPart.replace(/manifest\.json$/, '').replace(/\/$/, ''); @@ -1554,7 +1555,7 @@ class CatalogService { const encodedCatalogId = encodeURIComponent(catalogId); const encodedQuery = encodeURIComponent(query); - + // Try path-style URL first (per Stremio protocol) url = `${cleanBaseUrl}/catalog/${type}/${encodedCatalogId}/search=${encodedQuery}.json`; @@ -1566,9 +1567,7 @@ class CatalogService { logger.log(`Searching ${manifest.name} (${type}/${catalogId}):`, url); - const response = await axios.get<{ metas: any[] }>(url, { - timeout: 10000, // 10 second timeout per addon - }); + const response = await axios.get<{ metas: any[] }>(url, createSafeAxiosConfig(10000)); const metas = response.data?.metas || []; diff --git a/src/services/pluginService.ts b/src/services/pluginService.ts index f9f9236a..01f68509 100644 --- a/src/services/pluginService.ts +++ b/src/services/pluginService.ts @@ -5,6 +5,7 @@ import { logger } from '../utils/logger'; import { Stream } from '../types/streams'; import { cacheService } from './cacheService'; import CryptoJS from 'crypto-js'; +import { safeAxiosConfig, createSafeAxiosConfig } from '../utils/axiosConfig'; const MAX_CONCURRENT_SCRAPERS = 5; const MAX_INFLIGHT_KEYS = 30; @@ -407,13 +408,12 @@ class LocalScraperService { : `${repositoryUrl}/manifest.json`; const manifestUrl = `${baseManifestUrl}?t=${Date.now()}`; - const response = await axios.get(manifestUrl, { - timeout: 10000, + const response = await axios.get(manifestUrl, createSafeAxiosConfig(10000, { headers: { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache' } - }); + })); if (response.data && response.data.name) { logger.log('[LocalScraperService] Found repository name in manifest:', response.data.name); @@ -645,14 +645,13 @@ class LocalScraperService { : `${this.repositoryUrl}/manifest.json`; const manifestUrl = `${baseManifestUrl}?t=${Date.now()}&v=${Math.random()}`; - const response = await axios.get(manifestUrl, { - timeout: 10000, + const response = await axios.get(manifestUrl, createSafeAxiosConfig(10000, { headers: { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache', 'Expires': '0' } - }); + })); const manifest: ScraperManifest = response.data; // Store repository name from manifest @@ -740,14 +739,13 @@ class LocalScraperService { : `${repo.url}/manifest.json`; const manifestUrl = `${baseManifestUrl}?t=${Date.now()}&v=${Math.random()}`; - const response = await axios.get(manifestUrl, { - timeout: 10000, + const response = await axios.get(manifestUrl, createSafeAxiosConfig(10000, { headers: { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache', 'Expires': '0' } - }); + })); const manifest: ScraperManifest = response.data; // Update repository name from manifest @@ -823,14 +821,13 @@ class LocalScraperService { // Add cache-busting parameters to force fresh download const scraperUrlWithCacheBust = `${scraperUrl}?t=${Date.now()}&v=${Math.random()}`; - const response = await axios.get(scraperUrlWithCacheBust, { - timeout: 15000, + const response = await axios.get(scraperUrlWithCacheBust, createSafeAxiosConfig(15000, { headers: { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache', 'Expires': '0' } - }); + })); const scraperCode = response.data; // Store scraper info and code diff --git a/src/services/stremioService.ts b/src/services/stremioService.ts index 65d129c9..64ca6535 100644 --- a/src/services/stremioService.ts +++ b/src/services/stremioService.ts @@ -5,6 +5,7 @@ import EventEmitter from 'eventemitter3'; import { localScraperService } from './pluginService'; import { DEFAULT_SETTINGS, AppSettings } from '../hooks/useSettings'; import { TMDBService } from './tmdbService'; +import { safeAxiosConfig, createSafeAxiosConfig } from '../utils/axiosConfig'; // Create an event emitter for addon changes export const addonEmitter = new EventEmitter(); @@ -626,7 +627,7 @@ class StremioService { : `${url.replace(/\/$/, '')}/manifest.json`; const response = await this.retryRequest(async () => { - return await axios.get(manifestUrl); + return await axios.get(manifestUrl, safeAxiosConfig); }); const manifest = response.data; @@ -878,7 +879,7 @@ class StremioService { // For page 1 without filters, try simple URL first (best compatibility) if (pageSkip === 0 && extraParts.length === 0) { if (__DEV__) console.log(`🔠[getCatalog] Trying simple URL for ${manifest.name}: ${urlSimple}`); - response = await this.retryRequest(async () => axios.get(urlSimple)); + response = await this.retryRequest(async () => axios.get(urlSimple, safeAxiosConfig)); // Check if we got valid metas - if empty, try other styles if (!response?.data?.metas || response.data.metas.length === 0) { throw new Error('Empty response from simple URL'); @@ -890,7 +891,7 @@ class StremioService { try { // Try path-style URL (correct per protocol) if (__DEV__) console.log(`🔠[getCatalog] Trying path-style URL for ${manifest.name}: ${urlPathStyle}`); - response = await this.retryRequest(async () => axios.get(urlPathStyle)); + response = await this.retryRequest(async () => axios.get(urlPathStyle, safeAxiosConfig)); // Check if we got valid metas - if empty, try query-style if (!response?.data?.metas || response.data.metas.length === 0) { throw new Error('Empty response from path-style URL'); @@ -899,7 +900,7 @@ class StremioService { try { // Try legacy query-style URL as last resort if (__DEV__) console.log(`🔠[getCatalog] Trying query-style URL for ${manifest.name}: ${urlQueryStyle}`); - response = await this.retryRequest(async () => axios.get(urlQueryStyle)); + response = await this.retryRequest(async () => axios.get(urlQueryStyle, safeAxiosConfig)); } catch (e3) { if (__DEV__) console.log(`⌠[getCatalog] All URL styles failed for ${manifest.name}`); throw e3; @@ -994,7 +995,7 @@ class StremioService { if (isSupported) { try { const response = await this.retryRequest(async () => { - return await axios.get(url, { timeout: 10000 }); + return await axios.get(url, createSafeAxiosConfig(10000)); }); @@ -1025,7 +1026,7 @@ class StremioService { const response = await this.retryRequest(async () => { - return await axios.get(url, { timeout: 10000 }); + return await axios.get(url, createSafeAxiosConfig(10000)); }); @@ -1096,7 +1097,7 @@ class StremioService { const response = await this.retryRequest(async () => { - return await axios.get(url, { timeout: 10000 }); + return await axios.get(url, createSafeAxiosConfig(10000)); }); @@ -1412,7 +1413,7 @@ class StremioService { logger.log(`🔗 [getStreams] Requesting streams from ${addon.name} (${addon.id}): ${url}`); const response = await this.retryRequest(async () => { - return await axios.get(url); + return await axios.get(url, safeAxiosConfig); }); let processedStreams: Stream[] = []; @@ -1462,13 +1463,12 @@ class StremioService { const response = await this.retryRequest(async () => { logger.log(`Making request to ${url} with timeout ${timeout}ms`); - return await axios.get(url, { - timeout, + return await axios.get(url, createSafeAxiosConfig(timeout, { headers: { 'Accept': 'application/json', 'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36' } - }); + })); }, 5); // Increase retries for stream fetching if (response.data && response.data.streams && Array.isArray(response.data.streams)) { @@ -1770,7 +1770,7 @@ class StremioService { : `${baseUrl}/subtitles/${type}/${encodedId}.json`; } logger.log(`[getSubtitles] Fetching subtitles from ${addon.name}: ${url}`); - const response = await this.retryRequest(async () => axios.get(url, { timeout: 10000 })); + const response = await this.retryRequest(async () => axios.get(url, createSafeAxiosConfig(10000))); if (response.data && Array.isArray(response.data.subtitles)) { logger.log(`[getSubtitles] Got ${response.data.subtitles.length} subtitles from ${addon.name}`); return response.data.subtitles.map((sub: any, index: number) => ({ @@ -1910,7 +1910,7 @@ class StremioService { const url = `${baseUrl}/addon_catalog/${type}/${encodeURIComponent(id)}.json${queryParams ? `?${queryParams}` : ''}`; logger.log(`[getAddonCatalogs] Fetching from ${addon.name}: ${url}`); - const response = await this.retryRequest(() => axios.get(url, { timeout: 10000 })); + const response = await this.retryRequest(() => axios.get(url, createSafeAxiosConfig(10000))); if (response.data?.addons && Array.isArray(response.data.addons)) { results.push(...response.data.addons); diff --git a/src/utils/axiosConfig.ts b/src/utils/axiosConfig.ts new file mode 100644 index 00000000..1558e5ce --- /dev/null +++ b/src/utils/axiosConfig.ts @@ -0,0 +1,26 @@ + +export const MAX_RESPONSE_SIZE = 10 * 1024 * 1024; // 10MB in bytes + +/** + * Default axios request configuration with response size limits. + * Apply this to all axios.get() calls to prevent OOM crashes. + */ +export const safeAxiosConfig = { + maxContentLength: MAX_RESPONSE_SIZE, + maxBodyLength: MAX_RESPONSE_SIZE, +}; + +/** + * Creates a safe axios config with response size limits and optional timeout. + * @param timeout - Optional timeout in milliseconds (default: 10000) + * @param additionalConfig - Additional axios config to merge + * @returns Axios request config with safety limits + */ +export const createSafeAxiosConfig = ( + timeout: number = 10000, + additionalConfig?: Record +) => ({ + ...safeAxiosConfig, + timeout, + ...additionalConfig, +}); From 828644cce4c725544d30cc1ebd910a62691c544a Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 01:15:42 +0530 Subject: [PATCH 36/58] Reapply "streamscreen tvshow rendering fix" This reverts commit b817ff37b5b2528f4e22b4f3a815b0886695aeb8. --- src/hooks/useMetadata.ts | 14 ++++++++++---- src/screens/streams/useStreamsScreen.ts | 3 ++- src/services/stremioService.ts | 12 +++++++----- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/hooks/useMetadata.ts b/src/hooks/useMetadata.ts index 751e8c83..3b1bc7b8 100644 --- a/src/hooks/useMetadata.ts +++ b/src/hooks/useMetadata.ts @@ -1537,6 +1537,9 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat const allStremioAddons = await stremioService.getInstalledAddons(); const localScrapers = await localScraperService.getInstalledScrapers(); + // Map app-level "tv" type to Stremio "series" for addon capability checks + const stremioType = type === 'tv' ? 'series' : type; + // Filter Stremio addons to only include those that provide streams for this content type const streamAddons = allStremioAddons.filter(addon => { if (!addon.resources || !Array.isArray(addon.resources)) { @@ -1552,7 +1555,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat const typedResource = resource as any; if (typedResource.name === 'stream' && Array.isArray(typedResource.types) && - typedResource.types.includes(type)) { + typedResource.types.includes(stremioType)) { hasStreamResource = true; // Check if this addon supports the ID prefix generically: any prefix must match start of id @@ -1567,7 +1570,7 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat } // Check if the element is the simple string "stream" AND the addon has a top-level types array else if (typeof resource === 'string' && resource === 'stream' && addon.types) { - if (Array.isArray(addon.types) && addon.types.includes(type)) { + if (Array.isArray(addon.types) && addon.types.includes(stremioType)) { hasStreamResource = true; // For simple string resources, check addon-level idPrefixes generically if (addon.idPrefixes && Array.isArray(addon.idPrefixes) && addon.idPrefixes.length > 0) { @@ -1635,7 +1638,9 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // Start Stremio request using the converted ID format if (__DEV__) console.log('🎬 [loadStreams] Using ID for Stremio addons:', stremioId); - processStremioSource(type, stremioId, false); + // Map app-level "tv" type to Stremio "series" when requesting streams + const stremioContentType = type === 'tv' ? 'series' : type; + processStremioSource(stremioContentType, stremioId, false); // Also extract any embedded streams from metadata (PPV-style addons) extractEmbeddedStreams(); @@ -1913,7 +1918,8 @@ export const useMetadata = ({ id, type, addonId }: UseMetadataProps): UseMetadat // For collections, treat episodes as individual movies, not series // For other types (e.g. StreamsPPV), preserve the original type unless it's explicitly 'series' logic we want - const contentType = isCollection ? 'movie' : type; + // Map app-level "tv" type to Stremio "series" for addon stream endpoint + const contentType = isCollection ? 'movie' : (type === 'tv' ? 'series' : type); if (__DEV__) console.log(`🎬 [loadEpisodeStreams] Using content type: ${contentType} for ${isCollection ? 'collection' : type}`); processStremioSource(contentType, stremioEpisodeId, true); diff --git a/src/screens/streams/useStreamsScreen.ts b/src/screens/streams/useStreamsScreen.ts index 6af075b5..4a88f57b 100644 --- a/src/screens/streams/useStreamsScreen.ts +++ b/src/screens/streams/useStreamsScreen.ts @@ -646,7 +646,8 @@ export const useStreamsScreen = () => { hasDoneInitialLoadRef.current = true; try { - const hasStremioProviders = await stremioService.hasStreamProviders(type); + const stremioType = type === 'tv' ? 'series' : type; + const hasStremioProviders = await stremioService.hasStreamProviders(stremioType); const hasLocalScrapers = settings.enableLocalScrapers && (await localScraperService.hasScrapers()); const hasProviders = hasStremioProviders || hasLocalScrapers; diff --git a/src/services/stremioService.ts b/src/services/stremioService.ts index 64ca6535..4a9a562e 100644 --- a/src/services/stremioService.ts +++ b/src/services/stremioService.ts @@ -1836,6 +1836,8 @@ class StremioService { // Check if any installed addons can provide streams (including embedded streams in metadata) async hasStreamProviders(type?: string): Promise { await this.ensureInitialized(); + // App-level content type "tv" maps to Stremio "series" + const normalizedType = type === 'tv' ? 'series' : type; const addons = Array.from(this.installedAddons.values()); for (const addon of addons) { @@ -1849,12 +1851,12 @@ class StremioService { if (hasStreamResource) { // If type specified, also check if addon supports this type - if (type) { - const supportsType = addon.types?.includes(type) || + if (normalizedType) { + const supportsType = addon.types?.includes(normalizedType) || addon.resources.some(resource => typeof resource === 'object' && (resource as any).name === 'stream' && - (resource as any).types?.includes(type) + (resource as any).types?.includes(normalizedType) ); if (supportsType) return true; } else { @@ -1864,14 +1866,14 @@ class StremioService { // Also check for addons with meta resource that support the type // These addons might provide embedded streams within metadata - if (type) { + if (normalizedType) { const hasMetaResource = addon.resources.some(resource => typeof resource === 'string' ? resource === 'meta' : (resource as any).name === 'meta' ); - if (hasMetaResource && addon.types?.includes(type)) { + if (hasMetaResource && addon.types?.includes(normalizedType)) { // This addon provides meta for the type - might have embedded streams return true; } From 916ad188bc44e4507be431c180990c9c7b9ad2a4 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 01:19:15 +0530 Subject: [PATCH 37/58] added preflight content length fetching logic --- src/services/pluginService.ts | 88 +++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/src/services/pluginService.ts b/src/services/pluginService.ts index 01f68509..62356736 100644 --- a/src/services/pluginService.ts +++ b/src/services/pluginService.ts @@ -13,6 +13,17 @@ const MAX_RESPONSE_SIZE = 5 * 1024 * 1024; const MAX_RESULT_ITEMS = 150; const SCRAPER_BATCH_DELAY_MS = 25; +const VIDEO_CONTENT_TYPES = [ + 'video/', + 'application/octet-stream', + 'application/x-mpegurl', + 'application/vnd.apple.mpegurl', + 'application/dash+xml', + 'binary/octet-stream', +]; + +const MAX_PREFLIGHT_SIZE = 50 * 1024 * 1024; + // Types for local scrapers export interface ScraperManifest { name: string; @@ -73,6 +84,62 @@ export interface LocalScraperResult { // Callback type for scraper results type ScraperCallback = (streams: Stream[] | null, scraperId: string | null, scraperName: string | null, error: Error | null) => void; +async function preflightSizeCheck(url: string, timeout: number = 15000): Promise { + try { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), timeout); + + const response = await fetch(url, { + method: 'HEAD', + signal: controller.signal, + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', + }, + }); + + clearTimeout(timeoutId); + + const contentType = response.headers.get('content-type')?.toLowerCase() || ''; + const isVideoContent = VIDEO_CONTENT_TYPES.some(type => contentType.includes(type)); + + if (isVideoContent) { + logger.warn('[PreflightCheck] Rejected video content type:', contentType, 'for URL:', url.substring(0, 80)); + throw new Error(`Response is video content (${contentType}), not fetching to prevent OOM`); + } + + const contentLengthHeader = response.headers.get('content-length'); + if (contentLengthHeader) { + const contentLength = parseInt(contentLengthHeader, 10); + if (!isNaN(contentLength) && contentLength > MAX_PREFLIGHT_SIZE) { + logger.warn('[PreflightCheck] Rejected large response:', contentLength, 'bytes for URL:', url.substring(0, 80)); + throw new Error(`Response too large (${contentLength} bytes), max allowed is ${MAX_PREFLIGHT_SIZE}`); + } + } + + const finalUrl = response.url || url; + const videoExtensions = ['.mp4', '.mkv', '.avi', '.mov', '.wmv', '.flv', '.webm', '.m4v', '.ts', '.m3u8']; + const hasVideoExtension = videoExtensions.some(ext => finalUrl.toLowerCase().includes(ext)); + + if (hasVideoExtension && contentType && !contentType.includes('text') && !contentType.includes('json') && !contentType.includes('html')) { + logger.warn('[PreflightCheck] URL appears to be a video file:', finalUrl.substring(0, 80)); + throw new Error(`URL appears to be a video file, not fetching to prevent OOM`); + } + + logger.log('[PreflightCheck] Passed for URL:', url.substring(0, 60), 'Content-Length:', contentLengthHeader || 'unknown'); + } catch (error: any) { + if (error.name === 'AbortError') { + logger.warn('[PreflightCheck] HEAD request timed out for:', url.substring(0, 60)); + return; + } + + if (error.message?.includes('video content') || error.message?.includes('too large') || error.message?.includes('video file')) { + throw error; + } + + logger.warn('[PreflightCheck] HEAD request failed (allowing GET):', error.message?.substring(0, 100)); + } +} + class LocalScraperService { private static instance: LocalScraperService; private readonly STORAGE_KEY = 'local-scrapers'; @@ -1226,6 +1293,9 @@ class LocalScraperService { const sandboxedAxios = { get: async (url: string, config?: any) => { + if (!config?.skipSizeCheck) { + await preflightSizeCheck(url, config?.timeout || 30000); + } return axios.get(url, { ...config, maxContentLength: MAX_RESPONSE_SIZE, @@ -1258,6 +1328,10 @@ class LocalScraperService { }); }, request: async (config: any) => { + const method = (config?.method || 'GET').toString().toUpperCase(); + if (method === 'GET' && config?.url && !config?.skipSizeCheck) { + await preflightSizeCheck(config.url, config?.timeout || 30000); + } return axios.request({ ...config, maxContentLength: MAX_RESPONSE_SIZE, @@ -1289,10 +1363,18 @@ class LocalScraperService { } }; - // Polyfilled fetch that properly handles redirect: 'manual' - // React Native's native fetch may or may not support redirect: 'manual' properly const polyfilledFetch = async (url: string, options: any = {}): Promise => { - // If not using redirect: manual, use native fetch directly + const method = (options?.method || 'GET').toString().toUpperCase(); + + if (method === 'GET' && !options?.skipSizeCheck) { + try { + await preflightSizeCheck(url, options?.timeout || 15000); + } catch (preflightError: any) { + logger.error('[PolyfilledFetch] Preflight check failed:', preflightError.message); + throw preflightError; + } + } + if (options.redirect !== 'manual') { return fetch(url, options); } From e5fb18fe5cd8614e9eb64f8e85e4d9f47bef94e3 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 01:38:36 +0530 Subject: [PATCH 38/58] added croatian --- src/constants/locales.ts | 3 +- src/i18n/locales/ar.json | 1 + src/i18n/locales/de.json | 1 + src/i18n/locales/en.json | 1 + src/i18n/locales/es.json | 1 + src/i18n/locales/fr.json | 1 + src/i18n/locales/hr.json | 1358 +++++++++++++++++++++++++++++++++++ src/i18n/locales/it.json | 1 + src/i18n/locales/pt-BR.json | 1 + src/i18n/locales/pt-PT.json | 1 + src/i18n/resources.ts | 3 + 11 files changed, 1371 insertions(+), 1 deletion(-) create mode 100644 src/i18n/locales/hr.json diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 956192f9..299b747f 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -6,5 +6,6 @@ export const LOCALES = [ { code: 'ar', key: 'arabic' }, { code: 'fr', key: 'french' }, { code: 'it', key: 'italian' }, - { code: 'es', key: 'spanish' } + { code: 'es', key: 'spanish' }, + { code: 'hr', key: 'croatian' } ]; \ No newline at end of file diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 44bc4fbc..0385e0c6 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -630,6 +630,7 @@ "spanish": "الإسبانية", "french": "Ø§Ù„ÙØ±Ù†Ø³ÙŠØ©", "italian": "الإيطالية", + "croatian": "الكرواتية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاÙ", "appearance": "المظهر", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 3501bcf9..07eb3de9 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -630,6 +630,7 @@ "spanish": "Spanisch", "french": "Französisch", "italian": "Italienisch", + "croatian": "Kroatisch", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 3a3b52a2..62eb4f0f 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -630,6 +630,7 @@ "spanish": "Spanish", "french": "French", "italian": "Italian", + "croatian": "Croatian", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index d542aa8b..52fd5401 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -630,6 +630,7 @@ "spanish": "Español", "french": "Francés", "italian": "Italiano", + "croatian": "Croata", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 38008ebc..37b8aeba 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -630,6 +630,7 @@ "spanish": "Espagnol", "french": "Français", "italian": "Italien", + "croatian": "Croate", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json new file mode 100644 index 00000000..ae9d1d4e --- /dev/null +++ b/src/i18n/locales/hr.json @@ -0,0 +1,1358 @@ +{ + "common": { + "loading": "UÄitavanje...", + "cancel": "Odustani", + "save": "Spremi", + "delete": "ObriÅ¡i", + "edit": "Uredi", + "search": "Pretraži", + "error": "GreÅ¡ka", + "success": "Uspjeh", + "ok": "U redu", + "unknown": "Nepoznato", + "retry": "PokuÅ¡aj ponovo", + "try_again": "PokuÅ¡aj ponovo", + "go_back": "Idi nazad", + "settings": "Postavke", + "close": "Zatvori", + "show_more": "Prikaži viÅ¡e", + "show_less": "Prikaži manje", + "load_more": "UÄitaj viÅ¡e", + "unknown_date": "Nepoznat datum", + "anonymous_user": "Anonimni korisnik", + "time": { + "now": "Upravo sad", + "minutes_ago": "prije {{count}}m", + "hours_ago": "prije {{count}}h", + "days_ago": "prije {{count}}d" + }, + "days_short": { + "sun": "Ned", + "mon": "Pon", + "tue": "Uto", + "wed": "Sri", + "thu": "ÄŒet", + "fri": "Pet", + "sat": "Sub" + }, + "email": "E-mail", + "status": "Status" + }, + "home": { + "categories": { + "movies": "Filmovi", + "series": "Serije", + "channels": "Kanali" + }, + "movies": "Filmovi", + "tv_shows": "Serije", + "load_more_catalogs": "UÄitaj viÅ¡e kataloga", + "no_content": "Nema dostupnog sadržaja", + "add_catalogs": "Dodaj kataloge", + "sign_in_available": "Dostupna prijava", + "sign_in_desc": "Možete se prijaviti bilo kada u Postavke → RaÄun", + "view_all": "Prikaži sve", + "this_week": "Ovaj tjedan", + "upcoming": "Dolazi uskoro", + "recently_released": "Nedavno objavljeno", + "no_scheduled_episodes": "Serije bez zakazanih epizoda", + "check_back_later": "Provjerite kasnije", + "continue_watching": "Nastavi gledati", + "up_next": "Sljedeće", + "up_next_caps": "SLJEDEĆE", + "released": "Objavljeno", + "new": "Novo", + "tba": "TBA", + "new_episodes": "{{count}} Novih epizoda", + "season_short": "S{{season}}", + "episode_short": "E{{episode}}", + "season": "Sezona {{season}}", + "episode": "Epizoda {{episode}}", + "movie": "Film", + "series": "Serija", + "tv_show": "Serija", + "percent_watched": "{{percent}}% pogledano", + "view_details": "Prikaži detalje", + "remove": "Ukloni", + "play": "Reproduciraj", + "play_now": "Gledaj odmah", + "resume": "Nastavi", + "info": "Informacije", + "more_info": "ViÅ¡e informacija", + "my_list": "Moja lista", + "save": "Spremi", + "saved": "Spremljeno", + "retry": "PokuÅ¡aj ponovo", + "install_addons": "Instaliraj dodatke", + "settings": "Postavke", + "no_featured_content": "Nema istaknutog sadržaja", + "couldnt_load_featured": "Nije moguće uÄitati istaknuti sadržaj", + "no_featured_desc": "Instalirajte dodatke s katalozima ili promijenite izvor sadržaja u postavkama.", + "load_error_desc": "DoÅ¡lo je do problema pri dohvaćanju istaknutog sadržaja. Provjerite svoju vezu i pokuÅ¡ajte ponovo.", + "no_featured_available": "Nema dostupnog istaknutog sadržaja", + "no_description": "Opis nije dostupan" + }, + "navigation": { + "home": "PoÄetna", + "library": "Biblioteka", + "search": "Pretraži", + "downloads": "Preuzimanja", + "settings": "Postavke" + }, + "search": { + "title": "Pretraživanje", + "recent_searches": "Nedavna pretraživanja", + "discover": "Otkrij", + "movies": "Filmovi", + "tv_shows": "Serije", + "select_catalog": "Odaberi katalog", + "all_genres": "Svi žanrovi", + "discovering": "Otkrivanje sadržaja...", + "show_more": "Prikaži viÅ¡e ({{count}})", + "no_content_found": "Sadržaj nije pronaÄ‘en", + "try_different": "PokuÅ¡ajte s drugim žanrom ili katalogom", + "select_catalog_desc": "Odaberite katalog za otkrivanje", + "tap_catalog_desc": "Dodirnite gornji katalog za poÄetak", + "placeholder": "Pretraži filmove, serije...", + "keep_typing": "Nastavite tipkati...", + "type_characters": "UpiÅ¡ite barem 2 znaka za pretraživanje", + "no_results": "Nema rezultata", + "try_keywords": "PokuÅ¡ajte s drugim kljuÄnim rijeÄima ili provjerite pravopis", + "select_type": "Odaberite vrstu", + "browse_movies": "Pregledaj kataloge filmova", + "browse_tv": "Pregledaj kataloge serija", + "select_genre": "Odaberi žanr", + "show_all_content": "Prikaži sav sadržaj", + "genres_count": "{{count}} žanrova" + }, + "library": { + "title": "Biblioteka", + "watched": "Pogledano", + "continue": "Nastavi", + "watchlist": "Lista gledanja", + "collection": "Kolekcija", + "rated": "Ocijenjeno", + "items": "stavke", + "trakt_collections": "Trakt kolekcije", + "trakt_collection": "Trakt kolekcija", + "no_trakt": "Nema Trakt kolekcija", + "no_trakt_desc": "VaÅ¡e Trakt kolekcije pojavit će se ovdje kada poÄnete koristiti Trakt", + "load_collections": "UÄitaj kolekcije", + "empty_folder": "Nema sadržaja u {{folder}}", + "empty_folder_desc": "Ova kolekcija je prazna", + "refresh": "Osvježi", + "no_movies": "JoÅ¡ nema filmova", + "no_series": "JoÅ¡ nema serija", + "no_content": "JoÅ¡ nema sadržaja", + "add_content_desc": "Dodajte sadržaj u svoju biblioteku da biste ga vidjeli ovdje", + "find_something": "PronaÄ‘i neÅ¡to za gledanje", + "removed_from_library": "Uklonjeno iz biblioteke", + "item_removed": "Stavka uklonjena iz vaÅ¡e biblioteke", + "failed_update_library": "Ažuriranje biblioteke nije uspjelo", + "unable_remove": "Nije moguće ukloniti stavku iz biblioteke", + "marked_watched": "OznaÄeno kao pogledano", + "marked_unwatched": "OznaÄeno kao nepogledano", + "item_marked_watched": "Stavka oznaÄena kao pogledana", + "item_marked_unwatched": "Stavka oznaÄena kao nepogledana", + "failed_update_watched": "Nije uspjelo ažuriranje statusa gledanja", + "unable_update_watched": "Nije moguće ažurirati status gledanja", + "added_to_library": "Dodano u biblioteku", + "item_added": "Dodano u vaÅ¡u lokalnu biblioteku", + "add_to_library": "Dodaj u biblioteku", + "remove_from_library": "Ukloni iz biblioteke", + "mark_watched": "OznaÄi kao pogledano", + "mark_unwatched": "OznaÄi kao nepogledano", + "share": "Podijeli", + "add_to_watchlist": "Dodaj u Trakt listu gledanja", + "remove_from_watchlist": "Ukloni iz Trakt liste gledanja", + "added_to_watchlist": "Dodano u listu gledanja", + "added_to_watchlist_desc": "Dodano u vaÅ¡u Trakt listu gledanja", + "removed_from_watchlist": "Uklonjeno iz liste gledanja", + "removed_from_watchlist_desc": "Uklonjeno iz vaÅ¡e Trakt liste gledanja", + "add_to_collection": "Dodaj u Trakt kolekciju", + "remove_from_collection": "Ukloni iz Trakt kolekcije", + "added_to_collection": "Dodano u kolekciju", + "added_to_collection_desc": "Dodano u vaÅ¡u Trakt kolekciju", + "removed_from_collection": "Uklonjeno iz kolekcije", + "removed_from_collection_desc": "Uklonjeno iz vaÅ¡e Trakt kolekcije" + }, + "metadata": { + "unable_to_load": "Nije moguće uÄitati sadržaj", + "error_code": "Kod greÅ¡ke: {{code}}", + "content_not_found": "Sadržaj nije pronaÄ‘en", + "content_not_found_desc": "Ovaj sadržaj ne postoji ili je uklonjen.", + "server_error": "GreÅ¡ka na poslužitelju", + "server_error_desc": "Poslužitelj je privremeno nedostupan. Molimo pokuÅ¡ajte kasnije.", + "bad_gateway": "LoÅ¡ pristupnik", + "bad_gateway_desc": "Poslužitelj ima problema. Molimo pokuÅ¡ajte kasnije.", + "service_unavailable": "Usluga nedostupna", + "service_unavailable_desc": "Usluga je trenutno nedostupna zbog održavanja. Molimo pokuÅ¡ajte kasnije.", + "too_many_requests": "PreviÅ¡e zahtjeva", + "too_many_requests_desc": "Å aljete previÅ¡e zahtjeva. Molimo priÄekajte trenutak i pokuÅ¡ajte ponovo.", + "request_timeout": "Istek vremena zahtjeva", + "request_timeout_desc": "Zahtjev je trajao predugo. Molimo pokuÅ¡ajte ponovo.", + "network_error": "Mrežna greÅ¡ka", + "network_error_desc": "Molimo provjerite svoju internetsku vezu i pokuÅ¡ajte ponovo.", + "auth_error": "GreÅ¡ka autentifikacije", + "auth_error_desc": "Molimo provjerite postavke svog raÄuna i pokuÅ¡ajte ponovo.", + "access_denied": "Pristup odbijen", + "access_denied_desc": "Nemate dozvolu za pristup ovom sadržaju.", + "connection_error": "GreÅ¡ka pri povezivanju", + "streams_unavailable": "Streamovi nedostupni", + "streams_unavailable_desc": "Izvori streaminga trenutno nisu dostupni. Molimo pokuÅ¡ajte kasnije.", + "unknown_error": "Nepoznata greÅ¡ka", + "something_went_wrong": "NeÅ¡to je poÅ¡lo po zlu. Molimo pokuÅ¡ajte ponovo.", + "cast": "GlumaÄka postava", + "more_like_this": "SliÄno ovome", + "collection": "Kolekcija", + "episodes": "Epizode", + "seasons": "Sezone", + "posters": "Posteri", + "banners": "Banneri", + "specials": "Specijali", + "season_number": "Sezona {{number}}", + "episode_count": "{{count}} Epizoda", + "episode_count_plural": "{{count}} Epizoda", + "no_episodes": "Nema dostupnih epizoda", + "no_episodes_for_season": "Nema dostupnih epizoda za Sezonu {{season}}", + "episodes_not_released": "Epizode možda joÅ¡ nisu objavljene", + "no_description": "Opis nije dostupan", + "episode_label": "EPIZODA {{number}}", + "watch_again": "Gledaj ponovo", + "completed": "ZavrÅ¡eno", + "play_episode": "Gledaj S{{season}}E{{episode}}", + "play": "Gledaj", + "watched": "Pogledano", + "watched_on_trakt": "Pogledano na Traktu", + "synced_with_trakt": "Sinkronizirano s Traktom", + "saved": "Spremljeno", + "director": "Redatelj", + "directors": "Redatelji", + "creator": "Kreator", + "creators": "Kreatori", + "production": "Produkcija", + "network": "Mreža", + "mark_watched": "OznaÄi kao pogledano", + "mark_unwatched": "OznaÄi kao nepogledano", + "marking": "OznaÄavanje...", + "removing": "Uklanjanje...", + "unmark_season": "OdznaÄi sezonu {{season}}", + "mark_season": "OznaÄi sezonu {{season}}", + "resume": "Nastavi", + "spoiler_warning": "Upozorenje o spoilerima", + "spoiler_warning_desc": "Ovaj komentar sadrži spoilere. Jeste li sigurni da ga želite otkriti?", + "cancel": "Odustani", + "reveal_spoilers": "Otkrij spoilere", + "movie_details": "Detalji filma", + "show_details": "Detalji serije", + "tagline": "Slogan", + "status": "Status", + "release_date": "Datum izlaska", + "runtime": "Trajanje", + "budget": "Budžet", + "revenue": "Prihod", + "origin_country": "Zemlja porijekla", + "original_language": "Izvorni jezik", + "first_air_date": "Prvo emitiranje", + "last_air_date": "Zadnje emitiranje", + "total_episodes": "Ukupno epizoda", + "episode_runtime": "Trajanje epizode", + "created_by": "Kreirao", + "backdrop_gallery": "Galerija pozadina", + "loading_episodes": "UÄitavanje epizoda...", + "no_episodes_available": "Nema dostupnih epizoda", + "play_next": "Gledaj S{{season}}E{{episode}}", + "play_next_episode": "Gledaj sljedeću epizodu", + "save": "Spremi", + "percent_watched": "{{percent}}% pogledano", + "percent_watched_trakt": "{{percent}}% pogledano ({{traktPercent}}% na Traktu)", + "synced_with_trakt_progress": "Sinkronizirano s Traktom", + "using_trakt_progress": "KoriÅ¡tenje Trakt napretka", + "added_to_collection_hero": "Dodano u kolekciju", + "added_to_collection_desc_hero": "Dodano u vaÅ¡u Trakt kolekciju", + "removed_from_collection_hero": "Uklonjeno iz kolekcije", + "removed_from_collection_desc_hero": "Uklonjeno iz vaÅ¡e Trakt kolekcije", + "mark_as_watched": "OznaÄi kao pogledano", + "mark_as_unwatched": "OznaÄi kao nepogledano" + }, + "cast": { + "biography": "Biografija", + "known_for": "Poznat/a po", + "personal_info": "Osobni podaci", + "born_in": "RoÄ‘en/a u {{place}}", + "filmography": "Filmografija", + "also_known_as": "TakoÄ‘er poznat/a kao", + "no_info_available": "Nema dodatnih informacija", + "as_character": "kao {{character}}", + "loading_details": "UÄitavanje detalja...", + "years_old": "{{age}} godina", + "view_filmography": "Prikaži filmografiju", + "filter": "Filtriraj", + "sort_by": "Sortiraj po", + "sort_popular": "Popularno", + "sort_latest": "Najnovije", + "sort_upcoming": "Nadolažeće", + "upcoming_badge": "DOLAZI USKORO", + "coming_soon": "Dolazi uskoro", + "filmography_count": "Filmografija • {{count}} naslova", + "loading_filmography": "UÄitavanje filmografije...", + "load_more_remaining": "UÄitaj viÅ¡e (joÅ¡ {{count}})", + "alert_error_title": "GreÅ¡ka", + "alert_error_message": "Nije moguće uÄitati \"{{title}}\". Molimo pokuÅ¡ajte kasnije.", + "alert_ok": "U redu", + "no_upcoming": "Nema nadolazećih izdanja za ovog glumca", + "no_content": "Nema sadržaja za ovog glumca", + "no_movies": "Nema filmova za ovog glumca", + "no_tv": "Nema serija za ovog glumca" + }, + "comments": { + "title": "Trakt komentari", + "spoiler_warning": "âš ï¸ Ovaj komentar sadrži spoilere. Dodirnite za otkrivanje.", + "spoiler": "Spoiler", + "contains_spoilers": "Sadrži spoilere", + "reveal": "Otkrij", + "vip": "VIP", + "unavailable": "Komentari nedostupni", + "no_comments": "JoÅ¡ nema komentara na Traktu", + "not_in_database": "Ovaj sadržaj možda joÅ¡ nije u Trakt bazi podataka", + "check_trakt": "Provjeri Trakt" + }, + "trailers": { + "title": "Trailer-i", + "official_trailers": "Službeni trailer-i", + "official_trailer": "Službeni trailer", + "teasers": "Teaser-i", + "teaser": "Teaser", + "clips_scenes": "IsjeÄci i scene", + "clip": "IsjeÄak", + "featurettes": "Prilozi", + "featurette": "Prilog", + "behind_the_scenes": "Iza scene", + "no_trailers": "Nema dostupnih trailer-a", + "unavailable": "Trailer nedostupan", + "unavailable_desc": "Ovaj trailer trenutno nije moguće uÄitati. Molimo pokuÅ¡ajte kasnije.", + "unable_to_play": "Nije moguće reproducirati trailer. Molimo pokuÅ¡ajte ponovo.", + "watch_on_youtube": "Gledaj na YouTubeu" + }, + "catalog": { + "no_content_found": "Sadržaj nije pronaÄ‘en", + "no_content_filters": "Nema sadržaja za odabrane filtere", + "loading_content": "UÄitavanje sadržaja...", + "back": "Nazad", + "in_theaters": "U kinima", + "all": "Sve", + "failed_tmdb": "Nije uspjelo uÄitavanje sadržaja s TMDB-a", + "movies": "Filmovi", + "tv_shows": "Serije", + "channels": "Kanali" + }, + "streams": { + "back_to_episodes": "Nazad na epizode", + "back_to_info": "Nazad na informacije", + "fetching_from": "Dohvaćanje od:", + "no_sources_available": "Nema dostupnih izvora streaminga", + "add_sources_desc": "Molimo dodajte izvore streaminga u postavkama", + "add_sources": "Dodaj izvore", + "finding_streams": "Traženje dostupnih streamova...", + "finding_best_stream": "Traženje najboljeg streama za automatsko pokretanje...", + "still_fetching": "JoÅ¡ uvijek dohvaćam streamove...", + "no_streams_available": "Nema dostupnih streamova", + "starting_best_stream": "Pokretanje najboljeg streama...", + "loading_more_sources": "UÄitavanje viÅ¡e izvora..." + }, + "player_ui": { + "via": "putem {{name}}", + "audio_tracks": "Audio zapisi", + "no_audio_tracks": "Nema dostupnih audio zapisa", + "playback_speed": "Brzina reprodukcije", + "on_hold": "Na Äekanju", + "playback_error": "GreÅ¡ka reprodukcije", + "unknown_error": "DoÅ¡lo je do nepoznate greÅ¡ke tijekom reprodukcije.", + "copy_error": "Kopiraj detalje greÅ¡ke", + "copied_to_clipboard": "Kopirano u meÄ‘uspremnik", + "dismiss": "Odbaci", + "continue_watching": "Nastavi gledati", + "start_over": "Kreni ispoÄetka", + "resume": "Nastavi", + "change_source": "Promijeni izvor", + "switching_source": "Mijenjanje izvora...", + "no_sources_found": "Nema pronaÄ‘enih izvora", + "sources": "Izvori", + "finding_sources": "Traženje izvora...", + "unknown_source": "Nepoznat izvor", + "sources_limited": "Izvori mogu biti ograniÄeni zbog greÅ¡aka pružatelja.", + "episodes": "Epizode", + "specials": "Specijali", + "season": "Sezona {{season}}", + "stream": "Stream {{number}}", + "subtitles": "Titlovi", + "built_in": "UgraÄ‘eno", + "addons": "Dodaci", + "style": "Stil", + "none": "Nema", + "search_online_subtitles": "Pretraži online titlove", + "preview": "Pregled", + "quick_presets": "Brze postavke", + "default": "Zadano", + "yellow": "Žuto", + "high_contrast": "Visoki kontrast", + "large": "Veliko", + "core": "Jezgra", + "font_size": "VeliÄina fonta", + "show_background": "Prikaži pozadinu", + "advanced": "Napredno", + "position": "Pozicija", + "text_color": "Boja teksta", + "align": "Poravnanje", + "bottom_offset": "Pomak od dna", + "background_opacity": "Prozirnost pozadine", + "text_shadow": "Sjena teksta", + "on": "UkljuÄeno", + "off": "IskljuÄeno", + "outline_color": "Boja obruba", + "outline": "Obrub", + "outline_width": "Å irina obruba", + "letter_spacing": "Razmak slova", + "line_height": "Visina linije", + "timing_offset": "Pomak vremena (s)", + "visual_sync": "Vizualna sinkronizacija", + "timing_hint": "Pomaknite titlove ranije (-) ili kasnije (+) za sinkronizaciju.", + "reset_defaults": "Vrati na zadano" + }, + "downloads": { + "title": "Preuzimanja", + "no_downloads": "JoÅ¡ nema preuzimanja", + "no_downloads_desc": "Preuzeti sadržaj pojavit će se ovdje za gledanje izvan mreže", + "explore": "Istraži sadržaj", + "path_copied": "Putanja kopirana", + "path_copied_desc": "Put do lokalne datoteke kopiran u meÄ‘uspremnik", + "copied": "Kopirano", + "incomplete": "Preuzimanje nepotpuno", + "incomplete_desc": "Preuzimanje joÅ¡ nije zavrÅ¡eno", + "not_available": "Nije dostupno", + "not_available_desc": "Put do lokalne datoteke dostupan je tek nakon zavrÅ¡etka preuzimanja.", + "status_downloading": "Preuzimanje", + "status_completed": "ZavrÅ¡eno", + "status_paused": "Pauzirano", + "status_error": "GreÅ¡ka", + "status_queued": "U redu Äekanja", + "status_unknown": "Nepoznato", + "provider": "Pružatelj", + "streaming_playlist_warning": "Možda se neće reproducirati - streaming lista", + "remaining": "preostalo", + "not_ready": "Preuzimanje nije spremno", + "not_ready_desc": "Molimo priÄekajte da preuzimanje zavrÅ¡i.", + "filter_all": "Sve", + "filter_active": "Aktivno", + "filter_done": "Gotovo", + "filter_paused": "Pauzirano", + "no_filter_results": "Nema {{filter}} preuzimanja", + "try_different_filter": "PokuÅ¡ajte odabrati drugi filter", + "limitations_title": "OgraniÄenja preuzimanja", + "limitations_msg": "• Datoteke manje od 1MB obiÄno su M3U8 streaming liste i ne mogu se preuzeti za gledanje izvan mreže. One rade samo s online streamingom i sadrže linkove na video segmente, a ne stvarni video sadržaj.", + "remove_title": "Ukloni preuzimanje", + "remove_confirm": "Ukloniti \"{{title}}\"{{season_episode}}?", + "cancel": "Odustani", + "remove": "Ukloni" + }, + "addons": { + "title": "Dodaci", + "reorder_mode": "NaÄin promjene redoslijeda", + "reorder_info": "Dodaci na vrhu imaju veći prioritet pri uÄitavanju sadržaja", + "add_addon_placeholder": "URL dodatka", + "add_button": "Dodaj dodatak", + "my_addons": "Moji dodaci", + "community_addons": "Zajednica dodaci", + "no_addons": "Nema instaliranih dodataka", + "uninstall_title": "Deinstaliraj dodatak", + "uninstall_message": "Jeste li sigurni da želite deinstalirati {{name}}?", + "uninstall_button": "Deinstaliraj", + "install_success": "Dodatak uspjeÅ¡no instaliran", + "install_error": "Instalacija dodatka nije uspjela", + "load_error": "UÄitavanje dodataka nije uspjelo", + "fetch_error": "Dohvaćanje detalja dodatka nije uspjelu", + "invalid_url": "Molimo unesite URL dodatka", + "configure": "Konfiguriraj", + "version": "Verzija: {{version}}", + "installed_addons": "INSTALIRANI DODACI", + "reorder_drag_title": "POVUCI DODATKE ZA PROMJENU REDOSLIJEDA", + "install": "Instaliraj", + "config_unavailable_title": "Konfiguracija nedostupna", + "config_unavailable_msg": "Nije moguće odrediti URL konfiguracije za ovaj dodatak.", + "cannot_open_config_title": "Nije moguće otvoriti konfiguraciju", + "cannot_open_config_msg": "URL konfiguracije ({{url}}) se ne može otvoriti. Dodatak možda nema konfiguracijsku stranicu.", + "description": "Opis", + "supported_types": "Podržane vrste", + "catalogs": "Katalozi", + "no_description": "Opis nije dostupan", + "overview": "PREGLED", + "no_categories": "Nema kategorija", + "pre_installed": "PREDINSTALIRANO" + }, + "trakt": { + "title": "Trakt Postavke", + "settings_title": "Trakt Postavke", + "connect_title": "Poveži se s Traktom", + "connect_desc": "Sinkronizirajte povijest gledanja, listu gledanja i kolekciju s Trakt.tv", + "sign_in": "Prijavi se putem Trakta", + "sign_out": "Odjavi se", + "sign_out_confirm": "Jeste li sigurni da se želite odjaviti s Trakt raÄuna?", + "joined": "Pridružen/a {{date}}", + "sync_settings_title": "Postavke sinkronizacije", + "sync_info": "Kada ste povezani s Traktom, cijela povijest sinkronizira se izravno s API-ja i ne zapisuje se u lokalnu pohranu. VaÅ¡a lista 'Nastavi gledati' odražava vaÅ¡ globalni Trakt napredak.", + "auto_sync_label": "Automatska sinkronizacija napretka", + "auto_sync_desc": "Automatski sinkroniziraj napredak gledanja s Traktom", + "import_history_label": "Uvezi povijest gledanja", + "import_history_desc": "Koristite \"Sinkroniziraj sada\" za uvoz povijesti gledanja i napretka s Trakta", + "sync_now_button": "Sinkroniziraj sada", + "display_settings_title": "Postavke prikaza", + "show_comments_label": "Prikaži Trakt komentare", + "show_comments_desc": "Prikaži Trakt komentare na ekranima s detaljima kada su dostupni", + "maintenance_title": "Na održavanju", + "maintenance_unavailable": "Trakt nedostupan", + "maintenance_desc": "Trakt integracija je privremeno pauzirana zbog održavanja. Sve sinkronizacije i autentifikacija su onemogućeni dok se održavanje ne zavrÅ¡i.", + "maintenance_button": "Usluga na održavanju", + "auth_success_title": "UspjeÅ¡no povezano", + "auth_success_msg": "VaÅ¡ Trakt raÄun je uspjeÅ¡no povezan.", + "auth_error_title": "GreÅ¡ka autentifikacije", + "auth_error_msg": "Nije uspjelo dovrÅ¡avanje autentifikacije s Traktom.", + "auth_error_generic": "DoÅ¡lo je do greÅ¡ke tijekom autentifikacije.", + "sign_out_error": "Nije uspjela odjava s Trakta.", + "sync_complete_title": "Sinkronizacija zavrÅ¡ena", + "sync_success_msg": "UspjeÅ¡no sinkroniziran napredak gledanja s Traktom.", + "sync_error_msg": "Sinkronizacija nije uspjela. Molimo pokuÅ¡ajte ponovo." + }, + "simkl": { + "title": "Simkl Postavke", + "settings_title": "Simkl Postavke", + "connect_title": "Poveži se sa Simklom", + "connect_desc": "Sinkronizirajte povijest gledanja i pratite Å¡to gledate", + "sign_in": "Prijavi se putem Simkla", + "sign_out": "Odspoji se", + "sign_out_confirm": "Jeste li sigurni da želite odspojiti Simkl?", + "syncing_desc": "VaÅ¡e pogledane stavke se sinkroniziraju sa Simklom.", + "auth_success_title": "UspjeÅ¡no povezano", + "auth_success_msg": "VaÅ¡ Simkl raÄun je uspjeÅ¡no povezan.", + "auth_error_title": "GreÅ¡ka autentifikacije", + "auth_error_msg": "Nije uspjelo dovrÅ¡avanje autentifikacije sa Simklom.", + "auth_error_generic": "DoÅ¡lo je do greÅ¡ke tijekom autentifikacije.", + "sign_out_error": "Nije uspjelo odspajanje sa Simkla.", + "config_error_title": "Konfiguracijska greÅ¡ka", + "config_error_msg": "Simkl Client ID nedostaje u varijablama okruženja.", + "conflict_title": "Konflikt", + "conflict_msg": "Ne možete se povezati sa Simklom dok je Trakt povezan. Molimo prvo odspojite Trakt.", + "disclaimer": "Nuvio nije povezan sa Simklom." + }, + "tmdb_settings": { + "title": "TMDb Postavke", + "metadata_enrichment": "Obogaćivanje metapodataka", + "metadata_enrichment_desc": "PoboljÅ¡ajte metapodatke sadržaja s TMDb podacima za bolje detalje i informacije.", + "enable_enrichment": "Omogući obogaćivanje", + "enable_enrichment_desc": "Nadopunjuje metapodatke dodataka s TMDb-om za glumaÄku postavu, certifikaciju, logotipe/postere i informacije o produkciji.", + "localized_text": "Lokalizirani tekst", + "localized_text_desc": "Dohvati naslove i opise na željenom jeziku s TMDb-a.", + "language": "Jezik", + "change": "Promijeni", + "logo_preview": "Pregled logotipa", + "logo_preview_desc": "Pregled prikazuje kako će lokalizirani logotipi izgledati na odabranom jeziku.", + "example": "Primjer:", + "no_logo": "Logotip nije dostupan", + "enrichment_options": "Opcije obogaćivanja", + "enrichment_options_desc": "Kontrolirajte koji podaci se dohvaćaju s TMDb-a. Onemogućene opcije koristit će podatke dodataka ako su dostupni.", + "cast_crew": "Glumci i ekipa", + "cast_crew_desc": "Glumci, redatelji, pisci s profilnim slikama", + "title_description": "Naslov i opis", + "title_description_desc": "Koristi TMDb lokalizirani naslov i pregled teksta", + "title_logos": "Logotipi naslova", + "title_logos_desc": "Slike naslova visoke kvalitete", + "banners_backdrops": "Banneri i pozadine", + "banners_backdrops_desc": "Slike pozadine visoke rezolucije", + "certification": "Certifikacija sadržaja", + "certification_desc": "Dobne oznake (PG-13, R, TV-MA, itd.)", + "recommendations": "Preporuke", + "recommendations_desc": "Prijedlozi sliÄnog sadržaja", + "episode_data": "Podaci o epizodama", + "episode_data_desc": "SliÄice epizoda, informacije i priÄuve za TV serije", + "season_posters": "Posteri sezona", + "season_posters_desc": "SpecifiÄne slike postera za sezone", + "production_info": "Informacije o produkciji", + "production_info_desc": "Mreže i produkcijske kuće s logotipima", + "movie_details": "Detalji filma", + "movie_details_desc": "Budžet, prihod, trajanje, slogan", + "tv_details": "Detalji serije", + "tv_details_desc": "Status, broj sezona, mreže, kreatori", + "movie_collections": "Filmske kolekcije", + "movie_collections_desc": "Filmske franÅ¡ize (Marvel, Star Wars, itd.)", + "api_configuration": "API Konfiguracija", + "api_configuration_desc": "Konfigurirajte svoj pristup TMDb API-ju za poboljÅ¡anu funkcionalnost.", + "custom_api_key": "PrilagoÄ‘eni API kljuÄ", + "custom_api_key_desc": "Koristite vlastiti TMDb API kljuÄ za bolje performanse i namjenska ograniÄenja.", + "custom_key_active": "PrilagoÄ‘eni API kljuÄ aktivan", + "api_key_required": "Potreban API kljuÄ", + "api_key_placeholder": "Zalijepite svoj TMDb API kljuÄ (v3)", + "how_to_get_key": "Kako dobiti TMDb API kljuÄ?", + "built_in_key_msg": "Trenutno koristite ugraÄ‘eni API kljuÄ. Razmislite o koriÅ¡tenju vlastitog kljuÄa za bolje performanse.", + "cache_size": "VeliÄina predmemorije", + "clear_cache": "OÄisti predmemoriju", + "cache_days": "TMDB odgovori se spremaju 7 dana radi poboljÅ¡anja performansi", + "choose_language": "Odaberi jezik", + "choose_language_desc": "Odaberite željeni jezik za TMDb sadržaj", + "popular": "Popularno", + "all_languages": "Svi jezici", + "search_results": "Rezultati pretraživanja", + "no_languages_found": "Nema pronaÄ‘enih jezika za \"{{query}}\"", + "clear_search": "OÄisti pretraživanje", + "clear_cache_title": "OÄisti TMDB predmemoriju", + "clear_cache_msg": "Ovo će oÄistiti sve spremljene TMDB podatke ({{size}}). Ovo može privremeno usporiti uÄitavanje dok se predmemorija ne obnovi.", + "clear_cache_success": "TMDB predmemorija uspjeÅ¡no oÄišćena.", + "clear_cache_error": "Brisanje predmemorije nije uspjelo.", + "clear_api_key_title": "Ukloni API kljuÄ", + "clear_api_key_msg": "Jeste li sigurni da želite ukloniti svoj prilagoÄ‘eni API kljuÄ i vratiti se na zadani?", + "clear_api_key_success": "API kljuÄ uspjeÅ¡no uklonjen", + "clear_api_key_error": "Uklanjanje API kljuÄa nije uspjelo", + "empty_api_key": "API kljuÄ ne može biti prazan.", + "invalid_api_key": "Nevažeći API kljuÄ. Molimo provjerite i pokuÅ¡ajte ponovo.", + "save_error": "DoÅ¡lo je do greÅ¡ke prilikom spremanja. Molimo pokuÅ¡ajte ponovo.", + "using_builtin_key": "Sada koristite ugraÄ‘eni TMDb API kljuÄ.", + "using_custom_key": "Sada koristite svoj prilagoÄ‘eni TMDb API kljuÄ.", + "enter_custom_key": "Molimo unesite i spremite svoj prilagoÄ‘eni TMDb API kljuÄ.", + "key_verified": "API kljuÄ verificiran i uspjeÅ¡no spremljen." + }, + "settings": { + "language": "Jezik", + "select_language": "Odaberi jezik", + "english": "Engleski", + "portuguese": "Portugalski", + "portuguese_br": "Portugalski (Brazil)", + "portuguese_pt": "Portugalski (Portugal)", + "german": "NjemaÄki", + "arabic": "Arapski", + "spanish": "Å panjolski", + "french": "Francuski", + "italian": "Talijanski", + "croatian": "Hrvatski", + "account": "RaÄun", + "content_discovery": "Sadržaj i otkrivanje", + "appearance": "Izgled", + "integrations": "Integracije", + "playback": "Reprodukcija", + "backup_restore": "Sigurnosna kopija i vraćanje", + "updates": "Ažuriranja", + "about": "O aplikaciji", + "developer": "Razvojni programer", + "cache": "Predmemorija", + "title": "Postavke", + "settings_title": "Postavke", + "sign_in_sync": "Prijavite se za sinkronizaciju", + "add_catalogs_sources": "Dodaci, katalozi i izvori", + "player_trailers_downloads": "Player, traileri, preuzimanja", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "Provjeri ažuriranja", + "clear_mdblist_cache": "OÄisti MDBList predmemoriju", + "cache_management": "UPRAVLJANJE PREDMEMORIJOM", + "downloads_counter": "preuzimanja i brojanje", + "made_with_love": "S ljubavlju napravili Tapframe i prijatelji", + "sections": { + "information": "INFORMACIJE", + "account": "RAÄŒUN", + "theme": "TEMA", + "layout": "RASPORED", + "sources": "IZVORI", + "catalogs": "KATALOZI", + "discovery": "OTKRIVANJE", + "metadata": "METAPODACI", + "ai_assistant": "AI ASISTENT", + "video_player": "VIDEO PLAYER", + "audio_subtitles": "AUDIO I TITLOVI", + "media": "MEDIJI", + "notifications": "OBAVIJESTI", + "testing": "TESTIRANJE", + "danger_zone": "OPASNA ZONA" + }, + "items": { + "legal": "Pravno i odricanje od odgovornosti", + "privacy_policy": "Pravila privatnosti", + "report_issue": "Prijavi problem", + "version": "Verzija", + "contributors": "Doprinositelji", + "view_contributors": "Prikaži sve doprinositelje", + "theme": "Tema", + "episode_layout": "Raspored epizoda", + "streams_backdrop": "Pozadina streamova", + "streams_backdrop_desc": "Prikaži zamućenu pozadinu na mobilnim streamovima", + "addons": "Dodaci", + "installed": "instalirano", + "debrid_integration": "Debrid integracija", + "debrid_desc": "Poveži Torbox", + "plugins": "Dodaci (Plugins)", + "plugins_desc": "Upravljaj dodacima i repozitorijima", + "catalogs": "Katalozi", + "active": "aktivno", + "home_screen": "PoÄetni zaslon", + "home_screen_desc": "Raspored i sadržaj", + "continue_watching": "Nastavi gledati", + "continue_watching_desc": "PonaÅ¡anje predmemorije i reprodukcije", + "show_discover": "Prikaži sekciju Otkrij", + "show_discover_desc": "Prikaži sadržaj za otkrivanje u Pretraživanju", + "mdblist": "MDBList", + "mdblist_connected": "Povezano", + "mdblist_desc": "Omogući dodavanje ocjena i recenzija", + "simkl": "Simkl", + "simkl_connected": "Povezano", + "simkl_desc": "Prati Å¡to gledaÅ¡", + "tmdb": "TMDB", + "tmdb_desc": "Pružatelj metapodataka i logotipa", + "openrouter": "OpenRouter API", + "openrouter_connected": "Povezano", + "openrouter_desc": "Dodaj svoj API kljuÄ za AI chat", + "video_player": "Video Player", + "built_in": "UgraÄ‘eni", + "external": "Vanjski", + "preferred_audio": "Preferirani jezik zvuka", + "preferred_subtitle": "Preferirani jezik titlova", + "subtitle_source": "Prioritet izvora titlova", + "auto_select_subs": "Automatski odaberi titlove", + "auto_select_subs_desc": "Automatski odaberi titlove prema vaÅ¡im preferencijama", + "show_trailers": "Prikaži trailere", + "show_trailers_desc": "Prikaži trailere u hero sekciji", + "enable_downloads": "Omogući preuzimanja (Beta)", + "enable_downloads_desc": "Prikaži tab Preuzimanja i omogući spremanje streamova", + "notifications": "Obavijesti", + "notifications_desc": "Podsjetnici za epizode", + "developer_tools": "Alati za programere", + "developer_tools_desc": "Opcije testiranja i ispravljanja greÅ¡aka", + "test_onboarding": "Testiraj uvod", + "reset_onboarding": "Resetiraj uvod", + "test_announcement": "Testiraj obavijest", + "test_announcement_desc": "Prikaži Å¡to je novo preklapanje", + "reset_campaigns": "Resetiraj kampanje", + "reset_campaigns_desc": "OÄisti impresije kampanja", + "clear_all_data": "OÄisti sve podatke", + "clear_all_data_desc": "Resetiraj sve postavke i predmemorirane podatke" + }, + "options": { + "horizontal": "Horizontalno", + "vertical": "Vertikalno", + "internal_first": "Prvo interni", + "internal_first_desc": "Preferiraj ugraÄ‘ene titlove, zatim vanjske", + "external_first": "Prvo vanjski", + "external_first_desc": "Preferiraj titlove dodataka, zatim ugraÄ‘ene", + "any_available": "Bilo koji dostupan", + "any_available_desc": "Koristi prvi dostupni zapis titlova" + }, + "clear_data_desc": "Ovo će resetirati sve postavke i oÄistiti sve predmemorirane podatke. Jeste li sigurni?", + "app_updates": "Ažuriranja aplikacije", + "about_nuvio": "O Nuviju" + }, + "ai_settings": { + "title": "AI Asistent", + "info_title": "AI Pogonjeni Chat", + "info_desc": "Pitajte pitanja o bilo kojem filmu ili epizodi TV serije koristeći napredni AI. Dobijte uvide o radnji, likovima, temama, zanimljivostima i viÅ¡e - sve pokriveno sveobuhvatnim TMDB podacima.", + "feature_1": "Kontekst i analiza specifiÄna za epizodu", + "feature_2": "ObjaÅ¡njenja radnje i uvidi u likove", + "feature_3": "Zanimljivosti i Äinjenice iza scene", + "feature_4": "VaÅ¡ vlastiti besplatni OpenRouter API kljuÄ", + "api_key_section": "OPENROUTER API KLJUÄŒ", + "api_key_label": "API KljuÄ", + "api_key_desc": "Unesite svoj OpenRouter API kljuÄ za omogućavanje znaÄajki AI chata", + "save_api_key": "Spremi API KljuÄ", + "saving": "Spremanje...", + "update": "Ažuriraj", + "remove": "Ukloni", + "get_free_key": "Dobijte besplatni API kljuÄ od OpenRoutera", + "enable_chat": "Omogući AI Chat", + "enable_chat_desc": "Kada je omogućeno, gumb \"Pitajte AI\" pojavit će se na stranicama sadržaja.", + "chat_enabled": "AI Chat Omogućen", + "chat_enabled_desc": "Sada možete postavljati pitanja o filmovima i TV serijama. Potražite gumb \"Pitajte AI\" na stranicama sadržaja!", + "how_it_works": "Kako to radi", + "how_it_works_desc": "• OpenRouter pruža pristup viÅ¡estrukim AI modelima\n• VaÅ¡ API kljuÄ ostaje privatan i siguran\n• Besplatni plan ukljuÄuje velikoduÅ¡na ograniÄenja koriÅ¡tenja\n• Razgovarajte s kontekstom o specifiÄnim epizodama/filmovima\n• Dobijte detaljnu analizu i objaÅ¡njenja", + "error_invalid_key": "Molimo unesite ispravan API kljuÄ", + "error_key_format": "OpenRouter API kljuÄevi trebali bi poÄeti s \"sk-or-\"", + "success_saved": "OpenRouter API kljuÄ uspjeÅ¡no spremljen!", + "error_save": "Spremanje API kljuÄa nije uspjelo", + "confirm_remove_title": "Ukloni API KljuÄ", + "confirm_remove_msg": "Jeste li sigurni da želite ukloniti svoj OpenRouter API kljuÄ? Ovo će onemogućiti znaÄajke AI chata.", + "success_removed": "API kljuÄ uspjeÅ¡no uklonjen", + "error_remove": "Uklanjanje API kljuÄa nije uspjelo" + }, + "catalog_settings": { + "title": "Katalozi", + "layout_phone": "RASPORED KATALOGA (MOBITEL)", + "posters_per_row": "Postera po redu", + "auto": "Automatski", + "show_titles": "Prikaži naslove postera", + "show_titles_desc": "Prikaži tekst naslova ispod svakog postera", + "phone_only_hint": "Vrijedi samo za mobitele. Tableti zadržavaju prilagodljivi raspored.", + "catalogs_group": "Katalozi", + "enabled_count": "{{enabled}} od {{total}} omogućeno", + "rename_hint": "Dugo pritisnite katalog za preimenovanje", + "rename_modal_title": "Preimenuj katalog", + "rename_placeholder": "Unesite novo ime kataloga", + "error_save_name": "Nije moguće spremiti prilagoÄ‘eno ime." + }, + "continue_watching_settings": { + "title": "Nastavi gledati", + "playback_behavior": "PONAÅ ANJE REPRODUKCIJE", + "use_cached": "Koristi predmemorirane streamove", + "use_cached_desc": "Kada je omogućeno, klik na stavke Nastavi gledati otvorit će player izravno koristeći prethodno reproducirane streamove. Kada je onemogućeno, otvara ekran sadržaja.", + "open_metadata": "Otvori ekran metapodataka", + "open_metadata_desc": "Kada su predmemorirani streamovi onemogućeni, otvori ekran metapodataka umjesto ekrana streamova. Ovo prikazuje detalje sadržaja i omogućuje ruÄni odabir streama.", + "card_appearance": "IZGLED KARTICE", + "card_style": "Stil kartice", + "card_style_desc": "Odaberite kako se stavke Nastavi gledati pojavljuju na poÄetnom zaslonu", + "wide": "Å iroko", + "poster": "Poster", + "cache_settings": "POSTAVKE PREDMEMORIJE", + "cache_duration": "Trajanje predmemorije streamova", + "cache_duration_desc": "Koliko dugo zadržati predmemorirane linkove streama prije nego Å¡to isteknu", + "important_note": "Važna napomena", + "important_note_text": "Ne moraju svi linkovi streama ostati aktivni tijekom cijelog trajanja predmemorije. Dulja vremena predmemorije mogu rezultirati isteklim linkovima. Ako predmemorirani link ne uspije, aplikacija će se vratiti na dohvaćanje svježih streamova.", + "how_it_works": "Kako to radi", + "how_it_works_cached": "• Streamovi se predmemoriraju za vaÅ¡e odabrano trajanje nakon reprodukcije\n• Predmemorirani streamovi se provjeravaju prije upotrebe\n• Ako je predmemorija nevažeća ili istekla, vraća se na ekran sadržaja\n• \"Koristi predmemorirane streamove\" kontrolira izravni player naspram navigacije ekranom\n• \"Otvori ekran metapodataka\" pojavljuje se samo kada su predmemorirani streamovi onemogućeni", + "how_it_works_uncached": "• Kada su predmemorirani streamovi onemogućeni, klik na stavke Nastavi gledati otvara ekrane sadržaja\n• Opcija \"Otvori ekran metapodataka\" kontrolira koji ekran otvoriti\n• Ekran metapodataka prikazuje detalje sadržaja i omogućuje ruÄni odabir streama\n• Ekran streamova prikazuje dostupne streamove za trenutnu reprodukciju", + "changes_saved": "Promjene spremljene", + "min": "min", + "hour": "sat", + "hours": "sati" + }, + "contributors": { + "title": "Doprinositelji", + "special_mentions": "Posebna priznanja", + "tab_contributors": "Doprinositelji", + "tab_special": "Posebna priznanja", + "manager_role": "Community Manager", + "manager_desc": "Upravlja Discord i Reddit zajednicama za Nuvio", + "sponsor_role": "Sponzor poslužitelja", + "sponsor_desc": "Sponzorirao infrastrukturu poslužitelja za Nuvio", + "mod_role": "Discord Moderator", + "mod_desc": "Pomaže u moderiranju Nuvio Discord zajednice", + "loading": "UÄitavanje...", + "discord_user": "Discord Korisnik", + "contributions": "doprinosa", + "gratitude_title": "Zahvalni smo za svaki doprinos", + "gratitude_desc": "Svaka linija koda, prijava greÅ¡ke i prijedlog pomaže uÄiniti Nuvio boljim za sve", + "special_thanks_title": "Posebna zahvala", + "special_thanks_desc": "Ovi nevjerojatni ljudi pomažu održavati Nuvio zajednicu aktivnom i poslužitelje online", + "error_rate_limit": "PrekoraÄeno ograniÄenje GitHub API-ja. Molimo pokuÅ¡ajte ponovo kasnije ili povucite za osvježavanje.", + "error_failed": "UÄitavanje doprinositelja nije uspjelo. Molimo provjerite svoju internetsku vezu.", + "retry": "PokuÅ¡aj ponovo", + "no_contributors": "Nema pronaÄ‘enih doprinositelja", + "loading_contributors": "UÄitavanje doprinositelja..." + }, + "debrid": { + "title": "Debrid Integracija", + "description_torbox": "OtkljuÄaj 4K streamove visoke kvalitete i munjevite brzine integracijom Torboxa. Unesite svoj API kljuÄ ispod za trenutnu nadogradnju iskustva streaminga.", + "description_torrentio": "Konfigurirajte Torrentio za dobivanje torrent streamova za filmove i TV emisije. Debrid usluga je potrebna za streaming sadržaja.", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "Povezano", + "status_disconnected": "Odspojeno", + "enable_addon": "Omogući dodatak", + "disconnect_button": "Odspoji i ukloni", + "disconnect_loading": "Odspajanje...", + "account_info": "Informacije o raÄunu", + "plan": "Plan", + "plan_free": "Besplatno", + "plan_essential": "Essential ($3/mj)", + "plan_pro": "Pro ($10/mj)", + "plan_standard": "Standard ($5/mj)", + "plan_unknown": "Nepoznato", + "expires": "IstjeÄe", + "downloaded": "Preuzeto", + "status_active": "Aktivno", + "connected_title": "✓ Povezano s TorBoxom", + "connected_desc": "VaÅ¡ TorBox dodatak je aktivan i pruža premium streamove.", + "configure_title": "Konfiguriraj dodatak", + "configure_desc": "Prilagodite svoje iskustvo streaminga. Sortirajte po kvaliteti, filtrirajte veliÄine datoteka i upravljajte drugim postavkama integracije.", + "open_settings": "Otvori postavke", + "what_is_debrid": "Å to je Debrid usluga?", + "enter_api_key": "Unesite svoj API kljuÄ", + "connect_button": "Poveži i instaliraj", + "connecting": "Povezivanje...", + "unlock_speeds_title": "OtkljuÄaj premium brzine", + "unlock_speeds_desc": "Nabavite Torbox pretplatu za pristup predmemoriranim streamovima visoke kvalitete bez meÄ‘uspremnika.", + "get_subscription": "Nabavi pretplatu", + "powered_by": "Pokreće", + "disclaimer_torbox": "Nuvio nije povezan s Torboxom ni na koji naÄin.", + "disclaimer_torrentio": "Nuvio nije povezan s Torrentiom ni na koji naÄin.", + "installed_badge": "✓ INSTALIRANO", + "promo_title": "âš¡ Trebate Debrid uslugu?", + "promo_desc": "Nabavite TorBox za munjevito brzi 4K streaming bez meÄ‘uspremnika. Premium predmemorirani torrenti i trenutna preuzimanja.", + "promo_button": "Nabavi TorBox pretplatu", + "service_label": "Debrid usluga *", + "api_key_label": "API KljuÄ *", + "sorting_label": "Sortiranje", + "exclude_qualities": "IskljuÄi kvalitete", + "priority_languages": "Prioritetni jezici", + "max_results": "Maksimalni rezultati", + "additional_options": "Dodatne opcije", + "no_download_links": "Ne prikazuj linkove za preuzimanje", + "no_debrid_catalog": "Ne prikazuj debrid katalog", + "install_button": "Instaliraj Torrentio", + "installing": "Instaliranje...", + "update_button": "Ažuriraj konfiguraciju", + "updating": "Ažuriranje...", + "remove_button": "Ukloni Torrentio", + "error_api_required": "API KljuÄ potreban", + "error_api_required_desc": "Molimo unesite API kljuÄ svoje debrid usluge za instalaciju Torrentia.", + "success_installed": "Torrentio dodatak uspjeÅ¡no instaliran!", + "success_removed": "Torrentio dodatak uspjeÅ¡no uklonjen", + "alert_disconnect_title": "Odspoji Torbox", + "alert_disconnect_msg": "Jeste li sigurni da želite odspojiti Torbox? Ovo će ukloniti dodatak i oÄistiti vaÅ¡ spremljeni API kljuÄ." + }, + "home_screen": { + "title": "Postavke poÄetnog zaslona", + "changes_applied": "Promjene primijenjene", + "display_options": "OPCIJE PRIKAZA", + "show_hero": "Prikaži Hero sekciju", + "show_hero_desc": "Istaknuti sadržaj na vrhu", + "show_this_week": "Prikaži sekciju Ovaj tjedan", + "show_this_week_desc": "Nove epizode iz trenutnog tjedna", + "select_catalogs": "Odaberi kataloge", + "all_catalogs": "Svi katalozi", + "selected": "odabrano", + "hero_layout": "Hero raspored", + "layout_legacy": "NaslijeÄ‘eno", + "layout_carousel": "Vrtuljak", + "layout_appletv": "Apple TV", + "layout_desc": "Banner pune Å¡irine, kartice koje se mogu povlaÄiti ili Apple TV stil", + "featured_source": "Istaknuti izvor", + "using_catalogs": "Koristi kataloge", + "manage_selected_catalogs": "Upravljaj odabranim katalozima", + "dynamic_bg": "DinamiÄka Hero pozadina", + "dynamic_bg_desc": "Zamućeni banner iza vrtuljka", + "performance_note": "Može utjecati na performanse na slabijim ureÄ‘ajima.", + "posters": "Posteri", + "show_titles": "Prikaži naslove", + "poster_size": "VeliÄina postera", + "poster_corners": "Kutovi postera", + "size_small": "Malo", + "size_medium": "Srednje", + "size_large": "Veliko", + "corners_square": "Kvadratno", + "corners_rounded": "Zaobljeno", + "corners_pill": "Pilula", + "about_these_settings": "O OVIM POSTAVKAMA", + "about_desc": "Ove postavke kontroliraju kako se sadržaj prikazuje na vaÅ¡em poÄetnom zaslonu. Promjene se primjenjuju odmah bez potrebe za ponovnim pokretanjem aplikacije.", + "hero_catalogs": { + "title": "Katalozi Hero sekcije", + "select_all": "Odaberi sve", + "clear_all": "OÄisti sve", + "info": "Odaberite koje kataloge želite prikazati u hero sekciji. Ako nijedan nije odabran, koristit će se svi katalozi. Ne zaboravite pritisnuti Spremi kada zavrÅ¡ite.", + "settings_saved": "Postavke spremljene", + "error_load": "UÄitavanje kataloga nije uspjelo", + "movies": "Filmovi", + "tv_shows": "TV emisije" + } + }, + "calendar": { + "title": "Kalendar", + "loading": "UÄitavanje kalendara...", + "no_scheduled_episodes": "Nema zakazanih epizoda", + "check_back_later": "Provjerite kasnije", + "showing_episodes_for": "Prikazujem epizode za {{date}}", + "show_all_episodes": "Prikaži sve epizode", + "no_episodes_for": "Nema epizoda za {{date}}", + "no_upcoming_found": "Nema pronaÄ‘enih nadolazećih epizoda", + "add_series_desc": "Dodajte serije u svoju biblioteku da biste vidjeli njihove nadolazeće epizode ovdje" + }, + "mdblist": { + "title": "Izvori ocjena", + "status_disabled": "MDBList onemogućen", + "status_active": "API kljuÄ aktivan", + "status_required": "API kljuÄ potreban", + "status_disabled_desc": "MDBList funkcionalnost je trenutno onemogućena.", + "status_active_desc": "Ocjene s MDBList-a su omogućene.", + "status_required_desc": "Dodajte svoj kljuÄ ispod da biste omogućili ocjene.", + "enable_toggle": "Omogući MDBList", + "enable_toggle_desc": "UkljuÄi/iskljuÄi svu MDBList funkcionalnost", + "api_section": "API KljuÄ", + "placeholder": "Zalijepite svoj MDBList API kljuÄ", + "save": "Spremi", + "clear": "OÄisti kljuÄ", + "rating_providers": "Pružatelji ocjena", + "rating_providers_desc": "Odaberite koje ocjene prikazati u aplikaciji", + "how_to": "Kako dobiti API kljuÄ", + "step_1": "Prijavite se na", + "step_1_link": "MDBList web stranica", + "step_2": "Idite na", + "step_2_settings": "Postavke", + "step_2_api": "API", + "step_2_end": "sekcija.", + "step_3": "Generirajte novi kljuÄ i kopirajte ga.", + "go_to_website": "Idi na MDBList", + "alert_clear_title": "OÄisti API kljuÄ", + "alert_clear_msg": "Jeste li sigurni da želite ukloniti spremljeni API kljuÄ?", + "success_saved": "API kljuÄ uspjeÅ¡no spremljen.", + "error_empty": "API KljuÄ ne može biti prazan.", + "error_save": "DoÅ¡lo je do greÅ¡ke prilikom spremanja. Molimo pokuÅ¡ajte ponovo.", + "api_key_empty_error": "API KljuÄ ne može biti prazan.", + "success_cleared": "API kljuÄ uspjeÅ¡no oÄišćen", + "error_clear": "Brisanje API kljuÄa nije uspjelo" + }, + "notification": { + "title": "Postavke obavijesti", + "section_general": "Općenito", + "enable_notifications": "Omogući obavijesti", + "section_types": "Vrste obavijesti", + "new_episodes": "Nove epizode", + "upcoming_shows": "Nadolazeće emisije", + "reminders": "Podsjetnici", + "section_timing": "Vrijeme obavijesti", + "timing_desc": "Kada želite biti obavijeÅ¡teni prije emitiranja epizode?", + "hours_1": "1 sat", + "hours_suffix": "sati", + "section_status": "Status obavijesti", + "stats_upcoming": "Nadolazeće", + "stats_this_week": "Ovaj tjedan", + "stats_total": "Ukupno", + "sync_button": "Sinkroniziraj biblioteku i Trakt", + "syncing": "Sinkronizacija...", + "sync_desc": "Automatski sinkronizira obavijesti za sve emisije u vaÅ¡oj biblioteci i Trakt listi gledanja/kolekciji.", + "section_advanced": "Napredno", + "reset_button": "Resetiraj sve obavijesti", + "test_button": "Testiraj obavijest (5 sek)", + "test_notification_in": "Obavijest za {{seconds}}s...", + "test_notification_text": "Obavijest će se pojaviti za {{seconds}} sekundi", + "alert_reset_title": "Resetiraj obavijesti", + "alert_reset_msg": "Ovo će otkazati sve zakazane obavijesti, ali neće ukloniti niÅ¡ta iz vaÅ¡e spremljene biblioteke. Jeste li sigurni?", + "alert_reset_success": "Sve obavijesti su resetirane", + "alert_sync_complete": "Sinkronizacija zavrÅ¡ena", + "alert_sync_msg": "UspjeÅ¡no sinkronizirane obavijesti za vaÅ¡u biblioteku i Trakt stavke.\n\nZakazano: {{upcoming}} nadolazećih epizoda\nOvaj tjedan: {{thisWeek}} epizoda", + "alert_test_scheduled": "Testna obavijest zakazana za trenutno aktiviranje" + }, + "backup": { + "title": "Sigurnosna kopija i vraćanje", + "options_title": "Opcije sigurnosne kopije", + "options_desc": "Odaberite Å¡to želite ukljuÄiti u svoje sigurnosne kopije", + "section_core": "Jezgra podataka", + "section_addons": "Dodaci i integracije", + "section_settings": "Postavke i preferencije", + "library_label": "Biblioteka", + "library_desc": "VaÅ¡i spremljeni filmovi i TV emisije", + "watch_progress_label": "Napredak gledanja", + "watch_progress_desc": "Pozicije nastavi gledati", + "addons_label": "Dodaci", + "addons_desc": "Instalirani Stremio dodaci", + "plugins_label": "Dodaci (Plugins)", + "plugins_desc": "PrilagoÄ‘ene konfiguracije strugaÄa", + "trakt_label": "Trakt integracija", + "trakt_desc": "Sinkroniziraj podatke i autentifikacijske tokene", + "app_settings_label": "Postavke aplikacije", + "app_settings_desc": "Tema, preferencije i konfiguracije", + "user_prefs_label": "KorisniÄke preferencije", + "user_prefs_desc": "Redoslijed dodataka i postavke korisniÄkog suÄelja", + "catalog_settings_label": "Postavke kataloga", + "catalog_settings_desc": "Filteri i preferencije kataloga", + "api_keys_label": "API KljuÄevi", + "api_keys_desc": "MDBList i OpenRouter kljuÄevi", + "action_create": "Napravi sigurnosnu kopiju", + "action_restore": "Vrati iz sigurnosne kopije", + "section_info": "O sigurnosnim kopijama", + "info_text": "• Prilagodite Å¡to se sprema pomoću gornjih prekidaÄa\n• Datoteke sigurnosnih kopija spremaju se lokalno na vaÅ¡ ureÄ‘aj\n• Podijelite svoju sigurnosnu kopiju za prijenos podataka izmeÄ‘u ureÄ‘aja\n• Vraćanje će prebrisati vaÅ¡e trenutne podatke", + "alert_create_title": "Napravi sigurnosnu kopiju", + "alert_no_content": "Nema odabranog sadržaja za sigurnosnu kopiju.\n\nMolimo omogućite barem jednu opciju u gornjoj sekciji Opcije sigurnosne kopije.", + "alert_backup_created_title": "Sigurnosna kopija stvorena", + "alert_backup_created_msg": "VaÅ¡a sigurnosna kopija je stvorena i spremna za dijeljenje.", + "alert_backup_failed_title": "Sigurnosna kopija nije uspjela", + "alert_restore_confirm_title": "Potvrdi vraćanje", + "alert_restore_confirm_msg": "Ovo će vratiti vaÅ¡e podatke iz sigurnosne kopije stvorene {{date}}.\n\nOva radnja će prebrisati vaÅ¡e trenutne podatke. Jeste li sigurni da želite nastaviti?", + "alert_restore_complete_title": "Vraćanje zavrÅ¡eno", + "alert_restore_complete_msg": "VaÅ¡i podaci su uspjeÅ¡no vraćeni. Molimo ponovno pokrenite aplikaciju da vidite sve promjene.", + "alert_restore_failed_title": "Vraćanje nije uspjelo", + "restart_app": "Ponovno pokreni aplikaciju", + "alert_restart_failed_title": "Ponovno pokretanje nije uspjelo", + "alert_restart_failed_msg": "Ponovno pokretanje aplikacije nije uspjelo. Molimo ruÄno zatvorite i ponovno otvorite aplikaciju da vidite svoje vraćene podatke." + }, + "updates": { + "title": "Ažuriranja aplikacije", + "status_checking": "Provjera ažuriranja...", + "status_available": "Ažuriranje dostupno!", + "status_downloading": "Preuzimanje ažuriranja...", + "status_installing": "Instaliranje ažuriranja...", + "status_success": "Ažuriranje uspjeÅ¡no instalirano!", + "status_error": "Ažuriranje nije uspjelo", + "status_ready": "Spremno za provjeru ažuriranja", + "action_check": "Provjeri ažuriranja", + "action_install": "Instaliraj ažuriranje", + "release_notes": "BiljeÅ¡ke o izdanju:", + "version": "Verzija:", + "last_checked": "Zadnja provjera:", + "current_version": "Trenutna verzija:", + "current_release_notes": "Trenutne biljeÅ¡ke o izdanju:", + "github_release": "GITHUB IZDANJE", + "current": "Trenutno:", + "latest": "Najnovije:", + "notes": "BiljeÅ¡ke:", + "view_release": "Pogledaj izdanje", + "notification_settings": "POSTAVKE OBAVIJESTI", + "ota_alerts_label": "OTA ažuriranja upozorenja", + "ota_alerts_desc": "Prikaži obavijesti za ažuriranja putem zraka (OTA)", + "major_alerts_label": "Upozorenja o velikim ažuriranjima", + "major_alerts_desc": "Prikaži obavijesti za nove verzije aplikacije na GitHubu", + "alert_disable_ota_title": "Onemogući OTA upozorenja?", + "alert_disable_ota_msg": "ViÅ¡e nećete primati automatske obavijesti za OTA ažuriranja.\n\nâš ï¸ Upozorenje: Ostanak na najnovijoj verziji važan je za:\n• Ispravke greÅ¡aka i poboljÅ¡anja stabilnosti\n• Nove znaÄajke i poboljÅ¡anja\n• Pružanje toÄnih povratnih informacija i izvješća o ruÅ¡enju\n\nI dalje možete ruÄno provjeravati ažuriranja na ovom ekranu.", + "alert_disable_major_title": "Onemogući upozorenja o velikim ažuriranjima?", + "alert_disable_major_msg": "ViÅ¡e nećete primati obavijesti za velika ažuriranja aplikacije koja zahtijevaju ponovnu instalaciju.\n\nâš ï¸ Upozorenje: Velika ažuriranja Äesto ukljuÄuju:\n• Važne sigurnosne zakrpe\n• Prijelomne promjene koje zahtijevaju ponovnu instalaciju aplikacije\n• Važne popravke kompatibilnosti\n\nI dalje možete ruÄno provjeravati ažuriranja.", + "warning_note": "Održavanje upozorenja omogućenim osigurava primanje ispravaka greÅ¡aka i toÄna izvješća o ruÅ¡enju.", + "disable": "Onemogući", + "alert_no_update_to_install": "Nema dostupnog ažuriranja za instalaciju", + "alert_install_failed": "Instalacija ažuriranja nije uspjela", + "alert_no_update_title": "Nema ažuriranja", + "alert_update_applied_msg": "Ažuriranje će biti primijenjeno kod sljedećeg pokretanja aplikacije" + }, + "player": { + "title": "Video Player", + "section_selection": "ODABIR PLAYERA", + "internal_title": "UgraÄ‘eni Player", + "internal_desc": "Koristi zadani video player aplikacije", + "vlc_title": "VLC", + "vlc_desc": "Otvori streamove u VLC media playeru", + "infuse_title": "Infuse", + "infuse_desc": "Otvori streamove u Infuse playeru", + "outplayer_title": "OutPlayer", + "outplayer_desc": "Otvori streamove u OutPlayeru", + "vidhub_title": "VidHub", + "vidhub_desc": "Otvori streamove u VidHub playeru", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Otvori streamove u Infuse playeru LiveContainer", + "external_title": "Vanjski Player", + "external_desc": "Otvori streamove u svom preferiranom video playeru", + "section_playback": "OPCIJE REPRODUKCIJE", + "skip_intro_settings_title": "PreskoÄi uvod", + "powered_by_introdb": "Pokreće IntroDB", + "autoplay_title": "Automatski pokreni prvi stream", + "autoplay_desc": "Automatski pokreni prvi stream prikazan na listi.", + "resume_title": "Uvijek nastavi", + "resume_desc": "PreskoÄi upit za nastavak i automatski nastavi gdje ste stali (ako je manje od 85% pogledano).", + "engine_title": "PokretaÄ video playera", + "engine_desc": "Auto koristi ExoPlayer s MPV kao priÄuvom. Neki formati poput Dolby Vision i HDR možda nisu podržani od strane MPV-a, pa se Auto preporuÄuje za najbolju kompatibilnost.", + "decoder_title": "NaÄin dekodera", + "decoder_desc": "Kako se video dekodira. Auto se preporuÄuje za najbolju ravnotežu.", + "gpu_title": "GPU Renderiranje", + "gpu_desc": "GPU-Next nudi bolji HDR i upravljanje bojama.", + "external_downloads_title": "Vanjski player za preuzimanja", + "external_downloads_desc": "Reproducirajte preuzeti sadržaj u svom preferiranom vanjskom playeru.", + "restart_required": "Ponovno pokretanje potrebno", + "restart_msg_decoder": "Molimo ponovno pokrenite aplikaciju da bi promjena dekodera stupila na snagu.", + "restart_msg_gpu": "Molimo ponovno pokrenite aplikaciju da bi promjena GPU naÄina stupila na snagu.", + "option_auto": "Auto", + "option_auto_desc_engine": "ExoPlayer + MPV priÄuva", + "option_mpv": "MPV", + "option_mpv_desc": "Samo MPV", + "option_auto_desc_decoder": "Najbolja ravnoteža", + "option_sw": "SW", + "option_sw_desc": "Softver", + "option_hw": "HW", + "option_hw_desc": "Hardver", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "Puni HW", + "option_gpu_desc": "Standardno", + "option_gpu_next_desc": "Napredno" + }, + "plugins": { + "title": "Dodaci (Plugins)", + "enable_title": "Omogući dodatke", + "enable_desc": "Omogući pogon dodataka za rjeÅ¡avanje vanjskih izvora medija", + "repo_config_title": "Konfiguracija repozitorija", + "repo_config_desc": "Upravljaj vanjskim repozitorijima dodataka. UkljuÄite ili iskljuÄite svaki repozitorij ispod.", + "your_repos": "Repozitoriji", + "your_repos_desc": "Konfigurirajte vanjske izvore za dodatke.", + "add_repo_button": "Dodaj repozitorij", + "refresh": "Osvježi", + "remove": "Ukloni", + "enabled": "Omogućeno", + "disabled": "Onemogućeno", + "updating": "Ažuriranje...", + "success": "Uspjeh", + "error": "GreÅ¡ka", + "alert_repo_added": "Repozitorij dodan i dodaci uspjeÅ¡no uÄitani", + "alert_repo_saved": "URL repozitorija uspjeÅ¡no spremljen", + "alert_repo_refreshed": "Repozitorij uspjeÅ¡no osvježen", + "alert_invalid_url": "Nevažeći format URL-a", + "alert_plugins_cleared": "Svi dodaci su uklonjeni", + "alert_cache_cleared": "Predmemorija repozitorija uspjeÅ¡no oÄišćena", + "unknown": "Nepoznato", + "active": "Aktivno", + "available": "Dostupno", + "platform_disabled": "Platforma onemogućena", + "limited": "OgraniÄeno", + "clear_all": "OÄisti sve dodatke", + "clear_all_desc": "Jeste li sigurni da želite ukloniti sve instalirane dodatke? Ova radnja se ne može poniÅ¡titi.", + "clear_cache": "OÄisti predmemoriju repozitorija", + "clear_cache_desc": "Ovo će ukloniti spremljeni URL repozitorija i oÄistiti sve predmemorirane podatke dodataka. Morat ćete ponovno unijeti svoj URL repozitorija.", + "add_new_repo": "Dodaj novi repozitorij", + "available_plugins": "Dostupni dodaci ({{count}})", + "placeholder": "Pretraži dodatke...", + "all": "Sve", + "filter_all": "Sve vrste", + "filter_movies": "Filmovi", + "filter_tv": "TV emisije", + "enable_all": "Omogući sve", + "disable_all": "Onemogući sve", + "no_plugins_found": "Nema pronaÄ‘enih dodataka", + "no_plugins_available": "Nema dostupnih dodataka", + "no_match_desc": "Nema dodataka koji odgovaraju \"{{query}}\". PokuÅ¡ajte s drugim pojmom za pretraživanje.", + "configure_repo_desc": "Konfigurirajte repozitorij iznad za pregled dostupnih dodataka.", + "clear_search": "OÄisti pretraživanje", + "no_external_player": "Nema vanjskog playera", + "showbox_token": "ShowBox UI Token", + "showbox_placeholder": "Zalijepite svoj ShowBox UI token", + "save": "Spremi", + "clear": "OÄisti", + "additional_settings": "Dodatne postavke", + "enable_url_validation": "Omogući provjeru URL-a", + "url_validation_desc": "Provjeri URL-ove medija prije njihovog vraćanja (može usporiti rezultate, ali poboljÅ¡ava pouzdanost)", + "group_streams": "Grupiraj izvore dodataka", + "group_streams_desc": "Kada je omogućeno, izvori su grupirani po repozitoriju. Kada je onemogućeno, svaki dodatak se prikazuje kao zasebni pružatelj.", + "sort_quality": "Sortiraj prvo po kvaliteti", + "sort_quality_desc": "Kada je omogućeno, izvori se sortiraju prvo po kvaliteti. Dostupno samo kada je grupiranje omogućeno.", + "show_logos": "Prikaži logotipe dodataka", + "show_logos_desc": "Prikaži logotipe dodataka pored medijskih linkova na ekranu izvora.", + "quality_filtering": "Filtriranje kvalitete", + "quality_filtering_desc": "IskljuÄi specifiÄne video rezolucije iz rezultata pretraživanja. Dodirnite kvalitetu da biste je iskljuÄili iz rezultata dodataka.", + "excluded_qualities": "IskljuÄene kvalitete:", + "language_filtering": "Filtriranje jezika", + "language_filtering_desc": "IskljuÄi specifiÄne jezike iz rezultata pretraživanja. Dodirnite jezik da biste ga iskljuÄili iz rezultata dodataka.", + "note": "Napomena:", + "language_filtering_note": "Ovaj filter vrijedi samo za pružatelje koji ukljuÄuju informacije o jeziku. Ne utjeÄe na druge pružatelje.", + "excluded_languages": "IskljuÄeni jezici:", + "about_title": "O dodacima", + "about_desc_1": "Dodaci su modularne komponente koje prilagoÄ‘avaju sadržaj iz razliÄitih vanjskih protokola. Pokreću se lokalno na vaÅ¡em ureÄ‘aju i mogu se instalirati iz pouzdanih repozitorija.", + "about_desc_2": "Dodaci oznaÄeni kao \"OgraniÄeno\" mogu zahtijevati specifiÄne vanjske konfiguracije.", + "help_title": "Postavljanje dodataka", + "help_step_1": "1. **Omogući dodatke** - UkljuÄite glavni prekidaÄ", + "help_step_2": "2. **Dodaj repozitorij** - Dodajte važeći URL repozitorija", + "help_step_3": "3. **Osvježi repozitorij** - Dohvatite dostupne dodatke", + "help_step_4": "4. **Aktiviraj** - Omogućite dodatke koje želite koristiti", + "got_it": "Razumijem!", + "repo_format_hint": "Format: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "Odustani", + "add": "Dodaj" + }, + "theme": { + "title": "Teme aplikacije", + "select_theme": "ODABERI TEMU", + "create_custom": "Napravi prilagoÄ‘enu temu", + "options": "OPCIJE", + "use_dominant_color": "Koristi dominantnu boju iz slike", + "categories": { + "all": "Sve teme", + "dark": "Tamne teme", + "colorful": "Å arene", + "custom": "Moje teme" + }, + "editor": { + "theme_name_placeholder": "Ime teme", + "save": "Spremi", + "primary": "Primarna", + "secondary": "Sekundarna", + "background": "Pozadina", + "invalid_name_title": "Nevažeće ime", + "invalid_name_msg": "Molimo unesite važeće ime teme" + }, + "alerts": { + "delete_title": "ObriÅ¡i temu", + "delete_msg": "Jeste li sigurni da želite obrisati \"{{name}}\"?", + "ok": "U redu", + "delete": "ObriÅ¡i", + "cancel": "Odustani", + "back": "Postavke" + } + }, + "legal": { + "title": "Pravno i odricanje od odgovornosti", + "intro_title": "Priroda aplikacije", + "intro_text": "Nuvio je medijski player i aplikacija za upravljanje metapodacima. Djeluje iskljuÄivo kao suÄelje na strani klijenta za pregledavanje javno dostupnih metapodataka (filmovi, TV emisije, itd.) i reprodukciju medijskih datoteka koje pruža korisnik ili proÅ¡irenja trećih strana. Nuvio sam ne hostira, ne pohranjuje, ne distribuira niti indeksira nikakav medijski sadržaj.", + "extensions_title": "Dodaci trećih strana", + "extensions_text": "Nuvio koristi proÅ¡irivu arhitekturu koja omogućuje korisnicima instalaciju dodataka trećih strana. Ove dodatke razvijaju i održavaju neovisni programeri koji nisu povezani s Nuviom. Nemamo kontrolu nad niti preuzimamo odgovornost za sadržaj, zakonitost ili funkcionalnost bilo kojeg dodatka treće strane.", + "user_resp_title": "Odgovornost korisnika", + "user_resp_text": "Korisnici su iskljuÄivo odgovorni za dodatke koje instaliraju i sadržaj kojem pristupaju. KoriÅ¡tenjem ove aplikacije pristajete osigurati da imate zakonsko pravo pristupa bilo kojem sadržaju koji gledate koristeći Nuvio. Razvojni programeri Nuvia ne podržavaju niti potiÄu krÅ¡enje autorskih prava.", + "dmca_title": "Autorska prava i DMCA", + "dmca_text": "PoÅ¡tujemo prava intelektualnog vlasniÅ¡tva drugih. Budući da Nuvio ne hostira nikakav sadržaj, ne možemo ukloniti sadržaj s interneta. MeÄ‘utim, ako smatrate da samo suÄelje aplikacije krÅ¡i vaÅ¡a prava, kontaktirajte nas.", + "warranty_title": "Bez jamstva", + "warranty_text": "Ovaj softver se pruža \"kakav jest\", bez jamstva bilo koje vrste, izriÄitog ili impliciranog. Ni u kojem sluÄaju autori ili nositelji autorskih prava neće biti odgovorni za bilo kakvu tvrdnju, Å¡tetu ili drugu odgovornost proizaÅ¡lu iz koriÅ¡tenja ovog softvera." + }, + "plugin_tester": { + "title": "Tester dodataka", + "subtitle": "Pokreni strugaÄe i pregledaj logove u stvarnom vremenu", + "tabs": { + "individual": "PojedinaÄno", + "repo": "Repo Tester", + "code": "Kod", + "logs": "Logovi", + "results": "Rezultati" + }, + "common": { + "error": "GreÅ¡ka", + "success": "Uspjeh", + "movie": "Film", + "tv": "TV", + "tmdb_id": "TMDB ID", + "season": "Sezona", + "episode": "Epizoda", + "running": "Izvodi se…", + "run_test": "Pokreni test", + "play": "Reproduciraj", + "done": "Gotovo", + "test": "Test", + "testing": "Testiranje…" + }, + "individual": { + "load_from_url": "UÄitaj s URL-a", + "load_from_url_desc": "Zalijepi sirovi GitHub URL ili lokalni IP i dodirni preuzmi.", + "enter_url_error": "Molimo unesite URL", + "code_loaded": "Kod uÄitan s URL-a", + "fetch_error": "Dohvaćanje nije uspjelo: {{message}}", + "no_code_error": "Nema koda za pokretanje", + "plugin_code": "Kod dodatka", + "focus_editor": "Fokusiraj ureÄ‘ivaÄ koda", + "code_placeholder": "// Zalijepi kod dodatka ovdje...", + "test_parameters": "Parametri testa", + "no_logs": "JoÅ¡ nema logova. Pokrenite test da biste vidjeli izlaz.", + "no_streams": "JoÅ¡ nema pronaÄ‘enih streamova.", + "streams_found": "{{count}} Stream pronaÄ‘en", + "streams_found_plural": "{{count}} Streamova pronaÄ‘eno", + "tap_play_hint": "Dodirnite Reproduciraj za testiranje streama u izvornom playeru.", + "unnamed_stream": "Neimenovani stream", + "quality": "Kvaliteta: {{quality}}", + "size": "VeliÄina: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "Zaglavlja: {{count}} prilagoÄ‘enih zaglavlja", + "find_placeholder": "PronaÄ‘i u kodu…", + "edit_code_title": "Uredi kod", + "no_url_stream_error": "Nije pronaÄ‘en URL za ovaj stream" + }, + "repo": { + "title": "Repo Tester", + "description": "Dohvati repozitorij (lokalni URL ili GitHub raw) i testiraj svakog pružatelja.", + "enter_repo_url_error": "Molimo unesite URL repozitorija", + "invalid_url_title": "Nevažeći URL", + "invalid_url_msg": "Koristite GitHub raw URL ili lokalni http(s) URL.\n\nPrimjer:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "Nije moguće izgraditi URL manifesta iz unosa", + "manifest_fetch_error": "Nije uspjelo dohvaćanje manifesta", + "repo_manifest_fetch_error": "Nije uspjelo dohvaćanje manifesta repozitorija", + "missing_filename": "Nedostaje ime datoteke u manifestu", + "scraper_build_error": "Nije moguće izgraditi URL strugaÄa", + "download_scraper_error": "Nije uspjelo preuzimanje strugaÄa", + "test_failed": "Test nije uspio", + "test_parameters": "Repo Test Parametri", + "test_parameters_desc": "Ovi parametri koriste se samo za Repo Tester.", + "using_info": "Koristi: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "Koristi: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "Pružatelji", + "repository_default": "Repozitorij", + "providers_count": "{{count}} pružatelja", + "fetch_hint": "Dohvatite repo za popis pružatelja.", + "test_all": "Testiraj sve", + "status_running": "IZVODI SE", + "status_ok": "U REDU ({{count}})", + "status_ok_empty": "U REDU (0)", + "status_failed": "NIJE USPJELO", + "status_idle": "MIRUJE", + "tried_url": "PokuÅ¡ano: {{url}}", + "provider_logs": "Logovi pružatelja", + "no_logs_captured": "Nema uhvaćenih logova." + } + } +} \ No newline at end of file diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index d1895f0b..c48b18b3 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -630,6 +630,7 @@ "spanish": "Spagnolo", "french": "Francese", "italian": "Italiano", + "croatian": "Croato", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 277ba9ef..600d34c9 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -644,6 +644,7 @@ "spanish": "Espanhol", "french": "Francês", "italian": "Italiano", + "croatian": "Croata", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 8345eed9..62bfce36 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -644,6 +644,7 @@ "spanish": "Espanhol", "french": "Francês", "italian": "Italiano", + "croatian": "Croata", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 43c7af6a..208f77f5 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -7,6 +7,8 @@ import fr from './locales/fr.json'; import it from './locales/it.json'; import de from './locales/de.json'; +import hr from './locales/hr.json'; + export const resources = { en: { translation: en }, 'pt-BR': { translation: ptBR }, @@ -16,4 +18,5 @@ export const resources = { fr: { translation: fr }, it: { translation: it }, de: { translation: de }, + hr: { translation: hr }, }; From 83bb91e1d15addc664b9bd158dcfb327b449cd0c Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 10:25:27 +0530 Subject: [PATCH 39/58] added support for multiple addon installation of the same addon.id --- ios/Podfile.lock | 24 +++--- src/components/player/AndroidVideoPlayer.tsx | 2 - .../player/modals/LoadingOverlay.tsx | 25 +++--- src/screens/AddonsScreen.tsx | 10 +-- src/screens/CatalogSettingsScreen.tsx | 21 +++-- src/screens/streams/useStreamsScreen.ts | 61 ++++++++++---- src/services/stremioService.ts | 79 +++++++++++++------ 7 files changed, 143 insertions(+), 79 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 6e35d658..84bbf230 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2439,7 +2439,7 @@ PODS: - SDWebImageSVGCoder (~> 1.7.0) - SDWebImageWebPCoder (~> 0.14) - Yoga - - RNGestureHandler (2.29.1): + - RNGestureHandler (2.30.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2461,7 +2461,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - RNReanimated (4.2.0): + - RNReanimated (4.2.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2483,10 +2483,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/reanimated (= 4.2.0) + - RNReanimated/reanimated (= 4.2.1) - RNWorklets - Yoga - - RNReanimated/reanimated (4.2.0): + - RNReanimated/reanimated (4.2.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2508,10 +2508,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/reanimated/apple (= 4.2.0) + - RNReanimated/reanimated/apple (= 4.2.1) - RNWorklets - Yoga - - RNReanimated/reanimated/apple (4.2.0): + - RNReanimated/reanimated/apple (4.2.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2535,7 +2535,7 @@ PODS: - ReactNativeDependencies - RNWorklets - Yoga - - RNScreens (4.18.0): + - RNScreens (4.20.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2557,9 +2557,9 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNScreens/common (= 4.18.0) + - RNScreens/common (= 4.20.0) - Yoga - - RNScreens/common (4.18.0): + - RNScreens/common (4.20.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -3309,9 +3309,9 @@ SPEC CHECKSUMS: ReactNativeDependencies: ed6d1e64802b150399f04f1d5728ec16b437251e RNCPicker: c8a3584b74133464ee926224463fcc54dfdaebca RNFastImage: 2d36f4cfed9b2342f94f8591c8be69dd047ac67c - RNGestureHandler: 723f29dac55e25f109d263ed65cecc4b9c4bd46a - RNReanimated: e1c71e6e693a66b203ae98773347b625d3cc85ee - RNScreens: 61c18865ab074f4d995ac8d7cf5060522a649d05 + RNGestureHandler: e0d0bce5599f6120b7adf90c38d2805e2935795f + RNReanimated: 8a7182314bb7afc01041a529e409a9112c007a50 + RNScreens: a00979e0d17609f1c9b0f97881c34550fc4565bf RNSentry: 1d7b9fdae7a01ad8f9053335b5d44e75c39a955e RNSVG: cf9ae78f2edf2988242c71a6392d15ff7dd62522 RNVectorIcons: 4351544f100d4f12cac156a7c13399e60bab3e26 diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index b53e8682..c757b8d7 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -729,8 +729,6 @@ const AndroidVideoPlayer: React.FC = () => { return ( = ({ // Reset logoOpacity.value = 0; logoScale.value = 1; - + // Start animations after 1 second delay logoOpacity.value = withDelay( 1000, @@ -53,7 +53,7 @@ const LoadingOverlay: React.FC = ({ easing: Easing.out(Easing.cubic), }) ); - + logoScale.value = withDelay( 1000, withRepeat( @@ -82,24 +82,23 @@ const LoadingOverlay: React.FC = ({ if (!visible) return null; return ( - {backdrop && ( + StyleSheet.absoluteFill, + { + opacity: backdropImageOpacityAnim + } + ]}> = ({ locations={[0, 0.3, 0.7, 1]} style={StyleSheet.absoluteFill} /> - - - + {hasLogo && logo ? ( { }; const moveAddonUp = (addon: ExtendedManifest) => { - if (stremioService.moveAddonUp(addon.id)) { + if (stremioService.moveAddonUp(addon.installationId || addon.id)) { // Refresh the list to reflect the new order loadAddons(); } }; const moveAddonDown = (addon: ExtendedManifest) => { - if (stremioService.moveAddonDown(addon.id)) { + if (stremioService.moveAddonDown(addon.installationId || addon.id)) { // Refresh the list to reflect the new order loadAddons(); } @@ -690,8 +690,8 @@ const AddonsScreen = () => { { label: t('addons.uninstall_button'), onPress: async () => { - await stremioService.removeAddon(addon.id); - setAddons(prev => prev.filter(a => a.id !== addon.id)); + await stremioService.removeAddon(addon.installationId || addon.id); + setAddons(prev => prev.filter(a => (a.installationId || a.id) !== (addon.installationId || addon.id))); // Ensure we re-read from storage/order to avoid reappearing on next load await loadAddons(); }, @@ -1066,7 +1066,7 @@ const AddonsScreen = () => { ) : ( addons.map((addon, index) => ( {renderAddonItem({ item: addon, index })} diff --git a/src/screens/CatalogSettingsScreen.tsx b/src/screens/CatalogSettingsScreen.tsx index 320d7252..d3f084f3 100644 --- a/src/screens/CatalogSettingsScreen.tsx +++ b/src/screens/CatalogSettingsScreen.tsx @@ -308,9 +308,12 @@ const CatalogSettingsScreen = () => { addons.forEach(addon => { if (addon.catalogs && addon.catalogs.length > 0) { const uniqueCatalogs = new Map(); + // Use installationId if available, otherwise fallback to id + const uniqueAddonId = addon.installationId || addon.id; addon.catalogs.forEach(catalog => { - const settingKey = `${addon.id}:${catalog.type}:${catalog.id}`; + // Generate a truly unique key using installationId + const settingKey = `${uniqueAddonId}:${catalog.type}:${catalog.id}`; let displayName = catalog.name || catalog.id; const catalogType = catalog.type === 'movie' ? 'Movies' : catalog.type === 'series' ? 'TV Shows' : catalog.type.charAt(0).toUpperCase() + catalog.type.slice(1); @@ -335,7 +338,7 @@ const CatalogSettingsScreen = () => { } uniqueCatalogs.set(settingKey, { - addonId: addon.id, + addonId: uniqueAddonId, // Store unique ID here catalogId: catalog.id, type: catalog.type, name: displayName, @@ -351,11 +354,15 @@ const CatalogSettingsScreen = () => { // Group settings by addon name const grouped: GroupedCatalogs = {}; availableCatalogs.forEach(setting => { - const addon = addons.find(a => a.id === setting.addonId); + // Find addon by matching either installationId or id + const addon = addons.find(a => (a.installationId || a.id) === setting.addonId); if (!addon) return; - if (!grouped[setting.addonId]) { - grouped[setting.addonId] = { + // Use the unique addon ID (installationId) as the group key + const groupKey = setting.addonId; + + if (!grouped[groupKey]) { + grouped[groupKey] = { name: addon.name, catalogs: [], expanded: true, @@ -363,9 +370,9 @@ const CatalogSettingsScreen = () => { }; } - grouped[setting.addonId].catalogs.push(setting); + grouped[groupKey].catalogs.push(setting); if (setting.enabled) { - grouped[setting.addonId].enabledCount++; + grouped[groupKey].enabledCount++; } }); diff --git a/src/screens/streams/useStreamsScreen.ts b/src/screens/streams/useStreamsScreen.ts index 4a88f57b..ca9c043e 100644 --- a/src/screens/streams/useStreamsScreen.ts +++ b/src/screens/streams/useStreamsScreen.ts @@ -224,7 +224,10 @@ export const useStreamsScreen = () => { const getProviderPriority = (addonId: string): number => { const installedAddons = stremioService.getInstalledAddons(); - const addonIndex = installedAddons.findIndex(addon => addon.id === addonId); + // Check installationId first, then id for backward compatibility + const addonIndex = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === addonId) || addon.id === addonId + ); if (addonIndex !== -1) { return 50 - addonIndex; } @@ -759,7 +762,9 @@ export const useStreamsScreen = () => { const pluginProviders: string[] = []; Array.from(allProviders).forEach(provider => { - const isInstalledAddon = installedAddons.some(addon => addon.id === provider); + const isInstalledAddon = installedAddons.some(addon => + (addon.installationId && addon.installationId === provider) || addon.id === provider + ); if (isInstalledAddon) { addonProviders.push(provider); } else { @@ -771,12 +776,18 @@ export const useStreamsScreen = () => { addonProviders .sort((a, b) => { - const indexA = installedAddons.findIndex(addon => addon.id === a); - const indexB = installedAddons.findIndex(addon => addon.id === b); + const indexA = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === a) || addon.id === a + ); + const indexB = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === b) || addon.id === b + ); return indexA - indexB; }) .forEach(provider => { - const installedAddon = installedAddons.find(addon => addon.id === provider); + const installedAddon = installedAddons.find(addon => + (addon.installationId && addon.installationId === provider) || addon.id === provider + ); filterChips.push({ id: provider, name: installedAddon?.name || provider }); }); @@ -806,8 +817,12 @@ export const useStreamsScreen = () => { { id: 'all', name: 'All Providers' }, ...Array.from(allProviders) .sort((a, b) => { - const indexA = installedAddons.findIndex(addon => addon.id === a); - const indexB = installedAddons.findIndex(addon => addon.id === b); + const indexA = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === a) || addon.id === a + ); + const indexB = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === b) || addon.id === b + ); if (indexA !== -1 && indexB !== -1) return indexA - indexB; if (indexA !== -1) return -1; if (indexB !== -1) return 1; @@ -815,7 +830,9 @@ export const useStreamsScreen = () => { }) .map(provider => { const addonInfo = streams[provider]; - const installedAddon = installedAddons.find(addon => addon.id === provider); + const installedAddon = installedAddons.find(addon => + (addon.installationId && addon.installationId === provider) || addon.id === provider + ); let displayName = provider; if (installedAddon) displayName = installedAddon.name; else if (addonInfo?.addonName) displayName = addonInfo.addonName; @@ -847,7 +864,9 @@ export const useStreamsScreen = () => { // Legacy: handle old grouped-plugins filter (fallback) if (settings.streamDisplayMode === 'grouped' && selectedProvider === 'grouped-plugins') { - const isInstalledAddon = installedAddons.some(addon => addon.id === addonId); + const isInstalledAddon = installedAddons.some(addon => + (addon.installationId && addon.installationId === addonId) || addon.id === addonId + ); return !isInstalledAddon; } @@ -856,8 +875,12 @@ export const useStreamsScreen = () => { // Sort entries: installed addons first (in their installation order), then plugins const sortedEntries = filteredEntries.sort(([addonIdA], [addonIdB]) => { - const isAddonA = installedAddons.some(addon => addon.id === addonIdA); - const isAddonB = installedAddons.some(addon => addon.id === addonIdB); + const isAddonA = installedAddons.some(addon => + (addon.installationId && addon.installationId === addonIdA) || addon.id === addonIdA + ); + const isAddonB = installedAddons.some(addon => + (addon.installationId && addon.installationId === addonIdB) || addon.id === addonIdB + ); // Addons always come before plugins if (isAddonA && !isAddonB) return -1; @@ -865,8 +888,12 @@ export const useStreamsScreen = () => { // Both are addons - sort by installation order if (isAddonA && isAddonB) { - const indexA = installedAddons.findIndex(addon => addon.id === addonIdA); - const indexB = installedAddons.findIndex(addon => addon.id === addonIdB); + const indexA = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === addonIdA) || addon.id === addonIdA + ); + const indexB = installedAddons.findIndex(addon => + (addon.installationId && addon.installationId === addonIdB) || addon.id === addonIdB + ); return indexA - indexB; } @@ -884,7 +911,9 @@ export const useStreamsScreen = () => { const pluginStreams: Stream[] = []; sortedEntries.forEach(([addonId, { streams: providerStreams }]) => { - const isInstalledAddon = installedAddons.some(addon => addon.id === addonId); + const isInstalledAddon = installedAddons.some(addon => + (addon.installationId && addon.installationId === addonId) || addon.id === addonId + ); if (isInstalledAddon) { addonStreams.push(...providerStreams); @@ -931,7 +960,9 @@ export const useStreamsScreen = () => { return sortedEntries .map(([addonId, { addonName, streams: providerStreams }]) => { - const isInstalledAddon = installedAddons.some(addon => addon.id === addonId); + const isInstalledAddon = installedAddons.some(addon => + (addon.installationId && addon.installationId === addonId) || addon.id === addonId + ); let filteredStreams = providerStreams; if (!isInstalledAddon) { diff --git a/src/services/stremioService.ts b/src/services/stremioService.ts index 4a9a562e..a8a4d802 100644 --- a/src/services/stremioService.ts +++ b/src/services/stremioService.ts @@ -208,6 +208,7 @@ export interface Manifest { background?: string; // Background image URL logo?: string; // Logo URL contactEmail?: string; // Contact email + installationId?: string; // Unique ID for this specific installation } // Config object for addon configuration per protocol @@ -422,7 +423,11 @@ class StremioService { this.installedAddons = new Map(); for (const addon of parsed) { if (addon && addon.id) { - this.installedAddons.set(addon.id, addon); + // Migration: Ensure installationId exists + if (!addon.installationId) { + addon.installationId = addon.id; + } + this.installedAddons.set(addon.installationId, addon); } } } @@ -431,14 +436,21 @@ class StremioService { const cinemetaId = 'com.linvo.cinemeta'; const hasUserRemovedCinemeta = await this.hasUserRemovedAddon(cinemetaId); - if (!this.installedAddons.has(cinemetaId) && !hasUserRemovedCinemeta) { + // Check if any installed addon has this ID (using valid values iteration) + const isCinemetaInstalled = Array.from(this.installedAddons.values()).some(a => a.id === cinemetaId); + + if (!isCinemetaInstalled && !hasUserRemovedCinemeta) { try { const cinemetaManifest = await this.getManifest('https://v3-cinemeta.strem.io/manifest.json'); + // For default addons, we can use the ID as installationId to keep it clean (or generate one) + // Using ID ensures only one instance of default addon is auto-installed + cinemetaManifest.installationId = cinemetaId; this.installedAddons.set(cinemetaId, cinemetaManifest); } catch (error) { // Fallback to minimal manifest if fetch fails const fallbackManifest: Manifest = { id: cinemetaId, + installationId: cinemetaId, name: 'Cinemeta', version: '3.0.13', description: 'Provides metadata for movies and series from TheTVDB, TheMovieDB, etc.', @@ -483,13 +495,17 @@ class StremioService { const opensubsId = 'org.stremio.opensubtitlesv3'; const hasUserRemovedOpenSubtitles = await this.hasUserRemovedAddon(opensubsId); - if (!this.installedAddons.has(opensubsId) && !hasUserRemovedOpenSubtitles) { + const isOpenSubsInstalled = Array.from(this.installedAddons.values()).some(a => a.id === opensubsId); + + if (!isOpenSubsInstalled && !hasUserRemovedOpenSubtitles) { try { const opensubsManifest = await this.getManifest('https://opensubtitles-v3.strem.io/manifest.json'); + opensubsManifest.installationId = opensubsId; this.installedAddons.set(opensubsId, opensubsManifest); } catch (error) { const fallbackManifest: Manifest = { id: opensubsId, + installationId: opensubsId, name: 'OpenSubtitles v3', version: '1.0.0', description: 'OpenSubtitles v3 Addon for Stremio', @@ -522,8 +538,9 @@ class StremioService { this.addonOrder = this.addonOrder.filter(id => this.installedAddons.has(id)); } - // Add Cinemeta to order only if user hasn't removed it + // Add Cinemeta to order only if user hasn't removed it and it's installed const hasUserRemovedCinemetaOrder = await this.hasUserRemovedAddon(cinemetaId); + // We check if the installationId (which is cinemetaId for default) is in the map if (!this.addonOrder.includes(cinemetaId) && this.installedAddons.has(cinemetaId) && !hasUserRemovedCinemetaOrder) { this.addonOrder.push(cinemetaId); } @@ -651,43 +668,54 @@ class StremioService { async installAddon(url: string): Promise { const manifest = await this.getManifest(url); if (manifest && manifest.id) { - this.installedAddons.set(manifest.id, manifest); + // Generate a unique installation ID + const installationId = `${manifest.id}-${Date.now()}-${Math.floor(Math.random() * 10000)}`; + manifest.installationId = installationId; + + this.installedAddons.set(installationId, manifest); // If addon was previously removed by user, unmark it on reinstall and clean up await this.unmarkAddonAsRemovedByUser(manifest.id); - await this.cleanupRemovedAddonFromStorage(manifest.id); - // Add to order if not already present (new addons go to the end) - if (!this.addonOrder.includes(manifest.id)) { - this.addonOrder.push(manifest.id); - } + // Note: cleanupRemovedAddonFromStorage takes an installationId (from addonOrder context), + // but here we are dealing with a new installationId, strictly speaking. + // However, we might want to cleanup any stray legacy entries for this addon ID if we wanted strict uniqueness, + // but we clearly support duplicates now, so we don't need to clean up other instances. + // We ONLY keep the unmarkAddonAsRemovedByUser to allow re-auto-install of defaults if user manually installs them. + + // Add to order (new addons go to the end) + this.addonOrder.push(installationId); await this.saveInstalledAddons(); await this.saveAddonOrder(); // Emit an event that an addon was added - addonEmitter.emit(ADDON_EVENTS.ADDON_ADDED, manifest.id); + addonEmitter.emit(ADDON_EVENTS.ADDON_ADDED, installationId); } else { throw new Error('Invalid addon manifest'); } } - async removeAddon(id: string): Promise { - // Allow removal of any addon, including pre-installed ones like Cinemeta - if (this.installedAddons.has(id)) { - this.installedAddons.delete(id); + async removeAddon(installationId: string): Promise { + // Allow removal of any addon + if (this.installedAddons.has(installationId)) { + const addon = this.installedAddons.get(installationId); + this.installedAddons.delete(installationId); // Remove from order - this.addonOrder = this.addonOrder.filter(addonId => addonId !== id); + this.addonOrder = this.addonOrder.filter(id => id !== installationId); - // Track user explicit removal for any addon (tombstone) - await this.markAddonAsRemovedByUser(id); - // Proactively clean up any persisted orders/legacy keys for this addon - await this.cleanupRemovedAddonFromStorage(id); + // Track user explicit removal for the addon ID (tombstone to prevent auto-reinstall of defaults) + if (addon && addon.id) { + await this.markAddonAsRemovedByUser(addon.id); + } + + // Clean up this specific installation from storage keys + await this.cleanupRemovedAddonFromStorage(installationId); // Persist removals before app possibly exits await this.saveInstalledAddons(); await this.saveAddonOrder(); // Emit an event that an addon was removed - addonEmitter.emit(ADDON_EVENTS.ADDON_REMOVED, id); + addonEmitter.emit(ADDON_EVENTS.ADDON_REMOVED, installationId); } } @@ -1402,7 +1430,7 @@ class StremioService { try { if (!addon.url) { logger.warn(`âš ï¸ [getStreams] Addon ${addon.id} has no URL`); - if (callback) callback(null, addon.id, addon.name, new Error('Addon has no URL')); + if (callback) callback(null, addon.installationId || addon.id, addon.name, new Error('Addon has no URL')); return; } @@ -1427,12 +1455,13 @@ class StremioService { if (callback) { // Call callback with processed streams (can be empty array) - callback(processedStreams, addon.id, addon.name, null); + // Use installationId if available to distinct between multiple installations of same addon + callback(processedStreams, addon.installationId || addon.id, addon.name, null); } } catch (error) { if (callback) { // Call callback with error - callback(null, addon.id, addon.name, error as Error); + callback(null, addon.installationId || addon.id, addon.name, error as Error); } } })(); // Immediately invoke the async function @@ -1613,7 +1642,7 @@ class StremioService { name: name, title: displayTitle, addonName: addon.name, - addonId: addon.id, + addonId: addon.installationId || addon.id, // Include description as-is to preserve full details description: stream.description, From 671ed871e34bf0571958afa2d48c1ea6f13ee87b Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 11:59:59 +0530 Subject: [PATCH 40/58] updated downloads behaviour --- .gitignore | 3 +- app.json | 6 + ios/Podfile.lock | 55 ++- package-lock.json | 10 + package.json | 1 + src/contexts/DownloadsContext.tsx | 755 +++++++++++++++--------------- src/i18n/locales/de.json | 2 +- src/i18n/locales/en.json | 2 +- src/i18n/locales/es.json | 2 +- src/i18n/locales/hr.json | 2 +- src/i18n/locales/it.json | 2 +- src/i18n/locales/pt-BR.json | 2 +- src/i18n/locales/pt-PT.json | 2 +- src/services/pluginService.ts | 8 +- 14 files changed, 441 insertions(+), 411 deletions(-) diff --git a/.gitignore b/.gitignore index 5f5b4204..09d29594 100644 --- a/.gitignore +++ b/.gitignore @@ -103,4 +103,5 @@ mpvKt/ # Torrent libraries LibTorrent/ iTorrent/ -simkl-docss \ No newline at end of file +simkl-docss +downloader.md diff --git a/app.json b/app.json index 88699efc..edcd738a 100644 --- a/app.json +++ b/app.json @@ -75,6 +75,12 @@ "organization": "tapframe" } ], + [ + "@kesha-antonov/react-native-background-downloader", + { + "skipMmkvDependency": true + } + ], "expo-localization", [ "expo-updates", diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 84bbf230..9372bfb7 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -404,6 +404,8 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga + - MMKV (2.2.4): + - MMKVCore (~> 2.2.4) - MMKVCore (2.2.4) - NitroMmkv (4.1.0): - hermes-engine @@ -1734,6 +1736,29 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - ReactNativeDependencies + - react-native-background-downloader (4.4.5): + - hermes-engine + - MMKV + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga - react-native-blur (4.4.1): - hermes-engine - RCTRequired @@ -2439,7 +2464,7 @@ PODS: - SDWebImageSVGCoder (~> 1.7.0) - SDWebImageWebPCoder (~> 0.14) - Yoga - - RNGestureHandler (2.30.0): + - RNGestureHandler (2.29.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2461,7 +2486,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - RNReanimated (4.2.1): + - RNReanimated (4.2.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2483,10 +2508,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/reanimated (= 4.2.1) + - RNReanimated/reanimated (= 4.2.0) - RNWorklets - Yoga - - RNReanimated/reanimated (4.2.1): + - RNReanimated/reanimated (4.2.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2508,10 +2533,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/reanimated/apple (= 4.2.1) + - RNReanimated/reanimated/apple (= 4.2.0) - RNWorklets - Yoga - - RNReanimated/reanimated/apple (4.2.1): + - RNReanimated/reanimated/apple (4.2.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2535,7 +2560,7 @@ PODS: - ReactNativeDependencies - RNWorklets - Yoga - - RNScreens (4.20.0): + - RNScreens (4.18.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2557,9 +2582,9 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNScreens/common (= 4.20.0) + - RNScreens/common (= 4.18.0) - Yoga - - RNScreens/common (4.20.0): + - RNScreens/common (4.18.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2839,6 +2864,7 @@ DEPENDENCIES: - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - "react-native-background-downloader (from `../node_modules/@kesha-antonov/react-native-background-downloader`)" - "react-native-blur (from `../node_modules/@react-native-community/blur`)" - react-native-bottom-tabs (from `../node_modules/react-native-bottom-tabs`) - "react-native-device-brightness (from `../node_modules/@adrianso/react-native-device-brightness`)" @@ -2898,6 +2924,7 @@ SPEC REPOS: - libdav1d - libwebp - lottie-ios + - MMKV - MMKVCore - PromisesObjC - ReachabilitySwift @@ -3068,6 +3095,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-microtasksnativemodule: :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + react-native-background-downloader: + :path: "../node_modules/@kesha-antonov/react-native-background-downloader" react-native-blur: :path: "../node_modules/@react-native-community/blur" react-native-bottom-tabs: @@ -3228,6 +3257,7 @@ SPEC CHECKSUMS: libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 lottie-ios: a881093fab623c467d3bce374367755c272bdd59 lottie-react-native: cbe3d931a7c24f7891a8e8032c2bb9b2373c4b9c + MMKV: 1a8e7dbce7f9cad02c52e1b1091d07bd843aefaf MMKVCore: f2dd4c9befea04277a55e84e7812f930537993df NitroMmkv: 4af10c70043b4c3cded3f16547627c7d9d8e3b8b NitroModules: a71a5ab2911caf79e45170e6e12475b5260a12d0 @@ -3266,6 +3296,7 @@ SPEC CHECKSUMS: React-logger: 7b234de35acb469ce76d6bbb0457f664d6f32f62 React-Mapbuffer: fbe1da882a187e5898bdf125e1cc6e603d27ecae React-microtasksnativemodule: 76905804171d8ccbe69329fc84c57eb7934add7f + react-native-background-downloader: 384c954ba4510de725697f7df4fd75f7c25579a2 react-native-blur: 1b00ef07fe0efdc0c40b37139a5268ccad73c72d react-native-bottom-tabs: bcb70e4fae95fc9da0da875f7414acda26dfc551 react-native-device-brightness: 1a997350d060c3df9f303b1df84a4f7c5cbeb924 @@ -3309,9 +3340,9 @@ SPEC CHECKSUMS: ReactNativeDependencies: ed6d1e64802b150399f04f1d5728ec16b437251e RNCPicker: c8a3584b74133464ee926224463fcc54dfdaebca RNFastImage: 2d36f4cfed9b2342f94f8591c8be69dd047ac67c - RNGestureHandler: e0d0bce5599f6120b7adf90c38d2805e2935795f - RNReanimated: 8a7182314bb7afc01041a529e409a9112c007a50 - RNScreens: a00979e0d17609f1c9b0f97881c34550fc4565bf + RNGestureHandler: 723f29dac55e25f109d263ed65cecc4b9c4bd46a + RNReanimated: e1c71e6e693a66b203ae98773347b625d3cc85ee + RNScreens: 61c18865ab074f4d995ac8d7cf5060522a649d05 RNSentry: 1d7b9fdae7a01ad8f9053335b5d44e75c39a955e RNSVG: cf9ae78f2edf2988242c71a6392d15ff7dd62522 RNVectorIcons: 4351544f100d4f12cac156a7c13399e60bab3e26 diff --git a/package-lock.json b/package-lock.json index 8b75e02c..ab0b6e4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@expo/metro-runtime": "~6.1.2", "@expo/vector-icons": "^15.0.2", "@gorhom/bottom-sheet": "^5.2.6", + "@kesha-antonov/react-native-background-downloader": "^4.4.5", "@legendapp/list": "^2.0.13", "@lottiefiles/dotlottie-react": "^0.17.7", "@react-native-community/blur": "^4.4.1", @@ -2732,6 +2733,15 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@kesha-antonov/react-native-background-downloader": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@kesha-antonov/react-native-background-downloader/-/react-native-background-downloader-4.4.5.tgz", + "integrity": "sha512-OrQdhDhroRFiUKfoX6AoPV7qgA/UzAJljI/980NvPK4okux36qGKzN2BX/sRL6emv3MNQSKyKifjxYq/TpCq0Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native": ">=0.57.0" + } + }, "node_modules/@legendapp/list": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/@legendapp/list/-/list-2.0.18.tgz", diff --git a/package.json b/package.json index 92781d16..b4646066 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@expo/metro-runtime": "~6.1.2", "@expo/vector-icons": "^15.0.2", "@gorhom/bottom-sheet": "^5.2.6", + "@kesha-antonov/react-native-background-downloader": "^4.4.5", "@legendapp/list": "^2.0.13", "@lottiefiles/dotlottie-react": "^0.17.7", "@react-native-community/blur": "^4.4.1", diff --git a/src/contexts/DownloadsContext.tsx b/src/contexts/DownloadsContext.tsx index 76fb59da..527da64b 100644 --- a/src/contexts/DownloadsContext.tsx +++ b/src/contexts/DownloadsContext.tsx @@ -1,6 +1,12 @@ import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'; import { AppState } from 'react-native'; import * as FileSystem from 'expo-file-system/legacy'; +import { + completeHandler, + createDownloadTask, + directories, + getExistingDownloadTasks, +} from '@kesha-antonov/react-native-background-downloader'; import { mmkvStorage } from '../services/mmkvStorage'; import { notificationService } from '../services/notificationService'; @@ -71,24 +77,80 @@ function sanitizeFilename(name: string): string { return name.replace(/[^a-z0-9\-_.()\s]/gi, '_').slice(0, 120).trim(); } -async function getExtensionFromHeaders(url: string, headers?: Record): Promise { +function parseContentDispositionFilename(contentDisposition?: string | null): string | null { + if (!contentDisposition) return null; + // RFC 5987 filename*= + const filenameStar = contentDisposition.match(/filename\*=([^;]+)/i); + if (filenameStar && filenameStar[1]) { + const value = filenameStar[1].trim(); + const parts = value.split("''"); + const encoded = parts.length > 1 ? parts.slice(1).join("''") : parts[0]; + try { + return decodeURIComponent(encoded.replace(/(^"|"$)/g, '')); + } catch { + return encoded.replace(/(^"|"$)/g, ''); + } + } + + const filename = contentDisposition.match(/filename=([^;]+)/i); + if (filename && filename[1]) { + return filename[1].trim().replace(/(^"|"$)/g, ''); + } + return null; +} + +function getFilenameFromUrl(url: string): string | null { + try { + const parsed = new URL(url); + const last = parsed.pathname.split('/').filter(Boolean).pop(); + if (!last) return null; + return decodeURIComponent(last.split('?')[0]); + } catch { + return null; + } +} + +function isHttpUrl(url: string): boolean { + try { + const parsed = new URL(url); + return parsed.protocol === 'http:' || parsed.protocol === 'https:'; + } catch { + return false; + } +} + +async function getContentLength(url: string, headers?: Record): Promise { + if (!isHttpUrl(url)) return null; try { const response = await fetch(url, { method: 'HEAD', headers }); - const contentType = response.headers.get('content-type'); + const raw = response.headers.get('content-length'); + if (!raw) return null; + const parsed = Number(raw); + return Number.isFinite(parsed) && parsed > 0 ? parsed : null; + } catch { + return null; + } +} - if (contentType) { - // Map common content types to extensions - if (contentType.includes('video/mp4')) return 'mp4'; - if (contentType.includes('video/x-matroska')) return 'mkv'; - if (contentType.includes('video/avi')) return 'avi'; - if (contentType.includes('video/quicktime')) return 'mov'; - if (contentType.includes('video/webm')) return 'webm'; - if (contentType.includes('video/x-flv')) return 'flv'; - if (contentType.includes('video/x-ms-wmv')) return 'wmv'; - if (contentType.includes('video/x-m4v')) return 'm4v'; - } +async function getDownloadFilename(url: string, headers?: Record): Promise { + if (!isHttpUrl(url)) return null; + try { + const response = await fetch(url, { method: 'HEAD', headers }); + // Prefer explicit server-provided filename; do not guess extensions. + const filenameFromHeaders = + parseContentDispositionFilename(response.headers.get('content-disposition')) || + response.headers.get('x-filename') || + response.headers.get('x-download-filename') || + response.headers.get('x-suggested-filename'); + + const filename = filenameFromHeaders ? String(filenameFromHeaders) : null; + if (filename) return sanitizeFilename(filename); + + // If server doesn't provide a filename header, fall back to URL path segment. + const urlName = getFilenameFromUrl(url); + if (urlName) return sanitizeFilename(urlName); } catch (error) { - console.warn('[DownloadsContext] Could not get content-type from HEAD request', error); + console.warn('[DownloadsContext] Could not resolve filename from HEAD request', error); } return null; @@ -130,14 +192,25 @@ function hashString(input: string): string { return (hash >>> 0).toString(16); } +function stripFileScheme(pathOrUri: string): string { + return pathOrUri.startsWith('file://') ? pathOrUri.replace('file://', '') : pathOrUri; +} + +function toFileUri(pathOrUri: string): string { + if (!pathOrUri) return pathOrUri; + if (pathOrUri.startsWith('file://')) return pathOrUri; + if (pathOrUri.startsWith('/')) return `file://${pathOrUri}`; + return pathOrUri; +} + export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const [downloads, setDownloads] = useState([]); const downloadsRef = useRef(downloads); useEffect(() => { downloadsRef.current = downloads; }, [downloads]); - // Keep active resumables in memory (not persisted) - const resumablesRef = useRef>(new Map()); + // Keep active native background tasks in memory (not persisted) + const tasksRef = useRef>(new Map()); const lastBytesRef = useRef>(new Map()); // Persist and restore @@ -147,9 +220,9 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi const raw = await mmkvStorage.getItem(STORAGE_KEY); if (raw) { const list = JSON.parse(raw) as Array>; - // Mark any in-progress as paused on restore (cannot resume across sessions reliably) + // With native background downloader we can re-attach after restart. const restored: DownloadItem[] = list.map((d) => { - const status = (d.status as DownloadStatus) || 'paused'; + const status = (d.status as DownloadStatus) || 'queued'; const safe: DownloadItem = { id: String(d.id), contentId: String(d.contentId ?? d.id), @@ -164,7 +237,8 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi downloadedBytes: typeof d.downloadedBytes === 'number' ? d.downloadedBytes : 0, totalBytes: typeof d.totalBytes === 'number' ? d.totalBytes : 0, progress: typeof d.progress === 'number' ? d.progress : 0, - status: status === 'downloading' || status === 'queued' ? 'paused' : status, + // If the app was killed while downloading, we'll re-attach; keep it as queued until we see the task. + status: status === 'downloading' ? 'queued' : status, speedBps: undefined, etaSeconds: undefined, posterUrl: (d.posterUrl as any) ?? null, @@ -191,12 +265,6 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // Track app state to know foreground/background const appStateRef = useRef('active'); - useEffect(() => { - const sub = AppState.addEventListener('change', (s) => { - appStateRef.current = s; - }); - return () => sub.remove(); - }, []); // Cache last notified progress to reduce spam const lastNotifyRef = useRef>(new Map()); @@ -227,188 +295,238 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi setDownloads(prev => prev.map(d => (d.id === id ? updater(d) : d))); }, []); - const resumeDownload = useCallback(async (id: string) => { - console.log(`[DownloadsContext] Resuming download: ${id}`); - const item = downloadsRef.current.find(d => d.id === id); // Use ref - if (!item) { - console.log(`[DownloadsContext] No item found for download: ${id}`); - return; - } + const attachDownloadTask = useCallback((task: any) => { + const taskId = String(task?.id); + if (!taskId) return; - // Update status to downloading immediately - updateDownload(id, (d) => ({ ...d, status: 'downloading', updatedAt: Date.now() })); - - // Always try to use existing resumable first - this is crucial for proper resume - let resumable = resumablesRef.current.get(id); - - if (resumable) { - console.log(`[DownloadsContext] Using existing resumable for download: ${id}`); - // Existing resumable should already have the correct progress callback and file URI - // No need to recreate it - } else { - console.log(`[DownloadsContext] Creating new resumable for download: ${id}`); - - // Use the exact same file URI that was used initially - const fileUri = item.fileUri; - if (!fileUri) { - console.error(`[DownloadsContext] No fileUri found for download: ${id}`); - updateDownload(id, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); - return; - } - - const progressCallback = (data: any) => { - const { totalBytesWritten, totalBytesExpectedToWrite } = data; + task + .begin(({ expectedBytes }: any) => { + updateDownload(taskId, (d) => ({ + ...d, + totalBytes: typeof expectedBytes === 'number' && expectedBytes > 0 ? expectedBytes : d.totalBytes, + status: 'downloading', + updatedAt: Date.now(), + })); + }) + .progress(({ bytesDownloaded, bytesTotal }: any) => { const now = Date.now(); - const last = lastBytesRef.current.get(id); + const last = lastBytesRef.current.get(taskId); let speedBps = 0; - if (last) { - const deltaBytes = totalBytesWritten - last.bytes; + if (last && typeof bytesDownloaded === 'number') { + const deltaBytes = bytesDownloaded - last.bytes; const deltaTime = Math.max(1, now - last.time) / 1000; speedBps = deltaBytes / deltaTime; } - lastBytesRef.current.set(id, { bytes: totalBytesWritten, time: now }); + if (typeof bytesDownloaded === 'number') { + lastBytesRef.current.set(taskId, { bytes: bytesDownloaded, time: now }); + } - updateDownload(id, (d) => ({ + updateDownload(taskId, (d) => ({ ...d, - downloadedBytes: totalBytesWritten, - totalBytes: totalBytesExpectedToWrite || d.totalBytes, - progress: totalBytesExpectedToWrite ? Math.floor((totalBytesWritten / totalBytesExpectedToWrite) * 100) : d.progress, + downloadedBytes: typeof bytesDownloaded === 'number' ? bytesDownloaded : d.downloadedBytes, + totalBytes: typeof bytesTotal === 'number' && bytesTotal > 0 ? bytesTotal : d.totalBytes, + progress: + typeof bytesDownloaded === 'number' && typeof bytesTotal === 'number' && bytesTotal > 0 + ? Math.floor((bytesDownloaded / bytesTotal) * 100) + : d.progress, speedBps, status: 'downloading', updatedAt: now, })); - // Fire background progress notification (throttled) - const current = downloadsRef.current.find(x => x.id === id); - if (current) { - maybeNotifyProgress({ ...current, downloadedBytes: totalBytesWritten, totalBytes: totalBytesExpectedToWrite || current.totalBytes, progress: totalBytesExpectedToWrite ? Math.floor((totalBytesWritten / totalBytesExpectedToWrite) * 100) : current.progress }); + const current = downloadsRef.current.find(x => x.id === taskId); + if (current && typeof bytesDownloaded === 'number') { + const totalBytes = typeof bytesTotal === 'number' && bytesTotal > 0 ? bytesTotal : current.totalBytes; + const progress = totalBytes > 0 ? Math.floor((bytesDownloaded / totalBytes) * 100) : current.progress; + maybeNotifyProgress({ ...current, downloadedBytes: bytesDownloaded, totalBytes, progress }); } - }; + }) + .done(({ location, bytesDownloaded, bytesTotal }: any) => { + const finalPath = location ? String(location) : ''; + const finalUri = finalPath ? toFileUri(finalPath) : undefined; - // CRITICAL FIX: Create resumable with resumeData (5th parameter) for proper resume - resumable = FileSystem.createDownloadResumable( - item.sourceUrl, - fileUri, - { headers: item.headers || {} }, - progressCallback, - item.resumeData // This is the critical parameter that was missing! + updateDownload(taskId, (d) => ({ + ...d, + status: 'completed', + downloadedBytes: typeof bytesDownloaded === 'number' ? bytesDownloaded : d.downloadedBytes, + totalBytes: typeof bytesTotal === 'number' && bytesTotal > 0 ? bytesTotal : d.totalBytes, + progress: 100, + updatedAt: Date.now(), + fileUri: finalUri || d.fileUri, + resumeData: undefined, + })); + + const doneItem = downloadsRef.current.find(x => x.id === taskId); + if (doneItem) notifyCompleted({ ...doneItem, status: 'completed', progress: 100, fileUri: finalUri || doneItem.fileUri } as DownloadItem); + + try { + completeHandler(taskId); + } catch { } + + tasksRef.current.delete(taskId); + lastBytesRef.current.delete(taskId); + }) + .error(({ error }: any) => { + updateDownload(taskId, (d) => ({ + ...d, + status: 'error', + updatedAt: Date.now(), + })); + + console.log(`[DownloadsContext] Background download error: ${taskId}`, error); + }); + }, [maybeNotifyProgress, notifyCompleted, updateDownload]); + + useEffect(() => { + (async () => { + try { + const tasks = await getExistingDownloadTasks(); + for (const task of tasks) { + const taskId = String((task as any)?.id); + if (!taskId) continue; + tasksRef.current.set(taskId, task); + attachDownloadTask(task); + + const existing = downloadsRef.current.find(d => d.id === taskId); + if (!existing) { + const meta = ((task as any)?.metadata || {}) as any; + const createdAt = Date.now(); + const fallback: DownloadItem = { + id: taskId, + contentId: String(meta.contentId ?? taskId), + type: (meta.type as 'movie' | 'series') ?? 'movie', + title: String(meta.title ?? 'Content'), + providerName: meta.providerName, + season: typeof meta.season === 'number' ? meta.season : undefined, + episode: typeof meta.episode === 'number' ? meta.episode : undefined, + episodeTitle: meta.episodeTitle ? String(meta.episodeTitle) : undefined, + quality: meta.quality ? String(meta.quality) : undefined, + size: undefined, + downloadedBytes: 0, + totalBytes: 0, + progress: 0, + status: 'queued', + speedBps: 0, + etaSeconds: undefined, + posterUrl: meta.posterUrl ?? null, + sourceUrl: String(meta.sourceUrl ?? ''), + headers: meta.headers, + fileUri: meta.fileUri, + createdAt, + updatedAt: createdAt, + imdbId: meta.imdbId, + tmdbId: meta.tmdbId, + resumeData: undefined, + }; + + setDownloads(prev => [fallback, ...prev]); + } + } + } catch (e) { + console.log('[DownloadsContext] Failed to re-attach background downloads', e); + } + })(); + }, [attachDownloadTask]); + + const refreshInProgressRef = useRef(false); + const refreshAllDownloadsFromDisk = useCallback(async () => { + if (refreshInProgressRef.current) return; + refreshInProgressRef.current = true; + try { + const list = downloadsRef.current; + await Promise.all( + list.map(async (d) => { + if (!d.fileUri) return; + if (d.status === 'completed' || d.status === 'queued') return; + + try { + const info = await FileSystem.getInfoAsync(d.fileUri); + if (!info.exists || typeof info.size !== 'number') return; + + let totalBytes = d.totalBytes; + if (!totalBytes || totalBytes <= 0) { + const len = await getContentLength(d.sourceUrl, d.headers); + if (len) totalBytes = len; + } + + const downloadedBytes = Math.max(d.downloadedBytes, info.size); + const progress = totalBytes && totalBytes > 0 ? Math.floor((downloadedBytes / totalBytes) * 100) : d.progress; + + const looksComplete = totalBytes && totalBytes > 0 ? downloadedBytes >= totalBytes : false; + + updateDownload(d.id, (prev) => ({ + ...prev, + downloadedBytes, + totalBytes: totalBytes || prev.totalBytes, + progress: looksComplete ? 100 : Math.min(99, Math.max(prev.progress, progress)), + status: looksComplete ? 'completed' : prev.status, + resumeData: looksComplete ? undefined : prev.resumeData, + updatedAt: Date.now(), + })); + + if (looksComplete) { + const done = downloadsRef.current.find(x => x.id === d.id); + if (done) notifyCompleted({ ...done, status: 'completed', progress: 100, fileUri: d.fileUri } as DownloadItem); + tasksRef.current.delete(d.id); + lastBytesRef.current.delete(d.id); + } + } catch { + // Ignore per-item refresh failures + } + }) ); - resumablesRef.current.set(id, resumable); - lastBytesRef.current.set(id, { bytes: item.downloadedBytes, time: Date.now() }); + } finally { + refreshInProgressRef.current = false; + } + }, [updateDownload, notifyCompleted]); + + useEffect(() => { + const sub = AppState.addEventListener('change', (s) => { + appStateRef.current = s; + if (s === 'active') { + refreshAllDownloadsFromDisk(); + } + }); + return () => sub.remove(); + }, [refreshAllDownloadsFromDisk]); + + const resumeDownload = useCallback(async (id: string) => { + const item = downloadsRef.current.find(d => d.id === id); + if (!item) return; + + updateDownload(id, (d) => ({ ...d, status: 'downloading', updatedAt: Date.now() })); + + let task = tasksRef.current.get(id); + if (!task) { + try { + const tasks = await getExistingDownloadTasks(); + task = tasks.find((t: any) => String(t?.id) === id); + if (task) { + tasksRef.current.set(id, task); + attachDownloadTask(task); + } + } catch { } + } + + if (!task) { + // Task missing (likely not started / already finished). Let user restart download. + updateDownload(id, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); + return; } try { - console.log(`[DownloadsContext] Calling resumeAsync for download: ${id}`); - const result = await resumable.resumeAsync(); - - // Check if download was paused during resume - const currentItem = downloadsRef.current.find(d => d.id === id); - if (currentItem && currentItem.status === 'paused') { - console.log(`[DownloadsContext] Download was paused during resume, keeping paused state: ${id}`); - // Keep resumable for next resume attempt - DO NOT DELETE - return; - } - - if (!result) throw new Error('Resume failed'); - - console.log(`[DownloadsContext] Resume successful for download: ${id}`); - - // Validate the downloaded file - try { - const fileInfo = await FileSystem.getInfoAsync(result.uri); - if (!fileInfo.exists) { - throw new Error('Downloaded file does not exist'); - } - if (fileInfo.size === 0) { - throw new Error('Downloaded file is empty (0 bytes)'); - } - - // CRITICAL FIX: Check if file size matches expected size (if known) - const currentItem = downloadsRef.current.find(d => d.id === id); - if (currentItem && currentItem.totalBytes > 0) { - const sizeDifference = Math.abs(fileInfo.size - currentItem.totalBytes); - const percentDifference = (sizeDifference / currentItem.totalBytes) * 100; - - // Allow up to 1% difference to account for potential header/metadata variations - if (percentDifference > 1) { - throw new Error( - `File size mismatch: expected ${currentItem.totalBytes} bytes, got ${fileInfo.size} bytes (${percentDifference.toFixed(2)}% difference)` - ); - } - } - - console.log(`[DownloadsContext] File validation passed: ${result.uri} (${fileInfo.size} bytes)`); - } catch (validationError) { - console.error(`[DownloadsContext] File validation failed: ${validationError}`); - // Delete the corrupted file - try { - await FileSystem.deleteAsync(result.uri, { idempotent: true }); - console.log(`[DownloadsContext] Deleted corrupted file: ${result.uri}`); - } catch (deleteError) { - console.error(`[DownloadsContext] Failed to delete corrupted file: ${deleteError}`); - } - throw new Error(`Downloaded file validation failed: ${validationError}`); - } - - // Ensure we use the correct file URI from the result - const finalFileUri = result.uri; - updateDownload(id, (d) => ({ ...d, status: 'completed', progress: 100, updatedAt: Date.now(), fileUri: finalFileUri, resumeData: undefined })); - - const done = downloadsRef.current.find(x => x.id === id); - if (done) notifyCompleted({ ...done, status: 'completed', progress: 100, fileUri: finalFileUri } as DownloadItem); - - // Clean up only after successful completion - resumablesRef.current.delete(id); - lastBytesRef.current.delete(id); - } catch (e: any) { - console.log(`[DownloadsContext] Resume threw error for download: ${id}`, e); - - // Check if the error was due to pause - const currentItem = downloadsRef.current.find(d => d.id === id); - if (currentItem && currentItem.status === 'paused') { - console.log(`[DownloadsContext] Error was due to pause, keeping paused state and resumable: ${id}`); - // Keep resumable for next resume attempt - DO NOT DELETE - return; - } - - // Only mark as error and clean up if it's a real error (not pause-related) - console.log(`[DownloadsContext] Marking download as error: ${id}`); - - // For validation errors, clear resumeData and allow fresh restart - if (e.message && e.message.includes('validation failed')) { - console.log(`[DownloadsContext] Validation error - clearing resume data for fresh start: ${id}`); - updateDownload(id, (d) => ({ - ...d, - status: 'error', - resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() - })); - // Clean up resumable to force fresh download on retry - resumablesRef.current.delete(id); - lastBytesRef.current.delete(id); - } else if (e.message && (e.message.includes('size mismatch') || e.message.includes('empty'))) { - // File corruption detected - clear everything for fresh start - console.log(`[DownloadsContext] File corruption detected - clearing for fresh start: ${id}`); - updateDownload(id, (d) => ({ - ...d, - status: 'error', - downloadedBytes: 0, - progress: 0, - resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() - })); - resumablesRef.current.delete(id); - lastBytesRef.current.delete(id); - } else { - // Network or other errors - keep resume data for retry - console.log(`[DownloadsContext] Network/other error - keeping resume data for retry: ${id}`); - updateDownload(id, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); - // Keep resumable for potential retry - } + await task.resume(); + } catch (e) { + console.log(`[DownloadsContext] Resume failed: ${id}`, e); + updateDownload(id, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); } - }, [updateDownload, maybeNotifyProgress, notifyCompleted]); + }, [attachDownloadTask, updateDownload]); const startDownload = useCallback(async (input: StartDownloadInput) => { + if (!isHttpUrl(input.url)) { + throw new Error('This stream is not a direct HTTP URL, so it cannot be downloaded.'); + } + // Validate that the URL is downloadable (not m3u8 or DASH) if (!isDownloadableUrl(input.url)) { throw new Error('This stream format cannot be downloaded. M3U8 (HLS) and DASH streaming formats are not supported for download.'); @@ -436,14 +554,26 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } } - // Create file path - use a simple unique identifier with extension from HEAD request - const baseDir = (FileSystem as any).documentDirectory || (FileSystem as any).cacheDirectory || '/tmp/'; - const uniqueId = `${Date.now()}_${Math.random().toString(36).substring(7)}`; - const extension = await getExtensionFromHeaders(input.url, input.headers); - const fileUri = extension ? `${baseDir}downloads/${uniqueId}.${extension}` : `${baseDir}downloads/${uniqueId}`; + const documentsDir = stripFileScheme(String((directories as any).documents || '')); + if (!documentsDir) throw new Error('Downloads directory is not available'); - // Ensure directory exists - await FileSystem.makeDirectoryAsync(`${baseDir}downloads`, { intermediates: true }).catch(() => { }); + const uniqueId = `${Date.now()}_${Math.random().toString(36).substring(7)}`; + const resolvedFilename = await getDownloadFilename(input.url, input.headers); + let fileName = resolvedFilename || uniqueId; + const downloadsDirPath = `${documentsDir}/downloads`; + let destinationPath = `${downloadsDirPath}/${fileName}`; + + // If the resolved name already exists, make it unique. + try { + await FileSystem.makeDirectoryAsync(toFileUri(downloadsDirPath), { intermediates: true }).catch(() => { }); + const info = await FileSystem.getInfoAsync(toFileUri(destinationPath)); + if (info.exists) { + fileName = `${uniqueId}_${fileName}`; + destinationPath = `${downloadsDirPath}/${fileName}`; + } + } catch { } + + const fileUri = toFileUri(destinationPath); const createdAt = Date.now(); const newItem: DownloadItem = { @@ -478,164 +608,42 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi setDownloads(prev => [newItem, ...prev]); - const progressCallback = (data: any) => { - const { totalBytesWritten, totalBytesExpectedToWrite } = data; - const now = Date.now(); - const last = lastBytesRef.current.get(compoundId); - let speedBps = 0; - if (last) { - const deltaBytes = totalBytesWritten - last.bytes; - const deltaTime = Math.max(1, now - last.time) / 1000; - speedBps = deltaBytes / deltaTime; - } - lastBytesRef.current.set(compoundId, { bytes: totalBytesWritten, time: now }); + const task = createDownloadTask({ + id: compoundId, + url: input.url, + destination: destinationPath, + headers: input.headers, + metadata: { + contentId, + type: input.type, + title: input.title, + providerName: input.providerName, + season: input.season, + episode: input.episode, + episodeTitle: input.episodeTitle, + quality: input.quality, + posterUrl: input.posterUrl || null, + sourceUrl: input.url, + headers: input.headers, + fileUri, + imdbId: input.imdbId, + tmdbId: input.tmdbId, + }, + }); - updateDownload(compoundId, (d) => ({ - ...d, - downloadedBytes: totalBytesWritten, - totalBytes: totalBytesExpectedToWrite || d.totalBytes, - progress: totalBytesExpectedToWrite ? Math.floor((totalBytesWritten / totalBytesExpectedToWrite) * 100) : d.progress, - speedBps, - updatedAt: now, - })); - // Fire background progress notification (throttled) - const current = downloadsRef.current.find(x => x.id === compoundId); - if (current) { - maybeNotifyProgress({ ...current, downloadedBytes: totalBytesWritten, totalBytes: totalBytesExpectedToWrite || current.totalBytes, progress: totalBytesExpectedToWrite ? Math.floor((totalBytesWritten / totalBytesExpectedToWrite) * 100) : current.progress }); - } - }; - - // Create resumable - const resumable = FileSystem.createDownloadResumable( - input.url, - fileUri, - { headers: input.headers || {} }, - progressCallback - ); - resumablesRef.current.set(compoundId, resumable); + tasksRef.current.set(compoundId, task); + attachDownloadTask(task); lastBytesRef.current.set(compoundId, { bytes: 0, time: Date.now() }); - // Start download in background (non-blocking) to allow UI success alert - resumable.downloadAsync().then(async (result) => { - - // Check if download was paused during download - const currentItem = downloadsRef.current.find(d => d.id === compoundId); - if (currentItem && currentItem.status === 'paused') { - console.log(`[DownloadsContext] Download was paused during initial download, keeping paused state: ${compoundId}`); - // CRITICAL FIX: Save resumeData when paused - try { - const savableState = resumable.savable(); - updateDownload(compoundId, (d) => ({ - ...d, - resumeData: savableState.resumeData, - updatedAt: Date.now(), - })); - } catch (savableError) { - console.log(`[DownloadsContext] Could not get savable state after pause: ${compoundId}`, savableError); - } - // Don't delete resumable - keep it for resume - return; - } - - if (!result) throw new Error('Download failed'); - - // Validate the downloaded file - try { - const fileInfo = await FileSystem.getInfoAsync(result.uri); - if (!fileInfo.exists) { - throw new Error('Downloaded file does not exist'); - } - if (fileInfo.size === 0) { - throw new Error('Downloaded file is empty (0 bytes)'); - } - - // CRITICAL FIX: Check if file size matches expected size (if known) - const currentItem = downloadsRef.current.find(d => d.id === compoundId); - if (currentItem && currentItem.totalBytes > 0) { - const sizeDifference = Math.abs(fileInfo.size - currentItem.totalBytes); - const percentDifference = (sizeDifference / currentItem.totalBytes) * 100; - - // Allow up to 1% difference to account for potential header/metadata variations - if (percentDifference > 1) { - throw new Error( - `File size mismatch: expected ${currentItem.totalBytes} bytes, got ${fileInfo.size} bytes (${percentDifference.toFixed(2)}% difference)` - ); - } - } - - console.log(`[DownloadsContext] File validation passed: ${result.uri} (${fileInfo.size} bytes)`); - } catch (validationError) { - console.error(`[DownloadsContext] File validation failed: ${validationError}`); - // Delete the corrupted file - try { - await FileSystem.deleteAsync(result.uri, { idempotent: true }); - console.log(`[DownloadsContext] Deleted corrupted file: ${result.uri}`); - } catch (deleteError) { - console.error(`[DownloadsContext] Failed to delete corrupted file: ${deleteError}`); - } - throw new Error(`Downloaded file validation failed: ${validationError}`); - } - - updateDownload(compoundId, (d) => ({ ...d, status: 'completed', progress: 100, updatedAt: Date.now(), fileUri: result.uri, resumeData: undefined })); - const done = downloadsRef.current.find(x => x.id === compoundId); - if (done) notifyCompleted({ ...done, status: 'completed', progress: 100, fileUri: result.uri } as DownloadItem); - resumablesRef.current.delete(compoundId); - lastBytesRef.current.delete(compoundId); - }).catch(async (e: any) => { - // If user paused, keep paused state, else error - const current = downloadsRef.current.find(d => d.id === compoundId); - if (current && current.status === 'paused') { - console.log(`[DownloadsContext] Error was due to pause during initial download, keeping paused state and resumable: ${compoundId}`); - // CRITICAL FIX: Save resumeData when paused - try { - const savableState = resumable.savable(); - updateDownload(compoundId, (d) => ({ - ...d, - resumeData: savableState.resumeData, - updatedAt: Date.now(), - })); - } catch (savableError) { - console.log(`[DownloadsContext] Could not get savable state after pause error: ${compoundId}`, savableError); - } - // Don't delete resumable - keep it for resume - return; - } - - console.log(`[DownloadsContext] Marking initial download as error: ${compoundId}`); - - // For validation errors, clear resumeData and allow fresh restart - if (e.message && e.message.includes('validation failed')) { - console.log(`[DownloadsContext] Validation error - clearing resume data for fresh start: ${compoundId}`); - updateDownload(compoundId, (d) => ({ - ...d, - status: 'error', - resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() - })); - // Clean up resumable to force fresh download on retry - resumablesRef.current.delete(compoundId); - lastBytesRef.current.delete(compoundId); - } else if (e.message && (e.message.includes('size mismatch') || e.message.includes('empty'))) { - // File corruption detected - clear everything for fresh start - console.log(`[DownloadsContext] File corruption detected - clearing for fresh start: ${compoundId}`); - updateDownload(compoundId, (d) => ({ - ...d, - status: 'error', - downloadedBytes: 0, - progress: 0, - resumeData: undefined, // Clear corrupted resume data - updatedAt: Date.now() - })); - resumablesRef.current.delete(compoundId); - lastBytesRef.current.delete(compoundId); - } else { - // Network or other errors - keep resume data for retry - console.log(`[DownloadsContext] Network/other error - keeping resume data for retry: ${compoundId}`); - updateDownload(compoundId, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); - // Keep resumable for potential retry - } - }); - }, [updateDownload, resumeDownload]); + // Start the native background download. + try { + task.start(); + } catch (e) { + console.log('[DownloadsContext] Failed to start background download', e); + updateDownload(compoundId, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); + throw e; + } + }, [attachDownloadTask, resumeDownload, updateDownload]); const pauseDownload = useCallback(async (id: string) => { console.log(`[DownloadsContext] Pausing download: ${id}`); @@ -644,57 +652,24 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // This will cause any ongoing download/resume operations to check status and exit gracefully updateDownload(id, (d) => ({ ...d, status: 'paused', updatedAt: Date.now() })); - const resumable = resumablesRef.current.get(id); - if (resumable) { - try { - // CRITICAL FIX: Get the pause state which contains resumeData - const pauseResult = await resumable.pauseAsync(); - console.log(`[DownloadsContext] Successfully paused download: ${id}`); + const task = tasksRef.current.get(id); + if (!task) return; - // CRITICAL FIX: Save the resumeData from pauseAsync result or savable() - // The pauseAsync returns a DownloadPauseState object with resumeData - const savableState = resumable.savable(); - - // Update the download item with the critical resumeData for future resume - updateDownload(id, (d) => ({ - ...d, - status: 'paused', - resumeData: savableState.resumeData || pauseResult.resumeData, // Store resume data - updatedAt: Date.now(), - })); - - console.log(`[DownloadsContext] Saved resume data for download: ${id}`); - - // Keep the resumable in memory for resume - DO NOT DELETE - } catch (error) { - console.log(`[DownloadsContext] Pause async failed (this is normal if already paused): ${id}`, error); - // Keep resumable even if pause fails - we still want to be able to resume - // Try to get savable state even if pause failed - try { - const savableState = resumable.savable(); - updateDownload(id, (d) => ({ - ...d, - status: 'paused', - resumeData: savableState.resumeData, - updatedAt: Date.now(), - })); - } catch (savableError) { - console.log(`[DownloadsContext] Could not get savable state: ${id}`, savableError); - } - } - } else { - console.log(`[DownloadsContext] No resumable found for download: ${id}, just marked as paused`); + try { + await task.pause(); + } catch (e) { + console.log(`[DownloadsContext] Pause failed: ${id}`, e); } }, [updateDownload]); const cancelDownload = useCallback(async (id: string) => { - const resumable = resumablesRef.current.get(id); try { - if (resumable) { - try { await resumable.pauseAsync(); } catch { } + const task = tasksRef.current.get(id); + if (task) { + try { await task.stop(); } catch { } } } finally { - resumablesRef.current.delete(id); + tasksRef.current.delete(id); lastBytesRef.current.delete(id); } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 07eb3de9..f0ec8db1 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -715,7 +715,7 @@ "auto_select_subs_desc": "Wählt automatisch Untertitel nach Ihren Präferenzen", "show_trailers": "Trailer anzeigen", "show_trailers_desc": "Trailer im Hero-Bereich anzeigen", - "enable_downloads": "Downloads aktivieren (Beta)", + "enable_downloads": "Downloads aktivieren", "enable_downloads_desc": "Downloads-Tab anzeigen und Speichern von Streams aktivieren", "notifications": "Benachrichtigungen", "notifications_desc": "Episodenerinnerungen", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 62eb4f0f..f49df76d 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -715,7 +715,7 @@ "auto_select_subs_desc": "Automatically select subtitles matching your preferences", "show_trailers": "Show Trailers", "show_trailers_desc": "Display trailers in hero section", - "enable_downloads": "Enable Downloads (Beta)", + "enable_downloads": "Enable Downloads", "enable_downloads_desc": "Show Downloads tab and enable saving streams", "notifications": "Notifications", "notifications_desc": "Episode reminders", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 52fd5401..44618de1 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -715,7 +715,7 @@ "auto_select_subs_desc": "Selecciona automáticamente los subtítulos que coincidan con tus preferencias", "show_trailers": "Mostrar tráileres", "show_trailers_desc": "Mostrar tráileres en la sección destacada", - "enable_downloads": "Activar descargas (Beta)", + "enable_downloads": "Activar descargas", "enable_downloads_desc": "Mostrar pestaña de descargas y permitir guardar fuentes", "notifications": "Notificaciones", "notifications_desc": "Recordatorios de episodios", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index ae9d1d4e..7abaa826 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -715,7 +715,7 @@ "auto_select_subs_desc": "Automatski odaberi titlove prema vaÅ¡im preferencijama", "show_trailers": "Prikaži trailere", "show_trailers_desc": "Prikaži trailere u hero sekciji", - "enable_downloads": "Omogući preuzimanja (Beta)", + "enable_downloads": "Omogući preuzimanja", "enable_downloads_desc": "Prikaži tab Preuzimanja i omogući spremanje streamova", "notifications": "Obavijesti", "notifications_desc": "Podsjetnici za epizode", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index c48b18b3..bdbaae59 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -715,7 +715,7 @@ "auto_select_subs_desc": "Seleziona automaticamente i sottotitoli in base alle tue preferenze", "show_trailers": "Mostra Trailer", "show_trailers_desc": "Visualizza i trailer nella sezione principale", - "enable_downloads": "Abilita Download (Beta)", + "enable_downloads": "Abilita Download", "enable_downloads_desc": "Mostra la scheda Download e abilita il salvataggio degli streaming", "notifications": "Notifiche", "notifications_desc": "Promemoria episodi", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 600d34c9..df08a63b 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -729,7 +729,7 @@ "auto_select_subs_desc": "Selecionar legendas automaticamente", "show_trailers": "Mostrar Trailers", "show_trailers_desc": "Exibir trailers na seção hero", - "enable_downloads": "Habilitar Downloads (Beta)", + "enable_downloads": "Habilitar Downloads", "enable_downloads_desc": "Mostrar aba Downloads e permitir salvar streams", "notifications": "Notificações", "notifications_desc": "Lembretes de episódios", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 62bfce36..f6dc928b 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -729,7 +729,7 @@ "auto_select_subs_desc": "Selecionar legendas automaticamente", "show_trailers": "Mostrar Trailers", "show_trailers_desc": "Exibir trailers na secção hero", - "enable_downloads": "Habilitar Downloads (Beta)", + "enable_downloads": "Habilitar Downloads", "enable_downloads_desc": "Mostrar aba Downloads e permitir guardar streams", "notifications": "Notificações", "notifications_desc": "Lembretes de episódios", diff --git a/src/services/pluginService.ts b/src/services/pluginService.ts index 62356736..8c7e2b25 100644 --- a/src/services/pluginService.ts +++ b/src/services/pluginService.ts @@ -86,6 +86,12 @@ type ScraperCallback = (streams: Stream[] | null, scraperId: string | null, scra async function preflightSizeCheck(url: string, timeout: number = 15000): Promise { try { + // Skip preflight check for non-HTTP(S) URLs (tokens, IDs, etc.) + if (!url || (!url.startsWith('http://') && !url.startsWith('https://'))) { + logger.log('[PreflightCheck] Skipping non-HTTP URL:', url.substring(0, 60)); + return; + } + const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), timeout); @@ -128,7 +134,7 @@ async function preflightSizeCheck(url: string, timeout: number = 15000): Promise logger.log('[PreflightCheck] Passed for URL:', url.substring(0, 60), 'Content-Length:', contentLengthHeader || 'unknown'); } catch (error: any) { if (error.name === 'AbortError') { - logger.warn('[PreflightCheck] HEAD request timed out for:', url.substring(0, 60)); + logger.warn('[PreflightCheck] HEAD request timed out for:', url.substring(0, 40)); return; } From fd7372a2e9df0d6f8f965fb214c9d7214c722241 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 13:41:36 +0530 Subject: [PATCH 41/58] added liveactivity for ios downloads --- app.json | 1 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 + .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + ios/LiveActivity/Color+hex.swift | 37 + ios/LiveActivity/Date+toTimerInterval.swift | 7 + ios/LiveActivity/Image+dynamic.swift | 33 + ios/LiveActivity/Info.plist | 11 + ios/LiveActivity/LiveActivity.entitlements | 5 + .../LiveActivityDebug.entitlements | 5 + ios/LiveActivity/LiveActivityView.swift | 247 ++++++ ios/LiveActivity/LiveActivityWidget.swift | 169 ++++ .../LiveActivityWidgetBundle.swift | 9 + ios/LiveActivity/View+applyIfPresent.swift | 12 + ios/LiveActivity/View+applyWidgetURL.swift | 24 + ios/LiveActivity/ViewHelpers.swift | 33 + ios/Nuvio.xcodeproj/project.pbxproj | 767 ++++++++++++++++-- ios/Nuvio/AppDelegate.swift | 9 + ios/Nuvio/Info.plist | 6 +- ios/Nuvio/Nuvio-Bridging-Header.h | 1 + ios/Nuvio/Supporting/Expo.plist | 2 +- ios/Podfile.lock | 6 + ios/Podfile.properties.json | 2 +- live.md | 379 +++++++++ package-lock.json | 12 + package.json | 1 + src/components/StreamCard.tsx | 6 + src/components/TabletStreamsLayout.tsx | 1 + src/contexts/DownloadsContext.tsx | 172 +++- .../streams/components/StreamsList.tsx | 1 + src/services/liveActivityService.ts | 86 ++ src/utils/version.ts | 2 +- 33 files changed, 2038 insertions(+), 71 deletions(-) create mode 100644 ios/LiveActivity/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 ios/LiveActivity/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/LiveActivity/Assets.xcassets/Contents.json create mode 100644 ios/LiveActivity/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 ios/LiveActivity/Color+hex.swift create mode 100644 ios/LiveActivity/Date+toTimerInterval.swift create mode 100644 ios/LiveActivity/Image+dynamic.swift create mode 100644 ios/LiveActivity/Info.plist create mode 100644 ios/LiveActivity/LiveActivity.entitlements create mode 100644 ios/LiveActivity/LiveActivityDebug.entitlements create mode 100644 ios/LiveActivity/LiveActivityView.swift create mode 100644 ios/LiveActivity/LiveActivityWidget.swift create mode 100644 ios/LiveActivity/LiveActivityWidgetBundle.swift create mode 100644 ios/LiveActivity/View+applyIfPresent.swift create mode 100644 ios/LiveActivity/View+applyWidgetURL.swift create mode 100644 ios/LiveActivity/ViewHelpers.swift create mode 100644 live.md create mode 100644 src/services/liveActivityService.ts diff --git a/app.json b/app.json index edcd738a..52f01dd0 100644 --- a/app.json +++ b/app.json @@ -67,6 +67,7 @@ }, "owner": "nayifleo", "plugins": [ + "expo-live-activity", [ "@sentry/react-native/expo", { diff --git a/ios/LiveActivity/Assets.xcassets/AccentColor.colorset/Contents.json b/ios/LiveActivity/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..0afb3cf0 --- /dev/null +++ b/ios/LiveActivity/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors": [ + { + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/ios/LiveActivity/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/LiveActivity/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..c70a5bff --- /dev/null +++ b/ios/LiveActivity/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images": [ + { + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "tinted" + } + ], + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/ios/LiveActivity/Assets.xcassets/Contents.json b/ios/LiveActivity/Assets.xcassets/Contents.json new file mode 100644 index 00000000..74d6a722 --- /dev/null +++ b/ios/LiveActivity/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/ios/LiveActivity/Assets.xcassets/WidgetBackground.colorset/Contents.json b/ios/LiveActivity/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 00000000..0afb3cf0 --- /dev/null +++ b/ios/LiveActivity/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors": [ + { + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/ios/LiveActivity/Color+hex.swift b/ios/LiveActivity/Color+hex.swift new file mode 100644 index 00000000..a93994a2 --- /dev/null +++ b/ios/LiveActivity/Color+hex.swift @@ -0,0 +1,37 @@ +import SwiftUI + +extension Color { + init(hex: String) { + var cString: String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() + + if cString.hasPrefix("#") { + cString.remove(at: cString.startIndex) + } + + if (cString.count) != 6, (cString.count) != 8 { + self.init(.white) + return + } + + var rgbValue: UInt64 = 0 + Scanner(string: cString).scanHexInt64(&rgbValue) + + if (cString.count) == 8 { + self.init( + .sRGB, + red: Double((rgbValue >> 24) & 0xFF) / 255, + green: Double((rgbValue >> 16) & 0xFF) / 255, + blue: Double((rgbValue >> 08) & 0xFF) / 255, + opacity: Double((rgbValue >> 00) & 0xFF) / 255 + ) + } else { + self.init( + .sRGB, + red: Double((rgbValue >> 16) & 0xFF) / 255, + green: Double((rgbValue >> 08) & 0xFF) / 255, + blue: Double((rgbValue >> 00) & 0xFF) / 255, + opacity: 1 + ) + } + } +} diff --git a/ios/LiveActivity/Date+toTimerInterval.swift b/ios/LiveActivity/Date+toTimerInterval.swift new file mode 100644 index 00000000..3571bc8e --- /dev/null +++ b/ios/LiveActivity/Date+toTimerInterval.swift @@ -0,0 +1,7 @@ +import SwiftUI + +extension Date { + static func toTimerInterval(miliseconds: Double) -> ClosedRange { + now ... max(now, Date(timeIntervalSince1970: miliseconds / 1000)) + } +} diff --git a/ios/LiveActivity/Image+dynamic.swift b/ios/LiveActivity/Image+dynamic.swift new file mode 100644 index 00000000..f4814939 --- /dev/null +++ b/ios/LiveActivity/Image+dynamic.swift @@ -0,0 +1,33 @@ +import SwiftUI +import UIKit + +extension Image { + static func dynamic(assetNameOrPath: String) -> Self { + if let container = FileManager.default.containerURL( + forSecurityApplicationGroupIdentifier: "group.expoLiveActivity.sharedData" + ) { + let contentsOfFile = container.appendingPathComponent(assetNameOrPath).path + + if let uiImage = UIImage(contentsOfFile: contentsOfFile) { + return Image(uiImage: uiImage) + } + } + + return Image(assetNameOrPath) + } +} + +extension UIImage { + /// Attempts to load a UIImage either from the shared app group container or the main bundle. + static func dynamic(assetNameOrPath: String) -> UIImage? { + if let container = FileManager.default.containerURL( + forSecurityApplicationGroupIdentifier: "group.expoLiveActivity.sharedData" + ) { + let contentsOfFile = container.appendingPathComponent(assetNameOrPath).path + if let uiImage = UIImage(contentsOfFile: contentsOfFile) { + return uiImage + } + } + return UIImage(named: assetNameOrPath) + } +} diff --git a/ios/LiveActivity/Info.plist b/ios/LiveActivity/Info.plist new file mode 100644 index 00000000..0f118fb7 --- /dev/null +++ b/ios/LiveActivity/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/ios/LiveActivity/LiveActivity.entitlements b/ios/LiveActivity/LiveActivity.entitlements new file mode 100644 index 00000000..f683276c --- /dev/null +++ b/ios/LiveActivity/LiveActivity.entitlements @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/ios/LiveActivity/LiveActivityDebug.entitlements b/ios/LiveActivity/LiveActivityDebug.entitlements new file mode 100644 index 00000000..0c67376e --- /dev/null +++ b/ios/LiveActivity/LiveActivityDebug.entitlements @@ -0,0 +1,5 @@ + + + + + diff --git a/ios/LiveActivity/LiveActivityView.swift b/ios/LiveActivity/LiveActivityView.swift new file mode 100644 index 00000000..1a00e921 --- /dev/null +++ b/ios/LiveActivity/LiveActivityView.swift @@ -0,0 +1,247 @@ +import SwiftUI +import WidgetKit + +#if canImport(ActivityKit) + + struct ConditionalForegroundViewModifier: ViewModifier { + let color: String? + + func body(content: Content) -> some View { + if let color = color { + content.foregroundStyle(Color(hex: color)) + } else { + content + } + } + } + + struct DebugLog: View { + #if DEBUG + private let message: String + init(_ message: String) { + self.message = message + print(message) + } + + var body: some View { + Text(message) + .font(.caption2) + .foregroundStyle(.red) + } + #else + init(_: String) {} + var body: some View { EmptyView() } + #endif + } + + struct LiveActivityView: View { + let contentState: LiveActivityAttributes.ContentState + let attributes: LiveActivityAttributes + @State private var imageContainerSize: CGSize? + + var progressViewTint: Color? { + attributes.progressViewTint.map { Color(hex: $0) } + } + + private var imageAlignment: Alignment { + switch attributes.imageAlign { + case "center": + return .center + case "bottom": + return .bottom + default: + return .top + } + } + + private func alignedImage(imageName: String) -> some View { + let defaultHeight: CGFloat = 64 + let defaultWidth: CGFloat = 64 + let containerHeight = imageContainerSize?.height + let containerWidth = imageContainerSize?.width + let hasWidthConstraint = (attributes.imageWidthPercent != nil) || (attributes.imageWidth != nil) + + let computedHeight: CGFloat? = { + if let percent = attributes.imageHeightPercent { + let clamped = min(max(percent, 0), 100) / 100.0 + // Use the row height as a base. Fallback to default when row height is not measured yet. + let base = (containerHeight ?? defaultHeight) + return base * clamped + } else if let size = attributes.imageHeight { + return CGFloat(size) + } else if hasWidthConstraint { + // Mimic CSS: when only width is set, keep height automatic to preserve aspect ratio + return nil + } else { + // Mimic CSS: this works against CSS but provides a better default behavior. + // When no width/height is set, use a default size (64pt) + // Width will adjust automatically base on aspect ratio + return defaultHeight + } + }() + + let computedWidth: CGFloat? = { + if let percent = attributes.imageWidthPercent { + let clamped = min(max(percent, 0), 100) / 100.0 + let base = (containerWidth ?? defaultWidth) + return base * clamped + } else if let size = attributes.imageWidth { + return CGFloat(size) + } else { + return nil // Keep aspect fit based on height + } + }() + + return ZStack(alignment: .center) { + Group { + let fit = attributes.contentFit ?? "cover" + switch fit { + case "contain": + Image.dynamic(assetNameOrPath: imageName).resizable().scaledToFit().frame(width: computedWidth, height: computedHeight) + case "fill": + Image.dynamic(assetNameOrPath: imageName).resizable().frame( + width: computedWidth, + height: computedHeight + ) + case "none": + Image.dynamic(assetNameOrPath: imageName).renderingMode(.original).frame(width: computedWidth, height: computedHeight) + case "scale-down": + if let uiImage = UIImage.dynamic(assetNameOrPath: imageName) { + // Determine the target box. When width/height are nil, we use image's intrinsic dimension for comparison. + let targetHeight = computedHeight ?? uiImage.size.height + let targetWidth = computedWidth ?? uiImage.size.width + let shouldScaleDown = uiImage.size.height > targetHeight || uiImage.size.width > targetWidth + + if shouldScaleDown { + Image(uiImage: uiImage) + .resizable() + .scaledToFit() + .frame(width: computedWidth, height: computedHeight) + } else { + Image(uiImage: uiImage) + .renderingMode(.original) + .frame(width: min(uiImage.size.width, targetWidth), height: min(uiImage.size.height, targetHeight)) + } + } else { + DebugLog("âš ï¸[ExpoLiveActivity] assetNameOrPath couldn't resolve to UIImage") + } + case "cover": + Image.dynamic(assetNameOrPath: imageName).resizable().scaledToFill().frame( + width: computedWidth, + height: computedHeight + ).clipped() + default: + DebugLog("âš ï¸[ExpoLiveActivity] Unknown contentFit '\(fit)'") + } + } + } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: imageAlignment) + .background( + GeometryReader { proxy in + Color.clear + .onAppear { + let s = proxy.size + if s.width > 0, s.height > 0 { imageContainerSize = s } + } + .onChange(of: proxy.size) { s in + if s.width > 0, s.height > 0 { imageContainerSize = s } + } + } + ) + } + + var body: some View { + let defaultPadding = 24 + + let top = CGFloat( + attributes.paddingDetails?.top + ?? attributes.paddingDetails?.vertical + ?? attributes.padding + ?? defaultPadding + ) + + let bottom = CGFloat( + attributes.paddingDetails?.bottom + ?? attributes.paddingDetails?.vertical + ?? attributes.padding + ?? defaultPadding + ) + + let leading = CGFloat( + attributes.paddingDetails?.left + ?? attributes.paddingDetails?.horizontal + ?? attributes.padding + ?? defaultPadding + ) + + let trailing = CGFloat( + attributes.paddingDetails?.right + ?? attributes.paddingDetails?.horizontal + ?? attributes.padding + ?? defaultPadding + ) + + VStack(alignment: .leading) { + let position = attributes.imagePosition ?? "right" + let isStretch = position.contains("Stretch") + let isLeftImage = position.hasPrefix("left") + let hasImage = contentState.imageName != nil + let effectiveStretch = isStretch && hasImage + + HStack(alignment: .center) { + if hasImage, isLeftImage { + if let imageName = contentState.imageName { + alignedImage(imageName: imageName) + } + } + + VStack(alignment: .leading, spacing: 2) { + Text(contentState.title) + .font(.title2) + .fontWeight(.semibold) + .modifier(ConditionalForegroundViewModifier(color: attributes.titleColor)) + + if let subtitle = contentState.subtitle { + Text(subtitle) + .font(.title3) + .modifier(ConditionalForegroundViewModifier(color: attributes.subtitleColor)) + } + + if effectiveStretch { + if let date = contentState.timerEndDateInMilliseconds { + ProgressView(timerInterval: Date.toTimerInterval(miliseconds: date)) + .tint(progressViewTint) + .modifier(ConditionalForegroundViewModifier(color: attributes.progressViewLabelColor)) + } else if let progress = contentState.progress { + ProgressView(value: progress) + .tint(progressViewTint) + .modifier(ConditionalForegroundViewModifier(color: attributes.progressViewLabelColor)) + } + } + }.layoutPriority(1) + + if hasImage, !isLeftImage { // right side (default) + Spacer() + if let imageName = contentState.imageName { + alignedImage(imageName: imageName) + } + } + } + + if !effectiveStretch { + if let date = contentState.timerEndDateInMilliseconds { + ProgressView(timerInterval: Date.toTimerInterval(miliseconds: date)) + .tint(progressViewTint) + .modifier(ConditionalForegroundViewModifier(color: attributes.progressViewLabelColor)) + } else if let progress = contentState.progress { + ProgressView(value: progress) + .tint(progressViewTint) + .modifier(ConditionalForegroundViewModifier(color: attributes.progressViewLabelColor)) + } + } + } + .padding(EdgeInsets(top: top, leading: leading, bottom: bottom, trailing: trailing)) + } + } + +#endif diff --git a/ios/LiveActivity/LiveActivityWidget.swift b/ios/LiveActivity/LiveActivityWidget.swift new file mode 100644 index 00000000..24cd8c57 --- /dev/null +++ b/ios/LiveActivity/LiveActivityWidget.swift @@ -0,0 +1,169 @@ +import ActivityKit +import SwiftUI +import WidgetKit + +struct LiveActivityAttributes: ActivityAttributes { + struct ContentState: Codable, Hashable { + var title: String + var subtitle: String? + var timerEndDateInMilliseconds: Double? + var progress: Double? + var imageName: String? + var dynamicIslandImageName: String? + } + + var name: String + var backgroundColor: String? + var titleColor: String? + var subtitleColor: String? + var progressViewTint: String? + var progressViewLabelColor: String? + var deepLinkUrl: String? + var timerType: DynamicIslandTimerType? + var padding: Int? + var paddingDetails: PaddingDetails? + var imagePosition: String? + var imageWidth: Int? + var imageHeight: Int? + var imageWidthPercent: Double? + var imageHeightPercent: Double? + var imageAlign: String? + var contentFit: String? + + enum DynamicIslandTimerType: String, Codable { + case circular + case digital + } + + struct PaddingDetails: Codable, Hashable { + var top: Int? + var bottom: Int? + var left: Int? + var right: Int? + var vertical: Int? + var horizontal: Int? + } +} + +struct LiveActivityWidget: Widget { + var body: some WidgetConfiguration { + ActivityConfiguration(for: LiveActivityAttributes.self) { context in + LiveActivityView(contentState: context.state, attributes: context.attributes) + .activityBackgroundTint( + context.attributes.backgroundColor.map { Color(hex: $0) } + ) + .activitySystemActionForegroundColor(Color.black) + .applyWidgetURL(from: context.attributes.deepLinkUrl) + } dynamicIsland: { context in + DynamicIsland { + DynamicIslandExpandedRegion(.leading, priority: 1) { + dynamicIslandExpandedLeading(title: context.state.title, subtitle: context.state.subtitle) + .dynamicIsland(verticalPlacement: .belowIfTooWide) + .padding(.leading, 5) + .applyWidgetURL(from: context.attributes.deepLinkUrl) + } + DynamicIslandExpandedRegion(.trailing) { + if let imageName = context.state.imageName { + dynamicIslandExpandedTrailing(imageName: imageName) + .padding(.trailing, 5) + .applyWidgetURL(from: context.attributes.deepLinkUrl) + } + } + DynamicIslandExpandedRegion(.bottom) { + if let date = context.state.timerEndDateInMilliseconds { + dynamicIslandExpandedBottom( + endDate: date, progressViewTint: context.attributes.progressViewTint + ) + .padding(.horizontal, 5) + .applyWidgetURL(from: context.attributes.deepLinkUrl) + } + } + } compactLeading: { + if let dynamicIslandImageName = context.state.dynamicIslandImageName { + resizableImage(imageName: dynamicIslandImageName) + .frame(maxWidth: 23, maxHeight: 23) + .applyWidgetURL(from: context.attributes.deepLinkUrl) + } + } compactTrailing: { + if let date = context.state.timerEndDateInMilliseconds { + compactTimer( + endDate: date, + timerType: context.attributes.timerType ?? .circular, + progressViewTint: context.attributes.progressViewTint + ).applyWidgetURL(from: context.attributes.deepLinkUrl) + } + } minimal: { + if let date = context.state.timerEndDateInMilliseconds { + compactTimer( + endDate: date, + timerType: context.attributes.timerType ?? .circular, + progressViewTint: context.attributes.progressViewTint + ).applyWidgetURL(from: context.attributes.deepLinkUrl) + } + } + } + } + + @ViewBuilder + private func compactTimer( + endDate: Double, + timerType: LiveActivityAttributes.DynamicIslandTimerType, + progressViewTint: String? + ) -> some View { + if timerType == .digital { + Text(timerInterval: Date.toTimerInterval(miliseconds: endDate)) + .font(.system(size: 15)) + .minimumScaleFactor(0.8) + .fontWeight(.semibold) + .frame(maxWidth: 60) + .multilineTextAlignment(.trailing) + } else { + circularTimer(endDate: endDate) + .tint(progressViewTint.map { Color(hex: $0) }) + } + } + + private func dynamicIslandExpandedLeading(title: String, subtitle: String?) -> some View { + VStack(alignment: .leading) { + Spacer() + Text(title) + .font(.title2) + .foregroundStyle(.white) + .fontWeight(.semibold) + if let subtitle { + Text(subtitle) + .font(.title3) + .minimumScaleFactor(0.8) + .foregroundStyle(.white.opacity(0.75)) + } + Spacer() + } + } + + private func dynamicIslandExpandedTrailing(imageName: String) -> some View { + VStack { + Spacer() + resizableImage(imageName: imageName) + Spacer() + } + } + + private func dynamicIslandExpandedBottom(endDate: Double, progressViewTint: String?) -> some View { + ProgressView(timerInterval: Date.toTimerInterval(miliseconds: endDate)) + .foregroundStyle(.white) + .tint(progressViewTint.map { Color(hex: $0) }) + .padding(.top, 5) + } + + private func circularTimer(endDate: Double) -> some View { + ProgressView( + timerInterval: Date.toTimerInterval(miliseconds: endDate), + countsDown: false, + label: { EmptyView() }, + currentValueLabel: { + EmptyView() + } + ) + .progressViewStyle(.circular) + } +} diff --git a/ios/LiveActivity/LiveActivityWidgetBundle.swift b/ios/LiveActivity/LiveActivityWidgetBundle.swift new file mode 100644 index 00000000..913ff4c2 --- /dev/null +++ b/ios/LiveActivity/LiveActivityWidgetBundle.swift @@ -0,0 +1,9 @@ +import SwiftUI +import WidgetKit + +@main +struct LiveActivityWidgetBundle: WidgetBundle { + var body: some Widget { + LiveActivityWidget() + } +} diff --git a/ios/LiveActivity/View+applyIfPresent.swift b/ios/LiveActivity/View+applyIfPresent.swift new file mode 100644 index 00000000..413b45a7 --- /dev/null +++ b/ios/LiveActivity/View+applyIfPresent.swift @@ -0,0 +1,12 @@ +import SwiftUI + +extension View { + @ViewBuilder + func applyIfPresent(_ value: T?, transform: (Self, T) -> some View) -> some View { + if let value { + transform(self, value) + } else { + self + } + } +} diff --git a/ios/LiveActivity/View+applyWidgetURL.swift b/ios/LiveActivity/View+applyWidgetURL.swift new file mode 100644 index 00000000..5fb1aa99 --- /dev/null +++ b/ios/LiveActivity/View+applyWidgetURL.swift @@ -0,0 +1,24 @@ +import SwiftUI + +private let cachedScheme: String? = { + guard + let urlTypes = Bundle.main.infoDictionary?["CFBundleURLTypes"] as? [[String: Any]], + let schemes = urlTypes.first?["CFBundleURLSchemes"] as? [String], + let firstScheme = schemes.first + else { + return nil + } + + return firstScheme +}() + +extension View { + @ViewBuilder + func applyWidgetURL(from urlString: String?) -> some View { + applyIfPresent(urlString) { view, string in + applyIfPresent(cachedScheme) { view, scheme in + view.widgetURL(URL(string: scheme + "://" + string)) + } + } + } +} diff --git a/ios/LiveActivity/ViewHelpers.swift b/ios/LiveActivity/ViewHelpers.swift new file mode 100644 index 00000000..1360c07c --- /dev/null +++ b/ios/LiveActivity/ViewHelpers.swift @@ -0,0 +1,33 @@ +import SwiftUI + +func resizableImage(imageName: String) -> some View { + Image.dynamic(assetNameOrPath: imageName) + .resizable() + .scaledToFit() +} + +func resizableImage(imageName: String, height: CGFloat?, width: CGFloat?) -> some View { + resizableImage(imageName: imageName) + .frame(width: width, height: height) +} + +private struct ContainerSizeKey: PreferenceKey { + static var defaultValue: CGSize? + static func reduce(value: inout CGSize?, nextValue: () -> CGSize?) { + value = nextValue() ?? value + } +} + +extension View { + func captureContainerSize() -> some View { + background( + GeometryReader { proxy in + Color.clear.preference(key: ContainerSizeKey.self, value: proxy.size) + } + ) + } + + func onContainerSize(_ perform: @escaping (CGSize?) -> Void) -> some View { + onPreferenceChange(ContainerSizeKey.self, perform: perform) + } +} diff --git a/ios/Nuvio.xcodeproj/project.pbxproj b/ios/Nuvio.xcodeproj/project.pbxproj index f4ef9d51..73dbe99c 100644 --- a/ios/Nuvio.xcodeproj/project.pbxproj +++ b/ios/Nuvio.xcodeproj/project.pbxproj @@ -7,46 +7,213 @@ objects = { /* Begin PBXBuildFile section */ + 0E96D7F769C7466B98E90CCF /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; 0FFC28FB1FEA74CCFA112268 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 49055D6E250FAFA21141FE49 /* PrivacyInfo.xcprivacy */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 1AAD147C01BE4F3095CBE18E /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; + 25E2CD29119A42F8B4B10C94 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 7928F4CD932E4A58C167CEFA /* libPods-Nuvio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BA547FB5FF593C6C2371C8 /* libPods-Nuvio.a */; }; - 9FBA88F42E86ECD700892850 /* KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */; }; - 9FBA88F52E86ECD700892850 /* KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */; }; - 9FBA88F62E86ECD700892850 /* KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */; }; - 9FBA88F72E86ECD700892850 /* KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */; }; + 3ED3EBF92E41439593E50917 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; + 442B57EB40BD413AB3235C96 /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 174D9F016C3546FEB7D40900 /* LiveActivity.appex */; }; + 4BBD968F8EF647E08BD3AF50 /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */; }; + 6B5330DC8F6D4F54B623833E /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; + 730F1CD42F24B27100EF7E51 /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; + 730F1CD52F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; + 730F1CD62F24B27100EF7E51 /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; + 730F1CD72F24B27100EF7E51 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; + 730F1CD82F24B27100EF7E51 /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; + 730F1CD92F24B27100EF7E51 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; + 730F1CDA2F24B27100EF7E51 /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; + 730F1CDB2F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; + 730F1CDC2F24B27100EF7E51 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; + 730F1CDD2F24B27100EF7E51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; + 730F1CDE2F24B27100EF7E51 /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; + 730F1CDF2F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; + 730F1CE02F24B27100EF7E51 /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; + 730F1CE12F24B27100EF7E51 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; + 730F1CE22F24B27100EF7E51 /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; + 730F1CE32F24B27100EF7E51 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; + 730F1CE42F24B27100EF7E51 /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; + 730F1CE52F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; + 730F1CE62F24B27100EF7E51 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; + 730F1CE72F24B27100EF7E51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; + 730F1CE92F24B3B900EF7E51 /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; + 730F1CEA2F24B3B900EF7E51 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; + 730F1CEB2F24B3B900EF7E51 /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; + 730F1CEC2F24B3B900EF7E51 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; + 730F1CED2F24B3B900EF7E51 /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; + 730F1CEE2F24B3B900EF7E51 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; + 730F1CEF2F24B3B900EF7E51 /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; + 730F1CF02F24B3B900EF7E51 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; + 730F1CF12F24B3B900EF7E51 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; + 730F1CF22F24B3B900EF7E51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; + 9354055245994CB4B766CACB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; + 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */; }; + 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */; }; + 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */; }; + 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */; }; + 9FE5BDAA6F674625BECBE154 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; + A0892AA96024D9EF7CA87A8A /* libPods-Nuvio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 349BFD3B214640DED8541999 /* libPods-Nuvio.a */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; + C020F93B2978487F8ADD648C /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; + DA302E9BE499446E8C981931 /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = F41133061DC54800BF38011F /* LiveActivity.appex */; }; + EC582C023B8B431C8F174188 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; + F285A1620F5847BA863124AF /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = EF8716173E0148BD82B233B7 /* LiveActivity.appex */; }; + FAF84635E95E474983F04A85 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 3B0AE48F9E2E42D497EE475D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DA7D9B4517F7460AA540FF21; + remoteInfo = LiveActivity; + }; + 42A51162762645A3AE54FE44 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1EBBAD76A33B4602849CA169; + remoteInfo = LiveActivity; + }; + 55A0DD628D7F4F4F88B4A001 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0EA489F2BF6143F1BA7B8485; + remoteInfo = LiveActivity; + }; + 7E1DE2E1924249A899602ABA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1192E8CDD15C43C592005B3F; + remoteInfo = LiveActivity; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 13CD9594FB5C4FE4A6794089 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 3447F08B99D9427E99FEE18E /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 4BBD968F8EF647E08BD3AF50 /* LiveActivity.appex in Embed Foundation Extensions */, + 442B57EB40BD413AB3235C96 /* LiveActivity.appex in Embed Foundation Extensions */, + F285A1620F5847BA863124AF /* LiveActivity.appex in Embed Foundation Extensions */, + DA302E9BE499446E8C981931 /* LiveActivity.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 571AD3FB23F14FC7BE6A1E44 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + BDCAC5D772944755921F3BCF /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ + 0DFF64A670930CED5EA4DF3A /* Pods-Nuvio.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.release.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.release.xcconfig"; sourceTree = ""; }; + 0E13CE4BDE2F4555806AE753 /* Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Nuvio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Nuvio.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Nuvio/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Nuvio/Info.plist; sourceTree = ""; }; + 174D9F016C3546FEB7D40900 /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 26957CDD392E4E9390811D0D /* Image+dynamic.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = "Image+dynamic.swift"; sourceTree = ""; }; + 2DE29A8A87D24662BEFFF849 /* LiveActivity.entitlements */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; path = LiveActivity.entitlements; sourceTree = ""; }; + 2F448294A36E433E924078C1 /* LiveActivityView.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = LiveActivityView.swift; sourceTree = ""; }; + 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = "View+applyIfPresent.swift"; sourceTree = ""; }; + 3396D68881EF486E99FD480A /* ViewHelpers.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = ViewHelpers.swift; sourceTree = ""; }; + 349BFD3B214640DED8541999 /* libPods-Nuvio.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Nuvio.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = "View+applyWidgetURL.swift"; sourceTree = ""; }; + 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = "Date+toTimerInterval.swift"; sourceTree = ""; }; 49055D6E250FAFA21141FE49 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Nuvio/PrivacyInfo.xcprivacy; sourceTree = ""; }; 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Nuvio/ExpoModulesProvider.swift"; sourceTree = ""; }; - 6E529CB0ACBADCCC9E9F1C34 /* Pods-Nuvio.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.release.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.release.xcconfig"; sourceTree = ""; }; + 730F1CE82F24B29C00EF7E51 /* LiveActivityDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = LiveActivityDebug.entitlements; sourceTree = ""; }; 73BB213C2E9EEAC700EC03F8 /* NuvioRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = NuvioRelease.entitlements; path = Nuvio/NuvioRelease.entitlements; sourceTree = ""; }; - 872F6D9F073913A5EBC6DDAC /* Pods-Nuvio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.debug.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.debug.xcconfig"; sourceTree = ""; }; - 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../KSPlayer/RNBridge/KSPlayerManager.m; sourceTree = ""; }; - 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerModule.swift; sourceTree = ""; }; - 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerView.swift; sourceTree = ""; }; - 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerViewManager.swift; sourceTree = ""; }; + 8034143A77A946B5A793F967 /* Color+hex.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = "Color+hex.swift"; sourceTree = ""; }; + 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ../KSPlayer/RNBridge/KSPlayerManager.m; sourceTree = ""; }; + 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerModule.swift; sourceTree = ""; }; + 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerView.swift; sourceTree = ""; }; + 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ../KSPlayer/RNBridge/KSPlayerViewManager.swift; sourceTree = ""; }; + A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = LiveActivityWidgetBundle.swift; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = Nuvio/SplashScreen.storyboard; sourceTree = ""; }; + AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = LiveActivityWidget.swift; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; - D0BA547FB5FF593C6C2371C8 /* libPods-Nuvio.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Nuvio.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + DAD634845937EAF8D64F20FC /* Pods-Nuvio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.debug.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.debug.xcconfig"; sourceTree = ""; }; + DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + EF8716173E0148BD82B233B7 /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = Nuvio/AppDelegate.swift; sourceTree = ""; }; F11748442D0722820044C1D9 /* Nuvio-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Nuvio-Bridging-Header.h"; path = "Nuvio/Nuvio-Bridging-Header.h"; sourceTree = ""; }; + F41133061DC54800BF38011F /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 10B2169CBC8644C89561BDE0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7928F4CD932E4A58C167CEFA /* libPods-Nuvio.a in Frameworks */, + A0892AA96024D9EF7CA87A8A /* libPods-Nuvio.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 2B2031F57AAE42E18BD48F61 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 39FE147C4CF348D788956253 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C105694FF46449959CE16947 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -59,10 +226,10 @@ 73BB213C2E9EEAC700EC03F8 /* NuvioRelease.entitlements */, F11748412D0307B40044C1D9 /* AppDelegate.swift */, F11748442D0722820044C1D9 /* Nuvio-Bridging-Header.h */, - 9FBA88F02E86ECD700892850 /* KSPlayerManager.m */, - 9FBA88F12E86ECD700892850 /* KSPlayerModule.swift */, - 9FBA88F22E86ECD700892850 /* KSPlayerView.swift */, - 9FBA88F32E86ECD700892850 /* KSPlayerViewManager.swift */, + 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */, + 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */, + 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */, + 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */, BB2F792B24A3F905000567C9 /* Supporting */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, @@ -76,7 +243,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - D0BA547FB5FF593C6C2371C8 /* libPods-Nuvio.a */, + 349BFD3B214640DED8541999 /* libPods-Nuvio.a */, ); name = Frameworks; sourceTree = ""; @@ -89,6 +256,13 @@ name = ExpoModulesProviders; sourceTree = ""; }; + 62B088ADB2A740DAB9E343F9 /* LiveActivity */ = { + isa = PBXGroup; + children = ( + ); + path = LiveActivity; + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -105,6 +279,10 @@ 2D16E6871FA4F8E400B85C8A /* Frameworks */, D90A3959C97EE9926C513293 /* Pods */, 358C5C99C443A921C8EEDDC8 /* ExpoModulesProviders */, + E8C72B3DF7DB40A8896F56C9 /* LiveActivity */, + 62B088ADB2A740DAB9E343F9 /* LiveActivity */, + B9F3EB198DED443D980ADFB3 /* LiveActivity */, + C05E525650E143FB85ED7622 /* LiveActivity */, ); indentWidth = 2; sourceTree = ""; @@ -115,10 +293,21 @@ isa = PBXGroup; children = ( 13B07F961A680F5B00A75B9A /* Nuvio.app */, + DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */, + 174D9F016C3546FEB7D40900 /* LiveActivity.appex */, + EF8716173E0148BD82B233B7 /* LiveActivity.appex */, + F41133061DC54800BF38011F /* LiveActivity.appex */, ); name = Products; sourceTree = ""; }; + B9F3EB198DED443D980ADFB3 /* LiveActivity */ = { + isa = PBXGroup; + children = ( + ); + path = LiveActivity; + sourceTree = ""; + }; BB2F792B24A3F905000567C9 /* Supporting */ = { isa = PBXGroup; children = ( @@ -128,15 +317,42 @@ path = Nuvio/Supporting; sourceTree = ""; }; + C05E525650E143FB85ED7622 /* LiveActivity */ = { + isa = PBXGroup; + children = ( + 8034143A77A946B5A793F967 /* Color+hex.swift */, + 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */, + 26957CDD392E4E9390811D0D /* Image+dynamic.swift */, + 2F448294A36E433E924078C1 /* LiveActivityView.swift */, + AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */, + A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */, + 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */, + 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */, + 3396D68881EF486E99FD480A /* ViewHelpers.swift */, + 0E13CE4BDE2F4555806AE753 /* Info.plist */, + 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */, + 2DE29A8A87D24662BEFFF849 /* LiveActivity.entitlements */, + ); + path = LiveActivity; + sourceTree = ""; + }; D90A3959C97EE9926C513293 /* Pods */ = { isa = PBXGroup; children = ( - 872F6D9F073913A5EBC6DDAC /* Pods-Nuvio.debug.xcconfig */, - 6E529CB0ACBADCCC9E9F1C34 /* Pods-Nuvio.release.xcconfig */, + DAD634845937EAF8D64F20FC /* Pods-Nuvio.debug.xcconfig */, + 0DFF64A670930CED5EA4DF3A /* Pods-Nuvio.release.xcconfig */, ); path = Pods; sourceTree = ""; }; + E8C72B3DF7DB40A8896F56C9 /* LiveActivity */ = { + isa = PBXGroup; + children = ( + 730F1CE82F24B29C00EF7E51 /* LiveActivityDebug.entitlements */, + ); + path = LiveActivity; + sourceTree = ""; + }; ECB31D9B6FF08C7E8E875650 /* Nuvio */ = { isa = PBXGroup; children = ( @@ -148,29 +364,105 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 0EA489F2BF6143F1BA7B8485 /* LiveActivity */ = { + isa = PBXNativeTarget; + buildConfigurationList = C95083D445BA485B82D2FFBC /* Build configuration list for PBXNativeTarget "LiveActivity" */; + buildPhases = ( + 6E9A0429F8E74948A82DEFF5 /* Sources */, + C105694FF46449959CE16947 /* Frameworks */, + 1E668E0B92C34E73AECDBE1A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LiveActivity; + productName = LiveActivity; + productReference = EF8716173E0148BD82B233B7 /* LiveActivity.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 1192E8CDD15C43C592005B3F /* LiveActivity */ = { + isa = PBXNativeTarget; + buildConfigurationList = CEA87ACBA91F40F7AA726F19 /* Build configuration list for PBXNativeTarget "LiveActivity" */; + buildPhases = ( + 81117DEE4F2545729BDF03F7 /* Sources */, + 2B2031F57AAE42E18BD48F61 /* Frameworks */, + C2800F4B95084F8AA80AC611 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LiveActivity; + productName = LiveActivity; + productReference = F41133061DC54800BF38011F /* LiveActivity.appex */; + productType = "com.apple.product-type.app-extension"; + }; 13B07F861A680F5B00A75B9A /* Nuvio */ = { isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Nuvio" */; buildPhases = ( - 2F7776C5CF342CF6C593386C /* [CP] Check Pods Manifest.lock */, + 13C7A3175A582B3D4E9F198E /* [CP] Check Pods Manifest.lock */, 99A79B70155E84EE1FB7F466 /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 9B977D89FE30470F8C59964C /* Upload Debug Symbols to Sentry */, - 0274FB5ED7475B1802656938 /* [CP] Embed Pods Frameworks */, - 8A1BEDBBF6815E406699791F /* [CP] Copy Pods Resources */, + E043D7E00F2210228303FC0B /* [CP] Embed Pods Frameworks */, + 7F1DFB9D902E2DBC35F3FB84 /* [CP] Copy Pods Resources */, + 3447F08B99D9427E99FEE18E /* Embed Foundation Extensions */, + BDCAC5D772944755921F3BCF /* Embed Foundation Extensions */, + 571AD3FB23F14FC7BE6A1E44 /* Embed Foundation Extensions */, + 13CD9594FB5C4FE4A6794089 /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( + 978589C2E9184DC9AD20A587 /* PBXTargetDependency */, + 60E6A74A9C404C8FBD39B48B /* PBXTargetDependency */, + 8410CAE82E604DD1A187EDA2 /* PBXTargetDependency */, + D012EFA90D7F4BD5B0693671 /* PBXTargetDependency */, ); name = Nuvio; productName = Nuvio; productReference = 13B07F961A680F5B00A75B9A /* Nuvio.app */; productType = "com.apple.product-type.application"; }; + 1EBBAD76A33B4602849CA169 /* LiveActivity */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2FD0D2A66BEF47A0B8CEE6D9 /* Build configuration list for PBXNativeTarget "LiveActivity" */; + buildPhases = ( + 7207870795924249B8C6B3F0 /* Sources */, + 10B2169CBC8644C89561BDE0 /* Frameworks */, + 26E6801BEE58441EA991EE4D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LiveActivity; + productName = LiveActivity; + productReference = DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */; + productType = "com.apple.product-type.app-extension"; + }; + DA7D9B4517F7460AA540FF21 /* LiveActivity */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1ED2052A55CE4E65B5B369AF /* Build configuration list for PBXNativeTarget "LiveActivity" */; + buildPhases = ( + B0655D9B3D9B4AC383E042F7 /* Sources */, + 39FE147C4CF348D788956253 /* Frameworks */, + B6435BB459A04ECB9182B634 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LiveActivity; + productName = LiveActivity; + productReference = 174D9F016C3546FEB7D40900 /* LiveActivity.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -179,8 +471,28 @@ attributes = { LastUpgradeCheck = 1130; TargetAttributes = { - 13B07F861A680F5B00A75B9A = { + 0EA489F2BF6143F1BA7B8485 = { + DevelopmentTeam = 8QBDZ766S3; LastSwiftMigration = 1250; + ProvisioningStyle = Automatic; + }; + 1192E8CDD15C43C592005B3F = { + LastSwiftMigration = 1250; + }; + 13B07F861A680F5B00A75B9A = { + DevelopmentTeam = 8QBDZ766S3; + LastSwiftMigration = 1250; + ProvisioningStyle = Automatic; + }; + 1EBBAD76A33B4602849CA169 = { + DevelopmentTeam = 8QBDZ766S3; + LastSwiftMigration = 1250; + ProvisioningStyle = Automatic; + }; + DA7D9B4517F7460AA540FF21 = { + DevelopmentTeam = 8QBDZ766S3; + LastSwiftMigration = 1250; + ProvisioningStyle = Automatic; }; }; }; @@ -198,6 +510,10 @@ projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* Nuvio */, + 1EBBAD76A33B4602849CA169 /* LiveActivity */, + DA7D9B4517F7460AA540FF21 /* LiveActivity */, + 0EA489F2BF6143F1BA7B8485 /* LiveActivity */, + 1192E8CDD15C43C592005B3F /* LiveActivity */, ); }; /* End PBXProject section */ @@ -214,6 +530,38 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1E668E0B92C34E73AECDBE1A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F1CE72F24B27100EF7E51 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 26E6801BEE58441EA991EE4D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9354055245994CB4B766CACB /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B6435BB459A04ECB9182B634 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F1CDD2F24B27100EF7E51 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C2800F4B95084F8AA80AC611 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F1CF22F24B3B900EF7E51 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -234,29 +582,7 @@ shellPath = /bin/sh; shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n/bin/sh `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('@sentry/react-native/package.json')) + '/scripts/sentry-xcode.sh'\"` `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; }; - 0274FB5ED7475B1802656938 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 2F7776C5CF342CF6C593386C /* [CP] Check Pods Manifest.lock */ = { + 13C7A3175A582B3D4E9F198E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -278,7 +604,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 8A1BEDBBF6815E406699791F /* [CP] Copy Pods Resources */ = { + 7F1DFB9D902E2DBC35F3FB84 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -428,6 +754,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh `${NODE_BINARY:-node} --print \"require('path').dirname(require.resolve('@sentry/react-native/package.json')) + '/scripts/sentry-xcode-debug-files.sh'\"`"; }; + E043D7E00F2210228303FC0B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Nuvio/Pods-Nuvio-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -436,24 +784,136 @@ buildActionMask = 2147483647; files = ( F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */, - 9FBA88F42E86ECD700892850 /* KSPlayerViewManager.swift in Sources */, - 9FBA88F52E86ECD700892850 /* KSPlayerModule.swift in Sources */, - 9FBA88F62E86ECD700892850 /* KSPlayerManager.m in Sources */, - 9FBA88F72E86ECD700892850 /* KSPlayerView.swift in Sources */, + 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */, + 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */, + 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */, + 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */, 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + 6E9A0429F8E74948A82DEFF5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F1CDE2F24B27100EF7E51 /* Color+hex.swift in Sources */, + 730F1CDF2F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */, + 730F1CE02F24B27100EF7E51 /* Image+dynamic.swift in Sources */, + 730F1CE12F24B27100EF7E51 /* LiveActivityView.swift in Sources */, + 730F1CE22F24B27100EF7E51 /* LiveActivityWidget.swift in Sources */, + 730F1CE32F24B27100EF7E51 /* LiveActivityWidgetBundle.swift in Sources */, + 730F1CE42F24B27100EF7E51 /* View+applyIfPresent.swift in Sources */, + 730F1CE52F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */, + 730F1CE62F24B27100EF7E51 /* ViewHelpers.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7207870795924249B8C6B3F0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E96D7F769C7466B98E90CCF /* Color+hex.swift in Sources */, + 3ED3EBF92E41439593E50917 /* Date+toTimerInterval.swift in Sources */, + 1AAD147C01BE4F3095CBE18E /* Image+dynamic.swift in Sources */, + 9FE5BDAA6F674625BECBE154 /* LiveActivityView.swift in Sources */, + C020F93B2978487F8ADD648C /* LiveActivityWidget.swift in Sources */, + FAF84635E95E474983F04A85 /* LiveActivityWidgetBundle.swift in Sources */, + 6B5330DC8F6D4F54B623833E /* View+applyIfPresent.swift in Sources */, + EC582C023B8B431C8F174188 /* View+applyWidgetURL.swift in Sources */, + 25E2CD29119A42F8B4B10C94 /* ViewHelpers.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 81117DEE4F2545729BDF03F7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F1CE92F24B3B900EF7E51 /* Color+hex.swift in Sources */, + 730F1CEA2F24B3B900EF7E51 /* Date+toTimerInterval.swift in Sources */, + 730F1CEB2F24B3B900EF7E51 /* Image+dynamic.swift in Sources */, + 730F1CEC2F24B3B900EF7E51 /* LiveActivityView.swift in Sources */, + 730F1CED2F24B3B900EF7E51 /* LiveActivityWidget.swift in Sources */, + 730F1CEE2F24B3B900EF7E51 /* LiveActivityWidgetBundle.swift in Sources */, + 730F1CEF2F24B3B900EF7E51 /* View+applyIfPresent.swift in Sources */, + 730F1CF02F24B3B900EF7E51 /* View+applyWidgetURL.swift in Sources */, + 730F1CF12F24B3B900EF7E51 /* ViewHelpers.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B0655D9B3D9B4AC383E042F7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 730F1CD42F24B27100EF7E51 /* Color+hex.swift in Sources */, + 730F1CD52F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */, + 730F1CD62F24B27100EF7E51 /* Image+dynamic.swift in Sources */, + 730F1CD72F24B27100EF7E51 /* LiveActivityView.swift in Sources */, + 730F1CD82F24B27100EF7E51 /* LiveActivityWidget.swift in Sources */, + 730F1CD92F24B27100EF7E51 /* LiveActivityWidgetBundle.swift in Sources */, + 730F1CDA2F24B27100EF7E51 /* View+applyIfPresent.swift in Sources */, + 730F1CDB2F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */, + 730F1CDC2F24B27100EF7E51 /* ViewHelpers.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 60E6A74A9C404C8FBD39B48B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DA7D9B4517F7460AA540FF21 /* LiveActivity */; + targetProxy = 3B0AE48F9E2E42D497EE475D /* PBXContainerItemProxy */; + }; + 8410CAE82E604DD1A187EDA2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0EA489F2BF6143F1BA7B8485 /* LiveActivity */; + targetProxy = 55A0DD628D7F4F4F88B4A001 /* PBXContainerItemProxy */; + }; + 978589C2E9184DC9AD20A587 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1EBBAD76A33B4602849CA169 /* LiveActivity */; + targetProxy = 42A51162762645A3AE54FE44 /* PBXContainerItemProxy */; + }; + D012EFA90D7F4BD5B0693671 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1192E8CDD15C43C592005B3F /* LiveActivity */; + targetProxy = 7E1DE2E1924249A899602ABA /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ + 04F118641DEC4E9C918EBAAD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 34; + DEVELOPMENT_TEAM = 8QBDZ766S3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 872F6D9F073913A5EBC6DDAC /* Pods-Nuvio.debug.xcconfig */; + baseConfigurationReference = DAD634845937EAF8D64F20FC /* Pods-Nuvio.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Nuvio/Nuvio.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 8QBDZ766S3; ENABLE_BITCODE = NO; @@ -474,7 +934,7 @@ "-lc++", ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub; PRODUCT_NAME = Nuvio; SUPPORTS_MACCATALYST = YES; SWIFT_OBJC_BRIDGING_HEADER = "Nuvio/Nuvio-Bridging-Header.h"; @@ -487,11 +947,13 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6E529CB0ACBADCCC9E9F1C34 /* Pods-Nuvio.release.xcconfig */; + baseConfigurationReference = 0DFF64A670930CED5EA4DF3A /* Pods-Nuvio.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Nuvio/NuvioRelease.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = 8QBDZ766S3; INFOPLIST_FILE = Nuvio/Info.plist; @@ -507,7 +969,7 @@ "-lc++", ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app; PRODUCT_NAME = Nuvio; SUPPORTS_MACCATALYST = YES; SWIFT_OBJC_BRIDGING_HEADER = "Nuvio/Nuvio-Bridging-Header.h"; @@ -517,6 +979,93 @@ }; name = Release; }; + 38FB0C6278F44A388F0B7111 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 34; + DEVELOPMENT_TEAM = 8QBDZ766S3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 3DCEA1FBF99E46F58A7150CC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 34; + DEVELOPMENT_TEAM = 8QBDZ766S3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 5F8D0112D2E24FF0A9992E15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CURRENT_PROJECT_VERSION = 34; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 649842CAF51F469AAEDFB4DE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CURRENT_PROJECT_VERSION = 34; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; 83CBBA201A601CBA00E9B192 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -635,6 +1184,76 @@ }; name = Release; }; + B38CBD036A874B33A66DF5E7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivityDebug.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 34; + DEVELOPMENT_TEAM = 8QBDZ766S3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C054C2620F32443A8467C53C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 34; + DEVELOPMENT_TEAM = 8QBDZ766S3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + E4108F64486C48E192EAA45D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 34; + DEVELOPMENT_TEAM = 8QBDZ766S3; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = LiveActivity/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + MARKETING_VERSION = 1.3.6; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub.LiveActivity; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -647,6 +1266,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 1ED2052A55CE4E65B5B369AF /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C054C2620F32443A8467C53C /* Debug */, + 04F118641DEC4E9C918EBAAD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2FD0D2A66BEF47A0B8CEE6D9 /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B38CBD036A874B33A66DF5E7 /* Debug */, + 38FB0C6278F44A388F0B7111 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Nuvio" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -656,6 +1293,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + C95083D445BA485B82D2FFBC /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3DCEA1FBF99E46F58A7150CC /* Debug */, + E4108F64486C48E192EAA45D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CEA87ACBA91F40F7AA726F19 /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5F8D0112D2E24FF0A9992E15 /* Debug */, + 649842CAF51F469AAEDFB4DE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; diff --git a/ios/Nuvio/AppDelegate.swift b/ios/Nuvio/AppDelegate.swift index 4364d816..be0e7f70 100644 --- a/ios/Nuvio/AppDelegate.swift +++ b/ios/Nuvio/AppDelegate.swift @@ -84,4 +84,13 @@ class ReactNativeDelegate: ExpoReactNativeFactoryDelegate { return Bundle.main.url(forResource: "main", withExtension: "jsbundle") #endif } + + func application( + _ application: UIApplication, + handleEventsForBackgroundURLSession identifier: String, + completionHandler: @escaping () -> Void + ) { + RNBackgroundDownloader.setCompletionHandlerWithIdentifier(identifier, completionHandler: completionHandler) + } + } diff --git a/ios/Nuvio/Info.plist b/ios/Nuvio/Info.plist index f19c0554..6f6a9f72 100644 --- a/ios/Nuvio/Info.plist +++ b/ios/Nuvio/Info.plist @@ -58,9 +58,13 @@ _CC1AD845._googlecast._tcp NSLocalNetworkUsageDescription - Allow $(PRODUCT_NAME) to access your local network + Nuvio uses the local network to discover Cast-enabled devices on your WiFi network and to connect to local media servers. NSMicrophoneUsageDescription This app does not require microphone access. + NSSupportsLiveActivities + + NSSupportsLiveActivitiesFrequentUpdates + RCTNewArchEnabled RCTRootViewBackgroundColor diff --git a/ios/Nuvio/Nuvio-Bridging-Header.h b/ios/Nuvio/Nuvio-Bridging-Header.h index 8361941a..52fbe8b4 100644 --- a/ios/Nuvio/Nuvio-Bridging-Header.h +++ b/ios/Nuvio/Nuvio-Bridging-Header.h @@ -1,3 +1,4 @@ // // Use this file to import your target's public headers that you would like to expose to Swift. // +#import diff --git a/ios/Nuvio/Supporting/Expo.plist b/ios/Nuvio/Supporting/Expo.plist index 9b1d70a1..ac3efa6f 100644 --- a/ios/Nuvio/Supporting/Expo.plist +++ b/ios/Nuvio/Supporting/Expo.plist @@ -9,7 +9,7 @@ EXUpdatesLaunchWaitMs 30000 EXUpdatesRuntimeVersion - 1.2.11 + 1.3.6 EXUpdatesURL https://ota.nuvioapp.space/api/manifest diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9372bfb7..af7d24b3 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -235,6 +235,8 @@ PODS: - ExpoModulesCore - ExpoLinking (8.0.10): - ExpoModulesCore + - ExpoLiveActivity (0.4.2): + - ExpoModulesCore - ExpoLocalization (17.0.8): - ExpoModulesCore - ExpoModulesCore (3.0.29): @@ -2811,6 +2813,7 @@ DEPENDENCIES: - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) - ExpoLinearGradient (from `../node_modules/expo-linear-gradient/ios`) - ExpoLinking (from `../node_modules/expo-linking/ios`) + - ExpoLiveActivity (from `../node_modules/expo-live-activity/ios`) - ExpoLocalization (from `../node_modules/expo-localization/ios`) - ExpoModulesCore (from `../node_modules/expo-modules-core`) - ExpoRandom (from `../node_modules/expo-random/ios`) @@ -2988,6 +2991,8 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-linear-gradient/ios" ExpoLinking: :path: "../node_modules/expo-linking/ios" + ExpoLiveActivity: + :path: "../node_modules/expo-live-activity/ios" ExpoLocalization: :path: "../node_modules/expo-localization/ios" ExpoModulesCore: @@ -3235,6 +3240,7 @@ SPEC CHECKSUMS: ExpoKeepAwake: 55f75eca6499bb9e4231ebad6f3e9cb8f99c0296 ExpoLinearGradient: 809102bdb979f590083af49f7fa4805cd931bd58 ExpoLinking: f4c4a351523da72a6bfa7e1f4ca92aee1043a3ca + ExpoLiveActivity: d0dd0e8e1460b6b26555b611c4826cdb1036eea2 ExpoLocalization: d9168d5300a5b03e5e78b986124d11fb6ec3ebbd ExpoModulesCore: f3da4f1ab5a8375d0beafab763739dbee8446583 ExpoRandom: d1444df65007bdd4070009efd5dab18e20bf0f00 diff --git a/ios/Podfile.properties.json b/ios/Podfile.properties.json index 42ffb6cb..1119e5b5 100644 --- a/ios/Podfile.properties.json +++ b/ios/Podfile.properties.json @@ -3,4 +3,4 @@ "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true", "newArchEnabled": "true", "ios.deploymentTarget": "16.0" -} \ No newline at end of file +} diff --git a/live.md b/live.md new file mode 100644 index 00000000..a166d96b --- /dev/null +++ b/live.md @@ -0,0 +1,379 @@ +![expo-live-activity by Software Mansion](https://github.com/user-attachments/assets/9f9be263-84ee-4034-a3ca-39c72c189544) + +> [!WARNING] +> This library is in early development stage; breaking changes can be introduced in minor version upgrades. + +# expo-live-activity + +`expo-live-activity` is a React Native module designed for use with Expo to manage and display Live Activities on iOS devices exclusively. This module leverages the Live Activities feature introduced in iOS 16, allowing developers to deliver timely updates right on the lock screen. + +## Features + +- Start, update, and stop Live Activities directly from your React Native application. +- Easy integration with a comprehensive API. +- Custom image support within Live Activities with a pre-configured path. +- Listen and handle changes in push notification tokens associated with a Live Activity. + +## Platform compatibility + +**Note:** This module is intended for use on **iOS devices only**. The minimal iOS version that supports Live Activities is 16.2. When methods are invoked on platforms other than iOS or on older iOS versions, they will log an error, ensuring that they are used in the correct context. + +## Installation + +> [!NOTE] +> The library isn't supported in Expo Go; to set it up correctly you need to use [Expo DevClient](https://docs.expo.dev/versions/latest/sdk/dev-client/) . +> To begin using `expo-live-activity`, follow the installation and configuration steps outlined below: + +### Step 1: Installation + +Run the following command to add the expo-live-activity module to your project: + +```sh +npm install expo-live-activity +``` + +### Step 2: Config Plugin Setup + +The module comes with a built-in config plugin that creates a target in iOS with all the necessary files. The images used in Live Activities should be added to a pre-defined folder in your assets directory: + +1. **Add the config plugin to your app.json or app.config.js:** + ```json + { + "expo": { + "plugins": ["expo-live-activity"] + } + } + ``` + If you want to update Live Activity with push notifications you can add option `"enablePushNotifications": true`: + ```json + { + "expo": { + "plugins": [ + [ + "expo-live-activity", + { + "enablePushNotifications": true + } + ] + ] + } + } + ``` +2. **Assets configuration:** + Place images intended for Live Activities in the `assets/liveActivity` folder. The plugin manages these assets automatically. + + Then prebuild your app with: + + ```sh + npx expo prebuild --clean + ``` + +> [!NOTE] +> Because of iOS limitations, the assets can't be bigger than 4KB ([native Live Activity documentation](https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities#Understand-constraints)) + +### Step 3: Usage in Your React Native App + +Import the functionalities provided by the `expo-live-activity` module in your JavaScript or TypeScript files: + +```javascript +import * as LiveActivity from 'expo-live-activity' +``` + +## API + +`expo-live-activity` module exports three primary functions to manage Live Activities: + +### Managing Live Activities + +- **`startActivity(state: LiveActivityState, config?: LiveActivityConfig): string | undefined`**: + Start a new Live Activity. Takes a `state` configuration object for initial activity state and an optional `config` object to customize appearance or behavior. It returns the `ID` of the created Live Activity, which should be stored for future reference. If the Live Activity can't be created (eg. on android or iOS lower than 16.2), it will return `undefined`. + +- **`updateActivity(id: string, state: LiveActivityState)`**: + Update an existing Live Activity. The `state` object should contain updated information. The `activityId` indicates which activity should be updated. + +- **`stopActivity(id: string, state: LiveActivityState)`**: + Terminate an ongoing Live Activity. The `state` object should contain the final state of the activity. The `activityId` indicates which activity should be stopped. + +### Handling Push Notification Tokens + +- **`addActivityPushToStartTokenListener(listener: (event: ActivityPushToStartTokenReceivedEvent) => void): EventSubscription | undefined`**: + Subscribe to changes in the push to start token for starting live acitivities with push notifications. +- **`addActivityTokenListener(listener: (event: ActivityTokenReceivedEvent) => void): EventSubscription | undefined`**: + Subscribe to changes in the push notification token associated with Live Activities. + +### Deep linking + +When starting a new Live Activity, it's possible to pass `deepLinkUrl` field in `config` object. This usually should be a path to one of your screens. If you are using @react-navigation in your project, it's easiest to enable auto linking: + +```typescript +const prefix = Linking.createURL('') + +export default function App() { + const url = Linking.useLinkingURL() + const linking = { + enabled: 'auto' as const, + prefixes: [prefix], + } +} + +// Then start the activity with: +LiveActivity.startActivity(state, { + deepLinkUrl: '/order', +}) +``` + +URL scheme will be taken automatically from `scheme` field in `app.json` or fall back to `ios.bundleIdentifier`. + +### State Object Structure + +The `state` object should include: + +```typescript +{ + title: string; + subtitle?: string; + progressBar: { // Only one property (date, progress, or elapsedTimer) is available at a time + date?: number; // Set as epoch time in milliseconds. This is used as an end date in a countdown timer. + progress?: number; // Set amount of progress in the progress bar (0-1) + elapsedTimer?: { // Count up timer (elapsed time from start) + startDate: number; // Epoch time in milliseconds when the timer started + }; + }; + imageName?: string; // Matches the name of the image in 'assets/liveActivity' + dynamicIslandImageName?: string; // Matches the name of the image in 'assets/liveActivity' +}; +``` + +### Config Object Structure + +The `config` object should include: + +```typescript +{ + backgroundColor?: string; + titleColor?: string; + subtitleColor?: string; + progressViewTint?: string; + progressViewLabelColor?: string; + deepLinkUrl?: string; + timerType?: DynamicIslandTimerType; // "circular" | "digital" - defines timer appearance on the dynamic island + padding?: Padding // number | {top?: number bottom?: number ...} + imagePosition?: ImagePosition; // 'left' | 'right'; + imageAlign?: ImageAlign; // 'top' | 'center' | 'bottom' + imageSize?: ImageSize // { width?: number|`${number}%`, height?: number|`${number}%` } | undefined (defaults to 64pt) + contentFit?: ImageContentFit; // 'cover' | 'contain' | 'fill' | 'none' | 'scale-down' +}; +``` + +### Activity updates + +`LiveActivity.addActivityUpdatesListener` API allows to subscribe to changes in Live Activity state. This is useful for example when you want to update the Live Activity with new information. Handler will receive an `ActivityUpdateEvent` object which contains information about new state under `activityState` property which is of `ActivityState` type, so the possible values are: `'active'`, `'dismissed'`, `'pending'`, `'stale'` or `'ended'`. Apart from this property, the event also contains `activityId` and `activityName` which can be used to identify the Live Activity. + +## Example Usage + +Managing a Live Activity: + +```typescript +const state: LiveActivity.LiveActivityState = { + title: 'Title', + subtitle: 'This is a subtitle', + progressBar: { + date: new Date(Date.now() + 60 * 1000 * 5).getTime(), + }, + imageName: 'live_activity_image', + dynamicIslandImageName: 'dynamic_island_image', +} + +const config: LiveActivity.LiveActivityConfig = { + backgroundColor: '#FFFFFF', + titleColor: '#000000', + subtitleColor: '#333333', + progressViewTint: '#4CAF50', + progressViewLabelColor: '#FFFFFF', + deepLinkUrl: '/dashboard', + timerType: 'circular', + padding: { horizontal: 20, top: 16, bottom: 16 }, + imagePosition: 'right', + imageAlign: 'center', + imageSize: { height: '50%', width: '50%' }, // number (pt) or percentage of the image container, if empty by default is 64pt. + contentFit: 'cover', +} + +const activityId = LiveActivity.startActivity(state, config) +// Store activityId for future reference +``` + +This will initiate a Live Activity with the specified title, subtitle, image from your configured assets folder and a time to which there will be a countdown in a progress view. + +Using an elapsed timer: + +```typescript +const elapsedTimerState: LiveActivity.LiveActivityState = { + title: 'Walk in Progress', + subtitle: 'With Max the Dog', + progressBar: { + elapsedTimer: { + startDate: Date.now() - 5 * 60 * 1000, // Started 5 minutes ago + }, + }, + imageName: 'dog_walking', + dynamicIslandImageName: 'dog_icon', +} + +const activityId = LiveActivity.startActivity(elapsedTimerState, config) +``` + +The elapsed timer will automatically update every second based on the `startDate` you provide. + +Subscribing to push token changes: + +```typescript +useEffect(() => { + const updateTokenSubscription = LiveActivity.addActivityTokenListener( + ({ activityID: newActivityID, activityName: newName, activityPushToken: newToken }) => { + // Send token to a remote server to update Live Activity with push notifications + } + ) + const startTokenSubscription = LiveActivity.addActivityPushToStartTokenListener( + ({ activityPushToStartToken: newActivityPushToStartToken }) => { + // Send token to a remote server to start Live Activity with push notifications + } + ) + + return () => { + updateTokenSubscription?.remove() + startTokenSubscription?.remove() + } +}, []) +``` + +> [!NOTE] +> Receiving push token may not work on simulators. Make sure to use physical device when testing this functionality. + +## Push notifications + +By default, starting and updating Live Activity is possible only via API. If you want to have possibility to start or update Live Activity using push notifications, you can enable that feature by adding `"enablePushNotifications": true` in the plugin config in your `app.json` or `app.config.ts` file. + +> [!NOTE] +> PushToStart works only for iOS 17.2 and higher. + +Example payload for starting Live Activity: + +```json +{ + "aps": { + "event": "start", + "content-state": { + "title": "Live Activity title!", + "subtitle": "Live Activity subtitle.", + "timerEndDateInMilliseconds": 1754410997000, + "progress": 0.5, + "imageName": "live_activity_image", + "dynamicIslandImageName": "dynamic_island_image", + "elapsedTimerStartDateInMilliseconds": null + }, + "timestamp": 1754491435000, // timestamp of when the push notification was sent + "attributes-type": "LiveActivityAttributes", + "attributes": { + "name": "Test", + "backgroundColor": "001A72", + "titleColor": "EBEBF0", + "subtitleColor": "FFFFFF75", + "progressViewTint": "38ACDD", + "progressViewLabelColor": "FFFFFF", + "deepLinkUrl": "/dashboard", + "timerType": "digital", + "padding": 24, // or use object to control each side: { "horizontal": 20, "top": 16, "bottom": 16 } + "imagePosition": "right", + "imageSize": "default" + }, + "alert": { + "title": "", + "body": "", + "sound": "default" + } + } +} +``` + +Example payload for updating Live Activity: + +```json +{ + "aps": { + "event": "update", + "content-state": { + "title": "Hello", + "subtitle": "World", + "timerEndDateInMilliseconds": 1754064245000, + "imageName": "live_activity_image", + "dynamicIslandImageName": "dynamic_island_image" + }, + "timestamp": 1754063621319 // timestamp of when the push notification was sent + } +} +``` + +Where `timerEndDateInMilliseconds` value is a timestamp in milliseconds corresponding to the target point of the countdown displayed in Live Activity view. + +Example payload for starting Live Activity with elapsed timer: + +```json +{ + "aps": { + "event": "start", + "content-state": { + "title": "Walk in Progress", + "subtitle": "With Max", + "timerEndDateInMilliseconds": null, + "progress": null, + "imageName": "dog_walking", + "dynamicIslandImageName": "dog_icon", + "elapsedTimerStartDateInMilliseconds": 1754410997000 + }, + "timestamp": 1754491435000, + "attributes-type": "LiveActivityAttributes", + "attributes": { + "name": "WalkActivity", + "backgroundColor": "001A72", + "titleColor": "EBEBF0", + "progressViewLabelColor": "FFFFFF" + } + } +} +``` + +Where `elapsedTimerStartDateInMilliseconds` is the timestamp (in milliseconds) when the elapsed timer started counting up. + +## Image support + +Live Activity view also supports image display. There are two dedicated fields in the `state` object for that: + +- `imageName` +- `dynamicIslandImageName` + +The value of each field can be: + +- a string which maps to an asset name +- a URL to remote image - currently, it's possible to use this option only via API, but we plan on to add that feature to push notifications as well. It also requires adding "App Groups" capability to both "main app" and "Live Activity" targets. + +## expo-live-activity is created by Software Mansion + +[![swm](https://logo.swmansion.com/logo?color=white&variant=desktop&width=150&tag=typegpu-github 'Software Mansion')](https://swmansion.com) + +Since 2012 [Software Mansion](https://swmansion.com) is a software agency with +experience in building web and mobile apps. We are Core React Native +Contributors and experts in dealing with all kinds of React Native issues. We +can help you build your next dream product – +[Hire us](https://swmansion.com/contact/projects?utm_source=typegpu&utm_medium=readme). + + + +Made by [@software-mansion](https://github.com/software-mansion) and +[community](https://github.com/software-mansion-labs/expo-live-activity/graphs/contributors) 💛 +

+ + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ab0b6e4e..4a2e3040 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,6 +55,7 @@ "expo-intent-launcher": "~13.0.7", "expo-keep-awake": "~15.0.8", "expo-linear-gradient": "~15.0.7", + "expo-live-activity": "^0.4.2", "expo-localization": "~17.0.7", "expo-navigation-bar": "~5.0.10", "expo-notifications": "~0.32.12", @@ -6594,6 +6595,17 @@ "react-native": "*" } }, + "node_modules/expo-live-activity": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/expo-live-activity/-/expo-live-activity-0.4.2.tgz", + "integrity": "sha512-b3QdsXAg8dPr6p8w4U4eBYdndArSprCPOJC9U8wovAsOOrCA3eSv4vwfn41XNDmaPTc6gweCABaIIxPaTg2oZQ==", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, "node_modules/expo-localization": { "version": "17.0.8", "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-17.0.8.tgz", diff --git a/package.json b/package.json index b4646066..1333166a 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "expo-intent-launcher": "~13.0.7", "expo-keep-awake": "~15.0.8", "expo-linear-gradient": "~15.0.7", + "expo-live-activity": "^0.4.2", "expo-localization": "~17.0.7", "expo-navigation-bar": "~5.0.10", "expo-notifications": "~0.32.12", diff --git a/src/components/StreamCard.tsx b/src/components/StreamCard.tsx index 74308d06..1849c9e0 100644 --- a/src/components/StreamCard.tsx +++ b/src/components/StreamCard.tsx @@ -29,6 +29,7 @@ interface StreamCardProps { showAlert: (title: string, message: string) => void; parentTitle?: string; parentType?: 'movie' | 'series'; + parentYear?: number; parentSeason?: number; parentEpisode?: number; parentEpisodeTitle?: string; @@ -50,6 +51,7 @@ const StreamCard = memo(({ showAlert, parentTitle, parentType, + parentYear, parentSeason, parentEpisode, parentEpisodeTitle, @@ -139,6 +141,9 @@ const StreamCard = memo(({ const parent: any = stream as any; const inferredTitle = parentTitle || stream.name || stream.title || parent.metaName || 'Content'; const inferredType: 'movie' | 'series' = parentType || (parent.kind === 'series' || parent.type === 'series' ? 'series' : 'movie'); + const year = typeof parentYear === 'number' + ? parentYear + : (typeof parent.year === 'number' ? parent.year : undefined); const season = typeof parentSeason === 'number' ? parentSeason : (parent.season || parent.season_number); const episode = typeof parentEpisode === 'number' ? parentEpisode : (parent.episode || parent.episode_number); const episodeTitle = parentEpisodeTitle || parent.episodeTitle || parent.episode_name; @@ -160,6 +165,7 @@ const StreamCard = memo(({ id: String(idForContent), type: inferredType, title: String(inferredTitle), + year: inferredType === 'movie' ? year : undefined, providerName: String(provider), season: inferredType === 'series' ? (season ? Number(season) : undefined) : undefined, episode: inferredType === 'series' ? (episode ? Number(episode) : undefined) : undefined, diff --git a/src/components/TabletStreamsLayout.tsx b/src/components/TabletStreamsLayout.tsx index 85c21a3c..6eb273c3 100644 --- a/src/components/TabletStreamsLayout.tsx +++ b/src/components/TabletStreamsLayout.tsx @@ -371,6 +371,7 @@ const TabletStreamsLayout: React.FC = ({ showAlert={(t: string, m: string) => openAlert(t, m)} parentTitle={metadata?.name} parentType={type as 'movie' | 'series'} + parentYear={metadata?.year} parentSeason={(type === 'series' || type === 'other') ? currentEpisode?.season_number : undefined} parentEpisode={(type === 'series' || type === 'other') ? currentEpisode?.episode_number : undefined} parentEpisodeTitle={(type === 'series' || type === 'other') ? currentEpisode?.name : undefined} diff --git a/src/contexts/DownloadsContext.tsx b/src/contexts/DownloadsContext.tsx index 527da64b..4f25e2a7 100644 --- a/src/contexts/DownloadsContext.tsx +++ b/src/contexts/DownloadsContext.tsx @@ -9,6 +9,7 @@ import { } from '@kesha-antonov/react-native-background-downloader'; import { mmkvStorage } from '../services/mmkvStorage'; import { notificationService } from '../services/notificationService'; +import { startOrUpdateDownloadLiveActivity, stopDownloadLiveActivity } from '../services/liveActivityService'; export type DownloadStatus = 'downloading' | 'completed' | 'paused' | 'error' | 'queued'; @@ -17,6 +18,7 @@ export interface DownloadItem { contentId: string; // base id (e.g., tt0903747 for series, tt0499549 for movies) type: 'movie' | 'series'; title: string; // movie title or show name + year?: number; providerName?: string; season?: number; episode?: number; @@ -46,6 +48,7 @@ type StartDownloadInput = { id: string; // Base content ID (e.g., tt0903747) type: 'movie' | 'series'; title: string; + year?: number; providerName?: string; season?: number; episode?: number; @@ -119,6 +122,31 @@ function isHttpUrl(url: string): boolean { } } +function formatSeasonEpisode(season?: number, episode?: number): string | null { + if (typeof season !== 'number' || typeof episode !== 'number') return null; + return `S${season}E${episode}`; +} + +function formatMovieTitleWithYear(title: string, year?: number): string { + if (!year || !Number.isFinite(year)) return title; + if (/\(\d{4}\)\s*$/.test(title)) return title; + return `${title} (${year})`; +} + +function getLiveActivityText(d: DownloadItem): { title: string; subtitle: string } { + const title = d.type === 'movie' ? formatMovieTitleWithYear(d.title, d.year) : d.title; + const parts: string[] = []; + + if (d.type === 'series') { + const se = formatSeasonEpisode(d.season, d.episode); + if (se) parts.push(se); + if (d.episodeTitle) parts.push(String(d.episodeTitle)); + } + + parts.push(`${d.progress}%`); + return { title, subtitle: parts.join(' • ') }; +} + async function getContentLength(url: string, headers?: Record): Promise { if (!isHttpUrl(url)) return null; try { @@ -269,6 +297,10 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // Cache last notified progress to reduce spam const lastNotifyRef = useRef>(new Map()); + // iOS-only Live Activities for background download progress + const liveActivityIdsRef = useRef>(new Map()); + const lastLiveProgressRef = useRef>(new Map()); + const maybeNotifyProgress = useCallback(async (d: DownloadItem) => { try { if (appStateRef.current === 'active') return; @@ -287,6 +319,86 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } catch { } }, []); + const stopLiveActivityForDownload = useCallback(async (downloadId: string, opts?: { title?: string; subtitle?: string; progressPercent?: number }) => { + const activityId = liveActivityIdsRef.current.get(downloadId); + if (!activityId) return; + + liveActivityIdsRef.current.delete(downloadId); + lastLiveProgressRef.current.delete(downloadId); + + const title = opts?.title || downloadsRef.current.find(d => d.id === downloadId)?.title || 'Download'; + await stopDownloadLiveActivity({ + activityId, + title, + subtitle: opts?.subtitle, + progressPercent: opts?.progressPercent, + }); + }, []); + + const stopAllLiveActivities = useCallback(async () => { + const entries = Array.from(liveActivityIdsRef.current.entries()); + liveActivityIdsRef.current.clear(); + lastLiveProgressRef.current.clear(); + + await Promise.all( + entries.map(async ([downloadId, activityId]) => { + const title = downloadsRef.current.find(d => d.id === downloadId)?.title || 'Download'; + await stopDownloadLiveActivity({ activityId, title }); + }) + ); + }, []); + + const maybeUpdateLiveActivity = useCallback(async (d: DownloadItem) => { + try { + if (d.status !== 'downloading') return; + + // Create the Live Activity as soon as possible (even in foreground) so it exists + // when the user backgrounds / swipes away. Only keep updating progress while backgrounded. + const existingActivityId = liveActivityIdsRef.current.get(d.id); + const isBackground = appStateRef.current !== 'active'; + if (!isBackground && existingActivityId) return; + + const prev = lastLiveProgressRef.current.get(d.id) ?? -1; + if (isBackground && (d.progress <= prev || d.progress - prev < 2)) return; // update every 2% + lastLiveProgressRef.current.set(d.id, d.progress); + + const { title, subtitle } = getLiveActivityText(d); + + const activityId = await startOrUpdateDownloadLiveActivity({ + activityId: existingActivityId, + title, + subtitle, + progressPercent: d.progress, + deepLinkUrl: '/downloads', + }); + + if (activityId && activityId !== existingActivityId) { + liveActivityIdsRef.current.set(d.id, activityId); + } + } catch { + // ignore + } + }, []); + + const syncLiveActivitiesForBackground = useCallback(async () => { + if (appStateRef.current === 'active') return; + + const activeIds = new Set(downloadsRef.current.filter(d => d.status === 'downloading').map(d => d.id)); + await Promise.all( + downloadsRef.current + .filter(d => d.status === 'downloading') + .map(d => maybeUpdateLiveActivity(d)) + ); + + // Stop activities for downloads that are no longer downloading. + const existing = Array.from(liveActivityIdsRef.current.keys()); + await Promise.all( + existing + .filter(id => !activeIds.has(id)) + .map(id => stopLiveActivityForDownload(id)) + ); + }, [maybeUpdateLiveActivity, stopLiveActivityForDownload]); + useEffect(() => { mmkvStorage.setItem(STORAGE_KEY, JSON.stringify(downloads)).catch(() => { }); }, [downloads]); @@ -307,6 +419,11 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi status: 'downloading', updatedAt: Date.now(), })); + + const current = downloadsRef.current.find(x => x.id === taskId); + if (current) { + maybeUpdateLiveActivity({ ...current, status: 'downloading' }); + } }) .progress(({ bytesDownloaded, bytesTotal }: any) => { const now = Date.now(); @@ -338,7 +455,9 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi if (current && typeof bytesDownloaded === 'number') { const totalBytes = typeof bytesTotal === 'number' && bytesTotal > 0 ? bytesTotal : current.totalBytes; const progress = totalBytes > 0 ? Math.floor((bytesDownloaded / totalBytes) * 100) : current.progress; - maybeNotifyProgress({ ...current, downloadedBytes: bytesDownloaded, totalBytes, progress }); + const next = { ...current, downloadedBytes: bytesDownloaded, totalBytes, progress }; + maybeNotifyProgress(next); + maybeUpdateLiveActivity({ ...next, status: 'downloading' }); } }) .done(({ location, bytesDownloaded, bytesTotal }: any) => { @@ -357,7 +476,12 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi })); const doneItem = downloadsRef.current.find(x => x.id === taskId); - if (doneItem) notifyCompleted({ ...doneItem, status: 'completed', progress: 100, fileUri: finalUri || doneItem.fileUri } as DownloadItem); + if (doneItem) { + notifyCompleted({ ...doneItem, status: 'completed', progress: 100, fileUri: finalUri || doneItem.fileUri } as DownloadItem); + stopLiveActivityForDownload(taskId, { title: doneItem.title, subtitle: 'Completed', progressPercent: 100 }); + } else { + stopLiveActivityForDownload(taskId, { subtitle: 'Completed', progressPercent: 100 }); + } try { completeHandler(taskId); @@ -373,9 +497,12 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi updatedAt: Date.now(), })); + const current = downloadsRef.current.find(x => x.id === taskId); + stopLiveActivityForDownload(taskId, { title: current?.title, subtitle: 'Error', progressPercent: current?.progress }); + console.log(`[DownloadsContext] Background download error: ${taskId}`, error); }); - }, [maybeNotifyProgress, notifyCompleted, updateDownload]); + }, [maybeNotifyProgress, maybeUpdateLiveActivity, notifyCompleted, stopLiveActivityForDownload, updateDownload]); useEffect(() => { (async () => { @@ -396,6 +523,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi contentId: String(meta.contentId ?? taskId), type: (meta.type as 'movie' | 'series') ?? 'movie', title: String(meta.title ?? 'Content'), + year: typeof meta.year === 'number' ? meta.year : undefined, providerName: meta.providerName, season: typeof meta.season === 'number' ? meta.season : undefined, episode: typeof meta.episode === 'number' ? meta.episode : undefined, @@ -466,7 +594,12 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi if (looksComplete) { const done = downloadsRef.current.find(x => x.id === d.id); - if (done) notifyCompleted({ ...done, status: 'completed', progress: 100, fileUri: d.fileUri } as DownloadItem); + if (done) { + notifyCompleted({ ...done, status: 'completed', progress: 100, fileUri: d.fileUri } as DownloadItem); + stopLiveActivityForDownload(d.id, { title: done.title, subtitle: 'Completed', progressPercent: 100 }); + } else { + stopLiveActivityForDownload(d.id, { subtitle: 'Completed', progressPercent: 100 }); + } tasksRef.current.delete(d.id); lastBytesRef.current.delete(d.id); } @@ -478,17 +611,20 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } finally { refreshInProgressRef.current = false; } - }, [updateDownload, notifyCompleted]); + }, [updateDownload, notifyCompleted, stopLiveActivityForDownload]); useEffect(() => { const sub = AppState.addEventListener('change', (s) => { appStateRef.current = s; if (s === 'active') { + stopAllLiveActivities(); refreshAllDownloadsFromDisk(); + } else { + syncLiveActivitiesForBackground(); } }); return () => sub.remove(); - }, [refreshAllDownloadsFromDisk]); + }, [refreshAllDownloadsFromDisk, stopAllLiveActivities, syncLiveActivitiesForBackground]); const resumeDownload = useCallback(async (id: string) => { const item = downloadsRef.current.find(d => d.id === id); @@ -516,11 +652,14 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi try { await task.resume(); + + // If app is backgrounded, kick Live Activity updates. + maybeUpdateLiveActivity({ ...item, status: 'downloading' }); } catch (e) { console.log(`[DownloadsContext] Resume failed: ${id}`, e); updateDownload(id, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); } - }, [attachDownloadTask, updateDownload]); + }, [attachDownloadTask, maybeUpdateLiveActivity, updateDownload]); const startDownload = useCallback(async (input: StartDownloadInput) => { if (!isHttpUrl(input.url)) { @@ -581,6 +720,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi contentId, type: input.type, title: input.title, + year: typeof input.year === 'number' ? input.year : undefined, providerName: input.providerName, season: input.season, episode: input.episode, @@ -608,6 +748,9 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi setDownloads(prev => [newItem, ...prev]); + // If somehow started while app is backgrounded, show Live Activity. + maybeUpdateLiveActivity(newItem); + const task = createDownloadTask({ id: compoundId, url: input.url, @@ -617,6 +760,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi contentId, type: input.type, title: input.title, + year: typeof input.year === 'number' ? input.year : undefined, providerName: input.providerName, season: input.season, episode: input.episode, @@ -643,7 +787,7 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi updateDownload(compoundId, (d) => ({ ...d, status: 'error', updatedAt: Date.now() })); throw e; } - }, [attachDownloadTask, resumeDownload, updateDownload]); + }, [attachDownloadTask, maybeUpdateLiveActivity, resumeDownload, updateDownload]); const pauseDownload = useCallback(async (id: string) => { console.log(`[DownloadsContext] Pausing download: ${id}`); @@ -652,6 +796,9 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi // This will cause any ongoing download/resume operations to check status and exit gracefully updateDownload(id, (d) => ({ ...d, status: 'paused', updatedAt: Date.now() })); + const current = downloadsRef.current.find(d => d.id === id); + stopLiveActivityForDownload(id, { title: current?.title, subtitle: 'Paused', progressPercent: current?.progress }); + const task = tasksRef.current.get(id); if (!task) return; @@ -660,9 +807,11 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi } catch (e) { console.log(`[DownloadsContext] Pause failed: ${id}`, e); } - }, [updateDownload]); + }, [stopLiveActivityForDownload, updateDownload]); const cancelDownload = useCallback(async (id: string) => { + const current = downloadsRef.current.find(d => d.id === id); + await stopLiveActivityForDownload(id, { title: current?.title, subtitle: 'Canceled', progressPercent: current?.progress }); try { const task = tasksRef.current.get(id); if (task) { @@ -678,15 +827,16 @@ export const DownloadsProvider: React.FC<{ children: React.ReactNode }> = ({ chi await FileSystem.deleteAsync(item.fileUri, { idempotent: true }).catch(() => { }); } setDownloads(prev => prev.filter(d => d.id !== id)); - }, []); + }, [stopLiveActivityForDownload]); const removeDownload = useCallback(async (id: string) => { const item = downloadsRef.current.find(d => d.id === id); + await stopLiveActivityForDownload(id, { title: item?.title, subtitle: 'Removed', progressPercent: item?.progress }); if (item?.fileUri && item.status === 'completed') { await FileSystem.deleteAsync(item.fileUri, { idempotent: true }).catch(() => { }); } setDownloads(prev => prev.filter(d => d.id !== id)); - }, []); + }, [stopLiveActivityForDownload]); const value = useMemo(() => ({ downloads, diff --git a/src/screens/streams/components/StreamsList.tsx b/src/screens/streams/components/StreamsList.tsx index 7164c5f8..639f53e5 100644 --- a/src/screens/streams/components/StreamsList.tsx +++ b/src/screens/streams/components/StreamsList.tsx @@ -119,6 +119,7 @@ const StreamsList = memo( showAlert={(t: string, m: string) => openAlert(t, m)} parentTitle={metadata?.name} parentType={type as 'movie' | 'series'} + parentYear={metadata?.year} parentSeason={ (type === 'series' || type === 'other') ? currentEpisode?.season_number : undefined } diff --git a/src/services/liveActivityService.ts b/src/services/liveActivityService.ts new file mode 100644 index 00000000..828177f3 --- /dev/null +++ b/src/services/liveActivityService.ts @@ -0,0 +1,86 @@ +import { Platform } from 'react-native'; + +type LiveActivityModule = { + startActivity: (state: any, config?: any) => string | undefined; + updateActivity: (id: string, state: any) => void; + stopActivity: (id: string, state: any) => void; +}; + +function getLiveActivityModule(): LiveActivityModule | null { + if (Platform.OS !== 'ios') return null; + try { + // eslint-disable-next-line @typescript-eslint/no-var-requires + return require('expo-live-activity') as LiveActivityModule; + } catch { + return null; + } +} + +function clamp01(n: number): number { + if (!Number.isFinite(n)) return 0; + return Math.min(1, Math.max(0, n)); +} + +export async function startOrUpdateDownloadLiveActivity(params: { + activityId?: string; + title: string; + progressPercent: number; + subtitle?: string; + deepLinkUrl?: string; +}): Promise { + const mod = getLiveActivityModule(); + if (!mod) return undefined; + + const progress01 = clamp01(params.progressPercent / 100); + const state = { + title: params.title, + subtitle: params.subtitle, + progressBar: { + progress: progress01, + }, + }; + + const config = params.deepLinkUrl ? { deepLinkUrl: params.deepLinkUrl } : undefined; + + try { + if (params.activityId) { + mod.updateActivity(params.activityId, state); + return params.activityId; + } + + const id = mod.startActivity(state, config); + if (!id) { + console.warn( + '[LiveActivity] startActivity returned undefined. Live Activities require a physical iOS device on iOS 16.2+ and a clean prebuild after enabling the expo-live-activity plugin.' + ); + } + return id; + } catch { + return undefined; + } +} + +export async function stopDownloadLiveActivity(params: { + activityId: string; + title: string; + progressPercent?: number; + subtitle?: string; +}): Promise { + const mod = getLiveActivityModule(); + if (!mod) return; + + const progress01 = clamp01((params.progressPercent ?? 0) / 100); + const state = { + title: params.title, + subtitle: params.subtitle, + progressBar: { + progress: progress01, + }, + }; + + try { + mod.stopActivity(params.activityId, state); + } catch { + // ignore + } +} diff --git a/src/utils/version.ts b/src/utils/version.ts index d681c860..06f1acea 100644 --- a/src/utils/version.ts +++ b/src/utils/version.ts @@ -1,7 +1,7 @@ // Single source of truth for the app version displayed in Settings // Update this when bumping app version -export const APP_VERSION = '1.3.6'; +export const APP_VERSION = '1.3.7'; export function getDisplayedAppVersion(): string { return APP_VERSION; From 4f6a1505928a3c8cce4f9b93a027ec1c56ce473d Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sat, 24 Jan 2026 22:52:05 +0530 Subject: [PATCH 42/58] added back ksplayer deps to .pbxproj --- app.json | 5 +- ios/LiveActivity/Info.plist | 2 + .../LiveActivityDebug.entitlements | 5 - ios/Nuvio.xcodeproj/project.pbxproj | 427 +----------------- ios/Nuvio/Info.plist | 9 +- ios/Nuvio/Nuvio.entitlements | 9 +- ios/Nuvio/SplashScreen.storyboard | 2 +- ios/Podfile.properties.json | 3 +- 8 files changed, 38 insertions(+), 424 deletions(-) delete mode 100644 ios/LiveActivity/LiveActivityDebug.entitlements diff --git a/app.json b/app.json index 52f01dd0..7e0b8d60 100644 --- a/app.json +++ b/app.json @@ -37,7 +37,8 @@ }, "bundleIdentifier": "com.nuvio.app", "associatedDomains": [], - "jsEngine": "hermes" + "jsEngine": "hermes", + "appleTeamId": "8QBDZ766S3" }, "android": { "adaptiveIcon": { @@ -106,4 +107,4 @@ }, "runtimeVersion": "1.3.6" } -} \ No newline at end of file +} diff --git a/ios/LiveActivity/Info.plist b/ios/LiveActivity/Info.plist index 0f118fb7..d1a218aa 100644 --- a/ios/LiveActivity/Info.plist +++ b/ios/LiveActivity/Info.plist @@ -7,5 +7,7 @@ NSExtensionPointIdentifier com.apple.widgetkit-extension + RCTNewArchEnabled + diff --git a/ios/LiveActivity/LiveActivityDebug.entitlements b/ios/LiveActivity/LiveActivityDebug.entitlements deleted file mode 100644 index 0c67376e..00000000 --- a/ios/LiveActivity/LiveActivityDebug.entitlements +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/ios/Nuvio.xcodeproj/project.pbxproj b/ios/Nuvio.xcodeproj/project.pbxproj index 73dbe99c..08e51391 100644 --- a/ios/Nuvio.xcodeproj/project.pbxproj +++ b/ios/Nuvio.xcodeproj/project.pbxproj @@ -7,27 +7,10 @@ objects = { /* Begin PBXBuildFile section */ - 0E96D7F769C7466B98E90CCF /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; 0FFC28FB1FEA74CCFA112268 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 49055D6E250FAFA21141FE49 /* PrivacyInfo.xcprivacy */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 1AAD147C01BE4F3095CBE18E /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; - 25E2CD29119A42F8B4B10C94 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; 2AA769395C1242F225F875AF /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E007C0BAC8C453623E81663 /* ExpoModulesProvider.swift */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 3ED3EBF92E41439593E50917 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; - 442B57EB40BD413AB3235C96 /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 174D9F016C3546FEB7D40900 /* LiveActivity.appex */; }; - 4BBD968F8EF647E08BD3AF50 /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */; }; - 6B5330DC8F6D4F54B623833E /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; - 730F1CD42F24B27100EF7E51 /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; - 730F1CD52F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; - 730F1CD62F24B27100EF7E51 /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; - 730F1CD72F24B27100EF7E51 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; - 730F1CD82F24B27100EF7E51 /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; - 730F1CD92F24B27100EF7E51 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; - 730F1CDA2F24B27100EF7E51 /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; - 730F1CDB2F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; - 730F1CDC2F24B27100EF7E51 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; - 730F1CDD2F24B27100EF7E51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; 730F1CDE2F24B27100EF7E51 /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; 730F1CDF2F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; 730F1CE02F24B27100EF7E51 /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; @@ -38,47 +21,17 @@ 730F1CE52F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; 730F1CE62F24B27100EF7E51 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; 730F1CE72F24B27100EF7E51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; - 730F1CE92F24B3B900EF7E51 /* Color+hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8034143A77A946B5A793F967 /* Color+hex.swift */; }; - 730F1CEA2F24B3B900EF7E51 /* Date+toTimerInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A48D8A298DD48928E8D0A02 /* Date+toTimerInterval.swift */; }; - 730F1CEB2F24B3B900EF7E51 /* Image+dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26957CDD392E4E9390811D0D /* Image+dynamic.swift */; }; - 730F1CEC2F24B3B900EF7E51 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; - 730F1CED2F24B3B900EF7E51 /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; - 730F1CEE2F24B3B900EF7E51 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; - 730F1CEF2F24B3B900EF7E51 /* View+applyIfPresent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324373F393774A9CA40DE22E /* View+applyIfPresent.swift */; }; - 730F1CF02F24B3B900EF7E51 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; - 730F1CF12F24B3B900EF7E51 /* ViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3396D68881EF486E99FD480A /* ViewHelpers.swift */; }; - 730F1CF22F24B3B900EF7E51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; - 9354055245994CB4B766CACB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0F1D0037D1F24E60BDB57628 /* Assets.xcassets */; }; 9FBA88F42E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F32E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerViewManager.swift */; }; 9FBA88F52E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F12E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerModule.swift */; }; 9FBA88F62E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F02E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerManager.m */; }; 9FBA88F72E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FBA88F22E86ECD700892850 /* ../KSPlayer/RNBridge/KSPlayerView.swift */; }; - 9FE5BDAA6F674625BECBE154 /* LiveActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F448294A36E433E924078C1 /* LiveActivityView.swift */; }; A0892AA96024D9EF7CA87A8A /* libPods-Nuvio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 349BFD3B214640DED8541999 /* libPods-Nuvio.a */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; - C020F93B2978487F8ADD648C /* LiveActivityWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */; }; - DA302E9BE499446E8C981931 /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = F41133061DC54800BF38011F /* LiveActivity.appex */; }; - EC582C023B8B431C8F174188 /* View+applyWidgetURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 373D1473F5A74CBC9DBD108B /* View+applyWidgetURL.swift */; }; F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; F285A1620F5847BA863124AF /* LiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = EF8716173E0148BD82B233B7 /* LiveActivity.appex */; }; - FAF84635E95E474983F04A85 /* LiveActivityWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = A83D742B36224176A0AB3B25 /* LiveActivityWidgetBundle.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 3B0AE48F9E2E42D497EE475D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DA7D9B4517F7460AA540FF21; - remoteInfo = LiveActivity; - }; - 42A51162762645A3AE54FE44 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1EBBAD76A33B4602849CA169; - remoteInfo = LiveActivity; - }; 55A0DD628D7F4F4F88B4A001 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -86,13 +39,6 @@ remoteGlobalIDString = 0EA489F2BF6143F1BA7B8485; remoteInfo = LiveActivity; }; - 7E1DE2E1924249A899602ABA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1192E8CDD15C43C592005B3F; - remoteInfo = LiveActivity; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -112,10 +58,7 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( - 4BBD968F8EF647E08BD3AF50 /* LiveActivity.appex in Embed Foundation Extensions */, - 442B57EB40BD413AB3235C96 /* LiveActivity.appex in Embed Foundation Extensions */, F285A1620F5847BA863124AF /* LiveActivity.appex in Embed Foundation Extensions */, - DA302E9BE499446E8C981931 /* LiveActivity.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -140,6 +83,16 @@ name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; }; + F1058FE7710A45FABC0689A7 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -149,7 +102,6 @@ 13B07F961A680F5B00A75B9A /* Nuvio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Nuvio.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Nuvio/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Nuvio/Info.plist; sourceTree = ""; }; - 174D9F016C3546FEB7D40900 /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 26957CDD392E4E9390811D0D /* Image+dynamic.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = "Image+dynamic.swift"; sourceTree = ""; }; 2DE29A8A87D24662BEFFF849 /* LiveActivity.entitlements */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; path = LiveActivity.entitlements; sourceTree = ""; }; 2F448294A36E433E924078C1 /* LiveActivityView.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = LiveActivityView.swift; sourceTree = ""; }; @@ -172,22 +124,13 @@ AD48662BB71E4C9C9E340289 /* LiveActivityWidget.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; path = LiveActivityWidget.swift; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; DAD634845937EAF8D64F20FC /* Pods-Nuvio.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Nuvio.debug.xcconfig"; path = "Target Support Files/Pods-Nuvio/Pods-Nuvio.debug.xcconfig"; sourceTree = ""; }; - DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; EF8716173E0148BD82B233B7 /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = Nuvio/AppDelegate.swift; sourceTree = ""; }; F11748442D0722820044C1D9 /* Nuvio-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Nuvio-Bridging-Header.h"; path = "Nuvio/Nuvio-Bridging-Header.h"; sourceTree = ""; }; - F41133061DC54800BF38011F /* LiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = 9; includeInIndex = 0; path = LiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 10B2169CBC8644C89561BDE0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -196,20 +139,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2B2031F57AAE42E18BD48F61 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 39FE147C4CF348D788956253 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; C105694FF46449959CE16947 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -283,6 +212,7 @@ 62B088ADB2A740DAB9E343F9 /* LiveActivity */, B9F3EB198DED443D980ADFB3 /* LiveActivity */, C05E525650E143FB85ED7622 /* LiveActivity */, + D05210A39FF14E649D77F8A8 /* LiveActivity */, ); indentWidth = 2; sourceTree = ""; @@ -293,10 +223,7 @@ isa = PBXGroup; children = ( 13B07F961A680F5B00A75B9A /* Nuvio.app */, - DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */, - 174D9F016C3546FEB7D40900 /* LiveActivity.appex */, EF8716173E0148BD82B233B7 /* LiveActivity.appex */, - F41133061DC54800BF38011F /* LiveActivity.appex */, ); name = Products; sourceTree = ""; @@ -318,6 +245,13 @@ sourceTree = ""; }; C05E525650E143FB85ED7622 /* LiveActivity */ = { + isa = PBXGroup; + children = ( + ); + path = LiveActivity; + sourceTree = ""; + }; + D05210A39FF14E649D77F8A8 /* LiveActivity */ = { isa = PBXGroup; children = ( 8034143A77A946B5A793F967 /* Color+hex.swift */, @@ -381,23 +315,6 @@ productReference = EF8716173E0148BD82B233B7 /* LiveActivity.appex */; productType = "com.apple.product-type.app-extension"; }; - 1192E8CDD15C43C592005B3F /* LiveActivity */ = { - isa = PBXNativeTarget; - buildConfigurationList = CEA87ACBA91F40F7AA726F19 /* Build configuration list for PBXNativeTarget "LiveActivity" */; - buildPhases = ( - 81117DEE4F2545729BDF03F7 /* Sources */, - 2B2031F57AAE42E18BD48F61 /* Frameworks */, - C2800F4B95084F8AA80AC611 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = LiveActivity; - productName = LiveActivity; - productReference = F41133061DC54800BF38011F /* LiveActivity.appex */; - productType = "com.apple.product-type.app-extension"; - }; 13B07F861A680F5B00A75B9A /* Nuvio */ = { isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Nuvio" */; @@ -415,54 +332,18 @@ BDCAC5D772944755921F3BCF /* Embed Foundation Extensions */, 571AD3FB23F14FC7BE6A1E44 /* Embed Foundation Extensions */, 13CD9594FB5C4FE4A6794089 /* Embed Foundation Extensions */, + F1058FE7710A45FABC0689A7 /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( - 978589C2E9184DC9AD20A587 /* PBXTargetDependency */, - 60E6A74A9C404C8FBD39B48B /* PBXTargetDependency */, 8410CAE82E604DD1A187EDA2 /* PBXTargetDependency */, - D012EFA90D7F4BD5B0693671 /* PBXTargetDependency */, ); name = Nuvio; productName = Nuvio; productReference = 13B07F961A680F5B00A75B9A /* Nuvio.app */; productType = "com.apple.product-type.application"; }; - 1EBBAD76A33B4602849CA169 /* LiveActivity */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2FD0D2A66BEF47A0B8CEE6D9 /* Build configuration list for PBXNativeTarget "LiveActivity" */; - buildPhases = ( - 7207870795924249B8C6B3F0 /* Sources */, - 10B2169CBC8644C89561BDE0 /* Frameworks */, - 26E6801BEE58441EA991EE4D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = LiveActivity; - productName = LiveActivity; - productReference = DAECB06E5D1D4976B214EF20 /* LiveActivity.appex */; - productType = "com.apple.product-type.app-extension"; - }; - DA7D9B4517F7460AA540FF21 /* LiveActivity */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1ED2052A55CE4E65B5B369AF /* Build configuration list for PBXNativeTarget "LiveActivity" */; - buildPhases = ( - B0655D9B3D9B4AC383E042F7 /* Sources */, - 39FE147C4CF348D788956253 /* Frameworks */, - B6435BB459A04ECB9182B634 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = LiveActivity; - productName = LiveActivity; - productReference = 174D9F016C3546FEB7D40900 /* LiveActivity.appex */; - productType = "com.apple.product-type.app-extension"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -476,24 +357,11 @@ LastSwiftMigration = 1250; ProvisioningStyle = Automatic; }; - 1192E8CDD15C43C592005B3F = { - LastSwiftMigration = 1250; - }; 13B07F861A680F5B00A75B9A = { DevelopmentTeam = 8QBDZ766S3; LastSwiftMigration = 1250; ProvisioningStyle = Automatic; }; - 1EBBAD76A33B4602849CA169 = { - DevelopmentTeam = 8QBDZ766S3; - LastSwiftMigration = 1250; - ProvisioningStyle = Automatic; - }; - DA7D9B4517F7460AA540FF21 = { - DevelopmentTeam = 8QBDZ766S3; - LastSwiftMigration = 1250; - ProvisioningStyle = Automatic; - }; }; }; buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Nuvio" */; @@ -510,10 +378,7 @@ projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* Nuvio */, - 1EBBAD76A33B4602849CA169 /* LiveActivity */, - DA7D9B4517F7460AA540FF21 /* LiveActivity */, 0EA489F2BF6143F1BA7B8485 /* LiveActivity */, - 1192E8CDD15C43C592005B3F /* LiveActivity */, ); }; /* End PBXProject section */ @@ -538,30 +403,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 26E6801BEE58441EA991EE4D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9354055245994CB4B766CACB /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B6435BB459A04ECB9182B634 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 730F1CDD2F24B27100EF7E51 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C2800F4B95084F8AA80AC611 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 730F1CF22F24B3B900EF7E51 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -808,103 +649,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 7207870795924249B8C6B3F0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E96D7F769C7466B98E90CCF /* Color+hex.swift in Sources */, - 3ED3EBF92E41439593E50917 /* Date+toTimerInterval.swift in Sources */, - 1AAD147C01BE4F3095CBE18E /* Image+dynamic.swift in Sources */, - 9FE5BDAA6F674625BECBE154 /* LiveActivityView.swift in Sources */, - C020F93B2978487F8ADD648C /* LiveActivityWidget.swift in Sources */, - FAF84635E95E474983F04A85 /* LiveActivityWidgetBundle.swift in Sources */, - 6B5330DC8F6D4F54B623833E /* View+applyIfPresent.swift in Sources */, - EC582C023B8B431C8F174188 /* View+applyWidgetURL.swift in Sources */, - 25E2CD29119A42F8B4B10C94 /* ViewHelpers.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 81117DEE4F2545729BDF03F7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 730F1CE92F24B3B900EF7E51 /* Color+hex.swift in Sources */, - 730F1CEA2F24B3B900EF7E51 /* Date+toTimerInterval.swift in Sources */, - 730F1CEB2F24B3B900EF7E51 /* Image+dynamic.swift in Sources */, - 730F1CEC2F24B3B900EF7E51 /* LiveActivityView.swift in Sources */, - 730F1CED2F24B3B900EF7E51 /* LiveActivityWidget.swift in Sources */, - 730F1CEE2F24B3B900EF7E51 /* LiveActivityWidgetBundle.swift in Sources */, - 730F1CEF2F24B3B900EF7E51 /* View+applyIfPresent.swift in Sources */, - 730F1CF02F24B3B900EF7E51 /* View+applyWidgetURL.swift in Sources */, - 730F1CF12F24B3B900EF7E51 /* ViewHelpers.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B0655D9B3D9B4AC383E042F7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 730F1CD42F24B27100EF7E51 /* Color+hex.swift in Sources */, - 730F1CD52F24B27100EF7E51 /* Date+toTimerInterval.swift in Sources */, - 730F1CD62F24B27100EF7E51 /* Image+dynamic.swift in Sources */, - 730F1CD72F24B27100EF7E51 /* LiveActivityView.swift in Sources */, - 730F1CD82F24B27100EF7E51 /* LiveActivityWidget.swift in Sources */, - 730F1CD92F24B27100EF7E51 /* LiveActivityWidgetBundle.swift in Sources */, - 730F1CDA2F24B27100EF7E51 /* View+applyIfPresent.swift in Sources */, - 730F1CDB2F24B27100EF7E51 /* View+applyWidgetURL.swift in Sources */, - 730F1CDC2F24B27100EF7E51 /* ViewHelpers.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 60E6A74A9C404C8FBD39B48B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DA7D9B4517F7460AA540FF21 /* LiveActivity */; - targetProxy = 3B0AE48F9E2E42D497EE475D /* PBXContainerItemProxy */; - }; 8410CAE82E604DD1A187EDA2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 0EA489F2BF6143F1BA7B8485 /* LiveActivity */; targetProxy = 55A0DD628D7F4F4F88B4A001 /* PBXContainerItemProxy */; }; - 978589C2E9184DC9AD20A587 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1EBBAD76A33B4602849CA169 /* LiveActivity */; - targetProxy = 42A51162762645A3AE54FE44 /* PBXContainerItemProxy */; - }; - D012EFA90D7F4BD5B0693671 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1192E8CDD15C43C592005B3F /* LiveActivity */; - targetProxy = 7E1DE2E1924249A899602ABA /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 04F118641DEC4E9C918EBAAD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 34; - DEVELOPMENT_TEAM = 8QBDZ766S3; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LiveActivity/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; - MARKETING_VERSION = 1.3.6; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = DAD634845937EAF8D64F20FC /* Pods-Nuvio.debug.xcconfig */; @@ -934,7 +689,7 @@ "-lc++", ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app; PRODUCT_NAME = Nuvio; SUPPORTS_MACCATALYST = YES; SWIFT_OBJC_BRIDGING_HEADER = "Nuvio/Nuvio-Bridging-Header.h"; @@ -969,7 +724,7 @@ "-lc++", ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app; + PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub; PRODUCT_NAME = Nuvio; SUPPORTS_MACCATALYST = YES; SWIFT_OBJC_BRIDGING_HEADER = "Nuvio/Nuvio-Bridging-Header.h"; @@ -979,30 +734,6 @@ }; name = Release; }; - 38FB0C6278F44A388F0B7111 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 34; - DEVELOPMENT_TEAM = 8QBDZ766S3; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LiveActivity/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; - MARKETING_VERSION = 1.3.6; - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; 3DCEA1FBF99E46F58A7150CC /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1018,6 +749,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 16.2; MARKETING_VERSION = 1.3.6; + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub.LiveActivity; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1026,46 +758,6 @@ }; name = Debug; }; - 5F8D0112D2E24FF0A9992E15 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; - CURRENT_PROJECT_VERSION = 34; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LiveActivity/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; - MARKETING_VERSION = 1.3.6; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 649842CAF51F469AAEDFB4DE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; - CURRENT_PROJECT_VERSION = 34; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LiveActivity/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; - MARKETING_VERSION = 1.3.6; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; 83CBBA201A601CBA00E9B192 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1184,53 +876,6 @@ }; name = Release; }; - B38CBD036A874B33A66DF5E7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivityDebug.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 34; - DEVELOPMENT_TEAM = 8QBDZ766S3; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LiveActivity/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; - MARKETING_VERSION = 1.3.6; - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub.LiveActivity; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - C054C2620F32443A8467C53C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_ENTITLEMENTS = LiveActivity/LiveActivity.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 34; - DEVELOPMENT_TEAM = 8QBDZ766S3; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LiveActivity/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = LiveActivity; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.2; - MARKETING_VERSION = 1.3.6; - PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.app.LiveActivity; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; E4108F64486C48E192EAA45D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1246,6 +891,7 @@ INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 16.2; MARKETING_VERSION = 1.3.6; + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = com.nuvio.hub.LiveActivity; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1266,24 +912,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1ED2052A55CE4E65B5B369AF /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C054C2620F32443A8467C53C /* Debug */, - 04F118641DEC4E9C918EBAAD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2FD0D2A66BEF47A0B8CEE6D9 /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B38CBD036A874B33A66DF5E7 /* Debug */, - 38FB0C6278F44A388F0B7111 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Nuvio" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1302,15 +930,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CEA87ACBA91F40F7AA726F19 /* Build configuration list for PBXNativeTarget "LiveActivity" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 5F8D0112D2E24FF0A9992E15 /* Debug */, - 649842CAF51F469AAEDFB4DE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; diff --git a/ios/Nuvio/Info.plist b/ios/Nuvio/Info.plist index 6f6a9f72..60f82215 100644 --- a/ios/Nuvio/Info.plist +++ b/ios/Nuvio/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.3.6 + 1.2.10 CFBundleSignature ???? CFBundleURLTypes @@ -75,13 +75,6 @@ UIFileSharingEnabled - UILaunchScreen - - UIColorName - SplashScreenBackground - UIImageName - SplashScreenLegacy - UILaunchStoryboardName SplashScreen UIRequiredDeviceCapabilities diff --git a/ios/Nuvio/Nuvio.entitlements b/ios/Nuvio/Nuvio.entitlements index 0c67376e..a0bc443f 100644 --- a/ios/Nuvio/Nuvio.entitlements +++ b/ios/Nuvio/Nuvio.entitlements @@ -1,5 +1,10 @@ - - + + aps-environment + development + com.apple.developer.associated-domains + + + \ No newline at end of file diff --git a/ios/Nuvio/SplashScreen.storyboard b/ios/Nuvio/SplashScreen.storyboard index 2ae263a0..40697090 100644 --- a/ios/Nuvio/SplashScreen.storyboard +++ b/ios/Nuvio/SplashScreen.storyboard @@ -15,7 +15,7 @@ - + diff --git a/ios/Podfile.properties.json b/ios/Podfile.properties.json index 1119e5b5..417e2e5a 100644 --- a/ios/Podfile.properties.json +++ b/ios/Podfile.properties.json @@ -1,6 +1,5 @@ { "expo.jsEngine": "hermes", "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true", - "newArchEnabled": "true", - "ios.deploymentTarget": "16.0" + "newArchEnabled": "true" } From 36b2375db07b97947e6b8bf5a362b4cd241e16c8 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 25 Jan 2026 14:37:42 +0530 Subject: [PATCH 43/58] added donor screen --- .gitignore | 1 + Transaction_All.csv | 27 ++ assets/lottie/ranking/bronze.json | 1 + assets/lottie/ranking/gold.json | 1 + assets/lottie/ranking/silver.json | 1 + src/i18n/locales/ar.json | 6 + src/i18n/locales/de.json | 6 + src/i18n/locales/en.json | 6 + src/i18n/locales/es.json | 6 + src/i18n/locales/fr.json | 6 + src/i18n/locales/hr.json | 6 + src/i18n/locales/it.json | 6 + src/i18n/locales/pt-BR.json | 6 + src/i18n/locales/pt-PT.json | 6 + src/screens/ContributorsScreen.tsx | 446 ++++++++++++++++++- src/screens/SettingsScreen.tsx | 7 + src/screens/settings/AboutSettingsScreen.tsx | 10 +- src/services/donationsService.ts | 53 +++ src/services/trailerService.ts | 123 +---- 19 files changed, 601 insertions(+), 123 deletions(-) create mode 100644 Transaction_All.csv create mode 100644 assets/lottie/ranking/bronze.json create mode 100644 assets/lottie/ranking/gold.json create mode 100644 assets/lottie/ranking/silver.json create mode 100644 src/services/donationsService.ts diff --git a/.gitignore b/.gitignore index 09d29594..efd2b6c5 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,4 @@ LibTorrent/ iTorrent/ simkl-docss downloader.md +server \ No newline at end of file diff --git a/Transaction_All.csv b/Transaction_All.csv new file mode 100644 index 00000000..0613dec0 --- /dev/null +++ b/Transaction_All.csv @@ -0,0 +1,27 @@ +DateTime (UTC),"From","Message","Item","Received","Given","Currency","TransactionType","TransactionId","Reference","SalesTax","SalesTaxPercentage","SalesTaxIncludesShipping","BuyerCountry","BuyerStateOrProvince","BuyerEmail","PaymentProvider","DiscordUsername" +"06/24/2025 22:48","Nunie","This is from Taz just showing some love for your work","Ko-fi Support","10.00","0","USD","Tip","d23c58ab-8165-472f-9af5-af76b99fe196","T-Q5Q61GZKB0","","","","","","nunie661@gmail.com","PayPal","" +"07/03/2025 16:17","wildkazoos","Hope this helps get the testflight going! Good luck!","Ko-fi Support","5.00","0","USD","Tip","cb61f5a7-7cbe-41b2-9456-4ec3a7fdcc5a","T-A0A21HG9NY","","","","","","kazoos.wildcat.7y@icloud.com","PayPal","wildkazoos#0" +"07/06/2025 20:01","Nunie","Love what your doing to the community keep it up and looking forward to android tv","Ko-fi Support","10.00","0","USD","Tip","7a1dd5fd-6c42-428d-a150-600ceecd0bb9","T-G2G71HMJW5","","","","","","nunie661@gmail.com","PayPal","" +"09/11/2025 14:03","ak061","Great app","Ko-fi Support","10.00","0","USD","Tip","c4b10e74-9c3c-49ab-b32e-9b002c34ea58","T-C0C31L3IB8","","","","","","promoemails0501@gmail.com","PayPal","" +"09/16/2025 15:32","Gesti","","Ko-fi Support","10.00","0","USD","Tip","eb47a9a4-87ce-48bb-b78d-e2013e220b03","T-H2H61LCN1Y","","","","","","gestii97@gmail.com","PayPal","" +"09/18/2025 23:17","MK","Keep up the good work! Much love and support!","Ko-fi Support","50.00","0","USD","Tip","0d6d63e8-312b-48e1-ad45-a9f6bf375fda","T-G2G01LH03X","","","","","","mk90@windowslive.com","PayPal","mk90.#0" +"09/21/2025 02:43","Din","","Ko-fi Support","10.00","0","USD","Tip","751dd75f-1088-46c8-9abe-777117c105e7","T-Z8Z61LL2OW","","","","","","greksoft@ymail.com","PayPal","dinny.#0" +"09/23/2025 15:28","TheAdamsFamily","","Ko-fi Support","5.00","0","USD","Tip","fcfee7b8-cace-4190-bf9e-6cd776a58e02","T-F1A51LPUXP","","","","","","adam.gee@live.co.uk","PayPal","Not connected" +"10/15/2025 00:54","Capillary9835","","Ko-fi Support","5.00","0","USD","Tip","815ce820-4294-413e-9b4c-6999cf2e6de3","T-E1E41MU2KD","","","","","","07yq1ws7@duck.com","PayPal","capillary9835#0" +"10/19/2025 14:07","oma ","thank you for the app you've made it's absolutely amazing and the fact it's free <3","Ko-fi Support","10.00","0","USD","Tip","bfa6404c-4ac3-431c-bcb1-164d049b7c8c","T-K3K11N2ANR","","","","","","omar@amgu.com","PayPal","" +"10/30/2025 03:23","Rob ðŸ¶","i like to support all stremio app devs, thank you!","Ko-fi Support","5.00","0","USD","Tip","29887b4c-80f6-471a-9649-b33766579a3f","T-G2G01NLYW5","","","","","","robert.koteski@hotmail.com","PayPal","" +"11/11/2025 16:54","Ko-fi Supporter","Keep going...","Ko-fi Support","10.00","0","USD","Tip","1a96aad4-e3b5-4c83-bb08-ff797038ea09","T-F1F71OA1C7","","","","","","deepcity88@duck.com","PayPal","" +"11/14/2025 07:43","EvanderMegaton","I want to support every developer who does something related to my favorite hobby. Thank you! There is only one problem: there is no Android TV version, and therefore, $5 is for everything you have done so far, and $5 is my investment, stimulation for the TV version of the app :)","Ko-fi Support","10.00","0","USD","Tip","c8623031-36b5-4288-8171-0bc4fbf9ee54","T-C0C21OF41Y","","","","","","velimir.saban@gmail.com","PayPal","" +"11/19/2025 17:23","Jx","","Ko-fi Support","5.00","0","USD","Tip","fca4c0e4-cfaa-4488-8f40-84f1cd97ec8e","T-P5P11ORGGH","","","","","","xavier.bento@gmail.com","PayPal","jxb0532_89330#0" +"12/09/2025 20:09","Marcojaco","Thanks ","Ko-fi Support","5.00","0","USD","Tip","e4fec6ba-e4db-4d7a-b580-bd8941acf52f","T-U6U71PZLCX","","","","","","marcojaco32@gmail.com","PayPal","" +"12/15/2025 22:07","Razz","Best movies app I've seen to date!! Amazing work and long may it continue! Appreciated ðŸ‘ðŸ»","Ko-fi Support","7.00","0","USD","Tip","b4a59c25-3eda-4219-b8ea-f0eea8048bf6","T-O4O51QCM3T","","","","","","russellcausier@gmail.com","PayPal","razzthekid82#0" +"12/16/2025 18:58","Disc ~ george.epub","","Ko-fi Support","20.00","0","USD","Tip","870c51de-c26f-4e4c-80ae-28202325f861","T-P5P11QECFI","","","","","","georgegaines7@gmail.com","PayPal","Not connected" +"12/24/2025 13:45","LexTutor","","Ko-fi Support","10.00","0","USD","Tip","043da538-8f03-4126-83d8-5148ecacf25b","T-U7U31QVQ69","","","","","","arditmemollathe@gmail.com","PayPal","ardit6991#0" +"12/25/2025 13:22","Ko-fi Supporter","","Ko-fi Support","5.00","0","USD","Tip","700b1d65-3137-4984-8fc0-86921dccd008","T-F1F11QY1G7","","","","","","watsonzach12@gmail.com","PayPal","" +"12/25/2025 22:58","Ko-fi Supporter","","Ko-fi Support","5.00","0","USD","Tip","c5935dfc-2606-47e4-a3de-e84c20ba816c","T-U7U11QZ4NK","","","","","","jason@jasonboshears.com","PayPal","Not connected" +"12/29/2025 09:11","Grape Juice","","Ko-fi Support","5.00","0","USD","Tip","b04ac2de-282b-40a8-8f8e-561008b1b624","T-L3L31R7L7U","","","","","","grapejuice897@gmail.com","PayPal","grapedjuice#0" +"12/30/2025 01:26","Orlando","","Ko-fi Support","5.00","0","USD","Tip","a8e12e23-2e8a-4aae-b88c-5b84a91e0525","T-M4M71R9DFY","","","","","","orlandodewalt5@gmail.com","PayPal","Not connected" +"12/30/2025 13:22","Elyasa' Sidek","","Ko-fi Support","10.00","0","USD","Tip","6e07f94c-c7ba-42e4-8e6c-c50e7879b6aa","T-S6S11RAFG2","","","","","","elyasasidek@gmail.com","PayPal","elyasa0201#0" +"01/14/2026 14:58","Tedz ","Thank you Bro","Ko-fi Support","5.00","0","USD","Tip","a7f04654-8f37-4f74-98af-c97b4978c20a","T-R6R61SA5CK","","","","","","long_and_wide@yahoo.com","PayPal","" +"01/16/2026 21:34","Ko-fi Supporter","Appreciate you","Ko-fi Support","15.00","0","USD","Tip","236ecb15-ce1e-4a74-bb71-96a34b7994a7","T-M4M41SF6NB","","","","","","maingikenny@gmail.com","PayPal","Not connected" +"01/18/2026 11:16","Sovilor","","Ko-fi Support","5.00","0","USD","Tip","31d645b5-3098-465a-94f5-40f83d73adb7","T-S6S51SIYXB","","","","","","sovilor@gmail.com","PayPal","Not connected" diff --git a/assets/lottie/ranking/bronze.json b/assets/lottie/ranking/bronze.json new file mode 100644 index 00000000..db4b66f0 --- /dev/null +++ b/assets/lottie/ranking/bronze.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.0.2","a":"","k":"","d":"","tc":""},"fr":24,"ip":0,"op":145,"w":1000,"h":591,"nm":"Comp 6","ddd":0,"assets":[{"id":"image_0","w":62,"h":84,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":485,"h":496,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":485,"h":501,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":311,"h":388,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_4","w":311,"h":388,"u":"","p":"data:image/png;base64,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","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":1,"nm":"Auto-traced Electric 02.mov","cl":"mov","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2048,1152,0],"ix":2},"a":{"a":0,"k":[2048,1152,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-1.383,-0.395],[0.453,0.88],[0.514,0.853],[0.573,0.82],[0.631,0.781],[0.686,0.735],[0.74,0.683],[0.792,0.625],[0.842,0.56],[0.89,0.489],[0.936,0.411],[0.981,0.327],[1.024,0.237],[1.065,0.14],[1.104,0.037],[1.142,-0.072],[-0.759,-1.502],[-1.071,-1.263],[-1.317,-1.054],[-1.495,-0.872],[-1.607,-0.72],[-1.651,-0.596],[-1.629,-0.5],[-1.539,-0.433]],"o":[[-0.391,-0.9],[-0.453,-0.88],[-0.514,-0.853],[-0.573,-0.82],[-0.631,-0.781],[-0.686,-0.735],[-0.74,-0.683],[-0.792,-0.625],[-0.842,-0.56],[-0.89,-0.489],[-0.936,-0.411],[-0.981,-0.327],[-1.024,-0.237],[-1.065,-0.14],[-1.104,-0.037],[0.38,1.768],[0.759,1.502],[1.071,1.263],[1.317,1.054],[1.495,0.872],[1.607,0.72],[1.651,0.596],[1.629,0.5],[1.539,0.433]],"v":[[1972,828],[1970.733,825.328],[1969.282,822.726],[1967.65,820.214],[1965.843,817.811],[1963.867,815.535],[1961.728,813.407],[1959.43,811.444],[1956.98,809.666],[1954.381,808.092],[1951.641,806.741],[1948.765,805.633],[1945.757,804.785],[1942.623,804.218],[1939.369,803.95],[1936,804],[1937.726,808.898],[1940.488,813.038],[1944.087,816.506],[1948.322,819.388],[1952.991,821.769],[1957.894,823.735],[1962.83,825.372],[1967.599,826.765]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-0.943,4.806],[0.289,0.253],[0.318,0.224],[0.354,0.188],[0.397,0.144],[0.448,0.094],[0.506,0.036],[0.571,-0.029],[0.643,-0.101],[3.769,-2.565],[3.657,-2.676],[3.06,-3.274],[1.977,-4.356],[-5.238,-4.762],[-5.376,-4.624],[-5.7,-4.3],[-6.21,-3.79],[4.081,4.586],[4.916,3.751],[4.752,3.915],[3.59,5.077],[-3.472,2.278],[-3.492,2.258],[-2.649,3.101]],"o":[[-0.267,-0.274],[-0.289,-0.253],[-0.318,-0.224],[-0.354,-0.188],[-0.397,-0.144],[-0.448,-0.094],[-0.506,-0.036],[-0.571,0.029],[-3.396,2.938],[-3.769,2.565],[-3.657,2.676],[-3.06,3.274],[5.286,4.714],[5.238,4.762],[5.376,4.624],[5.7,4.3],[-2.247,-6.42],[-4.081,-4.586],[-4.916,-3.751],[-4.752,-3.915],[2.589,-3.161],[3.472,-2.278],[3.492,-2.258],[2.649,-3.101]],"v":[[1947,739],[1946.167,738.208],[1945.258,737.492],[1944.252,736.873],[1943.126,736.373],[1941.86,736.015],[1940.432,735.818],[1938.819,735.806],[1937,736],[1926.132,744.132],[1914.872,751.873],[1904.676,760.676],[1897,772],[1912.74,786.26],[1928.614,800.386],[1945.181,813.819],[1963,826],[1953.259,809.741],[1939.514,797.486],[1924.762,786.238],[1912,773],[1921.307,765.057],[1931.969,758.469],[1941.396,750.646]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-3.262,9.405],[1.246,0.723],[1.49,0.406],[1.624,-0.02],[1.647,-0.554],[3.467,-3.95],[3.322,-4.095],[3.069,-4.348],[2.709,-4.708],[-12.296,-9.37],[-8.366,-13.301],[7.134,-6.532],[3.362,-10.304],[-4.636,-4.53],[-3.957,-5.209],[-4.915,-4.668],[-6.392,-0.61],[7.47,7.863],[5.322,10.012],[-7.683,7.651],[-3.885,11.449],[11.694,9.139],[8.097,12.736],[-5.649,7.017]],"o":[[-0.891,-0.931],[-1.246,-0.723],[-1.49,-0.406],[-1.624,0.02],[-3.505,3.912],[-3.467,3.95],[-3.322,4.095],[-3.069,4.348],[7.448,14.218],[12.296,9.37],[-5.101,8.566],[-7.134,6.532],[2.497,6.669],[4.636,4.53],[4.948,3.72],[4.915,4.668],[-3.798,-11.535],[-7.47,-7.863],[8.385,-6.948],[7.683,-7.651],[-8.127,-12.707],[-11.694,-9.139],[5.14,-7.526],[5.649,-7.017]],"v":[[1931,611],[1927.766,608.492],[1923.633,606.772],[1918.934,606.166],[1914,607],[1903.516,618.766],[1893.307,630.806],[1883.694,643.444],[1875,657],[1906.812,690.188],[1940,722],[1920.196,743.196],[1903,767],[1914.405,783.095],[1928,797],[1942.417,810.832],[1959,820],[1940.643,792.357],[1920,767],[1944.875,745.875],[1963,718],[1931.477,687.022],[1900,656],[1916.909,634.909]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-10.003,27.331],[3.489,0.844],[4.604,-0.27],[5.246,-4.802],[6.952,-6.024],[5.301,-5.701],[0.385,-5.377],[-5.998,-5.264],[-4.644,-4.1],[-4.064,-4.102],[-4.4,-3.757],[-4.112,-4.162],[-2.037,-5.495],[6.297,-9.537],[4.223,-11.611],[-14.915,-26.085],[7.375,-18.625],[-8.133,-10.819],[-13.461,-5.501],[9.434,21.899],[-6.943,22.057],[12.724,26.276],[-2.417,29.249],[17.636,33.364]],"o":[[-1.44,-2.894],[-3.489,-0.844],[-5.063,4.77],[-5.246,4.801],[-4.409,3.821],[-5.301,5.701],[-0.634,8.842],[5.998,5.264],[4.343,3.834],[4.064,4.102],[4.516,3.856],[4.112,4.162],[-2.591,13.243],[-6.297,9.537],[15.91,25.09],[-8.351,17.649],[4.902,13.158],[8.022,10.671],[-3.239,-28.095],[11.71,-17.29],[-12.555,-26.445],[7.634,-24.033],[-19.006,-31.994],[12.852,-24.481]],"v":[[1914,454],[1906.373,448.627],[1894,448],[1878.916,462.06],[1861,478],[1844.982,492.833],[1835,510],[1845.042,530.556],[1863,544],[1875.457,556.058],[1888,568],[1901.359,579.77],[1911,594],[1896.224,626.724],[1879,657],[1940,719],[1905,762],[1928,796],[1956,826],[1923,765],[1962,717],[1906,656],[1936,591],[1861,513]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-14.941,27.726],[18.528,12.721],[17.41,13.93],[7.536,-2.337],[0.81,-0.19],[-6.623,-7.765],[-8.76,-7.24],[-12.632,-19.035],[4.783,-6.884],[3.294,-6.372],[4.307,-14.693],[-14.061,-11.654],[-7.695,-18.182],[4.377,-15.29],[2.494,-8.173],[-12.888,-25.445],[0.496,-17.9],[-6.811,-11.131],[-15.607,-3.393],[6.73,23.936],[-7.15,20.516],[14.557,20.777],[-0.401,35.933],[18.767,28.566]],"o":[[-11.876,-20.216],[-19.171,-13.163],[-6.883,-1.502],[-1.003,-0.003],[-1.081,12.155],[10.328,5.672],[17.028,14.639],[-4.871,6.795],[-3.896,5.771],[-7.846,11.154],[6.382,19.093],[14.125,11.707],[1.092,20.759],[-6.652,4.015],[3.649,34.684],[-5.475,16.028],[-0.382,13.773],[9.572,9.428],[-1.385,-29.281],[7.98,-19.687],[-15.332,-20.001],[16.533,-19.8],[-18.104,-29.229],[23.787,-18.88]],"v":[[1920,445],[1866,404],[1813,362],[1790,359],[1788,360],[1807,386],[1835,406],[1889,447],[1872,465],[1862,484],[1832,511],[1870,551],[1906,593],[1896,642],[1881,659],[1934,721],[1903,760],[1924,796],[1953,824],[1922,763],[1959,717],[1903,667],[1931,586],[1861,514]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-11.054,15.612],[5.703,0.131],[5.765,0.068],[8.838,-4.829],[4.958,-8.709],[-9.416,-7.25],[-9.922,-6.745],[-9.858,-6.975],[-6.334,-10.499],[10.354,-11.146],[6.46,-15.04],[-6.869,-5.204],[-7.687,-5.802],[-7.199,-6.461],[-0.927,-8.419],[5.911,-13.642],[-8.114,-13.554],[-2.901,7.273],[-2.545,7.084],[-3.071,7.436],[-0.028,8.775],[21.371,25.962],[-15.625,29.041],[29.351,34.649]],"o":[[-4.423,-1.409],[-5.703,-0.13],[-6.691,6.976],[-8.838,4.829],[8.412,8.254],[9.416,7.25],[9.233,7.6],[9.858,6.975],[-8.125,13.375],[-10.354,11.146],[4.839,7.383],[6.869,5.204],[6.276,4.737],[7.199,6.461],[1.528,13.88],[-5.911,13.641],[6.852,-3.825],[2.901,-7.273],[2.688,-7.479],[3.071,-7.436],[-14.406,-32.927],[19.425,-25.242],[-26.055,-37.945],[13.011,-13.656]],"v":[[1863,320],[1847.506,317.994],[1830,318],[1805.201,334.2],[1783,353],[1809.868,376.132],[1839,397],[1868.674,417.826],[1894,443],[1864.751,478.252],[1838,516],[1855.864,534.186],[1878,550],[1900.012,566.738],[1914,589],[1902.061,630.244],[1900,671],[1913.73,653.444],[1921,631],[1930.495,608.972],[1936,585],[1863,516],[1923,442],[1818,355]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[0.667,0],[7.755,-9.994],[11.035,-6.706],[7.554,-2.861],[7.436,-2.7],[22.17,-8.817],[19.896,-12.228],[8.693,-13.641],[2.925,-19.408],[14.499,-6.167],[7.385,-13.282],[-8.924,4.744],[-8.395,4.253],[-7.972,5.211],[-5.576,7.832],[-0.27,2.73],[-0.192,2.808],[-6.792,11.74],[-10.832,6.417],[-6.919,2.748],[-6.771,2.717],[-38.284,17.087],[-8.806,8.86],[3.821,12.7]],"o":[[-12.944,5.318],[-7.755,9.994],[-6.349,3.858],[-7.554,2.861],[-23.423,8.505],[-22.17,8.817],[-9.303,13.029],[-8.693,13.641],[-10.618,10.049],[-14.499,6.167],[11.91,0.229],[8.924,-4.744],[8.535,-4.323],[7.972,-5.211],[-0.271,-3.27],[0.27,-2.73],[6.998,-10.621],[6.792,-11.74],[5.554,-3.29],[6.919,-2.748],[41.153,-16.519],[10.243,-7.423],[3.882,-11.608],[-0.667,0]],"v":[[3007,302],[2978.068,326.959],[2952,354],[2930.816,363.869],[2908,372],[2839.354,397.207],[2776,428],[2747.716,466.716],[2729,515],[2688.576,536.575],[2653,563],[2683.636,554.861],[2709,540],[2734.219,526.132],[2755,507],[2755.153,498.153],[2756,490],[2775.624,454.846],[2801,426],[2820.088,417.071],[2841,409],[2964,360],[2991,334],[3009,302]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[2.938,-0.4],[0.167,0],[0.167,0],[12.017,-3.962],[13.221,-3.793],[12.61,-2.252],[10.029,-5.399],[6.477,-8.185],[5.575,-7.674],[6.439,-7.808],[8.051,-6.246],[26.355,-9.479],[22.794,-13.04],[3.977,-5.523],[0.745,-8.755],[-3.778,5.888],[-4.726,4.941],[-27.689,9.311],[-25.745,11.255],[-12.608,16.058],[-16.552,12.115],[-22.208,6.458],[-19.121,9.546],[-0.718,1.331]],"o":[[-0.167,0],[-0.167,0],[-11.709,2.361],[-12.017,3.962],[-12.53,3.594],[-12.61,2.252],[-8.519,4.586],[-6.476,8.185],[-6.191,8.522],[-6.439,7.808],[-25.788,10.046],[-26.354,9.478],[-4.348,5.151],[-3.977,5.524],[8.161,-1.505],[3.778,-5.888],[24.497,-12.502],[27.689,-9.311],[16.014,-12.653],[12.608,-16.058],[22.046,-6.621],[22.208,-6.458],[0.065,-1.076],[0.718,-1.331]],"v":[[3171,225],[3170.5,225],[3170,225],[3134.634,234.926],[3097,247],[3058.625,254.647],[3024,265],[3001.793,285.183],[2984,310],[2965.395,334.707],[2944,356],[2864.755,384.255],[2790,417],[2776.798,432.298],[2769,453],[2785.577,440.577],[2797,423],[2876.564,391.564],[2958,362],[2999.097,317.096],[3041,273],[3108.194,254.193],[3171,231],[3173.253,226.893]],"c":true}],"h":1},{"t":8,"s":[{"i":[[0.583,0],[3.118,-2.548],[2.583,-3.084],[2.798,-2.869],[3.765,-1.902],[18.159,-4.008],[16.978,-5.189],[12.831,-9.336],[5.716,-16.451],[-4.531,2.302],[-2.976,3.857],[-2.707,4.126],[-3.723,3.11],[-13.498,3.502],[-14.103,2.833],[-12.804,4.164],[-9.601,7.498],[-2.132,2.435],[-1.862,2.682],[-1.799,2.781],[-1.943,2.732],[0.583,0],[0.583,0],[0.583,0]],"o":[[-4.405,1.262],[-3.118,2.548],[-2.583,3.084],[-2.798,2.869],[-16.371,5.795],[-18.159,4.008],[-16.978,5.189],[-12.831,9.336],[7.372,0.538],[4.531,-2.302],[2.976,-3.857],[2.707,-4.126],[10.988,-6.172],[13.498,-3.502],[14.103,-2.833],[12.804,-4.164],[2.61,-2.039],[2.132,-2.435],[1.862,-2.682],[1.799,-2.781],[-0.583,0],[-0.583,0],[-0.583,0],[-0.583,0]],"v":[[3197,196],[3185.903,201.903],[3177.54,210.54],[3169.656,219.656],[3160,227],[3107.463,240.963],[3054.016,254.016],[3008.561,275.061],[2980,313],[2997.533,310.033],[3008.473,300.473],[3016.676,288.176],[3026,277],[3063.204,262.989],[3105.081,253.988],[3145.917,243.993],[3180,227],[3187.062,220.253],[3193.001,212.54],[3198.439,204.308],[3204,196],[3202.25,196],[3200.5,196],[3198.75,196]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-1.454,2.712],[0.974,-0.069],[1.054,-0.169],[1.112,-0.241],[1.146,-0.284],[1.156,-0.299],[1.143,-0.286],[1.107,-0.244],[1.048,-0.174],[0.973,-1.902],[1.148,-1.727],[1.301,-1.574],[1.433,-1.442],[1.543,-1.332],[1.631,-1.244],[1.697,-1.178],[1.742,-1.133],[-3.475,0.691],[-3.051,1.116],[-2.672,1.495],[-2.338,1.829],[-2.049,2.118],[-1.806,2.361],[-1.607,2.559]],"o":[[-0.87,-0.06],[-0.974,0.069],[-1.054,0.169],[-1.112,0.241],[-1.146,0.284],[-1.156,0.299],[-1.143,0.286],[-1.107,0.244],[-0.776,2.099],[-0.973,1.902],[-1.148,1.727],[-1.301,1.574],[-1.433,1.442],[-1.543,1.332],[-1.631,1.244],[-1.697,1.178],[3.945,-0.222],[3.475,-0.691],[3.051,-1.116],[2.672,-1.495],[2.338,-1.829],[2.049,-2.118],[1.806,-2.361],[1.607,-2.559]],"v":[[3207,195],[3204.228,195.02],[3201.18,195.383],[3197.925,196.004],[3194.533,196.798],[3191.075,197.679],[3187.62,198.564],[3184.238,199.366],[3181,200],[3178.37,205.995],[3175.183,211.433],[3171.503,216.378],[3167.396,220.896],[3162.927,225.052],[3158.162,228.912],[3153.164,232.539],[3148,236],[3159.119,234.619],[3168.896,231.896],[3177.469,227.969],[3184.972,222.972],[3191.54,217.04],[3197.311,210.311],[3202.419,202.919]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[1.589,3.994],[0.687,0.02],[0.623,-0.044],[0.567,-0.1],[0.519,-0.147],[0.48,-0.186],[0.45,-0.217],[0.427,-0.24],[0.413,-0.254],[-1.692,-3.892],[-2.155,-3.429],[-2.261,-3.322],[-2.01,-3.573],[0.629,-0.204],[0.666,-0.167],[0.454,-0.379],[-0.007,-0.841],[-2.198,-0.139],[-2.056,0.815],[-1.33,1.547],[-0.021,2.057],[2.096,3.488],[2.147,3.437],[1.978,3.605]],"o":[[-0.759,-0.092],[-0.687,-0.02],[-0.623,0.044],[-0.567,0.1],[-0.519,0.147],[-0.48,0.186],[-0.45,0.217],[-0.427,0.24],[0.871,4.712],[1.692,3.892],[2.155,3.429],[2.261,3.322],[-0.342,0.491],[-0.629,0.204],[-0.666,0.167],[-0.454,0.379],[1.756,1.315],[2.198,0.139],[2.056,-0.815],[1.33,-1.547],[-1.824,-3.759],[-2.096,-3.488],[-2.147,-3.437],[-1.978,-3.605]],"v":[[2319,436],[2316.833,435.833],[2314.871,435.871],[2313.089,436.089],[2311.462,436.462],[2309.964,436.964],[2308.572,437.571],[2307.258,438.258],[2306,439],[2309.933,451.817],[2315.792,462.708],[2322.505,472.745],[2329,483],[2327.48,483.98],[2325.475,484.475],[2323.732,485.232],[2323,487],[2329.077,489.127],[2335.602,488.058],[2340.827,484.461],[2343,479],[2337.065,468.185],[2330.647,457.853],[2324.405,447.345]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[1.648,0.019],[-0.736,-0.531],[-0.725,-0.542],[-0.722,-0.545],[-0.726,-0.541],[-0.737,-0.529],[-0.756,-0.511],[-0.782,-0.485],[-0.816,-0.451],[-0.856,-0.41],[-0.904,-0.362],[-0.96,-0.307],[-1.023,-0.244],[-1.093,-0.174],[-1.17,-0.097],[-1.255,-0.012],[0.996,1.153],[1.204,1.019],[1.376,0.883],[1.512,0.744],[1.612,0.603],[1.675,0.46],[1.703,0.315],[1.694,0.168]],"o":[[0.754,0.513],[0.736,0.531],[0.725,0.542],[0.722,0.545],[0.726,0.541],[0.737,0.529],[0.756,0.511],[0.782,0.485],[0.816,0.451],[0.856,0.41],[0.904,0.362],[0.96,0.307],[1.023,0.244],[1.093,0.174],[1.17,0.097],[-0.752,-1.286],[-0.996,-1.153],[-1.204,-1.019],[-1.376,-0.883],[-1.512,-0.744],[-1.612,-0.603],[-1.675,-0.46],[-1.703,-0.315],[-1.694,-0.168]],"v":[[600,257],[602.232,258.568],[604.421,260.179],[606.59,261.81],[608.76,263.44],[610.952,265.048],[613.191,266.609],[615.496,268.104],[617.891,269.509],[620.396,270.804],[623.036,271.964],[625.83,272.97],[628.802,273.798],[631.972,274.428],[635.365,274.835],[639,275],[636.369,271.341],[633.059,268.082],[629.179,265.228],[624.837,262.788],[620.141,260.766],[615.201,259.17],[610.125,258.006],[605.022,257.281]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[0.006,1.34],[0.708,0.27],[0.757,0.108],[0.773,-0.037],[0.755,-0.167],[0.705,-0.281],[0.621,-0.379],[0.504,-0.462],[0.353,-0.528],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[-0.89,-0.527],[-1.033,-0.384],[-1.252,-0.165],[-1.546,0.13],[-0.324,1.01],[-0.323,1.011],[-0.213,1.121]],"o":[[-0.625,-0.447],[-0.708,-0.27],[-0.757,-0.108],[-0.773,0.037],[-0.755,0.167],[-0.705,0.281],[-0.621,0.379],[-0.504,0.462],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0.822,0.595],[0.89,0.527],[1.033,0.384],[1.252,0.165],[0.216,-1.117],[0.324,-1.01],[0.322,-1.011],[0.213,-1.121]],"v":[[2374,418],[2371.992,416.928],[2369.787,416.365],[2367.484,416.262],[2365.184,416.573],[2362.985,417.25],[2360.988,418.245],[2359.293,419.511],[2358,421],[2358,421.75],[2358,422.5],[2358,423.25],[2358,424],[2358,424.75],[2358,425.5],[2358,426.25],[2358,427],[2360.548,428.702],[2363.413,430.087],[2366.822,430.928],[2371,431],[2371.837,427.837],[2372.833,424.833],[2373.663,421.663]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[2.273,1.146],[0.352,-0.065],[0.282,-0.135],[0.238,-0.178],[0.221,-0.196],[0.23,-0.186],[0.266,-0.15],[0.328,-0.088],[0.417,0],[-0.475,-2.658],[-0.746,-2.388],[-1.053,-2.08],[-1.398,-1.736],[-1.779,-1.354],[-0.254,3.558],[0.573,3.492],[1.415,2.688]],"o":[[-0.448,-0.032],[-0.352,0.065],[-0.282,0.135],[-0.238,0.178],[-0.221,0.196],[-0.23,0.186],[-0.266,0.15],[-0.328,0.088],[0.241,2.892],[0.475,2.658],[0.746,2.388],[1.053,2.08],[1.398,1.736],[1.066,-2.886],[0.254,-3.558],[-0.573,-3.492],[-1.415,-2.688]],"v":[[2357,881],[2355.806,881.056],[2354.863,881.362],[2354.089,881.839],[2353.406,882.406],[2352.735,882.985],[2351.997,883.497],[2351.111,883.862],[2350,884],[2351.065,892.335],[2352.887,899.913],[2355.576,906.624],[2359.244,912.356],[2364,917],[2365.983,907.15],[2365.508,896.39],[2362.529,886.936]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-1.777,4.973],[4.648,-0.543],[4.286,-1.222],[4.086,-1.552],[4.045,-1.532],[4.166,-1.162],[-0.288,-6.295],[-0.649,-5.934],[-0.786,-5.797],[-0.7,-5.883],[-0.896,4.995],[0.653,5.94],[0.847,5.975],[-0.313,5.1],[-5.458,1.292],[-5.538,1.212],[-4.311,2.439]],"o":[[-5.17,-0.486],[-4.648,0.543],[-4.286,1.222],[-4.086,1.552],[-4.045,1.532],[-0.296,6.88],[0.288,6.295],[0.649,5.934],[0.786,5.797],[3.798,-3.139],[0.896,-4.995],[-0.653,-5.94],[-0.847,-5.975],[4.072,-2.678],[5.458,-1.292],[5.538,-1.212],[4.311,-2.439]],"v":[[2415,822],[2400.312,822.173],[2386.951,824.909],[2374.433,829.158],[2362.277,833.872],[2350,838],[2350.044,857.707],[2351.506,875.995],[2353.715,893.536],[2356,911],[2362.702,898.572],[2362.728,881.942],[2360.14,863.841],[2359,847],[2373.622,841.372],[2390.443,837.943],[2405.542,832.792]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-5.31,15.048],[1.896,0.437],[2.687,-0.354],[13.749,-7.085],[12.591,-8.241],[0.905,-11.928],[1.217,-11.616],[12.806,-4.694],[9.811,-7.689],[0.192,-11.838],[-2.425,-9.721],[-1.093,11.074],[-1.517,10.649],[-14.208,5.959],[-8.235,11.931],[-2.093,21.574],[-13.601,6.564]],"o":[[-1.729,-0.604],[-1.896,-0.437],[-14.413,6.42],[-13.749,7.085],[-2.162,10.671],[-0.905,11.928],[-9.966,7.534],[-12.806,4.694],[-1.657,9.929],[-0.192,11.838],[6.112,-6.054],[1.093,-11.074],[14.932,-5.234],[14.208,-5.959],[-0.328,-23.995],[12.028,-6.484],[13.005,-6.277]],"v":[[2529,693],[2523.719,691.281],[2517,691],[2474.634,711.134],[2435,734],[2430.792,768.291],[2428,804],[2392.383,820.883],[2357,838],[2353.939,871.656],[2357,905],[2366.446,877.946],[2369,844],[2414.023,828.523],[2449,803],[2455,738],[2493,717]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-5.224,23.065],[1.808,-0.183],[0.881,-0.416],[23.588,-9.875],[17.297,-13.429],[5.526,-14.141],[5.559,-14.109],[27.775,-25.558],[3.247,-20.42],[17.367,-17.967],[0.154,-27.846],[-6.575,22.425],[-16.359,22.641],[-3.404,20.596],[-28.101,25.899],[-19.263,23.404],[-21.518,9.887]],"o":[[-1.887,-0.149],[-1.808,0.183],[-21.35,10.072],[-23.588,9.875],[-6.338,13.328],[-5.526,14.141],[-29.73,23.603],[-3.243,20.424],[-15.132,20.202],[-6.146,21.854],[17.967,-11.033],[23.433,-15.567],[3.322,-20.678],[30.779,-23.221],[13.434,-29.233],[18.39,-9.75],[20.437,-9.391]],"v":[[2715,527],[2709.245,527.076],[2705,528],[2635.461,556.983],[2572,591],[2554.415,632.415],[2538,675],[2439,736],[2431,799],[2362,836],[2350,908],[2373,844],[2449,803],[2458,740],[2557,677],[2597,589],[2660,561]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-5.483,18.85],[2.595,-1.202],[20.54,-29.212],[48.366,-14.967],[19.081,-25.585],[17.718,-14.949],[12.156,-16.51],[0.687,-18.313],[14.602,-18.731],[-0.273,-27.94],[-5.502,22.499],[-14.837,23.163],[-5.305,15.932],[-29.925,34.741],[-19.109,16.891],[-38.776,33.89],[-8.276,16.057]],"o":[[-5.167,-1.913],[-34.936,16.187],[-43.469,19.864],[-23.78,20.886],[-16.572,16.095],[-18.351,10.316],[-3.298,15.702],[-13.056,20.277],[-8.485,19.182],[17.89,-6.778],[21.172,-16.829],[-1.035,-19.506],[45.013,-19.653],[11.842,-24.159],[49.92,-22.746],[7.594,-16.739],[10.173,-14.16]],"v":[[2795,423],[2781,423],[2714,522],[2582,580],[2538,670],[2483,713],[2429,745],[2425,798],[2361,834],[2349,905],[2372,842],[2446,802],[2450,744],[2564,664],[2598,590],[2742,516],[2765,466]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-1.026,7.114],[0.563,0.205],[1.57,-0.555],[27.483,-11.017],[28.513,-9.988],[10.704,-17.796],[11.983,-16.517],[26.291,-11.042],[20.677,-16.657],[11.636,-19.202],[18.268,-13.509],[8.855,-22.077],[-38.794,25.539],[-9.988,27.678],[-42.984,30.682],[-30.444,26.223],[-39.702,22.297]],"o":[[-1.179,-0.734],[-0.563,-0.205],[-27.555,10.945],[-27.483,11.017],[-13.202,15.298],[-10.704,17.796],[-22.158,15.176],[-26.291,11.042],[-12.251,21.671],[-11.499,18.975],[-19.663,14.54],[43.234,-21.1],[14.576,-23.091],[49.701,-23.966],[25.515,-31.152],[46.002,-16.983],[5.275,-2.962]],"v":[[2962,350],[2959.793,348.533],[2957,349],[2874.718,382.218],[2791,414],[2756.086,464.586],[2723,517],[2647.889,553.889],[2575,593],[2552,661],[2497,704],[2445,749],[2562,673],[2594,592],[2743,520],[2812,419],[2947,363]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-4.645,8.948],[3.386,0.281],[3.68,-0.013],[3.619,0.047],[8.003,-5.664],[3.867,-9.799],[-10.457,-8.537],[-11.396,-7.738],[-8.707,-4.496],[-6.167,-7.58],[4.369,-5.631],[2.167,-7.833],[-8.254,11.032],[-1.734,12.101],[18.503,10.997],[11.635,17.865],[-8.552,5.512]],"o":[[-2.738,-0.929],[-3.386,-0.281],[-3.68,0.013],[-7.121,6.545],[-8.003,5.664],[6.775,12.115],[10.457,8.537],[8.004,5.435],[8.707,4.496],[-3.359,6.641],[-4.369,5.631],[13.251,10.228],[8.254,-11.032],[-18.352,-11.149],[-18.503,-10.996],[5.146,-9.003],[8.552,-5.512]],"v":[[1863,320],[1853.726,318.274],[1843.038,317.962],[1832,318],[1808.059,335.059],[1789,357],[1815.534,387.283],[1849,411],[1874.878,424.891],[1898,442],[1885.606,459.606],[1875,479],[1907.638,472.746],[1923,433],[1865.962,401.538],[1819,360],[1841.376,339.959]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-9.67,4.829],[3.262,0.154],[3.438,-0.021],[3.457,-0.04],[3.32,0.097],[3.018,-2.482],[2.585,-2.915],[2.024,-3.476],[1.336,-4.164],[-3.397,-3.27],[-4.176,-2.49],[-4.691,-1.976],[-4.941,-1.726],[3.349,2.651],[3.693,2.307],[1.508,4.492],[-8.31,6.19]],"o":[[-2.93,-0.486],[-3.262,-0.154],[-3.438,0.021],[-3.457,0.04],[-3.323,2.177],[-3.018,2.482],[-2.585,2.915],[-2.024,3.476],[2.353,4.313],[3.397,3.27],[4.176,2.49],[4.691,1.976],[-0.476,-5.524],[-3.349,-2.651],[-3.693,-2.307],[5.088,-9.412],[8.31,-6.19]],"v":[[1857,319],[1847.672,318.078],[1837.583,317.917],[1827.203,318.047],[1817,318],[1807.456,324.956],[1799.019,333.019],[1792.072,342.572],[1787,354],[1795.691,365.308],[1807.118,373.882],[1820.485,380.515],[1835,386],[1828.629,374.371],[1817.433,367.567],[1809,358],[1829.564,335.063]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-8.127,0.461],[3.302,2.781],[4.725,1.358],[5.311,0.773],[5.058,1.025],[14.064,15.047],[17.045,12.066],[27.141,1.97],[0.273,-0.227],[0.405,-0.095],[0,-0.5],[0,-0.5],[-8.101,-2.566],[-8.863,-1.803],[-19.441,-17.726],[-22.977,-14.19],[-6.119,-1.548]],"o":[[-1.041,-5.042],[-3.302,-2.781],[-4.725,-1.358],[-5.311,-0.773],[-18.197,-10.914],[-14.064,-15.047],[-17.045,-12.066],[-0.502,-0.001],[-0.273,0.227],[0,0.5],[0,0.5],[6.733,3.935],[8.101,2.565],[19.26,17.907],[19.441,17.726],[7.399,0.268],[6.119,1.548]],"v":[[956,463],[949.276,451.474],[937.025,445.474],[921.762,442.488],[906,440],[859.386,399.28],[814.501,356.832],[750,334],[748.928,334.428],[748,335],[748,336.5],[748,338],[770.402,347.598],[796,354],[853.212,408.288],[916,457],[935.454,460.546]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[9.354,2.848],[-6.126,-3.341],[-7.303,-2.163],[-8.039,-1.427],[-8.334,-1.133],[-8.187,-1.28],[-1.32,-1.097],[-1.37,-1.047],[-1.615,-0.801],[-2.056,-0.361],[0.456,1.071],[0.898,0.905],[0.993,0.757],[0.742,0.625],[9.499,3.272],[10.848,1.989],[10.8,1.848]],"o":[[4.507,4.96],[6.126,3.341],[7.303,2.163],[8.039,1.427],[8.334,1.133],[1.464,0.952],[1.32,1.097],[1.37,1.047],[1.615,0.801],[0.334,-1.254],[-0.456,-1.071],[-0.898,-0.905],[-0.993,-0.757],[-6.753,-5.696],[-9.499,-3.272],[-10.848,-1.989],[-10.8,-1.848]],"v":[[687,320],[703.059,332.341],[723.313,340.487],[746.438,345.762],[771.108,349.492],[796,353],[800.127,356.123],[804.113,359.387],[808.542,362.208],[814,364],[813.731,360.518],[811.613,357.558],[808.689,355.069],[806,353],[781.273,339.834],[750.403,332.228],[717.581,326.758]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-0.092,-0.426],[-6.192,-2.474],[-7.092,-1.575],[-7.354,-1.313],[-6.977,-1.689],[-0.968,-0.856],[-0.913,-0.866],[-1.113,-0.327],[-1.569,0.762],[2.705,2.39],[3.934,1.297],[4.387,0.758],[4.065,0.773],[5.996,1.456],[5.632,1.264],[4.677,0.521],[0.197,-0.137]],"o":[[4.655,4.012],[6.192,2.474],[7.092,1.575],[7.354,1.313],[1.278,0.297],[0.968,0.856],[0.913,0.866],[1.113,0.327],[-0.7,-4.037],[-2.705,-2.39],[-3.934,-1.297],[-4.387,-0.758],[-5.771,-1.097],[-5.996,-1.456],[-5.632,-1.264],[-0.305,0.029],[-0.197,0.136]],"v":[[1393,515],[1409.43,524.57],[1429.515,530.485],[1451.344,534.656],[1473,539],[1476.306,540.868],[1479.064,543.589],[1482.041,545.516],[1486,545],[1480.698,535.497],[1470.547,530.104],[1457.872,527.158],[1445,525],[1427.201,521.032],[1409.611,516.815],[1394,514],[1393.202,514.202]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-3.816,3.279],[1.697,-0.095],[1.555,-0.237],[1.439,-0.353],[1.348,-0.443],[1.283,-0.508],[1.244,-0.548],[1.231,-0.561],[1.243,-0.549],[2.398,-0.535],[2.342,-0.591],[2.065,-0.868],[1.565,-1.368],[0.843,-2.09],[-6.082,1.032],[-5.346,2.189],[-4.591,2.938]],"o":[[-1.865,-0.073],[-1.697,0.095],[-1.555,0.237],[-1.439,0.353],[-1.348,0.444],[-1.283,0.508],[-1.244,0.548],[-1.231,0.561],[-2.231,0.702],[-2.398,0.535],[-2.342,0.591],[-2.065,0.868],[-1.565,1.368],[6.799,0.534],[6.082,-1.032],[5.346,-2.189],[4.591,-2.938]],"v":[[2370,426],[2364.664,426.039],[2359.792,426.543],[2355.308,427.434],[2351.134,428.635],[2347.194,430.069],[2343.409,431.659],[2339.704,433.329],[2336,435],[2329.001,436.801],[2321.835,438.435],[2315.168,440.568],[2309.668,443.867],[2306,449],[2325.327,448.152],[2342.474,443.219],[2357.385,435.427]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[1.209,0.249],[-0.349,-1.038],[-0.659,-0.856],[-0.902,-0.67],[-1.081,-0.48],[-1.195,-0.286],[-1.243,-0.088],[-1.226,0.113],[-1.144,0.319],[-0.996,0.528],[0.917,0.542],[0.958,0.5],[1,0.459],[1.041,0.417],[1.083,0.375],[1.125,0.333],[1.167,0.291]],"o":[[-0.025,1.217],[0.349,1.038],[0.659,0.856],[0.902,0.67],[1.081,0.48],[1.195,0.286],[1.243,0.088],[1.226,-0.113],[1.144,-0.319],[-0.875,-0.583],[-0.917,-0.542],[-0.958,-0.5],[-1,-0.459],[-1.041,-0.417],[-1.083,-0.375],[-1.125,-0.333],[-1.167,-0.291]],"v":[[1373,479],[1373.503,482.384],[1375.031,485.227],[1377.389,487.516],[1380.381,489.242],[1383.811,490.391],[1387.483,490.953],[1391.203,490.916],[1394.774,490.269],[1398,489],[1395.312,487.312],[1392.5,485.75],[1389.563,484.311],[1386.502,482.998],[1383.315,481.81],[1380.002,480.748],[1376.564,479.811]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-1.407,1.489],[1.52,0.327],[1.585,0.102],[1.62,-0.076],[1.624,-0.208],[1.597,-0.293],[1.539,-0.331],[1.45,-0.323],[1.331,-0.268],[-0.02,-0.48],[-0.089,-0.411],[-0.14,-0.36],[-0.173,-0.327],[-0.188,-0.312],[-0.185,-0.315],[-0.163,-0.337],[-0.124,-0.376],[-2.723,0.063],[-2.461,0.663],[-2.154,1.101],[-1.803,1.376]],"o":[[-1.423,-0.599],[-1.52,-0.327],[-1.585,-0.102],[-1.62,0.076],[-1.624,0.208],[-1.597,0.293],[-1.539,0.331],[-1.45,0.323],[-0.067,0.567],[0.02,0.48],[0.089,0.411],[0.14,0.36],[0.173,0.327],[0.188,0.312],[0.185,0.315],[0.163,0.337],[2.94,0.699],[2.723,-0.063],[2.461,-0.663],[2.154,-1.101],[1.803,-1.376]],"v":[[1745,889],[1740.578,887.623],[1735.913,886.991],[1731.097,886.964],[1726.223,887.401],[1721.384,888.163],[1716.672,889.111],[1712.18,890.103],[1708,891],[1707.934,892.566],[1708.103,893.897],[1708.452,895.048],[1708.927,896.073],[1709.474,897.026],[1710.038,897.962],[1710.565,898.935],[1711,900],[1719.505,900.914],[1727.292,899.783],[1734.226,897.095],[1740.173,893.339]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[5.531,1.052],[-0.472,-2.736],[-0.687,-2.521],[-0.845,-2.364],[-0.945,-2.264],[-0.988,-2.221],[-0.973,-2.235],[-0.901,-2.308],[-0.771,-2.437],[-5.512,-0.128],[-5.489,0.241],[-5.317,0.545],[-4.996,0.784],[-4.527,0.958],[5.476,0.652],[6.086,-0.545],[6.317,-0.674],[6.169,0.263],[1.308,5.275],[1.568,5.015],[2.976,3.607]],"o":[[0.199,3.009],[0.472,2.736],[0.687,2.521],[0.845,2.364],[0.945,2.264],[0.988,2.221],[0.973,2.235],[0.901,2.308],[5.388,0.563],[5.512,0.128],[5.489,-0.241],[5.317,-0.545],[4.996,-0.784],[-4.487,-2.916],[-5.476,-0.652],[-6.086,0.545],[-6.317,0.674],[-2.196,-4.388],[-1.308,-5.275],[-1.568,-5.015],[-2.976,-3.607]],"v":[[1641,842],[1642.022,850.604],[1643.775,858.476],[1646.086,865.789],[1648.785,872.715],[1651.698,879.427],[1654.653,886.097],[1657.478,892.897],[1660,900],[1676.387,901.021],[1692.926,900.835],[1709.172,899.639],[1724.678,897.629],[1739,895],[1723.961,889.915],[1706.523,890.021],[1687.824,892.116],[1669,893],[1664.031,878.219],[1660.003,862.497],[1653.474,849.276]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[21.17,5.164],[6.612,12.388],[11.8,7.2],[12.555,0.445],[11.767,1.233],[4.349,5.318],[4.151,5.515],[4.436,5.564],[8.155,1.846],[0.348,-0.485],[-0.022,-0.855],[0.241,-0.007],[0.001,0.015],[-6.12,-6.944],[-1.908,-5.482],[-5.217,-5.95],[-6.536,-4.63],[-13.103,-0.231],[-12,-1.333],[-15.747,-15.92],[-26.019,-2.201]],"o":[[-5.752,-13.248],[-6.612,-12.388],[-12.014,-0.986],[-12.555,-0.445],[-5.454,-4.213],[-4.349,-5.318],[-5.103,-4.897],[-4.436,-5.564],[-0.629,0.205],[-0.348,0.485],[-0.034,-0.012],[-0.241,0.007],[0.615,6.744],[6.12,6.943],[4.597,6.569],[5.217,5.95],[11.589,1.744],[13.103,0.231],[17.562,14.104],[17.415,11.471],[-10.439,-15.894]],"v":[[1667,883],[1649.536,843.464],[1623,813],[1585.815,811.185],[1549,809],[1534.523,794.477],[1522,778],[1508.789,761.211],[1491,749],[1489.512,750.012],[1489,752],[1488.475,752.002],[1488,752],[1500.53,772.947],[1515,792],[1529.546,810.954],[1547,827],[1584.692,829.308],[1623,831],[1657,892],[1732,897]],"c":true}],"h":1},{"t":4,"s":[{"i":[[31.25,10.983],[0,-0.5],[0,-0.5],[-7.025,-7.282],[-6.717,-7.753],[-6.347,-7.775],[-6.87,-7.117],[-20.19,-4.144],[-20.466,-3.868],[-12.335,-14.831],[-14.971,-12.196],[-23.845,-2.155],[-10.966,-17.034],[-32.34,-2.993],[21.427,8.907],[14.874,15.46],[26.646,4.688],[21.01,20.657],[7.464,3.669],[32.094,17.608],[7.325,8.695]],"o":[[0,0.5],[0,0.5],[5.182,8.12],[7.025,7.282],[6.742,7.782],[6.347,7.775],[13.776,10.557],[20.189,4.144],[16.687,10.48],[12.336,14.831],[23.124,2.877],[17.602,10.398],[15.322,20.011],[-10.58,-16.422],[-14.207,-16.126],[-16.236,-15.097],[-24.788,-16.878],[-8.246,-4.781],[-30.124,-14.807],[-8.796,-4.826],[-20.788,-24.679]],"v":[[1270,616],[1270,617.5],[1270,619],[1288.848,641.776],[1310,664],[1329.404,687.498],[1349,710],[1401.483,730.517],[1464,741],[1505.787,780.713],[1545,823],[1618,828],[1649,881],[1735,901],[1665,878],[1633,819],[1551,807],[1491,742],[1471,728],[1367,706],[1343,682]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[17.579,3.647],[-0.17,-2.503],[-18.893,-8.774],[-25.609,-2.391],[-26.726,-38.607],[-32.094,-10.906],[-19.861,-18.806],[-13.7,-8.966],[-21.229,0.659],[-22.139,-13.473],[-29.804,-2.608],[23.018,7.317],[6.448,12.711],[10.483,2.375],[6.824,-0.273],[13.909,1.227],[38.677,23.991],[26.806,10.527],[17.528,17.528],[20.633,11.271],[23.45,4.184]],"o":[[-1.464,0.87],[8.12,19.547],[23.667,4.333],[36.534,28.799],[26.3,16.701],[23.568,15.098],[9.071,13.596],[18.537,4.209],[22.452,13.431],[18.292,11.132],[-10.347,-16.655],[-8.186,-9.449],[-4.593,-9.053],[-5.62,-1.273],[-13.607,0.544],[-27.874,-34.794],[-26.678,-10.655],[-15.972,-17.057],[-16.537,-16.537],[-17.727,-9.683],[-23.027,-4.108]],"v":[[1136,573],[1133,577],[1188,605],[1259,618],[1356,717],[1460,742],[1524,794],[1555,831],[1617,833],[1657,892],[1733,902],[1663,879],[1645,844],[1620,815],[1601,816],[1559,815],[1461,725],[1368,706],[1319,653],[1265,604],[1199,591]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[52.884,22.783],[-0.084,-0.583],[-0.586,-0.081],[-11.103,-8.564],[-10.296,-9.37],[-8.853,-10.211],[-13.246,-7.504],[-27.065,-4.181],[-18.291,-16.126],[-15.293,-17.041],[-18.443,-13.89],[-14.711,-1.956],[-13.087,-3.58],[-15.808,-15.608],[-19.934,-8.9],[7.611,7.555],[8.189,6.977],[17.896,12.771],[33.731,6.269],[44.049,29.285],[37.465,16.202]],"o":[[0.078,0.589],[0.084,0.583],[9.293,10.374],[11.103,8.564],[11.341,8.652],[8.853,10.211],[21.45,12.151],[27.065,4.181],[17.387,14.946],[15.293,17.041],[15.068,1.598],[14.711,1.956],[18.834,11.666],[15.808,15.609],[-5.366,-9.801],[-7.611,-7.555],[-17.054,-13.612],[-25.169,-14.831],[-36.685,-36.648],[-38.742,-14.924],[-38.574,-37.092]],"v":[[1001,466],[1001.119,467.881],[1002,469],[1033.247,496.753],[1066,523],[1094.571,552.361],[1126,580],[1202.369,599.519],[1274,625],[1321.708,674.292],[1371,722],[1415.986,727.014],[1458,735],[1508.176,778.574],[1560,818],[1540.117,792.382],[1516,771],[1469,726],[1369,706],[1256,599],[1128,566]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[77.032,6.024],[-0.162,-0.671],[-0.389,-0.445],[-12.848,-2.521],[-10.288,-5.595],[-5.019,-4.797],[-5.129,-4.658],[-15.624,-13.943],[-14.788,-13.956],[-19.66,-5.34],[-25.684,0.684],[-10.414,-10.716],[-15.638,-2.627],[4.701,4.61],[5.606,4.22],[9.294,7.635],[11.63,3.539],[10.023,1.425],[9.684,1.981],[13.162,8.503],[11.782,11.782]],"o":[[-0.038,0.871],[0.162,0.671],[9.322,8.321],[12.848,2.521],[5.797,3.153],[5.019,4.797],[15.715,14.272],[15.624,13.943],[17.677,7.323],[19.66,5.34],[13.707,6.509],[10.414,10.716],[-2.591,-7.339],[-4.701,-4.61],[-9.195,-6.921],[-9.294,-7.635],[-10.226,2.682],[-10.023,-1.425],[-20.572,-4.207],[-13.162,-8.503],[-42.552,-42.553]],"v":[[935,442],[935.18,444.32],[936,446],[970.776,460.044],[1007,470],[1023.001,482.372],[1038,497],[1085.195,539.237],[1131,581],[1185.994,601.006],[1253,609],[1287.052,637.911],[1324,661],[1312.762,643.661],[1297,631],[1269.827,607.963],[1239,590],[1208.593,590.997],[1179,585],[1129.908,565.681],[1094,535]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[22.673,9.494],[-0.089,-0.328],[-0.177,-0.24],[-0.249,-0.167],[-0.308,-0.109],[-10.871,-10.018],[-10.751,-10.138],[-10.053,-10.836],[-20.473,-5.027],[-19.933,-5.567],[-11.777,-11.028],[-11.439,-11.439],[-14.475,-8.994],[-21.937,0.139],[6.575,1.925],[6.646,1.853],[15.023,16.31],[17.025,14.308],[25.058,6.442],[23.306,8.194],[16.461,15.706]],"o":[[-0.014,0.43],[0.089,0.328],[0.176,0.24],[0.249,0.167],[10.413,10.476],[10.871,10.018],[10.751,10.138],[18.174,7.326],[20.473,5.027],[12.451,10.448],[11.778,11.028],[11.163,11.163],[14.475,8.994],[-4.053,-4.447],[-6.575,-1.925],[-19.882,-11.452],[-15.023,-16.31],[-15.464,-16.036],[-25.058,-6.443],[-18.485,-13.682],[-16.461,-15.706]],"v":[[793,347],[793.117,348.133],[793.519,348.981],[794.161,349.589],[795,350],[827.071,380.596],[859.65,410.684],[891,442],[949.68,459.82],[1011,475],[1047.259,507.257],[1082,541],[1119.42,572.977],[1173,588],[1156.445,579.055],[1136,574],[1085.357,530.643],[1039,483],[975.382,452.119],[900,433],[849.641,386.859]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-6.742,8.758],[7.237,-1.513],[6.588,-2.162],[6.557,-2.193],[7.143,-1.607],[-0.98,-4.436],[-1.298,-4.119],[-1.294,-4.123],[-0.968,-4.448],[9.583,-3.639],[8.552,-4.67],[4.585,-8.637],[-1.446,-3.554],[-4.733,-0.267],[0.567,2.992],[0.931,2.22],[-15.219,5.281],[-9.026,11.474],[2.202,7.464],[0.994,8.673],[-12.45,3.05]],"o":[[-8.503,0.247],[-7.237,1.513],[-6.588,2.162],[-6.557,2.193],[0.341,5.075],[0.98,4.436],[1.298,4.119],[1.294,4.123],[-7.677,5.545],[-9.583,3.639],[-8.552,4.67],[1.481,3.519],[1.446,3.554],[1.198,-2.812],[-0.567,-2.992],[9.096,-11.404],[15.219,-5.281],[-0.198,-9.469],[-2.202,-7.465],[10.458,-5.042],[12.45,-3.05]],"v":[[2338,484],[2314.544,486.794],[2293.96,492.46],[2274.396,499.146],[2254,505],[2256.063,519.187],[2259.56,531.94],[2263.527,544.223],[2267,557],[2240.376,570.043],[2212.44,581.773],[2192,601],[2195.561,612.439],[2204,619],[2204.597,610.056],[2202,602],[2241.552,580.052],[2281,558],[2276.597,533.403],[2271,510],[2307.287,499.787]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-11.89,5.277],[0.759,2.658],[1.2,2.217],[2.091,1.326],[3.433,-0.016],[-0.094,-1.597],[-0.56,-1.489],[-0.561,-1.522],[-0.096,-1.697],[7.616,-1.551],[7.115,-2.052],[6.067,-3.1],[4.471,-4.695],[-1.209,-2.895],[-1.921,-2.144],[-2.751,-0.553],[-3.701,1.881],[1.001,1.999],[1.282,1.718],[0.107,2.893],[-13.891,3.276]],"o":[[-0.769,-2.648],[-0.759,-2.658],[-1.2,-2.217],[-2.091,-1.326],[-0.837,1.847],[0.094,1.597],[0.56,1.489],[0.561,1.522],[-7.57,1.597],[-7.616,1.551],[-7.115,2.052],[-6.067,3.1],[0.616,2.803],[1.209,2.895],[1.921,2.144],[2.751,0.553],[0.736,-3.736],[-1.001,-1.999],[-1.282,-1.718],[11.547,-5.619],[13.891,-3.276]],"v":[[2343,487],[2340.821,478.928],[2337.996,471.503],[2333.173,466.076],[2325,464],[2324.002,469.131],[2325.1,473.725],[2326.898,478.207],[2328,483],[2305.085,487.586],[2282.853,492.853],[2262.944,500.444],[2247,512],[2249.708,520.757],[2254.373,528.526],[2261.351,532.782],[2271,531],[2270.238,522.762],[2266.448,517.552],[2264,511],[2303.244,498.743]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-0.34,2.404],[1.238,0.722],[1.46,0.605],[1.621,0.47],[1.721,0.316],[1.761,0.143],[1.741,-0.048],[1.66,-0.258],[1.519,-0.487],[1.317,-0.734],[1.054,-1],[0.731,-1.284],[0.348,-1.587],[-0.096,-1.909],[-2.329,-0.668],[-2.591,-0.4],[-2.671,-0.076],[-2.569,0.306],[-2.284,0.745],[-1.818,1.241],[-1.17,1.794]],"o":[[-0.956,-0.82],[-1.238,-0.722],[-1.46,-0.605],[-1.621,-0.47],[-1.721,-0.316],[-1.761,-0.143],[-1.741,0.048],[-1.66,0.258],[-1.519,0.487],[-1.317,0.734],[-1.054,1],[-0.731,1.284],[-0.348,1.587],[1.886,0.879],[2.329,0.668],[2.591,0.4],[2.671,0.076],[2.569,-0.306],[2.284,-0.745],[1.818,-1.241],[1.17,-1.794]],"v":[[3275,577],[3271.693,574.682],[3267.631,572.686],[3262.995,571.069],[3257.967,569.886],[3252.728,569.193],[3247.459,569.047],[3242.342,569.502],[3237.559,570.614],[3233.291,572.441],[3229.72,575.037],[3227.027,578.458],[3225.393,582.76],[3225,588],[3231.368,590.334],[3238.795,591.951],[3246.733,592.679],[3254.638,592.347],[3261.964,590.784],[3268.163,587.82],[3272.69,583.282]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[2.055,0.778],[-0.422,-1.322],[-0.41,-1.334],[-0.417,-1.327],[-0.443,-1.301],[-0.487,-1.257],[-0.549,-1.194],[-0.63,-1.113],[-0.73,-1.014],[-0.848,-0.895],[-0.985,-0.759],[-1.14,-0.604],[-1.314,-0.43],[-1.506,-0.238],[0.54,2.293],[0.736,2.097],[0.939,1.895],[1.148,1.685],[1.365,1.468],[1.588,1.245],[1.818,1.015]],"o":[[0.452,1.292],[0.422,1.322],[0.41,1.334],[0.417,1.327],[0.443,1.301],[0.487,1.257],[0.549,1.194],[0.63,1.113],[0.73,1.014],[0.848,0.895],[0.985,0.759],[1.14,0.604],[1.314,0.43],[-0.351,-2.482],[-0.54,-2.293],[-0.736,-2.097],[-0.939,-1.895],[-1.148,-1.685],[-1.365,-1.468],[-1.588,-1.245],[-1.818,-1.015]],"v":[[1389,487],[1390.305,490.926],[1391.548,494.914],[1392.784,498.908],[1394.069,502.854],[1395.458,506.696],[1397.007,510.377],[1398.772,513.843],[1400.808,517.038],[1403.171,519.906],[1405.916,522.392],[1409.099,524.44],[1412.775,525.994],[1417,527],[1415.665,519.835],[1413.753,513.248],[1411.242,507.258],[1408.113,501.888],[1404.344,497.156],[1399.917,493.084],[1394.809,489.692]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[-0.404,1.096],[0.797,-0.126],[0.743,-0.181],[0.686,-0.237],[0.628,-0.295],[0.567,-0.356],[0.506,-0.417],[0.442,-0.481],[0.377,-0.547],[0.309,-0.614],[0.24,-0.683],[0.17,-0.753],[0.097,-0.826],[0.023,-0.9],[-0.953,0.547],[-0.904,0.596],[-0.845,0.655],[-0.776,0.724],[-0.697,0.803],[-0.609,0.891],[-0.511,0.989]],"o":[[-0.85,0.073],[-0.797,0.126],[-0.743,0.181],[-0.686,0.237],[-0.628,0.295],[-0.567,0.356],[-0.506,0.417],[-0.442,0.481],[-0.377,0.547],[-0.309,0.614],[-0.24,0.683],[-0.17,0.753],[-0.097,0.826],[0.993,-0.507],[0.953,-0.547],[0.904,-0.596],[0.845,-0.655],[0.776,-0.724],[0.697,-0.803],[0.609,-0.891],[0.511,-0.989]],"v":[[2869,601],[2866.528,601.297],[2864.218,601.756],[2862.075,602.382],[2860.104,603.181],[2858.311,604.157],[2856.701,605.316],[2855.279,606.663],[2854.051,608.204],[2853.021,609.944],[2852.196,611.889],[2851.581,614.042],[2851.18,616.411],[2851,619],[2853.922,617.422],[2856.71,615.71],[2859.335,613.835],[2861.768,611.768],[2863.98,609.48],[2865.942,606.942],[2867.625,604.125]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 3"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[0.263,2.02],[1.454,-0.796],[0.986,-1.264],[0.627,-1.623],[0.376,-1.874],[0.235,-2.015],[0.202,-2.048],[0.278,-1.972],[0.463,-1.787],[-1.272,1.035],[-1.1,1.289],[-0.912,1.506],[-0.709,1.684],[-0.489,1.825],[-0.254,1.928],[-0.003,1.993]],"o":[[-2.031,0.219],[-1.454,0.796],[-0.986,1.264],[-0.627,1.623],[-0.376,1.874],[-0.235,2.015],[-0.202,2.048],[-0.278,1.972],[1.429,-0.743],[1.272,-1.035],[1.1,-1.289],[0.912,-1.506],[0.709,-1.684],[0.489,-1.825],[0.254,-1.928],[0.003,-1.993]],"v":[[2422,1039],[2416.799,1040.549],[2413.165,1043.665],[2410.773,1048.023],[2409.296,1053.296],[2408.407,1059.157],[2407.779,1065.279],[2407.085,1071.335],[2406,1077],[2410.055,1074.323],[2413.618,1070.827],[2416.64,1066.625],[2419.076,1061.831],[2420.876,1056.557],[2421.996,1050.919],[2422.386,1045.028]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[1.556,0.027],[-0.345,-1.294],[-0.501,-1.222],[-0.646,-1.107],[-0.78,-0.949],[-0.902,-0.747],[-1.014,-0.502],[-1.114,-0.213],[-1.203,0.119],[0.453,1.13],[0.452,1.131],[0.505,1.079],[0.609,0.974],[0.767,0.816],[0.977,0.606],[1.24,0.343]],"o":[[0.178,1.322],[0.345,1.294],[0.501,1.222],[0.646,1.107],[0.78,0.949],[0.902,0.747],[1.014,0.502],[1.114,0.213],[-0.506,-1.077],[-0.453,-1.13],[-0.452,-1.131],[-0.505,-1.079],[-0.609,-0.974],[-0.767,-0.816],[-0.977,-0.606],[-1.24,-0.343]],"v":[[2088,906],[2088.788,909.936],[2090.061,913.721],[2091.785,917.227],[2093.926,920.323],[2096.452,922.878],[2099.328,924.763],[2102.522,925.847],[2106,926],[2104.574,922.676],[2103.229,919.272],[2101.806,915.944],[2100.148,912.852],[2098.097,910.153],[2095.494,908.006],[2092.181,906.569]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[0.836,3.125],[3.956,-1.044],[3.516,-1.484],[2.802,-2.198],[1.815,-3.185],[-1.951,-3.799],[-1.767,-3.983],[-2.307,-3.443],[-3.572,-2.178],[1.375,3.625],[1.756,3.244],[1.753,3.247],[1.365,3.635],[-3.62,1.186],[-3.481,1.335],[-1.996,1.981]],"o":[[-4.122,0.879],[-3.956,1.044],[-3.516,1.484],[-2.802,2.198],[2.859,2.891],[1.951,3.799],[1.767,3.983],[2.307,3.443],[-0.61,-4.39],[-1.375,-3.625],[-1.756,-3.244],[-1.753,-3.247],[2.411,-1.534],[3.62,-1.186],[3.481,-1.335],[1.996,-1.981]],"v":[[2114,862],[2101.816,864.816],[2090.54,868.54],[2080.994,873.994],[2074,882],[2081.034,892.216],[2086.431,904.069],[2092.363,915.387],[2101,924],[2097.926,912.074],[2093.133,901.868],[2087.773,892.227],[2083,882],[2092.383,878.044],[2103.37,874.386],[2111.923,869.535]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-7.978,14.022],[7.778,-5.942],[7.352,-5.532],[-3.473,-7.027],[-2.159,-8.341],[7.648,-3.519],[3.011,-8.157],[-1.284,-3.883],[-1.09,-4.077],[-0.832,-1.668],[-0.554,-1.946],[-1.293,-1.74],[-0.644,2.332],[2.055,13.612],[-7,17.667],[4.578,15.422]],"o":[[-12.534,-1.299],[-7.778,5.942],[0.949,9.551],[3.473,7.027],[-4.399,6.767],[-7.647,3.519],[0.774,4.392],[1.284,3.883],[1.117,1.383],[0.832,1.668],[1.186,0.373],[1.293,1.74],[0.583,-16.249],[16.007,-8.66],[-5.336,-14.664],[9.942,-12.058]],"v":[[2152,776],[2122.613,784.877],[2101,804],[2108.592,827.908],[2118,850],[2097.958,863.458],[2080,879],[2083.263,891.237],[2087,903],[2089.922,907.578],[2092,913],[2095.906,917.529],[2099,918],[2090,880],[2133,849],[2116,806]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-1.133,10.932],[0.845,0.488],[1.729,-0.396],[11.375,-6.125],[8.713,-8.788],[-2.96,-20.04],[9.693,-19.974],[-0.38,-18.953],[8.293,-12.04],[-11.135,-9.531],[1.059,13.876],[-6.485,17.182],[2.689,16.31],[-7.816,19.85],[-2.463,24.156],[-10.906,5.76]],"o":[[-0.889,-0.444],[-0.845,-0.488],[-10.787,6.712],[-11.375,6.125],[0.092,22.908],[-11.245,18.421],[2.685,16.648],[-9.126,11.208],[3.423,17.244],[3.413,-15.115],[10.122,-13.545],[-2.772,-16.228],[10.145,-17.521],[5.368,-23.737],[6.879,-9.787],[10.469,-4.913]],"v":[[2208,667],[2205.63,665.37],[2202,665],[2167.944,683.444],[2137,705],[2149,762],[2104,806],[2118,850],[2082,875],[2096,923],[2093,880],[2133,849],[2119,806],[2162,766],[2152,709],[2182,689]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[3.573,22.067],[2.537,-2.458],[-2.862,-19.989],[24.178,-9.822],[-1.56,-20.44],[12.742,-21.592],[-4.546,-12.121],[10.344,-8.655],[-12.462,-8.871],[2.328,13.236],[-6.745,15.922],[3.545,14.122],[-9.951,23.049],[-0.734,22.067],[-12.698,6.302],[-3.427,15.573]],"o":[[-3.699,-1.605],[-5.459,21.711],[-19.035,14.965],[-2.002,24.003],[-7.88,26.453],[3.242,13.424],[-7.722,11.278],[1.156,20.177],[4.723,-14.16],[10.959,-11.708],[-4.01,-13.656],[17.957,-15.043],[1.89,-23.223],[14.142,-4.858],[9.854,-9.146],[-6.693,-17.857]],"v":[[2202,600],[2189,601],[2200,662],[2137,701],[2147,757],[2100,813],[2115,848],[2081,871],[2095,921],[2091,878],[2130,849],[2114,812],[2162,761],[2152,707],[2189,687],[2218,659]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[3.055,-0.722],[6.718,-3.811],[6.987,-3.513],[6.449,-3.144],[4.73,-5.168],[-1.732,-22.935],[13.241,-7.765],[1.561,-11.178],[4.753,-20.108],[4.091,-24.244],[-10.575,8.092],[-1.448,16.167],[2.625,17.024],[-14.918,25.082],[3.947,19.053],[-9.344,28.322]],"o":[[-6.142,4.243],[-6.718,3.811],[-6.472,3.254],[-6.449,3.144],[2.516,22.15],[-8.128,10.13],[-9.853,5.778],[-2.313,16.564],[-10.065,21.603],[13.731,-4.936],[6.014,-13.387],[1.454,-16.235],[23.588,-16.412],[-3.285,-19.715],[19.539,-18.128],[-2.355,0.022]],"v":[[2269,554],[2249.633,566.047],[2229,577],[2209.194,586.065],[2192,598],[2205,659],[2171,683],[2139,710],[2152,758],[2111,814],[2141,788],[2166,756],[2152,708],[2221,657],[2208,601],[2275,555]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[8.12,5.88],[0.836,-0.997],[1.452,-0.381],[-1.085,-3.582],[-0.211,-4.455],[15.15,-6.517],[9.079,-12.587],[-3.164,-9.169],[-4.662,-7.672],[6.008,-3.659],[1.722,-7.946],[-6.886,6.28],[-5.765,7.401],[3.169,8.165],[0.796,10.537],[-21.77,20.23]],"o":[[-2.203,-0.37],[-0.836,0.997],[-0.552,5.218],[1.085,3.582],[-11.322,10.346],[-15.15,6.517],[0.68,11.652],[3.164,9.169],[-4.247,5.42],[-6.008,3.659],[12.689,-0.478],[6.886,-6.28],[-5.53,-5.803],[-3.169,-8.165],[21.052,-20.948],[0.463,-14.463]],"v":[[2274,527],[2269.936,528.436],[2267,531],[2268.428,543.573],[2271,555],[2228.818,577.819],[2190,604],[2196.014,634.985],[2208,660],[2191.106,672.106],[2178,688],[2206.193,676.692],[2224,655],[2210.95,634.051],[2205,606],[2284,559]],"c":true}],"h":1},{"t":8,"s":[{"i":[[0.333,0],[-2.308,-7.358],[0.023,-9.689],[-17.032,-4.802],[-11.246,-10.587],[-8.687,-11.563],[-19.755,2.087],[4.528,1.805],[4.267,2.066],[3.443,11.724],[7.601,7.566],[13.901,4.266],[12.226,5.94],[2.391,8.776],[10.155,1.012],[0.333,0]],"o":[[0.79,8.877],[2.308,7.358],[13.626,8.207],[17.032,4.802],[3.499,15.835],[8.687,11.563],[-4.619,-1.715],[-4.529,-1.805],[-6.628,-8.539],[-3.443,-11.724],[-13.17,-4.997],[-13.901,-4.266],[-3.283,-7.884],[-2.391,-8.776],[-0.333,0],[-0.333,0]],"v":[[1476,537],[1481.61,560.39],[1486,585],[1534.285,602.214],[1579,623],[1595.808,666.442],[1637,683],[1623.237,677.764],[1610,672],[1596.73,639.77],[1582,609],[1540.792,595.707],[1501,581],[1494.654,553.846],[1478,537],[1477,537]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[8.361,-0.359],[-2.872,-1.128],[-3.256,-0.744],[-2.882,-1.118],[-1.747,-2.253],[-2.373,-7.46],[-4.923,-4.91],[-7.464,-2.37],[-9.995,0.161],[2.632,1.701],[3.664,0.67],[3.575,0.759],[2.365,1.968],[1.582,7.418],[0.338,8.663],[8.471,2.111]],"o":[[1.727,2.273],[2.872,1.128],[3.256,0.744],[2.882,1.118],[-0.187,10.02],[2.373,7.46],[4.923,4.91],[7.464,2.37],[-0.481,-3.853],[-2.632,-1.701],[-3.664,-0.67],[-3.575,-0.759],[-2.335,-6.665],[-1.582,-7.418],[-5.755,-3.913],[-8.471,-2.111]],"v":[[1443,528],[1450.088,532.912],[1459.47,535.53],[1468.867,538.133],[1476,543],[1479.281,569.219],[1490.227,587.773],[1508.81,598.69],[1535,602],[1530.051,593.949],[1520.327,590.673],[1509.189,588.811],[1500,585],[1494.002,563.998],[1491,540],[1468.954,530.796]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-1.213,2.682],[0.373,0.211],[0.24,0.343],[0.373,0.211],[0.77,-0.186],[4.24,-5.76],[3.802,-6.198],[4.036,-5.964],[4.941,-5.059],[-3.617,2.272],[-2.539,3.503],[-2.027,3.979],[-2.082,3.702],[-1.91,2.638],[-1.895,2.445],[-1.662,2.46]],"o":[[-0.77,0.186],[-0.373,-0.211],[-0.24,-0.343],[-0.373,-0.211],[-5.349,4.651],[-4.24,5.76],[-3.802,6.198],[-4.036,5.964],[5.264,-0.288],[3.617,-2.272],[2.538,-3.503],[2.027,-3.979],[1.708,-3.038],[1.91,-2.638],[1.895,-2.445],[1.662,-2.46]],"v":[[2826,612],[2824.353,611.897],[2823.5,611],[2822.647,610.103],[2821,610],[2806.784,625.784],[2794.888,643.888],[2783.299,662.299],[2770,679],[2783.18,674.972],[2792.272,666.122],[2798.978,654.71],[2805,643],[2810.481,634.539],[2816.242,626.967],[2821.632,619.661]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-0.247,1.795],[1.712,-0.886],[1.682,-1],[1.587,-1.125],[1.425,-1.262],[1.198,-1.409],[0.906,-1.568],[0.547,-1.738],[0.123,-1.919],[-1.476,1.122],[-1.571,1.111],[-1.576,1.136],[-1.491,1.197],[-1.315,1.293],[-1.049,1.424],[-0.693,1.592]],"o":[[-1.675,0.783],[-1.712,0.886],[-1.682,1],[-1.587,1.125],[-1.425,1.262],[-1.198,1.409],[-0.906,1.568],[-0.547,1.738],[1.29,-1.169],[1.476,-1.122],[1.571,-1.111],[1.576,-1.136],[1.491,-1.197],[1.315,-1.293],[1.049,-1.424],[0.693,-1.592]],"v":[[3295,560],[3289.903,562.501],[3284.796,565.327],[3279.876,568.513],[3275.342,572.091],[3271.389,576.096],[3268.217,580.559],[3266.021,585.516],[3265,591],[3269.171,587.572],[3273.763,584.231],[3278.506,580.869],[3283.128,577.378],[3287.36,573.653],[3290.929,569.587],[3293.566,565.071]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[0.4,2.067],[0.64,0.135],[0.762,0.126],[0.817,0.084],[0.804,0.007],[0.725,-0.103],[0.578,-0.248],[0.363,-0.426],[0.081,-0.638],[-0.3,-0.783],[-0.429,-0.654],[-0.539,-0.544],[-0.63,-0.454],[-1.331,0.336],[-0.992,0.674],[-0.415,1.252]],"o":[[-0.451,-0.109],[-0.64,-0.135],[-0.762,-0.126],[-0.817,-0.084],[-0.804,-0.007],[-0.725,0.103],[-0.578,0.248],[-0.363,0.426],[0.152,0.931],[0.3,0.783],[0.429,0.654],[0.539,0.544],[1.432,-0.235],[1.331,-0.336],[0.992,-0.674],[0.415,-1.252]],"v":[[1334,934],[1332.347,933.625],[1330.226,933.226],[1327.841,932.903],[1325.392,932.758],[1323.081,932.894],[1321.111,933.412],[1319.683,934.413],[1319,936],[1319.683,938.566],[1320.783,940.717],[1322.241,942.509],[1324,944],[1328.203,943.204],[1331.748,941.748],[1333.918,938.918]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 4"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-0.656,1.635],[1.623,-0.669],[1.459,-0.833],[1.279,-1.013],[1.084,-1.208],[0.872,-1.419],[0.645,-1.646],[0.403,-1.889],[0.144,-2.148],[-1.636,0.656],[-1.339,0.953],[-1.094,1.197],[-0.902,1.389],[-0.762,1.529],[-0.675,1.617],[-0.639,1.652]],"o":[[-1.771,0.521],[-1.623,0.669],[-1.459,0.833],[-1.279,1.013],[-1.084,1.208],[-0.872,1.419],[-0.645,1.646],[-0.403,1.889],[1.985,-0.307],[1.636,-0.656],[1.339,-0.953],[1.094,-1.197],[0.902,-1.389],[0.762,-1.529],[0.675,-1.617],[0.639,-1.652]],"v":[[1716,1187],[1710.905,1188.78],[1706.278,1191.028],[1702.168,1193.792],[1698.619,1197.119],[1695.681,1201.056],[1693.401,1205.65],[1691.824,1210.949],[1691,1217],[1696.417,1215.542],[1700.866,1213.116],[1704.503,1209.878],[1707.485,1205.985],[1709.969,1201.594],[1712.111,1196.861],[1714.069,1191.945]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-1.169,0.013],[0.954,0.865],[1.323,0.655],[1.541,0.411],[1.609,0.133],[1.527,-0.18],[1.294,-0.526],[0.912,-0.907],[0.378,-1.322],[-1.063,-0.303],[-1.168,-0.145],[-1.243,-0.024],[-1.288,0.059],[-1.303,0.104],[-1.289,0.112],[-1.244,0.081]],"o":[[-0.435,-1.041],[-0.954,-0.865],[-1.323,-0.655],[-1.541,-0.411],[-1.609,-0.133],[-1.527,0.18],[-1.294,0.526],[-0.912,0.907],[0.928,0.499],[1.063,0.303],[1.168,0.145],[1.243,0.024],[1.288,-0.059],[1.303,-0.104],[1.289,-0.112],[1.244,-0.081]],"v":[[1937,932],[1934.879,929.131],[1931.426,926.842],[1927.093,925.234],[1922.33,924.41],[1917.588,924.473],[1913.319,925.523],[1909.972,927.665],[1908,931],[1910.994,932.194],[1914.348,932.857],[1917.972,933.1],[1921.777,933.038],[1925.672,932.784],[1929.567,932.451],[1933.373,932.152]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[3.151,1.932],[-0.451,3.038],[-0.519,2.736],[0.317,2.33],[2.055,1.821],[1.222,-2.528],[0.175,-3.575],[-0.01,-3.76],[0.668,-3.082],[-4.623,-1.241],[-4.999,-0.875],[-5.001,-0.447],[-4.63,0.045],[3.874,1.209],[4.484,0.6],[4.243,0.84]],"o":[[-0.52,-3.235],[0.451,-3.038],[0.519,-2.736],[-0.317,-2.33],[-3.133,0.617],[-1.222,2.528],[-0.175,3.575],[0.01,3.76],[3.874,1.543],[4.623,1.241],[4.999,0.876],[5.001,0.447],[-2.413,-2.67],[-3.874,-1.209],[-4.484,-0.599],[-4.243,-0.84]],"v":[[1884,918],[1884.123,908.565],[1885.804,899.878],[1886.333,892.252],[1883,886],[1876.683,890.933],[1874.803,900.303],[1874.772,911.522],[1874,922],[1886.839,926.193],[1901.366,929.383],[1916.46,931.382],[1931,932],[1921.356,926.394],[1908.607,923.893],[1895.304,921.946]],"c":true}],"h":1},{"t":4,"s":[{"i":[[6.502,10.165],[10.483,2.184],[7.882,4.784],[1.929,7.571],[6.61,2.89],[0.617,-0.217],[0.403,-0.43],[-2.041,-6.792],[-0.19,-8.643],[-11.428,-2.405],[-8.171,-5.663],[-0.211,-7.122],[-1.365,-5.968],[-9.106,-2.311],[-7.783,-1.052],[10.676,9.658]],"o":[[-8.187,-4.48],[-10.483,-2.184],[-2.676,-6.824],[-1.929,-7.572],[-0.13,0.703],[-0.616,0.217],[-0.354,9.188],[2.041,6.792],[7.118,6.716],[11.428,2.405],[1.789,5.545],[0.211,7.122],[6.794,3.707],[9.106,2.31],[-6.583,-13.751],[-0.155,-16.512]],"v":[[1880,867],[1850.772,858.228],[1822,849],[1816.451,826.05],[1805,809],[1803.705,810.205],[1802,811],[1805.592,833.908],[1810,856],[1839.71,867.79],[1871,878],[1873.317,897.683],[1875,918],[1899.759,926.991],[1926,932],[1885,912]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[20.325,11.675],[2.91,10.423],[8.156,5.177],[0.595,-0.404],[1.414,0.413],[-3.618,-10.794],[-4.042,-9.467],[-23,-11],[-5.935,-18.398],[-15.388,-10.612],[-3.819,-9.514],[-22.753,-2.581],[11.855,11.812],[2.973,12.027],[17.117,8.216],[12.521,14.146]],"o":[[-4.204,-9.129],[-2.91,-10.423],[-1.205,-0.205],[-0.595,0.404],[1.487,10.358],[3.618,10.794],[21.518,12.482],[9.433,14.9],[15.673,10.327],[2.436,10.897],[15.47,9.863],[-9.45,-14.217],[0.622,-15.622],[-15.719,-9.615],[-5.768,-20.898],[-23.729,-8.271]],"v":[[1728,767],[1718.964,736.036],[1704,711],[1701.656,711.656],[1699,712],[1707.084,744.168],[1719,775],[1792,804],[1813,856],[1871,876],[1874,913],[1928,935],[1884,908],[1880,867],[1823,848],[1798,793]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[13.002,18.331],[29.844,9.49],[0.81,-0.19],[-0.281,-1.615],[-30.573,-8.427],[-3.469,-25.864],[-22.797,-9.869],[-2.845,-26.155],[-15.163,-8.171],[-2.619,-10.047],[-20.469,-5.198],[10.232,13.104],[5.507,8.826],[13.667,7.333],[16.811,16.189],[17.325,11.675]],"o":[[-32.954,-6.38],[-1.003,-0.003],[-0.055,1.279],[20.459,18.541],[10.065,19.268],[20.744,11.922],[12.983,16.017],[10.844,12.489],[2.619,10.047],[11.696,13.971],[-3.993,-16.009],[-2.772,-11.562],[-14.002,-6.998],[-4.768,-28.232],[-19.318,-9.682],[-6.616,-24.718]],"v":[[1701,702],[1611,674],[1609,675],[1608,678],[1692,711],[1717,774],[1787,802],[1816,860],[1868,878],[1872,912],[1925,936],[1882,907],[1878,868],[1828,855],[1792,792],[1730,767]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[24.675,2.327],[-5.363,-9.304],[-2.046,-12.62],[-17.531,-5.469],[-14.28,-8.72],[-4.364,-11.136],[-5.729,-9.772],[-10.514,-2.986],[-9.86,-3.64],[-6.12,-12.13],[-11.266,-4.401],[5.753,10.247],[5.149,10.851],[23.062,7.605],[12.944,19.056],[26.184,16.816]],"o":[[4.503,10.163],[5.363,9.304],[13.595,9.404],[17.531,5.469],[4.817,10.683],[4.364,11.136],[10.083,3.417],[10.514,2.986],[9.254,8.08],[6.12,12.13],[-3.838,-12.162],[-5.753,-10.247],[-18.897,-11.769],[-8.091,-23.909],[-28.834,-14.166],[-7.363,-22.971]],"v":[[1570,612],[1585.842,640.158],[1598,672],[1646.487,692.513],[1696,712],[1709.316,745.184],[1724,777],[1755.168,786.332],[1786,796],[1806.991,829.259],[1831,857],[1815.983,824.017],[1799,793],[1731,769],[1702,702],[1609,666]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[10.488,-0.321],[-7.514,-2.486],[-8.131,-1.869],[-4.861,-11.139],[-5.649,-10.351],[-14.937,-5.23],[-17.836,-2.331],[-3.103,-7.231],[-9.789,-0.544],[5.038,7.129],[6.838,5.33],[12.038,3.962],[11.421,4.579],[5.09,11.076],[5.838,10.329],[9.403,3.346]],"o":[[4.813,5.187],[7.514,2.486],[6.909,9.091],[4.861,11.139],[11.416,8.751],[14.937,5.23],[5.8,4.534],[3.103,7.231],[-1.012,-11.155],[-5.038,-7.129],[-15.426,-0.574],[-12.038,-3.962],[-5.801,-10.366],[-5.09,-11.076],[-8.898,-2.936],[-9.403,-3.346]],"v":[[1528,593],[1547.012,603.989],[1571,610],[1587.945,641.055],[1603,674],[1642.685,694.815],[1692,706],[1703.008,725.992],[1720,740],[1710.37,713.131],[1692,695],[1651.497,687.503],[1617,674],[1601.027,641.472],[1585,609],[1557.693,598.558]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-2.914,6.919],[3.66,-3.09],[3.265,-3.485],[3.473,-3.277],[4.284,-2.466],[6.87,3.63],[10.131,0.37],[10.357,-9.977],[6.146,-14.187],[-6.636,8.364],[-11.222,3.778],[-5.64,-4.693],[-6.118,-4.216],[-5.118,4.715],[-5.17,4.663],[-4.895,4.938]],"o":[[-4.657,2.093],[-3.66,3.09],[-3.265,3.485],[-3.473,3.277],[-3.389,-7.111],[-6.87,-3.63],[-13.427,6.907],[-10.357,9.977],[12.234,-2.766],[6.636,-8.364],[9.32,1.013],[5.64,4.693],[6.358,-3.475],[5.118,-4.715],[3.505,-6.329],[4.895,-4.938]],"v":[[3193,621],[3180.675,628.926],[3170.44,638.94],[3160.484,649.234],[3149,658],[3133.556,641.944],[3108,636],[3072.04,661.04],[3047,697],[3072.759,677.759],[3097,657],[3118.402,666.598],[3135,681],[3151.891,668.391],[3167,654],[3180.443,637.943]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[2.208,2.158],[0.083,0],[0.083,0],[0.083,0],[0.083,0],[17.226,-17.441],[16.519,-18.149],[2.785,-2.596],[-1.231,-4.147],[-3.139,1.861],[-3.256,1.745],[-8.414,9.252],[-8.323,9.344],[-6.625,6.541],[-6.953,6.214],[-2.403,2.547]],"o":[[-0.083,0],[-0.083,0],[-0.083,0],[-0.083,0],[-19.578,15.09],[-17.226,17.44],[-4.09,0.471],[-2.785,2.596],[5.186,0.187],[3.139,-1.861],[8.02,-9.647],[8.414,-9.252],[7.546,-5.62],[6.625,-6.542],[0.597,-2.655],[2.403,-2.547]],"v":[[3257,556],[3256.75,556],[3256.5,556],[3256.25,556],[3256,556],[3201.206,605.206],[3151,659],[3140.009,663.743],[3137,674],[3148.948,670.948],[3158,665],[3182.773,636.774],[3208,609],[3228.945,590.445],[3249,571],[3255.104,563.127]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.828,0.755],[0.667,0],[0.667,0],[0.667,0],[0.667,0],[3.639,-2.054],[3.822,-1.875],[2.772,-2.508],[0.488,-3.955],[-4.263,1.641],[-3.985,2.703],[-4.104,1.835],[-4.622,-0.963],[0.426,1.157],[0.63,0.954],[0.764,0.82]],"o":[[-0.667,0],[-0.667,0],[-0.667,0],[-0.667,0],[-2.223,3.046],[-3.639,2.054],[-3.822,1.875],[-2.772,2.508],[4.939,1.35],[4.263,-1.641],[3.985,-2.703],[4.104,-1.835],[-0.153,-1.43],[-0.426,-1.157],[-0.63,-0.954],[-0.764,-0.82]],"v":[[1390,947],[1388,947],[1386,947],[1384,947],[1382,947],[1372.898,954.447],[1361.397,960.137],[1351.198,966.509],[1346,976],[1359.704,975.08],[1371.975,968.081],[1384.009,960.791],[1397,959],[1396.114,955.136],[1394.513,951.988],[1392.405,949.345]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-1.309,1.483],[2.577,-0.215],[2.585,-0.206],[2.51,-0.282],[2.35,-0.442],[2.105,-0.686],[1.777,-1.015],[1.364,-1.427],[0.867,-1.924],[-2.692,0.1],[-2.518,0.274],[-2.335,0.456],[-2.146,0.646],[-1.948,0.844],[-1.743,1.049],[-1.53,1.262]],"o":[[-2.484,0.308],[-2.577,0.215],[-2.585,0.206],[-2.51,0.282],[-2.35,0.442],[-2.105,0.686],[-1.777,1.015],[-1.364,1.427],[2.859,0.067],[2.692,-0.1],[2.518,-0.274],[2.335,-0.456],[2.146,-0.646],[1.948,-0.844],[1.743,-1.049],[1.53,-1.262]],"v":[[2857,612],[2849.388,612.763],[2841.624,613.374],[2833.961,614.085],[2826.651,615.151],[2819.947,616.822],[2814.102,619.352],[2809.369,622.994],[2806,628],[2814.328,627.953],[2822.145,627.395],[2829.427,626.302],[2836.15,624.65],[2842.292,622.417],[2847.83,619.58],[2852.74,616.115]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[-0.022,1.145],[1.063,-0.104],[0.827,-0.34],[0.624,-0.543],[0.454,-0.713],[0.317,-0.85],[0.212,-0.954],[0.141,-1.026],[0.102,-1.064],[-0.976,0.19],[-0.817,0.35],[-0.665,0.501],[-0.521,0.645],[-0.385,0.782],[-0.256,0.911],[-0.135,1.032]],"o":[[-1.332,-0.165],[-1.063,0.104],[-0.827,0.34],[-0.624,0.543],[-0.454,0.713],[-0.317,0.85],[-0.212,0.954],[-0.141,1.026],[1.144,-0.023],[0.976,-0.19],[0.817,-0.35],[0.665,-0.501],[0.521,-0.645],[0.385,-0.782],[0.256,-0.911],[0.135,-1.032]],"v":[[2846,1078],[2842.415,1077.915],[2839.588,1078.588],[2837.419,1079.92],[2835.811,1081.811],[2834.663,1084.164],[2833.878,1086.878],[2833.357,1089.857],[2833,1093],[2836.178,1092.678],[2838.866,1091.866],[2841.088,1090.588],[2842.866,1088.866],[2844.223,1086.723],[2845.182,1084.182],[2845.767,1081.267]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 5"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-0.415,1.71],[1.253,0.254],[1.113,-0.063],[0.988,-0.337],[0.876,-0.568],[0.778,-0.755],[0.694,-0.899],[0.624,-0.999],[0.568,-1.057],[0.526,-1.071],[0.498,-1.041],[0.484,-0.969],[0.484,-0.853],[-1.787,0.338],[-1.562,0.563],[-1.347,0.778],[-1.141,0.984],[-0.945,1.18],[-0.759,1.366],[-0.582,1.543]],"o":[[-1.407,-0.614],[-1.253,-0.254],[-1.113,0.063],[-0.988,0.337],[-0.876,0.568],[-0.778,0.755],[-0.694,0.899],[-0.624,0.999],[-0.568,1.057],[-0.526,1.071],[-0.498,1.041],[-0.484,0.969],[2.021,-0.104],[1.787,-0.338],[1.562,-0.563],[1.347,-0.778],[1.141,-0.984],[0.945,-1.18],[0.759,-1.366],[0.582,-1.543]],"v":[[2476,1325],[2472.013,1323.708],[2468.466,1323.433],[2465.318,1324.044],[2462.527,1325.412],[2460.05,1327.407],[2457.845,1329.898],[2455.872,1332.756],[2454.087,1335.851],[2452.45,1339.053],[2450.917,1342.232],[2449.448,1345.257],[2448,1348],[2453.709,1347.334],[2458.729,1345.979],[2463.09,1343.965],[2466.818,1341.318],[2469.945,1338.07],[2472.498,1334.248],[2474.507,1329.882]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-7.8,5.673],[3.357,2.477],[4.225,1.608],[4.381,1.453],[3.824,2.009],[0.497,-0.337],[0.487,-0.346],[0.497,-0.337],[0.525,-0.308],[1.115,-2.382],[0.986,-2.441],[1.004,-2.463],[1.166,-2.449],[2.097,-3.324],[1.908,-3.404],[1.107,-3.753],[-0.306,-4.371],[-5.302,11.948],[-9.188,7.146],[-7.08,-3.534]],"o":[[-1.776,-4.057],[-3.357,-2.477],[-4.225,-1.608],[-4.381,-1.453],[-0.525,0.308],[-0.497,0.337],[-0.487,0.346],[-0.497,0.337],[-1.388,2.286],[-1.115,2.382],[-0.986,2.441],[-1.004,2.463],[-1.673,3.514],[-2.097,3.324],[-1.908,3.404],[-1.107,3.753],[8.605,-6.062],[5.302,-11.948],[6.878,1.536],[7.08,3.534]],"v":[[2490,1018],[2482.123,1008.377],[2470.572,1002.428],[2457.486,998.014],[2445,993],[2443.472,993.971],[2442,995],[2440.528,996.029],[2439,997],[2435.282,1004.012],[2432.167,1011.256],[2429.218,1018.622],[2426,1026],[2420.192,1036.191],[2414.032,1046.215],[2409.355,1056.882],[2408,1069],[2427.063,1039.313],[2447,1008],[2467.809,1018.406]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[0.401,2.567],[5.016,0.901],[5.402,0.514],[5.56,0.356],[5.489,0.427],[7.958,-13.875],[12.185,-9.649],[7.844,2.323],[8.505,1.663],[6.803,-11.531],[5.506,-12.827],[-5.721,9.779],[-9.992,5.508],[-9.096,-2.571],[-12.479,0.813],[-7.662,13.838],[-13.449,8.051],[-9.398,-0.999],[-7.021,3.195],[-0.484,1.683]],"o":[[-4.401,-1.516],[-5.016,-0.901],[-5.402,-0.514],[-5.56,-0.356],[-12.984,8.85],[-7.958,13.875],[-9.119,-1.047],[-7.844,-2.323],[-11.283,7.05],[-6.803,11.531],[11.124,-4.375],[5.721,-9.779],[9.136,2.531],[9.096,2.571],[11.903,-9.597],[7.662,-13.838],[8.388,0.197],[9.398,0.999],[0.464,-1.702],[0.484,-1.683]],"v":[[2623,942],[2608.817,938.433],[2593.133,936.367],[2576.632,935.118],[2560,934],[2530.9,970.4],[2503,1008],[2478.039,1002.462],[2454,996],[2427.667,1024.667],[2410,1062],[2432.85,1038.35],[2454,1013],[2480.492,1021.508],[2512,1025],[2538.84,987.34],[2568,952],[2595.526,955.044],[2621,953],[2622.649,948.149]],"c":true}],"h":1},{"t":4,"s":[{"i":[[0.751,15.471],[12.202,1.131],[11.165,2.168],[8.331,-7.745],[7.845,-9.777],[7.986,-9.106],[9.011,-3.042],[11.744,0.213],[13.069,-0.831],[7.924,-13.742],[14.095,-7.572],[7.142,2.358],[9.898,-0.398],[9.151,-25.517],[-23.152,11.514],[-22.223,0.89],[-26.509,15.491],[-21.052,3.281],[-41.768,18.566],[-14.888,-0.779]],"o":[[-10.026,-3.307],[-12.202,-1.131],[-11.83,4.243],[-8.331,7.745],[-6.046,7.534],[-7.986,9.106],[-8.957,3.023],[-11.744,-0.213],[-13.207,8.46],[-7.925,13.742],[-8.535,-0.965],[-7.142,-2.358],[-21.653,16.348],[25.037,-9.63],[18.303,3.031],[25.64,-16.36],[24.915,0.582],[35.046,-25.287],[14.33,1.337],[14.361,2.956]],"v":[[2801,852],[2766.854,846.146],[2731,842],[2701.512,860.349],[2678,887],[2656.724,913.869],[2631,934],[2599.584,937.144],[2562,937],[2533.166,973.166],[2503,1008],[2480.521,1001.978],[2456,998],[2405,1063],[2459,1013],[2512,1024],[2569,955],[2638,951],[2729,861],[2770,867]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[0.667,0],[37.792,-32.209],[16.946,1.014],[8.431,-0.633],[9.502,-10.833],[17.065,-11.937],[32.667,3.454],[26.336,-12.33],[14.009,-1.507],[7.824,-11.592],[3.491,-18.176],[-23.168,10.832],[-21.362,3.826],[-21.251,14.415],[-24.137,15.604],[-30.022,16.312],[-25.26,2.647],[-17.763,20.904],[-12.142,7.192],[5.922,16.23]],"o":[[-42.973,27.028],[-18.268,-2.873],[-8.442,-0.505],[-16.508,1.239],[-16.956,19.332],[-20.301,12.189],[-26.254,12.413],[-15.711,0.364],[-15.19,1.634],[-10.339,11.327],[26.797,-7.204],[22.848,-2.033],[19.97,-15.696],[40.538,4.105],[23.597,-22.737],[23.82,4.637],[21.546,-17.12],[9.958,-9.375],[6.404,-10.488],[-0.667,0]],"v":[[2909,743],[2802,846],[2752,849],[2726,842],[2684,879],[2639,927],[2553,940],[2500,1003],[2459,993],[2431,1021],[2405,1060],[2458,1011],[2512,1021],[2556,958],[2656,937],[2722,864],[2805,865],[2860,804],[2890,776],[2911,743]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-7.045,27.331],[8.519,-1.397],[8.367,0.857],[4.477,1.379],[4.998,-0.038],[18.697,-20.803],[23.56,-15.94],[13.833,0],[13.833,0],[11.694,-16.306],[18.611,-9.389],[8.227,-1.625],[8.347,-1.405],[7.529,-2.237],[2.562,-7.653],[-14.677,2.823],[-16.414,1.087],[-31.895,22.105],[-27.473,2.507],[-48.168,27.832]],"o":[[-8.556,-1.73],[-8.519,1.397],[-5.095,-0.522],[-4.477,-1.379],[-24.654,14.846],[-18.697,20.803],[-13.833,0],[-13.833,0],[-17.612,10.388],[-11.694,16.306],[-6.744,2.094],[-8.227,1.625],[-8.32,1.4],[-7.529,2.237],[17.881,0.38],[14.677,-2.823],[34.528,-19.471],[28.076,0.046],[44.717,-31.283],[27.721,8.042]],"v":[[3006,737],[2980.358,737.845],[2955,740],[2940.928,736.58],[2927,734],[2864.68,790.179],[2804,848],[2762.5,848],[2721,848],[2680.249,891.249],[2638,933],[2615.203,938.517],[2590,943],[2565.182,947.31],[2549,961],[2596.6,956.1],[2642,949],[2721,866],[2806,866],[2923,755]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-0.566,4.544],[9.236,-10.097],[12.652,-6.681],[12.018,1.149],[13.487,-0.321],[14.583,-14.149],[12.747,-15.971],[4.849,-5.73],[4.985,-1.543],[9.847,-0.833],[-0.069,-12.293],[-10.71,2.04],[-8.202,2.938],[-15.061,17.606],[-21.064,11.602],[-11.952,-0.881],[-13.095,0.262],[-9.127,8.848],[-8.248,8.986],[-2.907,3.349]],"o":[[-13.403,5.931],[-9.236,10.097],[-13.44,0.274],[-12.018,-1.149],[-17.921,9.432],[-14.583,14.149],[-3.62,4.536],[-4.849,5.73],[-7.683,2.377],[-9.847,0.833],[10.957,3.098],[10.71,-2.04],[13.692,-18.975],[15.061,-17.606],[13.095,-0.262],[11.952,0.881],[11.242,-6.623],[9.127,-8.848],[2.807,-3.058],[2.907,-3.349]],"v":[[3060,690],[3027.937,715.938],[2997,743],[2959.535,740.965],[2922,739],[2873.619,775.096],[2833,821],[2820.024,837.745],[2805,850],[2775.686,851.563],[2758,868],[2791.067,868.527],[2820,860],[2861.971,803.971],[2915,759],[2952,760.5],[2989,762],[3019.245,738.272],[3045,711],[3054.181,701.615]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-1.073,8.775],[0.167,0],[0.167,0],[0.167,0],[0.167,0],[4.145,-6.355],[5.543,-4.957],[12.184,-2.982],[12.003,-3.163],[7.424,-12.076],[4.007,-15.493],[8.226,-2.441],[1.869,-8.797],[-8.522,4.311],[-5.797,7.036],[-6.262,10.571],[-9.761,7.072],[-11.46,3.207],[-11.188,3.479],[-5.251,7.158]],"o":[[-0.167,0],[-0.167,0],[-0.167,0],[-0.167,0],[-5.878,4.622],[-4.145,6.355],[-11.259,3.908],[-12.184,2.982],[-10.297,9.202],[-7.424,12.076],[-5.227,5.439],[-8.226,2.441],[12.114,-0.719],[8.522,-4.311],[3.191,-13.642],[6.262,-10.571],[11.972,-2.694],[11.46,-3.207],[4.921,-6.591],[5.251,-7.158]],"v":[[2708,707],[2707.5,707],[2707,707],[2706.5,707],[2706,707],[2691.749,724.249],[2678,742],[2642.558,752.059],[2606,761],[2579.282,792.782],[2562,834],[2539.481,843.482],[2522,858],[2552.738,850.238],[2574,833],[2588.073,796.573],[2612,770],[2647.089,761.089],[2681,751],[2697.386,730.638]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-1.855,8.978],[4.735,-0.446],[4.581,-0.587],[4.556,-0.222],[4.659,0.648],[4.453,-6.13],[4.098,-6.486],[4.72,-5.863],[6.322,-4.262],[8.604,-1.646],[7.132,-3.118],[4.837,-5.413],[1.718,-8.532],[-2.229,3.938],[-3.163,3.004],[-12.726,2.107],[-11.497,3.337],[-7.666,12.001],[-11.489,8.177],[-9.885,0.949]],"o":[[-5.017,-0.199],[-4.735,0.446],[-4.581,0.587],[-4.556,0.222],[-5.787,4.796],[-4.453,6.13],[-4.098,6.486],[-4.72,5.863],[-9.254,0.996],[-8.604,1.646],[-7.132,3.118],[-4.837,5.413],[4.92,-1.246],[2.229,-3.938],[9.599,-5.234],[12.726,-2.107],[9.847,-9.82],[7.666,-12.001],[9.607,-1.226],[9.884,-0.949]],"v":[[2781,672],[2766.404,672.498],[2752.463,674.174],[2738.79,675.513],[2725,675],[2709.883,691.633],[2697.301,710.801],[2684.319,729.569],[2668,745],[2641.007,748.757],[2617.196,755.696],[2599.038,768.288],[2589,789],[2598.818,780.318],[2606,769],[2640.577,759.077],[2678,752],[2702.768,717.768],[2730,686],[2761.314,684.814]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-1.747,3.42],[2.057,-1.943],[1.491,-2.509],[1.814,-2.186],[3.025,-0.975],[8.956,-1.021],[7.158,-3.235],[4.249,-5.721],[0.226,-8.481],[-2.285,2.215],[-1.473,3.027],[-1.827,2.673],[-3.346,1.154],[-4.077,0.348],[-4.156,0.248],[-4.126,-0.099],[-3.987,-0.694],[-2.491,2.676],[-2.014,3.152],[-1.766,3.4]],"o":[[-3.51,0.49],[-2.057,1.943],[-1.491,2.509],[-1.814,2.186],[-9.64,-0.92],[-8.956,1.021],[-7.158,3.235],[-4.249,5.721],[4.262,-0.238],[2.285,-2.215],[1.473,-3.027],[1.827,-2.673],[3.89,-0.202],[4.077,-0.348],[4.156,-0.248],[4.126,0.099],[3.196,-1.971],[2.491,-2.676],[2.014,-3.152],[1.766,-3.4]],"v":[[2800,648],[2791.872,651.872],[2786.773,658.772],[2782.037,666.037],[2775,671],[2746.828,671.083],[2722.379,677.399],[2704.991,690.765],[2698,712],[2707.528,708.028],[2712.874,699.874],[2717.532,691.032],[2725,685],[2736.978,684.113],[2749.354,683.157],[2761.803,682.872],[2774,684],[2782.473,676.973],[2789.174,668.174],[2794.788,658.288]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-2.723,5.61],[0.434,0.149],[0.412,0.172],[0.522,0.062],[0.764,-0.18],[3.095,-3.989],[2.972,-4.112],[2.766,-4.317],[2.479,-4.605],[0.615,0.178],[0.708,0],[0.615,-0.178],[0.333,-0.357],[-0.322,-1.094],[-0.619,-0.798],[-0.862,-0.555],[-1.052,-0.364],[-3.823,4.51],[-3.337,4.996],[-2.97,5.363]],"o":[[-0.589,0.005],[-0.434,-0.149],[-0.412,-0.172],[-0.522,-0.062],[-3.135,3.948],[-3.095,3.989],[-2.972,4.112],[-2.766,4.317],[-0.333,-0.357],[-0.615,-0.178],[-0.708,0],[-0.615,0.178],[-0.026,1.443],[0.322,1.094],[0.619,0.798],[0.862,0.555],[4.428,-3.905],[3.823,-4.51],[3.337,-4.996],[2.97,-5.363]],"v":[[2823,1057],[2821.498,1056.752],[2820.262,1056.237],[2818.895,1055.855],[2817,1056],[2807.635,1067.885],[2798.515,1080.015],[2789.888,1092.638],[2782,1106],[2780.531,1105.197],[2778.5,1104.93],[2776.469,1105.197],[2775,1106],[2775.457,1109.793],[2776.882,1112.619],[2779.116,1114.635],[2782,1116],[2794.348,1103.347],[2805.058,1089.058],[2814.489,1073.489]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[1.551,1.366],[-0.442,-1.503],[-0.518,-1.426],[-0.592,-1.352],[-0.663,-1.282],[-0.731,-1.214],[-0.796,-1.149],[-0.857,-1.087],[-0.916,-1.028],[-0.972,-0.972],[-1.025,-0.919],[-1.075,-0.869],[-1.122,-0.822],[0.454,2.463],[0.829,2.088],[1.131,1.785],[1.361,1.556],[1.518,1.399],[1.601,1.315],[1.612,1.304]],"o":[[0.362,1.582],[0.442,1.503],[0.518,1.426],[0.592,1.352],[0.663,1.282],[0.731,1.214],[0.796,1.149],[0.857,1.087],[0.916,1.028],[0.972,0.972],[1.025,0.919],[1.075,0.869],[-0.006,-2.911],[-0.454,-2.463],[-0.829,-2.088],[-1.131,-1.785],[-1.361,-1.556],[-1.518,-1.399],[-1.601,-1.315],[-1.612,-1.304]],"v":[[1330,935],[1331.206,939.627],[1332.647,944.019],[1334.314,948.186],[1336.197,952.136],[1338.288,955.878],[1340.579,959.422],[1343.059,962.775],[1345.72,965.946],[1348.554,968.946],[1351.551,971.782],[1354.703,974.464],[1358,977],[1357.292,968.958],[1355.349,962.151],[1352.391,956.359],[1348.634,951.366],[1344.299,946.951],[1339.602,942.898],[1334.763,938.987]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[0.222,0.111],[0.665,-0.669],[0.782,-0.551],[0.824,-0.51],[0.788,-0.545],[0.676,-0.658],[0.487,-0.847],[0.221,-1.113],[-0.122,-1.455],[-0.986,0.347],[-0.917,0.416],[-0.828,0.505],[-0.719,0.614],[-0.591,0.742],[-0.443,0.891],[-0.274,1.059],[-0.086,1.247],[0.128,0.205],[0.181,0.152],[0.213,0.121]],"o":[[-0.47,0.863],[-0.665,0.669],[-0.782,0.551],[-0.824,0.51],[-0.788,0.545],[-0.676,0.658],[-0.487,0.847],[-0.221,1.113],[1.035,-0.298],[0.986,-0.347],[0.917,-0.416],[0.828,-0.505],[0.72,-0.614],[0.591,-0.742],[0.443,-0.891],[0.274,-1.059],[-0.053,-0.281],[-0.128,-0.205],[-0.181,-0.152],[-0.213,-0.121]],"v":[[1326,1506],[1324.279,1508.279],[1322.09,1510.089],[1319.662,1511.661],[1317.225,1513.225],[1315.011,1515.01],[1313.248,1517.248],[1312.168,1520.168],[1312,1524],[1315.038,1523.037],[1317.898,1521.897],[1320.52,1520.52],[1322.847,1518.847],[1324.818,1516.817],[1326.373,1514.373],[1327.454,1511.453],[1328,1508],[1327.724,1507.276],[1327.255,1506.745],[1326.658,1506.342]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 6"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[0.21,1.817],[1.1,-1.072],[0.895,-1.411],[0.678,-1.669],[0.449,-1.844],[0.208,-1.937],[-0.045,-1.948],[-0.31,-1.877],[-0.587,-1.724],[-1.249,0.861],[-0.854,1.316],[-0.521,1.666],[-0.251,1.909],[-0.042,2.045],[0.104,2.075],[0.188,1.999]],"o":[[-1.293,0.651],[-1.1,1.072],[-0.895,1.411],[-0.678,1.669],[-0.449,1.844],[-0.208,1.937],[0.045,1.948],[0.31,1.877],[1.707,-0.299],[1.249,-0.861],[0.854,-1.316],[0.521,-1.666],[0.251,-1.909],[0.042,-2.045],[-0.104,-2.075],[-0.188,-1.999]],"v":[[1803,1381],[1799.408,1383.605],[1796.414,1387.351],[1794.053,1391.991],[1792.361,1397.28],[1791.373,1402.972],[1791.127,1408.82],[1791.657,1414.578],[1793,1420],[1797.419,1418.234],[1800.559,1414.942],[1802.607,1410.442],[1803.749,1405.054],[1804.174,1399.097],[1804.066,1392.89],[1803.612,1386.751]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[0.407,2.011],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.296,-2.683],[-0.245,-2.618],[-1.043,-2.001],[-2.099,-0.833],[-0.182,2.284],[-0.028,2.363],[0.168,2.272]],"o":[[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.579,2.196],[-0.296,2.683],[0.245,2.618],[1.043,2.001],[0.294,-2.036],[0.182,-2.284],[0.028,-2.363],[-0.168,-2.272]],"v":[[2328,1037],[2327.375,1037],[2326.75,1037],[2326.125,1037],[2325.5,1037],[2324.875,1037],[2324.25,1037],[2323.625,1037],[2323,1037],[2321.623,1044.455],[2321.483,1052.543],[2323.351,1059.61],[2328,1064],[2328.725,1057.477],[2329.052,1050.463],[2328.852,1043.468]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-0.833,2.964],[3.74,0.585],[3.962,0.02],[3.367,-0.825],[1.953,-1.949],[0.747,-4.439],[0.784,-4.334],[-0.105,-4.103],[-1.92,-3.747],[-0.737,3.93],[-0.43,4.237],[-0.603,4.063],[-1.257,3.41],[-3.508,-0.312],[-3.268,-0.059],[-2.376,1.033]],"o":[[-2.698,-0.87],[-3.74,-0.585],[-3.962,-0.02],[-3.367,0.825],[0.215,4.418],[-0.747,4.439],[-0.784,4.334],[0.105,4.103],[1.524,-3.143],[0.737,-3.93],[0.43,-4.237],[0.603,-4.063],[3.095,-0.274],[3.508,0.312],[3.268,0.059],[2.376,-1.033]],"v":[[2368,1006],[2358.138,1003.748],[2346.381,1002.771],[2335.183,1003.909],[2327,1008],[2325.97,1021.316],[2323.443,1034.506],[2322.194,1047.193],[2325,1059],[2328.27,1048.27],[2329.9,1035.9],[2331.33,1023.33],[2334,1012],[2344.067,1012.268],[2354.394,1013.035],[2363.023,1011.785]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-4.135,11.577],[1.896,0.437],[2.345,-0.011],[7.67,-1.664],[6.149,-3.184],[2.083,-9.75],[3.694,-8.14],[6.773,-0.894],[7.086,-0.58],[1.902,-9.014],[-0.382,-8.717],[-1.746,8.421],[-5.963,4.204],[-7.116,1.051],[-5.921,2.245],[-9.022,14.978]],"o":[[-0.07,-2.263],[-1.896,-0.437],[-6.172,3.161],[-7.67,1.664],[-3.975,7.859],[-2.083,9.75],[-6.822,0.845],[-6.773,0.894],[-3.773,6.228],[-1.902,9.014],[6.053,-4.113],[1.746,-8.421],[8.614,0.447],[7.116,-1.05],[8.776,-15.225],[13.054,-5.979]],"v":[[2445,934],[2441.706,930.295],[2435,930],[2413.483,936.483],[2392,943],[2383.789,970.289],[2376,998],[2355.699,1000.699],[2335,1003],[2326.384,1026.634],[2324,1054],[2333.568,1033.067],[2343,1012],[2366.519,1011.02],[2386,1006],[2403,951]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[3.056,-0.722],[10.856,-2.311],[9.384,-3.783],[5.398,-12.602],[8.502,-9.498],[9.408,-3.092],[7.717,-4.783],[7.343,-14.324],[11.8,-3.867],[3.491,-20.176],[-15.338,8.662],[-10.928,4.738],[-6.447,15.552],[-15.149,12.851],[-17.154,15.512],[-2.935,20.755]],"o":[[-9.193,3.974],[-10.856,2.311],[-8.905,9.096],[-5.398,12.602],[-8.65,3.85],[-9.408,3.092],[-6.037,15.63],[-10.757,4.909],[-8.962,14.705],[17.063,-6.937],[15.491,-0.175],[8.107,-13.893],[18.086,-9.914],[11.908,-20.758],[18.918,-8.099],[-2.356,0.022]],"v":[[2548,839],[2517.143,847.643],[2486,856],[2466.198,890.198],[2447,925],[2419.301,934.801],[2393,946],[2378,996],[2338,1003],[2319,1055],[2347,1011],[2387,1004],[2403,954],[2461,928],[2495,864],[2554,840]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.667,0],[20.031,-21.302],[25.572,-0.428],[9.195,-21.471],[27.649,-5.685],[3.889,-16.111],[11.324,-3.01],[3.176,-20.825],[-11.645,10.355],[-10.984,5.682],[-7.649,12.018],[-18.463,16.203],[-11.45,14.883],[-18.432,16.568],[-2.763,9.237],[0.045,20.075]],"o":[[-25.559,15.774],[-21.153,4.847],[-15.265,15.402],[-17.233,16.1],[-7.574,12.425],[-9.948,4.385],[-10.929,13.071],[16.659,-5.341],[12.329,-4.338],[5.759,-13.908],[28.925,-5.742],[7.433,-18.901],[27.713,-7.287],[2.841,-9.159],[6.773,-16.583],[-0.667,0]],"v":[[2601,765],[2550,838],[2488,854],[2456,914],[2389,947],[2376,994],[2339,1000],[2319,1052],[2344,1011],[2386,1003],[2398,956],[2466,920],[2492,867],[2568,838],[2578,812],[2603,765]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[2.333,0],[11.618,-3.049],[11.965,-2.702],[7.547,-13.787],[10.033,-11.301],[12.756,-3.578],[10.921,-5.412],[13.089,-16.245],[12.435,-20.565],[-23.574,11.093],[-10.709,17.958],[-22.681,9.986],[-23.808,18.192],[-5.03,-0.697],[-9.764,4.088],[-1.608,10.974]],"o":[[-9.564,5.102],[-11.618,3.049],[-10.78,10.553],[-7.547,13.787],[-11.056,5.277],[-12.756,3.578],[-11.379,17.954],[-20.069,12.932],[26.881,-7.786],[10.682,-17.985],[26.332,-6.335],[17.838,-24.163],[5.03,0.697],[9.566,-3.75],[9.069,-3.797],[-2.333,0]],"v":[[2675,739],[2642.801,750.801],[2607,759],[2580.939,796.939],[2556,836],[2519.399,848.399],[2483,861],[2455,921],[2394,959],[2465,926],[2492,867],[2566,843],[2616,767],[2628,766],[2659,757],[2682,739]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[7.371,4.129],[7.919,-3.414],[10.914,-0.419],[7.858,10.975],[13.076,5.757],[5.395,-1.605],[1.236,-5.764],[-5.033,1.508],[-4.861,0.622],[-7.652,-10.848],[-11.582,-6.918],[-9.009,3.324],[-8.913,3.42],[-3.886,-4.614],[-7.622,-0.878],[6.479,5.021]],"o":[[-7.408,3.926],[-7.92,3.414],[-11.49,-7.343],[-7.858,-10.975],[-5.184,1.816],[-5.395,1.605],[5.006,2.653],[5.033,-1.508],[9.81,8.69],[7.652,10.848],[12.05,-0.284],[9.009,-3.324],[5.833,2.667],[3.886,4.614],[-0.712,-10.788],[-6.479,-5.021]],"v":[[1573,1020],[1550.63,1031.63],[1523,1038],[1496.189,1008.311],[1467,981],[1450.039,985.039],[1439,995],[1454.109,995.456],[1469,991],[1493.671,1021.829],[1521,1050],[1551.853,1043.853],[1578,1033],[1591.158,1045.342],[1607,1055],[1594.995,1032.505]],"c":true}],"h":1},{"t":8,"s":[{"i":[[16.902,9.098],[-5.604,-9.396],[-5.173,-9.827],[-7.915,2.751],[-8.682,1.985],[-6.678,-10.321],[-13.066,-3.934],[-1.879,0.621],[-0.972,1.528],[-1.43,1.418],[1.979,0.164],[2.448,-0.718],[2.601,-0.566],[6.314,10.519],[9.329,7.504],[21.692,1.341]],"o":[[2.412,12.588],[5.604,9.396],[9.657,-1.01],[7.916,-2.751],[9.22,7.781],[6.678,10.321],[2.513,0.013],[1.879,-0.621],[1.257,-0.164],[1.43,-1.418],[-3.606,-0.44],[-2.448,0.718],[-10.416,-6.418],[-6.314,-10.519],[-20.695,-6.878],[-8.758,-17.242]],"v":[[1390,949],[1402.929,981.071],[1420,1009],[1445.731,1002.731],[1470,995],[1491.615,1024.385],[1519,1048],[1525.656,1047.156],[1530,1044],[1534.927,1041],[1535,1038],[1526.245,1038.745],[1519,1041],[1495.685,1013.814],[1474,985],[1421,996]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[4.043,-0.29],[2.635,4.865],[2.287,5.212],[2.884,4.616],[4.424,3.076],[2.059,-0.858],[1.923,-0.994],[1.403,-1.514],[0.499,-2.418],[-3.128,1.235],[-3.62,-0.029],[-5.438,-10.062],[-10.076,-5.424],[-4.125,3.081],[3.802,6.264],[2.507,-1.827]],"o":[[-3.926,-3.574],[-2.635,-4.865],[-2.287,-5.212],[-2.884,-4.616],[-1.811,1.106],[-2.059,0.858],[-1.923,0.994],[-1.403,1.514],[3.87,1.911],[3.128,-1.235],[5.171,10.329],[5.438,10.062],[4.301,-1.413],[4.125,-3.081],[-4.929,-0.596],[-2.507,1.827]],"v":[[1425,1001],[1415.394,988.106],[1408.246,972.754],[1400.725,957.775],[1390,946],[1384.1,948.85],[1378.032,951.532],[1372.948,955.198],[1370,961],[1380.187,960.912],[1390,958],[1404.822,989.678],[1427,1014],[1441.577,1007.638],[1444,994],[1433.836,996.835]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-5,-0.5],[-1.186,0.897],[-0.484,1.6],[-0.056,2.028],[0.098,2.182],[2.085,3.831],[2.53,3.386],[2.93,2.987],[3.284,2.633],[0.171,0.079],[0.137,0.113],[0.147,0.103],[0.202,0.048],[-3.115,-6.394],[-2.859,-5.416],[-1.503,-3.997]],"o":[[2.163,0.08],[1.186,-0.897],[0.484,-1.6],[0.056,-2.028],[-1.594,-4.322],[-2.085,-3.831],[-2.53,-3.386],[-2.93,-2.987],[-0.251,0.001],[-0.171,-0.079],[-0.137,-0.113],[-0.147,-0.103],[-4.318,8.009],[3.115,6.394],[1.989,3.511],[1.503,3.997]],"v":[[1019,1277],[1023.955,1275.705],[1026.391,1271.892],[1027.132,1266.382],[1027,1260],[1021.47,1247.78],[1014.535,1236.965],[1006.333,1227.418],[997,1219],[996.378,1218.872],[995.928,1218.572],[995.513,1218.237],[995,1218],[995.117,1239.445],[1006,1257],[1010.242,1269.258]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[3.136,1.697],[0.028,-0.305],[0.145,-0.188],[0.217,-0.116],[0.244,-0.089],[0.227,-0.107],[0.165,-0.169],[0.058,-0.276],[-0.094,-0.427],[-1.815,-2.851],[-2.529,-2.138],[-3.074,-1.592],[-3.451,-1.216],[1.511,3.322],[2.394,2.439],[2.936,1.897]],"o":[[0.133,0.466],[-0.028,0.305],[-0.145,0.188],[-0.217,0.116],[-0.244,0.089],[-0.227,0.107],[-0.165,0.169],[-0.058,0.276],[0.933,3.734],[1.815,2.851],[2.529,2.138],[3.074,1.592],[-0.286,-4.548],[-1.511,-3.322],[-2.394,-2.439],[-2.936,-1.897]],"v":[[2811,1061],[2811.146,1062.146],[2810.874,1062.874],[2810.32,1063.32],[2809.617,1063.617],[2808.9,1063.9],[2808.302,1064.302],[2807.957,1064.957],[2808,1066],[2812.164,1075.835],[2818.723,1083.277],[2827.17,1088.83],[2837,1093],[2834.219,1081.281],[2828.275,1072.724],[2820.194,1066.306]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[-0.922,-0.163],[0.272,0.955],[0.501,0.802],[0.694,0.635],[0.849,0.454],[0.967,0.259],[1.048,0.05],[1.092,-0.173],[1.099,-0.41],[-0.202,-0.708],[-0.521,-0.578],[-0.767,-0.466],[-0.941,-0.37],[-1.044,-0.292],[-1.075,-0.232],[-1.034,-0.189]],"o":[[-0.005,-1.095],[-0.272,-0.955],[-0.501,-0.802],[-0.694,-0.635],[-0.849,-0.454],[-0.967,-0.259],[-1.048,-0.05],[-1.092,0.173],[-0.188,0.856],[0.202,0.708],[0.521,0.578],[0.767,0.466],[0.941,0.37],[1.044,0.292],[1.075,0.232],[1.034,0.189]],"v":[[2958,1686],[2957.576,1682.921],[2956.408,1680.281],[2954.606,1678.122],[2952.282,1676.486],[2949.547,1675.414],[2946.515,1674.948],[2943.295,1675.129],[2940,1676],[2940.04,1678.343],[2941.143,1680.268],[2943.092,1681.83],[2945.673,1683.079],[2948.669,1684.068],[2951.866,1684.85],[2955.048,1685.477]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 7"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[1.692,0.725],[-0.526,-1.622],[-0.625,-1.523],[-0.749,-1.399],[-0.9,-1.248],[-1.078,-1.071],[-1.281,-0.867],[-1.51,-0.638],[-1.766,-0.382],[-2.048,-0.1],[0.677,1.74],[0.909,1.508],[1.112,1.305],[1.286,1.131],[1.431,0.986],[1.547,0.87],[1.634,0.783]],"o":[[0.454,1.694],[0.526,1.622],[0.625,1.523],[0.749,1.399],[0.9,1.248],[1.078,1.071],[1.281,0.867],[1.51,0.638],[1.766,0.382],[-0.416,-2.001],[-0.677,-1.74],[-0.909,-1.508],[-1.112,-1.305],[-1.286,-1.131],[-1.431,-0.986],[-1.547,-0.87],[-1.634,-0.783]],"v":[[2071,1430],[2072.463,1434.981],[2074.183,1439.706],[2076.237,1444.096],[2078.705,1448.072],[2081.666,1451.557],[2085.197,1454.47],[2089.377,1456.734],[2094.285,1458.27],[2100,1459],[2098.355,1453.395],[2095.97,1448.53],[2092.932,1444.318],[2089.328,1440.672],[2085.246,1437.504],[2080.773,1434.727],[2075.995,1432.255]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-0.822,0.72],[1.31,-0.102],[1.212,-0.27],[1.094,-0.42],[0.957,-0.554],[0.8,-0.67],[0.624,-0.769],[0.427,-0.85],[0.212,-0.914],[-0.023,-0.961],[-1.356,0.186],[-1.09,0.451],[-0.888,0.654],[-0.748,0.793],[-0.672,0.87],[-0.659,0.883],[-0.709,0.833]],"o":[[-1.389,-0.084],[-1.31,0.102],[-1.212,0.27],[-1.094,0.42],[-0.957,0.554],[-0.8,0.67],[-0.624,0.769],[-0.427,0.85],[-0.212,0.914],[1.685,0.143],[1.356,-0.186],[1.09,-0.451],[0.888,-0.654],[0.748,-0.793],[0.672,-0.87],[0.659,-0.883],[0.709,-0.833]],"v":[[1849,1112],[1844.947,1112.031],[1841.159,1112.593],[1837.695,1113.632],[1834.613,1115.098],[1831.973,1116.937],[1829.833,1119.099],[1828.252,1121.532],[1827.288,1124.183],[1827,1127],[1831.545,1126.92],[1835.199,1125.949],[1838.151,1124.276],[1840.59,1122.09],[1842.705,1119.58],[1844.685,1116.935],[1846.721,1114.346]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[3.096,0.904],[-0.448,-3.218],[-1.003,-2.663],[-1.454,-2.212],[-1.801,-1.866],[-2.044,-1.623],[-3.975,1.692],[-3.953,1.714],[-3.377,2.29],[-2.246,3.421],[3.58,-1.337],[3.295,-1.621],[3.318,-1.599],[3.646,-1.27],[1.034,2.966],[1.057,2.943],[1.745,2.255]],"o":[[-0.211,3.878],[0.448,3.218],[1.003,2.663],[1.454,2.212],[1.801,1.866],[3.441,-2.225],[3.975,-1.692],[3.953,-1.714],[3.377,-2.29],[-4.172,0.745],[-3.58,1.337],[-3.295,1.621],[-3.318,1.599],[-1.675,-2.325],[-1.034,-2.966],[-1.057,-2.943],[-1.745,-2.255]],"v":[[1785,1102],[1785.382,1112.618],[1787.585,1121.414],[1791.298,1128.702],[1796.207,1134.793],[1802,1140],[1813.263,1134.263],[1825.293,1129.293],[1836.427,1123.427],[1845,1115],[1833.449,1118.199],[1823.212,1122.713],[1813.369,1127.62],[1803,1132],[1799.103,1123.897],[1796.132,1114.868],[1792.095,1106.905]],"c":true}],"h":1},{"t":4,"s":[{"i":[[15.839,4.828],[0.264,-0.57],[-0.212,-1.045],[-5.165,-7.002],[-8.017,-4.149],[-7.166,3.167],[-7.899,2.434],[-3.711,-6.622],[-5.749,-4.584],[-6.475,1.917],[-4.455,2.623],[-1.503,1.271],[1.311,1.15],[6.124,-2.043],[7.193,-0.974],[14.65,7.683],[16.809,-3.525]],"o":[[-0.157,0.676],[-0.264,0.57],[4.323,7.844],[5.165,7.002],[8.436,-1.898],[7.166,-3.167],[5.405,4.928],[3.711,6.622],[5.644,-1.711],[6.475,-1.917],[1.3,-0.765],[1.503,-1.271],[-8.311,-0.144],[-6.124,2.042],[-6.269,-16.064],[-16.809,3.525],[-12.362,-8.305]],"v":[[1695,1073],[1694.223,1074.723],[1694,1077],[1707.729,1099.771],[1727,1117],[1749.902,1108.902],[1772,1100],[1784.742,1118.258],[1798,1136],[1816.892,1130.684],[1834,1124],[1838.958,1120.788],[1840,1117],[1819.161,1120.662],[1800,1126],[1772,1087],[1727,1103]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[22.678,-0.323],[5.762,9.072],[11.543,3.291],[0.173,-0.327],[-0.082,-0.581],[0.173,-0.327],[-0.082,-0.581],[-22.107,-10.559],[-21.933,0.733],[-19.821,-8.513],[-15.103,3.563],[-11.098,-8.568],[-10.721,10.279],[14.258,-1],[18.22,4.447],[16.925,-1.409],[19.27,6.397]],"o":[[-9.411,-5.423],[-5.762,-9.072],[-0.39,0.11],[-0.173,0.327],[-0.39,0.11],[-0.173,0.327],[16.035,16.632],[23.804,1.137],[19.387,8.946],[13.207,-5.46],[13.127,6.539],[18.607,-2.393],[-15.536,-3.515],[-13.183,-9.484],[-15.824,2.51],[-17.099,-8.568],[-24.614,-1.614]],"v":[[1629,1076],[1608.599,1051.901],[1585,1031],[1584.146,1031.647],[1584,1033],[1583.146,1033.647],[1583,1035],[1627,1089],[1682,1076],[1728,1115],[1769,1100],[1795,1133],[1845,1120],[1801,1123],[1769,1087],[1727,1100],[1686,1064]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[20.696,-0.454],[32.046,4.621],[10.436,-3.897],[1.439,-9.561],[-10.403,3.148],[-9.814,1.147],[-15.006,-16.994],[-24.407,-1.74],[-7.003,-3.997],[-9.75,-4.302],[-14.37,2.963],[-13.24,-6.094],[-9.383,10.283],[14.871,0.323],[15.186,6.148],[15.097,-1.903],[25.034,2.662]],"o":[[-18.92,-17.746],[-8.433,5.901],[-10.477,0.523],[6.259,11.24],[10.761,-3.256],[17.32,14.68],[22.259,-0.408],[7.767,3.233],[8.916,8.456],[16.918,-0.415],[11.372,7.961],[16.685,-2.982],[-12.788,-7.542],[-11.698,-9.635],[-13.381,3.619],[-18.209,-11.225],[-18.81,-2]],"v":[[1629,1076],[1571,1024],[1541,1037],[1517,1046],[1548,1049],[1580,1038],[1625,1089],[1683,1079],[1704,1091],[1732,1117],[1770,1103],[1796,1135],[1842,1122],[1799,1124],[1770,1089],[1734,1104],[1679,1064]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[25.931,6.402],[0,-0.667],[0,-0.667],[-1.873,-2.3],[-1.938,-2.257],[-5.816,-7.19],[-6.664,-6.167],[-9.604,3.063],[-11.247,1.419],[-24.349,-11.317],[-18.627,1.039],[-24.08,-7.253],[8.596,8.404],[12.077,5.256],[17.189,-4.145],[23.441,12.226],[21.606,-3.06]],"o":[[0,0.667],[0,0.667],[1.571,2.543],[1.873,2.3],[6.073,7.075],[5.816,7.19],[12.338,-0.329],[9.604,-3.063],[21.602,14.065],[15.978,-3.688],[23.363,7.971],[-2.166,-14.834],[-10.086,-7.247],[-19.574,1.759],[-18.137,-17.529],[-20.903,3.764],[-16.554,-15.779]],"v":[[1468,988],[1468,990],[1468,992],[1473.225,999.214],[1479,1006],[1496.556,1027.681],[1515,1048],[1546.818,1041.818],[1577,1034],[1631,1087],[1676,1073],[1734,1109],[1709,1083],[1679,1061],[1629,1075],[1576,1021],[1517,1036]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[11.681,-4.652],[5.519,5.755],[8.079,2.98],[7.464,-6.182],[4.837,-6.443],[3.368,-3.794],[2.932,-0.363],[4.547,2.634],[5.251,-3.846],[-7.323,-2.177],[-8.9,-0.6],[-7.129,8.038],[-10.195,4.972],[-7.86,-5.807],[-11.66,-2.006],[-5.339,5.493],[0.497,7.833]],"o":[[-9.845,-3.001],[-5.519,-5.755],[-11.308,-4.171],[-7.464,6.182],[-2.597,3.459],[-3.368,3.794],[-5.562,0.689],[-4.547,-2.634],[0.806,8.693],[7.323,2.177],[5.289,-9.878],[7.129,-8.037],[9.901,3.766],[7.86,5.807],[4.14,-3.197],[5.339,-5.493],[-12.302,4.031]],"v":[[2705,1116],[2683.675,1101.485],[2665,1087],[2637.147,1092.54],[2619,1114],[2609.751,1125.822],[2600,1133],[2585.266,1127.633],[2571,1127],[2584.43,1142.07],[2610,1145],[2628.32,1117.82],[2654,1098],[2679.181,1113.82],[2707,1127],[2722.977,1113.977],[2732,1094]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-8.034,-2.632],[3.311,5.245],[4.378,4.178],[3.4,5.155],[7.083,-8.417],[10.331,-5.169],[6.76,5.739],[11.584,0.916],[3.312,-3.355],[1.625,-5.042],[-1.973,2.527],[-4.114,0.385],[-6.825,-7.253],[-11.034,-2.141],[-6.841,7.992],[-8.894,5.939],[-4.558,-6.109]],"o":[[-0.2,-8.356],[-3.311,-5.245],[-4.378,-4.178],[-10.338,5.162],[-7.083,8.417],[-7.374,-5.126],[-6.761,-5.739],[-4.128,2.539],[-3.312,3.355],[4.994,0.494],[1.973,-2.527],[11.664,-0.153],[6.825,7.253],[9.742,-5.091],[6.841,-7.992],[4.734,5.932],[4.558,6.109]],"v":[[2781,1116],[2775.222,1096.111],[2763.178,1082.488],[2751,1069],[2726.494,1090.994],[2702,1113],[2682.158,1095.342],[2656,1084],[2644.623,1092.623],[2637,1105],[2646.159,1100.659],[2654,1095],[2679.472,1108.78],[2704,1126],[2727.636,1105.136],[2750,1083],[2763.025,1101.975]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[4.2,-1.3],[3.064,4.936],[4.077,3.923],[5.919,2.081],[3.956,-4.544],[-0.559,-9.059],[-2.136,4.031],[-4.823,1.343],[-2.672,-3.257],[-2.838,-4.139],[-2.926,-4.37],[-2.53,0.056],[-1.249,1.303],[-0.711,0.78],[-2.21,3.922],[-1.806,3.633],[2.186,-3.314]],"o":[[-2.881,-5.119],[-3.064,-4.936],[-4.077,-3.923],[-4.735,3.765],[-3.956,4.544],[6.632,0.466],[2.136,-4.031],[3.474,1.833],[2.672,3.257],[1.767,2.577],[2.926,4.37],[0.293,-0.006],[1.249,-1.303],[3.354,-3.678],[2.21,-3.922],[-6.057,-0.557],[-2.186,3.314]],"v":[[2781,1104],[2772.29,1088.71],[2761.786,1075.214],[2747,1066],[2733.03,1077.53],[2727,1097],[2738.357,1089.857],[2747,1080],[2755.977,1087.771],[2764,1099],[2771.428,1110.975],[2780,1119],[2782.687,1116.58],[2786,1113],[2794.16,1101.466],[2800,1090],[2789.107,1095.608]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.028,1.361],[0.532,0.135],[0.571,0.096],[0.617,0.05],[0.67,-0.003],[0.728,-0.062],[4.582,-5.251],[4.504,-5.329],[4.295,-5.539],[3.954,-5.88],[-4.85,4.316],[-4.078,5.089],[-3.939,5.228],[-4.432,4.735],[-1.047,0.286],[-0.623,0.711],[-0.264,1.069]],"o":[[-0.498,-0.168],[-0.532,-0.135],[-0.571,-0.096],[-0.617,-0.05],[-0.67,0.003],[-4.529,5.304],[-4.582,5.251],[-4.504,5.329],[-4.295,5.539],[6.255,-2.911],[4.85,-4.316],[4.078,-5.089],[3.939,-5.228],[1.538,0.205],[1.047,-0.286],[0.623,-0.711],[0.264,-1.069]],"v":[[1400,1468],[1398.457,1467.543],[1396.804,1467.196],[1395.024,1466.976],[1393.095,1466.905],[1391,1467],[1377.3,1482.8],[1363.637,1498.636],[1350.405,1514.905],[1338,1532],[1354.501,1521.001],[1367.735,1506.736],[1379.602,1491.102],[1392,1476],[1395.861,1475.861],[1398.349,1474.349],[1399.663,1471.663]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[0.33,1.549],[1.376,-0.321],[1.234,-0.59],[1.055,-0.815],[0.839,-0.998],[0.586,-1.136],[0.296,-1.232],[-0.03,-1.284],[-0.394,-1.293],[-0.794,-1.258],[-1.244,0.523],[-1.107,0.74],[-0.94,0.935],[-0.744,1.105],[-0.52,1.252],[-0.266,1.374],[0.017,1.474]],"o":[[-1.482,0.008],[-1.376,0.321],[-1.234,0.59],[-1.055,0.815],[-0.839,0.998],[-0.586,1.136],[-0.296,1.232],[0.03,1.284],[0.394,1.293],[1.352,-0.281],[1.244,-0.523],[1.107,-0.74],[0.94,-0.935],[0.744,-1.105],[0.52,-1.252],[0.266,-1.374],[-0.017,-1.474]],"v":[[998,1218],[993.704,1218.504],[989.779,1219.88],[986.337,1221.998],[983.487,1224.728],[981.34,1227.94],[980.008,1231.503],[979.6,1235.288],[980.227,1239.163],[982,1243],[985.901,1241.789],[989.434,1239.888],[992.511,1237.369],[995.045,1234.304],[996.948,1230.763],[998.134,1226.818],[998.513,1222.54]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[0.082,1.291],[1.005,0.158],[0.878,-0.105],[0.756,-0.331],[0.637,-0.521],[0.523,-0.676],[0.412,-0.794],[0.305,-0.876],[0.202,-0.923],[0.102,-0.933],[-1.163,0.045],[-1.019,0.19],[-0.863,0.345],[-0.697,0.512],[-0.519,0.69],[-0.33,0.879],[-0.129,1.079]],"o":[[-1.135,-0.456],[-1.005,-0.158],[-0.878,0.105],[-0.756,0.331],[-0.637,0.521],[-0.523,0.676],[-0.412,0.794],[-0.305,0.876],[-0.202,0.923],[1.296,0.088],[1.163,-0.045],[1.019,-0.19],[0.863,-0.345],[0.697,-0.512],[0.519,-0.69],[0.33,-0.879],[0.129,-1.079]],"v":[[1659,1816],[1655.792,1815.088],[1652.968,1815.018],[1650.518,1815.68],[1648.429,1816.967],[1646.689,1818.772],[1645.288,1820.985],[1644.214,1823.5],[1643.455,1826.207],[1643,1829],[1646.692,1829.067],[1649.967,1828.717],[1652.793,1827.918],[1655.135,1826.635],[1656.961,1824.836],[1658.236,1822.486],[1658.927,1819.552]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 8"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-1.495,0.844],[1.15,1.206],[1.618,0.664],[1.943,0.225],[2.128,-0.11],[2.17,-0.341],[2.071,-0.469],[1.831,-0.493],[1.448,-0.413],[-1.464,-0.787],[-1.714,-0.625],[-1.882,-0.439],[-1.968,-0.229],[-1.973,0.004],[-1.895,0.26],[-1.736,0.54]],"o":[[-0.542,-1.852],[-1.15,-1.206],[-1.618,-0.664],[-1.943,-0.225],[-2.128,0.11],[-2.17,0.341],[-2.071,0.469],[-1.831,0.493],[1.132,0.926],[1.464,0.787],[1.714,0.625],[1.882,0.439],[1.968,0.229],[1.973,-0.004],[1.895,-0.26],[1.736,-0.54]],"v":[[2267,1468],[2264.427,1463.438],[2260.239,1460.659],[2254.862,1459.351],[2248.72,1459.204],[2242.239,1459.906],[2235.841,1461.146],[2229.954,1462.615],[2225,1464],[2228.915,1466.576],[2233.702,1468.7],[2239.117,1470.301],[2244.912,1471.31],[2250.844,1471.654],[2256.666,1471.264],[2262.133,1470.07]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[0.404,-1.137],[-1.121,0.535],[-1.046,0.775],[-0.908,0.97],[-0.708,1.12],[-0.445,1.225],[-0.121,1.285],[0.266,1.3],[0.715,1.27],[0.839,-0.702],[0.677,-0.865],[0.548,-0.993],[0.453,-1.089],[0.391,-1.151],[0.362,-1.18],[0.366,-1.175]],"o":[[1.134,-0.25],[1.121,-0.535],[1.046,-0.775],[0.908,-0.97],[0.708,-1.12],[0.445,-1.225],[0.121,-1.285],[-0.266,-1.3],[-1.035,0.507],[-0.839,0.702],[-0.677,0.865],[-0.548,0.993],[-0.453,1.089],[-0.391,1.151],[-0.362,1.18],[-0.366,1.175]],"v":[[2333,1186],[2336.399,1184.811],[2339.664,1182.834],[2342.61,1180.205],[2345.048,1177.059],[2346.793,1173.53],[2347.658,1169.754],[2347.456,1165.866],[2346,1162],[2343.197,1163.822],[2340.931,1166.181],[2339.101,1168.976],[2337.608,1172.108],[2336.352,1175.476],[2335.231,1178.981],[2334.148,1182.522]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-3.918,0.085],[1.946,3.054],[2.646,2.354],[3.252,1.748],[3.764,1.236],[2.755,-3.443],[2.921,-3.287],[2.205,-3.576],[0.608,-4.309],[-2.592,2.825],[-2.269,3.148],[-2.543,2.874],[-3.413,2.004],[-1.776,-2.058],[-1.77,-2.063],[-2.484,-1.349]],"o":[[-1.151,-3.849],[-1.946,-3.054],[-2.646,-2.354],[-3.252,-1.748],[-1.708,4.043],[-2.755,3.443],[-2.921,3.287],[-2.205,3.576],[3.511,-1.906],[2.592,-2.825],[2.269,-3.148],[2.543,-2.874],[2.501,1.332],[1.776,2.058],[1.77,2.063],[2.484,1.349]],"v":[[2395,1167],[2390.33,1156.67],[2383.418,1148.582],[2374.547,1142.453],[2364,1138],[2357.085,1149.117],[2348.351,1159.101],[2340.441,1169.284],[2336,1181],[2345.005,1173.755],[2352.147,1164.648],[2359.216,1155.466],[2368,1148],[2374.236,1153.265],[2379.375,1159.625],[2385.577,1164.924]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-15.834,-0.832],[7.92,3.809],[6.528,4.341],[5.591,-7.409],[8.958,-4.042],[5.177,4.717],[7.221,-0.626],[3.153,-3.052],[2.207,-2.517],[2.565,-3.264],[0.941,-3.751],[-5.224,5.183],[-6.253,3.263],[-6,-4.334],[-9.378,-0.956],[-16.44,8.227]],"o":[[0.208,-9.423],[-7.92,-3.809],[-9.679,3.321],[-5.591,7.409],[-7.072,-1.758],[-5.177,-4.717],[-3.18,0.275],[-3.153,3.052],[-2.798,3.191],[-2.565,3.264],[6.852,-1.004],[5.224,-5.183],[5.623,4.71],[6,4.334],[15.931,-8.735],[11.973,4.694]],"v":[[2484,1154],[2470.052,1135.688],[2446,1125],[2424.959,1142.959],[2405,1162],[2387.612,1150.212],[2370,1142],[2360.271,1147.819],[2352,1157],[2343.607,1166.579],[2338,1177],[2355.449,1166.194],[2372,1152],[2388.685,1166.316],[2411,1175],[2449,1139]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-24.634,5.268],[4.708,2.541],[4.457,2.716],[3.876,3.165],[5.18,0.708],[8.039,-8.295],[11.543,-4.79],[17.257,4.409],[17.788,-6.879],[12.128,4.539],[7.903,-16.43],[-15.762,4.905],[-17.371,-1.962],[-17.468,6.198],[-22.659,1.326],[-22.244,6.422]],"o":[[0.287,-6.121],[-4.708,-2.541],[-4.315,-2.63],[-3.876,-3.166],[-13.302,3.031],[-8.039,8.295],[-16.011,-5.655],[-15.29,9.377],[-11.634,-5.033],[-16.213,8.12],[18.159,-2.508],[12.402,6.931],[16.069,-7.597],[16.975,4.359],[18.919,-9.748],[19.055,3.636]],"v":[[2597,1139],[2589.058,1126.946],[2574,1120],[2562.148,1110.559],[2549,1104],[2519.18,1123.181],[2492,1145],[2445,1127],[2406,1162],[2375,1143],[2335,1176],[2375,1154],[2412,1175],[2450,1142],[2500,1156],[2548,1118]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-19.147,9.187],[-25.889,-1.444],[-12.116,10.55],[6.056,12.082],[21.172,-12.828],[16.976,9.025],[19.555,-8.778],[11.246,4.035],[7.762,-0.176],[16.428,-5.732],[13.006,3.994],[8.772,-15.228],[-14.278,5.474],[-15.132,-4.201],[-14.549,6.784],[-21.848,-1.485]],"o":[[17.773,9.56],[13.364,-9.303],[8.4,-4.097],[-25.703,8.297],[-17.794,-8.207],[-19.283,9.05],[-14.223,1.003],[-8.339,-2.992],[-17.555,0.399],[-11.954,-5.046],[-14.475,9.525],[17.958,1.508],[12.743,6.59],[12.461,-8.873],[14.298,9.035],[20.32,-8.014]],"v":[[2546,1118],[2603,1143],[2636,1108],[2652,1084],[2596,1130],[2545,1103],[2497,1140],[2461,1138],[2440,1127],[2406,1159],[2374,1140],[2335,1173],[2375,1152],[2411,1174],[2442,1141],[2498,1155]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-23.187,6.831],[4.903,1.819],[4.127,2.078],[3.758,3.934],[4.944,1.731],[0.333,0],[0.333,0],[8.638,-9.362],[12.25,-5.75],[21.456,5.878],[20.593,-7.407],[22.434,-3.508],[-24.037,-3.963],[-17.678,8.989],[-23.474,-4.193],[-23.129,10.871]],"o":[[-0.262,-6.646],[-4.903,-1.819],[-5.026,-2.531],[-3.757,-3.935],[-0.333,0],[-0.333,0],[-12.198,5.802],[-8.638,9.362],[-19.82,-7.514],[-17.528,10.472],[-21.476,-0.617],[12.947,15.053],[17.833,-8.833],[18.401,9.265],[21.906,-12.094],[14.309,8.52]],"v":[[2709,1119],[2699.899,1107.574],[2685,1103],[2672.438,1092.4],[2660,1083],[2659,1083],[2658,1083],[2628.539,1107.539],[2599,1132],[2543,1106],[2498,1145],[2439,1137],[2504,1156],[2547,1119],[2604,1145],[2659,1098]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[25.622,-17.378],[4.828,11.172],[8.943,7.057],[1.135,-0.865],[0.461,-1.539],[-0.751,-2.916],[-0.466,-3.201],[-4.25,-10.75],[-4.298,-10.702],[-12.1,11.566],[-14.792,8.874],[-7.93,-11.403],[-17.766,-1.568],[-1.337,17.329],[10.181,-3.819],[29.313,11.687]],"o":[[-5.744,-10.256],[-4.828,-11.172],[-0.999,1.001],[-1.135,0.865],[-0.47,4.137],[0.751,2.916],[6.703,8.297],[4.25,10.75],[15.807,-7.86],[12.1,-11.566],[10.513,8.821],[7.93,11.403],[11.45,-7.217],[-10.656,3.344],[-29.1,-11.9],[-28.09,14.91]],"v":[[1112,1258],[1097.4,1224.6],[1078,1196],[1074.596,1198.596],[1072,1202],[1072.798,1212.202],[1075,1221],[1090.804,1250.196],[1103,1283],[1143.261,1252.261],[1182,1220],[1206.56,1253.44],[1242,1276],[1269,1247],[1243,1263],[1183,1200]],"c":true}],"h":1},{"t":8,"s":[{"i":[[6.293,3.26],[0.137,0.197],[0.425,-0.092],[6.083,-7.167],[0.532,-10.137],[-3.489,4.511],[-7.241,0.759],[-2.568,-6.634],[-2.669,-5.956],[-3.337,-5.659],[-7.083,-1.634],[-6.062,7.683],[0.631,11.811],[3.619,-5.548],[7.543,-1.623],[6.851,18.331]],"o":[[-0.028,-0.305],[-0.137,-0.197],[-6.138,6.197],[-6.083,7.167],[6.803,-1.197],[3.489,-4.511],[0.061,7.508],[2.567,6.634],[2.568,5.728],[3.337,5.659],[9.383,-3.459],[6.062,-7.683],[-8.981,0.186],[-3.619,5.548],[-10.403,-15.172],[-2.257,-6.04]],"v":[[1079,1192],[1078.797,1191.202],[1078,1191],[1058.296,1210.545],[1047,1236],[1060.671,1225.671],[1075,1216],[1079.543,1237.164],[1088,1256],[1096.113,1274.071],[1111,1286],[1135.011,1269.264],[1144,1240],[1127.422,1250.922],[1113,1264],[1088,1210]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[1.865,1.771],[1.688,0.145],[1.932,-0.099],[0.426,-0.408],[0.177,-0.657],[4.325,-6.25],[5.249,-6.887],[6.384,-7.355],[-0.074,-11.312],[-2.574,2.926],[-2.144,3.356],[-7.761,9.406],[-7.211,9.955],[-1.106,-0.939],[-1.354,1.207],[0.484,3.411]],"o":[[-1.316,-0.518],[-1.688,-0.145],[-0.12,0.713],[-0.426,0.408],[-5.45,5.115],[-4.325,6.25],[-5.537,7.266],[-6.384,7.355],[5.56,0.06],[2.574,-2.926],[8.744,-8.423],[7.761,-9.406],[2.222,-0.548],[1.106,0.939],[1.803,-2.586],[-0.484,-3.411]],"v":[[1078,1198],[1073.462,1197.038],[1068,1197],[1067.043,1198.543],[1066,1200],[1051.849,1217.171],[1038,1237],[1018.291,1257.965],[1007,1285],[1018.562,1280.062],[1025,1270],[1049.649,1243.149],[1072,1214],[1076.651,1215.495],[1080,1216],[1081.751,1206.389]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.333,0],[0,-0.5],[0,-0.5],[0,-0.5],[0,-0.5],[-2.458,-3.409],[-2.743,-3.225],[-2.913,-3.079],[-2.969,-2.969],[-3.076,-2.951],[-3.218,-2.717],[-3.407,-2.283],[-3.646,-1.647],[11.731,12.435],[12.762,11.405],[0.333,0]],"o":[[0,0.5],[0,0.5],[0,0.5],[0,0.5],[2.059,3.63],[2.458,3.409],[2.743,3.225],[2.913,3.079],[2.984,2.984],[3.076,2.951],[3.218,2.717],[3.407,2.283],[-9.312,-14.854],[-11.732,-12.435],[-0.333,0],[-0.333,0]],"v":[[3209,1532],[3209,1533.5],[3209,1535],[3209,1536.5],[3209,1538],[3215.804,1548.549],[3223.635,1558.492],[3232.148,1567.938],[3241,1577],[3250.078,1585.952],[3259.507,1594.505],[3269.432,1602.056],[3280,1608],[3248.087,1567.413],[3211,1532],[3210,1532]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-0.163,1.337],[1.191,0.949],[1.549,0.829],[1.765,0.627],[1.838,0.343],[1.769,-0.023],[1.558,-0.47],[1.203,-0.999],[0.707,-1.61],[-1.992,-1.174],[-2.233,-0.933],[-2.374,-0.792],[-2.415,-0.751],[-0.983,0.517],[-0.831,0.669],[-0.557,0.943]],"o":[[-0.69,-0.988],[-1.191,-0.949],[-1.549,-0.829],[-1.765,-0.627],[-1.838,-0.343],[-1.769,0.023],[-1.558,0.47],[-1.203,0.999],[1.651,1.515],[1.992,1.174],[2.233,0.933],[2.374,0.792],[1.014,-0.486],[0.983,-0.517],[0.831,-0.669],[0.557,-0.943]],"v":[[1357,1517],[1354.143,1514.074],[1349.998,1511.386],[1344.991,1509.182],[1339.551,1507.707],[1334.104,1507.206],[1329.078,1507.924],[1324.901,1510.107],[1322,1514],[1327.491,1518.009],[1333.854,1521.146],[1340.791,1523.709],[1348,1526],[1351.026,1524.526],[1353.776,1522.776],[1355.889,1520.389]],"c":true}],"h":1},{"t":11.2,"s":[{"i":[[1.298,-0.213],[-0.794,-0.789],[-0.881,-0.702],[-0.98,-0.603],[-1.091,-0.492],[-1.216,-0.368],[-1.352,-0.231],[-1.502,-0.082],[-1.664,0.08],[0.65,0.99],[0.92,0.804],[1.131,0.622],[1.283,0.446],[1.376,0.274],[1.409,0.107],[1.383,-0.056]],"o":[[0.721,0.863],[0.794,0.789],[0.881,0.702],[0.98,0.603],[1.091,0.492],[1.216,0.368],[1.352,0.231],[1.502,0.082],[-0.32,-1.18],[-0.65,-0.99],[-0.92,-0.804],[-1.131,-0.622],[-1.283,-0.446],[-1.376,-0.274],[-1.409,-0.107],[-1.383,0.056]],"v":[[2526,1884],[2528.269,1886.48],[2530.779,1888.72],[2533.567,1890.682],[2536.671,1892.329],[2540.128,1893.621],[2543.977,1894.523],[2548.255,1894.995],[2553,1895],[2551.53,1891.746],[2549.161,1889.057],[2546.069,1886.919],[2542.433,1885.318],[2538.43,1884.24],[2534.239,1883.67],[2530.036,1883.595]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 9"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-3.692,5.392],[3.015,-1.556],[2.555,-2.017],[2.287,-2.284],[2.212,-2.359],[2.33,-2.241],[2.641,-1.931],[3.144,-1.427],[2.146,3.551],[2.162,3.542],[3.186,2.095],[5.215,-0.789],[-2.056,-4.444],[-2.881,-3.619],[-3.635,-2.865],[-4.316,-2.184],[-4.897,4.186],[-4.759,4.324],[-4.358,4.726]],"o":[[-3.668,0.903],[-3.015,1.556],[-2.555,2.017],[-2.287,2.284],[-2.212,2.359],[-2.33,2.241],[-2.641,1.931],[-3.135,-2.122],[-2.146,-3.551],[-2.163,-3.542],[-3.186,-2.095],[1.159,5.342],[2.056,4.444],[2.881,3.619],[3.635,2.865],[4.77,-4.313],[4.897,-4.186],[4.759,-4.324],[4.358,-4.726]],"v":[[1714,1194],[1704.023,1197.737],[1695.717,1203.145],[1688.502,1209.645],[1681.802,1216.659],[1675.037,1223.608],[1667.629,1229.915],[1659,1235],[1651.331,1226.132],[1645.12,1215.134],[1637.349,1206.319],[1625,1204],[1629.84,1218.661],[1637.264,1230.737],[1647.056,1240.444],[1659,1248],[1673.567,1235.317],[1688.117,1222.618],[1701.859,1209.11]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[19.362,-8.638],[7.424,7.576],[11.878,3.122],[9.405,-8.762],[11.962,-6.205],[7.047,5.786],[10.501,2.332],[-3.827,-4.729],[-4.005,-3.197],[-4.877,-3.975],[-5.685,-1.264],[-5.61,4.742],[-5.072,4.587],[-5.052,4.031],[-6.492,2.081],[-6.007,-8.395],[-9.821,0],[-11.359,5.623],[-3.964,13.036]],"o":[[-7.428,-7.572],[-7.423,-7.577],[-12.417,5.749],[-9.405,8.762],[-8.309,-4.524],[-7.047,-5.786],[-4.313,6.885],[3.827,4.73],[4.807,3.837],[4.877,3.975],[8.488,-0.446],[5.61,-4.742],[5.302,-4.796],[5.052,-4.031],[9.15,2.42],[6.007,8.395],[13.974,0],[7.655,-9.345],[-24.439,3.561]],"v":[[1655,1228],[1633.837,1204.163],[1606,1187],[1574.659,1210.159],[1544,1234],[1522.144,1217.356],[1497,1204],[1498.261,1221.267],[1512,1233],[1526.342,1245.43],[1542,1254],[1562.563,1245.106],[1578,1230],[1593.108,1216.463],[1610,1207],[1630.997,1226.815],[1653,1243],[1683,1223],[1709,1198]],"c":true}],"h":1},{"t":4,"s":[{"i":[[21.431,-7.569],[7.974,9.702],[10.446,-4.659],[9.029,-8.167],[11.849,-3.855],[29.793,-4.1],[11.171,-8.736],[15.744,-3.654],[6.059,11.275],[17.875,-0.208],[-10.262,-6.723],[-17.232,-1.374],[-12.201,9.374],[-14.249,4.999],[-23.991,-7.675],[-28.488,7.512],[-19.875,-4.125],[-10.95,6.57],[-2.555,12.962]],"o":[[-8.657,-2.853],[-7.974,-9.702],[-10.034,4.476],[-9.029,8.167],[-25.95,-5.48],[-14.11,1.942],[-12.735,9.959],[-10.827,-6.506],[-14.048,-3.619],[-12.101,16.439],[12.722,8.397],[15.431,1.23],[14.648,-11.255],[24.668,6.998],[27.315,-8.685],[18.985,5.015],[15.1,0.26],[11.04,-6.624],[-25.25,3.75]],"v":[[1652,1225],[1627.841,1200.866],[1601,1188],[1573.362,1208.966],[1543,1229],[1477,1198],[1439,1223],[1400,1247],[1373,1222],[1341,1201],[1360,1236],[1394,1267],[1439,1244],[1481,1217],[1543,1250],[1608,1207],[1647,1240],[1684,1223],[1713,1199]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[22.061,-5.955],[25.015,2.985],[21.59,-8.743],[36.11,1.557],[29.424,-9.243],[30.794,10.54],[15.631,-13.036],[-1.62,-29.62],[-29.138,20.862],[-13.597,-11.737],[-10.946,-1.3],[-10.613,7.849],[-19.605,3.533],[-15.743,-3.257],[-13.637,-1.363],[-22.599,9.735],[-15.816,-7.184],[-10.182,7.484],[-4.552,13.448]],"o":[[-18.97,-9.03],[-19.291,11.042],[-22.681,-14.986],[-29.795,8.871],[-22.199,-19.134],[-18.887,9.78],[-15.644,12.356],[37.989,-12.011],[12.571,12.762],[6.36,7.897],[11.266,1.338],[16.938,-12.526],[18.46,0.54],[9.69,5.31],[26.998,-5.335],[14.901,8.099],[15.131,-2.536],[9.405,-8.595],[-26.59,-1.901]],"v":[[1650,1227],[1603,1190],[1554,1232],[1472,1201],[1402,1247],[1330,1195],[1285,1236],[1244,1279],[1332,1217],[1377,1248],[1396,1269],[1432,1250],[1479,1221],[1524,1233],[1551,1251],[1608,1211],[1645,1243],[1682,1227],[1712,1203]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[24.093,-14.574],[11.479,9.854],[16.05,5.284],[12.851,-11.816],[17.309,-7.358],[8.635,9.865],[18.227,0.273],[-8.082,-5.638],[-5.641,-7.242],[-12.834,-3.832],[-13.134,9.866],[-22.615,7.385],[-12.328,-8.005],[-18.863,-1.804],[-10.493,9.53],[-14.752,2.017],[-38.368,8.099],[14.336,5.331],[21.049,-1.452]],"o":[[-12.033,-9.301],[-11.479,-9.854],[-17.289,7.378],[-12.851,11.816],[-11.233,-7.267],[-8.635,-9.865],[-1.971,13.207],[8.082,5.638],[7.245,9.422],[20.047,-2.953],[21.207,-8.793],[14.803,5.53],[11.121,9.545],[13.896,-5.092],[10.017,-9.097],[32.436,-4.434],[-5.925,-12.468],[-17.216,-6.402],[-28.213,10.454]],"v":[[1402,1247],[1368.013,1216.987],[1328,1193],[1285.014,1224.015],[1242,1255],[1215.245,1226.255],[1178,1208],[1190.291,1233.973],[1214,1251],[1236,1279],[1276,1250],[1330,1214],[1365,1240],[1403,1264],[1437,1240],[1471,1216],[1558,1236],[1521,1215],[1469,1198]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[13.215,0.62],[11.715,-11.618],[18.212,-5.121],[4.952,5.233],[4.918,5.216],[5.252,5.28],[8.128,1.719],[4.107,-3.699],[3.617,-3.419],[3.608,-4.22],[-0.062,-6.686],[-5.512,5.988],[-9.242,2.258],[-9.036,-11.298],[-13.39,-6.943],[-19.364,19.302],[-9.688,2.645],[-19.123,3.08],[8.815,5.373]],"o":[[-11.928,11.405],[-11.715,11.618],[-6.274,-3.852],[-4.952,-5.233],[-4.865,-5.16],[-5.252,-5.28],[-5.954,0.784],[-4.107,3.699],[-3.63,3.432],[-3.608,4.221],[10.708,-0.792],[5.512,-5.988],[12.467,7.866],[9.036,11.298],[28.941,-9.725],[4.824,-7.509],[15.695,3.671],[6.503,-10.571],[-10.66,-6.497]],"v":[[1323,1192],[1289.213,1228.213],[1246,1255],[1229.483,1241.023],[1215,1225],[1200.447,1208.419],[1181,1197],[1166.247,1204.523],[1155,1216],[1143.231,1227.059],[1137,1243],[1159.1,1230.6],[1179,1216],[1209.307,1246.693],[1241,1276],[1311,1230],[1329,1211],[1370,1230],[1359,1207]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-2.784,5.004],[3.358,1.093],[4.267,-0.126],[4.15,-0.656],[3.009,-0.498],[5.23,-7.215],[6.325,-6.119],[8.311,-4.134],[8.702,1.798],[9.325,1.175],[6.122,-6.545],[4.456,-8.211],[-4.606,5.727],[-7.682,2.652],[-8.537,-2.296],[-10.558,-0.275],[-9.721,11.279],[-10.742,10.258],[-5.999,-0.309]],"o":[[-1.424,-3],[-3.358,-1.093],[-4.267,0.125],[-4.15,0.656],[-5.025,7.419],[-5.23,7.215],[-6.325,6.119],[-8.868,-1.632],[-8.702,-1.798],[-8.057,4.609],[-6.122,6.545],[8.893,-1.44],[4.606,-5.727],[10.292,0.541],[8.538,2.296],[14.375,-6.625],[9.721,-11.279],[6.22,-0.233],[5.999,0.309]],"v":[[1635,1383],[1627.571,1377.032],[1615.878,1375.753],[1602.996,1377.097],[1592,1379],[1576.84,1401.173],[1559.731,1421.397],[1538,1437],[1511.843,1431.657],[1485,1427],[1463.799,1443.799],[1448,1466],[1466.409,1453.409],[1483,1439],[1510.3,1444.199],[1538,1449],[1572.725,1420.725],[1602,1387],[1621.077,1388.578]],"c":true}],"h":1},{"t":8,"s":[{"i":[[4.239,0.149],[0.167,0],[0.167,0],[2.62,-2.88],[3.761,-1.739],[7.418,3.415],[10.184,0.649],[8.909,-10.091],[11.25,-7.75],[6.644,3.738],[5.812,-7.159],[-3.531,-2.136],[-4.143,-1.524],[-1.681,-2.152],[-3.648,-0.186],[-9.231,10.603],[-12.76,7.074],[-20.214,3.986],[-5.596,6.404]],"o":[[-0.167,0],[-0.167,0],[-3.761,1.739],[-2.62,2.88],[-12.143,1.31],[-7.418,-3.415],[-12.114,6.887],[-8.909,10.091],[-4.612,-3.208],[-6.644,-3.738],[1.735,3.932],[3.531,2.136],[2.628,1.205],[1.681,2.152],[13.318,-6.515],[9.231,-10.603],[13.901,5.599],[7.521,-4.479],[-0.197,-2.516]],"v":[[1558,1426],[1557.5,1426],[1557,1426],[1548,1433.5],[1539,1441],[1511.531,1435.97],[1487,1428],[1456.852,1454.852],[1428,1483],[1410.4,1469.725],[1391,1472],[1399.194,1480.807],[1411,1486],[1416.735,1491.764],[1424,1496],[1455.919,1468.419],[1487,1440],[1537,1450],[1556,1433]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-0.585,8.749],[2.094,-1.822],[1.475,-2.441],[1.893,-2.024],[3.349,-0.568],[2.85,1.484],[2.423,1.91],[2.237,2.096],[2.291,2.043],[2.815,-2.352],[2.297,-2.87],[1.959,-3.208],[1.801,-3.366],[-2.437,2.341],[-2.155,2.623],[-2.911,1.867],[-6.831,-3.703],[-9.151,1.037],[-4.5,4.833]],"o":[[-3.751,0.166],[-2.094,1.822],[-1.475,2.442],[-1.893,2.024],[-3.516,-0.818],[-2.85,-1.484],[-2.423,-1.91],[-2.237,-2.096],[-3.512,1.655],[-2.815,2.352],[-2.297,2.87],[-1.959,3.208],[3.758,-1.019],[2.437,-2.341],[2.155,-2.623],[3.524,6.226],[6.831,3.703],[4.415,-4.918],[4.5,-4.833]],"v":[[1456,1463],[1447.491,1466.241],[1442.396,1472.896],[1437.603,1479.853],[1430,1484],[1420.512,1480.488],[1412.663,1475.337],[1405.732,1469.268],[1399,1463],[1389.555,1469.055],[1381.933,1476.933],[1375.595,1486.094],[1370,1496],[1379.033,1490.7],[1385.661,1482.995],[1393,1476],[1408.779,1491.448],[1433,1496],[1447.372,1482.372]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-2.988,0.018],[1.236,1.379],[1.619,0.799],[1.926,0.335],[2.155,-0.012],[2.308,-0.243],[2.385,-0.357],[2.384,-0.355],[2.308,-0.236],[2.154,-0.001],[1.924,0.35],[1.617,0.818],[-1.763,-1.816],[-2.316,-0.964],[-2.744,-0.309],[-3.045,0.149],[-3.22,0.411],[-3.269,0.476],[-3.191,0.345]],"o":[[-0.777,-2.076],[-1.236,-1.379],[-1.619,-0.799],[-1.926,-0.335],[-2.155,0.012],[-2.308,0.243],[-2.385,0.357],[-2.384,0.355],[-2.308,0.236],[-2.154,0.001],[-1.924,-0.35],[1.083,2.864],[1.763,1.816],[2.316,0.964],[2.744,0.309],[3.045,-0.149],[3.22,-0.411],[3.269,-0.476],[3.191,-0.345]],"v":[[2919,1646],[2915.961,1640.846],[2911.658,1637.607],[2906.322,1635.934],[2900.181,1635.478],[2893.467,1635.889],[2886.408,1636.818],[2879.236,1637.915],[2872.178,1638.832],[2865.467,1639.218],[2859.331,1638.723],[2854,1637],[2858.3,1643.97],[2864.45,1648.091],[2872.072,1649.952],[2880.786,1650.144],[2890.215,1649.255],[2899.979,1647.875],[2909.7,1646.593]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-1.812,0.497],[0.167,1.416],[0.388,1.195],[0.595,0.988],[0.788,0.795],[0.966,0.617],[1.131,0.453],[1.28,0.303],[1.416,0.167],[0.299,-0.686],[0.148,-0.806],[0.016,-0.868],[-0.094,-0.874],[-0.185,-0.823],[-0.255,-0.714],[-0.305,-0.549],[-1.329,-0.696],[-1.519,-0.403],[-1.681,-0.005]],"o":[[0.068,-1.652],[-0.167,-1.416],[-0.388,-1.195],[-0.595,-0.988],[-0.788,-0.795],[-0.966,-0.617],[-1.131,-0.453],[-1.28,-0.303],[-0.471,0.509],[-0.299,0.686],[-0.148,0.806],[-0.016,0.868],[0.094,0.874],[0.185,0.823],[0.255,0.714],[1.11,0.887],[1.329,0.696],[1.519,0.403],[1.681,0.005]],"v":[[3292,1612],[3291.848,1607.402],[3291.011,1603.489],[3289.532,1600.218],[3287.453,1597.547],[3284.818,1595.432],[3281.669,1593.831],[3278.048,1592.702],[3274,1592],[3272.851,1593.807],[3272.186,1596.059],[3271.945,1598.584],[3272.067,1601.212],[3272.491,1603.771],[3273.155,1606.091],[3274,1608],[3277.665,1610.4],[3281.946,1612.075],[3286.753,1612.712]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 10"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.338,1.162],[1.003,-0.556],[0.833,-0.806],[0.664,-1.001],[0.496,-1.143],[0.33,-1.232],[0.166,-1.266],[0.002,-1.247],[-0.16,-1.174],[-1.044,0.456],[-0.726,0.774],[-0.48,1.02],[-0.307,1.193],[-0.206,1.294],[-0.178,1.322],[-0.222,1.278]],"o":[[-1.175,0.252],[-1.003,0.556],[-0.833,0.806],[-0.664,1.001],[-0.496,1.144],[-0.33,1.232],[-0.166,1.266],[-0.002,1.247],[1.434,-0.066],[1.044,-0.456],[0.726,-0.774],[0.48,-1.02],[0.307,-1.193],[0.206,-1.294],[0.178,-1.322],[0.222,-1.278]],"v":[[1876,1265],[1872.734,1266.226],[1869.981,1268.281],[1867.737,1271.005],[1865.998,1274.236],[1864.758,1277.813],[1864.015,1281.573],[1863.764,1285.356],[1864,1289],[1867.699,1288.199],[1870.335,1286.335],[1872.126,1283.626],[1873.288,1280.288],[1874.04,1276.54],[1874.597,1272.597],[1875.178,1268.678]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-0.112,4.972],[2.113,-3.47],[1.952,-3.631],[2.238,-3.345],[2.97,-2.613],[2.064,1.436],[2.14,1.36],[2.756,0.744],[3.912,-0.412],[-2.201,-2.299],[-3.027,-1.473],[-3.437,-1.062],[-3.434,-1.066],[-2.618,3.747],[-2.435,3.94],[-1.6,4.348]],"o":[[-2.72,2.863],[-2.113,3.47],[-1.952,3.631],[-2.238,3.345],[-2.527,-0.973],[-2.064,-1.436],[-2.14,-1.36],[-2.756,-0.744],[0.96,3.54],[2.201,2.299],[3.027,1.473],[3.437,1.062],[2.148,-3.769],[2.618,-3.747],[2.435,-3.94],[1.6,-4.348]],"v":[[1873,1269],[1865.861,1278.611],[1859.875,1289.375],[1853.7,1299.951],[1846,1309],[1839.249,1305.252],[1833.078,1300.922],[1825.868,1297.632],[1816,1297],[1820.845,1305.655],[1828.79,1311.21],[1838.59,1314.91],[1849,1318],[1856.312,1306.781],[1864.054,1295.304],[1870.269,1282.926]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-2.947,7.401],[4.552,-6.282],[6.356,-4.477],[6.896,2.27],[8.963,0.204],[5.259,-8.408],[8.758,-4.909],[7.198,1.481],[3.202,-6.705],[-7.97,-1.363],[-7.428,-1.905],[-5.437,8.729],[-8.537,5.63],[-5.489,-2.177],[-6.629,-1.038],[-5.168,7.743]],"o":[[-7.438,3.395],[-4.552,6.282],[-5.452,-3.715],[-6.896,-2.27],[-7.206,6.461],[-5.259,8.408],[-6.007,0.221],[-7.198,-1.481],[4.691,4.642],[7.97,1.363],[8.714,-5.452],[5.437,-8.729],[6.414,1.254],[5.489,2.177],[7.382,-4.629],[5.168,-7.743]],"v":[[1873,1273],[1856.188,1288.688],[1841,1306],[1822.633,1296.866],[1799,1293],[1781.664,1316.664],[1762,1338],[1740.896,1333.637],[1724,1339],[1743.948,1347.052],[1768,1351],[1787.633,1328.133],[1807,1305],[1824.338,1310.662],[1842,1316],[1860.826,1296.579]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[0.667,0],[5.455,-6.045],[8.288,-3.211],[5.702,2.132],[7.964,-0.131],[18.176,-8.824],[16.869,-2.655],[26.284,-10.383],[8.551,-19.569],[-21.868,-0.799],[-25.432,11.902],[-16.312,-0.354],[-17.285,3],[-15.142,16.397],[-3.427,6.906],[-0.326,5.83]],"o":[[-7.891,3.609],[-5.455,6.045],[-6.23,-1.603],[-5.701,-2.132],[-17.836,9.164],[-16.56,-0.625],[-21.928,14.739],[-14.383,-2.084],[16.706,5.961],[25.004,-12.33],[16.506,0.161],[17.201,-5.269],[15.033,-2.609],[4.199,-6.134],[3.298,-6.15],[-0.667,0]],"v":[[1875,1273],[1856.298,1288.798],[1837,1304],[1819.8,1297.7],[1800,1294],[1761,1336],[1712,1334],[1655,1387],[1605,1386],[1661,1398],[1720,1345],[1766,1349],[1805,1306],[1852,1309],[1865,1291],[1877,1273]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.667,0],[16.789,-5.877],[16.279,-0.612],[15.377,-7.623],[17.884,-2.138],[21.544,-11.122],[21.352,-2.582],[10.476,-10.688],[3.803,-16.276],[-25.083,15.583],[-13.288,-8.045],[-21.525,13.809],[-16.975,-5.585],[-17.22,7.447],[-11.924,-1.409],[-7.745,18.589]],"o":[[-16.961,5.706],[-13.011,-2.656],[-12.75,10.25],[-17.834,-7.22],[-19.513,13.154],[-17.084,-4.899],[-10.829,10.442],[-10.255,10.462],[31.285,-9.382],[18.124,3.21],[21.907,-13.427],[16.233,-5.691],[17.016,-7.651],[12.263,1.07],[15.778,-10.555],[-0.667,0]],"v":[[1874,1276],[1836,1306],[1799,1296],[1769,1335],[1709,1337],[1659,1385],[1599,1378],[1569,1411],[1541,1447],[1606,1390],[1660,1400],[1715,1349],[1773,1348],[1808,1309],[1839,1318],[1876,1276]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-9.88,14.787],[11.075,-0.925],[11.622,-0.275],[6.981,-9.186],[9.849,-6.318],[9.79,1.377],[11.052,0.115],[9.713,-11.287],[13.178,-7.822],[11.49,1.146],[2.845,-10.33],[-9.068,-1.765],[-8.099,-2.735],[-27.857,16.809],[-22.757,0.423],[-21.885,10.448]],"o":[[-11.078,-1.977],[-11.075,0.925],[-10.229,5.938],[-6.981,9.186],[-8.789,-2.378],[-9.79,-1.377],[-12.972,8.028],[-9.713,11.287],[-7.195,-1.746],[-11.49,-1.146],[10.63,0.203],[9.068,1.765],[28.221,-16.446],[20.01,2.323],[19.457,-12.876],[18.792,-5.875]],"v":[[1774,1334],[1740.908,1333.311],[1707,1336],[1682.715,1360.215],[1659,1385],[1631.197,1379.303],[1600,1377],[1567.654,1407.654],[1535,1438],[1503.737,1430.943],[1479,1442],[1508.399,1445.101],[1534,1452],[1604,1388],[1664,1395],[1712,1346]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[21.755,-5.579],[14.042,16.291],[20.65,9.683],[4.31,-3.223],[-0.832,-5.947],[-3.557,1.409],[-3.995,0.805],[-8.588,-7.578],[-7.137,-9.03],[-7.487,-8.847],[-11.738,-4.595],[-2.826,0.826],[-20.196,5.804],[-34.848,-15.485],[13.903,18.431],[22.451,9.882]],"o":[[-18.18,-12.153],[-14.042,-16.291],[-7.591,-0.841],[-4.31,3.224],[4.778,1.443],[3.557,-1.409],[9.511,6.657],[8.588,7.578],[8.315,8.018],[7.487,8.847],[2.409,-0.409],[24.994,-1.006],[28.091,25.576],[-8.8,-23.533],[-16.887,-15.446],[-18.918,8.415]],"v":[[3047,1507],[3001.352,1461.647],[2952,1420],[2933.683,1423.91],[2928,1438],[2940.087,1437.186],[2951,1433],[2978.28,1454.22],[3002,1479],[3024.432,1505.567],[3052,1527],[3057,1528],[3109,1502],[3190,1584],[3147,1530],[3101,1479]],"c":true}],"h":1},{"t":8,"s":[{"i":[[7.569,-1.431],[10.549,13.755],[11.323,11.324],[5.003,4.061],[3.582,0.347],[1.928,-8.593],[-11.629,-1.492],[-1.78,2.887],[-4.116,0.551],[-12.517,-15.316],[-12.524,-15.309],[-1.736,-1.264],[-2.653,-0.347],[-2.97,3.53],[0.12,6.62],[4.213,-0.213]],"o":[[-9.479,-10.657],[-10.549,-13.755],[-3.408,-3.408],[-5.003,-4.061],[-8.917,-0.864],[-1.928,8.593],[3.765,-0.901],[1.78,-2.887],[14.407,13.427],[12.517,15.316],[2.404,0.596],[1.736,1.264],[3.238,-3.262],[2.97,-3.53],[-2.477,-1.523],[-9.851,-0.851]],"v":[[3184,1570],[3153.883,1532.001],[3121,1493],[3107.63,1480.704],[3094,1473],[3076.091,1488.733],[3089,1508],[3096.237,1501.237],[3104,1495],[3143.912,1538.589],[3181,1585],[3186.814,1588.186],[3193,1591],[3203.019,1581.519],[3208,1567],[3202,1561]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[1.404,1.929],[3.996,-2.587],[2.619,-3.964],[2.313,-4.27],[3.079,-3.504],[0.863,0.554],[0.702,0.715],[0.863,0.554],[1.347,0.07],[-4.033,-4.134],[-6.31,-1.856],[-2.365,4.635],[-1.851,5.15],[-3.269,2.898],[-1.783,4.384],[1.006,2.327]],"o":[[-6.445,0.139],[-3.996,2.587],[-2.619,3.964],[-2.313,4.27],[-1.347,-0.07],[-0.863,-0.554],[-0.702,-0.715],[-0.863,-0.554],[1.558,6.609],[4.033,4.134],[4.691,-2.309],[2.365,-4.635],[3.14,-3.026],[3.269,-2.898],[-1.57,-1.763],[-1.006,-2.327]],"v":[[3225,1532],[3209.607,1536.357],[3199.952,1546.453],[3192.821,1559.071],[3185,1571],[3181.766,1569.984],[3179.5,1568],[3177.234,1566.016],[3174,1565],[3182.436,1581.064],[3198,1590],[3208.13,1579.131],[3214,1564],[3224.019,1555.519],[3232,1545],[3228.375,1538.625]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.031,1.115],[2.375,-0.292],[1.481,-1.584],[0.766,-2.545],[0.23,-3.175],[-0.126,-3.473],[-0.303,-3.441],[-0.301,-3.077],[-0.12,-2.382],[-2.052,3.473],[-0.076,5.205],[0.764,5.255],[0.469,3.623],[-0.707,0.376],[-0.828,0.255],[-0.582,0.501]],"o":[[-3.449,-1.332],[-2.375,0.292],[-1.481,1.584],[-0.766,2.545],[-0.23,3.175],[0.126,3.473],[0.303,3.441],[0.301,3.077],[5.163,-0.059],[2.052,-3.473],[0.076,-5.204],[-0.764,-5.255],[0.219,-0.864],[0.707,-0.376],[0.828,-0.255],[0.582,-0.501]],"v":[[1715,1759],[1706.308,1757.523],[1700.569,1760.42],[1697.243,1766.697],[1695.793,1775.36],[1695.682,1785.415],[1696.371,1795.869],[1697.323,1805.729],[1698,1814],[1708.539,1808.282],[1711.448,1794.845],[1710.133,1778.736],[1708,1765],[1709.481,1763.231],[1711.876,1762.375],[1714.082,1761.332]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[2.695,0.597],[-1.586,-2.262],[-1.734,-2.198],[-1.87,-2.092],[-1.992,-1.945],[-2.102,-1.756],[-2.2,-1.524],[-2.284,-1.251],[-2.355,-0.936],[1.747,2.101],[1.707,2.225],[1.725,2.237],[1.802,2.135],[1.938,1.92],[2.132,1.592],[2.384,1.151]],"o":[[1.425,2.284],[1.586,2.262],[1.734,2.198],[1.87,2.092],[1.992,1.945],[2.102,1.756],[2.2,1.524],[2.284,1.251],[-1.845,-1.863],[-1.747,-2.101],[-1.707,-2.225],[-1.725,-2.237],[-1.802,-2.135],[-1.938,-1.92],[-2.132,-1.592],[-2.384,-1.151]],"v":[[2899,1636],[2903.519,1642.829],[2908.502,1649.529],[2913.911,1655.976],[2919.707,1662.042],[2925.853,1667.604],[2932.309,1672.534],[2939.038,1676.708],[2946,1680],[2940.627,1674.025],[2935.462,1667.507],[2930.328,1660.786],[2925.051,1654.2],[2919.455,1648.089],[2913.365,1642.792],[2906.605,1638.65]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 11"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-5.806,-1.195],[1.212,2.872],[1.404,2.679],[1.59,2.494],[1.768,2.315],[1.94,2.143],[2.105,1.978],[2.263,1.82],[2.414,1.669],[4.719,-3.198],[4.878,-3.038],[4.345,-3.571],[3.119,-4.797],[-4.787,2.13],[-3.984,2.932],[-3.955,2.962],[-4.699,2.217],[-2.761,-4.239],[-2.698,-4.302],[-3.713,-3.287]],"o":[[-1.013,-3.071],[-1.212,-2.872],[-1.404,-2.679],[-1.59,-2.494],[-1.768,-2.315],[-1.94,-2.143],[-2.105,-1.978],[-2.263,-1.82],[-3.867,4.05],[-4.719,3.198],[-4.878,3.038],[-4.345,3.571],[6.363,-0.553],[4.787,-2.13],[3.984,-2.932],[3.955,-2.962],[3.901,3.099],[2.761,4.239],[2.698,4.302],[3.713,3.287]],"v":[[2546,1355],[2542.661,1346.088],[2538.736,1337.764],[2534.244,1330.006],[2529.205,1322.794],[2523.641,1316.108],[2517.572,1309.928],[2511.018,1304.232],[2504,1299],[2490.948,1309.698],[2476.379,1318.879],[2462.37,1328.621],[2451,1341],[2467.532,1336.782],[2480.496,1328.996],[2492.212,1319.962],[2505,1312],[2514.724,1323.276],[2522.644,1336.356],[2531.992,1348.008]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-12.948,-4.385],[5.481,4.599],[5.678,5.108],[5.708,6.312],[7.355,0.52],[8.96,-7.022],[10.401,-0.744],[7.66,9.84],[12.226,5.274],[4.92,-2.889],[5.293,-2.753],[4.411,-2.09],[0.73,-5.77],[-8.153,3.68],[-9.235,2.598],[-9.075,-9.925],[-12.794,-6.206],[-8.754,5.746],[-10.97,3.53],[-8.833,-8.5]],"o":[[0.601,-10.496],[-5.481,-4.599],[-5.813,-5.23],[-5.708,-6.312],[-11.759,-0.832],[-8.96,7.022],[-12.135,-5.365],[-7.66,-9.84],[-6.028,0.691],[-4.92,2.889],[-3.628,2.872],[-4.411,2.09],[12.153,0.32],[8.153,-3.68],[8.906,10.094],[9.075,9.925],[12.015,-2.485],[8.754,-5.746],[10.719,6.615],[8.833,8.5]],"v":[[2686,1393],[2677.209,1371.959],[2659,1359],[2642.157,1339.967],[2623,1328],[2592.981,1340.819],[2565,1356],[2537.569,1330.931],[2510,1306],[2493.948,1311.953],[2479,1321],[2465.827,1327.326],[2457,1338],[2486.189,1331.688],[2511,1321],[2537.084,1351.916],[2569,1377],[2598.784,1363.284],[2627,1348],[2654.828,1372.172]],"c":true}],"h":1},{"t":4,"s":[{"i":[[22.882,-4.118],[7.83,11.919],[14.45,-2.043],[9.462,-3.567],[6.53,-4.514],[1.003,-1.069],[-2.083,0.138],[-20.05,2.514],[-28.701,-8.633],[-20.124,6.209],[-25.966,-10.929],[-34.779,-2.311],[-20.544,-20.456],[-9.825,2.367],[8.906,9.427],[11.531,11.53],[13.418,2.01],[10.722,-4.911],[13.331,-2.171],[34.241,11.426]],"o":[[-11.23,-2.367],[-7.83,-11.919],[-8.622,1.219],[-9.462,3.567],[-1.073,-0.138],[-1.003,1.069],[21.541,5.262],[22.544,14.789],[21.827,-4.506],[25.624,12.319],[34.128,14.365],[26.322,14.678],[7.599,3.16],[-0.584,-17.75],[-9.38,-10.78],[-8.953,-8.953],[-12.851,-1.926],[-11.428,5.235],[-32.417,-13.249],[-20.864,6.135]],"v":[[2566,1358],[2539.915,1330.692],[2509,1310],[2480.932,1317.528],[2456,1330],[2452.133,1332],[2453,1334],[2513,1325],[2573,1377],[2627,1352],[2698,1404],[2779,1384],[2843,1443],[2867,1453],[2842,1423],[2811,1391],[2775,1364],[2738,1374],[2703,1387],[2621,1332]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[18.484,-4.353],[22.62,8.046],[2.826,-0.826],[11.902,-3.098],[0.876,-8.221],[-20.115,1.853],[-25.69,-9.977],[-19.324,5.009],[-18.072,-10.827],[-19.556,0.218],[-26.442,0.806],[-42.932,-19.401],[-28.514,5.152],[7.005,3.662],[21.658,-11.676],[23.192,17.142],[12.193,4.807],[26.521,-3.48],[21.35,9.317],[15.66,1.919]],"o":[[-22.615,-8.051],[-2.409,0.409],[-14.426,0.574],[-6.54,5.865],[22.47,6.922],[23.466,12.201],[18.13,-6.203],[13.18,10.274],[16.295,9.763],[24.807,-0.277],[35.833,26.5],[21.055,-12.612],[1.691,-12.358],[-30.066,3.267],[-22.58,-17.754],[-6.485,-10.515],[-30.48,-0.48],[-26.596,-4.07],[-10.654,-9.185],[-21.33,-2.614]],"v":[[2566,1352],[2518,1308],[2513,1307],[2477,1316],[2454,1332],[2514,1324],[2571,1374],[2617,1347],[2663,1381],[2718,1406],[2777,1384],[2882,1466],[2951,1434],[2940,1413],[2870,1443],[2803,1389],[2779,1362],[2711,1384],[2648,1355],[2616,1328]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[42.005,20.328],[8.823,-5.844],[15.375,0.708],[14.251,9.749],[19.443,4.557],[0.173,-0.327],[-0.081,-0.581],[0.036,-0.193],[-0.079,-0.108],[-19.557,-10.481],[-23.216,-3.784],[-20.152,7.848],[-16.891,-15.109],[-26.82,-5.18],[-26.518,6.482],[-44.479,-15.855],[9.282,6.855],[15.172,18.354],[13.067,3.471],[29.333,-5.333]],"o":[[-11.334,3.332],[-8.823,5.844],[-17.553,-6.447],[-14.251,-9.749],[-0.39,0.11],[-0.173,0.327],[0.064,0.12],[-0.036,0.193],[12.661,17.224],[15.564,11.436],[23.523,-4.477],[16.464,15.536],[18.178,13.822],[27.326,-5.674],[33.858,26.475],[-0.263,-14.601],[-19.893,-14.691],[-7.594,-9.187],[-28.238,6.429],[-41.309,-21.025]],"v":[[2771,1365],[2743.03,1381.03],[2709,1391],[2663.417,1364.583],[2615,1341],[2614.147,1341.647],[2614,1343],[2613.988,1343.509],[2614,1344],[2669,1381],[2721,1410],[2779,1384],[2830,1429],[2886,1469],[2956,1440],[3056,1521],[3032,1493],[2978,1443],[2951,1418],[2876,1447]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[26.635,12.032],[-11.361,-9.806],[-12.418,-8.749],[-8.556,0.618],[-9.181,-0.28],[-10.115,-12.052],[-15.137,-7.03],[-11.773,-0.227],[-11.04,-0.96],[-4.812,-5.854],[-5.797,-4.87],[-2.862,-2.472],[-2.604,-2.729],[-3.702,-2.536],[-1.806,1.488],[9.356,8.588],[16.604,10.349],[23.171,1.496],[28.409,16.258],[18.337,1.003]],"o":[[8.139,13.028],[11.361,9.806],[8.595,1.191],[8.556,-0.618],[12.403,9.764],[10.115,12.052],[9.87,2.13],[11.773,0.227],[5.953,4.713],[4.812,5.854],[1.949,3.384],[2.862,2.472],[2.385,1.345],[3.702,2.536],[-2.654,-14.729],[-14.045,-12.892],[-23.781,-0.886],[-26.434,-18.233],[-17.011,0.322],[-25.194,-13.472]],"v":[[2439,1397],[2468.791,1430.709],[2505,1458],[2530.56,1458.183],[2557,1457],[2588.95,1491.55],[2625,1522],[2658.122,1524.878],[2693,1526],[2708.617,1542.383],[2724,1559],[2731.509,1567.491],[2740,1575],[2749.934,1582.126],[2759,1585],[2732,1557],[2694,1514],[2623,1511],[2555,1445],[2505,1447]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[8.449,-3.029],[2.932,3.098],[2.848,3.19],[3.367,2.247],[4.489,0.269],[0.101,-0.4],[0.486,-0.014],[-7.613,-6.887],[-10.409,-4.091],[-10.01,0.203],[-8.975,-0.666],[-11.229,-12.604],[-13.722,-10.111],[-6.622,-0.412],[-4.448,2.739],[6.373,0.793],[7.065,0.101],[11.149,13.185],[15.374,8.959],[11.315,0.069]],"o":[[-3.618,-1.971],[-2.932,-3.098],[-2.848,-3.19],[-3.367,-2.247],[-0.112,0.388],[-0.101,0.4],[6.139,8.361],[7.613,6.887],[6.984,-2.854],[10.01,-0.203],[13.361,10.472],[11.229,12.604],[6.064,0.091],[6.622,0.412],[-2.441,-4.726],[-6.373,-0.793],[-14.03,-10.303],[-11.149,-13.185],[-9.289,-1.755],[-11.315,-0.069]],"v":[[2623,1513],[2613.326,1505.137],[2604.807,1495.447],[2595.635,1487.033],[2584,1483],[2583.78,1484.281],[2583,1485],[2603.297,1508.203],[2630,1525],[2656.506,1520.86],[2686,1522],[2721.729,1557.771],[2758,1593],[2777.712,1594.623],[2795,1592],[2780.968,1584.532],[2760,1584],[2724.008,1546.992],[2686,1512],[2653.87,1508.912]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-11.78,-3.054],[3.972,5.362],[4.121,5.212],[4.214,5.12],[4.25,5.083],[10.194,0.473],[10.604,0.062],[9.837,11.83],[13.505,8.162],[3.578,0.078],[1.573,-1.928],[0.481,-0.353],[0.218,-0.615],[-3.837,-0.33],[-3.355,-0.811],[-9.803,-12.364],[-12.836,-9.331],[-10.316,-0.517],[-10.115,-0.718],[-7.411,-10.005]],"o":[[-3.766,-5.568],[-3.972,-5.362],[-4.121,-5.212],[-4.214,-5.12],[-9.621,-1.045],[-10.194,-0.473],[-11.148,-10.519],[-9.837,-11.83],[-3.114,0.385],[-3.578,-0.078],[-0.86,-0.027],[-0.481,0.353],[2.298,1.868],[3.836,0.33],[12.951,9.216],[9.803,12.363],[9.62,1.213],[10.316,0.517],[7.576,8.925],[7.411,10.005]],"v":[[2866,1646],[2854.379,1629.62],[2842.226,1613.774],[2829.71,1598.29],[2817,1583],[2787.237,1580.763],[2756,1580],[2725.768,1545.232],[2692,1514],[2681.344,1513.843],[2673,1516],[2671.019,1516.519],[2670,1518],[2679.707,1520.793],[2691,1522],[2723.586,1555.914],[2756,1590],[2786.129,1592.371],[2817,1594],[2838.347,1624.402]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[4.54,-0.04],[4.125,5.792],[4.335,5.582],[5.043,4.874],[6.249,3.668],[2.053,0.035],[1.956,-0.224],[1.8,-0.522],[1.585,-0.858],[-1.626,-1.633],[-2.568,-0.463],[-2.908,0.277],[-2.646,0.585],[-4.246,-5.254],[-3.839,-5.66],[-4.299,-5.201],[-5.624,-3.876],[-4.338,0.495],[-0.988,3.845],[4.071,0.429]],"o":[[-4.412,-5.504],[-4.125,-5.792],[-4.335,-5.582],[-5.043,-4.874],[-2.092,-0.255],[-2.053,-0.035],[-1.956,0.224],[-1.8,0.522],[0.083,3.234],[1.626,1.633],[2.568,0.463],[2.908,-0.277],[5.518,3.983],[4.246,5.254],[3.839,5.66],[4.299,5.201],[4.659,-0.175],[4.338,-0.495],[-2.177,-2.323],[-4.071,-0.429]],"v":[[2864,1640],[2851.319,1622.931],[2838.755,1605.746],[2824.813,1589.937],[2808,1577],[2801.767,1576.556],[2795.739,1576.831],[2790.091,1577.94],[2785,1580],[2787.714,1587.193],[2794.156,1590.228],[2802.519,1590.4],[2811,1589],[2825.429,1603.072],[2837.34,1619.66],[2849.331,1636.169],[2864,1650],[2878.253,1649.753],[2887,1644],[2877.273,1640.227]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-5.204,-0.463],[7.809,3.389],[9.046,2.579],[8.714,2.9],[6.814,4.352],[0.171,-0.079],[0.137,-0.113],[0.147,-0.103],[0.203,-0.048],[0.143,-0.107],[0.086,-0.164],[0.025,-0.225],[-0.041,-0.291],[-3.306,-2.36],[-4.294,-1.373],[-4.716,-0.951],[-4.572,-1.095],[-4.044,-1.623],[-4.139,-1.528],[-4.525,-1.141]],"o":[[-5.003,-5.331],[-7.809,-3.389],[-9.046,-2.579],[-8.714,-2.9],[-0.251,-0.001],[-0.171,0.079],[-0.137,0.113],[-0.147,0.103],[-0.195,0.055],[-0.143,0.107],[-0.086,0.164],[-0.025,0.225],[1.753,3.914],[3.306,2.36],[4.294,1.373],[4.716,0.951],[4.241,1.425],[4.044,1.623],[4.139,1.528],[4.525,1.141]],"v":[[2552,1866],[2532.391,1853.203],[2506.717,1844.533],[2479.685,1836.596],[2456,1826],[2455.378,1826.128],[2454.927,1826.428],[2454.513,1826.763],[2454,1827],[2453.492,1827.242],[2453.147,1827.646],[2452.978,1828.228],[2453,1829],[2460.73,1838.27],[2472.272,1843.728],[2485.927,1847.072],[2500,1850],[2512.355,1854.645],[2524.556,1859.443],[2537.479,1863.52]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-1.372,2.003],[2.143,-0.107],[2.055,-0.195],[1.969,-0.281],[1.883,-0.367],[1.799,-0.451],[1.715,-0.535],[1.633,-0.617],[1.552,-0.698],[1.472,-0.778],[1.394,-0.856],[1.316,-0.934],[1.24,-1.01],[-3.039,0.336],[-3.034,0.341],[-2.951,0.424],[-2.79,0.585],[-2.552,0.823],[-2.237,1.138],[-1.843,1.532]],"o":[[-2.232,0.018],[-2.143,0.107],[-2.055,0.195],[-1.969,0.281],[-1.883,0.367],[-1.799,0.451],[-1.715,0.535],[-1.633,0.617],[-1.552,0.698],[-1.472,0.778],[-1.394,0.856],[-1.316,0.934],[2.966,-0.409],[3.039,-0.336],[3.034,-0.341],[2.951,-0.424],[2.79,-0.585],[2.552,-0.823],[2.237,-1.138],[1.843,-1.532]],"v":[[1712,1800],[1705.437,1800.187],[1699.139,1800.639],[1693.104,1801.354],[1687.326,1802.326],[1681.804,1803.554],[1676.534,1805.034],[1671.511,1806.761],[1666.734,1808.734],[1662.197,1810.947],[1657.898,1813.398],[1653.834,1816.084],[1650,1819],[1659.027,1817.902],[1668.156,1816.906],[1677.152,1815.777],[1685.783,1814.283],[1693.816,1812.191],[1701.018,1809.268],[1707.157,1805.282]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 12"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[1.269,0.688],[-0.089,-1.411],[-0.174,-1.326],[-0.287,-1.213],[-0.427,-1.073],[-0.595,-0.905],[-0.789,-0.711],[-1.011,-0.489],[-1.26,-0.24],[0.045,1.728],[0.466,1.549],[0.799,1.355],[1.044,1.147],[1.201,0.925]],"o":[[0.031,1.469],[0.089,1.411],[0.174,1.326],[0.287,1.213],[0.427,1.073],[0.595,0.905],[0.789,0.711],[1.011,0.489],[0.465,-1.892],[-0.045,-1.728],[-0.466,-1.549],[-0.799,-1.355],[-1.044,-1.147],[-1.201,-0.925]],"v":[[2034,1351],[2034.172,1355.328],[2034.56,1359.44],[2035.245,1363.255],[2036.31,1366.69],[2037.836,1369.664],[2039.905,1372.095],[2042.599,1373.901],[2046,1375],[2046.608,1369.567],[2045.82,1364.649],[2043.901,1360.289],[2041.115,1356.533],[2037.727,1353.422]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[1.876,7.124],[4.903,-0.597],[4.425,-1.075],[3.934,-1.566],[3.432,-2.068],[-3.965,0.394],[-3.769,0.954],[-3.795,0.958],[-4.042,0.406],[-1.03,-3.47],[-1.247,-3.253],[-2.094,-2.406],[-3.57,-0.93],[3.002,5.998]],"o":[[-5.369,0.13],[-4.903,0.597],[-4.425,1.075],[-3.934,1.566],[4.381,0.722],[3.965,-0.394],[3.769,-0.954],[3.795,-0.958],[1.442,3.058],[1.03,3.47],[1.247,3.253],[2.094,2.406],[-0.117,-8.883],[-3.002,-5.998]],"v":[[2371,1351],[2355.588,1352.088],[2341.593,1354.593],[2329.052,1358.552],[2318,1364],[2330.463,1364.352],[2342.009,1362.192],[2353.3,1359.185],[2365,1357],[2368.55,1366.95],[2371.808,1377.192],[2376.661,1385.839],[2385,1391],[2379.319,1369.681]],"c":true}],"h":1},{"t":4,"s":[{"i":[[8.204,13.13],[8.986,-1.18],[5.914,-3.561],[-7.531,0.489],[-8.363,-0.372],[-4.697,-8.137],[-8.959,-3.874],[-7.505,1.162],[-7.751,0.916],[-5.175,-7.492],[-10.189,-2.477],[6.534,7.966],[7.436,7.064],[19.385,1.385]],"o":[[-9.141,-1.28],[-8.986,1.18],[6.515,2.583],[7.531,-0.489],[4.254,8.58],[4.697,8.137],[8.229,-0.437],[7.505,-1.162],[8.113,4.554],[5.174,7.492],[-3.427,-11.073],[-6.534,-7.966],[-18.859,-0.859],[-11.546,-9.787]],"v":[[2373,1356],[2345.079,1355.869],[2322,1363],[2343.114,1365.159],[2367,1364],[2379.471,1390.029],[2399,1409],[2422.359,1406.359],[2445,1403],[2462.943,1423.057],[2484,1440],[2468.507,1411.993],[2447,1390],[2398,1395]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[17.426,0.426],[3.61,7.39],[6.298,4.702],[14.358,-0.224],[-15.176,-2.824],[-16.862,-9.138],[-16.757,-0.09],[-22.983,-11.35],[-18.271,-3.553],[-28.085,-9.248],[7.718,11.282],[15.69,5.894],[23.412,1.845],[20.244,14.423]],"o":[[-7.263,-3.737],[-3.61,-7.39],[-14.22,-5.157],[6.249,11.751],[14.348,11.652],[16.624,-0.042],[20.126,14.207],[20.359,0.337],[24.11,13.223],[-1.866,-17.134],[-9.324,-12.132],[-16.5,-6.198],[-22.112,-12.554],[-15.248,1.752]],"v":[[2401,1397],[2386.277,1378.723],[2373,1359],[2320,1357],[2365,1366],[2399,1410],[2445,1406],[2499,1455],[2557,1456],[2614,1511],[2590,1478],[2560,1445],[2500,1443],[2447,1392]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[14.034,-0.752],[13.536,8.13],[17.527,-1.339],[-17.328,-0.672],[-17.686,-7.314],[-16.464,-1.131],[-63.994,6.66],[-28.144,-15.523],[-24.539,0.877],[24.185,-0.953],[21.878,19.789],[17.603,2.063],[11.633,11.632],[9.145,1.962]],"o":[[-13.188,-8.479],[-15.727,-3.914],[6.14,11.86],[14.175,10.825],[14.771,-0.562],[25.338,31.996],[22.373,21.293],[22.099,-4.307],[-6.552,-22.353],[-23.239,-18.428],[-17.342,-2.325],[-12.023,-5.794],[-6.915,-6.914],[-12.033,-2.582]],"v":[[2401,1394],[2373,1357],[2322,1356],[2367,1365],[2400,1407],[2440,1401],[2557,1456],[2623,1521],[2693,1521],[2621,1508],[2560,1444],[2503,1442],[2469,1417],[2439,1388]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[24.269,6.397],[0,-0.667],[0,-0.667],[-12.325,-8.675],[-15.157,-5.843],[-9.359,5.641],[-12.514,2.486],[-13.009,-13.43],[-13.023,-11.827],[-9.117,-1.289],[-1.458,13.341],[9.025,-4.618],[42.901,25.099],[20.852,-13.482]],"o":[[0,0.667],[0,0.667],[7.544,13.456],[12.325,8.675],[5.052,-9.948],[9.359,-5.641],[13.941,8.454],[13.009,13.43],[8.418,7.646],[16.636,2.353],[-10.342,-12.381],[-39.945,-28.055],[-36.464,-2.13],[-20.446,-10.221]],"v":[[2821,1414],[2821,1416],[2821,1418],[2851.291,1450.709],[2893,1472],[2914.903,1448.903],[2948,1437],[2988.189,1471.47],[3027,1511],[3058,1532],[3091,1509],[3053,1515],[2946,1418],[2876,1451]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-5.034,15.633],[7.939,-5.061],[5.141,-7.859],[0.077,-9.092],[1.688,-7.237],[16.236,-5.097],[11.688,-9.646],[0.808,-5.481],[-1.541,-5.671],[-1.3,5.7],[-0.783,6.217],[-17.018,4.982],[-9.743,12.257],[7.681,15.902]],"o":[[-13.101,-0.101],[-7.939,5.061],[2.996,6.396],[-0.077,9.092],[-11.367,9.967],[-16.236,5.097],[-0.309,5.405],[-0.808,5.481],[7.015,0.015],[1.3,-5.7],[13.184,-8.816],[17.018,-4.982],[1.862,-19.262],[8.085,-12.581]],"v":[[1911,1574],[1880.03,1582.03],[1861,1602],[1865.014,1626.369],[1862,1652],[1818.241,1672.241],[1774,1692],[1771.613,1708.3],[1772,1725],[1783.174,1715.174],[1785,1696],[1833.081,1678.081],[1876,1655],[1875,1600]],"c":true}],"h":1},{"t":8,"s":[{"i":[[1.162,-0.163],[0.468,-3.365],[0.876,-2.958],[15.716,-3.617],[10.318,-9.015],[1.311,-9.189],[2.69,-7.81],[11.322,-1.512],[7.307,-5.526],[-4.794,-0.352],[-27.525,2.475],[-2.16,19.507],[-15.658,23.675],[6.205,1.128]],"o":[[-1.254,2.58],[-0.468,3.365],[-10.818,8.515],[-15.716,3.617],[-2.065,8.435],[-1.311,9.189],[-10.405,2.428],[-11.322,1.512],[0.135,2.005],[29.304,-0.696],[6.495,-15.172],[25.559,-13.774],[-0.708,-6.626],[-0.22,-0.78]],"v":[[1866,1640],[1863.716,1649.216],[1862,1659],[1819.625,1674.625],[1778,1691],[1773.469,1717.969],[1768,1744],[1734.177,1748.676],[1705,1758],[1703,1763],[1781,1751],[1790,1695],[1872,1659],[1868,1641]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-10.844,5.156],[-0.037,3.903],[1.345,3.105],[2.459,0.65],[3.305,-3.463],[-0.356,-2.977],[0.059,-3.393],[13.548,-1.785],[11.899,-3.434],[-0.014,-5.589],[-4.537,-1.244],[-0.517,4.149],[-1.802,2.865],[-13.32,2.68]],"o":[[1.686,-3.043],[0.037,-3.903],[-1.345,-3.105],[-2.459,-0.65],[-0.366,3.699],[0.356,2.977],[-10.909,4.425],[-13.548,1.785],[-1.593,3.403],[0.014,5.588],[4.129,-0.538],[0.517,-4.149],[14.874,-1.126],[13.32,-2.68]],"v":[[1789,1747],[1791.517,1736.166],[1789.487,1725.24],[1783.714,1719.194],[1775,1723],[1775.27,1732.73],[1776,1742],[1738.243,1750.244],[1699,1757],[1695.902,1772.119],[1702,1784],[1707.745,1775.745],[1710,1764],[1752.523,1758.523]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.976,0.486],[5.514,-0.875],[5.307,-1.082],[4.971,-1.418],[4.506,-1.883],[3.913,-2.476],[3.191,-3.198],[-7.086,1.081],[-6.904,1.263],[-6.241,1.926],[-5.098,3.069],[-1.008,0.955],[-1.056,0.903],[-0.395,0.747]],"o":[[-5.593,0.796],[-5.514,0.875],[-5.307,1.082],[-4.971,1.418],[-4.506,1.883],[-3.913,2.476],[6.788,-1.379],[7.086,-1.081],[6.904,-1.263],[6.241,-1.926],[0.25,-0.902],[1.008,-0.955],[1.056,-0.903],[0.395,-0.747]],"v":[[815,2000],[798.308,2002.474],[782.044,2005.378],[766.596,2009.096],[752.348,2014.015],[739.688,2020.521],[729,2029],[749.93,2025.43],[771.035,2022.035],[790.872,2017.372],[808,2010],[810.065,2007.189],[813.339,2004.376],[815.693,2001.876]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-0.002,1.943],[2.104,0.579],[1.71,-1.035],[1.19,-2.118],[0.544,-2.669],[-0.228,-2.688],[-1.125,-2.174],[-2.149,-1.128],[-3.298,0.45],[-0.431,1.514],[-0.37,1.575],[-0.296,1.648],[-0.21,1.734],[-0.112,1.832]],"o":[[-2.372,-2.726],[-2.104,-0.579],[-1.71,1.035],[-1.19,2.118],[-0.544,2.669],[0.228,2.688],[1.125,2.174],[2.149,1.128],[0.48,-1.465],[0.431,-1.514],[0.37,-1.575],[0.296,-1.648],[0.21,-1.734],[0.112,-1.832]],"v":[[2543,1858],[2536.255,1853.174],[2530.503,1853.991],[2526.122,1858.855],[2523.49,1866.169],[2522.985,1874.337],[2524.983,1881.762],[2529.862,1886.849],[2538,1888],[2539.369,1883.536],[2540.573,1878.906],[2541.575,1874.075],[2542.338,1869.005],[2542.825,1863.659]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 13"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.22,1.447],[1.341,0.123],[1.248,-0.141],[1.144,-0.368],[1.03,-0.557],[0.904,-0.71],[0.767,-0.825],[0.619,-0.904],[0.459,-0.945],[-1.592,0.074],[-1.495,0.172],[-1.345,0.322],[-1.142,0.525],[-0.887,0.78],[-0.58,1.087]],"o":[[-1.422,-0.424],[-1.341,-0.123],[-1.248,0.141],[-1.144,0.368],[-1.03,0.557],[-0.904,0.71],[-0.767,0.825],[-0.619,0.904],[1.638,-0.029],[1.592,-0.074],[1.495,-0.172],[1.345,-0.322],[1.142,-0.525],[0.887,-0.78],[0.58,-1.087]],"v":[[2339,1357],[2334.853,1356.188],[2330.967,1356.224],[2327.375,1356.997],[2324.111,1358.393],[2321.208,1360.304],[2318.7,1362.616],[2316.619,1365.218],[2315,1368],[2319.859,1367.858],[2324.502,1367.502],[2328.774,1366.774],[2332.517,1365.517],[2335.574,1363.574],[2337.787,1360.787]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[3.362,3.971],[-0.492,-3.788],[-1.039,-3.653],[-1.028,-3.664],[-0.457,-3.821],[3.494,-0.423],[3.439,-0.478],[2.475,-1.441],[0.604,-3.313],[-3.813,0.215],[-3.496,0.928],[-3.185,1.249],[-2.881,1.177],[1.25,6.084],[1.787,5.546]],"o":[[-0.614,4.068],[0.492,3.788],[1.039,3.653],[1.028,3.664],[-2.641,1.276],[-3.494,0.423],[-3.439,0.478],[-2.475,1.441],[4.136,0.89],[3.813,-0.215],[3.496,-0.928],[3.185,-1.249],[-1.75,-5.584],[-1.25,-6.084],[-1.787,-5.546]],"v":[[2038,1354],[2037.957,1365.748],[2040.394,1376.871],[2043.634,1387.809],[2046,1399],[2036.57,1401.32],[2025.944,1402.444],[2016.845,1405.095],[2012,1412],[2023.921,1412.914],[2034.882,1411.101],[2044.903,1407.737],[2054,1404],[2049.76,1386.24],[2045.464,1368.536]],"c":true}],"h":1},{"t":4,"s":[{"i":[[8.005,9.995],[-0.786,-7.107],[0.528,-7.315],[8.46,-2.873],[4.352,-6.981],[-1.334,-7.333],[-0.358,-8.309],[7.973,-2.861],[2.325,-8.508],[-7.99,4.01],[-8.66,3.34],[1.572,7.928],[0.332,9.168],[-8.433,2.234],[-3.551,7.116]],"o":[[-2.614,6.258],[0.786,7.107],[-8.808,2.525],[-8.46,2.873],[0.308,8.359],[1.333,7.333],[-4.784,6.05],[-7.973,2.861],[12.381,0.381],[7.99,-4.01],[0.62,-10.12],[-1.572,-7.928],[5.717,-4.949],[8.433,-2.234],[-2.28,-15.72]],"v":[[2039,1358],[2037.436,1378.207],[2039,1400],[2012.158,1407.158],[1992,1421],[1994.963,1444.037],[1998,1467],[1976.657,1478.156],[1959,1493],[1988.291,1486.291],[2012,1474],[2009.715,1447.785],[2006,1423],[2029.125,1414.125],[2049,1402]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[9.315,10.032],[0.575,-7.758],[0.833,-7.5],[11.218,-9.449],[-1.417,-15.25],[11.129,-19.538],[3.981,-15.686],[11.987,-6.68],[0.895,-11.439],[-22.905,4.445],[-3.096,5.571],[0,17],[-15.006,14.661],[-1.292,18.625],[-11.498,7.169]],"o":[[-2.865,5.468],[-0.575,7.758],[-14.448,6.219],[-1.11,17.776],[-14.486,16.181],[-0.097,19.569],[-11.419,7.247],[-9.461,2.872],[25.351,1.328],[4.707,-3.96],[0,-17],[12.294,-17.373],[1.118,-18.452],[10.496,-8.17],[0.813,-15.063]],"v":[[2042,1357],[2037.476,1377.476],[2036,1401],[1992,1419],[1996,1465],[1943,1504],[1940,1560],[1900,1576],[1878,1591],[1943,1572],[1956,1559],[1956,1508],[2009,1472],[2005,1424],[2045,1408]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[9.662,10.775],[0.264,-15.736],[10.698,-10.969],[2.291,-14.471],[13.097,-22.236],[3.261,-14.072],[17.281,-20.386],[-4.502,-22.374],[-1.589,25.412],[-25.443,9.224],[-2.592,16.742],[-9.797,6.991],[-8.667,9.219],[0.794,14.672],[-9.338,9.328]],"o":[[-6.702,9.298],[-12.544,9.123],[1.895,13.571],[-22.936,12.397],[-0.388,16.946],[-28.369,9.297],[7.326,19.723],[23.862,-3.138],[21.347,-13.32],[3.997,-15.336],[7.127,-9.389],[10.037,-7.162],[4.2,-16.38],[11.028,-7.639],[0.411,-16.964]],"v":[[2043,1358],[2038,1401],[1993,1421],[2000,1462],[1942,1510],[1940,1560],[1865,1598],[1865,1662],[1882,1598],[1954,1566],[1957,1511],[1981,1486],[2013,1468],[2008,1425],[2047,1408]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[0.667,0],[10.702,-7.798],[8.847,-9.653],[-0.614,-8.211],[0.187,-8.778],[17.211,-22.123],[6.336,-17.331],[15.36,-11.307],[-3.009,-2.909],[-14.147,4.946],[-13.292,8.161],[-2.491,21.842],[-18.4,20.6],[-2.837,15.886],[-6.951,24.397]],"o":[[-11.345,7.155],[-10.702,7.798],[-1.269,8.376],[0.614,8.211],[-25.533,13.801],[-3.395,20.272],[-21.06,5.606],[-4.635,1.871],[15.244,1.821],[14.381,-5.027],[4.288,-20.046],[20.701,-18.299],[1.004,-17.078],[11.709,-22.969],[-0.667,0]],"v":[[2002,1460],[1968.627,1482.126],[1939,1508],[1938.688,1532.698],[1940,1558],[1863,1599],[1855,1662],[1796,1683],[1785,1695],[1826,1680],[1870,1666],[1877,1600],[1953,1559],[1951,1513],[2004,1460]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[5.318,7.348],[1.667,0],[1.667,0],[-2.122,-7.449],[-3.905,-5.226],[-13.494,-6.006],[-9.456,-10.044],[0.02,-8.687],[-0.16,-8.506],[-10.343,-4.573],[-10.913,-1.421],[8.415,3.085],[5.081,6.419],[1.911,15.221],[29.262,17.071]],"o":[[-1.667,0],[-1.667,0],[-1.395,8.978],[2.122,7.449],[15.57,3.93],[13.494,6.006],[0.922,7.745],[-0.021,8.687],[6.716,7.284],[10.343,4.573],[-4.26,-7.24],[-8.415,-3.085],[-3.047,-16.31],[-20.531,-25.802],[-2.91,-9.756]],"v":[[2295,1620],[2290,1620],[2285,1620],[2286.525,1644.814],[2296,1664],[2340.086,1678.414],[2375,1702],[2376.072,1726.929],[2376,1753],[2402.352,1770.897],[2435,1780],[2414.116,1766.384],[2392,1754],[2391,1701],[2302,1651]],"c":true}],"h":1},{"t":8,"s":[{"i":[[22.812,21.521],[-0.255,8.791],[2.914,6.611],[6.244,3.389],[6.61,-2.034],[-4.261,-1.906],[-2.784,-3.382],[1.884,-8.461],[-0.238,-8.905],[-15.282,-6.052],[-12.59,-8.744],[2.664,-5.571],[-1.095,-6.798],[-2.666,-2.001],[-7.353,13.313]],"o":[[2.896,-6.227],[0.255,-8.791],[-4.414,-3.476],[-6.244,-3.389],[3.172,2.994],[4.261,1.906],[4.3,8.251],[-1.884,8.461],[10.283,11.05],[15.282,6.052],[-1.44,5.919],[-2.664,5.571],[1.278,3.389],[12.567,-8.099],[-25.461,-18.872]],"v":[[2392,1749],[2396.858,1725.288],[2393,1701],[2376.648,1689.368],[2357,1686],[2368.791,1692.709],[2380,1700],[2381.546,1725.009],[2377,1751],[2417.27,1774.73],[2461,1795],[2453.599,1811.841],[2450,1830],[2459,1835],[2480,1794]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[2.207,9.908],[3.843,1.947],[4.099,1.681],[4.331,0.643],[4.54,-1.166],[-4.402,-1.598],[-4.55,-1.45],[-1.905,-4.095],[3.46,-5.54],[2.312,-6.688],[-8.444,-2.723],[-9.244,-1.923],[5.742,2.091],[5.177,2.655],[-2.64,7.356]],"o":[[-3.565,-1.442],[-3.843,-1.947],[-4.099,-1.681],[-4.331,-0.643],[1.461,4.539],[4.402,1.598],[4.55,1.45],[-0.847,8.153],[-3.46,5.54],[6.983,4.184],[8.443,2.723],[-2.854,-4.979],[-5.742,-2.091],[4.646,-4.667],[2.64,-7.356]],"v":[[2479,1788],[2467.882,1782.723],[2455.963,1777.088],[2443.313,1773.409],[2430,1774],[2439.493,1782.507],[2453.62,1786.38],[2464,1794],[2456.599,1813.599],[2447,1831],[2470.304,1841.195],[2497,1848],[2483.243,1838.257],[2466,1832],[2477.639,1813.931]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[9.38,4.454],[-2.185,-2.101],[-2.395,-1.891],[-2.508,-1.777],[-2.526,-1.76],[-2.448,-1.838],[-2.274,-2.012],[-2.004,-2.282],[-4.219,-3.396],[-4.216,-3.409],[-4.639,-2.559],[-5.489,-0.845],[8.09,7.025],[8.71,6.415],[9.14,5.558]],"o":[[1.879,2.406],[2.185,2.101],[2.395,1.891],[2.508,1.777],[2.526,1.76],[2.448,1.838],[2.274,2.012],[4.649,2.519],[4.219,3.396],[4.216,3.409],[4.639,2.559],[-7.279,-7.388],[-8.09,-7.025],[-8.71,-6.415],[-9.14,-5.558]],"v":[[626,267],[632.12,273.737],[639.014,279.701],[646.392,285.179],[653.968,290.461],[661.453,295.833],[668.56,301.583],[675,308],[688.194,317.088],[700.739,327.511],[713.915,336.679],[729,342],[705.899,320.32],[680.651,300.099],[653.827,282.079]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[0.447,-0.07],[2.168,-1.118],[2.126,-1.16],[2.055,-1.23],[1.957,-1.329],[1.83,-1.455],[1.676,-1.61],[1.493,-1.793],[-4.073,1.677],[-3.549,2.2],[-2.952,2.798],[-2.28,3.47],[-0.095,0.118],[0.079,0.139],[0.26,0.076]],"o":[[-2.182,1.103],[-2.168,1.118],[-2.126,1.16],[-2.055,1.23],[-1.957,1.329],[-1.83,1.455],[-1.676,1.61],[4.522,-1.228],[4.073,-1.677],[3.549,-2.201],[2.952,-2.798],[0.263,-0.014],[0.095,-0.118],[-0.079,-0.139],[-0.26,-0.076]],"v":[[742,2018],[735.467,2021.324],[729.019,2024.733],[722.74,2028.311],[716.714,2032.143],[711.026,2036.312],[705.76,2040.903],[701,2046],[713.91,2041.66],[725.362,2035.862],[735.133,2028.383],[743,2019],[743.539,2018.781],[743.565,2018.374],[743.058,2018.03]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 14"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.947,6.807],[0.428,-0.105],[0.22,-0.313],[0.165,-0.368],[0.264,-0.269],[0.516,-0.017],[1.961,-5.373],[1.818,-5.515],[2.198,-5.135],[3.102,-4.231],[5.195,0.952],[4.833,0.72],[3.721,-1.217],[1.861,-4.859],[-4.361,-0.973],[-4.852,-0.481],[-5.066,-0.268],[-5.001,-0.333],[-2.853,6.178],[-2.315,6.725],[-1.679,6.935]],"o":[[-0.79,-0.256],[-0.428,0.105],[-0.22,0.313],[-0.165,0.368],[-0.264,0.269],[-2.626,4.707],[-1.961,5.373],[-1.818,5.515],[-2.198,5.135],[-4.809,0.521],[-5.195,-0.952],[-4.833,-0.72],[-3.721,1.217],[3.591,1.743],[4.361,0.973],[4.852,0.481],[5.066,0.268],[3.294,-5.292],[2.853,-6.178],[2.315,-6.725],[1.679,-6.935]],"v":[[1804,1388],[1802.212,1387.812],[1801.278,1388.478],[1800.738,1389.538],[1800.132,1390.532],[1799,1391],[1792.251,1406.251],[1786.714,1422.714],[1780.82,1438.82],[1773,1453],[1757.808,1451.927],[1742.579,1448.993],[1729.561,1449.312],[1721,1458],[1732.996,1462.004],[1746.885,1464.115],[1761.831,1465.168],[1777,1466],[1786.245,1448.711],[1794.02,1429.272],[1800.036,1408.697]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-3.291,11.877],[3.246,-4.504],[2.487,-5.263],[2.748,-5.002],[4.028,-3.722],[8.327,0.122],[7.772,-0.765],[6.13,-2.143],[6.808,-13.692],[10.099,-10.401],[6.639,-1.027],[6.452,-1.215],[6.316,-1.517],[-0.132,-7.966],[-13.666,2.251],[-12.403,2.597],[-6.958,14.042],[-10.582,10.418],[-10.384,-0.051],[-9.215,1.119],[-5.411,12.338]],"o":[[-5.024,2.726],[-3.246,4.504],[-2.487,5.263],[-2.748,5.002],[-7.796,-0.518],[-8.327,-0.122],[-7.772,0.765],[-9.669,10.831],[-6.808,13.692],[-5.991,1.676],[-6.639,1.027],[-5.867,1.966],[-6.316,1.517],[14.933,1.599],[13.666,-2.251],[10.585,-10.416],[6.958,-14.042],[9.249,-1.084],[10.384,0.051],[9.064,-7.769],[5.411,-12.338]],"v":[[1802,1396],[1789.851,1407.1],[1781.507,1422.006],[1773.91,1437.659],[1764,1451],[1739.544,1449.917],[1715.124,1450.76],[1694,1455],[1670.822,1493.322],[1647,1531],[1627.846,1534.846],[1608,1538],[1588.001,1541.501],[1577,1554],[1619.897,1552.147],[1659,1544],[1683.502,1505.501],[1708,1467],[1738.026,1466.026],[1768,1465],[1789.331,1433.581]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-9.408,27.26],[6.872,-11.295],[11.101,-7.066],[11.25,0.084],[8.276,-2.89],[7.044,-13.456],[10.865,-9.635],[15.469,-2.785],[11.677,-6.867],[13.005,-19.194],[21.213,-8.19],[10.008,-1.163],[9.848,-1.415],[0.401,-18.502],[-18.265,2.819],[-15.147,7.124],[-11.283,13.855],[-15.867,8.405],[-31.857,9.42],[-26.697,16.637],[-17.013,0.32]],"o":[[-12.412,5.755],[-6.872,11.295],[-9.722,1.445],[-11.25,-0.084],[-10.959,9.541],[-7.044,13.456],[-14.448,5.994],[-15.469,2.785],[-18.766,11.036],[-13.005,19.193],[-8.121,1.934],[-10.008,1.163],[-18.504,2.659],[19.779,-4.306],[18.502,-2.856],[17.265,-8.12],[11.88,-14.588],[25.003,-13.244],[23.495,-19.838],[15.49,-1.844],[23.777,-16.223]],"v":[[1808,1394],[1781.517,1422.017],[1757,1452],[1724.416,1452.916],[1694,1456],[1668.929,1492.429],[1644,1529],[1597.921,1540.345],[1556,1553],[1511.835,1603.135],[1464,1649],[1436.295,1653.389],[1406,1657],[1365,1681],[1422,1672],[1476,1660],[1522,1614],[1566,1566],[1654,1544],[1708,1468],[1759,1467]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[3.831,0.455],[0.333,0],[23.247,-13.086],[16.534,-4.466],[18.55,-16.784],[33.913,-15.42],[31.709,-21.625],[32.294,-23.372],[9.109,-13.224],[14.892,-9.108],[5.036,-6.964],[2.716,-6.284],[-3.85,0.753],[-10.279,8.741],[-31.912,27.327],[-41.751,-0.085],[-34.874,24.31],[-42.605,5.362],[-19.423,18.577],[-17.476,0.523],[-11.139,24.861]],"o":[[-0.333,0],[-24.03,12.303],[-18.119,2.881],[-17.081,18.253],[-46.181,3.152],[-26.744,26.59],[-47.641,8.026],[-10.075,12.258],[-12.754,11.246],[-5.684,6.316],[-5.051,3.949],[-1.363,0.18],[16.014,-0.285],[32.482,-27.623],[36.508,-5.159],[37.922,-20.72],[26.758,-18.653],[24.215,-13.785],[14.539,-3.461],[21.69,-14.31],[0.613,-2.506]],"v":[[1807,1397],[1806,1397],[1755,1455],[1695,1458],[1656,1525],[1546,1563],[1469,1646],[1339,1683],[1310,1721],[1271,1754],[1252,1771],[1240,1786],[1239,1790],[1275,1768],[1367,1683],[1472,1663],[1560,1573],[1662,1540],[1708,1472],[1760,1470],[1805,1407]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[19.894,8.439],[-7.419,-4.748],[-4.072,-8.095],[1.893,-5.607],[-0.467,-7.967],[-8.626,-3.041],[-5.613,-6.053],[-2.712,-9.788],[-3.289,-9.211],[-11.34,-5.66],[-7.341,-9.659],[-0.524,-9.988],[-1.932,-7.595],[-16.109,-7.727],[-19.144,1.329],[12.258,10.409],[12.402,10.264],[-4.59,15.284],[-13.887,64.992],[10.982,14.685],[-1.726,10.607]],"o":[[2.252,9.914],[7.419,4.747],[-0.896,6.603],[-1.893,5.608],[5.885,5.782],[8.626,3.041],[-1.137,13.637],[2.712,9.788],[9.298,7.702],[11.34,5.66],[-2.03,8.451],[0.524,9.989],[13.152,12.098],[15.722,7.542],[-5.559,-17.108],[-16.215,-6.451],[1.06,-17.916],[-29.145,-28.508],[-8.511,-17.156],[-0.497,-12.831],[-11.198,-17.135]],"v":[[2139,1397],[2155.635,1416.864],[2175,1434],[2169.977,1451.477],[2167,1471],[2190.204,1482.796],[2213,1495],[2216.18,1529.32],[2226,1557],[2258.468,1575.532],[2288,1597],[2286.028,1625.642],[2290,1653],[2338,1676],[2387,1697],[2347,1669],[2303,1645],[2304,1593],[2228,1493],[2181,1463],[2188,1433]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[1.615,-0.281],[-2.527,-10.251],[-0.562,-11.669],[-11.816,-5.518],[-9.331,-8.002],[-0.044,-10.623],[-2.493,-8.174],[-16.017,-7.149],[-11.926,-11.241],[-2.004,-10.684],[-12.289,0.449],[0.823,9.74],[-2.427,8.729],[17.188,7.645],[11.187,13.646],[0.062,10.105],[1.836,8.331],[12.133,4.746],[6.386,11.775],[1.756,10.32],[6.604,7.659]],"o":[[-1.671,12.327],[2.527,10.251],[8.405,8.928],[11.816,5.518],[0.333,10.333],[0.044,10.623],[13.005,10.162],[16.017,7.149],[-2.307,9.715],[2.004,10.684],[-1.137,-8.312],[-0.823,-9.74],[-13.061,-11.773],[-17.188,-7.645],[-0.918,-9.249],[-0.062,-10.105],[-10.081,-8.242],[-12.133,-4.746],[-4.372,-8.062],[-1.756,-10.32],[-1.279,-0.055]],"v":[[2213,1491],[2215.825,1523.993],[2222,1556],[2253.806,1576.194],[2287,1595],[2286.881,1627.119],[2290,1656],[2335.31,1680.19],[2379,1706],[2377.053,1739.623],[2397,1758],[2393.327,1730.313],[2395,1702],[2347.095,1675.405],[2302,1646],[2301.188,1616.312],[2299,1588],[2263.728,1571.149],[2234,1549],[2226.674,1520.198],[2216,1492]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-25.846,49.154],[0.333,0],[0.333,0],[6.304,-5.853],[7.396,-3.64],[9.898,-1.951],[9.128,-1.12],[9.892,-1.177],[9.367,-4.178],[5.661,-4.368],[5.134,-4.198],[15.635,-13.044],[17.304,-10.612],[10.226,-0.941],[11.066,-0.101],[4.957,-2.376],[0.851,-6.483],[-12.642,1.595],[-13.236,-2.183],[-22.442,19.058],[-25.592,15.908]],"o":[[-0.333,0],[-0.333,0],[-8.388,4.947],[-6.304,5.853],[-8.281,4.077],[-9.898,1.951],[-9.063,1.112],[-9.892,1.177],[-5.221,2.329],[-5.661,4.368],[-16.155,13.211],[-15.635,13.044],[-11.032,0.135],[-10.226,0.941],[-4.321,3.013],[-4.957,2.376],[11.196,0.197],[12.642,-1.595],[27.641,-13.859],[22.442,-19.058],[65.909,-9.09]],"v":[[1276,1754],[1275,1754],[1274,1754],[1252.756,1770.98],[1233,1786],[1205.135,1794.717],[1176,1799],[1147.228,1801.7],[1118,1809],[1101.435,1819.598],[1085,1833],[1037.862,1872.949],[989,1909],[957.525,1911.026],[926,1913],[910.897,1919.898],[901,1932],[936.969,1928.511],[976,1928],[1049.037,1876.537],[1119,1822]],"c":true}],"h":1},{"t":8,"s":[{"i":[[0.5,0],[4.495,-3.339],[4.032,-3.801],[4.271,-3.562],[5.213,-2.621],[8.531,-0.972],[9.091,-0.092],[9.075,0.694],[11.424,-9.409],[10.168,-10.666],[-8.793,7.207],[-11.103,4.896],[-1.756,-0.411],[-2.138,-0.028],[-19.08,6.754],[-12.426,13.408],[-2.27,1.73],[-2.101,1.899],[-2.001,2.23],[2.34,2.869],[0.5,0]],"o":[[-5.659,2.174],[-4.495,3.339],[-4.032,3.801],[-4.271,3.562],[-7.394,1.947],[-8.531,0.972],[-9.091,0.092],[-13.137,7.697],[-11.424,9.409],[11.723,-4.278],[8.793,-7.207],[1.837,0.329],[1.756,0.411],[26.255,0.422],[19.08,-6.754],[1.817,-2.183],[2.271,-1.729],[1.334,-2.211],[2.001,-2.23],[-0.5,0],[-0.5,0]],"v":[[1050,1869],[1034.944,1877.444],[1022.33,1888.33],[1010.05,1899.55],[996,1909],[971.968,1913.355],[945.392,1914.927],[918,1914],[881.274,1939.774],[849,1970],[878.464,1951.464],[907,1932],[912.275,1933.225],[918,1934],[985.872,1924.372],[1033,1894],[1039.287,1888.287],[1046,1883],[1052.255,1876.494],[1053,1869],[1051.5,1869]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[0.216,4.716],[0.583,0],[0.583,0],[0.583,0],[0.583,0],[6.32,-4.264],[5.794,-4.789],[5.702,-4.881],[6.045,-4.539],[5.961,-4.372],[6.083,-4.25],[5.227,-5.106],[1.299,-1.201],[1.025,-1.475],[0.667,-0.667],[0.452,-0.881],[0.617,-0.771],[-2.044,0.236],[-20.819,17.014],[-21.433,16.4],[-2.982,1.518]],"o":[[-0.583,0],[-0.583,0],[-0.583,0],[-0.583,0],[-7.279,3.304],[-6.32,4.264],[-5.794,4.789],[-5.702,4.881],[-4.862,5.471],[-5.961,4.372],[-6.083,4.25],[-1.777,0.722],[-1.299,1.201],[-0.881,0.452],[-0.667,0.667],[-0.574,0.155],[-0.617,0.77],[25.289,-12.543],[20.819,-17.014],[3.288,-1.211],[2.982,-1.518]],"v":[[920,1919],[918.25,1919],[916.5,1919],[914.75,1919],[913,1919],[892.71,1930.46],[874.648,1944.148],[857.512,1958.762],[840,1973],[823.521,1987.521],[805.209,2000.209],[788,2014],[783.436,2016.935],[780,2021],[777.678,2022.678],[776,2025],[773.537,2026.793],[775,2028],[842.892,1982.392],[905,1931],[915.128,1927.628]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[3.293,0.582],[-0.799,-1.38],[-0.947,-1.359],[-1.084,-1.324],[-1.212,-1.273],[-1.328,-1.207],[-1.435,-1.126],[-1.53,-1.03],[-1.616,-0.92],[-1.691,-0.794],[-1.755,-0.653],[-1.809,-0.497],[-1.853,-0.326],[-1.886,-0.14],[1.81,2.065],[1.883,1.992],[2.003,1.872],[2.168,1.707],[2.38,1.495],[2.638,1.237],[2.943,0.932]],"o":[[0.64,1.386],[0.799,1.38],[0.947,1.359],[1.084,1.324],[1.212,1.273],[1.328,1.207],[1.435,1.126],[1.53,1.03],[1.616,0.92],[1.691,0.794],[1.755,0.653],[1.809,0.497],[1.853,0.326],[-1.783,-2.092],[-1.81,-2.065],[-1.883,-1.992],[-2.003,-1.872],[-2.168,-1.707],[-2.38,-1.495],[-2.638,-1.237],[-2.943,-0.932]],"v":[[3263,2097],[3265.161,2101.152],[3267.782,2105.265],[3270.831,2109.293],[3274.278,2113.191],[3278.09,2116.915],[3282.237,2120.419],[3286.687,2123.658],[3291.409,2126.586],[3296.371,2129.16],[3301.543,2131.333],[3306.892,2133.061],[3312.389,2134.298],[3318,2135],[3312.621,2128.754],[3307.092,2122.658],[3301.275,2116.85],[3295.029,2111.471],[3288.218,2106.657],[3280.701,2102.549],[3272.342,2099.283]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":10.4,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 15"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[1.182,0.401],[-0.594,-0.99],[-0.816,-0.767],[-1.015,-0.569],[-1.189,-0.394],[-1.339,-0.244],[-1.466,-0.117],[-1.568,-0.015],[-1.647,0.064],[0.549,1.035],[0.913,0.67],[1.187,0.396],[1.369,0.214],[1.459,0.124],[1.458,0.125],[1.366,0.217]],"o":[[0.347,1.236],[0.594,0.99],[0.816,0.767],[1.015,0.569],[1.189,0.394],[1.339,0.244],[1.466,0.117],[1.568,0.015],[-0.092,-1.491],[-0.549,-1.035],[-0.913,-0.67],[-1.187,-0.396],[-1.369,-0.214],[-1.459,-0.124],[-1.458,-0.125],[-1.366,-0.217]],"v":[[2127,1398],[2128.417,1401.333],[2130.538,1403.963],[2133.29,1405.961],[2136.601,1407.399],[2140.4,1408.35],[2144.614,1408.886],[2149.171,1409.079],[2154,1409],[2153.016,1405.234],[2150.8,1402.7],[2147.627,1401.123],[2143.77,1400.23],[2139.505,1399.746],[2135.105,1399.395],[2130.845,1398.905]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[4.973,1.277],[-3.64,-2.193],[-4.333,-1.5],[-4.027,-1.807],[-2.72,-3.114],[1.2,-2.309],[1.236,-2.252],[0.543,-2.567],[-0.879,-3.253],[-2.284,2.216],[-1.293,3.207],[-0.738,3.762],[-0.618,3.882],[4.408,1.842],[4.307,1.943],[4.495,1.755]],"o":[[1.947,3.887],[3.64,2.193],[4.334,1.5],[4.027,1.807],[-0.435,2.738],[-1.2,2.309],[-1.236,2.252],[-0.543,2.567],[3.709,-0.791],[2.284,-2.216],[1.293,-3.207],[0.738,-3.762],[-4.799,-1.451],[-4.408,-1.842],[-4.307,-1.943],[-4.495,-1.755]],"v":[[2132,1398],[2140.63,1406.87],[2152.84,1412.16],[2165.631,1416.869],[2176,1424],[2173.366,1431.478],[2169.529,1438.228],[2166.678,1445.364],[2167,1454],[2175.881,1449.381],[2181.137,1441.137],[2184.075,1430.575],[2186,1419],[2172.261,1413.989],[2159.261,1408.239],[2146.13,1402.62]],"c":true}],"h":1},{"t":4,"s":[{"i":[[8.182,2.152],[-7.115,-3.718],[-4.193,-6.64],[1.922,-6.412],[-0.649,-8.983],[-9.911,-4.089],[-7.349,-6.652],[0.77,-7.286],[-5.936,-3.384],[-0.503,8.497],[-1.453,7.547],[10.623,4.377],[7.15,7.85],[-1.709,5.791],[-0.716,6.784],[8.478,4.438]],"o":[[3.348,7.486],[7.115,3.718],[-1.963,6.37],[-1.922,6.412],[7.006,6.994],[9.911,4.089],[1.144,7.472],[-0.77,7.286],[6.534,-2.466],[0.503,-8.497],[-6.358,-8.642],[-10.623,-4.377],[1.45,-6.05],[1.709,-5.791],[-5.905,-6.096],[-8.478,-4.438]],"v":[[2137,1401],[2154.366,1416.134],[2173,1430],[2166.541,1448.54],[2164,1471],[2190.743,1486.256],[2218,1501],[2216.406,1524.066],[2222,1541],[2230.811,1522.811],[2232,1497],[2204.594,1479.406],[2176,1463],[2181.051,1445.551],[2185,1427],[2162.708,1411.042]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[18.145,5.19],[-7.036,-4.964],[-4.164,-7.836],[1.767,-5.733],[-0.398,-7.898],[-9.737,-4.264],[-6.037,-7.963],[-0.768,-7.899],[-1.019,-7.648],[-14.378,-24.955],[-20.298,-4.203],[-2.848,17.485],[15.821,25.846],[0.096,14.571],[3.407,18.275],[-0.305,12.582]],"o":[[3.69,8.309],[7.036,4.964],[-1.331,6.169],[-1.767,5.733],[6.016,7.984],[9.736,4.264],[-0.09,8.756],[0.768,7.899],[19.271,20.063],[0.943,16.858],[10.063,-10.27],[-15.794,-25.873],[-1.505,-13.161],[-7.231,-16.003],[-2.084,-11.176],[-11.323,-15.345]],"v":[[2137,1398],[2154.645,1416.355],[2173,1434],[2167.704,1451.204],[2165,1471],[2190.484,1487.516],[2216,1504],[2217.168,1528.832],[2220,1552],[2290,1600],[2297,1649],[2304,1595],[2232,1542],[2231,1499],[2178,1463],[2185,1432]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.89,0.443],[0.89,-0.443],[17.252,-6.126],[15.994,-8.737],[34.775,-22.899],[32.954,-15.712],[21.983,-20.783],[23.35,-14.021],[29.465,-11.201],[1.387,-12.28],[-46.431,1.903],[-43.828,38.838],[-37.023,12.31],[-37.184,21.483],[-17.85,7.014],[-9.882,15.899]],"o":[[-0.211,1.122],[-20.138,2.503],[-18.192,6.459],[-37.601,20.54],[-40.883,11.439],[-27.007,12.876],[-20.76,19.627],[-36.278,4.389],[-8.656,5.01],[37.777,-7.224],[49.403,-33.263],[32.998,-16.336],[34.191,-24.475],[16.597,-6.595],[17.788,-6.989],[-0.211,-1.122]],"v":[[1661,1520],[1659,1522],[1604,1538],[1551,1556],[1470,1645],[1352,1672],[1288,1734],[1224,1786],[1126,1810],[1103,1828],[1224,1802],[1356,1686],[1476,1658],[1561,1567],[1614,1547],[1663,1522]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-8.957,23.377],[1.882,-0.04],[1.425,-0.405],[13.434,-4.774],[9.802,-6.361],[16.873,-16.627],[21.086,-12.414],[28.528,-8.011],[16.38,-20.045],[6.514,-5.819],[2.173,-3.827],[2.323,-0.677],[-4.792,-0.237],[-29.86,14.806],[-33.009,29.324],[-29.455,32.725]],"o":[[-2.047,-1.564],[-1.882,0.04],[-12.463,3.541],[-13.434,4.774],[-13.423,20.077],[-16.873,16.627],[-30.509,6.912],[-28.528,8.011],[-6.314,6.02],[-1.46,4.54],[-2.323,0.677],[-0.469,1.217],[30.821,-13.845],[48.21,-14.123],[37.062,-26.165],[20.992,-11.342]],"v":[[1421,1655],[1415.033,1653.023],[1410,1654],[1370.004,1666.385],[1334,1683],[1288.748,1738.248],[1232,1782],[1140.904,1801.651],[1071,1841],[1052,1859],[1044,1869],[1039,1873],[1037,1877],[1115,1821],[1259,1778],[1354,1685]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[79.113,7.555],[-7.587,-2.746],[-8.311,-2.023],[-13.883,-18.117],[-18.204,-13.796],[-26.177,-8.489],[-26.667,-8],[-11.256,-13.578],[-20.2,-4.633],[5.509,5.809],[4.563,5.498],[5.257,6.92],[7.447,4.662],[13.501,3.823],[13.575,4.557],[27.26,8.398]],"o":[[5.341,4.992],[7.587,2.746],[19.264,12.736],[13.883,18.117],[25.623,9.043],[26.177,8.489],[11.778,13.055],[11.256,13.578],[-2.403,-8.265],[-5.509,-5.809],[-5.524,-6.657],[-5.257,-6.92],[-11.423,-7.152],[-13.501,-3.823],[-26.424,-8.871],[-43.151,-43.517]],"v":[[2781,1832],[2800.773,1843.227],[2825,1850],[2872.295,1898.705],[2918,1949],[2995.717,1975.282],[3075,2000],[3107.184,2042.317],[3152,2072],[3139.12,2051.424],[3123,2035],[3107.441,2014.005],[3089,1996],[3051.114,1980.554],[3010,1969],[2930,1943]],"c":true}],"h":1},{"t":8,"s":[{"i":[[37.02,3.981],[-0.03,-0.387],[-0.081,-0.335],[-0.136,-0.281],[-0.194,-0.222],[-4.806,-2.361],[-5.739,-1.428],[-5.939,-1.228],[-5.406,-1.761],[-9.418,-12.082],[-8.053,-13.447],[-14.548,-4.535],[-17.244,0.744],[10.71,3.457],[11.06,3.107],[23.503,17.497]],"o":[[-0.019,0.436],[0.03,0.387],[0.081,0.335],[0.136,0.281],[3.139,4.028],[4.806,2.361],[5.739,1.428],[5.939,1.228],[11.274,10.226],[9.418,12.082],[13.564,4.602],[14.548,4.535],[-10.102,-4.065],[-10.71,-3.457],[-14.969,-26.031],[-23.503,-17.497]],"v":[[3006,1967],[3006.015,1968.235],[3006.181,1969.319],[3006.505,1970.245],[3007,1971],[3019.1,1980.4],[3035.1,1985.9],[3052.8,1989.7],[3070,1994],[3100.916,2027.585],[3127,2066],[3168.74,2081.01],[3216,2088],[3184.718,2076.782],[3152,2067],[3095.538,2000.462]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[6.01,-0.843],[-0.999,-1.539],[-1.462,-1.191],[-1.607,-0.932],[-1.435,-0.76],[-5.636,-1.995],[-5.935,-1.498],[-6.082,-1.254],[-6.076,-1.263],[-15.532,-5.042],[-15.662,-2.463],[-0.304,-0.195],[-0.222,0.727],[27.804,7.363],[27.749,7.418],[2.987,2.18]],"o":[[0.218,1.975],[0.999,1.539],[1.462,1.191],[1.607,0.932],[5.184,2.746],[5.636,1.995],[5.935,1.498],[6.082,1.254],[16.211,3.37],[15.532,5.042],[0.561,-0.052],[0.304,0.195],[-21.034,-14.132],[-27.804,-7.363],[-3.043,-2.124],[-2.987,-2.18]],"v":[[3131,2058],[3132.905,2063.248],[3136.675,2067.322],[3141.358,2070.484],[3146,2073],[3162.268,2080.048],[3179.662,2085.224],[3197.725,2089.288],[3216,2093],[3263.412,2106.68],[3310,2119],[3311.254,2119.507],[3312,2119],[3237.036,2088.464],[3152,2068],[3143.725,2060.775]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":9.6,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 16"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[5.153,4.181],[-1.015,-2.943],[-1.388,-2.571],[-1.634,-2.324],[-1.754,-2.205],[-1.747,-2.211],[-1.614,-2.344],[-1.355,-2.603],[-0.969,-2.989],[3.485,-1.249],[3.535,-1.199],[3.142,-1.591],[2.308,-2.425],[1.032,-3.701],[-5.587,1.31],[-5.2,2.683],[-4.388,3.156],[-3.151,2.73],[3.756,5.577],[3.807,5.526],[4.273,5.061]],"o":[[0.516,3.443],[1.015,2.943],[1.388,2.571],[1.634,2.324],[1.754,2.205],[1.747,2.211],[1.614,2.344],[1.355,2.603],[-2.993,1.74],[-3.485,1.249],[-3.535,1.199],[-3.142,1.591],[-2.308,2.425],[5.548,0.962],[5.587,-1.31],[5.2,-2.683],[4.388,-3.156],[-4.119,-5.214],[-3.756,-5.577],[-3.807,-5.526],[-4.273,-5.061]],"v":[[2078,1433],[2080.328,1442.547],[2083.963,1450.787],[2088.527,1458.098],[2093.64,1464.86],[2098.923,1471.452],[2103.997,1478.253],[2108.482,1485.643],[2112,1494],[2102.173,1498.373],[2091.533,1501.933],[2081.407,1506.007],[2073.121,1511.921],[2068,1521],[2084.809,1520.253],[2101.096,1514.038],[2115.585,1505.054],[2127,1496],[2115.291,1479.709],[2104.05,1462.95],[2092.034,1446.966]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[8.381,7.619],[-1.55,-4.867],[-2.315,-4.102],[-2.107,-4.309],[-0.927,-5.489],[7.164,-3.947],[6.201,-4.91],[3.841,-7.27],[-6.737,-9.763],[-5.168,-11.332],[9.658,-6.254],[2.55,-10.793],[-6.376,3.935],[-5.306,3.771],[-5.938,4.343],[-2.458,6.513],[7.549,9.785],[3.845,13.488],[-9.749,5.251],[-4.757,10.243],[5.982,10.018]],"o":[[-0.187,6.603],[1.55,4.867],[2.315,4.102],[2.107,4.309],[-6.731,4.38],[-7.164,3.947],[-6.201,4.91],[4.883,11.617],[6.737,9.763],[-4.817,10.19],[-9.658,6.254],[8.191,4.51],[6.376,-3.935],[5.789,-4.115],[5.938,-4.343],[-3.96,-13.373],[-7.549,-9.785],[6.245,-8.755],[9.749,-5.251],[-4.691,-11.309],[-5.982,-10.018]],"v":[[2082,1439],[2084.288,1455.962],[2090.329,1469.171],[2097.205,1481.545],[2102,1496],[2080.808,1508.141],[2060.412,1521.078],[2045,1539],[2063.286,1570.214],[2082,1601],[2057.3,1623.548],[2036,1647],[2057.664,1645.711],[2075,1632],[2093.498,1619.798],[2107,1604],[2087.914,1571.086],[2069,1538],[2095.116,1519.116],[2119,1498],[2103.268,1465.732]],"c":true}],"h":1},{"t":4,"s":[{"i":[[10.39,6.477],[0.667,0],[-5.274,-21.06],[1.793,-22.576],[-5.924,-8.773],[-3.425,-11.576],[11.953,-10.015],[0.421,-13.281],[-5.989,-9.924],[-3.17,-15.163],[15.868,-7.846],[4.269,-18.075],[-12.286,8.227],[-15.553,5.896],[-1.643,11.164],[5.175,11.867],[5.524,13.809],[-16.281,23.719],[8.382,24.618],[-11.227,16.773],[4.046,11.905]],"o":[[-0.667,0],[-2.067,28.401],[-11.131,14.95],[-0.867,10.921],[6.792,10.058],[-7.835,11.581],[-10.001,8.379],[-0.391,12.339],[7.489,12.411],[-10.384,12.609],[-14.952,7.393],[18.618,7.955],[13.52,-9.053],[7.471,-7.206],[2.399,-16.305],[-7.572,-11.762],[13.902,-26.098],[-8.58,-24.42],[9.81,-18.19],[-0.836,-13.954],[-4.075,-11.99]],"v":[[2087,1434],[2085,1434],[2100,1498],[2047,1541],[2062,1572],[2078,1603],[2047,1632],[2021,1667],[2039,1703],[2055,1742],[2013,1770],[1973,1800],[2019,1788],[2062,1766],[2081,1745],[2063,1705],[2044,1666],[2103,1605],[2067,1542],[2114,1505],[2104,1466]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[10.092,5.908],[0.333,0],[-2.993,-20.531],[0.434,-21.634],[-5.662,-6.868],[-4.405,-10.173],[12.734,-33.266],[-5.954,-28.379],[16.167,-14.5],[5.509,-19.158],[-9.868,-32.798],[-5.596,7.018],[13.768,29.899],[-22.803,12.53],[-4.489,12.178],[7.647,29.019],[-13.7,15.3],[-3.777,11.223],[7.429,22.571],[-5.695,19.411],[4.537,13.049]],"o":[[-0.333,0],[-8.886,22.762],[-5.977,18.281],[-0.194,9.648],[7.709,9.351],[-26.483,19.517],[6.433,27.901],[-18.473,12.193],[-15.45,9.217],[16.947,25.72],[6.916,3.128],[-5.253,-38.414],[21.833,-13.501],[11.931,-4.735],[-7.27,-29.397],[6.85,-22.15],[9.755,-5.245],[-4.117,-25.883],[8.073,-17.358],[3.957,-13.487],[-6.22,-9.78]],"v":[[2090,1437],[2089,1437],[2101,1499],[2049,1541],[2067,1567],[2084,1594],[2023,1671],[2055,1742],[1999,1778],[1960,1813],[2008,1893],[2035,1893],[1989,1808],[2052,1765],[2083,1746],[2048,1671],[2082,1618],[2106,1597],[2073,1540],[2118,1506],[2107,1468]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[37.114,21.886],[0.235,-0.48],[-0.743,-0.218],[-12.313,-15.353],[-12.309,-15.358],[-20.564,-4.602],[-17.189,-7.979],[-12.704,-16.963],[-15.865,-13.802],[-29.219,-8.947],[-26.226,-11.941],[-11.338,-12.828],[-15.011,-9.155],[-8.607,-3.392],[-0.352,4.442],[6.855,8.479],[8.168,7.165],[15.798,15.202],[55.74,19.592],[31.673,30.327],[32.352,15.315]],"o":[[0.198,0.86],[-0.235,0.48],[9.439,18.228],[12.313,15.353],[14.554,10.612],[20.564,4.602],[12.32,17.346],[12.704,16.963],[25.897,12.27],[29.219,8.947],[10.636,13.531],[11.338,12.828],[6.583,5.417],[2.009,0.311],[-1.885,-13.448],[-8.669,-6.665],[-15.129,-15.87],[-50.696,-24.637],[-33.441,-28.558],[-33.884,-13.782],[-33.995,-25.006]],"v":[[2403,1567],[2402.591,1568.981],[2403,1570],[2436.348,1619.652],[2474,1665],[2529.024,1685.476],[2588,1702],[2624.842,1754.158],[2667,1801],[2751.254,1831.247],[2836,1861],[2868.218,1901.282],[2907,1935],[2930,1948],[2938,1949],[2915,1926],[2891,1904],[2848,1854],[2681,1795],[2598,1692],[2489,1658]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-37.994,-7.006],[7.611,2.389],[5.428,4.572],[7.575,2.425],[8.042,1.958],[11.928,13.245],[11.811,12.901],[4.43,4.505],[4.369,2.708],[6.173,2.32],[6.087,2.484],[19.514,6.059],[22.359,3.18],[8.392,10.274],[14.309,4.358],[0.511,-0.323],[0.367,-0.467],[-0.184,-0.85],[-27.384,-16.949],[-41.91,-16.423],[-35.364,-29.969]],"o":[[-3.129,-6.871],[-7.611,-2.389],[-8.658,-1.342],[-7.575,-2.425],[-13.476,-11.117],[-11.928,-13.245],[-3.909,-4.27],[-4.43,-4.505],[-5.222,-3.237],[-6.173,-2.32],[-18.586,-7.583],[-19.514,-6.059],[-11.122,-7.544],[-8.392,-10.274],[-0.591,0.242],[-0.511,0.323],[-0.61,0.057],[15.865,28.468],[53.478,4.856],[33.481,31.852],[32.662,12.339]],"v":[[3021,1983],[3003.225,1970.775],[2982,1962],[2958.038,1955.962],[2935,1949],[2897.251,1911.838],[2862,1872],[2849.345,1858.329],[2836,1847],[2818.648,1838.935],[2800,1832],[2743.329,1811.198],[2681,1797],[2653.89,1768.11],[2622,1744],[2620.332,1744.831],[2619,1746],[2618,1747],[2685,1813],[2821,1852],[2918,1951]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-9.824,19.842],[1.685,2.731],[2.113,2.303],[2.746,1.67],[3.584,0.833],[-0.465,-2.149],[-1.24,-1.787],[-1.156,-1.87],[-0.21,-2.398],[6.449,-3.904],[7.544,-2.856],[7.763,-2.51],[10.999,-4.636],[6.156,-9.627],[-2.677,-3.823],[-2.858,-3.642],[-4.957,-0.123],[-3.67,1.163],[2.842,3.658],[1.434,5.066],[-21.98,7.687]],"o":[[-1.462,-2.955],[-1.685,-2.731],[-2.113,-2.303],[-2.746,-1.67],[-1.172,2.955],[0.465,2.149],[1.24,1.787],[1.156,1.87],[-4.479,5.654],[-6.449,3.904],[-7.544,2.856],[-11.849,3.831],[-10.999,4.636],[0.435,6.065],[2.677,3.823],[4.503,-0.331],[4.957,0.123],[-2.196,-4.304],[-2.842,-3.658],[17.255,-12.412],[21.98,-7.686]],"v":[[2029,1895],[2024.33,1886.42],[2018.683,1878.817],[2011.444,1872.806],[2002,1869],[2001.154,1876.544],[2003.927,1882.336],[2007.736,1887.71],[2010,1894],[1993.388,1908.162],[1972.179,1918.127],[1949,1926],[1913.731,1937.653],[1887,1958],[1892.183,1972.317],[1901,1983],[1915.624,1983.124],[1929,1982],[1920.929,1970.571],[1914,1958],[1977.073,1932.073]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":8,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 17"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.092,-0.425],[-6.033,-1.8],[-6.895,-0.939],[-6.789,-1.044],[-5.717,-2.116],[0.306,-5.417],[-0.06,-5.073],[-2.211,-3.12],[-6.147,0.444],[0.233,5.595],[0.459,5.73],[-0.254,5.881],[7.246,1.312],[7.624,1.2],[8.127,1.241],[6.667,-0.197],[0.197,-0.137]],"o":[[4.204,3.629],[6.033,1.8],[6.895,0.939],[6.789,1.044],[1.112,4.151],[-0.306,5.417],[0.06,5.073],[2.211,3.12],[0.933,-5.476],[-0.233,-5.595],[-0.459,-5.73],[-4.39,-4.55],[-7.246,-1.312],[-7.824,-1.232],[-8.127,-1.241],[-0.305,0.028],[-0.197,0.137]],"v":[[2233,1461],[2248.597,1468.903],[2268.23,1472.77],[2288.998,1475.502],[2308,1480],[2308.762,1494.754],[2307.947,1510.892],[2310.909,1523.584],[2323,1528],[2323.815,1511.398],[2322.543,1494.414],[2322,1477],[2303.926,1468.988],[2281,1466],[2256.632,1461.928],[2234,1460],[2233.202,1460.203]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[31.633,-1.632],[-12.147,-3.354],[-9.73,-5.769],[-2.323,-10.343],[-4.025,-8.642],[-16.479,-3.521],[-15.329,-4.67],[-3.159,-5.841],[-3.171,-5.83],[-3.866,-5.238],[-8.962,1.955],[5.167,9.333],[2.356,12.144],[1.94,2.06],[1.934,2.066],[26.349,11.651],[3.561,19.105]],"o":[[8.683,6.817],[12.147,3.353],[0.683,11.984],[2.323,10.343],[12.753,7.247],[16.479,3.521],[3.194,5.806],[3.159,5.841],[2.573,6.004],[3.866,5.238],[-1.976,-12.524],[-5.167,-9.333],[-2.306,-1.694],[-1.94,-2.06],[-28.156,-9.844],[-4.732,-17.935],[-21.105,-12.229]],"v":[[2240,1464],[2272.714,1477.786],[2307,1490],[2311.494,1523.506],[2321,1552],[2366.068,1566.932],[2415,1578],[2424.518,1595.482],[2434,1613],[2442.709,1631.469],[2461,1638],[2448.785,1606.715],[2436,1576],[2429.721,1570.279],[2424,1564],[2334,1540],[2322,1484]],"c":true}],"h":1},{"t":4,"s":[{"i":[[31.197,3.804],[-13.324,-5.009],[-9.684,-8.649],[-2.234,-9.933],[-4.251,-7.916],[-16.047,-3.786],[-14.127,-5.706],[-23.568,-21.099],[-36.599,-20.068],[-9.955,-15.568],[-24.647,1.414],[9.06,14.273],[10.009,13.324],[44.261,15.405],[21.416,25.25],[24.801,13.866],[5.482,16.518]],"o":[[8.019,10.314],[13.324,5.009],[1.813,10.354],[2.234,9.933],[12.685,7.149],[16.047,3.786],[16.617,28.05],[40.61,16.058],[9.198,14.814],[9.195,14.38],[-4.209,-19.124],[-8.817,-14.516],[-34.982,-24.684],[-25.985,-20.682],[-26.886,-11.781],[-6.413,-15.587],[-22.958,-15.375]],"v":[[2238,1457],[2272.252,1477.749],[2309,1496],[2314.672,1526.828],[2324,1554],[2368.418,1569.082],[2415,1582],[2470,1661],[2595,1706],[2625,1752],[2666,1787],[2639,1744],[2612,1701],[2483,1651],[2425,1569],[2336,1542],[2323,1489]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[31.528,7.472],[0,-1.333],[-18.23,-17.77],[-8.984,-15.016],[-24.455,-8.545],[-22.641,-27.359],[-38.461,-15.539],[-29.893,-28.107],[-27.879,-8.77],[-31.107,-1.981],[26.277,10.291],[27.657,7.823],[14.624,37.043],[39.884,17.116],[14.507,37.16],[27.001,5.999],[7.742,15.925]],"o":[[0,1.333],[16.739,19.261],[5.156,18.844],[24.846,8.154],[10.201,39.798],[35.603,18.397],[20.162,37.839],[28.101,11.334],[27.19,8.553],[-15.403,-22.547],[-27.21,-10.656],[-22.376,-29.29],[-34.44,-22.56],[-28.663,-23.003],[-20.298,-12.702],[-11.839,-11.828],[-22.428,-16.572]],"v":[[2242,1455],[2242,1459],[2312,1497],[2327,1554],[2408,1572],[2471,1659],[2590,1702],[2666,1800],[2751,1824],[2834,1851],[2761,1814],[2676,1789],[2611,1699],[2488,1651],[2421,1563],[2343,1542],[2326,1488]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.851,-0.184],[11.057,-12.943],[10.379,-13.621],[-6.908,-30.759],[18.887,-11.594],[2.353,-16.215],[-6.903,-10.856],[-4.008,-17.435],[20.565,-35.101],[-14.481,9.59],[-9.601,4.197],[-13.223,16.726],[12.83,32.503],[-21.875,34.457],[3.147,32.519],[-11.891,20.305],[3.758,6.935]],"o":[[-13.395,10.605],[-11.057,12.944],[-2.812,40.479],[-18.795,8.744],[-14.089,8.649],[-2.298,15.837],[9.468,14.891],[-35.145,20.522],[24.777,3.885],[8.404,-5.566],[19.25,-8.414],[-13.601,-31.732],[26.506,-29.827],[-10.079,-25.588],[8.651,-23.507],[2.967,-5.066],[-0.057,-0.61]],"v":[[2087,1590],[2050.738,1625.738],[2019,1666],[2055,1743],[2003,1775],[1956,1812],[1977,1856],[2000,1898],[1895,1960],[1949,1941],[1976,1927],[2031,1900],[1982,1813],[2078,1740],[2040,1671],[2084,1612],[2088,1591]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-5.584,21.75],[2.473,0.527],[3.207,-0.207],[8.936,-7.897],[6.084,-10.749],[-9.352,-10.981],[-3.476,-16.856],[11.442,-4.724],[9.595,-6.572],[10.437,-22.23],[-6.545,-6.122],[-8.688,-0.688],[2.019,10.314],[-36.254,19.412],[-3.374,6.293],[8.813,16.854],[5.603,12.397]],"o":[[-1.902,-1.098],[-2.473,-0.527],[-11.173,5.661],[-8.936,7.898],[9.115,11.218],[9.352,10.981],[-6.635,9.532],[-11.442,4.724],[-20.116,12.551],[3.414,9.252],[7.979,-0.021],[-1.765,-10.569],[34.354,-21.313],[4.43,-5.236],[-5.486,-20.181],[-8.82,-9.18],[10.845,-16.488]],"v":[[2021,1772],[2014.479,1769.521],[2006,1769],[1975.684,1789.184],[1953,1817],[1982.229,1848.772],[2003,1889],[1974.22,1908.72],[1941,1924],[1880,1961],[1895,1984],[1918,1983],[1904,1960],[2018,1907],[2031,1891],[2005,1840],[1979,1812]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[10.89,11.11],[17.942,-19.891],[24.93,-12.902],[3.497,1.67],[3.436,1.731],[14.115,-9.683],[7.015,-13.377],[-5.053,5.613],[-7.389,3.278],[-5.639,0.528],[-6.105,0.062],[-5.728,-2.272],[-8.722,0.722],[-17.146,18.188],[-21.341,13.992],[-11.161,-2.272],[-2.488,14.228]],"o":[[-24.3,13.533],[-17.942,19.891],[-4.578,-0.589],[-3.497,-1.67],[-23.523,-3.111],[-14.115,9.683],[7.397,-3.27],[5.053,-5.613],[5.34,-0.827],[5.639,-0.528],[5.364,2.635],[5.728,2.272],[22.076,-13.257],[17.146,-18.188],[5.868,5.141],[11.161,2.272],[-12.244,-9.756]],"v":[[3110,636],[3049.973,689.473],[2989,742],[2977.143,738.357],[2967,733],[2911.119,745.134],[2880,782],[2897.506,767.506],[2915,753],[2931.426,750.926],[2949,750],[2964.982,758.018],[2986,761],[3042.551,711.551],[3098,661],[3127.035,675.527],[3151,661]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":8,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 18"}],"sw":4096,"sh":2304,"sc":"#ffffff","ip":0,"op":13.6,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"bob-x-(1)_0000s_0000_Vector-Smart-Object.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,90.5,0],"ix":2},"a":{"a":0,"k":[31,42,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"bob-x-(1)_0000s_0001_Vector-Smart-Object.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,295.5,0],"ix":2},"a":{"a":0,"k":[242.5,248,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"bob-x-(1)_0000s_0002_Vector-Smart-Object.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,295.5,0],"ix":2},"a":{"a":0,"k":[242.5,250.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"bob-x-(1)_0000s_0003_Vector-Smart-Object-copy-16.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[524,295.5,0],"to":[37.167,0,0],"ti":[-37.167,0,0]},{"t":48,"s":[747,295.5,0]}],"ix":2},"a":{"a":0,"k":[155.5,194,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"DFAB_ElectricComp_02","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[494,298,0],"ix":2},"a":{"a":0,"k":[2048,1152,0],"ix":1},"s":{"a":0,"k":[53.846,53.846,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":20,"nm":"Tint","np":6,"mn":"ADBE Tint","ix":2,"en":1,"ef":[{"ty":2,"nm":"Map Black To","mn":"ADBE Tint-0001","ix":1,"v":{"a":0,"k":[1,1,1,1],"ix":1}},{"ty":2,"nm":"Map White To","mn":"ADBE Tint-0002","ix":2,"v":{"a":0,"k":[0,0.752941131592,1,1],"ix":2}},{"ty":0,"nm":"Amount to Tint","mn":"ADBE Tint-0003","ix":3,"v":{"a":0,"k":100,"ix":3}},{"ty":6,"nm":"","mn":"ADBE Tint-0004","ix":4,"v":0}]},{"ty":25,"nm":"Drop Shadow 2 (don't use)","np":8,"mn":"ADBE Drop Shadow","ix":3,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[1,1,1,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":74,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":-33,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":29,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow (don't use)","np":8,"mn":"ADBE Drop Shadow","ix":4,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[1,1,1,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":255,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":135,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":240,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":5,"nm":"Glow (don't use)","np":16,"mn":"ADBE Glo2","ix":5,"en":1,"ef":[{"ty":7,"nm":"Glow Based On","mn":"ADBE Glo2-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Glow Threshold","mn":"ADBE Glo2-0002","ix":2,"v":{"a":0,"k":153,"ix":2}},{"ty":0,"nm":"Glow Radius","mn":"ADBE Glo2-0003","ix":3,"v":{"a":0,"k":33,"ix":3}},{"ty":0,"nm":"Glow Intensity","mn":"ADBE Glo2-0004","ix":4,"v":{"a":0,"k":1.51,"ix":4}},{"ty":7,"nm":"Composite Original","mn":"ADBE Glo2-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":7,"nm":"Glow Operation","mn":"ADBE Glo2-0006","ix":6,"v":{"a":0,"k":3,"ix":6}},{"ty":7,"nm":"Glow Colors","mn":"ADBE Glo2-0007","ix":7,"v":{"a":0,"k":2,"ix":7}},{"ty":7,"nm":"Color Looping","mn":"ADBE Glo2-0008","ix":8,"v":{"a":0,"k":3,"ix":8}},{"ty":0,"nm":"Color Loops","mn":"ADBE Glo2-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Color Phase","mn":"ADBE Glo2-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":0,"nm":"A & B Midpoint","mn":"ADBE Glo2-0011","ix":11,"v":{"a":0,"k":0.5,"ix":11}},{"ty":2,"nm":"Color A","mn":"ADBE Glo2-0012","ix":12,"v":{"a":0,"k":[1,1,1,0],"ix":12}},{"ty":2,"nm":"Color B","mn":"ADBE Glo2-0013","ix":13,"v":{"a":0,"k":[0,0,0,0],"ix":13,"x":"var $bm_rt;\n$bm_rt = effect('Glow (don\\'t use)')('ADBE Glo2-0012');"}},{"ty":7,"nm":"Glow Dimensions","mn":"ADBE Glo2-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]},{"ty":5,"nm":"Glow 2 (don't use)","np":16,"mn":"ADBE Glo2","ix":6,"en":1,"ef":[{"ty":7,"nm":"Glow Based On","mn":"ADBE Glo2-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Glow Threshold","mn":"ADBE Glo2-0002","ix":2,"v":{"a":0,"k":175,"ix":2}},{"ty":0,"nm":"Glow Radius","mn":"ADBE Glo2-0003","ix":3,"v":{"a":0,"k":24,"ix":3}},{"ty":0,"nm":"Glow Intensity","mn":"ADBE Glo2-0004","ix":4,"v":{"a":0,"k":1.51,"ix":4,"x":"var $bm_rt;\n$bm_rt = effect('Glow (don\\'t use)')('ADBE Glo2-0004');"}},{"ty":7,"nm":"Composite Original","mn":"ADBE Glo2-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":7,"nm":"Glow Operation","mn":"ADBE Glo2-0006","ix":6,"v":{"a":0,"k":3,"ix":6}},{"ty":7,"nm":"Glow Colors","mn":"ADBE Glo2-0007","ix":7,"v":{"a":0,"k":2,"ix":7}},{"ty":7,"nm":"Color Looping","mn":"ADBE Glo2-0008","ix":8,"v":{"a":0,"k":3,"ix":8}},{"ty":0,"nm":"Color Loops","mn":"ADBE Glo2-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Color Phase","mn":"ADBE Glo2-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":0,"nm":"A & B Midpoint","mn":"ADBE Glo2-0011","ix":11,"v":{"a":0,"k":0.5,"ix":11}},{"ty":2,"nm":"Color A","mn":"ADBE Glo2-0012","ix":12,"v":{"a":0,"k":[1,1,1,0],"ix":12}},{"ty":2,"nm":"Color B","mn":"ADBE Glo2-0013","ix":13,"v":{"a":0,"k":[0,0,0,0],"ix":13}},{"ty":7,"nm":"Glow Dimensions","mn":"ADBE Glo2-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]},{"ty":5,"nm":"Mosaic","np":5,"mn":"ADBE Mosaic","ix":7,"en":1,"ef":[{"ty":0,"nm":"Horizontal Blocks","mn":"ADBE Mosaic-0001","ix":1,"v":{"a":0,"k":100,"ix":1}},{"ty":0,"nm":"Vertical Blocks","mn":"ADBE Mosaic-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":7,"nm":"Sharp Colors","mn":"ADBE Mosaic-0003","ix":3,"v":{"a":0,"k":1,"ix":3}}]}],"w":4096,"h":2304,"ip":48,"op":61.6,"st":48,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"DFAB_ElectricComp_02","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[494,298,0],"ix":2},"a":{"a":0,"k":[2048,1152,0],"ix":1},"s":{"a":0,"k":[53.846,53.846,100],"ix":6}},"ao":0,"ef":[{"ty":21,"nm":"Fill","np":9,"mn":"ADBE Fill","ix":1,"en":1,"ef":[{"ty":10,"nm":"Fill Mask","mn":"ADBE Fill-0001","ix":1,"v":{"a":0,"k":0,"ix":1}},{"ty":7,"nm":"All Masks","mn":"ADBE Fill-0007","ix":2,"v":{"a":0,"k":0,"ix":2}},{"ty":2,"nm":"Color","mn":"ADBE Fill-0002","ix":3,"v":{"a":0,"k":[0,0,0,1],"ix":3}},{"ty":7,"nm":"Invert","mn":"ADBE Fill-0006","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Horizontal Feather","mn":"ADBE Fill-0003","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Vertical Feather","mn":"ADBE Fill-0004","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Opacity","mn":"ADBE Fill-0005","ix":7,"v":{"a":0,"k":1,"ix":7}}]},{"ty":20,"nm":"Tint","np":6,"mn":"ADBE Tint","ix":2,"en":1,"ef":[{"ty":2,"nm":"Map Black To","mn":"ADBE Tint-0001","ix":1,"v":{"a":0,"k":[1,1,1,1],"ix":1}},{"ty":2,"nm":"Map White To","mn":"ADBE Tint-0002","ix":2,"v":{"a":0,"k":[0,0.752941131592,1,1],"ix":2}},{"ty":0,"nm":"Amount to Tint","mn":"ADBE Tint-0003","ix":3,"v":{"a":0,"k":100,"ix":3}},{"ty":6,"nm":"","mn":"ADBE Tint-0004","ix":4,"v":0}]},{"ty":25,"nm":"Drop Shadow 2 (don't use)","np":8,"mn":"ADBE Drop Shadow","ix":3,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[1,1,1,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":74,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":-33,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":29,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":25,"nm":"Drop Shadow (don't use)","np":8,"mn":"ADBE Drop Shadow","ix":4,"en":1,"ef":[{"ty":2,"nm":"Shadow Color","mn":"ADBE Drop Shadow-0001","ix":1,"v":{"a":0,"k":[1,1,1,1],"ix":1}},{"ty":0,"nm":"Opacity","mn":"ADBE Drop Shadow-0002","ix":2,"v":{"a":0,"k":255,"ix":2}},{"ty":0,"nm":"Direction","mn":"ADBE Drop Shadow-0003","ix":3,"v":{"a":0,"k":135,"ix":3}},{"ty":0,"nm":"Distance","mn":"ADBE Drop Shadow-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":0,"nm":"Softness","mn":"ADBE Drop Shadow-0005","ix":5,"v":{"a":0,"k":240,"ix":5}},{"ty":7,"nm":"Shadow Only","mn":"ADBE Drop Shadow-0006","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"ty":5,"nm":"Glow (don't use)","np":16,"mn":"ADBE Glo2","ix":5,"en":1,"ef":[{"ty":7,"nm":"Glow Based On","mn":"ADBE Glo2-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Glow Threshold","mn":"ADBE Glo2-0002","ix":2,"v":{"a":0,"k":153,"ix":2}},{"ty":0,"nm":"Glow Radius","mn":"ADBE Glo2-0003","ix":3,"v":{"a":0,"k":33,"ix":3}},{"ty":0,"nm":"Glow Intensity","mn":"ADBE Glo2-0004","ix":4,"v":{"a":0,"k":1.51,"ix":4}},{"ty":7,"nm":"Composite Original","mn":"ADBE Glo2-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":7,"nm":"Glow Operation","mn":"ADBE Glo2-0006","ix":6,"v":{"a":0,"k":3,"ix":6}},{"ty":7,"nm":"Glow Colors","mn":"ADBE Glo2-0007","ix":7,"v":{"a":0,"k":2,"ix":7}},{"ty":7,"nm":"Color Looping","mn":"ADBE Glo2-0008","ix":8,"v":{"a":0,"k":3,"ix":8}},{"ty":0,"nm":"Color Loops","mn":"ADBE Glo2-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Color Phase","mn":"ADBE Glo2-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":0,"nm":"A & B Midpoint","mn":"ADBE Glo2-0011","ix":11,"v":{"a":0,"k":0.5,"ix":11}},{"ty":2,"nm":"Color A","mn":"ADBE Glo2-0012","ix":12,"v":{"a":0,"k":[1,1,1,0],"ix":12}},{"ty":2,"nm":"Color B","mn":"ADBE Glo2-0013","ix":13,"v":{"a":0,"k":[0,0,0,0],"ix":13,"x":"var $bm_rt;\n$bm_rt = effect('Glow (don\\'t use)')('ADBE Glo2-0012');"}},{"ty":7,"nm":"Glow Dimensions","mn":"ADBE Glo2-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]},{"ty":5,"nm":"Glow 2 (don't use)","np":16,"mn":"ADBE Glo2","ix":6,"en":1,"ef":[{"ty":7,"nm":"Glow Based On","mn":"ADBE Glo2-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Glow Threshold","mn":"ADBE Glo2-0002","ix":2,"v":{"a":0,"k":175,"ix":2}},{"ty":0,"nm":"Glow Radius","mn":"ADBE Glo2-0003","ix":3,"v":{"a":0,"k":24,"ix":3}},{"ty":0,"nm":"Glow Intensity","mn":"ADBE Glo2-0004","ix":4,"v":{"a":0,"k":1.51,"ix":4,"x":"var $bm_rt;\n$bm_rt = effect('Glow (don\\'t use)')('ADBE Glo2-0004');"}},{"ty":7,"nm":"Composite Original","mn":"ADBE Glo2-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":7,"nm":"Glow Operation","mn":"ADBE Glo2-0006","ix":6,"v":{"a":0,"k":3,"ix":6}},{"ty":7,"nm":"Glow Colors","mn":"ADBE Glo2-0007","ix":7,"v":{"a":0,"k":2,"ix":7}},{"ty":7,"nm":"Color Looping","mn":"ADBE Glo2-0008","ix":8,"v":{"a":0,"k":3,"ix":8}},{"ty":0,"nm":"Color Loops","mn":"ADBE Glo2-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Color Phase","mn":"ADBE Glo2-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":0,"nm":"A & B Midpoint","mn":"ADBE Glo2-0011","ix":11,"v":{"a":0,"k":0.5,"ix":11}},{"ty":2,"nm":"Color A","mn":"ADBE Glo2-0012","ix":12,"v":{"a":0,"k":[1,1,1,0],"ix":12}},{"ty":2,"nm":"Color B","mn":"ADBE Glo2-0013","ix":13,"v":{"a":0,"k":[0,0,0,0],"ix":13}},{"ty":7,"nm":"Glow Dimensions","mn":"ADBE Glo2-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]},{"ty":5,"nm":"Mosaic","np":5,"mn":"ADBE Mosaic","ix":7,"en":1,"ef":[{"ty":0,"nm":"Horizontal Blocks","mn":"ADBE Mosaic-0001","ix":1,"v":{"a":0,"k":100,"ix":1}},{"ty":0,"nm":"Vertical Blocks","mn":"ADBE Mosaic-0002","ix":2,"v":{"a":0,"k":100,"ix":2}},{"ty":7,"nm":"Sharp Colors","mn":"ADBE Mosaic-0003","ix":3,"v":{"a":0,"k":1,"ix":3}}]}],"w":4096,"h":2304,"ip":0,"op":13.6,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"bob-x-(1)_0000s_0004_Vector-Smart-Object.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[495,295.5,0],"to":[-40,0,0],"ti":[40,0,0]},{"t":48,"s":[255,295.5,0]}],"ix":2},"a":{"a":0,"k":[155.5,194,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/assets/lottie/ranking/gold.json b/assets/lottie/ranking/gold.json new file mode 100644 index 00000000..e8d7fe16 --- /dev/null +++ b/assets/lottie/ranking/gold.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.0.2","a":"","k":"","d":"","tc":""},"fr":23.9759979248047,"ip":0,"op":144.999987449811,"w":1000,"h":591,"nm":"Comp 4","ddd":0,"assets":[{"id":"image_0","w":66,"h":64,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":71,"h":95,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":446,"h":133,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":96,"h":138,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_4","w":484,"h":494,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_5","w":594,"h":589,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_6","w":544,"h":139,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_7","w":192,"h":303,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Untitled-2_0000s_0003_Vector-Smart-Object.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[687,295.5,0],"ix":2},"a":{"a":0,"k":[33,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Untitled-2_0000s_0003_Vector-Smart-Object.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[313.25,295.5,0],"ix":2},"a":{"a":0,"k":[33,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Untitled-2_0000s_0004_Vector-Smart-Object-copy-11.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[344.722,412.66,0],"ix":2},"a":{"a":0,"k":[35.5,47.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Untitled-2_0000s_0004_Vector-Smart-Object-copy-11.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[653.199,412.66,0],"ix":2},"a":{"a":0,"k":[35.5,47.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Untitled-2_0000s_0004_Vector-Smart-Object-copy-11.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[653.199,185.66,0],"ix":2},"a":{"a":0,"k":[35.5,47.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Untitled-2_0000s_0004_Vector-Smart-Object-copy-11.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[344.722,185.66,0],"ix":2},"a":{"a":0,"k":[35.5,47.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Untitled-2_0000s_0000_Vector-Smart-Object.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,77.5,0],"ix":2},"a":{"a":0,"k":[223,66.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"Untitled-2_0000s_0001_—Pngtree—vintage-elegant-lion-king-crown_8365916.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,519.385,0],"ix":2},"a":{"a":0,"k":[48,69,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":47,"s":[0,0,100]},{"t":72.9999936816292,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Untitled-2_0000s_0008_Vector-Smart-Object.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,295.5,0],"ix":2},"a":{"a":0,"k":[242,247,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"Untitled-2_0000s_0009_Vector-Smart-Object.png","cl":"png","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,295.5,0],"ix":2},"a":{"a":0,"k":[297,294.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"Untitled-2_0000s_0010_Vector-Smart-Object.png","cl":"png","refId":"image_6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":47.9999958454548,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,503.5,0],"ix":2},"a":{"a":0,"k":[272,69.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Untitled-2_0000s_0011_Vector-Smart-Object-copy-12.png","cl":"png","refId":"image_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[570,307.5,0],"to":[32,0,0],"ti":[-32,0,0]},{"t":46.9999959320078,"s":[762,307.5,0]}],"ix":2},"a":{"a":0,"k":[96,151.5,0],"ix":1},"s":{"a":0,"k":[-100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"Untitled-2_0000s_0011_Vector-Smart-Object-copy-12.png","cl":"png","refId":"image_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[428,307.5,0],"to":[-30.333,0,0],"ti":[30.333,0,0]},{"t":46.9999959320078,"s":[246,307.5,0]}],"ix":2},"a":{"a":0,"k":[96,151.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":645.999944086746,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/assets/lottie/ranking/silver.json b/assets/lottie/ranking/silver.json new file mode 100644 index 00000000..d683852b --- /dev/null +++ b/assets/lottie/ranking/silver.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.0.2","a":"","k":"","d":"","tc":""},"fr":24,"ip":0,"op":193,"w":1000,"h":591,"nm":"Comp 7","ddd":0,"assets":[{"id":"image_0","w":114,"h":142,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":180,"h":131,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":440,"h":388,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":241,"h":283,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_4","w":241,"h":283,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":1,"nm":"Auto-traced Electric 02.mov","cl":"mov","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[498,511,0],"ix":2},"a":{"a":0,"k":[2048,1152,0],"ix":1},"s":{"a":0,"k":[10.296,10.296,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[-1.383,-0.395],[0.453,0.88],[0.514,0.853],[0.573,0.82],[0.631,0.781],[0.686,0.735],[0.74,0.683],[0.792,0.625],[0.842,0.56],[0.89,0.489],[0.936,0.411],[0.981,0.327],[1.024,0.237],[1.065,0.14],[1.104,0.037],[1.142,-0.072],[-0.759,-1.502],[-1.071,-1.263],[-1.317,-1.054],[-1.495,-0.872],[-1.607,-0.72],[-1.651,-0.596],[-1.629,-0.5],[-1.539,-0.433]],"o":[[-0.391,-0.9],[-0.453,-0.88],[-0.514,-0.853],[-0.573,-0.82],[-0.631,-0.781],[-0.686,-0.735],[-0.74,-0.683],[-0.792,-0.625],[-0.842,-0.56],[-0.89,-0.489],[-0.936,-0.411],[-0.981,-0.327],[-1.024,-0.237],[-1.065,-0.14],[-1.104,-0.037],[0.38,1.768],[0.759,1.502],[1.071,1.263],[1.317,1.054],[1.495,0.872],[1.607,0.72],[1.651,0.596],[1.629,0.5],[1.539,0.433]],"v":[[1972,828],[1970.733,825.328],[1969.282,822.726],[1967.65,820.214],[1965.843,817.811],[1963.867,815.535],[1961.728,813.407],[1959.43,811.444],[1956.98,809.666],[1954.381,808.092],[1951.641,806.741],[1948.765,805.633],[1945.757,804.785],[1942.623,804.218],[1939.369,803.95],[1936,804],[1937.726,808.898],[1940.488,813.038],[1944.087,816.506],[1948.322,819.388],[1952.991,821.769],[1957.894,823.735],[1962.83,825.372],[1967.599,826.765]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[-0.943,4.806],[0.289,0.253],[0.318,0.224],[0.354,0.188],[0.397,0.144],[0.448,0.094],[0.506,0.036],[0.571,-0.029],[0.643,-0.101],[3.769,-2.565],[3.657,-2.676],[3.06,-3.274],[1.977,-4.356],[-5.238,-4.762],[-5.376,-4.624],[-5.7,-4.3],[-6.21,-3.79],[4.081,4.586],[4.916,3.751],[4.752,3.915],[3.59,5.077],[-3.472,2.278],[-3.492,2.258],[-2.649,3.101]],"o":[[-0.267,-0.274],[-0.289,-0.253],[-0.318,-0.224],[-0.354,-0.188],[-0.397,-0.144],[-0.448,-0.094],[-0.506,-0.036],[-0.571,0.029],[-3.396,2.938],[-3.769,2.565],[-3.657,2.676],[-3.06,3.274],[5.286,4.714],[5.238,4.762],[5.376,4.624],[5.7,4.3],[-2.247,-6.42],[-4.081,-4.586],[-4.916,-3.751],[-4.752,-3.915],[2.589,-3.161],[3.472,-2.278],[3.492,-2.258],[2.649,-3.101]],"v":[[1947,739],[1946.167,738.208],[1945.258,737.492],[1944.252,736.873],[1943.126,736.373],[1941.86,736.015],[1940.432,735.818],[1938.819,735.806],[1937,736],[1926.132,744.132],[1914.872,751.873],[1904.676,760.676],[1897,772],[1912.74,786.26],[1928.614,800.386],[1945.181,813.819],[1963,826],[1953.259,809.741],[1939.514,797.486],[1924.762,786.238],[1912,773],[1921.307,765.057],[1931.969,758.469],[1941.396,750.646]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-3.262,9.405],[1.246,0.723],[1.49,0.406],[1.624,-0.02],[1.647,-0.554],[3.467,-3.95],[3.322,-4.095],[3.069,-4.348],[2.709,-4.708],[-12.296,-9.37],[-8.366,-13.301],[7.134,-6.532],[3.362,-10.304],[-4.636,-4.53],[-3.957,-5.209],[-4.915,-4.668],[-6.392,-0.61],[7.47,7.863],[5.322,10.012],[-7.683,7.651],[-3.885,11.449],[11.694,9.139],[8.097,12.736],[-5.649,7.017]],"o":[[-0.891,-0.931],[-1.246,-0.723],[-1.49,-0.406],[-1.624,0.02],[-3.505,3.912],[-3.467,3.95],[-3.322,4.095],[-3.069,4.348],[7.448,14.218],[12.296,9.37],[-5.101,8.566],[-7.134,6.532],[2.497,6.669],[4.636,4.53],[4.948,3.72],[4.915,4.668],[-3.798,-11.535],[-7.47,-7.863],[8.385,-6.948],[7.683,-7.651],[-8.127,-12.707],[-11.694,-9.139],[5.14,-7.526],[5.649,-7.017]],"v":[[1931,611],[1927.766,608.492],[1923.633,606.772],[1918.934,606.166],[1914,607],[1903.516,618.766],[1893.307,630.806],[1883.694,643.444],[1875,657],[1906.812,690.188],[1940,722],[1920.196,743.196],[1903,767],[1914.405,783.095],[1928,797],[1942.417,810.832],[1959,820],[1940.643,792.357],[1920,767],[1944.875,745.875],[1963,718],[1931.477,687.022],[1900,656],[1916.909,634.909]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-10.003,27.331],[3.489,0.844],[4.604,-0.27],[5.246,-4.802],[6.952,-6.024],[5.301,-5.701],[0.385,-5.377],[-5.998,-5.264],[-4.644,-4.1],[-4.064,-4.102],[-4.4,-3.757],[-4.112,-4.162],[-2.037,-5.495],[6.297,-9.537],[4.223,-11.611],[-14.915,-26.085],[7.375,-18.625],[-8.133,-10.819],[-13.461,-5.501],[9.434,21.899],[-6.943,22.057],[12.724,26.276],[-2.417,29.249],[17.636,33.364]],"o":[[-1.44,-2.894],[-3.489,-0.844],[-5.063,4.77],[-5.246,4.801],[-4.409,3.821],[-5.301,5.701],[-0.634,8.842],[5.998,5.264],[4.343,3.834],[4.064,4.102],[4.516,3.856],[4.112,4.162],[-2.591,13.243],[-6.297,9.537],[15.91,25.09],[-8.351,17.649],[4.902,13.158],[8.022,10.671],[-3.239,-28.095],[11.71,-17.29],[-12.555,-26.445],[7.634,-24.033],[-19.006,-31.994],[12.852,-24.481]],"v":[[1914,454],[1906.373,448.627],[1894,448],[1878.916,462.06],[1861,478],[1844.982,492.833],[1835,510],[1845.042,530.556],[1863,544],[1875.457,556.058],[1888,568],[1901.359,579.77],[1911,594],[1896.224,626.724],[1879,657],[1940,719],[1905,762],[1928,796],[1956,826],[1923,765],[1962,717],[1906,656],[1936,591],[1861,513]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[-14.941,27.726],[18.528,12.721],[17.41,13.93],[7.536,-2.337],[0.81,-0.19],[-6.623,-7.765],[-8.76,-7.24],[-12.632,-19.035],[4.783,-6.884],[3.294,-6.372],[4.307,-14.693],[-14.061,-11.654],[-7.695,-18.182],[4.377,-15.29],[2.494,-8.173],[-12.888,-25.445],[0.496,-17.9],[-6.811,-11.131],[-15.607,-3.393],[6.73,23.936],[-7.15,20.516],[14.557,20.777],[-0.401,35.933],[18.767,28.566]],"o":[[-11.876,-20.216],[-19.171,-13.163],[-6.883,-1.502],[-1.003,-0.003],[-1.081,12.155],[10.328,5.672],[17.028,14.639],[-4.871,6.795],[-3.896,5.771],[-7.846,11.154],[6.382,19.093],[14.125,11.707],[1.092,20.759],[-6.652,4.015],[3.649,34.684],[-5.475,16.028],[-0.382,13.773],[9.572,9.428],[-1.385,-29.281],[7.98,-19.687],[-15.332,-20.001],[16.533,-19.8],[-18.104,-29.229],[23.787,-18.88]],"v":[[1920,445],[1866,404],[1813,362],[1790,359],[1788,360],[1807,386],[1835,406],[1889,447],[1872,465],[1862,484],[1832,511],[1870,551],[1906,593],[1896,642],[1881,659],[1934,721],[1903,760],[1924,796],[1953,824],[1922,763],[1959,717],[1903,667],[1931,586],[1861,514]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[-11.054,15.612],[5.703,0.131],[5.765,0.068],[8.838,-4.829],[4.958,-8.709],[-9.416,-7.25],[-9.922,-6.745],[-9.858,-6.975],[-6.334,-10.499],[10.354,-11.146],[6.46,-15.04],[-6.869,-5.204],[-7.687,-5.802],[-7.199,-6.461],[-0.927,-8.419],[5.911,-13.642],[-8.114,-13.554],[-2.901,7.273],[-2.545,7.084],[-3.071,7.436],[-0.028,8.775],[21.371,25.962],[-15.625,29.041],[29.351,34.649]],"o":[[-4.423,-1.409],[-5.703,-0.13],[-6.691,6.976],[-8.838,4.829],[8.412,8.254],[9.416,7.25],[9.233,7.6],[9.858,6.975],[-8.125,13.375],[-10.354,11.146],[4.839,7.383],[6.869,5.204],[6.276,4.737],[7.199,6.461],[1.528,13.88],[-5.911,13.641],[6.852,-3.825],[2.901,-7.273],[2.688,-7.479],[3.071,-7.436],[-14.406,-32.927],[19.425,-25.242],[-26.055,-37.945],[13.011,-13.656]],"v":[[1863,320],[1847.506,317.994],[1830,318],[1805.201,334.2],[1783,353],[1809.868,376.132],[1839,397],[1868.674,417.826],[1894,443],[1864.751,478.252],[1838,516],[1855.864,534.186],[1878,550],[1900.012,566.738],[1914,589],[1902.061,630.244],[1900,671],[1913.73,653.444],[1921,631],[1930.495,608.972],[1936,585],[1863,516],[1923,442],[1818,355]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[0.667,0],[7.755,-9.994],[11.035,-6.706],[7.554,-2.861],[7.436,-2.7],[22.17,-8.817],[19.896,-12.228],[8.693,-13.641],[2.925,-19.408],[14.499,-6.167],[7.385,-13.282],[-8.924,4.744],[-8.395,4.253],[-7.972,5.211],[-5.576,7.832],[-0.27,2.73],[-0.192,2.808],[-6.792,11.74],[-10.832,6.417],[-6.919,2.748],[-6.771,2.717],[-38.284,17.087],[-8.806,8.86],[3.821,12.7]],"o":[[-12.944,5.318],[-7.755,9.994],[-6.349,3.858],[-7.554,2.861],[-23.423,8.505],[-22.17,8.817],[-9.303,13.029],[-8.693,13.641],[-10.618,10.049],[-14.499,6.167],[11.91,0.229],[8.924,-4.744],[8.535,-4.323],[7.972,-5.211],[-0.271,-3.27],[0.27,-2.73],[6.998,-10.621],[6.792,-11.74],[5.554,-3.29],[6.919,-2.748],[41.153,-16.519],[10.243,-7.423],[3.882,-11.608],[-0.667,0]],"v":[[3007,302],[2978.068,326.959],[2952,354],[2930.816,363.869],[2908,372],[2839.354,397.207],[2776,428],[2747.716,466.716],[2729,515],[2688.576,536.575],[2653,563],[2683.636,554.861],[2709,540],[2734.219,526.132],[2755,507],[2755.153,498.153],[2756,490],[2775.624,454.846],[2801,426],[2820.088,417.071],[2841,409],[2964,360],[2991,334],[3009,302]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[2.938,-0.4],[0.167,0],[0.167,0],[12.017,-3.962],[13.221,-3.793],[12.61,-2.252],[10.029,-5.399],[6.477,-8.185],[5.575,-7.674],[6.439,-7.808],[8.051,-6.246],[26.355,-9.479],[22.794,-13.04],[3.977,-5.523],[0.745,-8.755],[-3.778,5.888],[-4.726,4.941],[-27.689,9.311],[-25.745,11.255],[-12.608,16.058],[-16.552,12.115],[-22.208,6.458],[-19.121,9.546],[-0.718,1.331]],"o":[[-0.167,0],[-0.167,0],[-11.709,2.361],[-12.017,3.962],[-12.53,3.594],[-12.61,2.252],[-8.519,4.586],[-6.476,8.185],[-6.191,8.522],[-6.439,7.808],[-25.788,10.046],[-26.354,9.478],[-4.348,5.151],[-3.977,5.524],[8.161,-1.505],[3.778,-5.888],[24.497,-12.502],[27.689,-9.311],[16.014,-12.653],[12.608,-16.058],[22.046,-6.621],[22.208,-6.458],[0.065,-1.076],[0.718,-1.331]],"v":[[3171,225],[3170.5,225],[3170,225],[3134.634,234.926],[3097,247],[3058.625,254.647],[3024,265],[3001.793,285.183],[2984,310],[2965.395,334.707],[2944,356],[2864.755,384.255],[2790,417],[2776.798,432.298],[2769,453],[2785.577,440.577],[2797,423],[2876.564,391.564],[2958,362],[2999.097,317.096],[3041,273],[3108.194,254.193],[3171,231],[3173.253,226.893]],"c":true}],"h":1},{"t":87,"s":[{"i":[[0.583,0],[3.118,-2.548],[2.583,-3.084],[2.798,-2.869],[3.765,-1.902],[18.159,-4.008],[16.978,-5.189],[12.831,-9.336],[5.716,-16.451],[-4.531,2.302],[-2.976,3.857],[-2.707,4.126],[-3.723,3.11],[-13.498,3.502],[-14.103,2.833],[-12.804,4.164],[-9.601,7.498],[-2.132,2.435],[-1.862,2.682],[-1.799,2.781],[-1.943,2.732],[0.583,0],[0.583,0],[0.583,0]],"o":[[-4.405,1.262],[-3.118,2.548],[-2.583,3.084],[-2.798,2.869],[-16.371,5.795],[-18.159,4.008],[-16.978,5.189],[-12.831,9.336],[7.372,0.538],[4.531,-2.302],[2.976,-3.857],[2.707,-4.126],[10.988,-6.172],[13.498,-3.502],[14.103,-2.833],[12.804,-4.164],[2.61,-2.039],[2.132,-2.435],[1.862,-2.682],[1.799,-2.781],[-0.583,0],[-0.583,0],[-0.583,0],[-0.583,0]],"v":[[3197,196],[3185.903,201.903],[3177.54,210.54],[3169.656,219.656],[3160,227],[3107.463,240.963],[3054.016,254.016],[3008.561,275.061],[2980,313],[2997.533,310.033],[3008.473,300.473],[3016.676,288.176],[3026,277],[3063.204,262.989],[3105.081,253.988],[3145.917,243.993],[3180,227],[3187.062,220.253],[3193.001,212.54],[3198.439,204.308],[3204,196],[3202.25,196],[3200.5,196],[3198.75,196]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[-1.454,2.712],[0.974,-0.069],[1.054,-0.169],[1.112,-0.241],[1.146,-0.284],[1.156,-0.299],[1.143,-0.286],[1.107,-0.244],[1.048,-0.174],[0.973,-1.902],[1.148,-1.727],[1.301,-1.574],[1.433,-1.442],[1.543,-1.332],[1.631,-1.244],[1.697,-1.178],[1.742,-1.133],[-3.475,0.691],[-3.051,1.116],[-2.672,1.495],[-2.338,1.829],[-2.049,2.118],[-1.806,2.361],[-1.607,2.559]],"o":[[-0.87,-0.06],[-0.974,0.069],[-1.054,0.169],[-1.112,0.241],[-1.146,0.284],[-1.156,0.299],[-1.143,0.286],[-1.107,0.244],[-0.776,2.099],[-0.973,1.902],[-1.148,1.727],[-1.301,1.574],[-1.433,1.442],[-1.543,1.332],[-1.631,1.244],[-1.697,1.178],[3.945,-0.222],[3.475,-0.691],[3.051,-1.116],[2.672,-1.495],[2.338,-1.829],[2.049,-2.118],[1.806,-2.361],[1.607,-2.559]],"v":[[3207,195],[3204.228,195.02],[3201.18,195.383],[3197.925,196.004],[3194.533,196.798],[3191.075,197.679],[3187.62,198.564],[3184.238,199.366],[3181,200],[3178.37,205.995],[3175.183,211.433],[3171.503,216.378],[3167.396,220.896],[3162.927,225.052],[3158.162,228.912],[3153.164,232.539],[3148,236],[3159.119,234.619],[3168.896,231.896],[3177.469,227.969],[3184.972,222.972],[3191.54,217.04],[3197.311,210.311],[3202.419,202.919]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[1.589,3.994],[0.687,0.02],[0.623,-0.044],[0.567,-0.1],[0.519,-0.147],[0.48,-0.186],[0.45,-0.217],[0.427,-0.24],[0.413,-0.254],[-1.692,-3.892],[-2.155,-3.429],[-2.261,-3.322],[-2.01,-3.573],[0.629,-0.204],[0.666,-0.167],[0.454,-0.379],[-0.007,-0.841],[-2.198,-0.139],[-2.056,0.815],[-1.33,1.547],[-0.021,2.057],[2.096,3.488],[2.147,3.437],[1.978,3.605]],"o":[[-0.759,-0.092],[-0.687,-0.02],[-0.623,0.044],[-0.567,0.1],[-0.519,0.147],[-0.48,0.186],[-0.45,0.217],[-0.427,0.24],[0.871,4.712],[1.692,3.892],[2.155,3.429],[2.261,3.322],[-0.342,0.491],[-0.629,0.204],[-0.666,0.167],[-0.454,0.379],[1.756,1.315],[2.198,0.139],[2.056,-0.815],[1.33,-1.547],[-1.824,-3.759],[-2.096,-3.488],[-2.147,-3.437],[-1.978,-3.605]],"v":[[2319,436],[2316.833,435.833],[2314.871,435.871],[2313.089,436.089],[2311.462,436.462],[2309.964,436.964],[2308.572,437.571],[2307.258,438.258],[2306,439],[2309.933,451.817],[2315.792,462.708],[2322.505,472.745],[2329,483],[2327.48,483.98],[2325.475,484.475],[2323.732,485.232],[2323,487],[2329.077,489.127],[2335.602,488.058],[2340.827,484.461],[2343,479],[2337.065,468.185],[2330.647,457.853],[2324.405,447.345]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[1.648,0.019],[-0.736,-0.531],[-0.725,-0.542],[-0.722,-0.545],[-0.726,-0.541],[-0.737,-0.529],[-0.756,-0.511],[-0.782,-0.485],[-0.816,-0.451],[-0.856,-0.41],[-0.904,-0.362],[-0.96,-0.307],[-1.023,-0.244],[-1.093,-0.174],[-1.17,-0.097],[-1.255,-0.012],[0.996,1.153],[1.204,1.019],[1.376,0.883],[1.512,0.744],[1.612,0.603],[1.675,0.46],[1.703,0.315],[1.694,0.168]],"o":[[0.754,0.513],[0.736,0.531],[0.725,0.542],[0.722,0.545],[0.726,0.541],[0.737,0.529],[0.756,0.511],[0.782,0.485],[0.816,0.451],[0.856,0.41],[0.904,0.362],[0.96,0.307],[1.023,0.244],[1.093,0.174],[1.17,0.097],[-0.752,-1.286],[-0.996,-1.153],[-1.204,-1.019],[-1.376,-0.883],[-1.512,-0.744],[-1.612,-0.603],[-1.675,-0.46],[-1.703,-0.315],[-1.694,-0.168]],"v":[[600,257],[602.232,258.568],[604.421,260.179],[606.59,261.81],[608.76,263.44],[610.952,265.048],[613.191,266.609],[615.496,268.104],[617.891,269.509],[620.396,270.804],[623.036,271.964],[625.83,272.97],[628.802,273.798],[631.972,274.428],[635.365,274.835],[639,275],[636.369,271.341],[633.059,268.082],[629.179,265.228],[624.837,262.788],[620.141,260.766],[615.201,259.17],[610.125,258.006],[605.022,257.281]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[0.006,1.34],[0.708,0.27],[0.757,0.108],[0.773,-0.037],[0.755,-0.167],[0.705,-0.281],[0.621,-0.379],[0.504,-0.462],[0.353,-0.528],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[-0.89,-0.527],[-1.033,-0.384],[-1.252,-0.165],[-1.546,0.13],[-0.324,1.01],[-0.323,1.011],[-0.213,1.121]],"o":[[-0.625,-0.447],[-0.708,-0.27],[-0.757,-0.108],[-0.773,0.037],[-0.755,0.167],[-0.705,0.281],[-0.621,0.379],[-0.504,0.462],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0.822,0.595],[0.89,0.527],[1.033,0.384],[1.252,0.165],[0.216,-1.117],[0.324,-1.01],[0.322,-1.011],[0.213,-1.121]],"v":[[2374,418],[2371.992,416.928],[2369.787,416.365],[2367.484,416.262],[2365.184,416.573],[2362.985,417.25],[2360.988,418.245],[2359.293,419.511],[2358,421],[2358,421.75],[2358,422.5],[2358,423.25],[2358,424],[2358,424.75],[2358,425.5],[2358,426.25],[2358,427],[2360.548,428.702],[2363.413,430.087],[2366.822,430.928],[2371,431],[2371.837,427.837],[2372.833,424.833],[2373.663,421.663]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[2.273,1.146],[0.352,-0.065],[0.282,-0.135],[0.238,-0.178],[0.221,-0.196],[0.23,-0.186],[0.266,-0.15],[0.328,-0.088],[0.417,0],[-0.475,-2.658],[-0.746,-2.388],[-1.053,-2.08],[-1.398,-1.736],[-1.779,-1.354],[-0.254,3.558],[0.573,3.492],[1.415,2.688]],"o":[[-0.448,-0.032],[-0.352,0.065],[-0.282,0.135],[-0.238,0.178],[-0.221,0.196],[-0.23,0.186],[-0.266,0.15],[-0.328,0.088],[0.241,2.892],[0.475,2.658],[0.746,2.388],[1.053,2.08],[1.398,1.736],[1.066,-2.886],[0.254,-3.558],[-0.573,-3.492],[-1.415,-2.688]],"v":[[2357,881],[2355.806,881.056],[2354.863,881.362],[2354.089,881.839],[2353.406,882.406],[2352.735,882.985],[2351.997,883.497],[2351.111,883.862],[2350,884],[2351.065,892.335],[2352.887,899.913],[2355.576,906.624],[2359.244,912.356],[2364,917],[2365.983,907.15],[2365.508,896.39],[2362.529,886.936]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[-1.777,4.973],[4.648,-0.543],[4.286,-1.222],[4.086,-1.552],[4.045,-1.532],[4.166,-1.162],[-0.288,-6.295],[-0.649,-5.934],[-0.786,-5.797],[-0.7,-5.883],[-0.896,4.995],[0.653,5.94],[0.847,5.975],[-0.313,5.1],[-5.458,1.292],[-5.538,1.212],[-4.311,2.439]],"o":[[-5.17,-0.486],[-4.648,0.543],[-4.286,1.222],[-4.086,1.552],[-4.045,1.532],[-0.296,6.88],[0.288,6.295],[0.649,5.934],[0.786,5.797],[3.798,-3.139],[0.896,-4.995],[-0.653,-5.94],[-0.847,-5.975],[4.072,-2.678],[5.458,-1.292],[5.538,-1.212],[4.311,-2.439]],"v":[[2415,822],[2400.312,822.173],[2386.951,824.909],[2374.433,829.158],[2362.277,833.872],[2350,838],[2350.044,857.707],[2351.506,875.995],[2353.715,893.536],[2356,911],[2362.702,898.572],[2362.728,881.942],[2360.14,863.841],[2359,847],[2373.622,841.372],[2390.443,837.943],[2405.542,832.792]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-5.31,15.048],[1.896,0.437],[2.687,-0.354],[13.749,-7.085],[12.591,-8.241],[0.905,-11.928],[1.217,-11.616],[12.806,-4.694],[9.811,-7.689],[0.192,-11.838],[-2.425,-9.721],[-1.093,11.074],[-1.517,10.649],[-14.208,5.959],[-8.235,11.931],[-2.093,21.574],[-13.601,6.564]],"o":[[-1.729,-0.604],[-1.896,-0.437],[-14.413,6.42],[-13.749,7.085],[-2.162,10.671],[-0.905,11.928],[-9.966,7.534],[-12.806,4.694],[-1.657,9.929],[-0.192,11.838],[6.112,-6.054],[1.093,-11.074],[14.932,-5.234],[14.208,-5.959],[-0.328,-23.995],[12.028,-6.484],[13.005,-6.277]],"v":[[2529,693],[2523.719,691.281],[2517,691],[2474.634,711.134],[2435,734],[2430.792,768.291],[2428,804],[2392.383,820.883],[2357,838],[2353.939,871.656],[2357,905],[2366.446,877.946],[2369,844],[2414.023,828.523],[2449,803],[2455,738],[2493,717]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-5.224,23.065],[1.808,-0.183],[0.881,-0.416],[23.588,-9.875],[17.297,-13.429],[5.526,-14.141],[5.559,-14.109],[27.775,-25.558],[3.247,-20.42],[17.367,-17.967],[0.154,-27.846],[-6.575,22.425],[-16.359,22.641],[-3.404,20.596],[-28.101,25.899],[-19.263,23.404],[-21.518,9.887]],"o":[[-1.887,-0.149],[-1.808,0.183],[-21.35,10.072],[-23.588,9.875],[-6.338,13.328],[-5.526,14.141],[-29.73,23.603],[-3.243,20.424],[-15.132,20.202],[-6.146,21.854],[17.967,-11.033],[23.433,-15.567],[3.322,-20.678],[30.779,-23.221],[13.434,-29.233],[18.39,-9.75],[20.437,-9.391]],"v":[[2715,527],[2709.245,527.076],[2705,528],[2635.461,556.983],[2572,591],[2554.415,632.415],[2538,675],[2439,736],[2431,799],[2362,836],[2350,908],[2373,844],[2449,803],[2458,740],[2557,677],[2597,589],[2660,561]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[-5.483,18.85],[2.595,-1.202],[20.54,-29.212],[48.366,-14.967],[19.081,-25.585],[17.718,-14.949],[12.156,-16.51],[0.687,-18.313],[14.602,-18.731],[-0.273,-27.94],[-5.502,22.499],[-14.837,23.163],[-5.305,15.932],[-29.925,34.741],[-19.109,16.891],[-38.776,33.89],[-8.276,16.057]],"o":[[-5.167,-1.913],[-34.936,16.187],[-43.469,19.864],[-23.78,20.886],[-16.572,16.095],[-18.351,10.316],[-3.298,15.702],[-13.056,20.277],[-8.485,19.182],[17.89,-6.778],[21.172,-16.829],[-1.035,-19.506],[45.013,-19.653],[11.842,-24.159],[49.92,-22.746],[7.594,-16.739],[10.173,-14.16]],"v":[[2795,423],[2781,423],[2714,522],[2582,580],[2538,670],[2483,713],[2429,745],[2425,798],[2361,834],[2349,905],[2372,842],[2446,802],[2450,744],[2564,664],[2598,590],[2742,516],[2765,466]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[-1.026,7.114],[0.563,0.205],[1.57,-0.555],[27.483,-11.017],[28.513,-9.988],[10.704,-17.796],[11.983,-16.517],[26.291,-11.042],[20.677,-16.657],[11.636,-19.202],[18.268,-13.509],[8.855,-22.077],[-38.794,25.539],[-9.988,27.678],[-42.984,30.682],[-30.444,26.223],[-39.702,22.297]],"o":[[-1.179,-0.734],[-0.563,-0.205],[-27.555,10.945],[-27.483,11.017],[-13.202,15.298],[-10.704,17.796],[-22.158,15.176],[-26.291,11.042],[-12.251,21.671],[-11.499,18.975],[-19.663,14.54],[43.234,-21.1],[14.576,-23.091],[49.701,-23.966],[25.515,-31.152],[46.002,-16.983],[5.275,-2.962]],"v":[[2962,350],[2959.793,348.533],[2957,349],[2874.718,382.218],[2791,414],[2756.086,464.586],[2723,517],[2647.889,553.889],[2575,593],[2552,661],[2497,704],[2445,749],[2562,673],[2594,592],[2743,520],[2812,419],[2947,363]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-4.645,8.948],[3.386,0.281],[3.68,-0.013],[3.619,0.047],[8.003,-5.664],[3.867,-9.799],[-10.457,-8.537],[-11.396,-7.738],[-8.707,-4.496],[-6.167,-7.58],[4.369,-5.631],[2.167,-7.833],[-8.254,11.032],[-1.734,12.101],[18.503,10.997],[11.635,17.865],[-8.552,5.512]],"o":[[-2.738,-0.929],[-3.386,-0.281],[-3.68,0.013],[-7.121,6.545],[-8.003,5.664],[6.775,12.115],[10.457,8.537],[8.004,5.435],[8.707,4.496],[-3.359,6.641],[-4.369,5.631],[13.251,10.228],[8.254,-11.032],[-18.352,-11.149],[-18.503,-10.996],[5.146,-9.003],[8.552,-5.512]],"v":[[1863,320],[1853.726,318.274],[1843.038,317.962],[1832,318],[1808.059,335.059],[1789,357],[1815.534,387.283],[1849,411],[1874.878,424.891],[1898,442],[1885.606,459.606],[1875,479],[1907.638,472.746],[1923,433],[1865.962,401.538],[1819,360],[1841.376,339.959]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[-9.67,4.829],[3.262,0.154],[3.438,-0.021],[3.457,-0.04],[3.32,0.097],[3.018,-2.482],[2.585,-2.915],[2.024,-3.476],[1.336,-4.164],[-3.397,-3.27],[-4.176,-2.49],[-4.691,-1.976],[-4.941,-1.726],[3.349,2.651],[3.693,2.307],[1.508,4.492],[-8.31,6.19]],"o":[[-2.93,-0.486],[-3.262,-0.154],[-3.438,0.021],[-3.457,0.04],[-3.323,2.177],[-3.018,2.482],[-2.585,2.915],[-2.024,3.476],[2.353,4.313],[3.397,3.27],[4.176,2.49],[4.691,1.976],[-0.476,-5.524],[-3.349,-2.651],[-3.693,-2.307],[5.088,-9.412],[8.31,-6.19]],"v":[[1857,319],[1847.672,318.078],[1837.583,317.917],[1827.203,318.047],[1817,318],[1807.456,324.956],[1799.019,333.019],[1792.072,342.572],[1787,354],[1795.691,365.308],[1807.118,373.882],[1820.485,380.515],[1835,386],[1828.629,374.371],[1817.433,367.567],[1809,358],[1829.564,335.063]],"c":true}],"h":1},{"t":87,"s":[{"i":[[-8.127,0.461],[3.302,2.781],[4.725,1.358],[5.311,0.773],[5.058,1.025],[14.064,15.047],[17.045,12.066],[27.141,1.97],[0.273,-0.227],[0.405,-0.095],[0,-0.5],[0,-0.5],[-8.101,-2.566],[-8.863,-1.803],[-19.441,-17.726],[-22.977,-14.19],[-6.119,-1.548]],"o":[[-1.041,-5.042],[-3.302,-2.781],[-4.725,-1.358],[-5.311,-0.773],[-18.197,-10.914],[-14.064,-15.047],[-17.045,-12.066],[-0.502,-0.001],[-0.273,0.227],[0,0.5],[0,0.5],[6.733,3.935],[8.101,2.565],[19.26,17.907],[19.441,17.726],[7.399,0.268],[6.119,1.548]],"v":[[956,463],[949.276,451.474],[937.025,445.474],[921.762,442.488],[906,440],[859.386,399.28],[814.501,356.832],[750,334],[748.928,334.428],[748,335],[748,336.5],[748,338],[770.402,347.598],[796,354],[853.212,408.288],[916,457],[935.454,460.546]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[9.354,2.848],[-6.126,-3.341],[-7.303,-2.163],[-8.039,-1.427],[-8.334,-1.133],[-8.187,-1.28],[-1.32,-1.097],[-1.37,-1.047],[-1.615,-0.801],[-2.056,-0.361],[0.456,1.071],[0.898,0.905],[0.993,0.757],[0.742,0.625],[9.499,3.272],[10.848,1.989],[10.8,1.848]],"o":[[4.507,4.96],[6.126,3.341],[7.303,2.163],[8.039,1.427],[8.334,1.133],[1.464,0.952],[1.32,1.097],[1.37,1.047],[1.615,0.801],[0.334,-1.254],[-0.456,-1.071],[-0.898,-0.905],[-0.993,-0.757],[-6.753,-5.696],[-9.499,-3.272],[-10.848,-1.989],[-10.8,-1.848]],"v":[[687,320],[703.059,332.341],[723.313,340.487],[746.438,345.762],[771.108,349.492],[796,353],[800.127,356.123],[804.113,359.387],[808.542,362.208],[814,364],[813.731,360.518],[811.613,357.558],[808.689,355.069],[806,353],[781.273,339.834],[750.403,332.228],[717.581,326.758]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-0.092,-0.426],[-6.192,-2.474],[-7.092,-1.575],[-7.354,-1.313],[-6.977,-1.689],[-0.968,-0.856],[-0.913,-0.866],[-1.113,-0.327],[-1.569,0.762],[2.705,2.39],[3.934,1.297],[4.387,0.758],[4.065,0.773],[5.996,1.456],[5.632,1.264],[4.677,0.521],[0.197,-0.137]],"o":[[4.655,4.012],[6.192,2.474],[7.092,1.575],[7.354,1.313],[1.278,0.297],[0.968,0.856],[0.913,0.866],[1.113,0.327],[-0.7,-4.037],[-2.705,-2.39],[-3.934,-1.297],[-4.387,-0.758],[-5.771,-1.097],[-5.996,-1.456],[-5.632,-1.264],[-0.305,0.029],[-0.197,0.136]],"v":[[1393,515],[1409.43,524.57],[1429.515,530.485],[1451.344,534.656],[1473,539],[1476.306,540.868],[1479.064,543.589],[1482.041,545.516],[1486,545],[1480.698,535.497],[1470.547,530.104],[1457.872,527.158],[1445,525],[1427.201,521.032],[1409.611,516.815],[1394,514],[1393.202,514.202]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[-3.816,3.279],[1.697,-0.095],[1.555,-0.237],[1.439,-0.353],[1.348,-0.443],[1.283,-0.508],[1.244,-0.548],[1.231,-0.561],[1.243,-0.549],[2.398,-0.535],[2.342,-0.591],[2.065,-0.868],[1.565,-1.368],[0.843,-2.09],[-6.082,1.032],[-5.346,2.189],[-4.591,2.938]],"o":[[-1.865,-0.073],[-1.697,0.095],[-1.555,0.237],[-1.439,0.353],[-1.348,0.444],[-1.283,0.508],[-1.244,0.548],[-1.231,0.561],[-2.231,0.702],[-2.398,0.535],[-2.342,0.591],[-2.065,0.868],[-1.565,1.368],[6.799,0.534],[6.082,-1.032],[5.346,-2.189],[4.591,-2.938]],"v":[[2370,426],[2364.664,426.039],[2359.792,426.543],[2355.308,427.434],[2351.134,428.635],[2347.194,430.069],[2343.409,431.659],[2339.704,433.329],[2336,435],[2329.001,436.801],[2321.835,438.435],[2315.168,440.568],[2309.668,443.867],[2306,449],[2325.327,448.152],[2342.474,443.219],[2357.385,435.427]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[1.209,0.249],[-0.349,-1.038],[-0.659,-0.856],[-0.902,-0.67],[-1.081,-0.48],[-1.195,-0.286],[-1.243,-0.088],[-1.226,0.113],[-1.144,0.319],[-0.996,0.528],[0.917,0.542],[0.958,0.5],[1,0.459],[1.041,0.417],[1.083,0.375],[1.125,0.333],[1.167,0.291]],"o":[[-0.025,1.217],[0.349,1.038],[0.659,0.856],[0.902,0.67],[1.081,0.48],[1.195,0.286],[1.243,0.088],[1.226,-0.113],[1.144,-0.319],[-0.875,-0.583],[-0.917,-0.542],[-0.958,-0.5],[-1,-0.459],[-1.041,-0.417],[-1.083,-0.375],[-1.125,-0.333],[-1.167,-0.291]],"v":[[1373,479],[1373.503,482.384],[1375.031,485.227],[1377.389,487.516],[1380.381,489.242],[1383.811,490.391],[1387.483,490.953],[1391.203,490.916],[1394.774,490.269],[1398,489],[1395.312,487.312],[1392.5,485.75],[1389.563,484.311],[1386.502,482.998],[1383.315,481.81],[1380.002,480.748],[1376.564,479.811]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[-1.407,1.489],[1.52,0.327],[1.585,0.102],[1.62,-0.076],[1.624,-0.208],[1.597,-0.293],[1.539,-0.331],[1.45,-0.323],[1.331,-0.268],[-0.02,-0.48],[-0.089,-0.411],[-0.14,-0.36],[-0.173,-0.327],[-0.188,-0.312],[-0.185,-0.315],[-0.163,-0.337],[-0.124,-0.376],[-2.723,0.063],[-2.461,0.663],[-2.154,1.101],[-1.803,1.376]],"o":[[-1.423,-0.599],[-1.52,-0.327],[-1.585,-0.102],[-1.62,0.076],[-1.624,0.208],[-1.597,0.293],[-1.539,0.331],[-1.45,0.323],[-0.067,0.567],[0.02,0.48],[0.089,0.411],[0.14,0.36],[0.173,0.327],[0.188,0.312],[0.185,0.315],[0.163,0.337],[2.94,0.699],[2.723,-0.063],[2.461,-0.663],[2.154,-1.101],[1.803,-1.376]],"v":[[1745,889],[1740.578,887.623],[1735.913,886.991],[1731.097,886.964],[1726.223,887.401],[1721.384,888.163],[1716.672,889.111],[1712.18,890.103],[1708,891],[1707.934,892.566],[1708.103,893.897],[1708.452,895.048],[1708.927,896.073],[1709.474,897.026],[1710.038,897.962],[1710.565,898.935],[1711,900],[1719.505,900.914],[1727.292,899.783],[1734.226,897.095],[1740.173,893.339]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[5.531,1.052],[-0.472,-2.736],[-0.687,-2.521],[-0.845,-2.364],[-0.945,-2.264],[-0.988,-2.221],[-0.973,-2.235],[-0.901,-2.308],[-0.771,-2.437],[-5.512,-0.128],[-5.489,0.241],[-5.317,0.545],[-4.996,0.784],[-4.527,0.958],[5.476,0.652],[6.086,-0.545],[6.317,-0.674],[6.169,0.263],[1.308,5.275],[1.568,5.015],[2.976,3.607]],"o":[[0.199,3.009],[0.472,2.736],[0.687,2.521],[0.845,2.364],[0.945,2.264],[0.988,2.221],[0.973,2.235],[0.901,2.308],[5.388,0.563],[5.512,0.128],[5.489,-0.241],[5.317,-0.545],[4.996,-0.784],[-4.487,-2.916],[-5.476,-0.652],[-6.086,0.545],[-6.317,0.674],[-2.196,-4.388],[-1.308,-5.275],[-1.568,-5.015],[-2.976,-3.607]],"v":[[1641,842],[1642.022,850.604],[1643.775,858.476],[1646.086,865.789],[1648.785,872.715],[1651.698,879.427],[1654.653,886.097],[1657.478,892.897],[1660,900],[1676.387,901.021],[1692.926,900.835],[1709.172,899.639],[1724.678,897.629],[1739,895],[1723.961,889.915],[1706.523,890.021],[1687.824,892.116],[1669,893],[1664.031,878.219],[1660.003,862.497],[1653.474,849.276]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[21.17,5.164],[6.612,12.388],[11.8,7.2],[12.555,0.445],[11.767,1.233],[4.349,5.318],[4.151,5.515],[4.436,5.564],[8.155,1.846],[0.348,-0.485],[-0.022,-0.855],[0.241,-0.007],[0.001,0.015],[-6.12,-6.944],[-1.908,-5.482],[-5.217,-5.95],[-6.536,-4.63],[-13.103,-0.231],[-12,-1.333],[-15.747,-15.92],[-26.019,-2.201]],"o":[[-5.752,-13.248],[-6.612,-12.388],[-12.014,-0.986],[-12.555,-0.445],[-5.454,-4.213],[-4.349,-5.318],[-5.103,-4.897],[-4.436,-5.564],[-0.629,0.205],[-0.348,0.485],[-0.034,-0.012],[-0.241,0.007],[0.615,6.744],[6.12,6.943],[4.597,6.569],[5.217,5.95],[11.589,1.744],[13.103,0.231],[17.562,14.104],[17.415,11.471],[-10.439,-15.894]],"v":[[1667,883],[1649.536,843.464],[1623,813],[1585.815,811.185],[1549,809],[1534.523,794.477],[1522,778],[1508.789,761.211],[1491,749],[1489.512,750.012],[1489,752],[1488.475,752.002],[1488,752],[1500.53,772.947],[1515,792],[1529.546,810.954],[1547,827],[1584.692,829.308],[1623,831],[1657,892],[1732,897]],"c":true}],"h":1},{"t":83,"s":[{"i":[[31.25,10.983],[0,-0.5],[0,-0.5],[-7.025,-7.282],[-6.717,-7.753],[-6.347,-7.775],[-6.87,-7.117],[-20.19,-4.144],[-20.466,-3.868],[-12.335,-14.831],[-14.971,-12.196],[-23.845,-2.155],[-10.966,-17.034],[-32.34,-2.993],[21.427,8.907],[14.874,15.46],[26.646,4.688],[21.01,20.657],[7.464,3.669],[32.094,17.608],[7.325,8.695]],"o":[[0,0.5],[0,0.5],[5.182,8.12],[7.025,7.282],[6.742,7.782],[6.347,7.775],[13.776,10.557],[20.189,4.144],[16.687,10.48],[12.336,14.831],[23.124,2.877],[17.602,10.398],[15.322,20.011],[-10.58,-16.422],[-14.207,-16.126],[-16.236,-15.097],[-24.788,-16.878],[-8.246,-4.781],[-30.124,-14.807],[-8.796,-4.826],[-20.788,-24.679]],"v":[[1270,616],[1270,617.5],[1270,619],[1288.848,641.776],[1310,664],[1329.404,687.498],[1349,710],[1401.483,730.517],[1464,741],[1505.787,780.713],[1545,823],[1618,828],[1649,881],[1735,901],[1665,878],[1633,819],[1551,807],[1491,742],[1471,728],[1367,706],[1343,682]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[17.579,3.647],[-0.17,-2.503],[-18.893,-8.774],[-25.609,-2.391],[-26.726,-38.607],[-32.094,-10.906],[-19.861,-18.806],[-13.7,-8.966],[-21.229,0.659],[-22.139,-13.473],[-29.804,-2.608],[23.018,7.317],[6.448,12.711],[10.483,2.375],[6.824,-0.273],[13.909,1.227],[38.677,23.991],[26.806,10.527],[17.528,17.528],[20.633,11.271],[23.45,4.184]],"o":[[-1.464,0.87],[8.12,19.547],[23.667,4.333],[36.534,28.799],[26.3,16.701],[23.568,15.098],[9.071,13.596],[18.537,4.209],[22.452,13.431],[18.292,11.132],[-10.347,-16.655],[-8.186,-9.449],[-4.593,-9.053],[-5.62,-1.273],[-13.607,0.544],[-27.874,-34.794],[-26.678,-10.655],[-15.972,-17.057],[-16.537,-16.537],[-17.727,-9.683],[-23.027,-4.108]],"v":[[1136,573],[1133,577],[1188,605],[1259,618],[1356,717],[1460,742],[1524,794],[1555,831],[1617,833],[1657,892],[1733,902],[1663,879],[1645,844],[1620,815],[1601,816],[1559,815],[1461,725],[1368,706],[1319,653],[1265,604],[1199,591]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[52.884,22.783],[-0.084,-0.583],[-0.586,-0.081],[-11.103,-8.564],[-10.296,-9.37],[-8.853,-10.211],[-13.246,-7.504],[-27.065,-4.181],[-18.291,-16.126],[-15.293,-17.041],[-18.443,-13.89],[-14.711,-1.956],[-13.087,-3.58],[-15.808,-15.608],[-19.934,-8.9],[7.611,7.555],[8.189,6.977],[17.896,12.771],[33.731,6.269],[44.049,29.285],[37.465,16.202]],"o":[[0.078,0.589],[0.084,0.583],[9.293,10.374],[11.103,8.564],[11.341,8.652],[8.853,10.211],[21.45,12.151],[27.065,4.181],[17.387,14.946],[15.293,17.041],[15.068,1.598],[14.711,1.956],[18.834,11.666],[15.808,15.609],[-5.366,-9.801],[-7.611,-7.555],[-17.054,-13.612],[-25.169,-14.831],[-36.685,-36.648],[-38.742,-14.924],[-38.574,-37.092]],"v":[[1001,466],[1001.119,467.881],[1002,469],[1033.247,496.753],[1066,523],[1094.571,552.361],[1126,580],[1202.369,599.519],[1274,625],[1321.708,674.292],[1371,722],[1415.986,727.014],[1458,735],[1508.176,778.574],[1560,818],[1540.117,792.382],[1516,771],[1469,726],[1369,706],[1256,599],[1128,566]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[77.032,6.024],[-0.162,-0.671],[-0.389,-0.445],[-12.848,-2.521],[-10.288,-5.595],[-5.019,-4.797],[-5.129,-4.658],[-15.624,-13.943],[-14.788,-13.956],[-19.66,-5.34],[-25.684,0.684],[-10.414,-10.716],[-15.638,-2.627],[4.701,4.61],[5.606,4.22],[9.294,7.635],[11.63,3.539],[10.023,1.425],[9.684,1.981],[13.162,8.503],[11.782,11.782]],"o":[[-0.038,0.871],[0.162,0.671],[9.322,8.321],[12.848,2.521],[5.797,3.153],[5.019,4.797],[15.715,14.272],[15.624,13.943],[17.677,7.323],[19.66,5.34],[13.707,6.509],[10.414,10.716],[-2.591,-7.339],[-4.701,-4.61],[-9.195,-6.921],[-9.294,-7.635],[-10.226,2.682],[-10.023,-1.425],[-20.572,-4.207],[-13.162,-8.503],[-42.552,-42.553]],"v":[[935,442],[935.18,444.32],[936,446],[970.776,460.044],[1007,470],[1023.001,482.372],[1038,497],[1085.195,539.237],[1131,581],[1185.994,601.006],[1253,609],[1287.052,637.911],[1324,661],[1312.762,643.661],[1297,631],[1269.827,607.963],[1239,590],[1208.593,590.997],[1179,585],[1129.908,565.681],[1094,535]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[22.673,9.494],[-0.089,-0.328],[-0.177,-0.24],[-0.249,-0.167],[-0.308,-0.109],[-10.871,-10.018],[-10.751,-10.138],[-10.053,-10.836],[-20.473,-5.027],[-19.933,-5.567],[-11.777,-11.028],[-11.439,-11.439],[-14.475,-8.994],[-21.937,0.139],[6.575,1.925],[6.646,1.853],[15.023,16.31],[17.025,14.308],[25.058,6.442],[23.306,8.194],[16.461,15.706]],"o":[[-0.014,0.43],[0.089,0.328],[0.176,0.24],[0.249,0.167],[10.413,10.476],[10.871,10.018],[10.751,10.138],[18.174,7.326],[20.473,5.027],[12.451,10.448],[11.778,11.028],[11.163,11.163],[14.475,8.994],[-4.053,-4.447],[-6.575,-1.925],[-19.882,-11.452],[-15.023,-16.31],[-15.464,-16.036],[-25.058,-6.443],[-18.485,-13.682],[-16.461,-15.706]],"v":[[793,347],[793.117,348.133],[793.519,348.981],[794.161,349.589],[795,350],[827.071,380.596],[859.65,410.684],[891,442],[949.68,459.82],[1011,475],[1047.259,507.257],[1082,541],[1119.42,572.977],[1173,588],[1156.445,579.055],[1136,574],[1085.357,530.643],[1039,483],[975.382,452.119],[900,433],[849.641,386.859]],"c":true}],"h":1},{"t":87,"s":[{"i":[[-6.742,8.758],[7.237,-1.513],[6.588,-2.162],[6.557,-2.193],[7.143,-1.607],[-0.98,-4.436],[-1.298,-4.119],[-1.294,-4.123],[-0.968,-4.448],[9.583,-3.639],[8.552,-4.67],[4.585,-8.637],[-1.446,-3.554],[-4.733,-0.267],[0.567,2.992],[0.931,2.22],[-15.219,5.281],[-9.026,11.474],[2.202,7.464],[0.994,8.673],[-12.45,3.05]],"o":[[-8.503,0.247],[-7.237,1.513],[-6.588,2.162],[-6.557,2.193],[0.341,5.075],[0.98,4.436],[1.298,4.119],[1.294,4.123],[-7.677,5.545],[-9.583,3.639],[-8.552,4.67],[1.481,3.519],[1.446,3.554],[1.198,-2.812],[-0.567,-2.992],[9.096,-11.404],[15.219,-5.281],[-0.198,-9.469],[-2.202,-7.465],[10.458,-5.042],[12.45,-3.05]],"v":[[2338,484],[2314.544,486.794],[2293.96,492.46],[2274.396,499.146],[2254,505],[2256.063,519.187],[2259.56,531.94],[2263.527,544.223],[2267,557],[2240.376,570.043],[2212.44,581.773],[2192,601],[2195.561,612.439],[2204,619],[2204.597,610.056],[2202,602],[2241.552,580.052],[2281,558],[2276.597,533.403],[2271,510],[2307.287,499.787]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[-11.89,5.277],[0.759,2.658],[1.2,2.217],[2.091,1.326],[3.433,-0.016],[-0.094,-1.597],[-0.56,-1.489],[-0.561,-1.522],[-0.096,-1.697],[7.616,-1.551],[7.115,-2.052],[6.067,-3.1],[4.471,-4.695],[-1.209,-2.895],[-1.921,-2.144],[-2.751,-0.553],[-3.701,1.881],[1.001,1.999],[1.282,1.718],[0.107,2.893],[-13.891,3.276]],"o":[[-0.769,-2.648],[-0.759,-2.658],[-1.2,-2.217],[-2.091,-1.326],[-0.837,1.847],[0.094,1.597],[0.56,1.489],[0.561,1.522],[-7.57,1.597],[-7.616,1.551],[-7.115,2.052],[-6.067,3.1],[0.616,2.803],[1.209,2.895],[1.921,2.144],[2.751,0.553],[0.736,-3.736],[-1.001,-1.999],[-1.282,-1.718],[11.547,-5.619],[13.891,-3.276]],"v":[[2343,487],[2340.821,478.928],[2337.996,471.503],[2333.173,466.076],[2325,464],[2324.002,469.131],[2325.1,473.725],[2326.898,478.207],[2328,483],[2305.085,487.586],[2282.853,492.853],[2262.944,500.444],[2247,512],[2249.708,520.757],[2254.373,528.526],[2261.351,532.782],[2271,531],[2270.238,522.762],[2266.448,517.552],[2264,511],[2303.244,498.743]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-0.34,2.404],[1.238,0.722],[1.46,0.605],[1.621,0.47],[1.721,0.316],[1.761,0.143],[1.741,-0.048],[1.66,-0.258],[1.519,-0.487],[1.317,-0.734],[1.054,-1],[0.731,-1.284],[0.348,-1.587],[-0.096,-1.909],[-2.329,-0.668],[-2.591,-0.4],[-2.671,-0.076],[-2.569,0.306],[-2.284,0.745],[-1.818,1.241],[-1.17,1.794]],"o":[[-0.956,-0.82],[-1.238,-0.722],[-1.46,-0.605],[-1.621,-0.47],[-1.721,-0.316],[-1.761,-0.143],[-1.741,0.048],[-1.66,0.258],[-1.519,0.487],[-1.317,0.734],[-1.054,1],[-0.731,1.284],[-0.348,1.587],[1.886,0.879],[2.329,0.668],[2.591,0.4],[2.671,0.076],[2.569,-0.306],[2.284,-0.745],[1.818,-1.241],[1.17,-1.794]],"v":[[3275,577],[3271.693,574.682],[3267.631,572.686],[3262.995,571.069],[3257.967,569.886],[3252.728,569.193],[3247.459,569.047],[3242.342,569.502],[3237.559,570.614],[3233.291,572.441],[3229.72,575.037],[3227.027,578.458],[3225.393,582.76],[3225,588],[3231.368,590.334],[3238.795,591.951],[3246.733,592.679],[3254.638,592.347],[3261.964,590.784],[3268.163,587.82],[3272.69,583.282]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[2.055,0.778],[-0.422,-1.322],[-0.41,-1.334],[-0.417,-1.327],[-0.443,-1.301],[-0.487,-1.257],[-0.549,-1.194],[-0.63,-1.113],[-0.73,-1.014],[-0.848,-0.895],[-0.985,-0.759],[-1.14,-0.604],[-1.314,-0.43],[-1.506,-0.238],[0.54,2.293],[0.736,2.097],[0.939,1.895],[1.148,1.685],[1.365,1.468],[1.588,1.245],[1.818,1.015]],"o":[[0.452,1.292],[0.422,1.322],[0.41,1.334],[0.417,1.327],[0.443,1.301],[0.487,1.257],[0.549,1.194],[0.63,1.113],[0.73,1.014],[0.848,0.895],[0.985,0.759],[1.14,0.604],[1.314,0.43],[-0.351,-2.482],[-0.54,-2.293],[-0.736,-2.097],[-0.939,-1.895],[-1.148,-1.685],[-1.365,-1.468],[-1.588,-1.245],[-1.818,-1.015]],"v":[[1389,487],[1390.305,490.926],[1391.548,494.914],[1392.784,498.908],[1394.069,502.854],[1395.458,506.696],[1397.007,510.377],[1398.772,513.843],[1400.808,517.038],[1403.171,519.906],[1405.916,522.392],[1409.099,524.44],[1412.775,525.994],[1417,527],[1415.665,519.835],[1413.753,513.248],[1411.242,507.258],[1408.113,501.888],[1404.344,497.156],[1399.917,493.084],[1394.809,489.692]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[-0.404,1.096],[0.797,-0.126],[0.743,-0.181],[0.686,-0.237],[0.628,-0.295],[0.567,-0.356],[0.506,-0.417],[0.442,-0.481],[0.377,-0.547],[0.309,-0.614],[0.24,-0.683],[0.17,-0.753],[0.097,-0.826],[0.023,-0.9],[-0.953,0.547],[-0.904,0.596],[-0.845,0.655],[-0.776,0.724],[-0.697,0.803],[-0.609,0.891],[-0.511,0.989]],"o":[[-0.85,0.073],[-0.797,0.126],[-0.743,0.181],[-0.686,0.237],[-0.628,0.295],[-0.567,0.356],[-0.506,0.417],[-0.442,0.481],[-0.377,0.547],[-0.309,0.614],[-0.24,0.683],[-0.17,0.753],[-0.097,0.826],[0.993,-0.507],[0.953,-0.547],[0.904,-0.596],[0.845,-0.655],[0.776,-0.724],[0.697,-0.803],[0.609,-0.891],[0.511,-0.989]],"v":[[2869,601],[2866.528,601.297],[2864.218,601.756],[2862.075,602.382],[2860.104,603.181],[2858.311,604.157],[2856.701,605.316],[2855.279,606.663],[2854.051,608.204],[2853.021,609.944],[2852.196,611.889],[2851.581,614.042],[2851.18,616.411],[2851,619],[2853.922,617.422],[2856.71,615.71],[2859.335,613.835],[2861.768,611.768],[2863.98,609.48],[2865.942,606.942],[2867.625,604.125]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 3"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[0.263,2.02],[1.454,-0.796],[0.986,-1.264],[0.627,-1.623],[0.376,-1.874],[0.235,-2.015],[0.202,-2.048],[0.278,-1.972],[0.463,-1.787],[-1.272,1.035],[-1.1,1.289],[-0.912,1.506],[-0.709,1.684],[-0.489,1.825],[-0.254,1.928],[-0.003,1.993]],"o":[[-2.031,0.219],[-1.454,0.796],[-0.986,1.264],[-0.627,1.623],[-0.376,1.874],[-0.235,2.015],[-0.202,2.048],[-0.278,1.972],[1.429,-0.743],[1.272,-1.035],[1.1,-1.289],[0.912,-1.506],[0.709,-1.684],[0.489,-1.825],[0.254,-1.928],[0.003,-1.993]],"v":[[2422,1039],[2416.799,1040.549],[2413.165,1043.665],[2410.773,1048.023],[2409.296,1053.296],[2408.407,1059.157],[2407.779,1065.279],[2407.085,1071.335],[2406,1077],[2410.055,1074.323],[2413.618,1070.827],[2416.64,1066.625],[2419.076,1061.831],[2420.876,1056.557],[2421.996,1050.919],[2422.386,1045.028]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[1.556,0.027],[-0.345,-1.294],[-0.501,-1.222],[-0.646,-1.107],[-0.78,-0.949],[-0.902,-0.747],[-1.014,-0.502],[-1.114,-0.213],[-1.203,0.119],[0.453,1.13],[0.452,1.131],[0.505,1.079],[0.609,0.974],[0.767,0.816],[0.977,0.606],[1.24,0.343]],"o":[[0.178,1.322],[0.345,1.294],[0.501,1.222],[0.646,1.107],[0.78,0.949],[0.902,0.747],[1.014,0.502],[1.114,0.213],[-0.506,-1.077],[-0.453,-1.13],[-0.452,-1.131],[-0.505,-1.079],[-0.609,-0.974],[-0.767,-0.816],[-0.977,-0.606],[-1.24,-0.343]],"v":[[2088,906],[2088.788,909.936],[2090.061,913.721],[2091.785,917.227],[2093.926,920.323],[2096.452,922.878],[2099.328,924.763],[2102.522,925.847],[2106,926],[2104.574,922.676],[2103.229,919.272],[2101.806,915.944],[2100.148,912.852],[2098.097,910.153],[2095.494,908.006],[2092.181,906.569]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[0.836,3.125],[3.956,-1.044],[3.516,-1.484],[2.802,-2.198],[1.815,-3.185],[-1.951,-3.799],[-1.767,-3.983],[-2.307,-3.443],[-3.572,-2.178],[1.375,3.625],[1.756,3.244],[1.753,3.247],[1.365,3.635],[-3.62,1.186],[-3.481,1.335],[-1.996,1.981]],"o":[[-4.122,0.879],[-3.956,1.044],[-3.516,1.484],[-2.802,2.198],[2.859,2.891],[1.951,3.799],[1.767,3.983],[2.307,3.443],[-0.61,-4.39],[-1.375,-3.625],[-1.756,-3.244],[-1.753,-3.247],[2.411,-1.534],[3.62,-1.186],[3.481,-1.335],[1.996,-1.981]],"v":[[2114,862],[2101.816,864.816],[2090.54,868.54],[2080.994,873.994],[2074,882],[2081.034,892.216],[2086.431,904.069],[2092.363,915.387],[2101,924],[2097.926,912.074],[2093.133,901.868],[2087.773,892.227],[2083,882],[2092.383,878.044],[2103.37,874.386],[2111.923,869.535]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-7.978,14.022],[7.778,-5.942],[7.352,-5.532],[-3.473,-7.027],[-2.159,-8.341],[7.648,-3.519],[3.011,-8.157],[-1.284,-3.883],[-1.09,-4.077],[-0.832,-1.668],[-0.554,-1.946],[-1.293,-1.74],[-0.644,2.332],[2.055,13.612],[-7,17.667],[4.578,15.422]],"o":[[-12.534,-1.299],[-7.778,5.942],[0.949,9.551],[3.473,7.027],[-4.399,6.767],[-7.647,3.519],[0.774,4.392],[1.284,3.883],[1.117,1.383],[0.832,1.668],[1.186,0.373],[1.293,1.74],[0.583,-16.249],[16.007,-8.66],[-5.336,-14.664],[9.942,-12.058]],"v":[[2152,776],[2122.613,784.877],[2101,804],[2108.592,827.908],[2118,850],[2097.958,863.458],[2080,879],[2083.263,891.237],[2087,903],[2089.922,907.578],[2092,913],[2095.906,917.529],[2099,918],[2090,880],[2133,849],[2116,806]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[-1.133,10.932],[0.845,0.488],[1.729,-0.396],[11.375,-6.125],[8.713,-8.788],[-2.96,-20.04],[9.693,-19.974],[-0.38,-18.953],[8.293,-12.04],[-11.135,-9.531],[1.059,13.876],[-6.485,17.182],[2.689,16.31],[-7.816,19.85],[-2.463,24.156],[-10.906,5.76]],"o":[[-0.889,-0.444],[-0.845,-0.488],[-10.787,6.712],[-11.375,6.125],[0.092,22.908],[-11.245,18.421],[2.685,16.648],[-9.126,11.208],[3.423,17.244],[3.413,-15.115],[10.122,-13.545],[-2.772,-16.228],[10.145,-17.521],[5.368,-23.737],[6.879,-9.787],[10.469,-4.913]],"v":[[2208,667],[2205.63,665.37],[2202,665],[2167.944,683.444],[2137,705],[2149,762],[2104,806],[2118,850],[2082,875],[2096,923],[2093,880],[2133,849],[2119,806],[2162,766],[2152,709],[2182,689]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[3.573,22.067],[2.537,-2.458],[-2.862,-19.989],[24.178,-9.822],[-1.56,-20.44],[12.742,-21.592],[-4.546,-12.121],[10.344,-8.655],[-12.462,-8.871],[2.328,13.236],[-6.745,15.922],[3.545,14.122],[-9.951,23.049],[-0.734,22.067],[-12.698,6.302],[-3.427,15.573]],"o":[[-3.699,-1.605],[-5.459,21.711],[-19.035,14.965],[-2.002,24.003],[-7.88,26.453],[3.242,13.424],[-7.722,11.278],[1.156,20.177],[4.723,-14.16],[10.959,-11.708],[-4.01,-13.656],[17.957,-15.043],[1.89,-23.223],[14.142,-4.858],[9.854,-9.146],[-6.693,-17.857]],"v":[[2202,600],[2189,601],[2200,662],[2137,701],[2147,757],[2100,813],[2115,848],[2081,871],[2095,921],[2091,878],[2130,849],[2114,812],[2162,761],[2152,707],[2189,687],[2218,659]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[3.055,-0.722],[6.718,-3.811],[6.987,-3.513],[6.449,-3.144],[4.73,-5.168],[-1.732,-22.935],[13.241,-7.765],[1.561,-11.178],[4.753,-20.108],[4.091,-24.244],[-10.575,8.092],[-1.448,16.167],[2.625,17.024],[-14.918,25.082],[3.947,19.053],[-9.344,28.322]],"o":[[-6.142,4.243],[-6.718,3.811],[-6.472,3.254],[-6.449,3.144],[2.516,22.15],[-8.128,10.13],[-9.853,5.778],[-2.313,16.564],[-10.065,21.603],[13.731,-4.936],[6.014,-13.387],[1.454,-16.235],[23.588,-16.412],[-3.285,-19.715],[19.539,-18.128],[-2.355,0.022]],"v":[[2269,554],[2249.633,566.047],[2229,577],[2209.194,586.065],[2192,598],[2205,659],[2171,683],[2139,710],[2152,758],[2111,814],[2141,788],[2166,756],[2152,708],[2221,657],[2208,601],[2275,555]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[8.12,5.88],[0.836,-0.997],[1.452,-0.381],[-1.085,-3.582],[-0.211,-4.455],[15.15,-6.517],[9.079,-12.587],[-3.164,-9.169],[-4.662,-7.672],[6.008,-3.659],[1.722,-7.946],[-6.886,6.28],[-5.765,7.401],[3.169,8.165],[0.796,10.537],[-21.77,20.23]],"o":[[-2.203,-0.37],[-0.836,0.997],[-0.552,5.218],[1.085,3.582],[-11.322,10.346],[-15.15,6.517],[0.68,11.652],[3.164,9.169],[-4.247,5.42],[-6.008,3.659],[12.689,-0.478],[6.886,-6.28],[-5.53,-5.803],[-3.169,-8.165],[21.052,-20.948],[0.463,-14.463]],"v":[[2274,527],[2269.936,528.436],[2267,531],[2268.428,543.573],[2271,555],[2228.818,577.819],[2190,604],[2196.014,634.985],[2208,660],[2191.106,672.106],[2178,688],[2206.193,676.692],[2224,655],[2210.95,634.051],[2205,606],[2284,559]],"c":true}],"h":1},{"t":87,"s":[{"i":[[0.333,0],[-2.308,-7.358],[0.023,-9.689],[-17.032,-4.802],[-11.246,-10.587],[-8.687,-11.563],[-19.755,2.087],[4.528,1.805],[4.267,2.066],[3.443,11.724],[7.601,7.566],[13.901,4.266],[12.226,5.94],[2.391,8.776],[10.155,1.012],[0.333,0]],"o":[[0.79,8.877],[2.308,7.358],[13.626,8.207],[17.032,4.802],[3.499,15.835],[8.687,11.563],[-4.619,-1.715],[-4.529,-1.805],[-6.628,-8.539],[-3.443,-11.724],[-13.17,-4.997],[-13.901,-4.266],[-3.283,-7.884],[-2.391,-8.776],[-0.333,0],[-0.333,0]],"v":[[1476,537],[1481.61,560.39],[1486,585],[1534.285,602.214],[1579,623],[1595.808,666.442],[1637,683],[1623.237,677.764],[1610,672],[1596.73,639.77],[1582,609],[1540.792,595.707],[1501,581],[1494.654,553.846],[1478,537],[1477,537]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[8.361,-0.359],[-2.872,-1.128],[-3.256,-0.744],[-2.882,-1.118],[-1.747,-2.253],[-2.373,-7.46],[-4.923,-4.91],[-7.464,-2.37],[-9.995,0.161],[2.632,1.701],[3.664,0.67],[3.575,0.759],[2.365,1.968],[1.582,7.418],[0.338,8.663],[8.471,2.111]],"o":[[1.727,2.273],[2.872,1.128],[3.256,0.744],[2.882,1.118],[-0.187,10.02],[2.373,7.46],[4.923,4.91],[7.464,2.37],[-0.481,-3.853],[-2.632,-1.701],[-3.664,-0.67],[-3.575,-0.759],[-2.335,-6.665],[-1.582,-7.418],[-5.755,-3.913],[-8.471,-2.111]],"v":[[1443,528],[1450.088,532.912],[1459.47,535.53],[1468.867,538.133],[1476,543],[1479.281,569.219],[1490.227,587.773],[1508.81,598.69],[1535,602],[1530.051,593.949],[1520.327,590.673],[1509.189,588.811],[1500,585],[1494.002,563.998],[1491,540],[1468.954,530.796]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-1.213,2.682],[0.373,0.211],[0.24,0.343],[0.373,0.211],[0.77,-0.186],[4.24,-5.76],[3.802,-6.198],[4.036,-5.964],[4.941,-5.059],[-3.617,2.272],[-2.539,3.503],[-2.027,3.979],[-2.082,3.702],[-1.91,2.638],[-1.895,2.445],[-1.662,2.46]],"o":[[-0.77,0.186],[-0.373,-0.211],[-0.24,-0.343],[-0.373,-0.211],[-5.349,4.651],[-4.24,5.76],[-3.802,6.198],[-4.036,5.964],[5.264,-0.288],[3.617,-2.272],[2.538,-3.503],[2.027,-3.979],[1.708,-3.038],[1.91,-2.638],[1.895,-2.445],[1.662,-2.46]],"v":[[2826,612],[2824.353,611.897],[2823.5,611],[2822.647,610.103],[2821,610],[2806.784,625.784],[2794.888,643.888],[2783.299,662.299],[2770,679],[2783.18,674.972],[2792.272,666.122],[2798.978,654.71],[2805,643],[2810.481,634.539],[2816.242,626.967],[2821.632,619.661]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[-0.247,1.795],[1.712,-0.886],[1.682,-1],[1.587,-1.125],[1.425,-1.262],[1.198,-1.409],[0.906,-1.568],[0.547,-1.738],[0.123,-1.919],[-1.476,1.122],[-1.571,1.111],[-1.576,1.136],[-1.491,1.197],[-1.315,1.293],[-1.049,1.424],[-0.693,1.592]],"o":[[-1.675,0.783],[-1.712,0.886],[-1.682,1],[-1.587,1.125],[-1.425,1.262],[-1.198,1.409],[-0.906,1.568],[-0.547,1.738],[1.29,-1.169],[1.476,-1.122],[1.571,-1.111],[1.576,-1.136],[1.491,-1.197],[1.315,-1.293],[1.049,-1.424],[0.693,-1.592]],"v":[[3295,560],[3289.903,562.501],[3284.796,565.327],[3279.876,568.513],[3275.342,572.091],[3271.389,576.096],[3268.217,580.559],[3266.021,585.516],[3265,591],[3269.171,587.572],[3273.763,584.231],[3278.506,580.869],[3283.128,577.378],[3287.36,573.653],[3290.929,569.587],[3293.566,565.071]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[0.4,2.067],[0.64,0.135],[0.762,0.126],[0.817,0.084],[0.804,0.007],[0.725,-0.103],[0.578,-0.248],[0.363,-0.426],[0.081,-0.638],[-0.3,-0.783],[-0.429,-0.654],[-0.539,-0.544],[-0.63,-0.454],[-1.331,0.336],[-0.992,0.674],[-0.415,1.252]],"o":[[-0.451,-0.109],[-0.64,-0.135],[-0.762,-0.126],[-0.817,-0.084],[-0.804,-0.007],[-0.725,0.103],[-0.578,0.248],[-0.363,0.426],[0.152,0.931],[0.3,0.783],[0.429,0.654],[0.539,0.544],[1.432,-0.235],[1.331,-0.336],[0.992,-0.674],[0.415,-1.252]],"v":[[1334,934],[1332.347,933.625],[1330.226,933.226],[1327.841,932.903],[1325.392,932.758],[1323.081,932.894],[1321.111,933.412],[1319.683,934.413],[1319,936],[1319.683,938.566],[1320.783,940.717],[1322.241,942.509],[1324,944],[1328.203,943.204],[1331.748,941.748],[1333.918,938.918]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 4"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[-0.656,1.635],[1.623,-0.669],[1.459,-0.833],[1.279,-1.013],[1.084,-1.208],[0.872,-1.419],[0.645,-1.646],[0.403,-1.889],[0.144,-2.148],[-1.636,0.656],[-1.339,0.953],[-1.094,1.197],[-0.902,1.389],[-0.762,1.529],[-0.675,1.617],[-0.639,1.652]],"o":[[-1.771,0.521],[-1.623,0.669],[-1.459,0.833],[-1.279,1.013],[-1.084,1.208],[-0.872,1.419],[-0.645,1.646],[-0.403,1.889],[1.985,-0.307],[1.636,-0.656],[1.339,-0.953],[1.094,-1.197],[0.902,-1.389],[0.762,-1.529],[0.675,-1.617],[0.639,-1.652]],"v":[[1716,1187],[1710.905,1188.78],[1706.278,1191.028],[1702.168,1193.792],[1698.619,1197.119],[1695.681,1201.056],[1693.401,1205.65],[1691.824,1210.949],[1691,1217],[1696.417,1215.542],[1700.866,1213.116],[1704.503,1209.878],[1707.485,1205.985],[1709.969,1201.594],[1712.111,1196.861],[1714.069,1191.945]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[-1.169,0.013],[0.954,0.865],[1.323,0.655],[1.541,0.411],[1.609,0.133],[1.527,-0.18],[1.294,-0.526],[0.912,-0.907],[0.378,-1.322],[-1.063,-0.303],[-1.168,-0.145],[-1.243,-0.024],[-1.288,0.059],[-1.303,0.104],[-1.289,0.112],[-1.244,0.081]],"o":[[-0.435,-1.041],[-0.954,-0.865],[-1.323,-0.655],[-1.541,-0.411],[-1.609,-0.133],[-1.527,0.18],[-1.294,0.526],[-0.912,0.907],[0.928,0.499],[1.063,0.303],[1.168,0.145],[1.243,0.024],[1.288,-0.059],[1.303,-0.104],[1.289,-0.112],[1.244,-0.081]],"v":[[1937,932],[1934.879,929.131],[1931.426,926.842],[1927.093,925.234],[1922.33,924.41],[1917.588,924.473],[1913.319,925.523],[1909.972,927.665],[1908,931],[1910.994,932.194],[1914.348,932.857],[1917.972,933.1],[1921.777,933.038],[1925.672,932.784],[1929.567,932.451],[1933.373,932.152]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[3.151,1.932],[-0.451,3.038],[-0.519,2.736],[0.317,2.33],[2.055,1.821],[1.222,-2.528],[0.175,-3.575],[-0.01,-3.76],[0.668,-3.082],[-4.623,-1.241],[-4.999,-0.875],[-5.001,-0.447],[-4.63,0.045],[3.874,1.209],[4.484,0.6],[4.243,0.84]],"o":[[-0.52,-3.235],[0.451,-3.038],[0.519,-2.736],[-0.317,-2.33],[-3.133,0.617],[-1.222,2.528],[-0.175,3.575],[0.01,3.76],[3.874,1.543],[4.623,1.241],[4.999,0.876],[5.001,0.447],[-2.413,-2.67],[-3.874,-1.209],[-4.484,-0.599],[-4.243,-0.84]],"v":[[1884,918],[1884.123,908.565],[1885.804,899.878],[1886.333,892.252],[1883,886],[1876.683,890.933],[1874.803,900.303],[1874.772,911.522],[1874,922],[1886.839,926.193],[1901.366,929.383],[1916.46,931.382],[1931,932],[1921.356,926.394],[1908.607,923.893],[1895.304,921.946]],"c":true}],"h":1},{"t":83,"s":[{"i":[[6.502,10.165],[10.483,2.184],[7.882,4.784],[1.929,7.571],[6.61,2.89],[0.617,-0.217],[0.403,-0.43],[-2.041,-6.792],[-0.19,-8.643],[-11.428,-2.405],[-8.171,-5.663],[-0.211,-7.122],[-1.365,-5.968],[-9.106,-2.311],[-7.783,-1.052],[10.676,9.658]],"o":[[-8.187,-4.48],[-10.483,-2.184],[-2.676,-6.824],[-1.929,-7.572],[-0.13,0.703],[-0.616,0.217],[-0.354,9.188],[2.041,6.792],[7.118,6.716],[11.428,2.405],[1.789,5.545],[0.211,7.122],[6.794,3.707],[9.106,2.31],[-6.583,-13.751],[-0.155,-16.512]],"v":[[1880,867],[1850.772,858.228],[1822,849],[1816.451,826.05],[1805,809],[1803.705,810.205],[1802,811],[1805.592,833.908],[1810,856],[1839.71,867.79],[1871,878],[1873.317,897.683],[1875,918],[1899.759,926.991],[1926,932],[1885,912]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[20.325,11.675],[2.91,10.423],[8.156,5.177],[0.595,-0.404],[1.414,0.413],[-3.618,-10.794],[-4.042,-9.467],[-23,-11],[-5.935,-18.398],[-15.388,-10.612],[-3.819,-9.514],[-22.753,-2.581],[11.855,11.812],[2.973,12.027],[17.117,8.216],[12.521,14.146]],"o":[[-4.204,-9.129],[-2.91,-10.423],[-1.205,-0.205],[-0.595,0.404],[1.487,10.358],[3.618,10.794],[21.518,12.482],[9.433,14.9],[15.673,10.327],[2.436,10.897],[15.47,9.863],[-9.45,-14.217],[0.622,-15.622],[-15.719,-9.615],[-5.768,-20.898],[-23.729,-8.271]],"v":[[1728,767],[1718.964,736.036],[1704,711],[1701.656,711.656],[1699,712],[1707.084,744.168],[1719,775],[1792,804],[1813,856],[1871,876],[1874,913],[1928,935],[1884,908],[1880,867],[1823,848],[1798,793]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[13.002,18.331],[29.844,9.49],[0.81,-0.19],[-0.281,-1.615],[-30.573,-8.427],[-3.469,-25.864],[-22.797,-9.869],[-2.845,-26.155],[-15.163,-8.171],[-2.619,-10.047],[-20.469,-5.198],[10.232,13.104],[5.507,8.826],[13.667,7.333],[16.811,16.189],[17.325,11.675]],"o":[[-32.954,-6.38],[-1.003,-0.003],[-0.055,1.279],[20.459,18.541],[10.065,19.268],[20.744,11.922],[12.983,16.017],[10.844,12.489],[2.619,10.047],[11.696,13.971],[-3.993,-16.009],[-2.772,-11.562],[-14.002,-6.998],[-4.768,-28.232],[-19.318,-9.682],[-6.616,-24.718]],"v":[[1701,702],[1611,674],[1609,675],[1608,678],[1692,711],[1717,774],[1787,802],[1816,860],[1868,878],[1872,912],[1925,936],[1882,907],[1878,868],[1828,855],[1792,792],[1730,767]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[24.675,2.327],[-5.363,-9.304],[-2.046,-12.62],[-17.531,-5.469],[-14.28,-8.72],[-4.364,-11.136],[-5.729,-9.772],[-10.514,-2.986],[-9.86,-3.64],[-6.12,-12.13],[-11.266,-4.401],[5.753,10.247],[5.149,10.851],[23.062,7.605],[12.944,19.056],[26.184,16.816]],"o":[[4.503,10.163],[5.363,9.304],[13.595,9.404],[17.531,5.469],[4.817,10.683],[4.364,11.136],[10.083,3.417],[10.514,2.986],[9.254,8.08],[6.12,12.13],[-3.838,-12.162],[-5.753,-10.247],[-18.897,-11.769],[-8.091,-23.909],[-28.834,-14.166],[-7.363,-22.971]],"v":[[1570,612],[1585.842,640.158],[1598,672],[1646.487,692.513],[1696,712],[1709.316,745.184],[1724,777],[1755.168,786.332],[1786,796],[1806.991,829.259],[1831,857],[1815.983,824.017],[1799,793],[1731,769],[1702,702],[1609,666]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[10.488,-0.321],[-7.514,-2.486],[-8.131,-1.869],[-4.861,-11.139],[-5.649,-10.351],[-14.937,-5.23],[-17.836,-2.331],[-3.103,-7.231],[-9.789,-0.544],[5.038,7.129],[6.838,5.33],[12.038,3.962],[11.421,4.579],[5.09,11.076],[5.838,10.329],[9.403,3.346]],"o":[[4.813,5.187],[7.514,2.486],[6.909,9.091],[4.861,11.139],[11.416,8.751],[14.937,5.23],[5.8,4.534],[3.103,7.231],[-1.012,-11.155],[-5.038,-7.129],[-15.426,-0.574],[-12.038,-3.962],[-5.801,-10.366],[-5.09,-11.076],[-8.898,-2.936],[-9.403,-3.346]],"v":[[1528,593],[1547.012,603.989],[1571,610],[1587.945,641.055],[1603,674],[1642.685,694.815],[1692,706],[1703.008,725.992],[1720,740],[1710.37,713.131],[1692,695],[1651.497,687.503],[1617,674],[1601.027,641.472],[1585,609],[1557.693,598.558]],"c":true}],"h":1},{"t":87,"s":[{"i":[[-2.914,6.919],[3.66,-3.09],[3.265,-3.485],[3.473,-3.277],[4.284,-2.466],[6.87,3.63],[10.131,0.37],[10.357,-9.977],[6.146,-14.187],[-6.636,8.364],[-11.222,3.778],[-5.64,-4.693],[-6.118,-4.216],[-5.118,4.715],[-5.17,4.663],[-4.895,4.938]],"o":[[-4.657,2.093],[-3.66,3.09],[-3.265,3.485],[-3.473,3.277],[-3.389,-7.111],[-6.87,-3.63],[-13.427,6.907],[-10.357,9.977],[12.234,-2.766],[6.636,-8.364],[9.32,1.013],[5.64,4.693],[6.358,-3.475],[5.118,-4.715],[3.505,-6.329],[4.895,-4.938]],"v":[[3193,621],[3180.675,628.926],[3170.44,638.94],[3160.484,649.234],[3149,658],[3133.556,641.944],[3108,636],[3072.04,661.04],[3047,697],[3072.759,677.759],[3097,657],[3118.402,666.598],[3135,681],[3151.891,668.391],[3167,654],[3180.443,637.943]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[2.208,2.158],[0.083,0],[0.083,0],[0.083,0],[0.083,0],[17.226,-17.441],[16.519,-18.149],[2.785,-2.596],[-1.231,-4.147],[-3.139,1.861],[-3.256,1.745],[-8.414,9.252],[-8.323,9.344],[-6.625,6.541],[-6.953,6.214],[-2.403,2.547]],"o":[[-0.083,0],[-0.083,0],[-0.083,0],[-0.083,0],[-19.578,15.09],[-17.226,17.44],[-4.09,0.471],[-2.785,2.596],[5.186,0.187],[3.139,-1.861],[8.02,-9.647],[8.414,-9.252],[7.546,-5.62],[6.625,-6.542],[0.597,-2.655],[2.403,-2.547]],"v":[[3257,556],[3256.75,556],[3256.5,556],[3256.25,556],[3256,556],[3201.206,605.206],[3151,659],[3140.009,663.743],[3137,674],[3148.948,670.948],[3158,665],[3182.773,636.774],[3208,609],[3228.945,590.445],[3249,571],[3255.104,563.127]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[0.828,0.755],[0.667,0],[0.667,0],[0.667,0],[0.667,0],[3.639,-2.054],[3.822,-1.875],[2.772,-2.508],[0.488,-3.955],[-4.263,1.641],[-3.985,2.703],[-4.104,1.835],[-4.622,-0.963],[0.426,1.157],[0.63,0.954],[0.764,0.82]],"o":[[-0.667,0],[-0.667,0],[-0.667,0],[-0.667,0],[-2.223,3.046],[-3.639,2.054],[-3.822,1.875],[-2.772,2.508],[4.939,1.35],[4.263,-1.641],[3.985,-2.703],[4.104,-1.835],[-0.153,-1.43],[-0.426,-1.157],[-0.63,-0.954],[-0.764,-0.82]],"v":[[1390,947],[1388,947],[1386,947],[1384,947],[1382,947],[1372.898,954.447],[1361.397,960.137],[1351.198,966.509],[1346,976],[1359.704,975.08],[1371.975,968.081],[1384.009,960.791],[1397,959],[1396.114,955.136],[1394.513,951.988],[1392.405,949.345]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[-1.309,1.483],[2.577,-0.215],[2.585,-0.206],[2.51,-0.282],[2.35,-0.442],[2.105,-0.686],[1.777,-1.015],[1.364,-1.427],[0.867,-1.924],[-2.692,0.1],[-2.518,0.274],[-2.335,0.456],[-2.146,0.646],[-1.948,0.844],[-1.743,1.049],[-1.53,1.262]],"o":[[-2.484,0.308],[-2.577,0.215],[-2.585,0.206],[-2.51,0.282],[-2.35,0.442],[-2.105,0.686],[-1.777,1.015],[-1.364,1.427],[2.859,0.067],[2.692,-0.1],[2.518,-0.274],[2.335,-0.456],[2.146,-0.646],[1.948,-0.844],[1.743,-1.049],[1.53,-1.262]],"v":[[2857,612],[2849.388,612.763],[2841.624,613.374],[2833.961,614.085],[2826.651,615.151],[2819.947,616.822],[2814.102,619.352],[2809.369,622.994],[2806,628],[2814.328,627.953],[2822.145,627.395],[2829.427,626.302],[2836.15,624.65],[2842.292,622.417],[2847.83,619.58],[2852.74,616.115]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[-0.022,1.145],[1.063,-0.104],[0.827,-0.34],[0.624,-0.543],[0.454,-0.713],[0.317,-0.85],[0.212,-0.954],[0.141,-1.026],[0.102,-1.064],[-0.976,0.19],[-0.817,0.35],[-0.665,0.501],[-0.521,0.645],[-0.385,0.782],[-0.256,0.911],[-0.135,1.032]],"o":[[-1.332,-0.165],[-1.063,0.104],[-0.827,0.34],[-0.624,0.543],[-0.454,0.713],[-0.317,0.85],[-0.212,0.954],[-0.141,1.026],[1.144,-0.023],[0.976,-0.19],[0.817,-0.35],[0.665,-0.501],[0.521,-0.645],[0.385,-0.782],[0.256,-0.911],[0.135,-1.032]],"v":[[2846,1078],[2842.415,1077.915],[2839.588,1078.588],[2837.419,1079.92],[2835.811,1081.811],[2834.663,1084.164],[2833.878,1086.878],[2833.357,1089.857],[2833,1093],[2836.178,1092.678],[2838.866,1091.866],[2841.088,1090.588],[2842.866,1088.866],[2844.223,1086.723],[2845.182,1084.182],[2845.767,1081.267]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 5"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[-0.415,1.71],[1.253,0.254],[1.113,-0.063],[0.988,-0.337],[0.876,-0.568],[0.778,-0.755],[0.694,-0.899],[0.624,-0.999],[0.568,-1.057],[0.526,-1.071],[0.498,-1.041],[0.484,-0.969],[0.484,-0.853],[-1.787,0.338],[-1.562,0.563],[-1.347,0.778],[-1.141,0.984],[-0.945,1.18],[-0.759,1.366],[-0.582,1.543]],"o":[[-1.407,-0.614],[-1.253,-0.254],[-1.113,0.063],[-0.988,0.337],[-0.876,0.568],[-0.778,0.755],[-0.694,0.899],[-0.624,0.999],[-0.568,1.057],[-0.526,1.071],[-0.498,1.041],[-0.484,0.969],[2.021,-0.104],[1.787,-0.338],[1.562,-0.563],[1.347,-0.778],[1.141,-0.984],[0.945,-1.18],[0.759,-1.366],[0.582,-1.543]],"v":[[2476,1325],[2472.013,1323.708],[2468.466,1323.433],[2465.318,1324.044],[2462.527,1325.412],[2460.05,1327.407],[2457.845,1329.898],[2455.872,1332.756],[2454.087,1335.851],[2452.45,1339.053],[2450.917,1342.232],[2449.448,1345.257],[2448,1348],[2453.709,1347.334],[2458.729,1345.979],[2463.09,1343.965],[2466.818,1341.318],[2469.945,1338.07],[2472.498,1334.248],[2474.507,1329.882]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[-7.8,5.673],[3.357,2.477],[4.225,1.608],[4.381,1.453],[3.824,2.009],[0.497,-0.337],[0.487,-0.346],[0.497,-0.337],[0.525,-0.308],[1.115,-2.382],[0.986,-2.441],[1.004,-2.463],[1.166,-2.449],[2.097,-3.324],[1.908,-3.404],[1.107,-3.753],[-0.306,-4.371],[-5.302,11.948],[-9.188,7.146],[-7.08,-3.534]],"o":[[-1.776,-4.057],[-3.357,-2.477],[-4.225,-1.608],[-4.381,-1.453],[-0.525,0.308],[-0.497,0.337],[-0.487,0.346],[-0.497,0.337],[-1.388,2.286],[-1.115,2.382],[-0.986,2.441],[-1.004,2.463],[-1.673,3.514],[-2.097,3.324],[-1.908,3.404],[-1.107,3.753],[8.605,-6.062],[5.302,-11.948],[6.878,1.536],[7.08,3.534]],"v":[[2490,1018],[2482.123,1008.377],[2470.572,1002.428],[2457.486,998.014],[2445,993],[2443.472,993.971],[2442,995],[2440.528,996.029],[2439,997],[2435.282,1004.012],[2432.167,1011.256],[2429.218,1018.622],[2426,1026],[2420.192,1036.191],[2414.032,1046.215],[2409.355,1056.882],[2408,1069],[2427.063,1039.313],[2447,1008],[2467.809,1018.406]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[0.401,2.567],[5.016,0.901],[5.402,0.514],[5.56,0.356],[5.489,0.427],[7.958,-13.875],[12.185,-9.649],[7.844,2.323],[8.505,1.663],[6.803,-11.531],[5.506,-12.827],[-5.721,9.779],[-9.992,5.508],[-9.096,-2.571],[-12.479,0.813],[-7.662,13.838],[-13.449,8.051],[-9.398,-0.999],[-7.021,3.195],[-0.484,1.683]],"o":[[-4.401,-1.516],[-5.016,-0.901],[-5.402,-0.514],[-5.56,-0.356],[-12.984,8.85],[-7.958,13.875],[-9.119,-1.047],[-7.844,-2.323],[-11.283,7.05],[-6.803,11.531],[11.124,-4.375],[5.721,-9.779],[9.136,2.531],[9.096,2.571],[11.903,-9.597],[7.662,-13.838],[8.388,0.197],[9.398,0.999],[0.464,-1.702],[0.484,-1.683]],"v":[[2623,942],[2608.817,938.433],[2593.133,936.367],[2576.632,935.118],[2560,934],[2530.9,970.4],[2503,1008],[2478.039,1002.462],[2454,996],[2427.667,1024.667],[2410,1062],[2432.85,1038.35],[2454,1013],[2480.492,1021.508],[2512,1025],[2538.84,987.34],[2568,952],[2595.526,955.044],[2621,953],[2622.649,948.149]],"c":true}],"h":1},{"t":83,"s":[{"i":[[0.751,15.471],[12.202,1.131],[11.165,2.168],[8.331,-7.745],[7.845,-9.777],[7.986,-9.106],[9.011,-3.042],[11.744,0.213],[13.069,-0.831],[7.924,-13.742],[14.095,-7.572],[7.142,2.358],[9.898,-0.398],[9.151,-25.517],[-23.152,11.514],[-22.223,0.89],[-26.509,15.491],[-21.052,3.281],[-41.768,18.566],[-14.888,-0.779]],"o":[[-10.026,-3.307],[-12.202,-1.131],[-11.83,4.243],[-8.331,7.745],[-6.046,7.534],[-7.986,9.106],[-8.957,3.023],[-11.744,-0.213],[-13.207,8.46],[-7.925,13.742],[-8.535,-0.965],[-7.142,-2.358],[-21.653,16.348],[25.037,-9.63],[18.303,3.031],[25.64,-16.36],[24.915,0.582],[35.046,-25.287],[14.33,1.337],[14.361,2.956]],"v":[[2801,852],[2766.854,846.146],[2731,842],[2701.512,860.349],[2678,887],[2656.724,913.869],[2631,934],[2599.584,937.144],[2562,937],[2533.166,973.166],[2503,1008],[2480.521,1001.978],[2456,998],[2405,1063],[2459,1013],[2512,1024],[2569,955],[2638,951],[2729,861],[2770,867]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[0.667,0],[37.792,-32.209],[16.946,1.014],[8.431,-0.633],[9.502,-10.833],[17.065,-11.937],[32.667,3.454],[26.336,-12.33],[14.009,-1.507],[7.824,-11.592],[3.491,-18.176],[-23.168,10.832],[-21.362,3.826],[-21.251,14.415],[-24.137,15.604],[-30.022,16.312],[-25.26,2.647],[-17.763,20.904],[-12.142,7.192],[5.922,16.23]],"o":[[-42.973,27.028],[-18.268,-2.873],[-8.442,-0.505],[-16.508,1.239],[-16.956,19.332],[-20.301,12.189],[-26.254,12.413],[-15.711,0.364],[-15.19,1.634],[-10.339,11.327],[26.797,-7.204],[22.848,-2.033],[19.97,-15.696],[40.538,4.105],[23.597,-22.737],[23.82,4.637],[21.546,-17.12],[9.958,-9.375],[6.404,-10.488],[-0.667,0]],"v":[[2909,743],[2802,846],[2752,849],[2726,842],[2684,879],[2639,927],[2553,940],[2500,1003],[2459,993],[2431,1021],[2405,1060],[2458,1011],[2512,1021],[2556,958],[2656,937],[2722,864],[2805,865],[2860,804],[2890,776],[2911,743]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[-7.045,27.331],[8.519,-1.397],[8.367,0.857],[4.477,1.379],[4.998,-0.038],[18.697,-20.803],[23.56,-15.94],[13.833,0],[13.833,0],[11.694,-16.306],[18.611,-9.389],[8.227,-1.625],[8.347,-1.405],[7.529,-2.237],[2.562,-7.653],[-14.677,2.823],[-16.414,1.087],[-31.895,22.105],[-27.473,2.507],[-48.168,27.832]],"o":[[-8.556,-1.73],[-8.519,1.397],[-5.095,-0.522],[-4.477,-1.379],[-24.654,14.846],[-18.697,20.803],[-13.833,0],[-13.833,0],[-17.612,10.388],[-11.694,16.306],[-6.744,2.094],[-8.227,1.625],[-8.32,1.4],[-7.529,2.237],[17.881,0.38],[14.677,-2.823],[34.528,-19.471],[28.076,0.046],[44.717,-31.283],[27.721,8.042]],"v":[[3006,737],[2980.358,737.845],[2955,740],[2940.928,736.58],[2927,734],[2864.68,790.179],[2804,848],[2762.5,848],[2721,848],[2680.249,891.249],[2638,933],[2615.203,938.517],[2590,943],[2565.182,947.31],[2549,961],[2596.6,956.1],[2642,949],[2721,866],[2806,866],[2923,755]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-0.566,4.544],[9.236,-10.097],[12.652,-6.681],[12.018,1.149],[13.487,-0.321],[14.583,-14.149],[12.747,-15.971],[4.849,-5.73],[4.985,-1.543],[9.847,-0.833],[-0.069,-12.293],[-10.71,2.04],[-8.202,2.938],[-15.061,17.606],[-21.064,11.602],[-11.952,-0.881],[-13.095,0.262],[-9.127,8.848],[-8.248,8.986],[-2.907,3.349]],"o":[[-13.403,5.931],[-9.236,10.097],[-13.44,0.274],[-12.018,-1.149],[-17.921,9.432],[-14.583,14.149],[-3.62,4.536],[-4.849,5.73],[-7.683,2.377],[-9.847,0.833],[10.957,3.098],[10.71,-2.04],[13.692,-18.975],[15.061,-17.606],[13.095,-0.262],[11.952,0.881],[11.242,-6.623],[9.127,-8.848],[2.807,-3.058],[2.907,-3.349]],"v":[[3060,690],[3027.937,715.938],[2997,743],[2959.535,740.965],[2922,739],[2873.619,775.096],[2833,821],[2820.024,837.745],[2805,850],[2775.686,851.563],[2758,868],[2791.067,868.527],[2820,860],[2861.971,803.971],[2915,759],[2952,760.5],[2989,762],[3019.245,738.272],[3045,711],[3054.181,701.615]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[-1.073,8.775],[0.167,0],[0.167,0],[0.167,0],[0.167,0],[4.145,-6.355],[5.543,-4.957],[12.184,-2.982],[12.003,-3.163],[7.424,-12.076],[4.007,-15.493],[8.226,-2.441],[1.869,-8.797],[-8.522,4.311],[-5.797,7.036],[-6.262,10.571],[-9.761,7.072],[-11.46,3.207],[-11.188,3.479],[-5.251,7.158]],"o":[[-0.167,0],[-0.167,0],[-0.167,0],[-0.167,0],[-5.878,4.622],[-4.145,6.355],[-11.259,3.908],[-12.184,2.982],[-10.297,9.202],[-7.424,12.076],[-5.227,5.439],[-8.226,2.441],[12.114,-0.719],[8.522,-4.311],[3.191,-13.642],[6.262,-10.571],[11.972,-2.694],[11.46,-3.207],[4.921,-6.591],[5.251,-7.158]],"v":[[2708,707],[2707.5,707],[2707,707],[2706.5,707],[2706,707],[2691.749,724.249],[2678,742],[2642.558,752.059],[2606,761],[2579.282,792.782],[2562,834],[2539.481,843.482],[2522,858],[2552.738,850.238],[2574,833],[2588.073,796.573],[2612,770],[2647.089,761.089],[2681,751],[2697.386,730.638]],"c":true}],"h":1},{"t":87,"s":[{"i":[[-1.855,8.978],[4.735,-0.446],[4.581,-0.587],[4.556,-0.222],[4.659,0.648],[4.453,-6.13],[4.098,-6.486],[4.72,-5.863],[6.322,-4.262],[8.604,-1.646],[7.132,-3.118],[4.837,-5.413],[1.718,-8.532],[-2.229,3.938],[-3.163,3.004],[-12.726,2.107],[-11.497,3.337],[-7.666,12.001],[-11.489,8.177],[-9.885,0.949]],"o":[[-5.017,-0.199],[-4.735,0.446],[-4.581,0.587],[-4.556,0.222],[-5.787,4.796],[-4.453,6.13],[-4.098,6.486],[-4.72,5.863],[-9.254,0.996],[-8.604,1.646],[-7.132,3.118],[-4.837,5.413],[4.92,-1.246],[2.229,-3.938],[9.599,-5.234],[12.726,-2.107],[9.847,-9.82],[7.666,-12.001],[9.607,-1.226],[9.884,-0.949]],"v":[[2781,672],[2766.404,672.498],[2752.463,674.174],[2738.79,675.513],[2725,675],[2709.883,691.633],[2697.301,710.801],[2684.319,729.569],[2668,745],[2641.007,748.757],[2617.196,755.696],[2599.038,768.288],[2589,789],[2598.818,780.318],[2606,769],[2640.577,759.077],[2678,752],[2702.768,717.768],[2730,686],[2761.314,684.814]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[-1.747,3.42],[2.057,-1.943],[1.491,-2.509],[1.814,-2.186],[3.025,-0.975],[8.956,-1.021],[7.158,-3.235],[4.249,-5.721],[0.226,-8.481],[-2.285,2.215],[-1.473,3.027],[-1.827,2.673],[-3.346,1.154],[-4.077,0.348],[-4.156,0.248],[-4.126,-0.099],[-3.987,-0.694],[-2.491,2.676],[-2.014,3.152],[-1.766,3.4]],"o":[[-3.51,0.49],[-2.057,1.943],[-1.491,2.509],[-1.814,2.186],[-9.64,-0.92],[-8.956,1.021],[-7.158,3.235],[-4.249,5.721],[4.262,-0.238],[2.285,-2.215],[1.473,-3.027],[1.827,-2.673],[3.89,-0.202],[4.077,-0.348],[4.156,-0.248],[4.126,0.099],[3.196,-1.971],[2.491,-2.676],[2.014,-3.152],[1.766,-3.4]],"v":[[2800,648],[2791.872,651.872],[2786.773,658.772],[2782.037,666.037],[2775,671],[2746.828,671.083],[2722.379,677.399],[2704.991,690.765],[2698,712],[2707.528,708.028],[2712.874,699.874],[2717.532,691.032],[2725,685],[2736.978,684.113],[2749.354,683.157],[2761.803,682.872],[2774,684],[2782.473,676.973],[2789.174,668.174],[2794.788,658.288]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-2.723,5.61],[0.434,0.149],[0.412,0.172],[0.522,0.062],[0.764,-0.18],[3.095,-3.989],[2.972,-4.112],[2.766,-4.317],[2.479,-4.605],[0.615,0.178],[0.708,0],[0.615,-0.178],[0.333,-0.357],[-0.322,-1.094],[-0.619,-0.798],[-0.862,-0.555],[-1.052,-0.364],[-3.823,4.51],[-3.337,4.996],[-2.97,5.363]],"o":[[-0.589,0.005],[-0.434,-0.149],[-0.412,-0.172],[-0.522,-0.062],[-3.135,3.948],[-3.095,3.989],[-2.972,4.112],[-2.766,4.317],[-0.333,-0.357],[-0.615,-0.178],[-0.708,0],[-0.615,0.178],[-0.026,1.443],[0.322,1.094],[0.619,0.798],[0.862,0.555],[4.428,-3.905],[3.823,-4.51],[3.337,-4.996],[2.97,-5.363]],"v":[[2823,1057],[2821.498,1056.752],[2820.262,1056.237],[2818.895,1055.855],[2817,1056],[2807.635,1067.885],[2798.515,1080.015],[2789.888,1092.638],[2782,1106],[2780.531,1105.197],[2778.5,1104.93],[2776.469,1105.197],[2775,1106],[2775.457,1109.793],[2776.882,1112.619],[2779.116,1114.635],[2782,1116],[2794.348,1103.347],[2805.058,1089.058],[2814.489,1073.489]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[1.551,1.366],[-0.442,-1.503],[-0.518,-1.426],[-0.592,-1.352],[-0.663,-1.282],[-0.731,-1.214],[-0.796,-1.149],[-0.857,-1.087],[-0.916,-1.028],[-0.972,-0.972],[-1.025,-0.919],[-1.075,-0.869],[-1.122,-0.822],[0.454,2.463],[0.829,2.088],[1.131,1.785],[1.361,1.556],[1.518,1.399],[1.601,1.315],[1.612,1.304]],"o":[[0.362,1.582],[0.442,1.503],[0.518,1.426],[0.592,1.352],[0.663,1.282],[0.731,1.214],[0.796,1.149],[0.857,1.087],[0.916,1.028],[0.972,0.972],[1.025,0.919],[1.075,0.869],[-0.006,-2.911],[-0.454,-2.463],[-0.829,-2.088],[-1.131,-1.785],[-1.361,-1.556],[-1.518,-1.399],[-1.601,-1.315],[-1.612,-1.304]],"v":[[1330,935],[1331.206,939.627],[1332.647,944.019],[1334.314,948.186],[1336.197,952.136],[1338.288,955.878],[1340.579,959.422],[1343.059,962.775],[1345.72,965.946],[1348.554,968.946],[1351.551,971.782],[1354.703,974.464],[1358,977],[1357.292,968.958],[1355.349,962.151],[1352.391,956.359],[1348.634,951.366],[1344.299,946.951],[1339.602,942.898],[1334.763,938.987]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[0.222,0.111],[0.665,-0.669],[0.782,-0.551],[0.824,-0.51],[0.788,-0.545],[0.676,-0.658],[0.487,-0.847],[0.221,-1.113],[-0.122,-1.455],[-0.986,0.347],[-0.917,0.416],[-0.828,0.505],[-0.719,0.614],[-0.591,0.742],[-0.443,0.891],[-0.274,1.059],[-0.086,1.247],[0.128,0.205],[0.181,0.152],[0.213,0.121]],"o":[[-0.47,0.863],[-0.665,0.669],[-0.782,0.551],[-0.824,0.51],[-0.788,0.545],[-0.676,0.658],[-0.487,0.847],[-0.221,1.113],[1.035,-0.298],[0.986,-0.347],[0.917,-0.416],[0.828,-0.505],[0.72,-0.614],[0.591,-0.742],[0.443,-0.891],[0.274,-1.059],[-0.053,-0.281],[-0.128,-0.205],[-0.181,-0.152],[-0.213,-0.121]],"v":[[1326,1506],[1324.279,1508.279],[1322.09,1510.089],[1319.662,1511.661],[1317.225,1513.225],[1315.011,1515.01],[1313.248,1517.248],[1312.168,1520.168],[1312,1524],[1315.038,1523.037],[1317.898,1521.897],[1320.52,1520.52],[1322.847,1518.847],[1324.818,1516.817],[1326.373,1514.373],[1327.454,1511.453],[1328,1508],[1327.724,1507.276],[1327.255,1506.745],[1326.658,1506.342]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 6"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[0.21,1.817],[1.1,-1.072],[0.895,-1.411],[0.678,-1.669],[0.449,-1.844],[0.208,-1.937],[-0.045,-1.948],[-0.31,-1.877],[-0.587,-1.724],[-1.249,0.861],[-0.854,1.316],[-0.521,1.666],[-0.251,1.909],[-0.042,2.045],[0.104,2.075],[0.188,1.999]],"o":[[-1.293,0.651],[-1.1,1.072],[-0.895,1.411],[-0.678,1.669],[-0.449,1.844],[-0.208,1.937],[0.045,1.948],[0.31,1.877],[1.707,-0.299],[1.249,-0.861],[0.854,-1.316],[0.521,-1.666],[0.251,-1.909],[0.042,-2.045],[-0.104,-2.075],[-0.188,-1.999]],"v":[[1803,1381],[1799.408,1383.605],[1796.414,1387.351],[1794.053,1391.991],[1792.361,1397.28],[1791.373,1402.972],[1791.127,1408.82],[1791.657,1414.578],[1793,1420],[1797.419,1418.234],[1800.559,1414.942],[1802.607,1410.442],[1803.749,1405.054],[1804.174,1399.097],[1804.066,1392.89],[1803.612,1386.751]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[0.407,2.011],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.296,-2.683],[-0.245,-2.618],[-1.043,-2.001],[-2.099,-0.833],[-0.182,2.284],[-0.028,2.363],[0.168,2.272]],"o":[[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.579,2.196],[-0.296,2.683],[0.245,2.618],[1.043,2.001],[0.294,-2.036],[0.182,-2.284],[0.028,-2.363],[-0.168,-2.272]],"v":[[2328,1037],[2327.375,1037],[2326.75,1037],[2326.125,1037],[2325.5,1037],[2324.875,1037],[2324.25,1037],[2323.625,1037],[2323,1037],[2321.623,1044.455],[2321.483,1052.543],[2323.351,1059.61],[2328,1064],[2328.725,1057.477],[2329.052,1050.463],[2328.852,1043.468]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-0.833,2.964],[3.74,0.585],[3.962,0.02],[3.367,-0.825],[1.953,-1.949],[0.747,-4.439],[0.784,-4.334],[-0.105,-4.103],[-1.92,-3.747],[-0.737,3.93],[-0.43,4.237],[-0.603,4.063],[-1.257,3.41],[-3.508,-0.312],[-3.268,-0.059],[-2.376,1.033]],"o":[[-2.698,-0.87],[-3.74,-0.585],[-3.962,-0.02],[-3.367,0.825],[0.215,4.418],[-0.747,4.439],[-0.784,4.334],[0.105,4.103],[1.524,-3.143],[0.737,-3.93],[0.43,-4.237],[0.603,-4.063],[3.095,-0.274],[3.508,0.312],[3.268,0.059],[2.376,-1.033]],"v":[[2368,1006],[2358.138,1003.748],[2346.381,1002.771],[2335.183,1003.909],[2327,1008],[2325.97,1021.316],[2323.443,1034.506],[2322.194,1047.193],[2325,1059],[2328.27,1048.27],[2329.9,1035.9],[2331.33,1023.33],[2334,1012],[2344.067,1012.268],[2354.394,1013.035],[2363.023,1011.785]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-4.135,11.577],[1.896,0.437],[2.345,-0.011],[7.67,-1.664],[6.149,-3.184],[2.083,-9.75],[3.694,-8.14],[6.773,-0.894],[7.086,-0.58],[1.902,-9.014],[-0.382,-8.717],[-1.746,8.421],[-5.963,4.204],[-7.116,1.051],[-5.921,2.245],[-9.022,14.978]],"o":[[-0.07,-2.263],[-1.896,-0.437],[-6.172,3.161],[-7.67,1.664],[-3.975,7.859],[-2.083,9.75],[-6.822,0.845],[-6.773,0.894],[-3.773,6.228],[-1.902,9.014],[6.053,-4.113],[1.746,-8.421],[8.614,0.447],[7.116,-1.05],[8.776,-15.225],[13.054,-5.979]],"v":[[2445,934],[2441.706,930.295],[2435,930],[2413.483,936.483],[2392,943],[2383.789,970.289],[2376,998],[2355.699,1000.699],[2335,1003],[2326.384,1026.634],[2324,1054],[2333.568,1033.067],[2343,1012],[2366.519,1011.02],[2386,1006],[2403,951]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[3.056,-0.722],[10.856,-2.311],[9.384,-3.783],[5.398,-12.602],[8.502,-9.498],[9.408,-3.092],[7.717,-4.783],[7.343,-14.324],[11.8,-3.867],[3.491,-20.176],[-15.338,8.662],[-10.928,4.738],[-6.447,15.552],[-15.149,12.851],[-17.154,15.512],[-2.935,20.755]],"o":[[-9.193,3.974],[-10.856,2.311],[-8.905,9.096],[-5.398,12.602],[-8.65,3.85],[-9.408,3.092],[-6.037,15.63],[-10.757,4.909],[-8.962,14.705],[17.063,-6.937],[15.491,-0.175],[8.107,-13.893],[18.086,-9.914],[11.908,-20.758],[18.918,-8.099],[-2.356,0.022]],"v":[[2548,839],[2517.143,847.643],[2486,856],[2466.198,890.198],[2447,925],[2419.301,934.801],[2393,946],[2378,996],[2338,1003],[2319,1055],[2347,1011],[2387,1004],[2403,954],[2461,928],[2495,864],[2554,840]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[0.667,0],[20.031,-21.302],[25.572,-0.428],[9.195,-21.471],[27.649,-5.685],[3.889,-16.111],[11.324,-3.01],[3.176,-20.825],[-11.645,10.355],[-10.984,5.682],[-7.649,12.018],[-18.463,16.203],[-11.45,14.883],[-18.432,16.568],[-2.763,9.237],[0.045,20.075]],"o":[[-25.559,15.774],[-21.153,4.847],[-15.265,15.402],[-17.233,16.1],[-7.574,12.425],[-9.948,4.385],[-10.929,13.071],[16.659,-5.341],[12.329,-4.338],[5.759,-13.908],[28.925,-5.742],[7.433,-18.901],[27.713,-7.287],[2.841,-9.159],[6.773,-16.583],[-0.667,0]],"v":[[2601,765],[2550,838],[2488,854],[2456,914],[2389,947],[2376,994],[2339,1000],[2319,1052],[2344,1011],[2386,1003],[2398,956],[2466,920],[2492,867],[2568,838],[2578,812],[2603,765]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[2.333,0],[11.618,-3.049],[11.965,-2.702],[7.547,-13.787],[10.033,-11.301],[12.756,-3.578],[10.921,-5.412],[13.089,-16.245],[12.435,-20.565],[-23.574,11.093],[-10.709,17.958],[-22.681,9.986],[-23.808,18.192],[-5.03,-0.697],[-9.764,4.088],[-1.608,10.974]],"o":[[-9.564,5.102],[-11.618,3.049],[-10.78,10.553],[-7.547,13.787],[-11.056,5.277],[-12.756,3.578],[-11.379,17.954],[-20.069,12.932],[26.881,-7.786],[10.682,-17.985],[26.332,-6.335],[17.838,-24.163],[5.03,0.697],[9.566,-3.75],[9.069,-3.797],[-2.333,0]],"v":[[2675,739],[2642.801,750.801],[2607,759],[2580.939,796.939],[2556,836],[2519.399,848.399],[2483,861],[2455,921],[2394,959],[2465,926],[2492,867],[2566,843],[2616,767],[2628,766],[2659,757],[2682,739]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[7.371,4.129],[7.919,-3.414],[10.914,-0.419],[7.858,10.975],[13.076,5.757],[5.395,-1.605],[1.236,-5.764],[-5.033,1.508],[-4.861,0.622],[-7.652,-10.848],[-11.582,-6.918],[-9.009,3.324],[-8.913,3.42],[-3.886,-4.614],[-7.622,-0.878],[6.479,5.021]],"o":[[-7.408,3.926],[-7.92,3.414],[-11.49,-7.343],[-7.858,-10.975],[-5.184,1.816],[-5.395,1.605],[5.006,2.653],[5.033,-1.508],[9.81,8.69],[7.652,10.848],[12.05,-0.284],[9.009,-3.324],[5.833,2.667],[3.886,4.614],[-0.712,-10.788],[-6.479,-5.021]],"v":[[1573,1020],[1550.63,1031.63],[1523,1038],[1496.189,1008.311],[1467,981],[1450.039,985.039],[1439,995],[1454.109,995.456],[1469,991],[1493.671,1021.829],[1521,1050],[1551.853,1043.853],[1578,1033],[1591.158,1045.342],[1607,1055],[1594.995,1032.505]],"c":true}],"h":1},{"t":87,"s":[{"i":[[16.902,9.098],[-5.604,-9.396],[-5.173,-9.827],[-7.915,2.751],[-8.682,1.985],[-6.678,-10.321],[-13.066,-3.934],[-1.879,0.621],[-0.972,1.528],[-1.43,1.418],[1.979,0.164],[2.448,-0.718],[2.601,-0.566],[6.314,10.519],[9.329,7.504],[21.692,1.341]],"o":[[2.412,12.588],[5.604,9.396],[9.657,-1.01],[7.916,-2.751],[9.22,7.781],[6.678,10.321],[2.513,0.013],[1.879,-0.621],[1.257,-0.164],[1.43,-1.418],[-3.606,-0.44],[-2.448,0.718],[-10.416,-6.418],[-6.314,-10.519],[-20.695,-6.878],[-8.758,-17.242]],"v":[[1390,949],[1402.929,981.071],[1420,1009],[1445.731,1002.731],[1470,995],[1491.615,1024.385],[1519,1048],[1525.656,1047.156],[1530,1044],[1534.927,1041],[1535,1038],[1526.245,1038.745],[1519,1041],[1495.685,1013.814],[1474,985],[1421,996]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[4.043,-0.29],[2.635,4.865],[2.287,5.212],[2.884,4.616],[4.424,3.076],[2.059,-0.858],[1.923,-0.994],[1.403,-1.514],[0.499,-2.418],[-3.128,1.235],[-3.62,-0.029],[-5.438,-10.062],[-10.076,-5.424],[-4.125,3.081],[3.802,6.264],[2.507,-1.827]],"o":[[-3.926,-3.574],[-2.635,-4.865],[-2.287,-5.212],[-2.884,-4.616],[-1.811,1.106],[-2.059,0.858],[-1.923,0.994],[-1.403,1.514],[3.87,1.911],[3.128,-1.235],[5.171,10.329],[5.438,10.062],[4.301,-1.413],[4.125,-3.081],[-4.929,-0.596],[-2.507,1.827]],"v":[[1425,1001],[1415.394,988.106],[1408.246,972.754],[1400.725,957.775],[1390,946],[1384.1,948.85],[1378.032,951.532],[1372.948,955.198],[1370,961],[1380.187,960.912],[1390,958],[1404.822,989.678],[1427,1014],[1441.577,1007.638],[1444,994],[1433.836,996.835]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-5,-0.5],[-1.186,0.897],[-0.484,1.6],[-0.056,2.028],[0.098,2.182],[2.085,3.831],[2.53,3.386],[2.93,2.987],[3.284,2.633],[0.171,0.079],[0.137,0.113],[0.147,0.103],[0.202,0.048],[-3.115,-6.394],[-2.859,-5.416],[-1.503,-3.997]],"o":[[2.163,0.08],[1.186,-0.897],[0.484,-1.6],[0.056,-2.028],[-1.594,-4.322],[-2.085,-3.831],[-2.53,-3.386],[-2.93,-2.987],[-0.251,0.001],[-0.171,-0.079],[-0.137,-0.113],[-0.147,-0.103],[-4.318,8.009],[3.115,6.394],[1.989,3.511],[1.503,3.997]],"v":[[1019,1277],[1023.955,1275.705],[1026.391,1271.892],[1027.132,1266.382],[1027,1260],[1021.47,1247.78],[1014.535,1236.965],[1006.333,1227.418],[997,1219],[996.378,1218.872],[995.928,1218.572],[995.513,1218.237],[995,1218],[995.117,1239.445],[1006,1257],[1010.242,1269.258]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[3.136,1.697],[0.028,-0.305],[0.145,-0.188],[0.217,-0.116],[0.244,-0.089],[0.227,-0.107],[0.165,-0.169],[0.058,-0.276],[-0.094,-0.427],[-1.815,-2.851],[-2.529,-2.138],[-3.074,-1.592],[-3.451,-1.216],[1.511,3.322],[2.394,2.439],[2.936,1.897]],"o":[[0.133,0.466],[-0.028,0.305],[-0.145,0.188],[-0.217,0.116],[-0.244,0.089],[-0.227,0.107],[-0.165,0.169],[-0.058,0.276],[0.933,3.734],[1.815,2.851],[2.529,2.138],[3.074,1.592],[-0.286,-4.548],[-1.511,-3.322],[-2.394,-2.439],[-2.936,-1.897]],"v":[[2811,1061],[2811.146,1062.146],[2810.874,1062.874],[2810.32,1063.32],[2809.617,1063.617],[2808.9,1063.9],[2808.302,1064.302],[2807.957,1064.957],[2808,1066],[2812.164,1075.835],[2818.723,1083.277],[2827.17,1088.83],[2837,1093],[2834.219,1081.281],[2828.275,1072.724],[2820.194,1066.306]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[-0.922,-0.163],[0.272,0.955],[0.501,0.802],[0.694,0.635],[0.849,0.454],[0.967,0.259],[1.048,0.05],[1.092,-0.173],[1.099,-0.41],[-0.202,-0.708],[-0.521,-0.578],[-0.767,-0.466],[-0.941,-0.37],[-1.044,-0.292],[-1.075,-0.232],[-1.034,-0.189]],"o":[[-0.005,-1.095],[-0.272,-0.955],[-0.501,-0.802],[-0.694,-0.635],[-0.849,-0.454],[-0.967,-0.259],[-1.048,-0.05],[-1.092,0.173],[-0.188,0.856],[0.202,0.708],[0.521,0.578],[0.767,0.466],[0.941,0.37],[1.044,0.292],[1.075,0.232],[1.034,0.189]],"v":[[2958,1686],[2957.576,1682.921],[2956.408,1680.281],[2954.606,1678.122],[2952.282,1676.486],[2949.547,1675.414],[2946.515,1674.948],[2943.295,1675.129],[2940,1676],[2940.04,1678.343],[2941.143,1680.268],[2943.092,1681.83],[2945.673,1683.079],[2948.669,1684.068],[2951.866,1684.85],[2955.048,1685.477]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 7"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[1.692,0.725],[-0.526,-1.622],[-0.625,-1.523],[-0.749,-1.399],[-0.9,-1.248],[-1.078,-1.071],[-1.281,-0.867],[-1.51,-0.638],[-1.766,-0.382],[-2.048,-0.1],[0.677,1.74],[0.909,1.508],[1.112,1.305],[1.286,1.131],[1.431,0.986],[1.547,0.87],[1.634,0.783]],"o":[[0.454,1.694],[0.526,1.622],[0.625,1.523],[0.749,1.399],[0.9,1.248],[1.078,1.071],[1.281,0.867],[1.51,0.638],[1.766,0.382],[-0.416,-2.001],[-0.677,-1.74],[-0.909,-1.508],[-1.112,-1.305],[-1.286,-1.131],[-1.431,-0.986],[-1.547,-0.87],[-1.634,-0.783]],"v":[[2071,1430],[2072.463,1434.981],[2074.183,1439.706],[2076.237,1444.096],[2078.705,1448.072],[2081.666,1451.557],[2085.197,1454.47],[2089.377,1456.734],[2094.285,1458.27],[2100,1459],[2098.355,1453.395],[2095.97,1448.53],[2092.932,1444.318],[2089.328,1440.672],[2085.246,1437.504],[2080.773,1434.727],[2075.995,1432.255]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[-0.822,0.72],[1.31,-0.102],[1.212,-0.27],[1.094,-0.42],[0.957,-0.554],[0.8,-0.67],[0.624,-0.769],[0.427,-0.85],[0.212,-0.914],[-0.023,-0.961],[-1.356,0.186],[-1.09,0.451],[-0.888,0.654],[-0.748,0.793],[-0.672,0.87],[-0.659,0.883],[-0.709,0.833]],"o":[[-1.389,-0.084],[-1.31,0.102],[-1.212,0.27],[-1.094,0.42],[-0.957,0.554],[-0.8,0.67],[-0.624,0.769],[-0.427,0.85],[-0.212,0.914],[1.685,0.143],[1.356,-0.186],[1.09,-0.451],[0.888,-0.654],[0.748,-0.793],[0.672,-0.87],[0.659,-0.883],[0.709,-0.833]],"v":[[1849,1112],[1844.947,1112.031],[1841.159,1112.593],[1837.695,1113.632],[1834.613,1115.098],[1831.973,1116.937],[1829.833,1119.099],[1828.252,1121.532],[1827.288,1124.183],[1827,1127],[1831.545,1126.92],[1835.199,1125.949],[1838.151,1124.276],[1840.59,1122.09],[1842.705,1119.58],[1844.685,1116.935],[1846.721,1114.346]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[3.096,0.904],[-0.448,-3.218],[-1.003,-2.663],[-1.454,-2.212],[-1.801,-1.866],[-2.044,-1.623],[-3.975,1.692],[-3.953,1.714],[-3.377,2.29],[-2.246,3.421],[3.58,-1.337],[3.295,-1.621],[3.318,-1.599],[3.646,-1.27],[1.034,2.966],[1.057,2.943],[1.745,2.255]],"o":[[-0.211,3.878],[0.448,3.218],[1.003,2.663],[1.454,2.212],[1.801,1.866],[3.441,-2.225],[3.975,-1.692],[3.953,-1.714],[3.377,-2.29],[-4.172,0.745],[-3.58,1.337],[-3.295,1.621],[-3.318,1.599],[-1.675,-2.325],[-1.034,-2.966],[-1.057,-2.943],[-1.745,-2.255]],"v":[[1785,1102],[1785.382,1112.618],[1787.585,1121.414],[1791.298,1128.702],[1796.207,1134.793],[1802,1140],[1813.263,1134.263],[1825.293,1129.293],[1836.427,1123.427],[1845,1115],[1833.449,1118.199],[1823.212,1122.713],[1813.369,1127.62],[1803,1132],[1799.103,1123.897],[1796.132,1114.868],[1792.095,1106.905]],"c":true}],"h":1},{"t":83,"s":[{"i":[[15.839,4.828],[0.264,-0.57],[-0.212,-1.045],[-5.165,-7.002],[-8.017,-4.149],[-7.166,3.167],[-7.899,2.434],[-3.711,-6.622],[-5.749,-4.584],[-6.475,1.917],[-4.455,2.623],[-1.503,1.271],[1.311,1.15],[6.124,-2.043],[7.193,-0.974],[14.65,7.683],[16.809,-3.525]],"o":[[-0.157,0.676],[-0.264,0.57],[4.323,7.844],[5.165,7.002],[8.436,-1.898],[7.166,-3.167],[5.405,4.928],[3.711,6.622],[5.644,-1.711],[6.475,-1.917],[1.3,-0.765],[1.503,-1.271],[-8.311,-0.144],[-6.124,2.042],[-6.269,-16.064],[-16.809,3.525],[-12.362,-8.305]],"v":[[1695,1073],[1694.223,1074.723],[1694,1077],[1707.729,1099.771],[1727,1117],[1749.902,1108.902],[1772,1100],[1784.742,1118.258],[1798,1136],[1816.892,1130.684],[1834,1124],[1838.958,1120.788],[1840,1117],[1819.161,1120.662],[1800,1126],[1772,1087],[1727,1103]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[22.678,-0.323],[5.762,9.072],[11.543,3.291],[0.173,-0.327],[-0.082,-0.581],[0.173,-0.327],[-0.082,-0.581],[-22.107,-10.559],[-21.933,0.733],[-19.821,-8.513],[-15.103,3.563],[-11.098,-8.568],[-10.721,10.279],[14.258,-1],[18.22,4.447],[16.925,-1.409],[19.27,6.397]],"o":[[-9.411,-5.423],[-5.762,-9.072],[-0.39,0.11],[-0.173,0.327],[-0.39,0.11],[-0.173,0.327],[16.035,16.632],[23.804,1.137],[19.387,8.946],[13.207,-5.46],[13.127,6.539],[18.607,-2.393],[-15.536,-3.515],[-13.183,-9.484],[-15.824,2.51],[-17.099,-8.568],[-24.614,-1.614]],"v":[[1629,1076],[1608.599,1051.901],[1585,1031],[1584.146,1031.647],[1584,1033],[1583.146,1033.647],[1583,1035],[1627,1089],[1682,1076],[1728,1115],[1769,1100],[1795,1133],[1845,1120],[1801,1123],[1769,1087],[1727,1100],[1686,1064]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[20.696,-0.454],[32.046,4.621],[10.436,-3.897],[1.439,-9.561],[-10.403,3.148],[-9.814,1.147],[-15.006,-16.994],[-24.407,-1.74],[-7.003,-3.997],[-9.75,-4.302],[-14.37,2.963],[-13.24,-6.094],[-9.383,10.283],[14.871,0.323],[15.186,6.148],[15.097,-1.903],[25.034,2.662]],"o":[[-18.92,-17.746],[-8.433,5.901],[-10.477,0.523],[6.259,11.24],[10.761,-3.256],[17.32,14.68],[22.259,-0.408],[7.767,3.233],[8.916,8.456],[16.918,-0.415],[11.372,7.961],[16.685,-2.982],[-12.788,-7.542],[-11.698,-9.635],[-13.381,3.619],[-18.209,-11.225],[-18.81,-2]],"v":[[1629,1076],[1571,1024],[1541,1037],[1517,1046],[1548,1049],[1580,1038],[1625,1089],[1683,1079],[1704,1091],[1732,1117],[1770,1103],[1796,1135],[1842,1122],[1799,1124],[1770,1089],[1734,1104],[1679,1064]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[25.931,6.402],[0,-0.667],[0,-0.667],[-1.873,-2.3],[-1.938,-2.257],[-5.816,-7.19],[-6.664,-6.167],[-9.604,3.063],[-11.247,1.419],[-24.349,-11.317],[-18.627,1.039],[-24.08,-7.253],[8.596,8.404],[12.077,5.256],[17.189,-4.145],[23.441,12.226],[21.606,-3.06]],"o":[[0,0.667],[0,0.667],[1.571,2.543],[1.873,2.3],[6.073,7.075],[5.816,7.19],[12.338,-0.329],[9.604,-3.063],[21.602,14.065],[15.978,-3.688],[23.363,7.971],[-2.166,-14.834],[-10.086,-7.247],[-19.574,1.759],[-18.137,-17.529],[-20.903,3.764],[-16.554,-15.779]],"v":[[1468,988],[1468,990],[1468,992],[1473.225,999.214],[1479,1006],[1496.556,1027.681],[1515,1048],[1546.818,1041.818],[1577,1034],[1631,1087],[1676,1073],[1734,1109],[1709,1083],[1679,1061],[1629,1075],[1576,1021],[1517,1036]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[11.681,-4.652],[5.519,5.755],[8.079,2.98],[7.464,-6.182],[4.837,-6.443],[3.368,-3.794],[2.932,-0.363],[4.547,2.634],[5.251,-3.846],[-7.323,-2.177],[-8.9,-0.6],[-7.129,8.038],[-10.195,4.972],[-7.86,-5.807],[-11.66,-2.006],[-5.339,5.493],[0.497,7.833]],"o":[[-9.845,-3.001],[-5.519,-5.755],[-11.308,-4.171],[-7.464,6.182],[-2.597,3.459],[-3.368,3.794],[-5.562,0.689],[-4.547,-2.634],[0.806,8.693],[7.323,2.177],[5.289,-9.878],[7.129,-8.037],[9.901,3.766],[7.86,5.807],[4.14,-3.197],[5.339,-5.493],[-12.302,4.031]],"v":[[2705,1116],[2683.675,1101.485],[2665,1087],[2637.147,1092.54],[2619,1114],[2609.751,1125.822],[2600,1133],[2585.266,1127.633],[2571,1127],[2584.43,1142.07],[2610,1145],[2628.32,1117.82],[2654,1098],[2679.181,1113.82],[2707,1127],[2722.977,1113.977],[2732,1094]],"c":true}],"h":1},{"t":87,"s":[{"i":[[-8.034,-2.632],[3.311,5.245],[4.378,4.178],[3.4,5.155],[7.083,-8.417],[10.331,-5.169],[6.76,5.739],[11.584,0.916],[3.312,-3.355],[1.625,-5.042],[-1.973,2.527],[-4.114,0.385],[-6.825,-7.253],[-11.034,-2.141],[-6.841,7.992],[-8.894,5.939],[-4.558,-6.109]],"o":[[-0.2,-8.356],[-3.311,-5.245],[-4.378,-4.178],[-10.338,5.162],[-7.083,8.417],[-7.374,-5.126],[-6.761,-5.739],[-4.128,2.539],[-3.312,3.355],[4.994,0.494],[1.973,-2.527],[11.664,-0.153],[6.825,7.253],[9.742,-5.091],[6.841,-7.992],[4.734,5.932],[4.558,6.109]],"v":[[2781,1116],[2775.222,1096.111],[2763.178,1082.488],[2751,1069],[2726.494,1090.994],[2702,1113],[2682.158,1095.342],[2656,1084],[2644.623,1092.623],[2637,1105],[2646.159,1100.659],[2654,1095],[2679.472,1108.78],[2704,1126],[2727.636,1105.136],[2750,1083],[2763.025,1101.975]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[4.2,-1.3],[3.064,4.936],[4.077,3.923],[5.919,2.081],[3.956,-4.544],[-0.559,-9.059],[-2.136,4.031],[-4.823,1.343],[-2.672,-3.257],[-2.838,-4.139],[-2.926,-4.37],[-2.53,0.056],[-1.249,1.303],[-0.711,0.78],[-2.21,3.922],[-1.806,3.633],[2.186,-3.314]],"o":[[-2.881,-5.119],[-3.064,-4.936],[-4.077,-3.923],[-4.735,3.765],[-3.956,4.544],[6.632,0.466],[2.136,-4.031],[3.474,1.833],[2.672,3.257],[1.767,2.577],[2.926,4.37],[0.293,-0.006],[1.249,-1.303],[3.354,-3.678],[2.21,-3.922],[-6.057,-0.557],[-2.186,3.314]],"v":[[2781,1104],[2772.29,1088.71],[2761.786,1075.214],[2747,1066],[2733.03,1077.53],[2727,1097],[2738.357,1089.857],[2747,1080],[2755.977,1087.771],[2764,1099],[2771.428,1110.975],[2780,1119],[2782.687,1116.58],[2786,1113],[2794.16,1101.466],[2800,1090],[2789.107,1095.608]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[0.028,1.361],[0.532,0.135],[0.571,0.096],[0.617,0.05],[0.67,-0.003],[0.728,-0.062],[4.582,-5.251],[4.504,-5.329],[4.295,-5.539],[3.954,-5.88],[-4.85,4.316],[-4.078,5.089],[-3.939,5.228],[-4.432,4.735],[-1.047,0.286],[-0.623,0.711],[-0.264,1.069]],"o":[[-0.498,-0.168],[-0.532,-0.135],[-0.571,-0.096],[-0.617,-0.05],[-0.67,0.003],[-4.529,5.304],[-4.582,5.251],[-4.504,5.329],[-4.295,5.539],[6.255,-2.911],[4.85,-4.316],[4.078,-5.089],[3.939,-5.228],[1.538,0.205],[1.047,-0.286],[0.623,-0.711],[0.264,-1.069]],"v":[[1400,1468],[1398.457,1467.543],[1396.804,1467.196],[1395.024,1466.976],[1393.095,1466.905],[1391,1467],[1377.3,1482.8],[1363.637,1498.636],[1350.405,1514.905],[1338,1532],[1354.501,1521.001],[1367.735,1506.736],[1379.602,1491.102],[1392,1476],[1395.861,1475.861],[1398.349,1474.349],[1399.663,1471.663]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[0.33,1.549],[1.376,-0.321],[1.234,-0.59],[1.055,-0.815],[0.839,-0.998],[0.586,-1.136],[0.296,-1.232],[-0.03,-1.284],[-0.394,-1.293],[-0.794,-1.258],[-1.244,0.523],[-1.107,0.74],[-0.94,0.935],[-0.744,1.105],[-0.52,1.252],[-0.266,1.374],[0.017,1.474]],"o":[[-1.482,0.008],[-1.376,0.321],[-1.234,0.59],[-1.055,0.815],[-0.839,0.998],[-0.586,1.136],[-0.296,1.232],[0.03,1.284],[0.394,1.293],[1.352,-0.281],[1.244,-0.523],[1.107,-0.74],[0.94,-0.935],[0.744,-1.105],[0.52,-1.252],[0.266,-1.374],[-0.017,-1.474]],"v":[[998,1218],[993.704,1218.504],[989.779,1219.88],[986.337,1221.998],[983.487,1224.728],[981.34,1227.94],[980.008,1231.503],[979.6,1235.288],[980.227,1239.163],[982,1243],[985.901,1241.789],[989.434,1239.888],[992.511,1237.369],[995.045,1234.304],[996.948,1230.763],[998.134,1226.818],[998.513,1222.54]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[0.082,1.291],[1.005,0.158],[0.878,-0.105],[0.756,-0.331],[0.637,-0.521],[0.523,-0.676],[0.412,-0.794],[0.305,-0.876],[0.202,-0.923],[0.102,-0.933],[-1.163,0.045],[-1.019,0.19],[-0.863,0.345],[-0.697,0.512],[-0.519,0.69],[-0.33,0.879],[-0.129,1.079]],"o":[[-1.135,-0.456],[-1.005,-0.158],[-0.878,0.105],[-0.756,0.331],[-0.637,0.521],[-0.523,0.676],[-0.412,0.794],[-0.305,0.876],[-0.202,0.923],[1.296,0.088],[1.163,-0.045],[1.019,-0.19],[0.863,-0.345],[0.697,-0.512],[0.519,-0.69],[0.33,-0.879],[0.129,-1.079]],"v":[[1659,1816],[1655.792,1815.088],[1652.968,1815.018],[1650.518,1815.68],[1648.429,1816.967],[1646.689,1818.772],[1645.288,1820.985],[1644.214,1823.5],[1643.455,1826.207],[1643,1829],[1646.692,1829.067],[1649.967,1828.717],[1652.793,1827.918],[1655.135,1826.635],[1656.961,1824.836],[1658.236,1822.486],[1658.927,1819.552]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 8"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":80.6,"s":[{"i":[[-1.495,0.844],[1.15,1.206],[1.618,0.664],[1.943,0.225],[2.128,-0.11],[2.17,-0.341],[2.071,-0.469],[1.831,-0.493],[1.448,-0.413],[-1.464,-0.787],[-1.714,-0.625],[-1.882,-0.439],[-1.968,-0.229],[-1.973,0.004],[-1.895,0.26],[-1.736,0.54]],"o":[[-0.542,-1.852],[-1.15,-1.206],[-1.618,-0.664],[-1.943,-0.225],[-2.128,0.11],[-2.17,0.341],[-2.071,0.469],[-1.831,0.493],[1.132,0.926],[1.464,0.787],[1.714,0.625],[1.882,0.439],[1.968,0.229],[1.973,-0.004],[1.895,-0.26],[1.736,-0.54]],"v":[[2267,1468],[2264.427,1463.438],[2260.239,1460.659],[2254.862,1459.351],[2248.72,1459.204],[2242.239,1459.906],[2235.841,1461.146],[2229.954,1462.615],[2225,1464],[2228.915,1466.576],[2233.702,1468.7],[2239.117,1470.301],[2244.912,1471.31],[2250.844,1471.654],[2256.666,1471.264],[2262.133,1470.07]],"c":true}],"h":1},{"t":81.4,"s":[{"i":[[0.404,-1.137],[-1.121,0.535],[-1.046,0.775],[-0.908,0.97],[-0.708,1.12],[-0.445,1.225],[-0.121,1.285],[0.266,1.3],[0.715,1.27],[0.839,-0.702],[0.677,-0.865],[0.548,-0.993],[0.453,-1.089],[0.391,-1.151],[0.362,-1.18],[0.366,-1.175]],"o":[[1.134,-0.25],[1.121,-0.535],[1.046,-0.775],[0.908,-0.97],[0.708,-1.12],[0.445,-1.225],[0.121,-1.285],[-0.266,-1.3],[-1.035,0.507],[-0.839,0.702],[-0.677,0.865],[-0.548,0.993],[-0.453,1.089],[-0.391,1.151],[-0.362,1.18],[-0.366,1.175]],"v":[[2333,1186],[2336.399,1184.811],[2339.664,1182.834],[2342.61,1180.205],[2345.048,1177.059],[2346.793,1173.53],[2347.658,1169.754],[2347.456,1165.866],[2346,1162],[2343.197,1163.822],[2340.931,1166.181],[2339.101,1168.976],[2337.608,1172.108],[2336.352,1175.476],[2335.231,1178.981],[2334.148,1182.522]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-3.918,0.085],[1.946,3.054],[2.646,2.354],[3.252,1.748],[3.764,1.236],[2.755,-3.443],[2.921,-3.287],[2.205,-3.576],[0.608,-4.309],[-2.592,2.825],[-2.269,3.148],[-2.543,2.874],[-3.413,2.004],[-1.776,-2.058],[-1.77,-2.063],[-2.484,-1.349]],"o":[[-1.151,-3.849],[-1.946,-3.054],[-2.646,-2.354],[-3.252,-1.748],[-1.708,4.043],[-2.755,3.443],[-2.921,3.287],[-2.205,3.576],[3.511,-1.906],[2.592,-2.825],[2.269,-3.148],[2.543,-2.874],[2.501,1.332],[1.776,2.058],[1.77,2.063],[2.484,1.349]],"v":[[2395,1167],[2390.33,1156.67],[2383.418,1148.582],[2374.547,1142.453],[2364,1138],[2357.085,1149.117],[2348.351,1159.101],[2340.441,1169.284],[2336,1181],[2345.005,1173.755],[2352.147,1164.648],[2359.216,1155.466],[2368,1148],[2374.236,1153.265],[2379.375,1159.625],[2385.577,1164.924]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-15.834,-0.832],[7.92,3.809],[6.528,4.341],[5.591,-7.409],[8.958,-4.042],[5.177,4.717],[7.221,-0.626],[3.153,-3.052],[2.207,-2.517],[2.565,-3.264],[0.941,-3.751],[-5.224,5.183],[-6.253,3.263],[-6,-4.334],[-9.378,-0.956],[-16.44,8.227]],"o":[[0.208,-9.423],[-7.92,-3.809],[-9.679,3.321],[-5.591,7.409],[-7.072,-1.758],[-5.177,-4.717],[-3.18,0.275],[-3.153,3.052],[-2.798,3.191],[-2.565,3.264],[6.852,-1.004],[5.224,-5.183],[5.623,4.71],[6,4.334],[15.931,-8.735],[11.973,4.694]],"v":[[2484,1154],[2470.052,1135.688],[2446,1125],[2424.959,1142.959],[2405,1162],[2387.612,1150.212],[2370,1142],[2360.271,1147.819],[2352,1157],[2343.607,1166.579],[2338,1177],[2355.449,1166.194],[2372,1152],[2388.685,1166.316],[2411,1175],[2449,1139]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[-24.634,5.268],[4.708,2.541],[4.457,2.716],[3.876,3.165],[5.18,0.708],[8.039,-8.295],[11.543,-4.79],[17.257,4.409],[17.788,-6.879],[12.128,4.539],[7.903,-16.43],[-15.762,4.905],[-17.371,-1.962],[-17.468,6.198],[-22.659,1.326],[-22.244,6.422]],"o":[[0.287,-6.121],[-4.708,-2.541],[-4.315,-2.63],[-3.876,-3.166],[-13.302,3.031],[-8.039,8.295],[-16.011,-5.655],[-15.29,9.377],[-11.634,-5.033],[-16.213,8.12],[18.159,-2.508],[12.402,6.931],[16.069,-7.597],[16.975,4.359],[18.919,-9.748],[19.055,3.636]],"v":[[2597,1139],[2589.058,1126.946],[2574,1120],[2562.148,1110.559],[2549,1104],[2519.18,1123.181],[2492,1145],[2445,1127],[2406,1162],[2375,1143],[2335,1176],[2375,1154],[2412,1175],[2450,1142],[2500,1156],[2548,1118]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[-19.147,9.187],[-25.889,-1.444],[-12.116,10.55],[6.056,12.082],[21.172,-12.828],[16.976,9.025],[19.555,-8.778],[11.246,4.035],[7.762,-0.176],[16.428,-5.732],[13.006,3.994],[8.772,-15.228],[-14.278,5.474],[-15.132,-4.201],[-14.549,6.784],[-21.848,-1.485]],"o":[[17.773,9.56],[13.364,-9.303],[8.4,-4.097],[-25.703,8.297],[-17.794,-8.207],[-19.283,9.05],[-14.223,1.003],[-8.339,-2.992],[-17.555,0.399],[-11.954,-5.046],[-14.475,9.525],[17.958,1.508],[12.743,6.59],[12.461,-8.873],[14.298,9.035],[20.32,-8.014]],"v":[[2546,1118],[2603,1143],[2636,1108],[2652,1084],[2596,1130],[2545,1103],[2497,1140],[2461,1138],[2440,1127],[2406,1159],[2374,1140],[2335,1173],[2375,1152],[2411,1174],[2442,1141],[2498,1155]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-23.187,6.831],[4.903,1.819],[4.127,2.078],[3.758,3.934],[4.944,1.731],[0.333,0],[0.333,0],[8.638,-9.362],[12.25,-5.75],[21.456,5.878],[20.593,-7.407],[22.434,-3.508],[-24.037,-3.963],[-17.678,8.989],[-23.474,-4.193],[-23.129,10.871]],"o":[[-0.262,-6.646],[-4.903,-1.819],[-5.026,-2.531],[-3.757,-3.935],[-0.333,0],[-0.333,0],[-12.198,5.802],[-8.638,9.362],[-19.82,-7.514],[-17.528,10.472],[-21.476,-0.617],[12.947,15.053],[17.833,-8.833],[18.401,9.265],[21.906,-12.094],[14.309,8.52]],"v":[[2709,1119],[2699.899,1107.574],[2685,1103],[2672.438,1092.4],[2660,1083],[2659,1083],[2658,1083],[2628.539,1107.539],[2599,1132],[2543,1106],[2498,1145],[2439,1137],[2504,1156],[2547,1119],[2604,1145],[2659,1098]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[25.622,-17.378],[4.828,11.172],[8.943,7.057],[1.135,-0.865],[0.461,-1.539],[-0.751,-2.916],[-0.466,-3.201],[-4.25,-10.75],[-4.298,-10.702],[-12.1,11.566],[-14.792,8.874],[-7.93,-11.403],[-17.766,-1.568],[-1.337,17.329],[10.181,-3.819],[29.313,11.687]],"o":[[-5.744,-10.256],[-4.828,-11.172],[-0.999,1.001],[-1.135,0.865],[-0.47,4.137],[0.751,2.916],[6.703,8.297],[4.25,10.75],[15.807,-7.86],[12.1,-11.566],[10.513,8.821],[7.93,11.403],[11.45,-7.217],[-10.656,3.344],[-29.1,-11.9],[-28.09,14.91]],"v":[[1112,1258],[1097.4,1224.6],[1078,1196],[1074.596,1198.596],[1072,1202],[1072.798,1212.202],[1075,1221],[1090.804,1250.196],[1103,1283],[1143.261,1252.261],[1182,1220],[1206.56,1253.44],[1242,1276],[1269,1247],[1243,1263],[1183,1200]],"c":true}],"h":1},{"t":87,"s":[{"i":[[6.293,3.26],[0.137,0.197],[0.425,-0.092],[6.083,-7.167],[0.532,-10.137],[-3.489,4.511],[-7.241,0.759],[-2.568,-6.634],[-2.669,-5.956],[-3.337,-5.659],[-7.083,-1.634],[-6.062,7.683],[0.631,11.811],[3.619,-5.548],[7.543,-1.623],[6.851,18.331]],"o":[[-0.028,-0.305],[-0.137,-0.197],[-6.138,6.197],[-6.083,7.167],[6.803,-1.197],[3.489,-4.511],[0.061,7.508],[2.567,6.634],[2.568,5.728],[3.337,5.659],[9.383,-3.459],[6.062,-7.683],[-8.981,0.186],[-3.619,5.548],[-10.403,-15.172],[-2.257,-6.04]],"v":[[1079,1192],[1078.797,1191.202],[1078,1191],[1058.296,1210.545],[1047,1236],[1060.671,1225.671],[1075,1216],[1079.543,1237.164],[1088,1256],[1096.113,1274.071],[1111,1286],[1135.011,1269.264],[1144,1240],[1127.422,1250.922],[1113,1264],[1088,1210]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[1.865,1.771],[1.688,0.145],[1.932,-0.099],[0.426,-0.408],[0.177,-0.657],[4.325,-6.25],[5.249,-6.887],[6.384,-7.355],[-0.074,-11.312],[-2.574,2.926],[-2.144,3.356],[-7.761,9.406],[-7.211,9.955],[-1.106,-0.939],[-1.354,1.207],[0.484,3.411]],"o":[[-1.316,-0.518],[-1.688,-0.145],[-0.12,0.713],[-0.426,0.408],[-5.45,5.115],[-4.325,6.25],[-5.537,7.266],[-6.384,7.355],[5.56,0.06],[2.574,-2.926],[8.744,-8.423],[7.761,-9.406],[2.222,-0.548],[1.106,0.939],[1.803,-2.586],[-0.484,-3.411]],"v":[[1078,1198],[1073.462,1197.038],[1068,1197],[1067.043,1198.543],[1066,1200],[1051.849,1217.171],[1038,1237],[1018.291,1257.965],[1007,1285],[1018.562,1280.062],[1025,1270],[1049.649,1243.149],[1072,1214],[1076.651,1215.495],[1080,1216],[1081.751,1206.389]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[0.333,0],[0,-0.5],[0,-0.5],[0,-0.5],[0,-0.5],[-2.458,-3.409],[-2.743,-3.225],[-2.913,-3.079],[-2.969,-2.969],[-3.076,-2.951],[-3.218,-2.717],[-3.407,-2.283],[-3.646,-1.647],[11.731,12.435],[12.762,11.405],[0.333,0]],"o":[[0,0.5],[0,0.5],[0,0.5],[0,0.5],[2.059,3.63],[2.458,3.409],[2.743,3.225],[2.913,3.079],[2.984,2.984],[3.076,2.951],[3.218,2.717],[3.407,2.283],[-9.312,-14.854],[-11.732,-12.435],[-0.333,0],[-0.333,0]],"v":[[3209,1532],[3209,1533.5],[3209,1535],[3209,1536.5],[3209,1538],[3215.804,1548.549],[3223.635,1558.492],[3232.148,1567.938],[3241,1577],[3250.078,1585.952],[3259.507,1594.505],[3269.432,1602.056],[3280,1608],[3248.087,1567.413],[3211,1532],[3210,1532]],"c":true}],"h":1},{"t":89.4,"s":[{"i":[[-0.163,1.337],[1.191,0.949],[1.549,0.829],[1.765,0.627],[1.838,0.343],[1.769,-0.023],[1.558,-0.47],[1.203,-0.999],[0.707,-1.61],[-1.992,-1.174],[-2.233,-0.933],[-2.374,-0.792],[-2.415,-0.751],[-0.983,0.517],[-0.831,0.669],[-0.557,0.943]],"o":[[-0.69,-0.988],[-1.191,-0.949],[-1.549,-0.829],[-1.765,-0.627],[-1.838,-0.343],[-1.769,0.023],[-1.558,0.47],[-1.203,0.999],[1.651,1.515],[1.992,1.174],[2.233,0.933],[2.374,0.792],[1.014,-0.486],[0.983,-0.517],[0.831,-0.669],[0.557,-0.943]],"v":[[1357,1517],[1354.143,1514.074],[1349.998,1511.386],[1344.991,1509.182],[1339.551,1507.707],[1334.104,1507.206],[1329.078,1507.924],[1324.901,1510.107],[1322,1514],[1327.491,1518.009],[1333.854,1521.146],[1340.791,1523.709],[1348,1526],[1351.026,1524.526],[1353.776,1522.776],[1355.889,1520.389]],"c":true}],"h":1},{"t":90.2001953125,"s":[{"i":[[1.298,-0.213],[-0.794,-0.789],[-0.881,-0.702],[-0.98,-0.603],[-1.091,-0.492],[-1.216,-0.368],[-1.352,-0.231],[-1.502,-0.082],[-1.664,0.08],[0.65,0.99],[0.92,0.804],[1.131,0.622],[1.283,0.446],[1.376,0.274],[1.409,0.107],[1.383,-0.056]],"o":[[0.721,0.863],[0.794,0.789],[0.881,0.702],[0.98,0.603],[1.091,0.492],[1.216,0.368],[1.352,0.231],[1.502,0.082],[-0.32,-1.18],[-0.65,-0.99],[-0.92,-0.804],[-1.131,-0.622],[-1.283,-0.446],[-1.376,-0.274],[-1.409,-0.107],[-1.383,0.056]],"v":[[2526,1884],[2528.269,1886.48],[2530.779,1888.72],[2533.567,1890.682],[2536.671,1892.329],[2540.128,1893.621],[2543.977,1894.523],[2548.255,1894.995],[2553,1895],[2551.53,1891.746],[2549.161,1889.057],[2546.069,1886.919],[2542.433,1885.318],[2538.43,1884.24],[2534.239,1883.67],[2530.036,1883.595]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":79.8,"s":[0],"h":1},{"t":80.6,"s":[100],"h":1},{"t":91,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 9"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[-3.692,5.392],[3.015,-1.556],[2.555,-2.017],[2.287,-2.284],[2.212,-2.359],[2.33,-2.241],[2.641,-1.931],[3.144,-1.427],[2.146,3.551],[2.162,3.542],[3.186,2.095],[5.215,-0.789],[-2.056,-4.444],[-2.881,-3.619],[-3.635,-2.865],[-4.316,-2.184],[-4.897,4.186],[-4.759,4.324],[-4.358,4.726]],"o":[[-3.668,0.903],[-3.015,1.556],[-2.555,2.017],[-2.287,2.284],[-2.212,2.359],[-2.33,2.241],[-2.641,1.931],[-3.135,-2.122],[-2.146,-3.551],[-2.163,-3.542],[-3.186,-2.095],[1.159,5.342],[2.056,4.444],[2.881,3.619],[3.635,2.865],[4.77,-4.313],[4.897,-4.186],[4.759,-4.324],[4.358,-4.726]],"v":[[1714,1194],[1704.023,1197.737],[1695.717,1203.145],[1688.502,1209.645],[1681.802,1216.659],[1675.037,1223.608],[1667.629,1229.915],[1659,1235],[1651.331,1226.132],[1645.12,1215.134],[1637.349,1206.319],[1625,1204],[1629.84,1218.661],[1637.264,1230.737],[1647.056,1240.444],[1659,1248],[1673.567,1235.317],[1688.117,1222.618],[1701.859,1209.11]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[19.362,-8.638],[7.424,7.576],[11.878,3.122],[9.405,-8.762],[11.962,-6.205],[7.047,5.786],[10.501,2.332],[-3.827,-4.729],[-4.005,-3.197],[-4.877,-3.975],[-5.685,-1.264],[-5.61,4.742],[-5.072,4.587],[-5.052,4.031],[-6.492,2.081],[-6.007,-8.395],[-9.821,0],[-11.359,5.623],[-3.964,13.036]],"o":[[-7.428,-7.572],[-7.423,-7.577],[-12.417,5.749],[-9.405,8.762],[-8.309,-4.524],[-7.047,-5.786],[-4.313,6.885],[3.827,4.73],[4.807,3.837],[4.877,3.975],[8.488,-0.446],[5.61,-4.742],[5.302,-4.796],[5.052,-4.031],[9.15,2.42],[6.007,8.395],[13.974,0],[7.655,-9.345],[-24.439,3.561]],"v":[[1655,1228],[1633.837,1204.163],[1606,1187],[1574.659,1210.159],[1544,1234],[1522.144,1217.356],[1497,1204],[1498.261,1221.267],[1512,1233],[1526.342,1245.43],[1542,1254],[1562.563,1245.106],[1578,1230],[1593.108,1216.463],[1610,1207],[1630.997,1226.815],[1653,1243],[1683,1223],[1709,1198]],"c":true}],"h":1},{"t":83,"s":[{"i":[[21.431,-7.569],[7.974,9.702],[10.446,-4.659],[9.029,-8.167],[11.849,-3.855],[29.793,-4.1],[11.171,-8.736],[15.744,-3.654],[6.059,11.275],[17.875,-0.208],[-10.262,-6.723],[-17.232,-1.374],[-12.201,9.374],[-14.249,4.999],[-23.991,-7.675],[-28.488,7.512],[-19.875,-4.125],[-10.95,6.57],[-2.555,12.962]],"o":[[-8.657,-2.853],[-7.974,-9.702],[-10.034,4.476],[-9.029,8.167],[-25.95,-5.48],[-14.11,1.942],[-12.735,9.959],[-10.827,-6.506],[-14.048,-3.619],[-12.101,16.439],[12.722,8.397],[15.431,1.23],[14.648,-11.255],[24.668,6.998],[27.315,-8.685],[18.985,5.015],[15.1,0.26],[11.04,-6.624],[-25.25,3.75]],"v":[[1652,1225],[1627.841,1200.866],[1601,1188],[1573.362,1208.966],[1543,1229],[1477,1198],[1439,1223],[1400,1247],[1373,1222],[1341,1201],[1360,1236],[1394,1267],[1439,1244],[1481,1217],[1543,1250],[1608,1207],[1647,1240],[1684,1223],[1713,1199]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[22.061,-5.955],[25.015,2.985],[21.59,-8.743],[36.11,1.557],[29.424,-9.243],[30.794,10.54],[15.631,-13.036],[-1.62,-29.62],[-29.138,20.862],[-13.597,-11.737],[-10.946,-1.3],[-10.613,7.849],[-19.605,3.533],[-15.743,-3.257],[-13.637,-1.363],[-22.599,9.735],[-15.816,-7.184],[-10.182,7.484],[-4.552,13.448]],"o":[[-18.97,-9.03],[-19.291,11.042],[-22.681,-14.986],[-29.795,8.871],[-22.199,-19.134],[-18.887,9.78],[-15.644,12.356],[37.989,-12.011],[12.571,12.762],[6.36,7.897],[11.266,1.338],[16.938,-12.526],[18.46,0.54],[9.69,5.31],[26.998,-5.335],[14.901,8.099],[15.131,-2.536],[9.405,-8.595],[-26.59,-1.901]],"v":[[1650,1227],[1603,1190],[1554,1232],[1472,1201],[1402,1247],[1330,1195],[1285,1236],[1244,1279],[1332,1217],[1377,1248],[1396,1269],[1432,1250],[1479,1221],[1524,1233],[1551,1251],[1608,1211],[1645,1243],[1682,1227],[1712,1203]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[24.093,-14.574],[11.479,9.854],[16.05,5.284],[12.851,-11.816],[17.309,-7.358],[8.635,9.865],[18.227,0.273],[-8.082,-5.638],[-5.641,-7.242],[-12.834,-3.832],[-13.134,9.866],[-22.615,7.385],[-12.328,-8.005],[-18.863,-1.804],[-10.493,9.53],[-14.752,2.017],[-38.368,8.099],[14.336,5.331],[21.049,-1.452]],"o":[[-12.033,-9.301],[-11.479,-9.854],[-17.289,7.378],[-12.851,11.816],[-11.233,-7.267],[-8.635,-9.865],[-1.971,13.207],[8.082,5.638],[7.245,9.422],[20.047,-2.953],[21.207,-8.793],[14.803,5.53],[11.121,9.545],[13.896,-5.092],[10.017,-9.097],[32.436,-4.434],[-5.925,-12.468],[-17.216,-6.402],[-28.213,10.454]],"v":[[1402,1247],[1368.013,1216.987],[1328,1193],[1285.014,1224.015],[1242,1255],[1215.245,1226.255],[1178,1208],[1190.291,1233.973],[1214,1251],[1236,1279],[1276,1250],[1330,1214],[1365,1240],[1403,1264],[1437,1240],[1471,1216],[1558,1236],[1521,1215],[1469,1198]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[13.215,0.62],[11.715,-11.618],[18.212,-5.121],[4.952,5.233],[4.918,5.216],[5.252,5.28],[8.128,1.719],[4.107,-3.699],[3.617,-3.419],[3.608,-4.22],[-0.062,-6.686],[-5.512,5.988],[-9.242,2.258],[-9.036,-11.298],[-13.39,-6.943],[-19.364,19.302],[-9.688,2.645],[-19.123,3.08],[8.815,5.373]],"o":[[-11.928,11.405],[-11.715,11.618],[-6.274,-3.852],[-4.952,-5.233],[-4.865,-5.16],[-5.252,-5.28],[-5.954,0.784],[-4.107,3.699],[-3.63,3.432],[-3.608,4.221],[10.708,-0.792],[5.512,-5.988],[12.467,7.866],[9.036,11.298],[28.941,-9.725],[4.824,-7.509],[15.695,3.671],[6.503,-10.571],[-10.66,-6.497]],"v":[[1323,1192],[1289.213,1228.213],[1246,1255],[1229.483,1241.023],[1215,1225],[1200.447,1208.419],[1181,1197],[1166.247,1204.523],[1155,1216],[1143.231,1227.059],[1137,1243],[1159.1,1230.6],[1179,1216],[1209.307,1246.693],[1241,1276],[1311,1230],[1329,1211],[1370,1230],[1359,1207]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[-2.784,5.004],[3.358,1.093],[4.267,-0.126],[4.15,-0.656],[3.009,-0.498],[5.23,-7.215],[6.325,-6.119],[8.311,-4.134],[8.702,1.798],[9.325,1.175],[6.122,-6.545],[4.456,-8.211],[-4.606,5.727],[-7.682,2.652],[-8.537,-2.296],[-10.558,-0.275],[-9.721,11.279],[-10.742,10.258],[-5.999,-0.309]],"o":[[-1.424,-3],[-3.358,-1.093],[-4.267,0.125],[-4.15,0.656],[-5.025,7.419],[-5.23,7.215],[-6.325,6.119],[-8.868,-1.632],[-8.702,-1.798],[-8.057,4.609],[-6.122,6.545],[8.893,-1.44],[4.606,-5.727],[10.292,0.541],[8.538,2.296],[14.375,-6.625],[9.721,-11.279],[6.22,-0.233],[5.999,0.309]],"v":[[1635,1383],[1627.571,1377.032],[1615.878,1375.753],[1602.996,1377.097],[1592,1379],[1576.84,1401.173],[1559.731,1421.397],[1538,1437],[1511.843,1431.657],[1485,1427],[1463.799,1443.799],[1448,1466],[1466.409,1453.409],[1483,1439],[1510.3,1444.199],[1538,1449],[1572.725,1420.725],[1602,1387],[1621.077,1388.578]],"c":true}],"h":1},{"t":87,"s":[{"i":[[4.239,0.149],[0.167,0],[0.167,0],[2.62,-2.88],[3.761,-1.739],[7.418,3.415],[10.184,0.649],[8.909,-10.091],[11.25,-7.75],[6.644,3.738],[5.812,-7.159],[-3.531,-2.136],[-4.143,-1.524],[-1.681,-2.152],[-3.648,-0.186],[-9.231,10.603],[-12.76,7.074],[-20.214,3.986],[-5.596,6.404]],"o":[[-0.167,0],[-0.167,0],[-3.761,1.739],[-2.62,2.88],[-12.143,1.31],[-7.418,-3.415],[-12.114,6.887],[-8.909,10.091],[-4.612,-3.208],[-6.644,-3.738],[1.735,3.932],[3.531,2.136],[2.628,1.205],[1.681,2.152],[13.318,-6.515],[9.231,-10.603],[13.901,5.599],[7.521,-4.479],[-0.197,-2.516]],"v":[[1558,1426],[1557.5,1426],[1557,1426],[1548,1433.5],[1539,1441],[1511.531,1435.97],[1487,1428],[1456.852,1454.852],[1428,1483],[1410.4,1469.725],[1391,1472],[1399.194,1480.807],[1411,1486],[1416.735,1491.764],[1424,1496],[1455.919,1468.419],[1487,1440],[1537,1450],[1556,1433]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[-0.585,8.749],[2.094,-1.822],[1.475,-2.441],[1.893,-2.024],[3.349,-0.568],[2.85,1.484],[2.423,1.91],[2.237,2.096],[2.291,2.043],[2.815,-2.352],[2.297,-2.87],[1.959,-3.208],[1.801,-3.366],[-2.437,2.341],[-2.155,2.623],[-2.911,1.867],[-6.831,-3.703],[-9.151,1.037],[-4.5,4.833]],"o":[[-3.751,0.166],[-2.094,1.822],[-1.475,2.442],[-1.893,2.024],[-3.516,-0.818],[-2.85,-1.484],[-2.423,-1.91],[-2.237,-2.096],[-3.512,1.655],[-2.815,2.352],[-2.297,2.87],[-1.959,3.208],[3.758,-1.019],[2.437,-2.341],[2.155,-2.623],[3.524,6.226],[6.831,3.703],[4.415,-4.918],[4.5,-4.833]],"v":[[1456,1463],[1447.491,1466.241],[1442.396,1472.896],[1437.603,1479.853],[1430,1484],[1420.512,1480.488],[1412.663,1475.337],[1405.732,1469.268],[1399,1463],[1389.555,1469.055],[1381.933,1476.933],[1375.595,1486.094],[1370,1496],[1379.033,1490.7],[1385.661,1482.995],[1393,1476],[1408.779,1491.448],[1433,1496],[1447.372,1482.372]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-2.988,0.018],[1.236,1.379],[1.619,0.799],[1.926,0.335],[2.155,-0.012],[2.308,-0.243],[2.385,-0.357],[2.384,-0.355],[2.308,-0.236],[2.154,-0.001],[1.924,0.35],[1.617,0.818],[-1.763,-1.816],[-2.316,-0.964],[-2.744,-0.309],[-3.045,0.149],[-3.22,0.411],[-3.269,0.476],[-3.191,0.345]],"o":[[-0.777,-2.076],[-1.236,-1.379],[-1.619,-0.799],[-1.926,-0.335],[-2.155,0.012],[-2.308,0.243],[-2.385,0.357],[-2.384,0.355],[-2.308,0.236],[-2.154,0.001],[-1.924,-0.35],[1.083,2.864],[1.763,1.816],[2.316,0.964],[2.744,0.309],[3.045,-0.149],[3.22,-0.411],[3.269,-0.476],[3.191,-0.345]],"v":[[2919,1646],[2915.961,1640.846],[2911.658,1637.607],[2906.322,1635.934],[2900.181,1635.478],[2893.467,1635.889],[2886.408,1636.818],[2879.236,1637.915],[2872.178,1638.832],[2865.467,1639.218],[2859.331,1638.723],[2854,1637],[2858.3,1643.97],[2864.45,1648.091],[2872.072,1649.952],[2880.786,1650.144],[2890.215,1649.255],[2899.979,1647.875],[2909.7,1646.593]],"c":true}],"h":1},{"t":89.400390625,"s":[{"i":[[-1.812,0.497],[0.167,1.416],[0.388,1.195],[0.595,0.988],[0.788,0.795],[0.966,0.617],[1.131,0.453],[1.28,0.303],[1.416,0.167],[0.299,-0.686],[0.148,-0.806],[0.016,-0.868],[-0.094,-0.874],[-0.185,-0.823],[-0.255,-0.714],[-0.305,-0.549],[-1.329,-0.696],[-1.519,-0.403],[-1.681,-0.005]],"o":[[0.068,-1.652],[-0.167,-1.416],[-0.388,-1.195],[-0.595,-0.988],[-0.788,-0.795],[-0.966,-0.617],[-1.131,-0.453],[-1.28,-0.303],[-0.471,0.509],[-0.299,0.686],[-0.148,0.806],[-0.016,0.868],[0.094,0.874],[0.185,0.823],[0.255,0.714],[1.11,0.887],[1.329,0.696],[1.519,0.403],[1.681,0.005]],"v":[[3292,1612],[3291.848,1607.402],[3291.011,1603.489],[3289.532,1600.218],[3287.453,1597.547],[3284.818,1595.432],[3281.669,1593.831],[3278.048,1592.702],[3274,1592],[3272.851,1593.807],[3272.186,1596.059],[3271.945,1598.584],[3272.067,1601.212],[3272.491,1603.771],[3273.155,1606.091],[3274,1608],[3277.665,1610.4],[3281.946,1612.075],[3286.753,1612.712]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":90.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 10"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[-0.338,1.162],[1.003,-0.556],[0.833,-0.806],[0.664,-1.001],[0.496,-1.143],[0.33,-1.232],[0.166,-1.266],[0.002,-1.247],[-0.16,-1.174],[-1.044,0.456],[-0.726,0.774],[-0.48,1.02],[-0.307,1.193],[-0.206,1.294],[-0.178,1.322],[-0.222,1.278]],"o":[[-1.175,0.252],[-1.003,0.556],[-0.833,0.806],[-0.664,1.001],[-0.496,1.144],[-0.33,1.232],[-0.166,1.266],[-0.002,1.247],[1.434,-0.066],[1.044,-0.456],[0.726,-0.774],[0.48,-1.02],[0.307,-1.193],[0.206,-1.294],[0.178,-1.322],[0.222,-1.278]],"v":[[1876,1265],[1872.734,1266.226],[1869.981,1268.281],[1867.737,1271.005],[1865.998,1274.236],[1864.758,1277.813],[1864.015,1281.573],[1863.764,1285.356],[1864,1289],[1867.699,1288.199],[1870.335,1286.335],[1872.126,1283.626],[1873.288,1280.288],[1874.04,1276.54],[1874.597,1272.597],[1875.178,1268.678]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-0.112,4.972],[2.113,-3.47],[1.952,-3.631],[2.238,-3.345],[2.97,-2.613],[2.064,1.436],[2.14,1.36],[2.756,0.744],[3.912,-0.412],[-2.201,-2.299],[-3.027,-1.473],[-3.437,-1.062],[-3.434,-1.066],[-2.618,3.747],[-2.435,3.94],[-1.6,4.348]],"o":[[-2.72,2.863],[-2.113,3.47],[-1.952,3.631],[-2.238,3.345],[-2.527,-0.973],[-2.064,-1.436],[-2.14,-1.36],[-2.756,-0.744],[0.96,3.54],[2.201,2.299],[3.027,1.473],[3.437,1.062],[2.148,-3.769],[2.618,-3.747],[2.435,-3.94],[1.6,-4.348]],"v":[[1873,1269],[1865.861,1278.611],[1859.875,1289.375],[1853.7,1299.951],[1846,1309],[1839.249,1305.252],[1833.078,1300.922],[1825.868,1297.632],[1816,1297],[1820.845,1305.655],[1828.79,1311.21],[1838.59,1314.91],[1849,1318],[1856.312,1306.781],[1864.054,1295.304],[1870.269,1282.926]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-2.947,7.401],[4.552,-6.282],[6.356,-4.477],[6.896,2.27],[8.963,0.204],[5.259,-8.408],[8.758,-4.909],[7.198,1.481],[3.202,-6.705],[-7.97,-1.363],[-7.428,-1.905],[-5.437,8.729],[-8.537,5.63],[-5.489,-2.177],[-6.629,-1.038],[-5.168,7.743]],"o":[[-7.438,3.395],[-4.552,6.282],[-5.452,-3.715],[-6.896,-2.27],[-7.206,6.461],[-5.259,8.408],[-6.007,0.221],[-7.198,-1.481],[4.691,4.642],[7.97,1.363],[8.714,-5.452],[5.437,-8.729],[6.414,1.254],[5.489,2.177],[7.382,-4.629],[5.168,-7.743]],"v":[[1873,1273],[1856.188,1288.688],[1841,1306],[1822.633,1296.866],[1799,1293],[1781.664,1316.664],[1762,1338],[1740.896,1333.637],[1724,1339],[1743.948,1347.052],[1768,1351],[1787.633,1328.133],[1807,1305],[1824.338,1310.662],[1842,1316],[1860.826,1296.579]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[0.667,0],[5.455,-6.045],[8.288,-3.211],[5.702,2.132],[7.964,-0.131],[18.176,-8.824],[16.869,-2.655],[26.284,-10.383],[8.551,-19.569],[-21.868,-0.799],[-25.432,11.902],[-16.312,-0.354],[-17.285,3],[-15.142,16.397],[-3.427,6.906],[-0.326,5.83]],"o":[[-7.891,3.609],[-5.455,6.045],[-6.23,-1.603],[-5.701,-2.132],[-17.836,9.164],[-16.56,-0.625],[-21.928,14.739],[-14.383,-2.084],[16.706,5.961],[25.004,-12.33],[16.506,0.161],[17.201,-5.269],[15.033,-2.609],[4.199,-6.134],[3.298,-6.15],[-0.667,0]],"v":[[1875,1273],[1856.298,1288.798],[1837,1304],[1819.8,1297.7],[1800,1294],[1761,1336],[1712,1334],[1655,1387],[1605,1386],[1661,1398],[1720,1345],[1766,1349],[1805,1306],[1852,1309],[1865,1291],[1877,1273]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[0.667,0],[16.789,-5.877],[16.279,-0.612],[15.377,-7.623],[17.884,-2.138],[21.544,-11.122],[21.352,-2.582],[10.476,-10.688],[3.803,-16.276],[-25.083,15.583],[-13.288,-8.045],[-21.525,13.809],[-16.975,-5.585],[-17.22,7.447],[-11.924,-1.409],[-7.745,18.589]],"o":[[-16.961,5.706],[-13.011,-2.656],[-12.75,10.25],[-17.834,-7.22],[-19.513,13.154],[-17.084,-4.899],[-10.829,10.442],[-10.255,10.462],[31.285,-9.382],[18.124,3.21],[21.907,-13.427],[16.233,-5.691],[17.016,-7.651],[12.263,1.07],[15.778,-10.555],[-0.667,0]],"v":[[1874,1276],[1836,1306],[1799,1296],[1769,1335],[1709,1337],[1659,1385],[1599,1378],[1569,1411],[1541,1447],[1606,1390],[1660,1400],[1715,1349],[1773,1348],[1808,1309],[1839,1318],[1876,1276]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-9.88,14.787],[11.075,-0.925],[11.622,-0.275],[6.981,-9.186],[9.849,-6.318],[9.79,1.377],[11.052,0.115],[9.713,-11.287],[13.178,-7.822],[11.49,1.146],[2.845,-10.33],[-9.068,-1.765],[-8.099,-2.735],[-27.857,16.809],[-22.757,0.423],[-21.885,10.448]],"o":[[-11.078,-1.977],[-11.075,0.925],[-10.229,5.938],[-6.981,9.186],[-8.789,-2.378],[-9.79,-1.377],[-12.972,8.028],[-9.713,11.287],[-7.195,-1.746],[-11.49,-1.146],[10.63,0.203],[9.068,1.765],[28.221,-16.446],[20.01,2.323],[19.457,-12.876],[18.792,-5.875]],"v":[[1774,1334],[1740.908,1333.311],[1707,1336],[1682.715,1360.215],[1659,1385],[1631.197,1379.303],[1600,1377],[1567.654,1407.654],[1535,1438],[1503.737,1430.943],[1479,1442],[1508.399,1445.101],[1534,1452],[1604,1388],[1664,1395],[1712,1346]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[21.755,-5.579],[14.042,16.291],[20.65,9.683],[4.31,-3.223],[-0.832,-5.947],[-3.557,1.409],[-3.995,0.805],[-8.588,-7.578],[-7.137,-9.03],[-7.487,-8.847],[-11.738,-4.595],[-2.826,0.826],[-20.196,5.804],[-34.848,-15.485],[13.903,18.431],[22.451,9.882]],"o":[[-18.18,-12.153],[-14.042,-16.291],[-7.591,-0.841],[-4.31,3.224],[4.778,1.443],[3.557,-1.409],[9.511,6.657],[8.588,7.578],[8.315,8.018],[7.487,8.847],[2.409,-0.409],[24.994,-1.006],[28.091,25.576],[-8.8,-23.533],[-16.887,-15.446],[-18.918,8.415]],"v":[[3047,1507],[3001.352,1461.647],[2952,1420],[2933.683,1423.91],[2928,1438],[2940.087,1437.186],[2951,1433],[2978.28,1454.22],[3002,1479],[3024.432,1505.567],[3052,1527],[3057,1528],[3109,1502],[3190,1584],[3147,1530],[3101,1479]],"c":true}],"h":1},{"t":87,"s":[{"i":[[7.569,-1.431],[10.549,13.755],[11.323,11.324],[5.003,4.061],[3.582,0.347],[1.928,-8.593],[-11.629,-1.492],[-1.78,2.887],[-4.116,0.551],[-12.517,-15.316],[-12.524,-15.309],[-1.736,-1.264],[-2.653,-0.347],[-2.97,3.53],[0.12,6.62],[4.213,-0.213]],"o":[[-9.479,-10.657],[-10.549,-13.755],[-3.408,-3.408],[-5.003,-4.061],[-8.917,-0.864],[-1.928,8.593],[3.765,-0.901],[1.78,-2.887],[14.407,13.427],[12.517,15.316],[2.404,0.596],[1.736,1.264],[3.238,-3.262],[2.97,-3.53],[-2.477,-1.523],[-9.851,-0.851]],"v":[[3184,1570],[3153.883,1532.001],[3121,1493],[3107.63,1480.704],[3094,1473],[3076.091,1488.733],[3089,1508],[3096.237,1501.237],[3104,1495],[3143.912,1538.589],[3181,1585],[3186.814,1588.186],[3193,1591],[3203.019,1581.519],[3208,1567],[3202,1561]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[1.404,1.929],[3.996,-2.587],[2.619,-3.964],[2.313,-4.27],[3.079,-3.504],[0.863,0.554],[0.702,0.715],[0.863,0.554],[1.347,0.07],[-4.033,-4.134],[-6.31,-1.856],[-2.365,4.635],[-1.851,5.15],[-3.269,2.898],[-1.783,4.384],[1.006,2.327]],"o":[[-6.445,0.139],[-3.996,2.587],[-2.619,3.964],[-2.313,4.27],[-1.347,-0.07],[-0.863,-0.554],[-0.702,-0.715],[-0.863,-0.554],[1.558,6.609],[4.033,4.134],[4.691,-2.309],[2.365,-4.635],[3.14,-3.026],[3.269,-2.898],[-1.57,-1.763],[-1.006,-2.327]],"v":[[3225,1532],[3209.607,1536.357],[3199.952,1546.453],[3192.821,1559.071],[3185,1571],[3181.766,1569.984],[3179.5,1568],[3177.234,1566.016],[3174,1565],[3182.436,1581.064],[3198,1590],[3208.13,1579.131],[3214,1564],[3224.019,1555.519],[3232,1545],[3228.375,1538.625]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[0.031,1.115],[2.375,-0.292],[1.481,-1.584],[0.766,-2.545],[0.23,-3.175],[-0.126,-3.473],[-0.303,-3.441],[-0.301,-3.077],[-0.12,-2.382],[-2.052,3.473],[-0.076,5.205],[0.764,5.255],[0.469,3.623],[-0.707,0.376],[-0.828,0.255],[-0.582,0.501]],"o":[[-3.449,-1.332],[-2.375,0.292],[-1.481,1.584],[-0.766,2.545],[-0.23,3.175],[0.126,3.473],[0.303,3.441],[0.301,3.077],[5.163,-0.059],[2.052,-3.473],[0.076,-5.204],[-0.764,-5.255],[0.219,-0.864],[0.707,-0.376],[0.828,-0.255],[0.582,-0.501]],"v":[[1715,1759],[1706.308,1757.523],[1700.569,1760.42],[1697.243,1766.697],[1695.793,1775.36],[1695.682,1785.415],[1696.371,1795.869],[1697.323,1805.729],[1698,1814],[1708.539,1808.282],[1711.448,1794.845],[1710.133,1778.736],[1708,1765],[1709.481,1763.231],[1711.876,1762.375],[1714.082,1761.332]],"c":true}],"h":1},{"t":89.400390625,"s":[{"i":[[2.695,0.597],[-1.586,-2.262],[-1.734,-2.198],[-1.87,-2.092],[-1.992,-1.945],[-2.102,-1.756],[-2.2,-1.524],[-2.284,-1.251],[-2.355,-0.936],[1.747,2.101],[1.707,2.225],[1.725,2.237],[1.802,2.135],[1.938,1.92],[2.132,1.592],[2.384,1.151]],"o":[[1.425,2.284],[1.586,2.262],[1.734,2.198],[1.87,2.092],[1.992,1.945],[2.102,1.756],[2.2,1.524],[2.284,1.251],[-1.845,-1.863],[-1.747,-2.101],[-1.707,-2.225],[-1.725,-2.237],[-1.802,-2.135],[-1.938,-1.92],[-2.132,-1.592],[-2.384,-1.151]],"v":[[2899,1636],[2903.519,1642.829],[2908.502,1649.529],[2913.911,1655.976],[2919.707,1662.042],[2925.853,1667.604],[2932.309,1672.534],[2939.038,1676.708],[2946,1680],[2940.627,1674.025],[2935.462,1667.507],[2930.328,1660.786],[2925.051,1654.2],[2919.455,1648.089],[2913.365,1642.792],[2906.605,1638.65]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":90.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 11"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[-5.806,-1.195],[1.212,2.872],[1.404,2.679],[1.59,2.494],[1.768,2.315],[1.94,2.143],[2.105,1.978],[2.263,1.82],[2.414,1.669],[4.719,-3.198],[4.878,-3.038],[4.345,-3.571],[3.119,-4.797],[-4.787,2.13],[-3.984,2.932],[-3.955,2.962],[-4.699,2.217],[-2.761,-4.239],[-2.698,-4.302],[-3.713,-3.287]],"o":[[-1.013,-3.071],[-1.212,-2.872],[-1.404,-2.679],[-1.59,-2.494],[-1.768,-2.315],[-1.94,-2.143],[-2.105,-1.978],[-2.263,-1.82],[-3.867,4.05],[-4.719,3.198],[-4.878,3.038],[-4.345,3.571],[6.363,-0.553],[4.787,-2.13],[3.984,-2.932],[3.955,-2.962],[3.901,3.099],[2.761,4.239],[2.698,4.302],[3.713,3.287]],"v":[[2546,1355],[2542.661,1346.088],[2538.736,1337.764],[2534.244,1330.006],[2529.205,1322.794],[2523.641,1316.108],[2517.572,1309.928],[2511.018,1304.232],[2504,1299],[2490.948,1309.698],[2476.379,1318.879],[2462.37,1328.621],[2451,1341],[2467.532,1336.782],[2480.496,1328.996],[2492.212,1319.962],[2505,1312],[2514.724,1323.276],[2522.644,1336.356],[2531.992,1348.008]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-12.948,-4.385],[5.481,4.599],[5.678,5.108],[5.708,6.312],[7.355,0.52],[8.96,-7.022],[10.401,-0.744],[7.66,9.84],[12.226,5.274],[4.92,-2.889],[5.293,-2.753],[4.411,-2.09],[0.73,-5.77],[-8.153,3.68],[-9.235,2.598],[-9.075,-9.925],[-12.794,-6.206],[-8.754,5.746],[-10.97,3.53],[-8.833,-8.5]],"o":[[0.601,-10.496],[-5.481,-4.599],[-5.813,-5.23],[-5.708,-6.312],[-11.759,-0.832],[-8.96,7.022],[-12.135,-5.365],[-7.66,-9.84],[-6.028,0.691],[-4.92,2.889],[-3.628,2.872],[-4.411,2.09],[12.153,0.32],[8.153,-3.68],[8.906,10.094],[9.075,9.925],[12.015,-2.485],[8.754,-5.746],[10.719,6.615],[8.833,8.5]],"v":[[2686,1393],[2677.209,1371.959],[2659,1359],[2642.157,1339.967],[2623,1328],[2592.981,1340.819],[2565,1356],[2537.569,1330.931],[2510,1306],[2493.948,1311.953],[2479,1321],[2465.827,1327.326],[2457,1338],[2486.189,1331.688],[2511,1321],[2537.084,1351.916],[2569,1377],[2598.784,1363.284],[2627,1348],[2654.828,1372.172]],"c":true}],"h":1},{"t":83,"s":[{"i":[[22.882,-4.118],[7.83,11.919],[14.45,-2.043],[9.462,-3.567],[6.53,-4.514],[1.003,-1.069],[-2.083,0.138],[-20.05,2.514],[-28.701,-8.633],[-20.124,6.209],[-25.966,-10.929],[-34.779,-2.311],[-20.544,-20.456],[-9.825,2.367],[8.906,9.427],[11.531,11.53],[13.418,2.01],[10.722,-4.911],[13.331,-2.171],[34.241,11.426]],"o":[[-11.23,-2.367],[-7.83,-11.919],[-8.622,1.219],[-9.462,3.567],[-1.073,-0.138],[-1.003,1.069],[21.541,5.262],[22.544,14.789],[21.827,-4.506],[25.624,12.319],[34.128,14.365],[26.322,14.678],[7.599,3.16],[-0.584,-17.75],[-9.38,-10.78],[-8.953,-8.953],[-12.851,-1.926],[-11.428,5.235],[-32.417,-13.249],[-20.864,6.135]],"v":[[2566,1358],[2539.915,1330.692],[2509,1310],[2480.932,1317.528],[2456,1330],[2452.133,1332],[2453,1334],[2513,1325],[2573,1377],[2627,1352],[2698,1404],[2779,1384],[2843,1443],[2867,1453],[2842,1423],[2811,1391],[2775,1364],[2738,1374],[2703,1387],[2621,1332]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[18.484,-4.353],[22.62,8.046],[2.826,-0.826],[11.902,-3.098],[0.876,-8.221],[-20.115,1.853],[-25.69,-9.977],[-19.324,5.009],[-18.072,-10.827],[-19.556,0.218],[-26.442,0.806],[-42.932,-19.401],[-28.514,5.152],[7.005,3.662],[21.658,-11.676],[23.192,17.142],[12.193,4.807],[26.521,-3.48],[21.35,9.317],[15.66,1.919]],"o":[[-22.615,-8.051],[-2.409,0.409],[-14.426,0.574],[-6.54,5.865],[22.47,6.922],[23.466,12.201],[18.13,-6.203],[13.18,10.274],[16.295,9.763],[24.807,-0.277],[35.833,26.5],[21.055,-12.612],[1.691,-12.358],[-30.066,3.267],[-22.58,-17.754],[-6.485,-10.515],[-30.48,-0.48],[-26.596,-4.07],[-10.654,-9.185],[-21.33,-2.614]],"v":[[2566,1352],[2518,1308],[2513,1307],[2477,1316],[2454,1332],[2514,1324],[2571,1374],[2617,1347],[2663,1381],[2718,1406],[2777,1384],[2882,1466],[2951,1434],[2940,1413],[2870,1443],[2803,1389],[2779,1362],[2711,1384],[2648,1355],[2616,1328]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[42.005,20.328],[8.823,-5.844],[15.375,0.708],[14.251,9.749],[19.443,4.557],[0.173,-0.327],[-0.081,-0.581],[0.036,-0.193],[-0.079,-0.108],[-19.557,-10.481],[-23.216,-3.784],[-20.152,7.848],[-16.891,-15.109],[-26.82,-5.18],[-26.518,6.482],[-44.479,-15.855],[9.282,6.855],[15.172,18.354],[13.067,3.471],[29.333,-5.333]],"o":[[-11.334,3.332],[-8.823,5.844],[-17.553,-6.447],[-14.251,-9.749],[-0.39,0.11],[-0.173,0.327],[0.064,0.12],[-0.036,0.193],[12.661,17.224],[15.564,11.436],[23.523,-4.477],[16.464,15.536],[18.178,13.822],[27.326,-5.674],[33.858,26.475],[-0.263,-14.601],[-19.893,-14.691],[-7.594,-9.187],[-28.238,6.429],[-41.309,-21.025]],"v":[[2771,1365],[2743.03,1381.03],[2709,1391],[2663.417,1364.583],[2615,1341],[2614.147,1341.647],[2614,1343],[2613.988,1343.509],[2614,1344],[2669,1381],[2721,1410],[2779,1384],[2830,1429],[2886,1469],[2956,1440],[3056,1521],[3032,1493],[2978,1443],[2951,1418],[2876,1447]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[26.635,12.032],[-11.361,-9.806],[-12.418,-8.749],[-8.556,0.618],[-9.181,-0.28],[-10.115,-12.052],[-15.137,-7.03],[-11.773,-0.227],[-11.04,-0.96],[-4.812,-5.854],[-5.797,-4.87],[-2.862,-2.472],[-2.604,-2.729],[-3.702,-2.536],[-1.806,1.488],[9.356,8.588],[16.604,10.349],[23.171,1.496],[28.409,16.258],[18.337,1.003]],"o":[[8.139,13.028],[11.361,9.806],[8.595,1.191],[8.556,-0.618],[12.403,9.764],[10.115,12.052],[9.87,2.13],[11.773,0.227],[5.953,4.713],[4.812,5.854],[1.949,3.384],[2.862,2.472],[2.385,1.345],[3.702,2.536],[-2.654,-14.729],[-14.045,-12.892],[-23.781,-0.886],[-26.434,-18.233],[-17.011,0.322],[-25.194,-13.472]],"v":[[2439,1397],[2468.791,1430.709],[2505,1458],[2530.56,1458.183],[2557,1457],[2588.95,1491.55],[2625,1522],[2658.122,1524.878],[2693,1526],[2708.617,1542.383],[2724,1559],[2731.509,1567.491],[2740,1575],[2749.934,1582.126],[2759,1585],[2732,1557],[2694,1514],[2623,1511],[2555,1445],[2505,1447]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[8.449,-3.029],[2.932,3.098],[2.848,3.19],[3.367,2.247],[4.489,0.269],[0.101,-0.4],[0.486,-0.014],[-7.613,-6.887],[-10.409,-4.091],[-10.01,0.203],[-8.975,-0.666],[-11.229,-12.604],[-13.722,-10.111],[-6.622,-0.412],[-4.448,2.739],[6.373,0.793],[7.065,0.101],[11.149,13.185],[15.374,8.959],[11.315,0.069]],"o":[[-3.618,-1.971],[-2.932,-3.098],[-2.848,-3.19],[-3.367,-2.247],[-0.112,0.388],[-0.101,0.4],[6.139,8.361],[7.613,6.887],[6.984,-2.854],[10.01,-0.203],[13.361,10.472],[11.229,12.604],[6.064,0.091],[6.622,0.412],[-2.441,-4.726],[-6.373,-0.793],[-14.03,-10.303],[-11.149,-13.185],[-9.289,-1.755],[-11.315,-0.069]],"v":[[2623,1513],[2613.326,1505.137],[2604.807,1495.447],[2595.635,1487.033],[2584,1483],[2583.78,1484.281],[2583,1485],[2603.297,1508.203],[2630,1525],[2656.506,1520.86],[2686,1522],[2721.729,1557.771],[2758,1593],[2777.712,1594.623],[2795,1592],[2780.968,1584.532],[2760,1584],[2724.008,1546.992],[2686,1512],[2653.87,1508.912]],"c":true}],"h":1},{"t":87,"s":[{"i":[[-11.78,-3.054],[3.972,5.362],[4.121,5.212],[4.214,5.12],[4.25,5.083],[10.194,0.473],[10.604,0.062],[9.837,11.83],[13.505,8.162],[3.578,0.078],[1.573,-1.928],[0.481,-0.353],[0.218,-0.615],[-3.837,-0.33],[-3.355,-0.811],[-9.803,-12.364],[-12.836,-9.331],[-10.316,-0.517],[-10.115,-0.718],[-7.411,-10.005]],"o":[[-3.766,-5.568],[-3.972,-5.362],[-4.121,-5.212],[-4.214,-5.12],[-9.621,-1.045],[-10.194,-0.473],[-11.148,-10.519],[-9.837,-11.83],[-3.114,0.385],[-3.578,-0.078],[-0.86,-0.027],[-0.481,0.353],[2.298,1.868],[3.836,0.33],[12.951,9.216],[9.803,12.363],[9.62,1.213],[10.316,0.517],[7.576,8.925],[7.411,10.005]],"v":[[2866,1646],[2854.379,1629.62],[2842.226,1613.774],[2829.71,1598.29],[2817,1583],[2787.237,1580.763],[2756,1580],[2725.768,1545.232],[2692,1514],[2681.344,1513.843],[2673,1516],[2671.019,1516.519],[2670,1518],[2679.707,1520.793],[2691,1522],[2723.586,1555.914],[2756,1590],[2786.129,1592.371],[2817,1594],[2838.347,1624.402]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[4.54,-0.04],[4.125,5.792],[4.335,5.582],[5.043,4.874],[6.249,3.668],[2.053,0.035],[1.956,-0.224],[1.8,-0.522],[1.585,-0.858],[-1.626,-1.633],[-2.568,-0.463],[-2.908,0.277],[-2.646,0.585],[-4.246,-5.254],[-3.839,-5.66],[-4.299,-5.201],[-5.624,-3.876],[-4.338,0.495],[-0.988,3.845],[4.071,0.429]],"o":[[-4.412,-5.504],[-4.125,-5.792],[-4.335,-5.582],[-5.043,-4.874],[-2.092,-0.255],[-2.053,-0.035],[-1.956,0.224],[-1.8,0.522],[0.083,3.234],[1.626,1.633],[2.568,0.463],[2.908,-0.277],[5.518,3.983],[4.246,5.254],[3.839,5.66],[4.299,5.201],[4.659,-0.175],[4.338,-0.495],[-2.177,-2.323],[-4.071,-0.429]],"v":[[2864,1640],[2851.319,1622.931],[2838.755,1605.746],[2824.813,1589.937],[2808,1577],[2801.767,1576.556],[2795.739,1576.831],[2790.091,1577.94],[2785,1580],[2787.714,1587.193],[2794.156,1590.228],[2802.519,1590.4],[2811,1589],[2825.429,1603.072],[2837.34,1619.66],[2849.331,1636.169],[2864,1650],[2878.253,1649.753],[2887,1644],[2877.273,1640.227]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[-5.204,-0.463],[7.809,3.389],[9.046,2.579],[8.714,2.9],[6.814,4.352],[0.171,-0.079],[0.137,-0.113],[0.147,-0.103],[0.203,-0.048],[0.143,-0.107],[0.086,-0.164],[0.025,-0.225],[-0.041,-0.291],[-3.306,-2.36],[-4.294,-1.373],[-4.716,-0.951],[-4.572,-1.095],[-4.044,-1.623],[-4.139,-1.528],[-4.525,-1.141]],"o":[[-5.003,-5.331],[-7.809,-3.389],[-9.046,-2.579],[-8.714,-2.9],[-0.251,-0.001],[-0.171,0.079],[-0.137,0.113],[-0.147,0.103],[-0.195,0.055],[-0.143,0.107],[-0.086,0.164],[-0.025,0.225],[1.753,3.914],[3.306,2.36],[4.294,1.373],[4.716,0.951],[4.241,1.425],[4.044,1.623],[4.139,1.528],[4.525,1.141]],"v":[[2552,1866],[2532.391,1853.203],[2506.717,1844.533],[2479.685,1836.596],[2456,1826],[2455.378,1826.128],[2454.927,1826.428],[2454.513,1826.763],[2454,1827],[2453.492,1827.242],[2453.147,1827.646],[2452.978,1828.228],[2453,1829],[2460.73,1838.27],[2472.272,1843.728],[2485.927,1847.072],[2500,1850],[2512.355,1854.645],[2524.556,1859.443],[2537.479,1863.52]],"c":true}],"h":1},{"t":89.400390625,"s":[{"i":[[-1.372,2.003],[2.143,-0.107],[2.055,-0.195],[1.969,-0.281],[1.883,-0.367],[1.799,-0.451],[1.715,-0.535],[1.633,-0.617],[1.552,-0.698],[1.472,-0.778],[1.394,-0.856],[1.316,-0.934],[1.24,-1.01],[-3.039,0.336],[-3.034,0.341],[-2.951,0.424],[-2.79,0.585],[-2.552,0.823],[-2.237,1.138],[-1.843,1.532]],"o":[[-2.232,0.018],[-2.143,0.107],[-2.055,0.195],[-1.969,0.281],[-1.883,0.367],[-1.799,0.451],[-1.715,0.535],[-1.633,0.617],[-1.552,0.698],[-1.472,0.778],[-1.394,0.856],[-1.316,0.934],[2.966,-0.409],[3.039,-0.336],[3.034,-0.341],[2.951,-0.424],[2.79,-0.585],[2.552,-0.823],[2.237,-1.138],[1.843,-1.532]],"v":[[1712,1800],[1705.437,1800.187],[1699.139,1800.639],[1693.104,1801.354],[1687.326,1802.326],[1681.804,1803.554],[1676.534,1805.034],[1671.511,1806.761],[1666.734,1808.734],[1662.197,1810.947],[1657.898,1813.398],[1653.834,1816.084],[1650,1819],[1659.027,1817.902],[1668.156,1816.906],[1677.152,1815.777],[1685.783,1814.283],[1693.816,1812.191],[1701.018,1809.268],[1707.157,1805.282]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":90.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 12"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[1.269,0.688],[-0.089,-1.411],[-0.174,-1.326],[-0.287,-1.213],[-0.427,-1.073],[-0.595,-0.905],[-0.789,-0.711],[-1.011,-0.489],[-1.26,-0.24],[0.045,1.728],[0.466,1.549],[0.799,1.355],[1.044,1.147],[1.201,0.925]],"o":[[0.031,1.469],[0.089,1.411],[0.174,1.326],[0.287,1.213],[0.427,1.073],[0.595,0.905],[0.789,0.711],[1.011,0.489],[0.465,-1.892],[-0.045,-1.728],[-0.466,-1.549],[-0.799,-1.355],[-1.044,-1.147],[-1.201,-0.925]],"v":[[2034,1351],[2034.172,1355.328],[2034.56,1359.44],[2035.245,1363.255],[2036.31,1366.69],[2037.836,1369.664],[2039.905,1372.095],[2042.599,1373.901],[2046,1375],[2046.608,1369.567],[2045.82,1364.649],[2043.901,1360.289],[2041.115,1356.533],[2037.727,1353.422]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[1.876,7.124],[4.903,-0.597],[4.425,-1.075],[3.934,-1.566],[3.432,-2.068],[-3.965,0.394],[-3.769,0.954],[-3.795,0.958],[-4.042,0.406],[-1.03,-3.47],[-1.247,-3.253],[-2.094,-2.406],[-3.57,-0.93],[3.002,5.998]],"o":[[-5.369,0.13],[-4.903,0.597],[-4.425,1.075],[-3.934,1.566],[4.381,0.722],[3.965,-0.394],[3.769,-0.954],[3.795,-0.958],[1.442,3.058],[1.03,3.47],[1.247,3.253],[2.094,2.406],[-0.117,-8.883],[-3.002,-5.998]],"v":[[2371,1351],[2355.588,1352.088],[2341.593,1354.593],[2329.052,1358.552],[2318,1364],[2330.463,1364.352],[2342.009,1362.192],[2353.3,1359.185],[2365,1357],[2368.55,1366.95],[2371.808,1377.192],[2376.661,1385.839],[2385,1391],[2379.319,1369.681]],"c":true}],"h":1},{"t":83,"s":[{"i":[[8.204,13.13],[8.986,-1.18],[5.914,-3.561],[-7.531,0.489],[-8.363,-0.372],[-4.697,-8.137],[-8.959,-3.874],[-7.505,1.162],[-7.751,0.916],[-5.175,-7.492],[-10.189,-2.477],[6.534,7.966],[7.436,7.064],[19.385,1.385]],"o":[[-9.141,-1.28],[-8.986,1.18],[6.515,2.583],[7.531,-0.489],[4.254,8.58],[4.697,8.137],[8.229,-0.437],[7.505,-1.162],[8.113,4.554],[5.174,7.492],[-3.427,-11.073],[-6.534,-7.966],[-18.859,-0.859],[-11.546,-9.787]],"v":[[2373,1356],[2345.079,1355.869],[2322,1363],[2343.114,1365.159],[2367,1364],[2379.471,1390.029],[2399,1409],[2422.359,1406.359],[2445,1403],[2462.943,1423.057],[2484,1440],[2468.507,1411.993],[2447,1390],[2398,1395]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[17.426,0.426],[3.61,7.39],[6.298,4.702],[14.358,-0.224],[-15.176,-2.824],[-16.862,-9.138],[-16.757,-0.09],[-22.983,-11.35],[-18.271,-3.553],[-28.085,-9.248],[7.718,11.282],[15.69,5.894],[23.412,1.845],[20.244,14.423]],"o":[[-7.263,-3.737],[-3.61,-7.39],[-14.22,-5.157],[6.249,11.751],[14.348,11.652],[16.624,-0.042],[20.126,14.207],[20.359,0.337],[24.11,13.223],[-1.866,-17.134],[-9.324,-12.132],[-16.5,-6.198],[-22.112,-12.554],[-15.248,1.752]],"v":[[2401,1397],[2386.277,1378.723],[2373,1359],[2320,1357],[2365,1366],[2399,1410],[2445,1406],[2499,1455],[2557,1456],[2614,1511],[2590,1478],[2560,1445],[2500,1443],[2447,1392]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[14.034,-0.752],[13.536,8.13],[17.527,-1.339],[-17.328,-0.672],[-17.686,-7.314],[-16.464,-1.131],[-63.994,6.66],[-28.144,-15.523],[-24.539,0.877],[24.185,-0.953],[21.878,19.789],[17.603,2.063],[11.633,11.632],[9.145,1.962]],"o":[[-13.188,-8.479],[-15.727,-3.914],[6.14,11.86],[14.175,10.825],[14.771,-0.562],[25.338,31.996],[22.373,21.293],[22.099,-4.307],[-6.552,-22.353],[-23.239,-18.428],[-17.342,-2.325],[-12.023,-5.794],[-6.915,-6.914],[-12.033,-2.582]],"v":[[2401,1394],[2373,1357],[2322,1356],[2367,1365],[2400,1407],[2440,1401],[2557,1456],[2623,1521],[2693,1521],[2621,1508],[2560,1444],[2503,1442],[2469,1417],[2439,1388]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[24.269,6.397],[0,-0.667],[0,-0.667],[-12.325,-8.675],[-15.157,-5.843],[-9.359,5.641],[-12.514,2.486],[-13.009,-13.43],[-13.023,-11.827],[-9.117,-1.289],[-1.458,13.341],[9.025,-4.618],[42.901,25.099],[20.852,-13.482]],"o":[[0,0.667],[0,0.667],[7.544,13.456],[12.325,8.675],[5.052,-9.948],[9.359,-5.641],[13.941,8.454],[13.009,13.43],[8.418,7.646],[16.636,2.353],[-10.342,-12.381],[-39.945,-28.055],[-36.464,-2.13],[-20.446,-10.221]],"v":[[2821,1414],[2821,1416],[2821,1418],[2851.291,1450.709],[2893,1472],[2914.903,1448.903],[2948,1437],[2988.189,1471.47],[3027,1511],[3058,1532],[3091,1509],[3053,1515],[2946,1418],[2876,1451]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[-5.034,15.633],[7.939,-5.061],[5.141,-7.859],[0.077,-9.092],[1.688,-7.237],[16.236,-5.097],[11.688,-9.646],[0.808,-5.481],[-1.541,-5.671],[-1.3,5.7],[-0.783,6.217],[-17.018,4.982],[-9.743,12.257],[7.681,15.902]],"o":[[-13.101,-0.101],[-7.939,5.061],[2.996,6.396],[-0.077,9.092],[-11.367,9.967],[-16.236,5.097],[-0.309,5.405],[-0.808,5.481],[7.015,0.015],[1.3,-5.7],[13.184,-8.816],[17.018,-4.982],[1.862,-19.262],[8.085,-12.581]],"v":[[1911,1574],[1880.03,1582.03],[1861,1602],[1865.014,1626.369],[1862,1652],[1818.241,1672.241],[1774,1692],[1771.613,1708.3],[1772,1725],[1783.174,1715.174],[1785,1696],[1833.081,1678.081],[1876,1655],[1875,1600]],"c":true}],"h":1},{"t":87,"s":[{"i":[[1.162,-0.163],[0.468,-3.365],[0.876,-2.958],[15.716,-3.617],[10.318,-9.015],[1.311,-9.189],[2.69,-7.81],[11.322,-1.512],[7.307,-5.526],[-4.794,-0.352],[-27.525,2.475],[-2.16,19.507],[-15.658,23.675],[6.205,1.128]],"o":[[-1.254,2.58],[-0.468,3.365],[-10.818,8.515],[-15.716,3.617],[-2.065,8.435],[-1.311,9.189],[-10.405,2.428],[-11.322,1.512],[0.135,2.005],[29.304,-0.696],[6.495,-15.172],[25.559,-13.774],[-0.708,-6.626],[-0.22,-0.78]],"v":[[1866,1640],[1863.716,1649.216],[1862,1659],[1819.625,1674.625],[1778,1691],[1773.469,1717.969],[1768,1744],[1734.177,1748.676],[1705,1758],[1703,1763],[1781,1751],[1790,1695],[1872,1659],[1868,1641]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[-10.844,5.156],[-0.037,3.903],[1.345,3.105],[2.459,0.65],[3.305,-3.463],[-0.356,-2.977],[0.059,-3.393],[13.548,-1.785],[11.899,-3.434],[-0.014,-5.589],[-4.537,-1.244],[-0.517,4.149],[-1.802,2.865],[-13.32,2.68]],"o":[[1.686,-3.043],[0.037,-3.903],[-1.345,-3.105],[-2.459,-0.65],[-0.366,3.699],[0.356,2.977],[-10.909,4.425],[-13.548,1.785],[-1.593,3.403],[0.014,5.588],[4.129,-0.538],[0.517,-4.149],[14.874,-1.126],[13.32,-2.68]],"v":[[1789,1747],[1791.517,1736.166],[1789.487,1725.24],[1783.714,1719.194],[1775,1723],[1775.27,1732.73],[1776,1742],[1738.243,1750.244],[1699,1757],[1695.902,1772.119],[1702,1784],[1707.745,1775.745],[1710,1764],[1752.523,1758.523]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[0.976,0.486],[5.514,-0.875],[5.307,-1.082],[4.971,-1.418],[4.506,-1.883],[3.913,-2.476],[3.191,-3.198],[-7.086,1.081],[-6.904,1.263],[-6.241,1.926],[-5.098,3.069],[-1.008,0.955],[-1.056,0.903],[-0.395,0.747]],"o":[[-5.593,0.796],[-5.514,0.875],[-5.307,1.082],[-4.971,1.418],[-4.506,1.883],[-3.913,2.476],[6.788,-1.379],[7.086,-1.081],[6.904,-1.263],[6.241,-1.926],[0.25,-0.902],[1.008,-0.955],[1.056,-0.903],[0.395,-0.747]],"v":[[815,2000],[798.308,2002.474],[782.044,2005.378],[766.596,2009.096],[752.348,2014.015],[739.688,2020.521],[729,2029],[749.93,2025.43],[771.035,2022.035],[790.872,2017.372],[808,2010],[810.065,2007.189],[813.339,2004.376],[815.693,2001.876]],"c":true}],"h":1},{"t":89.400390625,"s":[{"i":[[-0.002,1.943],[2.104,0.579],[1.71,-1.035],[1.19,-2.118],[0.544,-2.669],[-0.228,-2.688],[-1.125,-2.174],[-2.149,-1.128],[-3.298,0.45],[-0.431,1.514],[-0.37,1.575],[-0.296,1.648],[-0.21,1.734],[-0.112,1.832]],"o":[[-2.372,-2.726],[-2.104,-0.579],[-1.71,1.035],[-1.19,2.118],[-0.544,2.669],[0.228,2.688],[1.125,2.174],[2.149,1.128],[0.48,-1.465],[0.431,-1.514],[0.37,-1.575],[0.296,-1.648],[0.21,-1.734],[0.112,-1.832]],"v":[[2543,1858],[2536.255,1853.174],[2530.503,1853.991],[2526.122,1858.855],[2523.49,1866.169],[2522.985,1874.337],[2524.983,1881.762],[2529.862,1886.849],[2538,1888],[2539.369,1883.536],[2540.573,1878.906],[2541.575,1874.075],[2542.338,1869.005],[2542.825,1863.659]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":90.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 13"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[-0.22,1.447],[1.341,0.123],[1.248,-0.141],[1.144,-0.368],[1.03,-0.557],[0.904,-0.71],[0.767,-0.825],[0.619,-0.904],[0.459,-0.945],[-1.592,0.074],[-1.495,0.172],[-1.345,0.322],[-1.142,0.525],[-0.887,0.78],[-0.58,1.087]],"o":[[-1.422,-0.424],[-1.341,-0.123],[-1.248,0.141],[-1.144,0.368],[-1.03,0.557],[-0.904,0.71],[-0.767,0.825],[-0.619,0.904],[1.638,-0.029],[1.592,-0.074],[1.495,-0.172],[1.345,-0.322],[1.142,-0.525],[0.887,-0.78],[0.58,-1.087]],"v":[[2339,1357],[2334.853,1356.188],[2330.967,1356.224],[2327.375,1356.997],[2324.111,1358.393],[2321.208,1360.304],[2318.7,1362.616],[2316.619,1365.218],[2315,1368],[2319.859,1367.858],[2324.502,1367.502],[2328.774,1366.774],[2332.517,1365.517],[2335.574,1363.574],[2337.787,1360.787]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[3.362,3.971],[-0.492,-3.788],[-1.039,-3.653],[-1.028,-3.664],[-0.457,-3.821],[3.494,-0.423],[3.439,-0.478],[2.475,-1.441],[0.604,-3.313],[-3.813,0.215],[-3.496,0.928],[-3.185,1.249],[-2.881,1.177],[1.25,6.084],[1.787,5.546]],"o":[[-0.614,4.068],[0.492,3.788],[1.039,3.653],[1.028,3.664],[-2.641,1.276],[-3.494,0.423],[-3.439,0.478],[-2.475,1.441],[4.136,0.89],[3.813,-0.215],[3.496,-0.928],[3.185,-1.249],[-1.75,-5.584],[-1.25,-6.084],[-1.787,-5.546]],"v":[[2038,1354],[2037.957,1365.748],[2040.394,1376.871],[2043.634,1387.809],[2046,1399],[2036.57,1401.32],[2025.944,1402.444],[2016.845,1405.095],[2012,1412],[2023.921,1412.914],[2034.882,1411.101],[2044.903,1407.737],[2054,1404],[2049.76,1386.24],[2045.464,1368.536]],"c":true}],"h":1},{"t":83,"s":[{"i":[[8.005,9.995],[-0.786,-7.107],[0.528,-7.315],[8.46,-2.873],[4.352,-6.981],[-1.334,-7.333],[-0.358,-8.309],[7.973,-2.861],[2.325,-8.508],[-7.99,4.01],[-8.66,3.34],[1.572,7.928],[0.332,9.168],[-8.433,2.234],[-3.551,7.116]],"o":[[-2.614,6.258],[0.786,7.107],[-8.808,2.525],[-8.46,2.873],[0.308,8.359],[1.333,7.333],[-4.784,6.05],[-7.973,2.861],[12.381,0.381],[7.99,-4.01],[0.62,-10.12],[-1.572,-7.928],[5.717,-4.949],[8.433,-2.234],[-2.28,-15.72]],"v":[[2039,1358],[2037.436,1378.207],[2039,1400],[2012.158,1407.158],[1992,1421],[1994.963,1444.037],[1998,1467],[1976.657,1478.156],[1959,1493],[1988.291,1486.291],[2012,1474],[2009.715,1447.785],[2006,1423],[2029.125,1414.125],[2049,1402]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[9.315,10.032],[0.575,-7.758],[0.833,-7.5],[11.218,-9.449],[-1.417,-15.25],[11.129,-19.538],[3.981,-15.686],[11.987,-6.68],[0.895,-11.439],[-22.905,4.445],[-3.096,5.571],[0,17],[-15.006,14.661],[-1.292,18.625],[-11.498,7.169]],"o":[[-2.865,5.468],[-0.575,7.758],[-14.448,6.219],[-1.11,17.776],[-14.486,16.181],[-0.097,19.569],[-11.419,7.247],[-9.461,2.872],[25.351,1.328],[4.707,-3.96],[0,-17],[12.294,-17.373],[1.118,-18.452],[10.496,-8.17],[0.813,-15.063]],"v":[[2042,1357],[2037.476,1377.476],[2036,1401],[1992,1419],[1996,1465],[1943,1504],[1940,1560],[1900,1576],[1878,1591],[1943,1572],[1956,1559],[1956,1508],[2009,1472],[2005,1424],[2045,1408]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[9.662,10.775],[0.264,-15.736],[10.698,-10.969],[2.291,-14.471],[13.097,-22.236],[3.261,-14.072],[17.281,-20.386],[-4.502,-22.374],[-1.589,25.412],[-25.443,9.224],[-2.592,16.742],[-9.797,6.991],[-8.667,9.219],[0.794,14.672],[-9.338,9.328]],"o":[[-6.702,9.298],[-12.544,9.123],[1.895,13.571],[-22.936,12.397],[-0.388,16.946],[-28.369,9.297],[7.326,19.723],[23.862,-3.138],[21.347,-13.32],[3.997,-15.336],[7.127,-9.389],[10.037,-7.162],[4.2,-16.38],[11.028,-7.639],[0.411,-16.964]],"v":[[2043,1358],[2038,1401],[1993,1421],[2000,1462],[1942,1510],[1940,1560],[1865,1598],[1865,1662],[1882,1598],[1954,1566],[1957,1511],[1981,1486],[2013,1468],[2008,1425],[2047,1408]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[0.667,0],[10.702,-7.798],[8.847,-9.653],[-0.614,-8.211],[0.187,-8.778],[17.211,-22.123],[6.336,-17.331],[15.36,-11.307],[-3.009,-2.909],[-14.147,4.946],[-13.292,8.161],[-2.491,21.842],[-18.4,20.6],[-2.837,15.886],[-6.951,24.397]],"o":[[-11.345,7.155],[-10.702,7.798],[-1.269,8.376],[0.614,8.211],[-25.533,13.801],[-3.395,20.272],[-21.06,5.606],[-4.635,1.871],[15.244,1.821],[14.381,-5.027],[4.288,-20.046],[20.701,-18.299],[1.004,-17.078],[11.709,-22.969],[-0.667,0]],"v":[[2002,1460],[1968.627,1482.126],[1939,1508],[1938.688,1532.698],[1940,1558],[1863,1599],[1855,1662],[1796,1683],[1785,1695],[1826,1680],[1870,1666],[1877,1600],[1953,1559],[1951,1513],[2004,1460]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[5.318,7.348],[1.667,0],[1.667,0],[-2.122,-7.449],[-3.905,-5.226],[-13.494,-6.006],[-9.456,-10.044],[0.02,-8.687],[-0.16,-8.506],[-10.343,-4.573],[-10.913,-1.421],[8.415,3.085],[5.081,6.419],[1.911,15.221],[29.262,17.071]],"o":[[-1.667,0],[-1.667,0],[-1.395,8.978],[2.122,7.449],[15.57,3.93],[13.494,6.006],[0.922,7.745],[-0.021,8.687],[6.716,7.284],[10.343,4.573],[-4.26,-7.24],[-8.415,-3.085],[-3.047,-16.31],[-20.531,-25.802],[-2.91,-9.756]],"v":[[2295,1620],[2290,1620],[2285,1620],[2286.525,1644.814],[2296,1664],[2340.086,1678.414],[2375,1702],[2376.072,1726.929],[2376,1753],[2402.352,1770.897],[2435,1780],[2414.116,1766.384],[2392,1754],[2391,1701],[2302,1651]],"c":true}],"h":1},{"t":87,"s":[{"i":[[22.812,21.521],[-0.255,8.791],[2.914,6.611],[6.244,3.389],[6.61,-2.034],[-4.261,-1.906],[-2.784,-3.382],[1.884,-8.461],[-0.238,-8.905],[-15.282,-6.052],[-12.59,-8.744],[2.664,-5.571],[-1.095,-6.798],[-2.666,-2.001],[-7.353,13.313]],"o":[[2.896,-6.227],[0.255,-8.791],[-4.414,-3.476],[-6.244,-3.389],[3.172,2.994],[4.261,1.906],[4.3,8.251],[-1.884,8.461],[10.283,11.05],[15.282,6.052],[-1.44,5.919],[-2.664,5.571],[1.278,3.389],[12.567,-8.099],[-25.461,-18.872]],"v":[[2392,1749],[2396.858,1725.288],[2393,1701],[2376.648,1689.368],[2357,1686],[2368.791,1692.709],[2380,1700],[2381.546,1725.009],[2377,1751],[2417.27,1774.73],[2461,1795],[2453.599,1811.841],[2450,1830],[2459,1835],[2480,1794]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[2.207,9.908],[3.843,1.947],[4.099,1.681],[4.331,0.643],[4.54,-1.166],[-4.402,-1.598],[-4.55,-1.45],[-1.905,-4.095],[3.46,-5.54],[2.312,-6.688],[-8.444,-2.723],[-9.244,-1.923],[5.742,2.091],[5.177,2.655],[-2.64,7.356]],"o":[[-3.565,-1.442],[-3.843,-1.947],[-4.099,-1.681],[-4.331,-0.643],[1.461,4.539],[4.402,1.598],[4.55,1.45],[-0.847,8.153],[-3.46,5.54],[6.983,4.184],[8.443,2.723],[-2.854,-4.979],[-5.742,-2.091],[4.646,-4.667],[2.64,-7.356]],"v":[[2479,1788],[2467.882,1782.723],[2455.963,1777.088],[2443.313,1773.409],[2430,1774],[2439.493,1782.507],[2453.62,1786.38],[2464,1794],[2456.599,1813.599],[2447,1831],[2470.304,1841.195],[2497,1848],[2483.243,1838.257],[2466,1832],[2477.639,1813.931]],"c":true}],"h":1},{"t":88.6,"s":[{"i":[[9.38,4.454],[-2.185,-2.101],[-2.395,-1.891],[-2.508,-1.777],[-2.526,-1.76],[-2.448,-1.838],[-2.274,-2.012],[-2.004,-2.282],[-4.219,-3.396],[-4.216,-3.409],[-4.639,-2.559],[-5.489,-0.845],[8.09,7.025],[8.71,6.415],[9.14,5.558]],"o":[[1.879,2.406],[2.185,2.101],[2.395,1.891],[2.508,1.777],[2.526,1.76],[2.448,1.838],[2.274,2.012],[4.649,2.519],[4.219,3.396],[4.216,3.409],[4.639,2.559],[-7.279,-7.388],[-8.09,-7.025],[-8.71,-6.415],[-9.14,-5.558]],"v":[[626,267],[632.12,273.737],[639.014,279.701],[646.392,285.179],[653.968,290.461],[661.453,295.833],[668.56,301.583],[675,308],[688.194,317.088],[700.739,327.511],[713.915,336.679],[729,342],[705.899,320.32],[680.651,300.099],[653.827,282.079]],"c":true}],"h":1},{"t":89.400390625,"s":[{"i":[[0.447,-0.07],[2.168,-1.118],[2.126,-1.16],[2.055,-1.23],[1.957,-1.329],[1.83,-1.455],[1.676,-1.61],[1.493,-1.793],[-4.073,1.677],[-3.549,2.2],[-2.952,2.798],[-2.28,3.47],[-0.095,0.118],[0.079,0.139],[0.26,0.076]],"o":[[-2.182,1.103],[-2.168,1.118],[-2.126,1.16],[-2.055,1.23],[-1.957,1.329],[-1.83,1.455],[-1.676,1.61],[4.522,-1.228],[4.073,-1.677],[3.549,-2.201],[2.952,-2.798],[0.263,-0.014],[0.095,-0.118],[-0.079,-0.139],[-0.26,-0.076]],"v":[[742,2018],[735.467,2021.324],[729.019,2024.733],[722.74,2028.311],[716.714,2032.143],[711.026,2036.312],[705.76,2040.903],[701,2046],[713.91,2041.66],[725.362,2035.862],[735.133,2028.383],[743,2019],[743.539,2018.781],[743.565,2018.374],[743.058,2018.03]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":90.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 14"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[-0.947,6.807],[0.428,-0.105],[0.22,-0.313],[0.165,-0.368],[0.264,-0.269],[0.516,-0.017],[1.961,-5.373],[1.818,-5.515],[2.198,-5.135],[3.102,-4.231],[5.195,0.952],[4.833,0.72],[3.721,-1.217],[1.861,-4.859],[-4.361,-0.973],[-4.852,-0.481],[-5.066,-0.268],[-5.001,-0.333],[-2.853,6.178],[-2.315,6.725],[-1.679,6.935]],"o":[[-0.79,-0.256],[-0.428,0.105],[-0.22,0.313],[-0.165,0.368],[-0.264,0.269],[-2.626,4.707],[-1.961,5.373],[-1.818,5.515],[-2.198,5.135],[-4.809,0.521],[-5.195,-0.952],[-4.833,-0.72],[-3.721,1.217],[3.591,1.743],[4.361,0.973],[4.852,0.481],[5.066,0.268],[3.294,-5.292],[2.853,-6.178],[2.315,-6.725],[1.679,-6.935]],"v":[[1804,1388],[1802.212,1387.812],[1801.278,1388.478],[1800.738,1389.538],[1800.132,1390.532],[1799,1391],[1792.251,1406.251],[1786.714,1422.714],[1780.82,1438.82],[1773,1453],[1757.808,1451.927],[1742.579,1448.993],[1729.561,1449.312],[1721,1458],[1732.996,1462.004],[1746.885,1464.115],[1761.831,1465.168],[1777,1466],[1786.245,1448.711],[1794.02,1429.272],[1800.036,1408.697]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[-3.291,11.877],[3.246,-4.504],[2.487,-5.263],[2.748,-5.002],[4.028,-3.722],[8.327,0.122],[7.772,-0.765],[6.13,-2.143],[6.808,-13.692],[10.099,-10.401],[6.639,-1.027],[6.452,-1.215],[6.316,-1.517],[-0.132,-7.966],[-13.666,2.251],[-12.403,2.597],[-6.958,14.042],[-10.582,10.418],[-10.384,-0.051],[-9.215,1.119],[-5.411,12.338]],"o":[[-5.024,2.726],[-3.246,4.504],[-2.487,5.263],[-2.748,5.002],[-7.796,-0.518],[-8.327,-0.122],[-7.772,0.765],[-9.669,10.831],[-6.808,13.692],[-5.991,1.676],[-6.639,1.027],[-5.867,1.966],[-6.316,1.517],[14.933,1.599],[13.666,-2.251],[10.585,-10.416],[6.958,-14.042],[9.249,-1.084],[10.384,0.051],[9.064,-7.769],[5.411,-12.338]],"v":[[1802,1396],[1789.851,1407.1],[1781.507,1422.006],[1773.91,1437.659],[1764,1451],[1739.544,1449.917],[1715.124,1450.76],[1694,1455],[1670.822,1493.322],[1647,1531],[1627.846,1534.846],[1608,1538],[1588.001,1541.501],[1577,1554],[1619.897,1552.147],[1659,1544],[1683.502,1505.501],[1708,1467],[1738.026,1466.026],[1768,1465],[1789.331,1433.581]],"c":true}],"h":1},{"t":83,"s":[{"i":[[-9.408,27.26],[6.872,-11.295],[11.101,-7.066],[11.25,0.084],[8.276,-2.89],[7.044,-13.456],[10.865,-9.635],[15.469,-2.785],[11.677,-6.867],[13.005,-19.194],[21.213,-8.19],[10.008,-1.163],[9.848,-1.415],[0.401,-18.502],[-18.265,2.819],[-15.147,7.124],[-11.283,13.855],[-15.867,8.405],[-31.857,9.42],[-26.697,16.637],[-17.013,0.32]],"o":[[-12.412,5.755],[-6.872,11.295],[-9.722,1.445],[-11.25,-0.084],[-10.959,9.541],[-7.044,13.456],[-14.448,5.994],[-15.469,2.785],[-18.766,11.036],[-13.005,19.193],[-8.121,1.934],[-10.008,1.163],[-18.504,2.659],[19.779,-4.306],[18.502,-2.856],[17.265,-8.12],[11.88,-14.588],[25.003,-13.244],[23.495,-19.838],[15.49,-1.844],[23.777,-16.223]],"v":[[1808,1394],[1781.517,1422.017],[1757,1452],[1724.416,1452.916],[1694,1456],[1668.929,1492.429],[1644,1529],[1597.921,1540.345],[1556,1553],[1511.835,1603.135],[1464,1649],[1436.295,1653.389],[1406,1657],[1365,1681],[1422,1672],[1476,1660],[1522,1614],[1566,1566],[1654,1544],[1708,1468],[1759,1467]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[3.831,0.455],[0.333,0],[23.247,-13.086],[16.534,-4.466],[18.55,-16.784],[33.913,-15.42],[31.709,-21.625],[32.294,-23.372],[9.109,-13.224],[14.892,-9.108],[5.036,-6.964],[2.716,-6.284],[-3.85,0.753],[-10.279,8.741],[-31.912,27.327],[-41.751,-0.085],[-34.874,24.31],[-42.605,5.362],[-19.423,18.577],[-17.476,0.523],[-11.139,24.861]],"o":[[-0.333,0],[-24.03,12.303],[-18.119,2.881],[-17.081,18.253],[-46.181,3.152],[-26.744,26.59],[-47.641,8.026],[-10.075,12.258],[-12.754,11.246],[-5.684,6.316],[-5.051,3.949],[-1.363,0.18],[16.014,-0.285],[32.482,-27.623],[36.508,-5.159],[37.922,-20.72],[26.758,-18.653],[24.215,-13.785],[14.539,-3.461],[21.69,-14.31],[0.613,-2.506]],"v":[[1807,1397],[1806,1397],[1755,1455],[1695,1458],[1656,1525],[1546,1563],[1469,1646],[1339,1683],[1310,1721],[1271,1754],[1252,1771],[1240,1786],[1239,1790],[1275,1768],[1367,1683],[1472,1663],[1560,1573],[1662,1540],[1708,1472],[1760,1470],[1805,1407]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[19.894,8.439],[-7.419,-4.748],[-4.072,-8.095],[1.893,-5.607],[-0.467,-7.967],[-8.626,-3.041],[-5.613,-6.053],[-2.712,-9.788],[-3.289,-9.211],[-11.34,-5.66],[-7.341,-9.659],[-0.524,-9.988],[-1.932,-7.595],[-16.109,-7.727],[-19.144,1.329],[12.258,10.409],[12.402,10.264],[-4.59,15.284],[-13.887,64.992],[10.982,14.685],[-1.726,10.607]],"o":[[2.252,9.914],[7.419,4.747],[-0.896,6.603],[-1.893,5.608],[5.885,5.782],[8.626,3.041],[-1.137,13.637],[2.712,9.788],[9.298,7.702],[11.34,5.66],[-2.03,8.451],[0.524,9.989],[13.152,12.098],[15.722,7.542],[-5.559,-17.108],[-16.215,-6.451],[1.06,-17.916],[-29.145,-28.508],[-8.511,-17.156],[-0.497,-12.831],[-11.198,-17.135]],"v":[[2139,1397],[2155.635,1416.864],[2175,1434],[2169.977,1451.477],[2167,1471],[2190.204,1482.796],[2213,1495],[2216.18,1529.32],[2226,1557],[2258.468,1575.532],[2288,1597],[2286.028,1625.642],[2290,1653],[2338,1676],[2387,1697],[2347,1669],[2303,1645],[2304,1593],[2228,1493],[2181,1463],[2188,1433]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[1.615,-0.281],[-2.527,-10.251],[-0.562,-11.669],[-11.816,-5.518],[-9.331,-8.002],[-0.044,-10.623],[-2.493,-8.174],[-16.017,-7.149],[-11.926,-11.241],[-2.004,-10.684],[-12.289,0.449],[0.823,9.74],[-2.427,8.729],[17.188,7.645],[11.187,13.646],[0.062,10.105],[1.836,8.331],[12.133,4.746],[6.386,11.775],[1.756,10.32],[6.604,7.659]],"o":[[-1.671,12.327],[2.527,10.251],[8.405,8.928],[11.816,5.518],[0.333,10.333],[0.044,10.623],[13.005,10.162],[16.017,7.149],[-2.307,9.715],[2.004,10.684],[-1.137,-8.312],[-0.823,-9.74],[-13.061,-11.773],[-17.188,-7.645],[-0.918,-9.249],[-0.062,-10.105],[-10.081,-8.242],[-12.133,-4.746],[-4.372,-8.062],[-1.756,-10.32],[-1.279,-0.055]],"v":[[2213,1491],[2215.825,1523.993],[2222,1556],[2253.806,1576.194],[2287,1595],[2286.881,1627.119],[2290,1656],[2335.31,1680.19],[2379,1706],[2377.053,1739.623],[2397,1758],[2393.327,1730.313],[2395,1702],[2347.095,1675.405],[2302,1646],[2301.188,1616.312],[2299,1588],[2263.728,1571.149],[2234,1549],[2226.674,1520.198],[2216,1492]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[-25.846,49.154],[0.333,0],[0.333,0],[6.304,-5.853],[7.396,-3.64],[9.898,-1.951],[9.128,-1.12],[9.892,-1.177],[9.367,-4.178],[5.661,-4.368],[5.134,-4.198],[15.635,-13.044],[17.304,-10.612],[10.226,-0.941],[11.066,-0.101],[4.957,-2.376],[0.851,-6.483],[-12.642,1.595],[-13.236,-2.183],[-22.442,19.058],[-25.592,15.908]],"o":[[-0.333,0],[-0.333,0],[-8.388,4.947],[-6.304,5.853],[-8.281,4.077],[-9.898,1.951],[-9.063,1.112],[-9.892,1.177],[-5.221,2.329],[-5.661,4.368],[-16.155,13.211],[-15.635,13.044],[-11.032,0.135],[-10.226,0.941],[-4.321,3.013],[-4.957,2.376],[11.196,0.197],[12.642,-1.595],[27.641,-13.859],[22.442,-19.058],[65.909,-9.09]],"v":[[1276,1754],[1275,1754],[1274,1754],[1252.756,1770.98],[1233,1786],[1205.135,1794.717],[1176,1799],[1147.228,1801.7],[1118,1809],[1101.435,1819.598],[1085,1833],[1037.862,1872.949],[989,1909],[957.525,1911.026],[926,1913],[910.897,1919.898],[901,1932],[936.969,1928.511],[976,1928],[1049.037,1876.537],[1119,1822]],"c":true}],"h":1},{"t":87,"s":[{"i":[[0.5,0],[4.495,-3.339],[4.032,-3.801],[4.271,-3.562],[5.213,-2.621],[8.531,-0.972],[9.091,-0.092],[9.075,0.694],[11.424,-9.409],[10.168,-10.666],[-8.793,7.207],[-11.103,4.896],[-1.756,-0.411],[-2.138,-0.028],[-19.08,6.754],[-12.426,13.408],[-2.27,1.73],[-2.101,1.899],[-2.001,2.23],[2.34,2.869],[0.5,0]],"o":[[-5.659,2.174],[-4.495,3.339],[-4.032,3.801],[-4.271,3.562],[-7.394,1.947],[-8.531,0.972],[-9.091,0.092],[-13.137,7.697],[-11.424,9.409],[11.723,-4.278],[8.793,-7.207],[1.837,0.329],[1.756,0.411],[26.255,0.422],[19.08,-6.754],[1.817,-2.183],[2.271,-1.729],[1.334,-2.211],[2.001,-2.23],[-0.5,0],[-0.5,0]],"v":[[1050,1869],[1034.944,1877.444],[1022.33,1888.33],[1010.05,1899.55],[996,1909],[971.968,1913.355],[945.392,1914.927],[918,1914],[881.274,1939.774],[849,1970],[878.464,1951.464],[907,1932],[912.275,1933.225],[918,1934],[985.872,1924.372],[1033,1894],[1039.287,1888.287],[1046,1883],[1052.255,1876.494],[1053,1869],[1051.5,1869]],"c":true}],"h":1},{"t":87.8,"s":[{"i":[[0.216,4.716],[0.583,0],[0.583,0],[0.583,0],[0.583,0],[6.32,-4.264],[5.794,-4.789],[5.702,-4.881],[6.045,-4.539],[5.961,-4.372],[6.083,-4.25],[5.227,-5.106],[1.299,-1.201],[1.025,-1.475],[0.667,-0.667],[0.452,-0.881],[0.617,-0.771],[-2.044,0.236],[-20.819,17.014],[-21.433,16.4],[-2.982,1.518]],"o":[[-0.583,0],[-0.583,0],[-0.583,0],[-0.583,0],[-7.279,3.304],[-6.32,4.264],[-5.794,4.789],[-5.702,4.881],[-4.862,5.471],[-5.961,4.372],[-6.083,4.25],[-1.777,0.722],[-1.299,1.201],[-0.881,0.452],[-0.667,0.667],[-0.574,0.155],[-0.617,0.77],[25.289,-12.543],[20.819,-17.014],[3.288,-1.211],[2.982,-1.518]],"v":[[920,1919],[918.25,1919],[916.5,1919],[914.75,1919],[913,1919],[892.71,1930.46],[874.648,1944.148],[857.512,1958.762],[840,1973],[823.521,1987.521],[805.209,2000.209],[788,2014],[783.436,2016.935],[780,2021],[777.678,2022.678],[776,2025],[773.537,2026.793],[775,2028],[842.892,1982.392],[905,1931],[915.128,1927.628]],"c":true}],"h":1},{"t":88.599609375,"s":[{"i":[[3.293,0.582],[-0.799,-1.38],[-0.947,-1.359],[-1.084,-1.324],[-1.212,-1.273],[-1.328,-1.207],[-1.435,-1.126],[-1.53,-1.03],[-1.616,-0.92],[-1.691,-0.794],[-1.755,-0.653],[-1.809,-0.497],[-1.853,-0.326],[-1.886,-0.14],[1.81,2.065],[1.883,1.992],[2.003,1.872],[2.168,1.707],[2.38,1.495],[2.638,1.237],[2.943,0.932]],"o":[[0.64,1.386],[0.799,1.38],[0.947,1.359],[1.084,1.324],[1.212,1.273],[1.328,1.207],[1.435,1.126],[1.53,1.03],[1.616,0.92],[1.691,0.794],[1.755,0.653],[1.809,0.497],[1.853,0.326],[-1.783,-2.092],[-1.81,-2.065],[-1.883,-1.992],[-2.003,-1.872],[-2.168,-1.707],[-2.38,-1.495],[-2.638,-1.237],[-2.943,-0.932]],"v":[[3263,2097],[3265.161,2101.152],[3267.782,2105.265],[3270.831,2109.293],[3274.278,2113.191],[3278.09,2116.915],[3282.237,2120.419],[3286.687,2123.658],[3291.409,2126.586],[3296.371,2129.16],[3301.543,2131.333],[3306.892,2133.061],[3312.389,2134.298],[3318,2135],[3312.621,2128.754],[3307.092,2122.658],[3301.275,2116.85],[3295.029,2111.471],[3288.218,2106.657],[3280.701,2102.549],[3272.342,2099.283]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":89.400390625,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 15"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[1.182,0.401],[-0.594,-0.99],[-0.816,-0.767],[-1.015,-0.569],[-1.189,-0.394],[-1.339,-0.244],[-1.466,-0.117],[-1.568,-0.015],[-1.647,0.064],[0.549,1.035],[0.913,0.67],[1.187,0.396],[1.369,0.214],[1.459,0.124],[1.458,0.125],[1.366,0.217]],"o":[[0.347,1.236],[0.594,0.99],[0.816,0.767],[1.015,0.569],[1.189,0.394],[1.339,0.244],[1.466,0.117],[1.568,0.015],[-0.092,-1.491],[-0.549,-1.035],[-0.913,-0.67],[-1.187,-0.396],[-1.369,-0.214],[-1.459,-0.124],[-1.458,-0.125],[-1.366,-0.217]],"v":[[2127,1398],[2128.417,1401.333],[2130.538,1403.963],[2133.29,1405.961],[2136.601,1407.399],[2140.4,1408.35],[2144.614,1408.886],[2149.171,1409.079],[2154,1409],[2153.016,1405.234],[2150.8,1402.7],[2147.627,1401.123],[2143.77,1400.23],[2139.505,1399.746],[2135.105,1399.395],[2130.845,1398.905]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[4.973,1.277],[-3.64,-2.193],[-4.333,-1.5],[-4.027,-1.807],[-2.72,-3.114],[1.2,-2.309],[1.236,-2.252],[0.543,-2.567],[-0.879,-3.253],[-2.284,2.216],[-1.293,3.207],[-0.738,3.762],[-0.618,3.882],[4.408,1.842],[4.307,1.943],[4.495,1.755]],"o":[[1.947,3.887],[3.64,2.193],[4.334,1.5],[4.027,1.807],[-0.435,2.738],[-1.2,2.309],[-1.236,2.252],[-0.543,2.567],[3.709,-0.791],[2.284,-2.216],[1.293,-3.207],[0.738,-3.762],[-4.799,-1.451],[-4.408,-1.842],[-4.307,-1.943],[-4.495,-1.755]],"v":[[2132,1398],[2140.63,1406.87],[2152.84,1412.16],[2165.631,1416.869],[2176,1424],[2173.366,1431.478],[2169.529,1438.228],[2166.678,1445.364],[2167,1454],[2175.881,1449.381],[2181.137,1441.137],[2184.075,1430.575],[2186,1419],[2172.261,1413.989],[2159.261,1408.239],[2146.13,1402.62]],"c":true}],"h":1},{"t":83,"s":[{"i":[[8.182,2.152],[-7.115,-3.718],[-4.193,-6.64],[1.922,-6.412],[-0.649,-8.983],[-9.911,-4.089],[-7.349,-6.652],[0.77,-7.286],[-5.936,-3.384],[-0.503,8.497],[-1.453,7.547],[10.623,4.377],[7.15,7.85],[-1.709,5.791],[-0.716,6.784],[8.478,4.438]],"o":[[3.348,7.486],[7.115,3.718],[-1.963,6.37],[-1.922,6.412],[7.006,6.994],[9.911,4.089],[1.144,7.472],[-0.77,7.286],[6.534,-2.466],[0.503,-8.497],[-6.358,-8.642],[-10.623,-4.377],[1.45,-6.05],[1.709,-5.791],[-5.905,-6.096],[-8.478,-4.438]],"v":[[2137,1401],[2154.366,1416.134],[2173,1430],[2166.541,1448.54],[2164,1471],[2190.743,1486.256],[2218,1501],[2216.406,1524.066],[2222,1541],[2230.811,1522.811],[2232,1497],[2204.594,1479.406],[2176,1463],[2181.051,1445.551],[2185,1427],[2162.708,1411.042]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[18.145,5.19],[-7.036,-4.964],[-4.164,-7.836],[1.767,-5.733],[-0.398,-7.898],[-9.737,-4.264],[-6.037,-7.963],[-0.768,-7.899],[-1.019,-7.648],[-14.378,-24.955],[-20.298,-4.203],[-2.848,17.485],[15.821,25.846],[0.096,14.571],[3.407,18.275],[-0.305,12.582]],"o":[[3.69,8.309],[7.036,4.964],[-1.331,6.169],[-1.767,5.733],[6.016,7.984],[9.736,4.264],[-0.09,8.756],[0.768,7.899],[19.271,20.063],[0.943,16.858],[10.063,-10.27],[-15.794,-25.873],[-1.505,-13.161],[-7.231,-16.003],[-2.084,-11.176],[-11.323,-15.345]],"v":[[2137,1398],[2154.645,1416.355],[2173,1434],[2167.704,1451.204],[2165,1471],[2190.484,1487.516],[2216,1504],[2217.168,1528.832],[2220,1552],[2290,1600],[2297,1649],[2304,1595],[2232,1542],[2231,1499],[2178,1463],[2185,1432]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[0.89,0.443],[0.89,-0.443],[17.252,-6.126],[15.994,-8.737],[34.775,-22.899],[32.954,-15.712],[21.983,-20.783],[23.35,-14.021],[29.465,-11.201],[1.387,-12.28],[-46.431,1.903],[-43.828,38.838],[-37.023,12.31],[-37.184,21.483],[-17.85,7.014],[-9.882,15.899]],"o":[[-0.211,1.122],[-20.138,2.503],[-18.192,6.459],[-37.601,20.54],[-40.883,11.439],[-27.007,12.876],[-20.76,19.627],[-36.278,4.389],[-8.656,5.01],[37.777,-7.224],[49.403,-33.263],[32.998,-16.336],[34.191,-24.475],[16.597,-6.595],[17.788,-6.989],[-0.211,-1.122]],"v":[[1661,1520],[1659,1522],[1604,1538],[1551,1556],[1470,1645],[1352,1672],[1288,1734],[1224,1786],[1126,1810],[1103,1828],[1224,1802],[1356,1686],[1476,1658],[1561,1567],[1614,1547],[1663,1522]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-8.957,23.377],[1.882,-0.04],[1.425,-0.405],[13.434,-4.774],[9.802,-6.361],[16.873,-16.627],[21.086,-12.414],[28.528,-8.011],[16.38,-20.045],[6.514,-5.819],[2.173,-3.827],[2.323,-0.677],[-4.792,-0.237],[-29.86,14.806],[-33.009,29.324],[-29.455,32.725]],"o":[[-2.047,-1.564],[-1.882,0.04],[-12.463,3.541],[-13.434,4.774],[-13.423,20.077],[-16.873,16.627],[-30.509,6.912],[-28.528,8.011],[-6.314,6.02],[-1.46,4.54],[-2.323,0.677],[-0.469,1.217],[30.821,-13.845],[48.21,-14.123],[37.062,-26.165],[20.992,-11.342]],"v":[[1421,1655],[1415.033,1653.023],[1410,1654],[1370.004,1666.385],[1334,1683],[1288.748,1738.248],[1232,1782],[1140.904,1801.651],[1071,1841],[1052,1859],[1044,1869],[1039,1873],[1037,1877],[1115,1821],[1259,1778],[1354,1685]],"c":true}],"h":1},{"t":86.2,"s":[{"i":[[79.113,7.555],[-7.587,-2.746],[-8.311,-2.023],[-13.883,-18.117],[-18.204,-13.796],[-26.177,-8.489],[-26.667,-8],[-11.256,-13.578],[-20.2,-4.633],[5.509,5.809],[4.563,5.498],[5.257,6.92],[7.447,4.662],[13.501,3.823],[13.575,4.557],[27.26,8.398]],"o":[[5.341,4.992],[7.587,2.746],[19.264,12.736],[13.883,18.117],[25.623,9.043],[26.177,8.489],[11.778,13.055],[11.256,13.578],[-2.403,-8.265],[-5.509,-5.809],[-5.524,-6.657],[-5.257,-6.92],[-11.423,-7.152],[-13.501,-3.823],[-26.424,-8.871],[-43.151,-43.517]],"v":[[2781,1832],[2800.773,1843.227],[2825,1850],[2872.295,1898.705],[2918,1949],[2995.717,1975.282],[3075,2000],[3107.184,2042.317],[3152,2072],[3139.12,2051.424],[3123,2035],[3107.441,2014.005],[3089,1996],[3051.114,1980.554],[3010,1969],[2930,1943]],"c":true}],"h":1},{"t":87,"s":[{"i":[[37.02,3.981],[-0.03,-0.387],[-0.081,-0.335],[-0.136,-0.281],[-0.194,-0.222],[-4.806,-2.361],[-5.739,-1.428],[-5.939,-1.228],[-5.406,-1.761],[-9.418,-12.082],[-8.053,-13.447],[-14.548,-4.535],[-17.244,0.744],[10.71,3.457],[11.06,3.107],[23.503,17.497]],"o":[[-0.019,0.436],[0.03,0.387],[0.081,0.335],[0.136,0.281],[3.139,4.028],[4.806,2.361],[5.739,1.428],[5.939,1.228],[11.274,10.226],[9.418,12.082],[13.564,4.602],[14.548,4.535],[-10.102,-4.065],[-10.71,-3.457],[-14.969,-26.031],[-23.503,-17.497]],"v":[[3006,1967],[3006.015,1968.235],[3006.181,1969.319],[3006.505,1970.245],[3007,1971],[3019.1,1980.4],[3035.1,1985.9],[3052.8,1989.7],[3070,1994],[3100.916,2027.585],[3127,2066],[3168.74,2081.01],[3216,2088],[3184.718,2076.782],[3152,2067],[3095.538,2000.462]],"c":true}],"h":1},{"t":87.7998046875,"s":[{"i":[[6.01,-0.843],[-0.999,-1.539],[-1.462,-1.191],[-1.607,-0.932],[-1.435,-0.76],[-5.636,-1.995],[-5.935,-1.498],[-6.082,-1.254],[-6.076,-1.263],[-15.532,-5.042],[-15.662,-2.463],[-0.304,-0.195],[-0.222,0.727],[27.804,7.363],[27.749,7.418],[2.987,2.18]],"o":[[0.218,1.975],[0.999,1.539],[1.462,1.191],[1.607,0.932],[5.184,2.746],[5.636,1.995],[5.935,1.498],[6.082,1.254],[16.211,3.37],[15.532,5.042],[0.561,-0.052],[0.304,0.195],[-21.034,-14.132],[-27.804,-7.363],[-3.043,-2.124],[-2.987,-2.18]],"v":[[3131,2058],[3132.905,2063.248],[3136.675,2067.322],[3141.358,2070.484],[3146,2073],[3162.268,2080.048],[3179.662,2085.224],[3197.725,2089.288],[3216,2093],[3263.412,2106.68],[3310,2119],[3311.254,2119.507],[3312,2119],[3237.036,2088.464],[3152,2068],[3143.725,2060.775]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":88.599609375,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 16"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[5.153,4.181],[-1.015,-2.943],[-1.388,-2.571],[-1.634,-2.324],[-1.754,-2.205],[-1.747,-2.211],[-1.614,-2.344],[-1.355,-2.603],[-0.969,-2.989],[3.485,-1.249],[3.535,-1.199],[3.142,-1.591],[2.308,-2.425],[1.032,-3.701],[-5.587,1.31],[-5.2,2.683],[-4.388,3.156],[-3.151,2.73],[3.756,5.577],[3.807,5.526],[4.273,5.061]],"o":[[0.516,3.443],[1.015,2.943],[1.388,2.571],[1.634,2.324],[1.754,2.205],[1.747,2.211],[1.614,2.344],[1.355,2.603],[-2.993,1.74],[-3.485,1.249],[-3.535,1.199],[-3.142,1.591],[-2.308,2.425],[5.548,0.962],[5.587,-1.31],[5.2,-2.683],[4.388,-3.156],[-4.119,-5.214],[-3.756,-5.577],[-3.807,-5.526],[-4.273,-5.061]],"v":[[2078,1433],[2080.328,1442.547],[2083.963,1450.787],[2088.527,1458.098],[2093.64,1464.86],[2098.923,1471.452],[2103.997,1478.253],[2108.482,1485.643],[2112,1494],[2102.173,1498.373],[2091.533,1501.933],[2081.407,1506.007],[2073.121,1511.921],[2068,1521],[2084.809,1520.253],[2101.096,1514.038],[2115.585,1505.054],[2127,1496],[2115.291,1479.709],[2104.05,1462.95],[2092.034,1446.966]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[8.381,7.619],[-1.55,-4.867],[-2.315,-4.102],[-2.107,-4.309],[-0.927,-5.489],[7.164,-3.947],[6.201,-4.91],[3.841,-7.27],[-6.737,-9.763],[-5.168,-11.332],[9.658,-6.254],[2.55,-10.793],[-6.376,3.935],[-5.306,3.771],[-5.938,4.343],[-2.458,6.513],[7.549,9.785],[3.845,13.488],[-9.749,5.251],[-4.757,10.243],[5.982,10.018]],"o":[[-0.187,6.603],[1.55,4.867],[2.315,4.102],[2.107,4.309],[-6.731,4.38],[-7.164,3.947],[-6.201,4.91],[4.883,11.617],[6.737,9.763],[-4.817,10.19],[-9.658,6.254],[8.191,4.51],[6.376,-3.935],[5.789,-4.115],[5.938,-4.343],[-3.96,-13.373],[-7.549,-9.785],[6.245,-8.755],[9.749,-5.251],[-4.691,-11.309],[-5.982,-10.018]],"v":[[2082,1439],[2084.288,1455.962],[2090.329,1469.171],[2097.205,1481.545],[2102,1496],[2080.808,1508.141],[2060.412,1521.078],[2045,1539],[2063.286,1570.214],[2082,1601],[2057.3,1623.548],[2036,1647],[2057.664,1645.711],[2075,1632],[2093.498,1619.798],[2107,1604],[2087.914,1571.086],[2069,1538],[2095.116,1519.116],[2119,1498],[2103.268,1465.732]],"c":true}],"h":1},{"t":83,"s":[{"i":[[10.39,6.477],[0.667,0],[-5.274,-21.06],[1.793,-22.576],[-5.924,-8.773],[-3.425,-11.576],[11.953,-10.015],[0.421,-13.281],[-5.989,-9.924],[-3.17,-15.163],[15.868,-7.846],[4.269,-18.075],[-12.286,8.227],[-15.553,5.896],[-1.643,11.164],[5.175,11.867],[5.524,13.809],[-16.281,23.719],[8.382,24.618],[-11.227,16.773],[4.046,11.905]],"o":[[-0.667,0],[-2.067,28.401],[-11.131,14.95],[-0.867,10.921],[6.792,10.058],[-7.835,11.581],[-10.001,8.379],[-0.391,12.339],[7.489,12.411],[-10.384,12.609],[-14.952,7.393],[18.618,7.955],[13.52,-9.053],[7.471,-7.206],[2.399,-16.305],[-7.572,-11.762],[13.902,-26.098],[-8.58,-24.42],[9.81,-18.19],[-0.836,-13.954],[-4.075,-11.99]],"v":[[2087,1434],[2085,1434],[2100,1498],[2047,1541],[2062,1572],[2078,1603],[2047,1632],[2021,1667],[2039,1703],[2055,1742],[2013,1770],[1973,1800],[2019,1788],[2062,1766],[2081,1745],[2063,1705],[2044,1666],[2103,1605],[2067,1542],[2114,1505],[2104,1466]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[10.092,5.908],[0.333,0],[-2.993,-20.531],[0.434,-21.634],[-5.662,-6.868],[-4.405,-10.173],[12.734,-33.266],[-5.954,-28.379],[16.167,-14.5],[5.509,-19.158],[-9.868,-32.798],[-5.596,7.018],[13.768,29.899],[-22.803,12.53],[-4.489,12.178],[7.647,29.019],[-13.7,15.3],[-3.777,11.223],[7.429,22.571],[-5.695,19.411],[4.537,13.049]],"o":[[-0.333,0],[-8.886,22.762],[-5.977,18.281],[-0.194,9.648],[7.709,9.351],[-26.483,19.517],[6.433,27.901],[-18.473,12.193],[-15.45,9.217],[16.947,25.72],[6.916,3.128],[-5.253,-38.414],[21.833,-13.501],[11.931,-4.735],[-7.27,-29.397],[6.85,-22.15],[9.755,-5.245],[-4.117,-25.883],[8.073,-17.358],[3.957,-13.487],[-6.22,-9.78]],"v":[[2090,1437],[2089,1437],[2101,1499],[2049,1541],[2067,1567],[2084,1594],[2023,1671],[2055,1742],[1999,1778],[1960,1813],[2008,1893],[2035,1893],[1989,1808],[2052,1765],[2083,1746],[2048,1671],[2082,1618],[2106,1597],[2073,1540],[2118,1506],[2107,1468]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[37.114,21.886],[0.235,-0.48],[-0.743,-0.218],[-12.313,-15.353],[-12.309,-15.358],[-20.564,-4.602],[-17.189,-7.979],[-12.704,-16.963],[-15.865,-13.802],[-29.219,-8.947],[-26.226,-11.941],[-11.338,-12.828],[-15.011,-9.155],[-8.607,-3.392],[-0.352,4.442],[6.855,8.479],[8.168,7.165],[15.798,15.202],[55.74,19.592],[31.673,30.327],[32.352,15.315]],"o":[[0.198,0.86],[-0.235,0.48],[9.439,18.228],[12.313,15.353],[14.554,10.612],[20.564,4.602],[12.32,17.346],[12.704,16.963],[25.897,12.27],[29.219,8.947],[10.636,13.531],[11.338,12.828],[6.583,5.417],[2.009,0.311],[-1.885,-13.448],[-8.669,-6.665],[-15.129,-15.87],[-50.696,-24.637],[-33.441,-28.558],[-33.884,-13.782],[-33.995,-25.006]],"v":[[2403,1567],[2402.591,1568.981],[2403,1570],[2436.348,1619.652],[2474,1665],[2529.024,1685.476],[2588,1702],[2624.842,1754.158],[2667,1801],[2751.254,1831.247],[2836,1861],[2868.218,1901.282],[2907,1935],[2930,1948],[2938,1949],[2915,1926],[2891,1904],[2848,1854],[2681,1795],[2598,1692],[2489,1658]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-37.994,-7.006],[7.611,2.389],[5.428,4.572],[7.575,2.425],[8.042,1.958],[11.928,13.245],[11.811,12.901],[4.43,4.505],[4.369,2.708],[6.173,2.32],[6.087,2.484],[19.514,6.059],[22.359,3.18],[8.392,10.274],[14.309,4.358],[0.511,-0.323],[0.367,-0.467],[-0.184,-0.85],[-27.384,-16.949],[-41.91,-16.423],[-35.364,-29.969]],"o":[[-3.129,-6.871],[-7.611,-2.389],[-8.658,-1.342],[-7.575,-2.425],[-13.476,-11.117],[-11.928,-13.245],[-3.909,-4.27],[-4.43,-4.505],[-5.222,-3.237],[-6.173,-2.32],[-18.586,-7.583],[-19.514,-6.059],[-11.122,-7.544],[-8.392,-10.274],[-0.591,0.242],[-0.511,0.323],[-0.61,0.057],[15.865,28.468],[53.478,4.856],[33.481,31.852],[32.662,12.339]],"v":[[3021,1983],[3003.225,1970.775],[2982,1962],[2958.038,1955.962],[2935,1949],[2897.251,1911.838],[2862,1872],[2849.345,1858.329],[2836,1847],[2818.648,1838.935],[2800,1832],[2743.329,1811.198],[2681,1797],[2653.89,1768.11],[2622,1744],[2620.332,1744.831],[2619,1746],[2618,1747],[2685,1813],[2821,1852],[2918,1951]],"c":true}],"h":1},{"t":86.2001953125,"s":[{"i":[[-9.824,19.842],[1.685,2.731],[2.113,2.303],[2.746,1.67],[3.584,0.833],[-0.465,-2.149],[-1.24,-1.787],[-1.156,-1.87],[-0.21,-2.398],[6.449,-3.904],[7.544,-2.856],[7.763,-2.51],[10.999,-4.636],[6.156,-9.627],[-2.677,-3.823],[-2.858,-3.642],[-4.957,-0.123],[-3.67,1.163],[2.842,3.658],[1.434,5.066],[-21.98,7.687]],"o":[[-1.462,-2.955],[-1.685,-2.731],[-2.113,-2.303],[-2.746,-1.67],[-1.172,2.955],[0.465,2.149],[1.24,1.787],[1.156,1.87],[-4.479,5.654],[-6.449,3.904],[-7.544,2.856],[-11.849,3.831],[-10.999,4.636],[0.435,6.065],[2.677,3.823],[4.503,-0.331],[4.957,0.123],[-2.196,-4.304],[-2.842,-3.658],[17.255,-12.412],[21.98,-7.686]],"v":[[2029,1895],[2024.33,1886.42],[2018.683,1878.817],[2011.444,1872.806],[2002,1869],[2001.154,1876.544],[2003.927,1882.336],[2007.736,1887.71],[2010,1894],[1993.388,1908.162],[1972.179,1918.127],[1949,1926],[1913.731,1937.653],[1887,1958],[1892.183,1972.317],[1901,1983],[1915.624,1983.124],[1929,1982],[1920.929,1970.571],[1914,1958],[1977.073,1932.073]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":87,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 17"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":81.4,"s":[{"i":[[-0.092,-0.425],[-6.033,-1.8],[-6.895,-0.939],[-6.789,-1.044],[-5.717,-2.116],[0.306,-5.417],[-0.06,-5.073],[-2.211,-3.12],[-6.147,0.444],[0.233,5.595],[0.459,5.73],[-0.254,5.881],[7.246,1.312],[7.624,1.2],[8.127,1.241],[6.667,-0.197],[0.197,-0.137]],"o":[[4.204,3.629],[6.033,1.8],[6.895,0.939],[6.789,1.044],[1.112,4.151],[-0.306,5.417],[0.06,5.073],[2.211,3.12],[0.933,-5.476],[-0.233,-5.595],[-0.459,-5.73],[-4.39,-4.55],[-7.246,-1.312],[-7.824,-1.232],[-8.127,-1.241],[-0.305,0.028],[-0.197,0.137]],"v":[[2233,1461],[2248.597,1468.903],[2268.23,1472.77],[2288.998,1475.502],[2308,1480],[2308.762,1494.754],[2307.947,1510.892],[2310.909,1523.584],[2323,1528],[2323.815,1511.398],[2322.543,1494.414],[2322,1477],[2303.926,1468.988],[2281,1466],[2256.632,1461.928],[2234,1460],[2233.202,1460.203]],"c":true}],"h":1},{"t":82.2,"s":[{"i":[[31.633,-1.632],[-12.147,-3.354],[-9.73,-5.769],[-2.323,-10.343],[-4.025,-8.642],[-16.479,-3.521],[-15.329,-4.67],[-3.159,-5.841],[-3.171,-5.83],[-3.866,-5.238],[-8.962,1.955],[5.167,9.333],[2.356,12.144],[1.94,2.06],[1.934,2.066],[26.349,11.651],[3.561,19.105]],"o":[[8.683,6.817],[12.147,3.353],[0.683,11.984],[2.323,10.343],[12.753,7.247],[16.479,3.521],[3.194,5.806],[3.159,5.841],[2.573,6.004],[3.866,5.238],[-1.976,-12.524],[-5.167,-9.333],[-2.306,-1.694],[-1.94,-2.06],[-28.156,-9.844],[-4.732,-17.935],[-21.105,-12.229]],"v":[[2240,1464],[2272.714,1477.786],[2307,1490],[2311.494,1523.506],[2321,1552],[2366.068,1566.932],[2415,1578],[2424.518,1595.482],[2434,1613],[2442.709,1631.469],[2461,1638],[2448.785,1606.715],[2436,1576],[2429.721,1570.279],[2424,1564],[2334,1540],[2322,1484]],"c":true}],"h":1},{"t":83,"s":[{"i":[[31.197,3.804],[-13.324,-5.009],[-9.684,-8.649],[-2.234,-9.933],[-4.251,-7.916],[-16.047,-3.786],[-14.127,-5.706],[-23.568,-21.099],[-36.599,-20.068],[-9.955,-15.568],[-24.647,1.414],[9.06,14.273],[10.009,13.324],[44.261,15.405],[21.416,25.25],[24.801,13.866],[5.482,16.518]],"o":[[8.019,10.314],[13.324,5.009],[1.813,10.354],[2.234,9.933],[12.685,7.149],[16.047,3.786],[16.617,28.05],[40.61,16.058],[9.198,14.814],[9.195,14.38],[-4.209,-19.124],[-8.817,-14.516],[-34.982,-24.684],[-25.985,-20.682],[-26.886,-11.781],[-6.413,-15.587],[-22.958,-15.375]],"v":[[2238,1457],[2272.252,1477.749],[2309,1496],[2314.672,1526.828],[2324,1554],[2368.418,1569.082],[2415,1582],[2470,1661],[2595,1706],[2625,1752],[2666,1787],[2639,1744],[2612,1701],[2483,1651],[2425,1569],[2336,1542],[2323,1489]],"c":true}],"h":1},{"t":83.8,"s":[{"i":[[31.528,7.472],[0,-1.333],[-18.23,-17.77],[-8.984,-15.016],[-24.455,-8.545],[-22.641,-27.359],[-38.461,-15.539],[-29.893,-28.107],[-27.879,-8.77],[-31.107,-1.981],[26.277,10.291],[27.657,7.823],[14.624,37.043],[39.884,17.116],[14.507,37.16],[27.001,5.999],[7.742,15.925]],"o":[[0,1.333],[16.739,19.261],[5.156,18.844],[24.846,8.154],[10.201,39.798],[35.603,18.397],[20.162,37.839],[28.101,11.334],[27.19,8.553],[-15.403,-22.547],[-27.21,-10.656],[-22.376,-29.29],[-34.44,-22.56],[-28.663,-23.003],[-20.298,-12.702],[-11.839,-11.828],[-22.428,-16.572]],"v":[[2242,1455],[2242,1459],[2312,1497],[2327,1554],[2408,1572],[2471,1659],[2590,1702],[2666,1800],[2751,1824],[2834,1851],[2761,1814],[2676,1789],[2611,1699],[2488,1651],[2421,1563],[2343,1542],[2326,1488]],"c":true}],"h":1},{"t":84.6,"s":[{"i":[[0.851,-0.184],[11.057,-12.943],[10.379,-13.621],[-6.908,-30.759],[18.887,-11.594],[2.353,-16.215],[-6.903,-10.856],[-4.008,-17.435],[20.565,-35.101],[-14.481,9.59],[-9.601,4.197],[-13.223,16.726],[12.83,32.503],[-21.875,34.457],[3.147,32.519],[-11.891,20.305],[3.758,6.935]],"o":[[-13.395,10.605],[-11.057,12.944],[-2.812,40.479],[-18.795,8.744],[-14.089,8.649],[-2.298,15.837],[9.468,14.891],[-35.145,20.522],[24.777,3.885],[8.404,-5.566],[19.25,-8.414],[-13.601,-31.732],[26.506,-29.827],[-10.079,-25.588],[8.651,-23.507],[2.967,-5.066],[-0.057,-0.61]],"v":[[2087,1590],[2050.738,1625.738],[2019,1666],[2055,1743],[2003,1775],[1956,1812],[1977,1856],[2000,1898],[1895,1960],[1949,1941],[1976,1927],[2031,1900],[1982,1813],[2078,1740],[2040,1671],[2084,1612],[2088,1591]],"c":true}],"h":1},{"t":85.4,"s":[{"i":[[-5.584,21.75],[2.473,0.527],[3.207,-0.207],[8.936,-7.897],[6.084,-10.749],[-9.352,-10.981],[-3.476,-16.856],[11.442,-4.724],[9.595,-6.572],[10.437,-22.23],[-6.545,-6.122],[-8.688,-0.688],[2.019,10.314],[-36.254,19.412],[-3.374,6.293],[8.813,16.854],[5.603,12.397]],"o":[[-1.902,-1.098],[-2.473,-0.527],[-11.173,5.661],[-8.936,7.898],[9.115,11.218],[9.352,10.981],[-6.635,9.532],[-11.442,4.724],[-20.116,12.551],[3.414,9.252],[7.979,-0.021],[-1.765,-10.569],[34.354,-21.313],[4.43,-5.236],[-5.486,-20.181],[-8.82,-9.18],[10.845,-16.488]],"v":[[2021,1772],[2014.479,1769.521],[2006,1769],[1975.684,1789.184],[1953,1817],[1982.229,1848.772],[2003,1889],[1974.22,1908.72],[1941,1924],[1880,1961],[1895,1984],[1918,1983],[1904,1960],[2018,1907],[2031,1891],[2005,1840],[1979,1812]],"c":true}],"h":1},{"t":86.2001953125,"s":[{"i":[[10.89,11.11],[17.942,-19.891],[24.93,-12.902],[3.497,1.67],[3.436,1.731],[14.115,-9.683],[7.015,-13.377],[-5.053,5.613],[-7.389,3.278],[-5.639,0.528],[-6.105,0.062],[-5.728,-2.272],[-8.722,0.722],[-17.146,18.188],[-21.341,13.992],[-11.161,-2.272],[-2.488,14.228]],"o":[[-24.3,13.533],[-17.942,19.891],[-4.578,-0.589],[-3.497,-1.67],[-23.523,-3.111],[-14.115,9.683],[7.397,-3.27],[5.053,-5.613],[5.34,-0.827],[5.639,-0.528],[5.364,2.635],[5.728,2.272],[22.076,-13.257],[17.146,-18.188],[5.868,5.141],[11.161,2.272],[-12.244,-9.756]],"v":[[3110,636],[3049.973,689.473],[2989,742],[2977.143,738.357],[2967,733],[2911.119,745.134],[2880,782],[2897.506,767.506],[2915,753],[2931.426,750.926],[2949,750],[2964.982,758.018],[2986,761],[3042.551,711.551],[3098,661],[3127.035,675.527],[3151,661]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":80.6,"s":[0],"h":1},{"t":81.4,"s":[100],"h":1},{"t":87,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 18"}],"sw":4096,"sh":2304,"sc":"#ffffff","ip":79,"op":117,"st":79,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Auto-traced Electric 02.mov","cl":"mov","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[498,511,0],"ix":2},"a":{"a":0,"k":[2048,1152,0],"ix":1},"s":{"a":0,"k":[10.296,10.296,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-1.383,-0.395],[0.453,0.88],[0.514,0.853],[0.573,0.82],[0.631,0.781],[0.686,0.735],[0.74,0.683],[0.792,0.625],[0.842,0.56],[0.89,0.489],[0.936,0.411],[0.981,0.327],[1.024,0.237],[1.065,0.14],[1.104,0.037],[1.142,-0.072],[-0.759,-1.502],[-1.071,-1.263],[-1.317,-1.054],[-1.495,-0.872],[-1.607,-0.72],[-1.651,-0.596],[-1.629,-0.5],[-1.539,-0.433]],"o":[[-0.391,-0.9],[-0.453,-0.88],[-0.514,-0.853],[-0.573,-0.82],[-0.631,-0.781],[-0.686,-0.735],[-0.74,-0.683],[-0.792,-0.625],[-0.842,-0.56],[-0.89,-0.489],[-0.936,-0.411],[-0.981,-0.327],[-1.024,-0.237],[-1.065,-0.14],[-1.104,-0.037],[0.38,1.768],[0.759,1.502],[1.071,1.263],[1.317,1.054],[1.495,0.872],[1.607,0.72],[1.651,0.596],[1.629,0.5],[1.539,0.433]],"v":[[1972,828],[1970.733,825.328],[1969.282,822.726],[1967.65,820.214],[1965.843,817.811],[1963.867,815.535],[1961.728,813.407],[1959.43,811.444],[1956.98,809.666],[1954.381,808.092],[1951.641,806.741],[1948.765,805.633],[1945.757,804.785],[1942.623,804.218],[1939.369,803.95],[1936,804],[1937.726,808.898],[1940.488,813.038],[1944.087,816.506],[1948.322,819.388],[1952.991,821.769],[1957.894,823.735],[1962.83,825.372],[1967.599,826.765]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-0.943,4.806],[0.289,0.253],[0.318,0.224],[0.354,0.188],[0.397,0.144],[0.448,0.094],[0.506,0.036],[0.571,-0.029],[0.643,-0.101],[3.769,-2.565],[3.657,-2.676],[3.06,-3.274],[1.977,-4.356],[-5.238,-4.762],[-5.376,-4.624],[-5.7,-4.3],[-6.21,-3.79],[4.081,4.586],[4.916,3.751],[4.752,3.915],[3.59,5.077],[-3.472,2.278],[-3.492,2.258],[-2.649,3.101]],"o":[[-0.267,-0.274],[-0.289,-0.253],[-0.318,-0.224],[-0.354,-0.188],[-0.397,-0.144],[-0.448,-0.094],[-0.506,-0.036],[-0.571,0.029],[-3.396,2.938],[-3.769,2.565],[-3.657,2.676],[-3.06,3.274],[5.286,4.714],[5.238,4.762],[5.376,4.624],[5.7,4.3],[-2.247,-6.42],[-4.081,-4.586],[-4.916,-3.751],[-4.752,-3.915],[2.589,-3.161],[3.472,-2.278],[3.492,-2.258],[2.649,-3.101]],"v":[[1947,739],[1946.167,738.208],[1945.258,737.492],[1944.252,736.873],[1943.126,736.373],[1941.86,736.015],[1940.432,735.818],[1938.819,735.806],[1937,736],[1926.132,744.132],[1914.872,751.873],[1904.676,760.676],[1897,772],[1912.74,786.26],[1928.614,800.386],[1945.181,813.819],[1963,826],[1953.259,809.741],[1939.514,797.486],[1924.762,786.238],[1912,773],[1921.307,765.057],[1931.969,758.469],[1941.396,750.646]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-3.262,9.405],[1.246,0.723],[1.49,0.406],[1.624,-0.02],[1.647,-0.554],[3.467,-3.95],[3.322,-4.095],[3.069,-4.348],[2.709,-4.708],[-12.296,-9.37],[-8.366,-13.301],[7.134,-6.532],[3.362,-10.304],[-4.636,-4.53],[-3.957,-5.209],[-4.915,-4.668],[-6.392,-0.61],[7.47,7.863],[5.322,10.012],[-7.683,7.651],[-3.885,11.449],[11.694,9.139],[8.097,12.736],[-5.649,7.017]],"o":[[-0.891,-0.931],[-1.246,-0.723],[-1.49,-0.406],[-1.624,0.02],[-3.505,3.912],[-3.467,3.95],[-3.322,4.095],[-3.069,4.348],[7.448,14.218],[12.296,9.37],[-5.101,8.566],[-7.134,6.532],[2.497,6.669],[4.636,4.53],[4.948,3.72],[4.915,4.668],[-3.798,-11.535],[-7.47,-7.863],[8.385,-6.948],[7.683,-7.651],[-8.127,-12.707],[-11.694,-9.139],[5.14,-7.526],[5.649,-7.017]],"v":[[1931,611],[1927.766,608.492],[1923.633,606.772],[1918.934,606.166],[1914,607],[1903.516,618.766],[1893.307,630.806],[1883.694,643.444],[1875,657],[1906.812,690.188],[1940,722],[1920.196,743.196],[1903,767],[1914.405,783.095],[1928,797],[1942.417,810.832],[1959,820],[1940.643,792.357],[1920,767],[1944.875,745.875],[1963,718],[1931.477,687.022],[1900,656],[1916.909,634.909]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-10.003,27.331],[3.489,0.844],[4.604,-0.27],[5.246,-4.802],[6.952,-6.024],[5.301,-5.701],[0.385,-5.377],[-5.998,-5.264],[-4.644,-4.1],[-4.064,-4.102],[-4.4,-3.757],[-4.112,-4.162],[-2.037,-5.495],[6.297,-9.537],[4.223,-11.611],[-14.915,-26.085],[7.375,-18.625],[-8.133,-10.819],[-13.461,-5.501],[9.434,21.899],[-6.943,22.057],[12.724,26.276],[-2.417,29.249],[17.636,33.364]],"o":[[-1.44,-2.894],[-3.489,-0.844],[-5.063,4.77],[-5.246,4.801],[-4.409,3.821],[-5.301,5.701],[-0.634,8.842],[5.998,5.264],[4.343,3.834],[4.064,4.102],[4.516,3.856],[4.112,4.162],[-2.591,13.243],[-6.297,9.537],[15.91,25.09],[-8.351,17.649],[4.902,13.158],[8.022,10.671],[-3.239,-28.095],[11.71,-17.29],[-12.555,-26.445],[7.634,-24.033],[-19.006,-31.994],[12.852,-24.481]],"v":[[1914,454],[1906.373,448.627],[1894,448],[1878.916,462.06],[1861,478],[1844.982,492.833],[1835,510],[1845.042,530.556],[1863,544],[1875.457,556.058],[1888,568],[1901.359,579.77],[1911,594],[1896.224,626.724],[1879,657],[1940,719],[1905,762],[1928,796],[1956,826],[1923,765],[1962,717],[1906,656],[1936,591],[1861,513]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-14.941,27.726],[18.528,12.721],[17.41,13.93],[7.536,-2.337],[0.81,-0.19],[-6.623,-7.765],[-8.76,-7.24],[-12.632,-19.035],[4.783,-6.884],[3.294,-6.372],[4.307,-14.693],[-14.061,-11.654],[-7.695,-18.182],[4.377,-15.29],[2.494,-8.173],[-12.888,-25.445],[0.496,-17.9],[-6.811,-11.131],[-15.607,-3.393],[6.73,23.936],[-7.15,20.516],[14.557,20.777],[-0.401,35.933],[18.767,28.566]],"o":[[-11.876,-20.216],[-19.171,-13.163],[-6.883,-1.502],[-1.003,-0.003],[-1.081,12.155],[10.328,5.672],[17.028,14.639],[-4.871,6.795],[-3.896,5.771],[-7.846,11.154],[6.382,19.093],[14.125,11.707],[1.092,20.759],[-6.652,4.015],[3.649,34.684],[-5.475,16.028],[-0.382,13.773],[9.572,9.428],[-1.385,-29.281],[7.98,-19.687],[-15.332,-20.001],[16.533,-19.8],[-18.104,-29.229],[23.787,-18.88]],"v":[[1920,445],[1866,404],[1813,362],[1790,359],[1788,360],[1807,386],[1835,406],[1889,447],[1872,465],[1862,484],[1832,511],[1870,551],[1906,593],[1896,642],[1881,659],[1934,721],[1903,760],[1924,796],[1953,824],[1922,763],[1959,717],[1903,667],[1931,586],[1861,514]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-11.054,15.612],[5.703,0.131],[5.765,0.068],[8.838,-4.829],[4.958,-8.709],[-9.416,-7.25],[-9.922,-6.745],[-9.858,-6.975],[-6.334,-10.499],[10.354,-11.146],[6.46,-15.04],[-6.869,-5.204],[-7.687,-5.802],[-7.199,-6.461],[-0.927,-8.419],[5.911,-13.642],[-8.114,-13.554],[-2.901,7.273],[-2.545,7.084],[-3.071,7.436],[-0.028,8.775],[21.371,25.962],[-15.625,29.041],[29.351,34.649]],"o":[[-4.423,-1.409],[-5.703,-0.13],[-6.691,6.976],[-8.838,4.829],[8.412,8.254],[9.416,7.25],[9.233,7.6],[9.858,6.975],[-8.125,13.375],[-10.354,11.146],[4.839,7.383],[6.869,5.204],[6.276,4.737],[7.199,6.461],[1.528,13.88],[-5.911,13.641],[6.852,-3.825],[2.901,-7.273],[2.688,-7.479],[3.071,-7.436],[-14.406,-32.927],[19.425,-25.242],[-26.055,-37.945],[13.011,-13.656]],"v":[[1863,320],[1847.506,317.994],[1830,318],[1805.201,334.2],[1783,353],[1809.868,376.132],[1839,397],[1868.674,417.826],[1894,443],[1864.751,478.252],[1838,516],[1855.864,534.186],[1878,550],[1900.012,566.738],[1914,589],[1902.061,630.244],[1900,671],[1913.73,653.444],[1921,631],[1930.495,608.972],[1936,585],[1863,516],[1923,442],[1818,355]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[0.667,0],[7.755,-9.994],[11.035,-6.706],[7.554,-2.861],[7.436,-2.7],[22.17,-8.817],[19.896,-12.228],[8.693,-13.641],[2.925,-19.408],[14.499,-6.167],[7.385,-13.282],[-8.924,4.744],[-8.395,4.253],[-7.972,5.211],[-5.576,7.832],[-0.27,2.73],[-0.192,2.808],[-6.792,11.74],[-10.832,6.417],[-6.919,2.748],[-6.771,2.717],[-38.284,17.087],[-8.806,8.86],[3.821,12.7]],"o":[[-12.944,5.318],[-7.755,9.994],[-6.349,3.858],[-7.554,2.861],[-23.423,8.505],[-22.17,8.817],[-9.303,13.029],[-8.693,13.641],[-10.618,10.049],[-14.499,6.167],[11.91,0.229],[8.924,-4.744],[8.535,-4.323],[7.972,-5.211],[-0.271,-3.27],[0.27,-2.73],[6.998,-10.621],[6.792,-11.74],[5.554,-3.29],[6.919,-2.748],[41.153,-16.519],[10.243,-7.423],[3.882,-11.608],[-0.667,0]],"v":[[3007,302],[2978.068,326.959],[2952,354],[2930.816,363.869],[2908,372],[2839.354,397.207],[2776,428],[2747.716,466.716],[2729,515],[2688.576,536.575],[2653,563],[2683.636,554.861],[2709,540],[2734.219,526.132],[2755,507],[2755.153,498.153],[2756,490],[2775.624,454.846],[2801,426],[2820.088,417.071],[2841,409],[2964,360],[2991,334],[3009,302]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[2.938,-0.4],[0.167,0],[0.167,0],[12.017,-3.962],[13.221,-3.793],[12.61,-2.252],[10.029,-5.399],[6.477,-8.185],[5.575,-7.674],[6.439,-7.808],[8.051,-6.246],[26.355,-9.479],[22.794,-13.04],[3.977,-5.523],[0.745,-8.755],[-3.778,5.888],[-4.726,4.941],[-27.689,9.311],[-25.745,11.255],[-12.608,16.058],[-16.552,12.115],[-22.208,6.458],[-19.121,9.546],[-0.718,1.331]],"o":[[-0.167,0],[-0.167,0],[-11.709,2.361],[-12.017,3.962],[-12.53,3.594],[-12.61,2.252],[-8.519,4.586],[-6.476,8.185],[-6.191,8.522],[-6.439,7.808],[-25.788,10.046],[-26.354,9.478],[-4.348,5.151],[-3.977,5.524],[8.161,-1.505],[3.778,-5.888],[24.497,-12.502],[27.689,-9.311],[16.014,-12.653],[12.608,-16.058],[22.046,-6.621],[22.208,-6.458],[0.065,-1.076],[0.718,-1.331]],"v":[[3171,225],[3170.5,225],[3170,225],[3134.634,234.926],[3097,247],[3058.625,254.647],[3024,265],[3001.793,285.183],[2984,310],[2965.395,334.707],[2944,356],[2864.755,384.255],[2790,417],[2776.798,432.298],[2769,453],[2785.577,440.577],[2797,423],[2876.564,391.564],[2958,362],[2999.097,317.096],[3041,273],[3108.194,254.193],[3171,231],[3173.253,226.893]],"c":true}],"h":1},{"t":8,"s":[{"i":[[0.583,0],[3.118,-2.548],[2.583,-3.084],[2.798,-2.869],[3.765,-1.902],[18.159,-4.008],[16.978,-5.189],[12.831,-9.336],[5.716,-16.451],[-4.531,2.302],[-2.976,3.857],[-2.707,4.126],[-3.723,3.11],[-13.498,3.502],[-14.103,2.833],[-12.804,4.164],[-9.601,7.498],[-2.132,2.435],[-1.862,2.682],[-1.799,2.781],[-1.943,2.732],[0.583,0],[0.583,0],[0.583,0]],"o":[[-4.405,1.262],[-3.118,2.548],[-2.583,3.084],[-2.798,2.869],[-16.371,5.795],[-18.159,4.008],[-16.978,5.189],[-12.831,9.336],[7.372,0.538],[4.531,-2.302],[2.976,-3.857],[2.707,-4.126],[10.988,-6.172],[13.498,-3.502],[14.103,-2.833],[12.804,-4.164],[2.61,-2.039],[2.132,-2.435],[1.862,-2.682],[1.799,-2.781],[-0.583,0],[-0.583,0],[-0.583,0],[-0.583,0]],"v":[[3197,196],[3185.903,201.903],[3177.54,210.54],[3169.656,219.656],[3160,227],[3107.463,240.963],[3054.016,254.016],[3008.561,275.061],[2980,313],[2997.533,310.033],[3008.473,300.473],[3016.676,288.176],[3026,277],[3063.204,262.989],[3105.081,253.988],[3145.917,243.993],[3180,227],[3187.062,220.253],[3193.001,212.54],[3198.439,204.308],[3204,196],[3202.25,196],[3200.5,196],[3198.75,196]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-1.454,2.712],[0.974,-0.069],[1.054,-0.169],[1.112,-0.241],[1.146,-0.284],[1.156,-0.299],[1.143,-0.286],[1.107,-0.244],[1.048,-0.174],[0.973,-1.902],[1.148,-1.727],[1.301,-1.574],[1.433,-1.442],[1.543,-1.332],[1.631,-1.244],[1.697,-1.178],[1.742,-1.133],[-3.475,0.691],[-3.051,1.116],[-2.672,1.495],[-2.338,1.829],[-2.049,2.118],[-1.806,2.361],[-1.607,2.559]],"o":[[-0.87,-0.06],[-0.974,0.069],[-1.054,0.169],[-1.112,0.241],[-1.146,0.284],[-1.156,0.299],[-1.143,0.286],[-1.107,0.244],[-0.776,2.099],[-0.973,1.902],[-1.148,1.727],[-1.301,1.574],[-1.433,1.442],[-1.543,1.332],[-1.631,1.244],[-1.697,1.178],[3.945,-0.222],[3.475,-0.691],[3.051,-1.116],[2.672,-1.495],[2.338,-1.829],[2.049,-2.118],[1.806,-2.361],[1.607,-2.559]],"v":[[3207,195],[3204.228,195.02],[3201.18,195.383],[3197.925,196.004],[3194.533,196.798],[3191.075,197.679],[3187.62,198.564],[3184.238,199.366],[3181,200],[3178.37,205.995],[3175.183,211.433],[3171.503,216.378],[3167.396,220.896],[3162.927,225.052],[3158.162,228.912],[3153.164,232.539],[3148,236],[3159.119,234.619],[3168.896,231.896],[3177.469,227.969],[3184.972,222.972],[3191.54,217.04],[3197.311,210.311],[3202.419,202.919]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[1.589,3.994],[0.687,0.02],[0.623,-0.044],[0.567,-0.1],[0.519,-0.147],[0.48,-0.186],[0.45,-0.217],[0.427,-0.24],[0.413,-0.254],[-1.692,-3.892],[-2.155,-3.429],[-2.261,-3.322],[-2.01,-3.573],[0.629,-0.204],[0.666,-0.167],[0.454,-0.379],[-0.007,-0.841],[-2.198,-0.139],[-2.056,0.815],[-1.33,1.547],[-0.021,2.057],[2.096,3.488],[2.147,3.437],[1.978,3.605]],"o":[[-0.759,-0.092],[-0.687,-0.02],[-0.623,0.044],[-0.567,0.1],[-0.519,0.147],[-0.48,0.186],[-0.45,0.217],[-0.427,0.24],[0.871,4.712],[1.692,3.892],[2.155,3.429],[2.261,3.322],[-0.342,0.491],[-0.629,0.204],[-0.666,0.167],[-0.454,0.379],[1.756,1.315],[2.198,0.139],[2.056,-0.815],[1.33,-1.547],[-1.824,-3.759],[-2.096,-3.488],[-2.147,-3.437],[-1.978,-3.605]],"v":[[2319,436],[2316.833,435.833],[2314.871,435.871],[2313.089,436.089],[2311.462,436.462],[2309.964,436.964],[2308.572,437.571],[2307.258,438.258],[2306,439],[2309.933,451.817],[2315.792,462.708],[2322.505,472.745],[2329,483],[2327.48,483.98],[2325.475,484.475],[2323.732,485.232],[2323,487],[2329.077,489.127],[2335.602,488.058],[2340.827,484.461],[2343,479],[2337.065,468.185],[2330.647,457.853],[2324.405,447.345]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[1.648,0.019],[-0.736,-0.531],[-0.725,-0.542],[-0.722,-0.545],[-0.726,-0.541],[-0.737,-0.529],[-0.756,-0.511],[-0.782,-0.485],[-0.816,-0.451],[-0.856,-0.41],[-0.904,-0.362],[-0.96,-0.307],[-1.023,-0.244],[-1.093,-0.174],[-1.17,-0.097],[-1.255,-0.012],[0.996,1.153],[1.204,1.019],[1.376,0.883],[1.512,0.744],[1.612,0.603],[1.675,0.46],[1.703,0.315],[1.694,0.168]],"o":[[0.754,0.513],[0.736,0.531],[0.725,0.542],[0.722,0.545],[0.726,0.541],[0.737,0.529],[0.756,0.511],[0.782,0.485],[0.816,0.451],[0.856,0.41],[0.904,0.362],[0.96,0.307],[1.023,0.244],[1.093,0.174],[1.17,0.097],[-0.752,-1.286],[-0.996,-1.153],[-1.204,-1.019],[-1.376,-0.883],[-1.512,-0.744],[-1.612,-0.603],[-1.675,-0.46],[-1.703,-0.315],[-1.694,-0.168]],"v":[[600,257],[602.232,258.568],[604.421,260.179],[606.59,261.81],[608.76,263.44],[610.952,265.048],[613.191,266.609],[615.496,268.104],[617.891,269.509],[620.396,270.804],[623.036,271.964],[625.83,272.97],[628.802,273.798],[631.972,274.428],[635.365,274.835],[639,275],[636.369,271.341],[633.059,268.082],[629.179,265.228],[624.837,262.788],[620.141,260.766],[615.201,259.17],[610.125,258.006],[605.022,257.281]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[0.006,1.34],[0.708,0.27],[0.757,0.108],[0.773,-0.037],[0.755,-0.167],[0.705,-0.281],[0.621,-0.379],[0.504,-0.462],[0.353,-0.528],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[0,-0.25],[-0.89,-0.527],[-1.033,-0.384],[-1.252,-0.165],[-1.546,0.13],[-0.324,1.01],[-0.323,1.011],[-0.213,1.121]],"o":[[-0.625,-0.447],[-0.708,-0.27],[-0.757,-0.108],[-0.773,0.037],[-0.755,0.167],[-0.705,0.281],[-0.621,0.379],[-0.504,0.462],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0,0.25],[0.822,0.595],[0.89,0.527],[1.033,0.384],[1.252,0.165],[0.216,-1.117],[0.324,-1.01],[0.322,-1.011],[0.213,-1.121]],"v":[[2374,418],[2371.992,416.928],[2369.787,416.365],[2367.484,416.262],[2365.184,416.573],[2362.985,417.25],[2360.988,418.245],[2359.293,419.511],[2358,421],[2358,421.75],[2358,422.5],[2358,423.25],[2358,424],[2358,424.75],[2358,425.5],[2358,426.25],[2358,427],[2360.548,428.702],[2363.413,430.087],[2366.822,430.928],[2371,431],[2371.837,427.837],[2372.833,424.833],[2373.663,421.663]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[2.273,1.146],[0.352,-0.065],[0.282,-0.135],[0.238,-0.178],[0.221,-0.196],[0.23,-0.186],[0.266,-0.15],[0.328,-0.088],[0.417,0],[-0.475,-2.658],[-0.746,-2.388],[-1.053,-2.08],[-1.398,-1.736],[-1.779,-1.354],[-0.254,3.558],[0.573,3.492],[1.415,2.688]],"o":[[-0.448,-0.032],[-0.352,0.065],[-0.282,0.135],[-0.238,0.178],[-0.221,0.196],[-0.23,0.186],[-0.266,0.15],[-0.328,0.088],[0.241,2.892],[0.475,2.658],[0.746,2.388],[1.053,2.08],[1.398,1.736],[1.066,-2.886],[0.254,-3.558],[-0.573,-3.492],[-1.415,-2.688]],"v":[[2357,881],[2355.806,881.056],[2354.863,881.362],[2354.089,881.839],[2353.406,882.406],[2352.735,882.985],[2351.997,883.497],[2351.111,883.862],[2350,884],[2351.065,892.335],[2352.887,899.913],[2355.576,906.624],[2359.244,912.356],[2364,917],[2365.983,907.15],[2365.508,896.39],[2362.529,886.936]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-1.777,4.973],[4.648,-0.543],[4.286,-1.222],[4.086,-1.552],[4.045,-1.532],[4.166,-1.162],[-0.288,-6.295],[-0.649,-5.934],[-0.786,-5.797],[-0.7,-5.883],[-0.896,4.995],[0.653,5.94],[0.847,5.975],[-0.313,5.1],[-5.458,1.292],[-5.538,1.212],[-4.311,2.439]],"o":[[-5.17,-0.486],[-4.648,0.543],[-4.286,1.222],[-4.086,1.552],[-4.045,1.532],[-0.296,6.88],[0.288,6.295],[0.649,5.934],[0.786,5.797],[3.798,-3.139],[0.896,-4.995],[-0.653,-5.94],[-0.847,-5.975],[4.072,-2.678],[5.458,-1.292],[5.538,-1.212],[4.311,-2.439]],"v":[[2415,822],[2400.312,822.173],[2386.951,824.909],[2374.433,829.158],[2362.277,833.872],[2350,838],[2350.044,857.707],[2351.506,875.995],[2353.715,893.536],[2356,911],[2362.702,898.572],[2362.728,881.942],[2360.14,863.841],[2359,847],[2373.622,841.372],[2390.443,837.943],[2405.542,832.792]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-5.31,15.048],[1.896,0.437],[2.687,-0.354],[13.749,-7.085],[12.591,-8.241],[0.905,-11.928],[1.217,-11.616],[12.806,-4.694],[9.811,-7.689],[0.192,-11.838],[-2.425,-9.721],[-1.093,11.074],[-1.517,10.649],[-14.208,5.959],[-8.235,11.931],[-2.093,21.574],[-13.601,6.564]],"o":[[-1.729,-0.604],[-1.896,-0.437],[-14.413,6.42],[-13.749,7.085],[-2.162,10.671],[-0.905,11.928],[-9.966,7.534],[-12.806,4.694],[-1.657,9.929],[-0.192,11.838],[6.112,-6.054],[1.093,-11.074],[14.932,-5.234],[14.208,-5.959],[-0.328,-23.995],[12.028,-6.484],[13.005,-6.277]],"v":[[2529,693],[2523.719,691.281],[2517,691],[2474.634,711.134],[2435,734],[2430.792,768.291],[2428,804],[2392.383,820.883],[2357,838],[2353.939,871.656],[2357,905],[2366.446,877.946],[2369,844],[2414.023,828.523],[2449,803],[2455,738],[2493,717]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-5.224,23.065],[1.808,-0.183],[0.881,-0.416],[23.588,-9.875],[17.297,-13.429],[5.526,-14.141],[5.559,-14.109],[27.775,-25.558],[3.247,-20.42],[17.367,-17.967],[0.154,-27.846],[-6.575,22.425],[-16.359,22.641],[-3.404,20.596],[-28.101,25.899],[-19.263,23.404],[-21.518,9.887]],"o":[[-1.887,-0.149],[-1.808,0.183],[-21.35,10.072],[-23.588,9.875],[-6.338,13.328],[-5.526,14.141],[-29.73,23.603],[-3.243,20.424],[-15.132,20.202],[-6.146,21.854],[17.967,-11.033],[23.433,-15.567],[3.322,-20.678],[30.779,-23.221],[13.434,-29.233],[18.39,-9.75],[20.437,-9.391]],"v":[[2715,527],[2709.245,527.076],[2705,528],[2635.461,556.983],[2572,591],[2554.415,632.415],[2538,675],[2439,736],[2431,799],[2362,836],[2350,908],[2373,844],[2449,803],[2458,740],[2557,677],[2597,589],[2660,561]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-5.483,18.85],[2.595,-1.202],[20.54,-29.212],[48.366,-14.967],[19.081,-25.585],[17.718,-14.949],[12.156,-16.51],[0.687,-18.313],[14.602,-18.731],[-0.273,-27.94],[-5.502,22.499],[-14.837,23.163],[-5.305,15.932],[-29.925,34.741],[-19.109,16.891],[-38.776,33.89],[-8.276,16.057]],"o":[[-5.167,-1.913],[-34.936,16.187],[-43.469,19.864],[-23.78,20.886],[-16.572,16.095],[-18.351,10.316],[-3.298,15.702],[-13.056,20.277],[-8.485,19.182],[17.89,-6.778],[21.172,-16.829],[-1.035,-19.506],[45.013,-19.653],[11.842,-24.159],[49.92,-22.746],[7.594,-16.739],[10.173,-14.16]],"v":[[2795,423],[2781,423],[2714,522],[2582,580],[2538,670],[2483,713],[2429,745],[2425,798],[2361,834],[2349,905],[2372,842],[2446,802],[2450,744],[2564,664],[2598,590],[2742,516],[2765,466]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-1.026,7.114],[0.563,0.205],[1.57,-0.555],[27.483,-11.017],[28.513,-9.988],[10.704,-17.796],[11.983,-16.517],[26.291,-11.042],[20.677,-16.657],[11.636,-19.202],[18.268,-13.509],[8.855,-22.077],[-38.794,25.539],[-9.988,27.678],[-42.984,30.682],[-30.444,26.223],[-39.702,22.297]],"o":[[-1.179,-0.734],[-0.563,-0.205],[-27.555,10.945],[-27.483,11.017],[-13.202,15.298],[-10.704,17.796],[-22.158,15.176],[-26.291,11.042],[-12.251,21.671],[-11.499,18.975],[-19.663,14.54],[43.234,-21.1],[14.576,-23.091],[49.701,-23.966],[25.515,-31.152],[46.002,-16.983],[5.275,-2.962]],"v":[[2962,350],[2959.793,348.533],[2957,349],[2874.718,382.218],[2791,414],[2756.086,464.586],[2723,517],[2647.889,553.889],[2575,593],[2552,661],[2497,704],[2445,749],[2562,673],[2594,592],[2743,520],[2812,419],[2947,363]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-4.645,8.948],[3.386,0.281],[3.68,-0.013],[3.619,0.047],[8.003,-5.664],[3.867,-9.799],[-10.457,-8.537],[-11.396,-7.738],[-8.707,-4.496],[-6.167,-7.58],[4.369,-5.631],[2.167,-7.833],[-8.254,11.032],[-1.734,12.101],[18.503,10.997],[11.635,17.865],[-8.552,5.512]],"o":[[-2.738,-0.929],[-3.386,-0.281],[-3.68,0.013],[-7.121,6.545],[-8.003,5.664],[6.775,12.115],[10.457,8.537],[8.004,5.435],[8.707,4.496],[-3.359,6.641],[-4.369,5.631],[13.251,10.228],[8.254,-11.032],[-18.352,-11.149],[-18.503,-10.996],[5.146,-9.003],[8.552,-5.512]],"v":[[1863,320],[1853.726,318.274],[1843.038,317.962],[1832,318],[1808.059,335.059],[1789,357],[1815.534,387.283],[1849,411],[1874.878,424.891],[1898,442],[1885.606,459.606],[1875,479],[1907.638,472.746],[1923,433],[1865.962,401.538],[1819,360],[1841.376,339.959]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-9.67,4.829],[3.262,0.154],[3.438,-0.021],[3.457,-0.04],[3.32,0.097],[3.018,-2.482],[2.585,-2.915],[2.024,-3.476],[1.336,-4.164],[-3.397,-3.27],[-4.176,-2.49],[-4.691,-1.976],[-4.941,-1.726],[3.349,2.651],[3.693,2.307],[1.508,4.492],[-8.31,6.19]],"o":[[-2.93,-0.486],[-3.262,-0.154],[-3.438,0.021],[-3.457,0.04],[-3.323,2.177],[-3.018,2.482],[-2.585,2.915],[-2.024,3.476],[2.353,4.313],[3.397,3.27],[4.176,2.49],[4.691,1.976],[-0.476,-5.524],[-3.349,-2.651],[-3.693,-2.307],[5.088,-9.412],[8.31,-6.19]],"v":[[1857,319],[1847.672,318.078],[1837.583,317.917],[1827.203,318.047],[1817,318],[1807.456,324.956],[1799.019,333.019],[1792.072,342.572],[1787,354],[1795.691,365.308],[1807.118,373.882],[1820.485,380.515],[1835,386],[1828.629,374.371],[1817.433,367.567],[1809,358],[1829.564,335.063]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-8.127,0.461],[3.302,2.781],[4.725,1.358],[5.311,0.773],[5.058,1.025],[14.064,15.047],[17.045,12.066],[27.141,1.97],[0.273,-0.227],[0.405,-0.095],[0,-0.5],[0,-0.5],[-8.101,-2.566],[-8.863,-1.803],[-19.441,-17.726],[-22.977,-14.19],[-6.119,-1.548]],"o":[[-1.041,-5.042],[-3.302,-2.781],[-4.725,-1.358],[-5.311,-0.773],[-18.197,-10.914],[-14.064,-15.047],[-17.045,-12.066],[-0.502,-0.001],[-0.273,0.227],[0,0.5],[0,0.5],[6.733,3.935],[8.101,2.565],[19.26,17.907],[19.441,17.726],[7.399,0.268],[6.119,1.548]],"v":[[956,463],[949.276,451.474],[937.025,445.474],[921.762,442.488],[906,440],[859.386,399.28],[814.501,356.832],[750,334],[748.928,334.428],[748,335],[748,336.5],[748,338],[770.402,347.598],[796,354],[853.212,408.288],[916,457],[935.454,460.546]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[9.354,2.848],[-6.126,-3.341],[-7.303,-2.163],[-8.039,-1.427],[-8.334,-1.133],[-8.187,-1.28],[-1.32,-1.097],[-1.37,-1.047],[-1.615,-0.801],[-2.056,-0.361],[0.456,1.071],[0.898,0.905],[0.993,0.757],[0.742,0.625],[9.499,3.272],[10.848,1.989],[10.8,1.848]],"o":[[4.507,4.96],[6.126,3.341],[7.303,2.163],[8.039,1.427],[8.334,1.133],[1.464,0.952],[1.32,1.097],[1.37,1.047],[1.615,0.801],[0.334,-1.254],[-0.456,-1.071],[-0.898,-0.905],[-0.993,-0.757],[-6.753,-5.696],[-9.499,-3.272],[-10.848,-1.989],[-10.8,-1.848]],"v":[[687,320],[703.059,332.341],[723.313,340.487],[746.438,345.762],[771.108,349.492],[796,353],[800.127,356.123],[804.113,359.387],[808.542,362.208],[814,364],[813.731,360.518],[811.613,357.558],[808.689,355.069],[806,353],[781.273,339.834],[750.403,332.228],[717.581,326.758]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-0.092,-0.426],[-6.192,-2.474],[-7.092,-1.575],[-7.354,-1.313],[-6.977,-1.689],[-0.968,-0.856],[-0.913,-0.866],[-1.113,-0.327],[-1.569,0.762],[2.705,2.39],[3.934,1.297],[4.387,0.758],[4.065,0.773],[5.996,1.456],[5.632,1.264],[4.677,0.521],[0.197,-0.137]],"o":[[4.655,4.012],[6.192,2.474],[7.092,1.575],[7.354,1.313],[1.278,0.297],[0.968,0.856],[0.913,0.866],[1.113,0.327],[-0.7,-4.037],[-2.705,-2.39],[-3.934,-1.297],[-4.387,-0.758],[-5.771,-1.097],[-5.996,-1.456],[-5.632,-1.264],[-0.305,0.029],[-0.197,0.136]],"v":[[1393,515],[1409.43,524.57],[1429.515,530.485],[1451.344,534.656],[1473,539],[1476.306,540.868],[1479.064,543.589],[1482.041,545.516],[1486,545],[1480.698,535.497],[1470.547,530.104],[1457.872,527.158],[1445,525],[1427.201,521.032],[1409.611,516.815],[1394,514],[1393.202,514.202]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-3.816,3.279],[1.697,-0.095],[1.555,-0.237],[1.439,-0.353],[1.348,-0.443],[1.283,-0.508],[1.244,-0.548],[1.231,-0.561],[1.243,-0.549],[2.398,-0.535],[2.342,-0.591],[2.065,-0.868],[1.565,-1.368],[0.843,-2.09],[-6.082,1.032],[-5.346,2.189],[-4.591,2.938]],"o":[[-1.865,-0.073],[-1.697,0.095],[-1.555,0.237],[-1.439,0.353],[-1.348,0.444],[-1.283,0.508],[-1.244,0.548],[-1.231,0.561],[-2.231,0.702],[-2.398,0.535],[-2.342,0.591],[-2.065,0.868],[-1.565,1.368],[6.799,0.534],[6.082,-1.032],[5.346,-2.189],[4.591,-2.938]],"v":[[2370,426],[2364.664,426.039],[2359.792,426.543],[2355.308,427.434],[2351.134,428.635],[2347.194,430.069],[2343.409,431.659],[2339.704,433.329],[2336,435],[2329.001,436.801],[2321.835,438.435],[2315.168,440.568],[2309.668,443.867],[2306,449],[2325.327,448.152],[2342.474,443.219],[2357.385,435.427]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[1.209,0.249],[-0.349,-1.038],[-0.659,-0.856],[-0.902,-0.67],[-1.081,-0.48],[-1.195,-0.286],[-1.243,-0.088],[-1.226,0.113],[-1.144,0.319],[-0.996,0.528],[0.917,0.542],[0.958,0.5],[1,0.459],[1.041,0.417],[1.083,0.375],[1.125,0.333],[1.167,0.291]],"o":[[-0.025,1.217],[0.349,1.038],[0.659,0.856],[0.902,0.67],[1.081,0.48],[1.195,0.286],[1.243,0.088],[1.226,-0.113],[1.144,-0.319],[-0.875,-0.583],[-0.917,-0.542],[-0.958,-0.5],[-1,-0.459],[-1.041,-0.417],[-1.083,-0.375],[-1.125,-0.333],[-1.167,-0.291]],"v":[[1373,479],[1373.503,482.384],[1375.031,485.227],[1377.389,487.516],[1380.381,489.242],[1383.811,490.391],[1387.483,490.953],[1391.203,490.916],[1394.774,490.269],[1398,489],[1395.312,487.312],[1392.5,485.75],[1389.563,484.311],[1386.502,482.998],[1383.315,481.81],[1380.002,480.748],[1376.564,479.811]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 2"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-1.407,1.489],[1.52,0.327],[1.585,0.102],[1.62,-0.076],[1.624,-0.208],[1.597,-0.293],[1.539,-0.331],[1.45,-0.323],[1.331,-0.268],[-0.02,-0.48],[-0.089,-0.411],[-0.14,-0.36],[-0.173,-0.327],[-0.188,-0.312],[-0.185,-0.315],[-0.163,-0.337],[-0.124,-0.376],[-2.723,0.063],[-2.461,0.663],[-2.154,1.101],[-1.803,1.376]],"o":[[-1.423,-0.599],[-1.52,-0.327],[-1.585,-0.102],[-1.62,0.076],[-1.624,0.208],[-1.597,0.293],[-1.539,0.331],[-1.45,0.323],[-0.067,0.567],[0.02,0.48],[0.089,0.411],[0.14,0.36],[0.173,0.327],[0.188,0.312],[0.185,0.315],[0.163,0.337],[2.94,0.699],[2.723,-0.063],[2.461,-0.663],[2.154,-1.101],[1.803,-1.376]],"v":[[1745,889],[1740.578,887.623],[1735.913,886.991],[1731.097,886.964],[1726.223,887.401],[1721.384,888.163],[1716.672,889.111],[1712.18,890.103],[1708,891],[1707.934,892.566],[1708.103,893.897],[1708.452,895.048],[1708.927,896.073],[1709.474,897.026],[1710.038,897.962],[1710.565,898.935],[1711,900],[1719.505,900.914],[1727.292,899.783],[1734.226,897.095],[1740.173,893.339]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[5.531,1.052],[-0.472,-2.736],[-0.687,-2.521],[-0.845,-2.364],[-0.945,-2.264],[-0.988,-2.221],[-0.973,-2.235],[-0.901,-2.308],[-0.771,-2.437],[-5.512,-0.128],[-5.489,0.241],[-5.317,0.545],[-4.996,0.784],[-4.527,0.958],[5.476,0.652],[6.086,-0.545],[6.317,-0.674],[6.169,0.263],[1.308,5.275],[1.568,5.015],[2.976,3.607]],"o":[[0.199,3.009],[0.472,2.736],[0.687,2.521],[0.845,2.364],[0.945,2.264],[0.988,2.221],[0.973,2.235],[0.901,2.308],[5.388,0.563],[5.512,0.128],[5.489,-0.241],[5.317,-0.545],[4.996,-0.784],[-4.487,-2.916],[-5.476,-0.652],[-6.086,0.545],[-6.317,0.674],[-2.196,-4.388],[-1.308,-5.275],[-1.568,-5.015],[-2.976,-3.607]],"v":[[1641,842],[1642.022,850.604],[1643.775,858.476],[1646.086,865.789],[1648.785,872.715],[1651.698,879.427],[1654.653,886.097],[1657.478,892.897],[1660,900],[1676.387,901.021],[1692.926,900.835],[1709.172,899.639],[1724.678,897.629],[1739,895],[1723.961,889.915],[1706.523,890.021],[1687.824,892.116],[1669,893],[1664.031,878.219],[1660.003,862.497],[1653.474,849.276]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[21.17,5.164],[6.612,12.388],[11.8,7.2],[12.555,0.445],[11.767,1.233],[4.349,5.318],[4.151,5.515],[4.436,5.564],[8.155,1.846],[0.348,-0.485],[-0.022,-0.855],[0.241,-0.007],[0.001,0.015],[-6.12,-6.944],[-1.908,-5.482],[-5.217,-5.95],[-6.536,-4.63],[-13.103,-0.231],[-12,-1.333],[-15.747,-15.92],[-26.019,-2.201]],"o":[[-5.752,-13.248],[-6.612,-12.388],[-12.014,-0.986],[-12.555,-0.445],[-5.454,-4.213],[-4.349,-5.318],[-5.103,-4.897],[-4.436,-5.564],[-0.629,0.205],[-0.348,0.485],[-0.034,-0.012],[-0.241,0.007],[0.615,6.744],[6.12,6.943],[4.597,6.569],[5.217,5.95],[11.589,1.744],[13.103,0.231],[17.562,14.104],[17.415,11.471],[-10.439,-15.894]],"v":[[1667,883],[1649.536,843.464],[1623,813],[1585.815,811.185],[1549,809],[1534.523,794.477],[1522,778],[1508.789,761.211],[1491,749],[1489.512,750.012],[1489,752],[1488.475,752.002],[1488,752],[1500.53,772.947],[1515,792],[1529.546,810.954],[1547,827],[1584.692,829.308],[1623,831],[1657,892],[1732,897]],"c":true}],"h":1},{"t":4,"s":[{"i":[[31.25,10.983],[0,-0.5],[0,-0.5],[-7.025,-7.282],[-6.717,-7.753],[-6.347,-7.775],[-6.87,-7.117],[-20.19,-4.144],[-20.466,-3.868],[-12.335,-14.831],[-14.971,-12.196],[-23.845,-2.155],[-10.966,-17.034],[-32.34,-2.993],[21.427,8.907],[14.874,15.46],[26.646,4.688],[21.01,20.657],[7.464,3.669],[32.094,17.608],[7.325,8.695]],"o":[[0,0.5],[0,0.5],[5.182,8.12],[7.025,7.282],[6.742,7.782],[6.347,7.775],[13.776,10.557],[20.189,4.144],[16.687,10.48],[12.336,14.831],[23.124,2.877],[17.602,10.398],[15.322,20.011],[-10.58,-16.422],[-14.207,-16.126],[-16.236,-15.097],[-24.788,-16.878],[-8.246,-4.781],[-30.124,-14.807],[-8.796,-4.826],[-20.788,-24.679]],"v":[[1270,616],[1270,617.5],[1270,619],[1288.848,641.776],[1310,664],[1329.404,687.498],[1349,710],[1401.483,730.517],[1464,741],[1505.787,780.713],[1545,823],[1618,828],[1649,881],[1735,901],[1665,878],[1633,819],[1551,807],[1491,742],[1471,728],[1367,706],[1343,682]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[17.579,3.647],[-0.17,-2.503],[-18.893,-8.774],[-25.609,-2.391],[-26.726,-38.607],[-32.094,-10.906],[-19.861,-18.806],[-13.7,-8.966],[-21.229,0.659],[-22.139,-13.473],[-29.804,-2.608],[23.018,7.317],[6.448,12.711],[10.483,2.375],[6.824,-0.273],[13.909,1.227],[38.677,23.991],[26.806,10.527],[17.528,17.528],[20.633,11.271],[23.45,4.184]],"o":[[-1.464,0.87],[8.12,19.547],[23.667,4.333],[36.534,28.799],[26.3,16.701],[23.568,15.098],[9.071,13.596],[18.537,4.209],[22.452,13.431],[18.292,11.132],[-10.347,-16.655],[-8.186,-9.449],[-4.593,-9.053],[-5.62,-1.273],[-13.607,0.544],[-27.874,-34.794],[-26.678,-10.655],[-15.972,-17.057],[-16.537,-16.537],[-17.727,-9.683],[-23.027,-4.108]],"v":[[1136,573],[1133,577],[1188,605],[1259,618],[1356,717],[1460,742],[1524,794],[1555,831],[1617,833],[1657,892],[1733,902],[1663,879],[1645,844],[1620,815],[1601,816],[1559,815],[1461,725],[1368,706],[1319,653],[1265,604],[1199,591]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[52.884,22.783],[-0.084,-0.583],[-0.586,-0.081],[-11.103,-8.564],[-10.296,-9.37],[-8.853,-10.211],[-13.246,-7.504],[-27.065,-4.181],[-18.291,-16.126],[-15.293,-17.041],[-18.443,-13.89],[-14.711,-1.956],[-13.087,-3.58],[-15.808,-15.608],[-19.934,-8.9],[7.611,7.555],[8.189,6.977],[17.896,12.771],[33.731,6.269],[44.049,29.285],[37.465,16.202]],"o":[[0.078,0.589],[0.084,0.583],[9.293,10.374],[11.103,8.564],[11.341,8.652],[8.853,10.211],[21.45,12.151],[27.065,4.181],[17.387,14.946],[15.293,17.041],[15.068,1.598],[14.711,1.956],[18.834,11.666],[15.808,15.609],[-5.366,-9.801],[-7.611,-7.555],[-17.054,-13.612],[-25.169,-14.831],[-36.685,-36.648],[-38.742,-14.924],[-38.574,-37.092]],"v":[[1001,466],[1001.119,467.881],[1002,469],[1033.247,496.753],[1066,523],[1094.571,552.361],[1126,580],[1202.369,599.519],[1274,625],[1321.708,674.292],[1371,722],[1415.986,727.014],[1458,735],[1508.176,778.574],[1560,818],[1540.117,792.382],[1516,771],[1469,726],[1369,706],[1256,599],[1128,566]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[77.032,6.024],[-0.162,-0.671],[-0.389,-0.445],[-12.848,-2.521],[-10.288,-5.595],[-5.019,-4.797],[-5.129,-4.658],[-15.624,-13.943],[-14.788,-13.956],[-19.66,-5.34],[-25.684,0.684],[-10.414,-10.716],[-15.638,-2.627],[4.701,4.61],[5.606,4.22],[9.294,7.635],[11.63,3.539],[10.023,1.425],[9.684,1.981],[13.162,8.503],[11.782,11.782]],"o":[[-0.038,0.871],[0.162,0.671],[9.322,8.321],[12.848,2.521],[5.797,3.153],[5.019,4.797],[15.715,14.272],[15.624,13.943],[17.677,7.323],[19.66,5.34],[13.707,6.509],[10.414,10.716],[-2.591,-7.339],[-4.701,-4.61],[-9.195,-6.921],[-9.294,-7.635],[-10.226,2.682],[-10.023,-1.425],[-20.572,-4.207],[-13.162,-8.503],[-42.552,-42.553]],"v":[[935,442],[935.18,444.32],[936,446],[970.776,460.044],[1007,470],[1023.001,482.372],[1038,497],[1085.195,539.237],[1131,581],[1185.994,601.006],[1253,609],[1287.052,637.911],[1324,661],[1312.762,643.661],[1297,631],[1269.827,607.963],[1239,590],[1208.593,590.997],[1179,585],[1129.908,565.681],[1094,535]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[22.673,9.494],[-0.089,-0.328],[-0.177,-0.24],[-0.249,-0.167],[-0.308,-0.109],[-10.871,-10.018],[-10.751,-10.138],[-10.053,-10.836],[-20.473,-5.027],[-19.933,-5.567],[-11.777,-11.028],[-11.439,-11.439],[-14.475,-8.994],[-21.937,0.139],[6.575,1.925],[6.646,1.853],[15.023,16.31],[17.025,14.308],[25.058,6.442],[23.306,8.194],[16.461,15.706]],"o":[[-0.014,0.43],[0.089,0.328],[0.176,0.24],[0.249,0.167],[10.413,10.476],[10.871,10.018],[10.751,10.138],[18.174,7.326],[20.473,5.027],[12.451,10.448],[11.778,11.028],[11.163,11.163],[14.475,8.994],[-4.053,-4.447],[-6.575,-1.925],[-19.882,-11.452],[-15.023,-16.31],[-15.464,-16.036],[-25.058,-6.443],[-18.485,-13.682],[-16.461,-15.706]],"v":[[793,347],[793.117,348.133],[793.519,348.981],[794.161,349.589],[795,350],[827.071,380.596],[859.65,410.684],[891,442],[949.68,459.82],[1011,475],[1047.259,507.257],[1082,541],[1119.42,572.977],[1173,588],[1156.445,579.055],[1136,574],[1085.357,530.643],[1039,483],[975.382,452.119],[900,433],[849.641,386.859]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-6.742,8.758],[7.237,-1.513],[6.588,-2.162],[6.557,-2.193],[7.143,-1.607],[-0.98,-4.436],[-1.298,-4.119],[-1.294,-4.123],[-0.968,-4.448],[9.583,-3.639],[8.552,-4.67],[4.585,-8.637],[-1.446,-3.554],[-4.733,-0.267],[0.567,2.992],[0.931,2.22],[-15.219,5.281],[-9.026,11.474],[2.202,7.464],[0.994,8.673],[-12.45,3.05]],"o":[[-8.503,0.247],[-7.237,1.513],[-6.588,2.162],[-6.557,2.193],[0.341,5.075],[0.98,4.436],[1.298,4.119],[1.294,4.123],[-7.677,5.545],[-9.583,3.639],[-8.552,4.67],[1.481,3.519],[1.446,3.554],[1.198,-2.812],[-0.567,-2.992],[9.096,-11.404],[15.219,-5.281],[-0.198,-9.469],[-2.202,-7.465],[10.458,-5.042],[12.45,-3.05]],"v":[[2338,484],[2314.544,486.794],[2293.96,492.46],[2274.396,499.146],[2254,505],[2256.063,519.187],[2259.56,531.94],[2263.527,544.223],[2267,557],[2240.376,570.043],[2212.44,581.773],[2192,601],[2195.561,612.439],[2204,619],[2204.597,610.056],[2202,602],[2241.552,580.052],[2281,558],[2276.597,533.403],[2271,510],[2307.287,499.787]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-11.89,5.277],[0.759,2.658],[1.2,2.217],[2.091,1.326],[3.433,-0.016],[-0.094,-1.597],[-0.56,-1.489],[-0.561,-1.522],[-0.096,-1.697],[7.616,-1.551],[7.115,-2.052],[6.067,-3.1],[4.471,-4.695],[-1.209,-2.895],[-1.921,-2.144],[-2.751,-0.553],[-3.701,1.881],[1.001,1.999],[1.282,1.718],[0.107,2.893],[-13.891,3.276]],"o":[[-0.769,-2.648],[-0.759,-2.658],[-1.2,-2.217],[-2.091,-1.326],[-0.837,1.847],[0.094,1.597],[0.56,1.489],[0.561,1.522],[-7.57,1.597],[-7.616,1.551],[-7.115,2.052],[-6.067,3.1],[0.616,2.803],[1.209,2.895],[1.921,2.144],[2.751,0.553],[0.736,-3.736],[-1.001,-1.999],[-1.282,-1.718],[11.547,-5.619],[13.891,-3.276]],"v":[[2343,487],[2340.821,478.928],[2337.996,471.503],[2333.173,466.076],[2325,464],[2324.002,469.131],[2325.1,473.725],[2326.898,478.207],[2328,483],[2305.085,487.586],[2282.853,492.853],[2262.944,500.444],[2247,512],[2249.708,520.757],[2254.373,528.526],[2261.351,532.782],[2271,531],[2270.238,522.762],[2266.448,517.552],[2264,511],[2303.244,498.743]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-0.34,2.404],[1.238,0.722],[1.46,0.605],[1.621,0.47],[1.721,0.316],[1.761,0.143],[1.741,-0.048],[1.66,-0.258],[1.519,-0.487],[1.317,-0.734],[1.054,-1],[0.731,-1.284],[0.348,-1.587],[-0.096,-1.909],[-2.329,-0.668],[-2.591,-0.4],[-2.671,-0.076],[-2.569,0.306],[-2.284,0.745],[-1.818,1.241],[-1.17,1.794]],"o":[[-0.956,-0.82],[-1.238,-0.722],[-1.46,-0.605],[-1.621,-0.47],[-1.721,-0.316],[-1.761,-0.143],[-1.741,0.048],[-1.66,0.258],[-1.519,0.487],[-1.317,0.734],[-1.054,1],[-0.731,1.284],[-0.348,1.587],[1.886,0.879],[2.329,0.668],[2.591,0.4],[2.671,0.076],[2.569,-0.306],[2.284,-0.745],[1.818,-1.241],[1.17,-1.794]],"v":[[3275,577],[3271.693,574.682],[3267.631,572.686],[3262.995,571.069],[3257.967,569.886],[3252.728,569.193],[3247.459,569.047],[3242.342,569.502],[3237.559,570.614],[3233.291,572.441],[3229.72,575.037],[3227.027,578.458],[3225.393,582.76],[3225,588],[3231.368,590.334],[3238.795,591.951],[3246.733,592.679],[3254.638,592.347],[3261.964,590.784],[3268.163,587.82],[3272.69,583.282]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[2.055,0.778],[-0.422,-1.322],[-0.41,-1.334],[-0.417,-1.327],[-0.443,-1.301],[-0.487,-1.257],[-0.549,-1.194],[-0.63,-1.113],[-0.73,-1.014],[-0.848,-0.895],[-0.985,-0.759],[-1.14,-0.604],[-1.314,-0.43],[-1.506,-0.238],[0.54,2.293],[0.736,2.097],[0.939,1.895],[1.148,1.685],[1.365,1.468],[1.588,1.245],[1.818,1.015]],"o":[[0.452,1.292],[0.422,1.322],[0.41,1.334],[0.417,1.327],[0.443,1.301],[0.487,1.257],[0.549,1.194],[0.63,1.113],[0.73,1.014],[0.848,0.895],[0.985,0.759],[1.14,0.604],[1.314,0.43],[-0.351,-2.482],[-0.54,-2.293],[-0.736,-2.097],[-0.939,-1.895],[-1.148,-1.685],[-1.365,-1.468],[-1.588,-1.245],[-1.818,-1.015]],"v":[[1389,487],[1390.305,490.926],[1391.548,494.914],[1392.784,498.908],[1394.069,502.854],[1395.458,506.696],[1397.007,510.377],[1398.772,513.843],[1400.808,517.038],[1403.171,519.906],[1405.916,522.392],[1409.099,524.44],[1412.775,525.994],[1417,527],[1415.665,519.835],[1413.753,513.248],[1411.242,507.258],[1408.113,501.888],[1404.344,497.156],[1399.917,493.084],[1394.809,489.692]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[-0.404,1.096],[0.797,-0.126],[0.743,-0.181],[0.686,-0.237],[0.628,-0.295],[0.567,-0.356],[0.506,-0.417],[0.442,-0.481],[0.377,-0.547],[0.309,-0.614],[0.24,-0.683],[0.17,-0.753],[0.097,-0.826],[0.023,-0.9],[-0.953,0.547],[-0.904,0.596],[-0.845,0.655],[-0.776,0.724],[-0.697,0.803],[-0.609,0.891],[-0.511,0.989]],"o":[[-0.85,0.073],[-0.797,0.126],[-0.743,0.181],[-0.686,0.237],[-0.628,0.295],[-0.567,0.356],[-0.506,0.417],[-0.442,0.481],[-0.377,0.547],[-0.309,0.614],[-0.24,0.683],[-0.17,0.753],[-0.097,0.826],[0.993,-0.507],[0.953,-0.547],[0.904,-0.596],[0.845,-0.655],[0.776,-0.724],[0.697,-0.803],[0.609,-0.891],[0.511,-0.989]],"v":[[2869,601],[2866.528,601.297],[2864.218,601.756],[2862.075,602.382],[2860.104,603.181],[2858.311,604.157],[2856.701,605.316],[2855.279,606.663],[2854.051,608.204],[2853.021,609.944],[2852.196,611.889],[2851.581,614.042],[2851.18,616.411],[2851,619],[2853.922,617.422],[2856.71,615.71],[2859.335,613.835],[2861.768,611.768],[2863.98,609.48],[2865.942,606.942],[2867.625,604.125]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 3"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[0.263,2.02],[1.454,-0.796],[0.986,-1.264],[0.627,-1.623],[0.376,-1.874],[0.235,-2.015],[0.202,-2.048],[0.278,-1.972],[0.463,-1.787],[-1.272,1.035],[-1.1,1.289],[-0.912,1.506],[-0.709,1.684],[-0.489,1.825],[-0.254,1.928],[-0.003,1.993]],"o":[[-2.031,0.219],[-1.454,0.796],[-0.986,1.264],[-0.627,1.623],[-0.376,1.874],[-0.235,2.015],[-0.202,2.048],[-0.278,1.972],[1.429,-0.743],[1.272,-1.035],[1.1,-1.289],[0.912,-1.506],[0.709,-1.684],[0.489,-1.825],[0.254,-1.928],[0.003,-1.993]],"v":[[2422,1039],[2416.799,1040.549],[2413.165,1043.665],[2410.773,1048.023],[2409.296,1053.296],[2408.407,1059.157],[2407.779,1065.279],[2407.085,1071.335],[2406,1077],[2410.055,1074.323],[2413.618,1070.827],[2416.64,1066.625],[2419.076,1061.831],[2420.876,1056.557],[2421.996,1050.919],[2422.386,1045.028]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[1.556,0.027],[-0.345,-1.294],[-0.501,-1.222],[-0.646,-1.107],[-0.78,-0.949],[-0.902,-0.747],[-1.014,-0.502],[-1.114,-0.213],[-1.203,0.119],[0.453,1.13],[0.452,1.131],[0.505,1.079],[0.609,0.974],[0.767,0.816],[0.977,0.606],[1.24,0.343]],"o":[[0.178,1.322],[0.345,1.294],[0.501,1.222],[0.646,1.107],[0.78,0.949],[0.902,0.747],[1.014,0.502],[1.114,0.213],[-0.506,-1.077],[-0.453,-1.13],[-0.452,-1.131],[-0.505,-1.079],[-0.609,-0.974],[-0.767,-0.816],[-0.977,-0.606],[-1.24,-0.343]],"v":[[2088,906],[2088.788,909.936],[2090.061,913.721],[2091.785,917.227],[2093.926,920.323],[2096.452,922.878],[2099.328,924.763],[2102.522,925.847],[2106,926],[2104.574,922.676],[2103.229,919.272],[2101.806,915.944],[2100.148,912.852],[2098.097,910.153],[2095.494,908.006],[2092.181,906.569]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[0.836,3.125],[3.956,-1.044],[3.516,-1.484],[2.802,-2.198],[1.815,-3.185],[-1.951,-3.799],[-1.767,-3.983],[-2.307,-3.443],[-3.572,-2.178],[1.375,3.625],[1.756,3.244],[1.753,3.247],[1.365,3.635],[-3.62,1.186],[-3.481,1.335],[-1.996,1.981]],"o":[[-4.122,0.879],[-3.956,1.044],[-3.516,1.484],[-2.802,2.198],[2.859,2.891],[1.951,3.799],[1.767,3.983],[2.307,3.443],[-0.61,-4.39],[-1.375,-3.625],[-1.756,-3.244],[-1.753,-3.247],[2.411,-1.534],[3.62,-1.186],[3.481,-1.335],[1.996,-1.981]],"v":[[2114,862],[2101.816,864.816],[2090.54,868.54],[2080.994,873.994],[2074,882],[2081.034,892.216],[2086.431,904.069],[2092.363,915.387],[2101,924],[2097.926,912.074],[2093.133,901.868],[2087.773,892.227],[2083,882],[2092.383,878.044],[2103.37,874.386],[2111.923,869.535]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-7.978,14.022],[7.778,-5.942],[7.352,-5.532],[-3.473,-7.027],[-2.159,-8.341],[7.648,-3.519],[3.011,-8.157],[-1.284,-3.883],[-1.09,-4.077],[-0.832,-1.668],[-0.554,-1.946],[-1.293,-1.74],[-0.644,2.332],[2.055,13.612],[-7,17.667],[4.578,15.422]],"o":[[-12.534,-1.299],[-7.778,5.942],[0.949,9.551],[3.473,7.027],[-4.399,6.767],[-7.647,3.519],[0.774,4.392],[1.284,3.883],[1.117,1.383],[0.832,1.668],[1.186,0.373],[1.293,1.74],[0.583,-16.249],[16.007,-8.66],[-5.336,-14.664],[9.942,-12.058]],"v":[[2152,776],[2122.613,784.877],[2101,804],[2108.592,827.908],[2118,850],[2097.958,863.458],[2080,879],[2083.263,891.237],[2087,903],[2089.922,907.578],[2092,913],[2095.906,917.529],[2099,918],[2090,880],[2133,849],[2116,806]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-1.133,10.932],[0.845,0.488],[1.729,-0.396],[11.375,-6.125],[8.713,-8.788],[-2.96,-20.04],[9.693,-19.974],[-0.38,-18.953],[8.293,-12.04],[-11.135,-9.531],[1.059,13.876],[-6.485,17.182],[2.689,16.31],[-7.816,19.85],[-2.463,24.156],[-10.906,5.76]],"o":[[-0.889,-0.444],[-0.845,-0.488],[-10.787,6.712],[-11.375,6.125],[0.092,22.908],[-11.245,18.421],[2.685,16.648],[-9.126,11.208],[3.423,17.244],[3.413,-15.115],[10.122,-13.545],[-2.772,-16.228],[10.145,-17.521],[5.368,-23.737],[6.879,-9.787],[10.469,-4.913]],"v":[[2208,667],[2205.63,665.37],[2202,665],[2167.944,683.444],[2137,705],[2149,762],[2104,806],[2118,850],[2082,875],[2096,923],[2093,880],[2133,849],[2119,806],[2162,766],[2152,709],[2182,689]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[3.573,22.067],[2.537,-2.458],[-2.862,-19.989],[24.178,-9.822],[-1.56,-20.44],[12.742,-21.592],[-4.546,-12.121],[10.344,-8.655],[-12.462,-8.871],[2.328,13.236],[-6.745,15.922],[3.545,14.122],[-9.951,23.049],[-0.734,22.067],[-12.698,6.302],[-3.427,15.573]],"o":[[-3.699,-1.605],[-5.459,21.711],[-19.035,14.965],[-2.002,24.003],[-7.88,26.453],[3.242,13.424],[-7.722,11.278],[1.156,20.177],[4.723,-14.16],[10.959,-11.708],[-4.01,-13.656],[17.957,-15.043],[1.89,-23.223],[14.142,-4.858],[9.854,-9.146],[-6.693,-17.857]],"v":[[2202,600],[2189,601],[2200,662],[2137,701],[2147,757],[2100,813],[2115,848],[2081,871],[2095,921],[2091,878],[2130,849],[2114,812],[2162,761],[2152,707],[2189,687],[2218,659]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[3.055,-0.722],[6.718,-3.811],[6.987,-3.513],[6.449,-3.144],[4.73,-5.168],[-1.732,-22.935],[13.241,-7.765],[1.561,-11.178],[4.753,-20.108],[4.091,-24.244],[-10.575,8.092],[-1.448,16.167],[2.625,17.024],[-14.918,25.082],[3.947,19.053],[-9.344,28.322]],"o":[[-6.142,4.243],[-6.718,3.811],[-6.472,3.254],[-6.449,3.144],[2.516,22.15],[-8.128,10.13],[-9.853,5.778],[-2.313,16.564],[-10.065,21.603],[13.731,-4.936],[6.014,-13.387],[1.454,-16.235],[23.588,-16.412],[-3.285,-19.715],[19.539,-18.128],[-2.355,0.022]],"v":[[2269,554],[2249.633,566.047],[2229,577],[2209.194,586.065],[2192,598],[2205,659],[2171,683],[2139,710],[2152,758],[2111,814],[2141,788],[2166,756],[2152,708],[2221,657],[2208,601],[2275,555]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[8.12,5.88],[0.836,-0.997],[1.452,-0.381],[-1.085,-3.582],[-0.211,-4.455],[15.15,-6.517],[9.079,-12.587],[-3.164,-9.169],[-4.662,-7.672],[6.008,-3.659],[1.722,-7.946],[-6.886,6.28],[-5.765,7.401],[3.169,8.165],[0.796,10.537],[-21.77,20.23]],"o":[[-2.203,-0.37],[-0.836,0.997],[-0.552,5.218],[1.085,3.582],[-11.322,10.346],[-15.15,6.517],[0.68,11.652],[3.164,9.169],[-4.247,5.42],[-6.008,3.659],[12.689,-0.478],[6.886,-6.28],[-5.53,-5.803],[-3.169,-8.165],[21.052,-20.948],[0.463,-14.463]],"v":[[2274,527],[2269.936,528.436],[2267,531],[2268.428,543.573],[2271,555],[2228.818,577.819],[2190,604],[2196.014,634.985],[2208,660],[2191.106,672.106],[2178,688],[2206.193,676.692],[2224,655],[2210.95,634.051],[2205,606],[2284,559]],"c":true}],"h":1},{"t":8,"s":[{"i":[[0.333,0],[-2.308,-7.358],[0.023,-9.689],[-17.032,-4.802],[-11.246,-10.587],[-8.687,-11.563],[-19.755,2.087],[4.528,1.805],[4.267,2.066],[3.443,11.724],[7.601,7.566],[13.901,4.266],[12.226,5.94],[2.391,8.776],[10.155,1.012],[0.333,0]],"o":[[0.79,8.877],[2.308,7.358],[13.626,8.207],[17.032,4.802],[3.499,15.835],[8.687,11.563],[-4.619,-1.715],[-4.529,-1.805],[-6.628,-8.539],[-3.443,-11.724],[-13.17,-4.997],[-13.901,-4.266],[-3.283,-7.884],[-2.391,-8.776],[-0.333,0],[-0.333,0]],"v":[[1476,537],[1481.61,560.39],[1486,585],[1534.285,602.214],[1579,623],[1595.808,666.442],[1637,683],[1623.237,677.764],[1610,672],[1596.73,639.77],[1582,609],[1540.792,595.707],[1501,581],[1494.654,553.846],[1478,537],[1477,537]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[8.361,-0.359],[-2.872,-1.128],[-3.256,-0.744],[-2.882,-1.118],[-1.747,-2.253],[-2.373,-7.46],[-4.923,-4.91],[-7.464,-2.37],[-9.995,0.161],[2.632,1.701],[3.664,0.67],[3.575,0.759],[2.365,1.968],[1.582,7.418],[0.338,8.663],[8.471,2.111]],"o":[[1.727,2.273],[2.872,1.128],[3.256,0.744],[2.882,1.118],[-0.187,10.02],[2.373,7.46],[4.923,4.91],[7.464,2.37],[-0.481,-3.853],[-2.632,-1.701],[-3.664,-0.67],[-3.575,-0.759],[-2.335,-6.665],[-1.582,-7.418],[-5.755,-3.913],[-8.471,-2.111]],"v":[[1443,528],[1450.088,532.912],[1459.47,535.53],[1468.867,538.133],[1476,543],[1479.281,569.219],[1490.227,587.773],[1508.81,598.69],[1535,602],[1530.051,593.949],[1520.327,590.673],[1509.189,588.811],[1500,585],[1494.002,563.998],[1491,540],[1468.954,530.796]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-1.213,2.682],[0.373,0.211],[0.24,0.343],[0.373,0.211],[0.77,-0.186],[4.24,-5.76],[3.802,-6.198],[4.036,-5.964],[4.941,-5.059],[-3.617,2.272],[-2.539,3.503],[-2.027,3.979],[-2.082,3.702],[-1.91,2.638],[-1.895,2.445],[-1.662,2.46]],"o":[[-0.77,0.186],[-0.373,-0.211],[-0.24,-0.343],[-0.373,-0.211],[-5.349,4.651],[-4.24,5.76],[-3.802,6.198],[-4.036,5.964],[5.264,-0.288],[3.617,-2.272],[2.538,-3.503],[2.027,-3.979],[1.708,-3.038],[1.91,-2.638],[1.895,-2.445],[1.662,-2.46]],"v":[[2826,612],[2824.353,611.897],[2823.5,611],[2822.647,610.103],[2821,610],[2806.784,625.784],[2794.888,643.888],[2783.299,662.299],[2770,679],[2783.18,674.972],[2792.272,666.122],[2798.978,654.71],[2805,643],[2810.481,634.539],[2816.242,626.967],[2821.632,619.661]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-0.247,1.795],[1.712,-0.886],[1.682,-1],[1.587,-1.125],[1.425,-1.262],[1.198,-1.409],[0.906,-1.568],[0.547,-1.738],[0.123,-1.919],[-1.476,1.122],[-1.571,1.111],[-1.576,1.136],[-1.491,1.197],[-1.315,1.293],[-1.049,1.424],[-0.693,1.592]],"o":[[-1.675,0.783],[-1.712,0.886],[-1.682,1],[-1.587,1.125],[-1.425,1.262],[-1.198,1.409],[-0.906,1.568],[-0.547,1.738],[1.29,-1.169],[1.476,-1.122],[1.571,-1.111],[1.576,-1.136],[1.491,-1.197],[1.315,-1.293],[1.049,-1.424],[0.693,-1.592]],"v":[[3295,560],[3289.903,562.501],[3284.796,565.327],[3279.876,568.513],[3275.342,572.091],[3271.389,576.096],[3268.217,580.559],[3266.021,585.516],[3265,591],[3269.171,587.572],[3273.763,584.231],[3278.506,580.869],[3283.128,577.378],[3287.36,573.653],[3290.929,569.587],[3293.566,565.071]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[0.4,2.067],[0.64,0.135],[0.762,0.126],[0.817,0.084],[0.804,0.007],[0.725,-0.103],[0.578,-0.248],[0.363,-0.426],[0.081,-0.638],[-0.3,-0.783],[-0.429,-0.654],[-0.539,-0.544],[-0.63,-0.454],[-1.331,0.336],[-0.992,0.674],[-0.415,1.252]],"o":[[-0.451,-0.109],[-0.64,-0.135],[-0.762,-0.126],[-0.817,-0.084],[-0.804,-0.007],[-0.725,0.103],[-0.578,0.248],[-0.363,0.426],[0.152,0.931],[0.3,0.783],[0.429,0.654],[0.539,0.544],[1.432,-0.235],[1.331,-0.336],[0.992,-0.674],[0.415,-1.252]],"v":[[1334,934],[1332.347,933.625],[1330.226,933.226],[1327.841,932.903],[1325.392,932.758],[1323.081,932.894],[1321.111,933.412],[1319.683,934.413],[1319,936],[1319.683,938.566],[1320.783,940.717],[1322.241,942.509],[1324,944],[1328.203,943.204],[1331.748,941.748],[1333.918,938.918]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 4"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-0.656,1.635],[1.623,-0.669],[1.459,-0.833],[1.279,-1.013],[1.084,-1.208],[0.872,-1.419],[0.645,-1.646],[0.403,-1.889],[0.144,-2.148],[-1.636,0.656],[-1.339,0.953],[-1.094,1.197],[-0.902,1.389],[-0.762,1.529],[-0.675,1.617],[-0.639,1.652]],"o":[[-1.771,0.521],[-1.623,0.669],[-1.459,0.833],[-1.279,1.013],[-1.084,1.208],[-0.872,1.419],[-0.645,1.646],[-0.403,1.889],[1.985,-0.307],[1.636,-0.656],[1.339,-0.953],[1.094,-1.197],[0.902,-1.389],[0.762,-1.529],[0.675,-1.617],[0.639,-1.652]],"v":[[1716,1187],[1710.905,1188.78],[1706.278,1191.028],[1702.168,1193.792],[1698.619,1197.119],[1695.681,1201.056],[1693.401,1205.65],[1691.824,1210.949],[1691,1217],[1696.417,1215.542],[1700.866,1213.116],[1704.503,1209.878],[1707.485,1205.985],[1709.969,1201.594],[1712.111,1196.861],[1714.069,1191.945]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-1.169,0.013],[0.954,0.865],[1.323,0.655],[1.541,0.411],[1.609,0.133],[1.527,-0.18],[1.294,-0.526],[0.912,-0.907],[0.378,-1.322],[-1.063,-0.303],[-1.168,-0.145],[-1.243,-0.024],[-1.288,0.059],[-1.303,0.104],[-1.289,0.112],[-1.244,0.081]],"o":[[-0.435,-1.041],[-0.954,-0.865],[-1.323,-0.655],[-1.541,-0.411],[-1.609,-0.133],[-1.527,0.18],[-1.294,0.526],[-0.912,0.907],[0.928,0.499],[1.063,0.303],[1.168,0.145],[1.243,0.024],[1.288,-0.059],[1.303,-0.104],[1.289,-0.112],[1.244,-0.081]],"v":[[1937,932],[1934.879,929.131],[1931.426,926.842],[1927.093,925.234],[1922.33,924.41],[1917.588,924.473],[1913.319,925.523],[1909.972,927.665],[1908,931],[1910.994,932.194],[1914.348,932.857],[1917.972,933.1],[1921.777,933.038],[1925.672,932.784],[1929.567,932.451],[1933.373,932.152]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[3.151,1.932],[-0.451,3.038],[-0.519,2.736],[0.317,2.33],[2.055,1.821],[1.222,-2.528],[0.175,-3.575],[-0.01,-3.76],[0.668,-3.082],[-4.623,-1.241],[-4.999,-0.875],[-5.001,-0.447],[-4.63,0.045],[3.874,1.209],[4.484,0.6],[4.243,0.84]],"o":[[-0.52,-3.235],[0.451,-3.038],[0.519,-2.736],[-0.317,-2.33],[-3.133,0.617],[-1.222,2.528],[-0.175,3.575],[0.01,3.76],[3.874,1.543],[4.623,1.241],[4.999,0.876],[5.001,0.447],[-2.413,-2.67],[-3.874,-1.209],[-4.484,-0.599],[-4.243,-0.84]],"v":[[1884,918],[1884.123,908.565],[1885.804,899.878],[1886.333,892.252],[1883,886],[1876.683,890.933],[1874.803,900.303],[1874.772,911.522],[1874,922],[1886.839,926.193],[1901.366,929.383],[1916.46,931.382],[1931,932],[1921.356,926.394],[1908.607,923.893],[1895.304,921.946]],"c":true}],"h":1},{"t":4,"s":[{"i":[[6.502,10.165],[10.483,2.184],[7.882,4.784],[1.929,7.571],[6.61,2.89],[0.617,-0.217],[0.403,-0.43],[-2.041,-6.792],[-0.19,-8.643],[-11.428,-2.405],[-8.171,-5.663],[-0.211,-7.122],[-1.365,-5.968],[-9.106,-2.311],[-7.783,-1.052],[10.676,9.658]],"o":[[-8.187,-4.48],[-10.483,-2.184],[-2.676,-6.824],[-1.929,-7.572],[-0.13,0.703],[-0.616,0.217],[-0.354,9.188],[2.041,6.792],[7.118,6.716],[11.428,2.405],[1.789,5.545],[0.211,7.122],[6.794,3.707],[9.106,2.31],[-6.583,-13.751],[-0.155,-16.512]],"v":[[1880,867],[1850.772,858.228],[1822,849],[1816.451,826.05],[1805,809],[1803.705,810.205],[1802,811],[1805.592,833.908],[1810,856],[1839.71,867.79],[1871,878],[1873.317,897.683],[1875,918],[1899.759,926.991],[1926,932],[1885,912]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[20.325,11.675],[2.91,10.423],[8.156,5.177],[0.595,-0.404],[1.414,0.413],[-3.618,-10.794],[-4.042,-9.467],[-23,-11],[-5.935,-18.398],[-15.388,-10.612],[-3.819,-9.514],[-22.753,-2.581],[11.855,11.812],[2.973,12.027],[17.117,8.216],[12.521,14.146]],"o":[[-4.204,-9.129],[-2.91,-10.423],[-1.205,-0.205],[-0.595,0.404],[1.487,10.358],[3.618,10.794],[21.518,12.482],[9.433,14.9],[15.673,10.327],[2.436,10.897],[15.47,9.863],[-9.45,-14.217],[0.622,-15.622],[-15.719,-9.615],[-5.768,-20.898],[-23.729,-8.271]],"v":[[1728,767],[1718.964,736.036],[1704,711],[1701.656,711.656],[1699,712],[1707.084,744.168],[1719,775],[1792,804],[1813,856],[1871,876],[1874,913],[1928,935],[1884,908],[1880,867],[1823,848],[1798,793]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[13.002,18.331],[29.844,9.49],[0.81,-0.19],[-0.281,-1.615],[-30.573,-8.427],[-3.469,-25.864],[-22.797,-9.869],[-2.845,-26.155],[-15.163,-8.171],[-2.619,-10.047],[-20.469,-5.198],[10.232,13.104],[5.507,8.826],[13.667,7.333],[16.811,16.189],[17.325,11.675]],"o":[[-32.954,-6.38],[-1.003,-0.003],[-0.055,1.279],[20.459,18.541],[10.065,19.268],[20.744,11.922],[12.983,16.017],[10.844,12.489],[2.619,10.047],[11.696,13.971],[-3.993,-16.009],[-2.772,-11.562],[-14.002,-6.998],[-4.768,-28.232],[-19.318,-9.682],[-6.616,-24.718]],"v":[[1701,702],[1611,674],[1609,675],[1608,678],[1692,711],[1717,774],[1787,802],[1816,860],[1868,878],[1872,912],[1925,936],[1882,907],[1878,868],[1828,855],[1792,792],[1730,767]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[24.675,2.327],[-5.363,-9.304],[-2.046,-12.62],[-17.531,-5.469],[-14.28,-8.72],[-4.364,-11.136],[-5.729,-9.772],[-10.514,-2.986],[-9.86,-3.64],[-6.12,-12.13],[-11.266,-4.401],[5.753,10.247],[5.149,10.851],[23.062,7.605],[12.944,19.056],[26.184,16.816]],"o":[[4.503,10.163],[5.363,9.304],[13.595,9.404],[17.531,5.469],[4.817,10.683],[4.364,11.136],[10.083,3.417],[10.514,2.986],[9.254,8.08],[6.12,12.13],[-3.838,-12.162],[-5.753,-10.247],[-18.897,-11.769],[-8.091,-23.909],[-28.834,-14.166],[-7.363,-22.971]],"v":[[1570,612],[1585.842,640.158],[1598,672],[1646.487,692.513],[1696,712],[1709.316,745.184],[1724,777],[1755.168,786.332],[1786,796],[1806.991,829.259],[1831,857],[1815.983,824.017],[1799,793],[1731,769],[1702,702],[1609,666]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[10.488,-0.321],[-7.514,-2.486],[-8.131,-1.869],[-4.861,-11.139],[-5.649,-10.351],[-14.937,-5.23],[-17.836,-2.331],[-3.103,-7.231],[-9.789,-0.544],[5.038,7.129],[6.838,5.33],[12.038,3.962],[11.421,4.579],[5.09,11.076],[5.838,10.329],[9.403,3.346]],"o":[[4.813,5.187],[7.514,2.486],[6.909,9.091],[4.861,11.139],[11.416,8.751],[14.937,5.23],[5.8,4.534],[3.103,7.231],[-1.012,-11.155],[-5.038,-7.129],[-15.426,-0.574],[-12.038,-3.962],[-5.801,-10.366],[-5.09,-11.076],[-8.898,-2.936],[-9.403,-3.346]],"v":[[1528,593],[1547.012,603.989],[1571,610],[1587.945,641.055],[1603,674],[1642.685,694.815],[1692,706],[1703.008,725.992],[1720,740],[1710.37,713.131],[1692,695],[1651.497,687.503],[1617,674],[1601.027,641.472],[1585,609],[1557.693,598.558]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-2.914,6.919],[3.66,-3.09],[3.265,-3.485],[3.473,-3.277],[4.284,-2.466],[6.87,3.63],[10.131,0.37],[10.357,-9.977],[6.146,-14.187],[-6.636,8.364],[-11.222,3.778],[-5.64,-4.693],[-6.118,-4.216],[-5.118,4.715],[-5.17,4.663],[-4.895,4.938]],"o":[[-4.657,2.093],[-3.66,3.09],[-3.265,3.485],[-3.473,3.277],[-3.389,-7.111],[-6.87,-3.63],[-13.427,6.907],[-10.357,9.977],[12.234,-2.766],[6.636,-8.364],[9.32,1.013],[5.64,4.693],[6.358,-3.475],[5.118,-4.715],[3.505,-6.329],[4.895,-4.938]],"v":[[3193,621],[3180.675,628.926],[3170.44,638.94],[3160.484,649.234],[3149,658],[3133.556,641.944],[3108,636],[3072.04,661.04],[3047,697],[3072.759,677.759],[3097,657],[3118.402,666.598],[3135,681],[3151.891,668.391],[3167,654],[3180.443,637.943]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[2.208,2.158],[0.083,0],[0.083,0],[0.083,0],[0.083,0],[17.226,-17.441],[16.519,-18.149],[2.785,-2.596],[-1.231,-4.147],[-3.139,1.861],[-3.256,1.745],[-8.414,9.252],[-8.323,9.344],[-6.625,6.541],[-6.953,6.214],[-2.403,2.547]],"o":[[-0.083,0],[-0.083,0],[-0.083,0],[-0.083,0],[-19.578,15.09],[-17.226,17.44],[-4.09,0.471],[-2.785,2.596],[5.186,0.187],[3.139,-1.861],[8.02,-9.647],[8.414,-9.252],[7.546,-5.62],[6.625,-6.542],[0.597,-2.655],[2.403,-2.547]],"v":[[3257,556],[3256.75,556],[3256.5,556],[3256.25,556],[3256,556],[3201.206,605.206],[3151,659],[3140.009,663.743],[3137,674],[3148.948,670.948],[3158,665],[3182.773,636.774],[3208,609],[3228.945,590.445],[3249,571],[3255.104,563.127]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.828,0.755],[0.667,0],[0.667,0],[0.667,0],[0.667,0],[3.639,-2.054],[3.822,-1.875],[2.772,-2.508],[0.488,-3.955],[-4.263,1.641],[-3.985,2.703],[-4.104,1.835],[-4.622,-0.963],[0.426,1.157],[0.63,0.954],[0.764,0.82]],"o":[[-0.667,0],[-0.667,0],[-0.667,0],[-0.667,0],[-2.223,3.046],[-3.639,2.054],[-3.822,1.875],[-2.772,2.508],[4.939,1.35],[4.263,-1.641],[3.985,-2.703],[4.104,-1.835],[-0.153,-1.43],[-0.426,-1.157],[-0.63,-0.954],[-0.764,-0.82]],"v":[[1390,947],[1388,947],[1386,947],[1384,947],[1382,947],[1372.898,954.447],[1361.397,960.137],[1351.198,966.509],[1346,976],[1359.704,975.08],[1371.975,968.081],[1384.009,960.791],[1397,959],[1396.114,955.136],[1394.513,951.988],[1392.405,949.345]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-1.309,1.483],[2.577,-0.215],[2.585,-0.206],[2.51,-0.282],[2.35,-0.442],[2.105,-0.686],[1.777,-1.015],[1.364,-1.427],[0.867,-1.924],[-2.692,0.1],[-2.518,0.274],[-2.335,0.456],[-2.146,0.646],[-1.948,0.844],[-1.743,1.049],[-1.53,1.262]],"o":[[-2.484,0.308],[-2.577,0.215],[-2.585,0.206],[-2.51,0.282],[-2.35,0.442],[-2.105,0.686],[-1.777,1.015],[-1.364,1.427],[2.859,0.067],[2.692,-0.1],[2.518,-0.274],[2.335,-0.456],[2.146,-0.646],[1.948,-0.844],[1.743,-1.049],[1.53,-1.262]],"v":[[2857,612],[2849.388,612.763],[2841.624,613.374],[2833.961,614.085],[2826.651,615.151],[2819.947,616.822],[2814.102,619.352],[2809.369,622.994],[2806,628],[2814.328,627.953],[2822.145,627.395],[2829.427,626.302],[2836.15,624.65],[2842.292,622.417],[2847.83,619.58],[2852.74,616.115]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[-0.022,1.145],[1.063,-0.104],[0.827,-0.34],[0.624,-0.543],[0.454,-0.713],[0.317,-0.85],[0.212,-0.954],[0.141,-1.026],[0.102,-1.064],[-0.976,0.19],[-0.817,0.35],[-0.665,0.501],[-0.521,0.645],[-0.385,0.782],[-0.256,0.911],[-0.135,1.032]],"o":[[-1.332,-0.165],[-1.063,0.104],[-0.827,0.34],[-0.624,0.543],[-0.454,0.713],[-0.317,0.85],[-0.212,0.954],[-0.141,1.026],[1.144,-0.023],[0.976,-0.19],[0.817,-0.35],[0.665,-0.501],[0.521,-0.645],[0.385,-0.782],[0.256,-0.911],[0.135,-1.032]],"v":[[2846,1078],[2842.415,1077.915],[2839.588,1078.588],[2837.419,1079.92],[2835.811,1081.811],[2834.663,1084.164],[2833.878,1086.878],[2833.357,1089.857],[2833,1093],[2836.178,1092.678],[2838.866,1091.866],[2841.088,1090.588],[2842.866,1088.866],[2844.223,1086.723],[2845.182,1084.182],[2845.767,1081.267]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 5"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-0.415,1.71],[1.253,0.254],[1.113,-0.063],[0.988,-0.337],[0.876,-0.568],[0.778,-0.755],[0.694,-0.899],[0.624,-0.999],[0.568,-1.057],[0.526,-1.071],[0.498,-1.041],[0.484,-0.969],[0.484,-0.853],[-1.787,0.338],[-1.562,0.563],[-1.347,0.778],[-1.141,0.984],[-0.945,1.18],[-0.759,1.366],[-0.582,1.543]],"o":[[-1.407,-0.614],[-1.253,-0.254],[-1.113,0.063],[-0.988,0.337],[-0.876,0.568],[-0.778,0.755],[-0.694,0.899],[-0.624,0.999],[-0.568,1.057],[-0.526,1.071],[-0.498,1.041],[-0.484,0.969],[2.021,-0.104],[1.787,-0.338],[1.562,-0.563],[1.347,-0.778],[1.141,-0.984],[0.945,-1.18],[0.759,-1.366],[0.582,-1.543]],"v":[[2476,1325],[2472.013,1323.708],[2468.466,1323.433],[2465.318,1324.044],[2462.527,1325.412],[2460.05,1327.407],[2457.845,1329.898],[2455.872,1332.756],[2454.087,1335.851],[2452.45,1339.053],[2450.917,1342.232],[2449.448,1345.257],[2448,1348],[2453.709,1347.334],[2458.729,1345.979],[2463.09,1343.965],[2466.818,1341.318],[2469.945,1338.07],[2472.498,1334.248],[2474.507,1329.882]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-7.8,5.673],[3.357,2.477],[4.225,1.608],[4.381,1.453],[3.824,2.009],[0.497,-0.337],[0.487,-0.346],[0.497,-0.337],[0.525,-0.308],[1.115,-2.382],[0.986,-2.441],[1.004,-2.463],[1.166,-2.449],[2.097,-3.324],[1.908,-3.404],[1.107,-3.753],[-0.306,-4.371],[-5.302,11.948],[-9.188,7.146],[-7.08,-3.534]],"o":[[-1.776,-4.057],[-3.357,-2.477],[-4.225,-1.608],[-4.381,-1.453],[-0.525,0.308],[-0.497,0.337],[-0.487,0.346],[-0.497,0.337],[-1.388,2.286],[-1.115,2.382],[-0.986,2.441],[-1.004,2.463],[-1.673,3.514],[-2.097,3.324],[-1.908,3.404],[-1.107,3.753],[8.605,-6.062],[5.302,-11.948],[6.878,1.536],[7.08,3.534]],"v":[[2490,1018],[2482.123,1008.377],[2470.572,1002.428],[2457.486,998.014],[2445,993],[2443.472,993.971],[2442,995],[2440.528,996.029],[2439,997],[2435.282,1004.012],[2432.167,1011.256],[2429.218,1018.622],[2426,1026],[2420.192,1036.191],[2414.032,1046.215],[2409.355,1056.882],[2408,1069],[2427.063,1039.313],[2447,1008],[2467.809,1018.406]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[0.401,2.567],[5.016,0.901],[5.402,0.514],[5.56,0.356],[5.489,0.427],[7.958,-13.875],[12.185,-9.649],[7.844,2.323],[8.505,1.663],[6.803,-11.531],[5.506,-12.827],[-5.721,9.779],[-9.992,5.508],[-9.096,-2.571],[-12.479,0.813],[-7.662,13.838],[-13.449,8.051],[-9.398,-0.999],[-7.021,3.195],[-0.484,1.683]],"o":[[-4.401,-1.516],[-5.016,-0.901],[-5.402,-0.514],[-5.56,-0.356],[-12.984,8.85],[-7.958,13.875],[-9.119,-1.047],[-7.844,-2.323],[-11.283,7.05],[-6.803,11.531],[11.124,-4.375],[5.721,-9.779],[9.136,2.531],[9.096,2.571],[11.903,-9.597],[7.662,-13.838],[8.388,0.197],[9.398,0.999],[0.464,-1.702],[0.484,-1.683]],"v":[[2623,942],[2608.817,938.433],[2593.133,936.367],[2576.632,935.118],[2560,934],[2530.9,970.4],[2503,1008],[2478.039,1002.462],[2454,996],[2427.667,1024.667],[2410,1062],[2432.85,1038.35],[2454,1013],[2480.492,1021.508],[2512,1025],[2538.84,987.34],[2568,952],[2595.526,955.044],[2621,953],[2622.649,948.149]],"c":true}],"h":1},{"t":4,"s":[{"i":[[0.751,15.471],[12.202,1.131],[11.165,2.168],[8.331,-7.745],[7.845,-9.777],[7.986,-9.106],[9.011,-3.042],[11.744,0.213],[13.069,-0.831],[7.924,-13.742],[14.095,-7.572],[7.142,2.358],[9.898,-0.398],[9.151,-25.517],[-23.152,11.514],[-22.223,0.89],[-26.509,15.491],[-21.052,3.281],[-41.768,18.566],[-14.888,-0.779]],"o":[[-10.026,-3.307],[-12.202,-1.131],[-11.83,4.243],[-8.331,7.745],[-6.046,7.534],[-7.986,9.106],[-8.957,3.023],[-11.744,-0.213],[-13.207,8.46],[-7.925,13.742],[-8.535,-0.965],[-7.142,-2.358],[-21.653,16.348],[25.037,-9.63],[18.303,3.031],[25.64,-16.36],[24.915,0.582],[35.046,-25.287],[14.33,1.337],[14.361,2.956]],"v":[[2801,852],[2766.854,846.146],[2731,842],[2701.512,860.349],[2678,887],[2656.724,913.869],[2631,934],[2599.584,937.144],[2562,937],[2533.166,973.166],[2503,1008],[2480.521,1001.978],[2456,998],[2405,1063],[2459,1013],[2512,1024],[2569,955],[2638,951],[2729,861],[2770,867]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[0.667,0],[37.792,-32.209],[16.946,1.014],[8.431,-0.633],[9.502,-10.833],[17.065,-11.937],[32.667,3.454],[26.336,-12.33],[14.009,-1.507],[7.824,-11.592],[3.491,-18.176],[-23.168,10.832],[-21.362,3.826],[-21.251,14.415],[-24.137,15.604],[-30.022,16.312],[-25.26,2.647],[-17.763,20.904],[-12.142,7.192],[5.922,16.23]],"o":[[-42.973,27.028],[-18.268,-2.873],[-8.442,-0.505],[-16.508,1.239],[-16.956,19.332],[-20.301,12.189],[-26.254,12.413],[-15.711,0.364],[-15.19,1.634],[-10.339,11.327],[26.797,-7.204],[22.848,-2.033],[19.97,-15.696],[40.538,4.105],[23.597,-22.737],[23.82,4.637],[21.546,-17.12],[9.958,-9.375],[6.404,-10.488],[-0.667,0]],"v":[[2909,743],[2802,846],[2752,849],[2726,842],[2684,879],[2639,927],[2553,940],[2500,1003],[2459,993],[2431,1021],[2405,1060],[2458,1011],[2512,1021],[2556,958],[2656,937],[2722,864],[2805,865],[2860,804],[2890,776],[2911,743]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-7.045,27.331],[8.519,-1.397],[8.367,0.857],[4.477,1.379],[4.998,-0.038],[18.697,-20.803],[23.56,-15.94],[13.833,0],[13.833,0],[11.694,-16.306],[18.611,-9.389],[8.227,-1.625],[8.347,-1.405],[7.529,-2.237],[2.562,-7.653],[-14.677,2.823],[-16.414,1.087],[-31.895,22.105],[-27.473,2.507],[-48.168,27.832]],"o":[[-8.556,-1.73],[-8.519,1.397],[-5.095,-0.522],[-4.477,-1.379],[-24.654,14.846],[-18.697,20.803],[-13.833,0],[-13.833,0],[-17.612,10.388],[-11.694,16.306],[-6.744,2.094],[-8.227,1.625],[-8.32,1.4],[-7.529,2.237],[17.881,0.38],[14.677,-2.823],[34.528,-19.471],[28.076,0.046],[44.717,-31.283],[27.721,8.042]],"v":[[3006,737],[2980.358,737.845],[2955,740],[2940.928,736.58],[2927,734],[2864.68,790.179],[2804,848],[2762.5,848],[2721,848],[2680.249,891.249],[2638,933],[2615.203,938.517],[2590,943],[2565.182,947.31],[2549,961],[2596.6,956.1],[2642,949],[2721,866],[2806,866],[2923,755]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-0.566,4.544],[9.236,-10.097],[12.652,-6.681],[12.018,1.149],[13.487,-0.321],[14.583,-14.149],[12.747,-15.971],[4.849,-5.73],[4.985,-1.543],[9.847,-0.833],[-0.069,-12.293],[-10.71,2.04],[-8.202,2.938],[-15.061,17.606],[-21.064,11.602],[-11.952,-0.881],[-13.095,0.262],[-9.127,8.848],[-8.248,8.986],[-2.907,3.349]],"o":[[-13.403,5.931],[-9.236,10.097],[-13.44,0.274],[-12.018,-1.149],[-17.921,9.432],[-14.583,14.149],[-3.62,4.536],[-4.849,5.73],[-7.683,2.377],[-9.847,0.833],[10.957,3.098],[10.71,-2.04],[13.692,-18.975],[15.061,-17.606],[13.095,-0.262],[11.952,0.881],[11.242,-6.623],[9.127,-8.848],[2.807,-3.058],[2.907,-3.349]],"v":[[3060,690],[3027.937,715.938],[2997,743],[2959.535,740.965],[2922,739],[2873.619,775.096],[2833,821],[2820.024,837.745],[2805,850],[2775.686,851.563],[2758,868],[2791.067,868.527],[2820,860],[2861.971,803.971],[2915,759],[2952,760.5],[2989,762],[3019.245,738.272],[3045,711],[3054.181,701.615]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-1.073,8.775],[0.167,0],[0.167,0],[0.167,0],[0.167,0],[4.145,-6.355],[5.543,-4.957],[12.184,-2.982],[12.003,-3.163],[7.424,-12.076],[4.007,-15.493],[8.226,-2.441],[1.869,-8.797],[-8.522,4.311],[-5.797,7.036],[-6.262,10.571],[-9.761,7.072],[-11.46,3.207],[-11.188,3.479],[-5.251,7.158]],"o":[[-0.167,0],[-0.167,0],[-0.167,0],[-0.167,0],[-5.878,4.622],[-4.145,6.355],[-11.259,3.908],[-12.184,2.982],[-10.297,9.202],[-7.424,12.076],[-5.227,5.439],[-8.226,2.441],[12.114,-0.719],[8.522,-4.311],[3.191,-13.642],[6.262,-10.571],[11.972,-2.694],[11.46,-3.207],[4.921,-6.591],[5.251,-7.158]],"v":[[2708,707],[2707.5,707],[2707,707],[2706.5,707],[2706,707],[2691.749,724.249],[2678,742],[2642.558,752.059],[2606,761],[2579.282,792.782],[2562,834],[2539.481,843.482],[2522,858],[2552.738,850.238],[2574,833],[2588.073,796.573],[2612,770],[2647.089,761.089],[2681,751],[2697.386,730.638]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-1.855,8.978],[4.735,-0.446],[4.581,-0.587],[4.556,-0.222],[4.659,0.648],[4.453,-6.13],[4.098,-6.486],[4.72,-5.863],[6.322,-4.262],[8.604,-1.646],[7.132,-3.118],[4.837,-5.413],[1.718,-8.532],[-2.229,3.938],[-3.163,3.004],[-12.726,2.107],[-11.497,3.337],[-7.666,12.001],[-11.489,8.177],[-9.885,0.949]],"o":[[-5.017,-0.199],[-4.735,0.446],[-4.581,0.587],[-4.556,0.222],[-5.787,4.796],[-4.453,6.13],[-4.098,6.486],[-4.72,5.863],[-9.254,0.996],[-8.604,1.646],[-7.132,3.118],[-4.837,5.413],[4.92,-1.246],[2.229,-3.938],[9.599,-5.234],[12.726,-2.107],[9.847,-9.82],[7.666,-12.001],[9.607,-1.226],[9.884,-0.949]],"v":[[2781,672],[2766.404,672.498],[2752.463,674.174],[2738.79,675.513],[2725,675],[2709.883,691.633],[2697.301,710.801],[2684.319,729.569],[2668,745],[2641.007,748.757],[2617.196,755.696],[2599.038,768.288],[2589,789],[2598.818,780.318],[2606,769],[2640.577,759.077],[2678,752],[2702.768,717.768],[2730,686],[2761.314,684.814]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-1.747,3.42],[2.057,-1.943],[1.491,-2.509],[1.814,-2.186],[3.025,-0.975],[8.956,-1.021],[7.158,-3.235],[4.249,-5.721],[0.226,-8.481],[-2.285,2.215],[-1.473,3.027],[-1.827,2.673],[-3.346,1.154],[-4.077,0.348],[-4.156,0.248],[-4.126,-0.099],[-3.987,-0.694],[-2.491,2.676],[-2.014,3.152],[-1.766,3.4]],"o":[[-3.51,0.49],[-2.057,1.943],[-1.491,2.509],[-1.814,2.186],[-9.64,-0.92],[-8.956,1.021],[-7.158,3.235],[-4.249,5.721],[4.262,-0.238],[2.285,-2.215],[1.473,-3.027],[1.827,-2.673],[3.89,-0.202],[4.077,-0.348],[4.156,-0.248],[4.126,0.099],[3.196,-1.971],[2.491,-2.676],[2.014,-3.152],[1.766,-3.4]],"v":[[2800,648],[2791.872,651.872],[2786.773,658.772],[2782.037,666.037],[2775,671],[2746.828,671.083],[2722.379,677.399],[2704.991,690.765],[2698,712],[2707.528,708.028],[2712.874,699.874],[2717.532,691.032],[2725,685],[2736.978,684.113],[2749.354,683.157],[2761.803,682.872],[2774,684],[2782.473,676.973],[2789.174,668.174],[2794.788,658.288]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-2.723,5.61],[0.434,0.149],[0.412,0.172],[0.522,0.062],[0.764,-0.18],[3.095,-3.989],[2.972,-4.112],[2.766,-4.317],[2.479,-4.605],[0.615,0.178],[0.708,0],[0.615,-0.178],[0.333,-0.357],[-0.322,-1.094],[-0.619,-0.798],[-0.862,-0.555],[-1.052,-0.364],[-3.823,4.51],[-3.337,4.996],[-2.97,5.363]],"o":[[-0.589,0.005],[-0.434,-0.149],[-0.412,-0.172],[-0.522,-0.062],[-3.135,3.948],[-3.095,3.989],[-2.972,4.112],[-2.766,4.317],[-0.333,-0.357],[-0.615,-0.178],[-0.708,0],[-0.615,0.178],[-0.026,1.443],[0.322,1.094],[0.619,0.798],[0.862,0.555],[4.428,-3.905],[3.823,-4.51],[3.337,-4.996],[2.97,-5.363]],"v":[[2823,1057],[2821.498,1056.752],[2820.262,1056.237],[2818.895,1055.855],[2817,1056],[2807.635,1067.885],[2798.515,1080.015],[2789.888,1092.638],[2782,1106],[2780.531,1105.197],[2778.5,1104.93],[2776.469,1105.197],[2775,1106],[2775.457,1109.793],[2776.882,1112.619],[2779.116,1114.635],[2782,1116],[2794.348,1103.347],[2805.058,1089.058],[2814.489,1073.489]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[1.551,1.366],[-0.442,-1.503],[-0.518,-1.426],[-0.592,-1.352],[-0.663,-1.282],[-0.731,-1.214],[-0.796,-1.149],[-0.857,-1.087],[-0.916,-1.028],[-0.972,-0.972],[-1.025,-0.919],[-1.075,-0.869],[-1.122,-0.822],[0.454,2.463],[0.829,2.088],[1.131,1.785],[1.361,1.556],[1.518,1.399],[1.601,1.315],[1.612,1.304]],"o":[[0.362,1.582],[0.442,1.503],[0.518,1.426],[0.592,1.352],[0.663,1.282],[0.731,1.214],[0.796,1.149],[0.857,1.087],[0.916,1.028],[0.972,0.972],[1.025,0.919],[1.075,0.869],[-0.006,-2.911],[-0.454,-2.463],[-0.829,-2.088],[-1.131,-1.785],[-1.361,-1.556],[-1.518,-1.399],[-1.601,-1.315],[-1.612,-1.304]],"v":[[1330,935],[1331.206,939.627],[1332.647,944.019],[1334.314,948.186],[1336.197,952.136],[1338.288,955.878],[1340.579,959.422],[1343.059,962.775],[1345.72,965.946],[1348.554,968.946],[1351.551,971.782],[1354.703,974.464],[1358,977],[1357.292,968.958],[1355.349,962.151],[1352.391,956.359],[1348.634,951.366],[1344.299,946.951],[1339.602,942.898],[1334.763,938.987]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[0.222,0.111],[0.665,-0.669],[0.782,-0.551],[0.824,-0.51],[0.788,-0.545],[0.676,-0.658],[0.487,-0.847],[0.221,-1.113],[-0.122,-1.455],[-0.986,0.347],[-0.917,0.416],[-0.828,0.505],[-0.719,0.614],[-0.591,0.742],[-0.443,0.891],[-0.274,1.059],[-0.086,1.247],[0.128,0.205],[0.181,0.152],[0.213,0.121]],"o":[[-0.47,0.863],[-0.665,0.669],[-0.782,0.551],[-0.824,0.51],[-0.788,0.545],[-0.676,0.658],[-0.487,0.847],[-0.221,1.113],[1.035,-0.298],[0.986,-0.347],[0.917,-0.416],[0.828,-0.505],[0.72,-0.614],[0.591,-0.742],[0.443,-0.891],[0.274,-1.059],[-0.053,-0.281],[-0.128,-0.205],[-0.181,-0.152],[-0.213,-0.121]],"v":[[1326,1506],[1324.279,1508.279],[1322.09,1510.089],[1319.662,1511.661],[1317.225,1513.225],[1315.011,1515.01],[1313.248,1517.248],[1312.168,1520.168],[1312,1524],[1315.038,1523.037],[1317.898,1521.897],[1320.52,1520.52],[1322.847,1518.847],[1324.818,1516.817],[1326.373,1514.373],[1327.454,1511.453],[1328,1508],[1327.724,1507.276],[1327.255,1506.745],[1326.658,1506.342]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 6"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[0.21,1.817],[1.1,-1.072],[0.895,-1.411],[0.678,-1.669],[0.449,-1.844],[0.208,-1.937],[-0.045,-1.948],[-0.31,-1.877],[-0.587,-1.724],[-1.249,0.861],[-0.854,1.316],[-0.521,1.666],[-0.251,1.909],[-0.042,2.045],[0.104,2.075],[0.188,1.999]],"o":[[-1.293,0.651],[-1.1,1.072],[-0.895,1.411],[-0.678,1.669],[-0.449,1.844],[-0.208,1.937],[0.045,1.948],[0.31,1.877],[1.707,-0.299],[1.249,-0.861],[0.854,-1.316],[0.521,-1.666],[0.251,-1.909],[0.042,-2.045],[-0.104,-2.075],[-0.188,-1.999]],"v":[[1803,1381],[1799.408,1383.605],[1796.414,1387.351],[1794.053,1391.991],[1792.361,1397.28],[1791.373,1402.972],[1791.127,1408.82],[1791.657,1414.578],[1793,1420],[1797.419,1418.234],[1800.559,1414.942],[1802.607,1410.442],[1803.749,1405.054],[1804.174,1399.097],[1804.066,1392.89],[1803.612,1386.751]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[0.407,2.011],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.208,0],[0.296,-2.683],[-0.245,-2.618],[-1.043,-2.001],[-2.099,-0.833],[-0.182,2.284],[-0.028,2.363],[0.168,2.272]],"o":[[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.208,0],[-0.579,2.196],[-0.296,2.683],[0.245,2.618],[1.043,2.001],[0.294,-2.036],[0.182,-2.284],[0.028,-2.363],[-0.168,-2.272]],"v":[[2328,1037],[2327.375,1037],[2326.75,1037],[2326.125,1037],[2325.5,1037],[2324.875,1037],[2324.25,1037],[2323.625,1037],[2323,1037],[2321.623,1044.455],[2321.483,1052.543],[2323.351,1059.61],[2328,1064],[2328.725,1057.477],[2329.052,1050.463],[2328.852,1043.468]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-0.833,2.964],[3.74,0.585],[3.962,0.02],[3.367,-0.825],[1.953,-1.949],[0.747,-4.439],[0.784,-4.334],[-0.105,-4.103],[-1.92,-3.747],[-0.737,3.93],[-0.43,4.237],[-0.603,4.063],[-1.257,3.41],[-3.508,-0.312],[-3.268,-0.059],[-2.376,1.033]],"o":[[-2.698,-0.87],[-3.74,-0.585],[-3.962,-0.02],[-3.367,0.825],[0.215,4.418],[-0.747,4.439],[-0.784,4.334],[0.105,4.103],[1.524,-3.143],[0.737,-3.93],[0.43,-4.237],[0.603,-4.063],[3.095,-0.274],[3.508,0.312],[3.268,0.059],[2.376,-1.033]],"v":[[2368,1006],[2358.138,1003.748],[2346.381,1002.771],[2335.183,1003.909],[2327,1008],[2325.97,1021.316],[2323.443,1034.506],[2322.194,1047.193],[2325,1059],[2328.27,1048.27],[2329.9,1035.9],[2331.33,1023.33],[2334,1012],[2344.067,1012.268],[2354.394,1013.035],[2363.023,1011.785]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-4.135,11.577],[1.896,0.437],[2.345,-0.011],[7.67,-1.664],[6.149,-3.184],[2.083,-9.75],[3.694,-8.14],[6.773,-0.894],[7.086,-0.58],[1.902,-9.014],[-0.382,-8.717],[-1.746,8.421],[-5.963,4.204],[-7.116,1.051],[-5.921,2.245],[-9.022,14.978]],"o":[[-0.07,-2.263],[-1.896,-0.437],[-6.172,3.161],[-7.67,1.664],[-3.975,7.859],[-2.083,9.75],[-6.822,0.845],[-6.773,0.894],[-3.773,6.228],[-1.902,9.014],[6.053,-4.113],[1.746,-8.421],[8.614,0.447],[7.116,-1.05],[8.776,-15.225],[13.054,-5.979]],"v":[[2445,934],[2441.706,930.295],[2435,930],[2413.483,936.483],[2392,943],[2383.789,970.289],[2376,998],[2355.699,1000.699],[2335,1003],[2326.384,1026.634],[2324,1054],[2333.568,1033.067],[2343,1012],[2366.519,1011.02],[2386,1006],[2403,951]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[3.056,-0.722],[10.856,-2.311],[9.384,-3.783],[5.398,-12.602],[8.502,-9.498],[9.408,-3.092],[7.717,-4.783],[7.343,-14.324],[11.8,-3.867],[3.491,-20.176],[-15.338,8.662],[-10.928,4.738],[-6.447,15.552],[-15.149,12.851],[-17.154,15.512],[-2.935,20.755]],"o":[[-9.193,3.974],[-10.856,2.311],[-8.905,9.096],[-5.398,12.602],[-8.65,3.85],[-9.408,3.092],[-6.037,15.63],[-10.757,4.909],[-8.962,14.705],[17.063,-6.937],[15.491,-0.175],[8.107,-13.893],[18.086,-9.914],[11.908,-20.758],[18.918,-8.099],[-2.356,0.022]],"v":[[2548,839],[2517.143,847.643],[2486,856],[2466.198,890.198],[2447,925],[2419.301,934.801],[2393,946],[2378,996],[2338,1003],[2319,1055],[2347,1011],[2387,1004],[2403,954],[2461,928],[2495,864],[2554,840]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.667,0],[20.031,-21.302],[25.572,-0.428],[9.195,-21.471],[27.649,-5.685],[3.889,-16.111],[11.324,-3.01],[3.176,-20.825],[-11.645,10.355],[-10.984,5.682],[-7.649,12.018],[-18.463,16.203],[-11.45,14.883],[-18.432,16.568],[-2.763,9.237],[0.045,20.075]],"o":[[-25.559,15.774],[-21.153,4.847],[-15.265,15.402],[-17.233,16.1],[-7.574,12.425],[-9.948,4.385],[-10.929,13.071],[16.659,-5.341],[12.329,-4.338],[5.759,-13.908],[28.925,-5.742],[7.433,-18.901],[27.713,-7.287],[2.841,-9.159],[6.773,-16.583],[-0.667,0]],"v":[[2601,765],[2550,838],[2488,854],[2456,914],[2389,947],[2376,994],[2339,1000],[2319,1052],[2344,1011],[2386,1003],[2398,956],[2466,920],[2492,867],[2568,838],[2578,812],[2603,765]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[2.333,0],[11.618,-3.049],[11.965,-2.702],[7.547,-13.787],[10.033,-11.301],[12.756,-3.578],[10.921,-5.412],[13.089,-16.245],[12.435,-20.565],[-23.574,11.093],[-10.709,17.958],[-22.681,9.986],[-23.808,18.192],[-5.03,-0.697],[-9.764,4.088],[-1.608,10.974]],"o":[[-9.564,5.102],[-11.618,3.049],[-10.78,10.553],[-7.547,13.787],[-11.056,5.277],[-12.756,3.578],[-11.379,17.954],[-20.069,12.932],[26.881,-7.786],[10.682,-17.985],[26.332,-6.335],[17.838,-24.163],[5.03,0.697],[9.566,-3.75],[9.069,-3.797],[-2.333,0]],"v":[[2675,739],[2642.801,750.801],[2607,759],[2580.939,796.939],[2556,836],[2519.399,848.399],[2483,861],[2455,921],[2394,959],[2465,926],[2492,867],[2566,843],[2616,767],[2628,766],[2659,757],[2682,739]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[7.371,4.129],[7.919,-3.414],[10.914,-0.419],[7.858,10.975],[13.076,5.757],[5.395,-1.605],[1.236,-5.764],[-5.033,1.508],[-4.861,0.622],[-7.652,-10.848],[-11.582,-6.918],[-9.009,3.324],[-8.913,3.42],[-3.886,-4.614],[-7.622,-0.878],[6.479,5.021]],"o":[[-7.408,3.926],[-7.92,3.414],[-11.49,-7.343],[-7.858,-10.975],[-5.184,1.816],[-5.395,1.605],[5.006,2.653],[5.033,-1.508],[9.81,8.69],[7.652,10.848],[12.05,-0.284],[9.009,-3.324],[5.833,2.667],[3.886,4.614],[-0.712,-10.788],[-6.479,-5.021]],"v":[[1573,1020],[1550.63,1031.63],[1523,1038],[1496.189,1008.311],[1467,981],[1450.039,985.039],[1439,995],[1454.109,995.456],[1469,991],[1493.671,1021.829],[1521,1050],[1551.853,1043.853],[1578,1033],[1591.158,1045.342],[1607,1055],[1594.995,1032.505]],"c":true}],"h":1},{"t":8,"s":[{"i":[[16.902,9.098],[-5.604,-9.396],[-5.173,-9.827],[-7.915,2.751],[-8.682,1.985],[-6.678,-10.321],[-13.066,-3.934],[-1.879,0.621],[-0.972,1.528],[-1.43,1.418],[1.979,0.164],[2.448,-0.718],[2.601,-0.566],[6.314,10.519],[9.329,7.504],[21.692,1.341]],"o":[[2.412,12.588],[5.604,9.396],[9.657,-1.01],[7.916,-2.751],[9.22,7.781],[6.678,10.321],[2.513,0.013],[1.879,-0.621],[1.257,-0.164],[1.43,-1.418],[-3.606,-0.44],[-2.448,0.718],[-10.416,-6.418],[-6.314,-10.519],[-20.695,-6.878],[-8.758,-17.242]],"v":[[1390,949],[1402.929,981.071],[1420,1009],[1445.731,1002.731],[1470,995],[1491.615,1024.385],[1519,1048],[1525.656,1047.156],[1530,1044],[1534.927,1041],[1535,1038],[1526.245,1038.745],[1519,1041],[1495.685,1013.814],[1474,985],[1421,996]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[4.043,-0.29],[2.635,4.865],[2.287,5.212],[2.884,4.616],[4.424,3.076],[2.059,-0.858],[1.923,-0.994],[1.403,-1.514],[0.499,-2.418],[-3.128,1.235],[-3.62,-0.029],[-5.438,-10.062],[-10.076,-5.424],[-4.125,3.081],[3.802,6.264],[2.507,-1.827]],"o":[[-3.926,-3.574],[-2.635,-4.865],[-2.287,-5.212],[-2.884,-4.616],[-1.811,1.106],[-2.059,0.858],[-1.923,0.994],[-1.403,1.514],[3.87,1.911],[3.128,-1.235],[5.171,10.329],[5.438,10.062],[4.301,-1.413],[4.125,-3.081],[-4.929,-0.596],[-2.507,1.827]],"v":[[1425,1001],[1415.394,988.106],[1408.246,972.754],[1400.725,957.775],[1390,946],[1384.1,948.85],[1378.032,951.532],[1372.948,955.198],[1370,961],[1380.187,960.912],[1390,958],[1404.822,989.678],[1427,1014],[1441.577,1007.638],[1444,994],[1433.836,996.835]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-5,-0.5],[-1.186,0.897],[-0.484,1.6],[-0.056,2.028],[0.098,2.182],[2.085,3.831],[2.53,3.386],[2.93,2.987],[3.284,2.633],[0.171,0.079],[0.137,0.113],[0.147,0.103],[0.202,0.048],[-3.115,-6.394],[-2.859,-5.416],[-1.503,-3.997]],"o":[[2.163,0.08],[1.186,-0.897],[0.484,-1.6],[0.056,-2.028],[-1.594,-4.322],[-2.085,-3.831],[-2.53,-3.386],[-2.93,-2.987],[-0.251,0.001],[-0.171,-0.079],[-0.137,-0.113],[-0.147,-0.103],[-4.318,8.009],[3.115,6.394],[1.989,3.511],[1.503,3.997]],"v":[[1019,1277],[1023.955,1275.705],[1026.391,1271.892],[1027.132,1266.382],[1027,1260],[1021.47,1247.78],[1014.535,1236.965],[1006.333,1227.418],[997,1219],[996.378,1218.872],[995.928,1218.572],[995.513,1218.237],[995,1218],[995.117,1239.445],[1006,1257],[1010.242,1269.258]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[3.136,1.697],[0.028,-0.305],[0.145,-0.188],[0.217,-0.116],[0.244,-0.089],[0.227,-0.107],[0.165,-0.169],[0.058,-0.276],[-0.094,-0.427],[-1.815,-2.851],[-2.529,-2.138],[-3.074,-1.592],[-3.451,-1.216],[1.511,3.322],[2.394,2.439],[2.936,1.897]],"o":[[0.133,0.466],[-0.028,0.305],[-0.145,0.188],[-0.217,0.116],[-0.244,0.089],[-0.227,0.107],[-0.165,0.169],[-0.058,0.276],[0.933,3.734],[1.815,2.851],[2.529,2.138],[3.074,1.592],[-0.286,-4.548],[-1.511,-3.322],[-2.394,-2.439],[-2.936,-1.897]],"v":[[2811,1061],[2811.146,1062.146],[2810.874,1062.874],[2810.32,1063.32],[2809.617,1063.617],[2808.9,1063.9],[2808.302,1064.302],[2807.957,1064.957],[2808,1066],[2812.164,1075.835],[2818.723,1083.277],[2827.17,1088.83],[2837,1093],[2834.219,1081.281],[2828.275,1072.724],[2820.194,1066.306]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[-0.922,-0.163],[0.272,0.955],[0.501,0.802],[0.694,0.635],[0.849,0.454],[0.967,0.259],[1.048,0.05],[1.092,-0.173],[1.099,-0.41],[-0.202,-0.708],[-0.521,-0.578],[-0.767,-0.466],[-0.941,-0.37],[-1.044,-0.292],[-1.075,-0.232],[-1.034,-0.189]],"o":[[-0.005,-1.095],[-0.272,-0.955],[-0.501,-0.802],[-0.694,-0.635],[-0.849,-0.454],[-0.967,-0.259],[-1.048,-0.05],[-1.092,0.173],[-0.188,0.856],[0.202,0.708],[0.521,0.578],[0.767,0.466],[0.941,0.37],[1.044,0.292],[1.075,0.232],[1.034,0.189]],"v":[[2958,1686],[2957.576,1682.921],[2956.408,1680.281],[2954.606,1678.122],[2952.282,1676.486],[2949.547,1675.414],[2946.515,1674.948],[2943.295,1675.129],[2940,1676],[2940.04,1678.343],[2941.143,1680.268],[2943.092,1681.83],[2945.673,1683.079],[2948.669,1684.068],[2951.866,1684.85],[2955.048,1685.477]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 7"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[1.692,0.725],[-0.526,-1.622],[-0.625,-1.523],[-0.749,-1.399],[-0.9,-1.248],[-1.078,-1.071],[-1.281,-0.867],[-1.51,-0.638],[-1.766,-0.382],[-2.048,-0.1],[0.677,1.74],[0.909,1.508],[1.112,1.305],[1.286,1.131],[1.431,0.986],[1.547,0.87],[1.634,0.783]],"o":[[0.454,1.694],[0.526,1.622],[0.625,1.523],[0.749,1.399],[0.9,1.248],[1.078,1.071],[1.281,0.867],[1.51,0.638],[1.766,0.382],[-0.416,-2.001],[-0.677,-1.74],[-0.909,-1.508],[-1.112,-1.305],[-1.286,-1.131],[-1.431,-0.986],[-1.547,-0.87],[-1.634,-0.783]],"v":[[2071,1430],[2072.463,1434.981],[2074.183,1439.706],[2076.237,1444.096],[2078.705,1448.072],[2081.666,1451.557],[2085.197,1454.47],[2089.377,1456.734],[2094.285,1458.27],[2100,1459],[2098.355,1453.395],[2095.97,1448.53],[2092.932,1444.318],[2089.328,1440.672],[2085.246,1437.504],[2080.773,1434.727],[2075.995,1432.255]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[-0.822,0.72],[1.31,-0.102],[1.212,-0.27],[1.094,-0.42],[0.957,-0.554],[0.8,-0.67],[0.624,-0.769],[0.427,-0.85],[0.212,-0.914],[-0.023,-0.961],[-1.356,0.186],[-1.09,0.451],[-0.888,0.654],[-0.748,0.793],[-0.672,0.87],[-0.659,0.883],[-0.709,0.833]],"o":[[-1.389,-0.084],[-1.31,0.102],[-1.212,0.27],[-1.094,0.42],[-0.957,0.554],[-0.8,0.67],[-0.624,0.769],[-0.427,0.85],[-0.212,0.914],[1.685,0.143],[1.356,-0.186],[1.09,-0.451],[0.888,-0.654],[0.748,-0.793],[0.672,-0.87],[0.659,-0.883],[0.709,-0.833]],"v":[[1849,1112],[1844.947,1112.031],[1841.159,1112.593],[1837.695,1113.632],[1834.613,1115.098],[1831.973,1116.937],[1829.833,1119.099],[1828.252,1121.532],[1827.288,1124.183],[1827,1127],[1831.545,1126.92],[1835.199,1125.949],[1838.151,1124.276],[1840.59,1122.09],[1842.705,1119.58],[1844.685,1116.935],[1846.721,1114.346]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[3.096,0.904],[-0.448,-3.218],[-1.003,-2.663],[-1.454,-2.212],[-1.801,-1.866],[-2.044,-1.623],[-3.975,1.692],[-3.953,1.714],[-3.377,2.29],[-2.246,3.421],[3.58,-1.337],[3.295,-1.621],[3.318,-1.599],[3.646,-1.27],[1.034,2.966],[1.057,2.943],[1.745,2.255]],"o":[[-0.211,3.878],[0.448,3.218],[1.003,2.663],[1.454,2.212],[1.801,1.866],[3.441,-2.225],[3.975,-1.692],[3.953,-1.714],[3.377,-2.29],[-4.172,0.745],[-3.58,1.337],[-3.295,1.621],[-3.318,1.599],[-1.675,-2.325],[-1.034,-2.966],[-1.057,-2.943],[-1.745,-2.255]],"v":[[1785,1102],[1785.382,1112.618],[1787.585,1121.414],[1791.298,1128.702],[1796.207,1134.793],[1802,1140],[1813.263,1134.263],[1825.293,1129.293],[1836.427,1123.427],[1845,1115],[1833.449,1118.199],[1823.212,1122.713],[1813.369,1127.62],[1803,1132],[1799.103,1123.897],[1796.132,1114.868],[1792.095,1106.905]],"c":true}],"h":1},{"t":4,"s":[{"i":[[15.839,4.828],[0.264,-0.57],[-0.212,-1.045],[-5.165,-7.002],[-8.017,-4.149],[-7.166,3.167],[-7.899,2.434],[-3.711,-6.622],[-5.749,-4.584],[-6.475,1.917],[-4.455,2.623],[-1.503,1.271],[1.311,1.15],[6.124,-2.043],[7.193,-0.974],[14.65,7.683],[16.809,-3.525]],"o":[[-0.157,0.676],[-0.264,0.57],[4.323,7.844],[5.165,7.002],[8.436,-1.898],[7.166,-3.167],[5.405,4.928],[3.711,6.622],[5.644,-1.711],[6.475,-1.917],[1.3,-0.765],[1.503,-1.271],[-8.311,-0.144],[-6.124,2.042],[-6.269,-16.064],[-16.809,3.525],[-12.362,-8.305]],"v":[[1695,1073],[1694.223,1074.723],[1694,1077],[1707.729,1099.771],[1727,1117],[1749.902,1108.902],[1772,1100],[1784.742,1118.258],[1798,1136],[1816.892,1130.684],[1834,1124],[1838.958,1120.788],[1840,1117],[1819.161,1120.662],[1800,1126],[1772,1087],[1727,1103]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[22.678,-0.323],[5.762,9.072],[11.543,3.291],[0.173,-0.327],[-0.082,-0.581],[0.173,-0.327],[-0.082,-0.581],[-22.107,-10.559],[-21.933,0.733],[-19.821,-8.513],[-15.103,3.563],[-11.098,-8.568],[-10.721,10.279],[14.258,-1],[18.22,4.447],[16.925,-1.409],[19.27,6.397]],"o":[[-9.411,-5.423],[-5.762,-9.072],[-0.39,0.11],[-0.173,0.327],[-0.39,0.11],[-0.173,0.327],[16.035,16.632],[23.804,1.137],[19.387,8.946],[13.207,-5.46],[13.127,6.539],[18.607,-2.393],[-15.536,-3.515],[-13.183,-9.484],[-15.824,2.51],[-17.099,-8.568],[-24.614,-1.614]],"v":[[1629,1076],[1608.599,1051.901],[1585,1031],[1584.146,1031.647],[1584,1033],[1583.146,1033.647],[1583,1035],[1627,1089],[1682,1076],[1728,1115],[1769,1100],[1795,1133],[1845,1120],[1801,1123],[1769,1087],[1727,1100],[1686,1064]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[20.696,-0.454],[32.046,4.621],[10.436,-3.897],[1.439,-9.561],[-10.403,3.148],[-9.814,1.147],[-15.006,-16.994],[-24.407,-1.74],[-7.003,-3.997],[-9.75,-4.302],[-14.37,2.963],[-13.24,-6.094],[-9.383,10.283],[14.871,0.323],[15.186,6.148],[15.097,-1.903],[25.034,2.662]],"o":[[-18.92,-17.746],[-8.433,5.901],[-10.477,0.523],[6.259,11.24],[10.761,-3.256],[17.32,14.68],[22.259,-0.408],[7.767,3.233],[8.916,8.456],[16.918,-0.415],[11.372,7.961],[16.685,-2.982],[-12.788,-7.542],[-11.698,-9.635],[-13.381,3.619],[-18.209,-11.225],[-18.81,-2]],"v":[[1629,1076],[1571,1024],[1541,1037],[1517,1046],[1548,1049],[1580,1038],[1625,1089],[1683,1079],[1704,1091],[1732,1117],[1770,1103],[1796,1135],[1842,1122],[1799,1124],[1770,1089],[1734,1104],[1679,1064]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[25.931,6.402],[0,-0.667],[0,-0.667],[-1.873,-2.3],[-1.938,-2.257],[-5.816,-7.19],[-6.664,-6.167],[-9.604,3.063],[-11.247,1.419],[-24.349,-11.317],[-18.627,1.039],[-24.08,-7.253],[8.596,8.404],[12.077,5.256],[17.189,-4.145],[23.441,12.226],[21.606,-3.06]],"o":[[0,0.667],[0,0.667],[1.571,2.543],[1.873,2.3],[6.073,7.075],[5.816,7.19],[12.338,-0.329],[9.604,-3.063],[21.602,14.065],[15.978,-3.688],[23.363,7.971],[-2.166,-14.834],[-10.086,-7.247],[-19.574,1.759],[-18.137,-17.529],[-20.903,3.764],[-16.554,-15.779]],"v":[[1468,988],[1468,990],[1468,992],[1473.225,999.214],[1479,1006],[1496.556,1027.681],[1515,1048],[1546.818,1041.818],[1577,1034],[1631,1087],[1676,1073],[1734,1109],[1709,1083],[1679,1061],[1629,1075],[1576,1021],[1517,1036]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[11.681,-4.652],[5.519,5.755],[8.079,2.98],[7.464,-6.182],[4.837,-6.443],[3.368,-3.794],[2.932,-0.363],[4.547,2.634],[5.251,-3.846],[-7.323,-2.177],[-8.9,-0.6],[-7.129,8.038],[-10.195,4.972],[-7.86,-5.807],[-11.66,-2.006],[-5.339,5.493],[0.497,7.833]],"o":[[-9.845,-3.001],[-5.519,-5.755],[-11.308,-4.171],[-7.464,6.182],[-2.597,3.459],[-3.368,3.794],[-5.562,0.689],[-4.547,-2.634],[0.806,8.693],[7.323,2.177],[5.289,-9.878],[7.129,-8.037],[9.901,3.766],[7.86,5.807],[4.14,-3.197],[5.339,-5.493],[-12.302,4.031]],"v":[[2705,1116],[2683.675,1101.485],[2665,1087],[2637.147,1092.54],[2619,1114],[2609.751,1125.822],[2600,1133],[2585.266,1127.633],[2571,1127],[2584.43,1142.07],[2610,1145],[2628.32,1117.82],[2654,1098],[2679.181,1113.82],[2707,1127],[2722.977,1113.977],[2732,1094]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-8.034,-2.632],[3.311,5.245],[4.378,4.178],[3.4,5.155],[7.083,-8.417],[10.331,-5.169],[6.76,5.739],[11.584,0.916],[3.312,-3.355],[1.625,-5.042],[-1.973,2.527],[-4.114,0.385],[-6.825,-7.253],[-11.034,-2.141],[-6.841,7.992],[-8.894,5.939],[-4.558,-6.109]],"o":[[-0.2,-8.356],[-3.311,-5.245],[-4.378,-4.178],[-10.338,5.162],[-7.083,8.417],[-7.374,-5.126],[-6.761,-5.739],[-4.128,2.539],[-3.312,3.355],[4.994,0.494],[1.973,-2.527],[11.664,-0.153],[6.825,7.253],[9.742,-5.091],[6.841,-7.992],[4.734,5.932],[4.558,6.109]],"v":[[2781,1116],[2775.222,1096.111],[2763.178,1082.488],[2751,1069],[2726.494,1090.994],[2702,1113],[2682.158,1095.342],[2656,1084],[2644.623,1092.623],[2637,1105],[2646.159,1100.659],[2654,1095],[2679.472,1108.78],[2704,1126],[2727.636,1105.136],[2750,1083],[2763.025,1101.975]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[4.2,-1.3],[3.064,4.936],[4.077,3.923],[5.919,2.081],[3.956,-4.544],[-0.559,-9.059],[-2.136,4.031],[-4.823,1.343],[-2.672,-3.257],[-2.838,-4.139],[-2.926,-4.37],[-2.53,0.056],[-1.249,1.303],[-0.711,0.78],[-2.21,3.922],[-1.806,3.633],[2.186,-3.314]],"o":[[-2.881,-5.119],[-3.064,-4.936],[-4.077,-3.923],[-4.735,3.765],[-3.956,4.544],[6.632,0.466],[2.136,-4.031],[3.474,1.833],[2.672,3.257],[1.767,2.577],[2.926,4.37],[0.293,-0.006],[1.249,-1.303],[3.354,-3.678],[2.21,-3.922],[-6.057,-0.557],[-2.186,3.314]],"v":[[2781,1104],[2772.29,1088.71],[2761.786,1075.214],[2747,1066],[2733.03,1077.53],[2727,1097],[2738.357,1089.857],[2747,1080],[2755.977,1087.771],[2764,1099],[2771.428,1110.975],[2780,1119],[2782.687,1116.58],[2786,1113],[2794.16,1101.466],[2800,1090],[2789.107,1095.608]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.028,1.361],[0.532,0.135],[0.571,0.096],[0.617,0.05],[0.67,-0.003],[0.728,-0.062],[4.582,-5.251],[4.504,-5.329],[4.295,-5.539],[3.954,-5.88],[-4.85,4.316],[-4.078,5.089],[-3.939,5.228],[-4.432,4.735],[-1.047,0.286],[-0.623,0.711],[-0.264,1.069]],"o":[[-0.498,-0.168],[-0.532,-0.135],[-0.571,-0.096],[-0.617,-0.05],[-0.67,0.003],[-4.529,5.304],[-4.582,5.251],[-4.504,5.329],[-4.295,5.539],[6.255,-2.911],[4.85,-4.316],[4.078,-5.089],[3.939,-5.228],[1.538,0.205],[1.047,-0.286],[0.623,-0.711],[0.264,-1.069]],"v":[[1400,1468],[1398.457,1467.543],[1396.804,1467.196],[1395.024,1466.976],[1393.095,1466.905],[1391,1467],[1377.3,1482.8],[1363.637,1498.636],[1350.405,1514.905],[1338,1532],[1354.501,1521.001],[1367.735,1506.736],[1379.602,1491.102],[1392,1476],[1395.861,1475.861],[1398.349,1474.349],[1399.663,1471.663]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[0.33,1.549],[1.376,-0.321],[1.234,-0.59],[1.055,-0.815],[0.839,-0.998],[0.586,-1.136],[0.296,-1.232],[-0.03,-1.284],[-0.394,-1.293],[-0.794,-1.258],[-1.244,0.523],[-1.107,0.74],[-0.94,0.935],[-0.744,1.105],[-0.52,1.252],[-0.266,1.374],[0.017,1.474]],"o":[[-1.482,0.008],[-1.376,0.321],[-1.234,0.59],[-1.055,0.815],[-0.839,0.998],[-0.586,1.136],[-0.296,1.232],[0.03,1.284],[0.394,1.293],[1.352,-0.281],[1.244,-0.523],[1.107,-0.74],[0.94,-0.935],[0.744,-1.105],[0.52,-1.252],[0.266,-1.374],[-0.017,-1.474]],"v":[[998,1218],[993.704,1218.504],[989.779,1219.88],[986.337,1221.998],[983.487,1224.728],[981.34,1227.94],[980.008,1231.503],[979.6,1235.288],[980.227,1239.163],[982,1243],[985.901,1241.789],[989.434,1239.888],[992.511,1237.369],[995.045,1234.304],[996.948,1230.763],[998.134,1226.818],[998.513,1222.54]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[0.082,1.291],[1.005,0.158],[0.878,-0.105],[0.756,-0.331],[0.637,-0.521],[0.523,-0.676],[0.412,-0.794],[0.305,-0.876],[0.202,-0.923],[0.102,-0.933],[-1.163,0.045],[-1.019,0.19],[-0.863,0.345],[-0.697,0.512],[-0.519,0.69],[-0.33,0.879],[-0.129,1.079]],"o":[[-1.135,-0.456],[-1.005,-0.158],[-0.878,0.105],[-0.756,0.331],[-0.637,0.521],[-0.523,0.676],[-0.412,0.794],[-0.305,0.876],[-0.202,0.923],[1.296,0.088],[1.163,-0.045],[1.019,-0.19],[0.863,-0.345],[0.697,-0.512],[0.519,-0.69],[0.33,-0.879],[0.129,-1.079]],"v":[[1659,1816],[1655.792,1815.088],[1652.968,1815.018],[1650.518,1815.68],[1648.429,1816.967],[1646.689,1818.772],[1645.288,1820.985],[1644.214,1823.5],[1643.455,1826.207],[1643,1829],[1646.692,1829.067],[1649.967,1828.717],[1652.793,1827.918],[1655.135,1826.635],[1656.961,1824.836],[1658.236,1822.486],[1658.927,1819.552]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 8"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":1.6,"s":[{"i":[[-1.495,0.844],[1.15,1.206],[1.618,0.664],[1.943,0.225],[2.128,-0.11],[2.17,-0.341],[2.071,-0.469],[1.831,-0.493],[1.448,-0.413],[-1.464,-0.787],[-1.714,-0.625],[-1.882,-0.439],[-1.968,-0.229],[-1.973,0.004],[-1.895,0.26],[-1.736,0.54]],"o":[[-0.542,-1.852],[-1.15,-1.206],[-1.618,-0.664],[-1.943,-0.225],[-2.128,0.11],[-2.17,0.341],[-2.071,0.469],[-1.831,0.493],[1.132,0.926],[1.464,0.787],[1.714,0.625],[1.882,0.439],[1.968,0.229],[1.973,-0.004],[1.895,-0.26],[1.736,-0.54]],"v":[[2267,1468],[2264.427,1463.438],[2260.239,1460.659],[2254.862,1459.351],[2248.72,1459.204],[2242.239,1459.906],[2235.841,1461.146],[2229.954,1462.615],[2225,1464],[2228.915,1466.576],[2233.702,1468.7],[2239.117,1470.301],[2244.912,1471.31],[2250.844,1471.654],[2256.666,1471.264],[2262.133,1470.07]],"c":true}],"h":1},{"t":2.4,"s":[{"i":[[0.404,-1.137],[-1.121,0.535],[-1.046,0.775],[-0.908,0.97],[-0.708,1.12],[-0.445,1.225],[-0.121,1.285],[0.266,1.3],[0.715,1.27],[0.839,-0.702],[0.677,-0.865],[0.548,-0.993],[0.453,-1.089],[0.391,-1.151],[0.362,-1.18],[0.366,-1.175]],"o":[[1.134,-0.25],[1.121,-0.535],[1.046,-0.775],[0.908,-0.97],[0.708,-1.12],[0.445,-1.225],[0.121,-1.285],[-0.266,-1.3],[-1.035,0.507],[-0.839,0.702],[-0.677,0.865],[-0.548,0.993],[-0.453,1.089],[-0.391,1.151],[-0.362,1.18],[-0.366,1.175]],"v":[[2333,1186],[2336.399,1184.811],[2339.664,1182.834],[2342.61,1180.205],[2345.048,1177.059],[2346.793,1173.53],[2347.658,1169.754],[2347.456,1165.866],[2346,1162],[2343.197,1163.822],[2340.931,1166.181],[2339.101,1168.976],[2337.608,1172.108],[2336.352,1175.476],[2335.231,1178.981],[2334.148,1182.522]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-3.918,0.085],[1.946,3.054],[2.646,2.354],[3.252,1.748],[3.764,1.236],[2.755,-3.443],[2.921,-3.287],[2.205,-3.576],[0.608,-4.309],[-2.592,2.825],[-2.269,3.148],[-2.543,2.874],[-3.413,2.004],[-1.776,-2.058],[-1.77,-2.063],[-2.484,-1.349]],"o":[[-1.151,-3.849],[-1.946,-3.054],[-2.646,-2.354],[-3.252,-1.748],[-1.708,4.043],[-2.755,3.443],[-2.921,3.287],[-2.205,3.576],[3.511,-1.906],[2.592,-2.825],[2.269,-3.148],[2.543,-2.874],[2.501,1.332],[1.776,2.058],[1.77,2.063],[2.484,1.349]],"v":[[2395,1167],[2390.33,1156.67],[2383.418,1148.582],[2374.547,1142.453],[2364,1138],[2357.085,1149.117],[2348.351,1159.101],[2340.441,1169.284],[2336,1181],[2345.005,1173.755],[2352.147,1164.648],[2359.216,1155.466],[2368,1148],[2374.236,1153.265],[2379.375,1159.625],[2385.577,1164.924]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-15.834,-0.832],[7.92,3.809],[6.528,4.341],[5.591,-7.409],[8.958,-4.042],[5.177,4.717],[7.221,-0.626],[3.153,-3.052],[2.207,-2.517],[2.565,-3.264],[0.941,-3.751],[-5.224,5.183],[-6.253,3.263],[-6,-4.334],[-9.378,-0.956],[-16.44,8.227]],"o":[[0.208,-9.423],[-7.92,-3.809],[-9.679,3.321],[-5.591,7.409],[-7.072,-1.758],[-5.177,-4.717],[-3.18,0.275],[-3.153,3.052],[-2.798,3.191],[-2.565,3.264],[6.852,-1.004],[5.224,-5.183],[5.623,4.71],[6,4.334],[15.931,-8.735],[11.973,4.694]],"v":[[2484,1154],[2470.052,1135.688],[2446,1125],[2424.959,1142.959],[2405,1162],[2387.612,1150.212],[2370,1142],[2360.271,1147.819],[2352,1157],[2343.607,1166.579],[2338,1177],[2355.449,1166.194],[2372,1152],[2388.685,1166.316],[2411,1175],[2449,1139]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[-24.634,5.268],[4.708,2.541],[4.457,2.716],[3.876,3.165],[5.18,0.708],[8.039,-8.295],[11.543,-4.79],[17.257,4.409],[17.788,-6.879],[12.128,4.539],[7.903,-16.43],[-15.762,4.905],[-17.371,-1.962],[-17.468,6.198],[-22.659,1.326],[-22.244,6.422]],"o":[[0.287,-6.121],[-4.708,-2.541],[-4.315,-2.63],[-3.876,-3.166],[-13.302,3.031],[-8.039,8.295],[-16.011,-5.655],[-15.29,9.377],[-11.634,-5.033],[-16.213,8.12],[18.159,-2.508],[12.402,6.931],[16.069,-7.597],[16.975,4.359],[18.919,-9.748],[19.055,3.636]],"v":[[2597,1139],[2589.058,1126.946],[2574,1120],[2562.148,1110.559],[2549,1104],[2519.18,1123.181],[2492,1145],[2445,1127],[2406,1162],[2375,1143],[2335,1176],[2375,1154],[2412,1175],[2450,1142],[2500,1156],[2548,1118]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[-19.147,9.187],[-25.889,-1.444],[-12.116,10.55],[6.056,12.082],[21.172,-12.828],[16.976,9.025],[19.555,-8.778],[11.246,4.035],[7.762,-0.176],[16.428,-5.732],[13.006,3.994],[8.772,-15.228],[-14.278,5.474],[-15.132,-4.201],[-14.549,6.784],[-21.848,-1.485]],"o":[[17.773,9.56],[13.364,-9.303],[8.4,-4.097],[-25.703,8.297],[-17.794,-8.207],[-19.283,9.05],[-14.223,1.003],[-8.339,-2.992],[-17.555,0.399],[-11.954,-5.046],[-14.475,9.525],[17.958,1.508],[12.743,6.59],[12.461,-8.873],[14.298,9.035],[20.32,-8.014]],"v":[[2546,1118],[2603,1143],[2636,1108],[2652,1084],[2596,1130],[2545,1103],[2497,1140],[2461,1138],[2440,1127],[2406,1159],[2374,1140],[2335,1173],[2375,1152],[2411,1174],[2442,1141],[2498,1155]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-23.187,6.831],[4.903,1.819],[4.127,2.078],[3.758,3.934],[4.944,1.731],[0.333,0],[0.333,0],[8.638,-9.362],[12.25,-5.75],[21.456,5.878],[20.593,-7.407],[22.434,-3.508],[-24.037,-3.963],[-17.678,8.989],[-23.474,-4.193],[-23.129,10.871]],"o":[[-0.262,-6.646],[-4.903,-1.819],[-5.026,-2.531],[-3.757,-3.935],[-0.333,0],[-0.333,0],[-12.198,5.802],[-8.638,9.362],[-19.82,-7.514],[-17.528,10.472],[-21.476,-0.617],[12.947,15.053],[17.833,-8.833],[18.401,9.265],[21.906,-12.094],[14.309,8.52]],"v":[[2709,1119],[2699.899,1107.574],[2685,1103],[2672.438,1092.4],[2660,1083],[2659,1083],[2658,1083],[2628.539,1107.539],[2599,1132],[2543,1106],[2498,1145],[2439,1137],[2504,1156],[2547,1119],[2604,1145],[2659,1098]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[25.622,-17.378],[4.828,11.172],[8.943,7.057],[1.135,-0.865],[0.461,-1.539],[-0.751,-2.916],[-0.466,-3.201],[-4.25,-10.75],[-4.298,-10.702],[-12.1,11.566],[-14.792,8.874],[-7.93,-11.403],[-17.766,-1.568],[-1.337,17.329],[10.181,-3.819],[29.313,11.687]],"o":[[-5.744,-10.256],[-4.828,-11.172],[-0.999,1.001],[-1.135,0.865],[-0.47,4.137],[0.751,2.916],[6.703,8.297],[4.25,10.75],[15.807,-7.86],[12.1,-11.566],[10.513,8.821],[7.93,11.403],[11.45,-7.217],[-10.656,3.344],[-29.1,-11.9],[-28.09,14.91]],"v":[[1112,1258],[1097.4,1224.6],[1078,1196],[1074.596,1198.596],[1072,1202],[1072.798,1212.202],[1075,1221],[1090.804,1250.196],[1103,1283],[1143.261,1252.261],[1182,1220],[1206.56,1253.44],[1242,1276],[1269,1247],[1243,1263],[1183,1200]],"c":true}],"h":1},{"t":8,"s":[{"i":[[6.293,3.26],[0.137,0.197],[0.425,-0.092],[6.083,-7.167],[0.532,-10.137],[-3.489,4.511],[-7.241,0.759],[-2.568,-6.634],[-2.669,-5.956],[-3.337,-5.659],[-7.083,-1.634],[-6.062,7.683],[0.631,11.811],[3.619,-5.548],[7.543,-1.623],[6.851,18.331]],"o":[[-0.028,-0.305],[-0.137,-0.197],[-6.138,6.197],[-6.083,7.167],[6.803,-1.197],[3.489,-4.511],[0.061,7.508],[2.567,6.634],[2.568,5.728],[3.337,5.659],[9.383,-3.459],[6.062,-7.683],[-8.981,0.186],[-3.619,5.548],[-10.403,-15.172],[-2.257,-6.04]],"v":[[1079,1192],[1078.797,1191.202],[1078,1191],[1058.296,1210.545],[1047,1236],[1060.671,1225.671],[1075,1216],[1079.543,1237.164],[1088,1256],[1096.113,1274.071],[1111,1286],[1135.011,1269.264],[1144,1240],[1127.422,1250.922],[1113,1264],[1088,1210]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[1.865,1.771],[1.688,0.145],[1.932,-0.099],[0.426,-0.408],[0.177,-0.657],[4.325,-6.25],[5.249,-6.887],[6.384,-7.355],[-0.074,-11.312],[-2.574,2.926],[-2.144,3.356],[-7.761,9.406],[-7.211,9.955],[-1.106,-0.939],[-1.354,1.207],[0.484,3.411]],"o":[[-1.316,-0.518],[-1.688,-0.145],[-0.12,0.713],[-0.426,0.408],[-5.45,5.115],[-4.325,6.25],[-5.537,7.266],[-6.384,7.355],[5.56,0.06],[2.574,-2.926],[8.744,-8.423],[7.761,-9.406],[2.222,-0.548],[1.106,0.939],[1.803,-2.586],[-0.484,-3.411]],"v":[[1078,1198],[1073.462,1197.038],[1068,1197],[1067.043,1198.543],[1066,1200],[1051.849,1217.171],[1038,1237],[1018.291,1257.965],[1007,1285],[1018.562,1280.062],[1025,1270],[1049.649,1243.149],[1072,1214],[1076.651,1215.495],[1080,1216],[1081.751,1206.389]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.333,0],[0,-0.5],[0,-0.5],[0,-0.5],[0,-0.5],[-2.458,-3.409],[-2.743,-3.225],[-2.913,-3.079],[-2.969,-2.969],[-3.076,-2.951],[-3.218,-2.717],[-3.407,-2.283],[-3.646,-1.647],[11.731,12.435],[12.762,11.405],[0.333,0]],"o":[[0,0.5],[0,0.5],[0,0.5],[0,0.5],[2.059,3.63],[2.458,3.409],[2.743,3.225],[2.913,3.079],[2.984,2.984],[3.076,2.951],[3.218,2.717],[3.407,2.283],[-9.312,-14.854],[-11.732,-12.435],[-0.333,0],[-0.333,0]],"v":[[3209,1532],[3209,1533.5],[3209,1535],[3209,1536.5],[3209,1538],[3215.804,1548.549],[3223.635,1558.492],[3232.148,1567.938],[3241,1577],[3250.078,1585.952],[3259.507,1594.505],[3269.432,1602.056],[3280,1608],[3248.087,1567.413],[3211,1532],[3210,1532]],"c":true}],"h":1},{"t":10.4,"s":[{"i":[[-0.163,1.337],[1.191,0.949],[1.549,0.829],[1.765,0.627],[1.838,0.343],[1.769,-0.023],[1.558,-0.47],[1.203,-0.999],[0.707,-1.61],[-1.992,-1.174],[-2.233,-0.933],[-2.374,-0.792],[-2.415,-0.751],[-0.983,0.517],[-0.831,0.669],[-0.557,0.943]],"o":[[-0.69,-0.988],[-1.191,-0.949],[-1.549,-0.829],[-1.765,-0.627],[-1.838,-0.343],[-1.769,0.023],[-1.558,0.47],[-1.203,0.999],[1.651,1.515],[1.992,1.174],[2.233,0.933],[2.374,0.792],[1.014,-0.486],[0.983,-0.517],[0.831,-0.669],[0.557,-0.943]],"v":[[1357,1517],[1354.143,1514.074],[1349.998,1511.386],[1344.991,1509.182],[1339.551,1507.707],[1334.104,1507.206],[1329.078,1507.924],[1324.901,1510.107],[1322,1514],[1327.491,1518.009],[1333.854,1521.146],[1340.791,1523.709],[1348,1526],[1351.026,1524.526],[1353.776,1522.776],[1355.889,1520.389]],"c":true}],"h":1},{"t":11.2001953125,"s":[{"i":[[1.298,-0.213],[-0.794,-0.789],[-0.881,-0.702],[-0.98,-0.603],[-1.091,-0.492],[-1.216,-0.368],[-1.352,-0.231],[-1.502,-0.082],[-1.664,0.08],[0.65,0.99],[0.92,0.804],[1.131,0.622],[1.283,0.446],[1.376,0.274],[1.409,0.107],[1.383,-0.056]],"o":[[0.721,0.863],[0.794,0.789],[0.881,0.702],[0.98,0.603],[1.091,0.492],[1.216,0.368],[1.352,0.231],[1.502,0.082],[-0.32,-1.18],[-0.65,-0.99],[-0.92,-0.804],[-1.131,-0.622],[-1.283,-0.446],[-1.376,-0.274],[-1.409,-0.107],[-1.383,0.056]],"v":[[2526,1884],[2528.269,1886.48],[2530.779,1888.72],[2533.567,1890.682],[2536.671,1892.329],[2540.128,1893.621],[2543.977,1894.523],[2548.255,1894.995],[2553,1895],[2551.53,1891.746],[2549.161,1889.057],[2546.069,1886.919],[2542.433,1885.318],[2538.43,1884.24],[2534.239,1883.67],[2530.036,1883.595]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":0.8,"s":[0],"h":1},{"t":1.6,"s":[100],"h":1},{"t":12,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 9"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-3.692,5.392],[3.015,-1.556],[2.555,-2.017],[2.287,-2.284],[2.212,-2.359],[2.33,-2.241],[2.641,-1.931],[3.144,-1.427],[2.146,3.551],[2.162,3.542],[3.186,2.095],[5.215,-0.789],[-2.056,-4.444],[-2.881,-3.619],[-3.635,-2.865],[-4.316,-2.184],[-4.897,4.186],[-4.759,4.324],[-4.358,4.726]],"o":[[-3.668,0.903],[-3.015,1.556],[-2.555,2.017],[-2.287,2.284],[-2.212,2.359],[-2.33,2.241],[-2.641,1.931],[-3.135,-2.122],[-2.146,-3.551],[-2.163,-3.542],[-3.186,-2.095],[1.159,5.342],[2.056,4.444],[2.881,3.619],[3.635,2.865],[4.77,-4.313],[4.897,-4.186],[4.759,-4.324],[4.358,-4.726]],"v":[[1714,1194],[1704.023,1197.737],[1695.717,1203.145],[1688.502,1209.645],[1681.802,1216.659],[1675.037,1223.608],[1667.629,1229.915],[1659,1235],[1651.331,1226.132],[1645.12,1215.134],[1637.349,1206.319],[1625,1204],[1629.84,1218.661],[1637.264,1230.737],[1647.056,1240.444],[1659,1248],[1673.567,1235.317],[1688.117,1222.618],[1701.859,1209.11]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[19.362,-8.638],[7.424,7.576],[11.878,3.122],[9.405,-8.762],[11.962,-6.205],[7.047,5.786],[10.501,2.332],[-3.827,-4.729],[-4.005,-3.197],[-4.877,-3.975],[-5.685,-1.264],[-5.61,4.742],[-5.072,4.587],[-5.052,4.031],[-6.492,2.081],[-6.007,-8.395],[-9.821,0],[-11.359,5.623],[-3.964,13.036]],"o":[[-7.428,-7.572],[-7.423,-7.577],[-12.417,5.749],[-9.405,8.762],[-8.309,-4.524],[-7.047,-5.786],[-4.313,6.885],[3.827,4.73],[4.807,3.837],[4.877,3.975],[8.488,-0.446],[5.61,-4.742],[5.302,-4.796],[5.052,-4.031],[9.15,2.42],[6.007,8.395],[13.974,0],[7.655,-9.345],[-24.439,3.561]],"v":[[1655,1228],[1633.837,1204.163],[1606,1187],[1574.659,1210.159],[1544,1234],[1522.144,1217.356],[1497,1204],[1498.261,1221.267],[1512,1233],[1526.342,1245.43],[1542,1254],[1562.563,1245.106],[1578,1230],[1593.108,1216.463],[1610,1207],[1630.997,1226.815],[1653,1243],[1683,1223],[1709,1198]],"c":true}],"h":1},{"t":4,"s":[{"i":[[21.431,-7.569],[7.974,9.702],[10.446,-4.659],[9.029,-8.167],[11.849,-3.855],[29.793,-4.1],[11.171,-8.736],[15.744,-3.654],[6.059,11.275],[17.875,-0.208],[-10.262,-6.723],[-17.232,-1.374],[-12.201,9.374],[-14.249,4.999],[-23.991,-7.675],[-28.488,7.512],[-19.875,-4.125],[-10.95,6.57],[-2.555,12.962]],"o":[[-8.657,-2.853],[-7.974,-9.702],[-10.034,4.476],[-9.029,8.167],[-25.95,-5.48],[-14.11,1.942],[-12.735,9.959],[-10.827,-6.506],[-14.048,-3.619],[-12.101,16.439],[12.722,8.397],[15.431,1.23],[14.648,-11.255],[24.668,6.998],[27.315,-8.685],[18.985,5.015],[15.1,0.26],[11.04,-6.624],[-25.25,3.75]],"v":[[1652,1225],[1627.841,1200.866],[1601,1188],[1573.362,1208.966],[1543,1229],[1477,1198],[1439,1223],[1400,1247],[1373,1222],[1341,1201],[1360,1236],[1394,1267],[1439,1244],[1481,1217],[1543,1250],[1608,1207],[1647,1240],[1684,1223],[1713,1199]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[22.061,-5.955],[25.015,2.985],[21.59,-8.743],[36.11,1.557],[29.424,-9.243],[30.794,10.54],[15.631,-13.036],[-1.62,-29.62],[-29.138,20.862],[-13.597,-11.737],[-10.946,-1.3],[-10.613,7.849],[-19.605,3.533],[-15.743,-3.257],[-13.637,-1.363],[-22.599,9.735],[-15.816,-7.184],[-10.182,7.484],[-4.552,13.448]],"o":[[-18.97,-9.03],[-19.291,11.042],[-22.681,-14.986],[-29.795,8.871],[-22.199,-19.134],[-18.887,9.78],[-15.644,12.356],[37.989,-12.011],[12.571,12.762],[6.36,7.897],[11.266,1.338],[16.938,-12.526],[18.46,0.54],[9.69,5.31],[26.998,-5.335],[14.901,8.099],[15.131,-2.536],[9.405,-8.595],[-26.59,-1.901]],"v":[[1650,1227],[1603,1190],[1554,1232],[1472,1201],[1402,1247],[1330,1195],[1285,1236],[1244,1279],[1332,1217],[1377,1248],[1396,1269],[1432,1250],[1479,1221],[1524,1233],[1551,1251],[1608,1211],[1645,1243],[1682,1227],[1712,1203]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[24.093,-14.574],[11.479,9.854],[16.05,5.284],[12.851,-11.816],[17.309,-7.358],[8.635,9.865],[18.227,0.273],[-8.082,-5.638],[-5.641,-7.242],[-12.834,-3.832],[-13.134,9.866],[-22.615,7.385],[-12.328,-8.005],[-18.863,-1.804],[-10.493,9.53],[-14.752,2.017],[-38.368,8.099],[14.336,5.331],[21.049,-1.452]],"o":[[-12.033,-9.301],[-11.479,-9.854],[-17.289,7.378],[-12.851,11.816],[-11.233,-7.267],[-8.635,-9.865],[-1.971,13.207],[8.082,5.638],[7.245,9.422],[20.047,-2.953],[21.207,-8.793],[14.803,5.53],[11.121,9.545],[13.896,-5.092],[10.017,-9.097],[32.436,-4.434],[-5.925,-12.468],[-17.216,-6.402],[-28.213,10.454]],"v":[[1402,1247],[1368.013,1216.987],[1328,1193],[1285.014,1224.015],[1242,1255],[1215.245,1226.255],[1178,1208],[1190.291,1233.973],[1214,1251],[1236,1279],[1276,1250],[1330,1214],[1365,1240],[1403,1264],[1437,1240],[1471,1216],[1558,1236],[1521,1215],[1469,1198]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[13.215,0.62],[11.715,-11.618],[18.212,-5.121],[4.952,5.233],[4.918,5.216],[5.252,5.28],[8.128,1.719],[4.107,-3.699],[3.617,-3.419],[3.608,-4.22],[-0.062,-6.686],[-5.512,5.988],[-9.242,2.258],[-9.036,-11.298],[-13.39,-6.943],[-19.364,19.302],[-9.688,2.645],[-19.123,3.08],[8.815,5.373]],"o":[[-11.928,11.405],[-11.715,11.618],[-6.274,-3.852],[-4.952,-5.233],[-4.865,-5.16],[-5.252,-5.28],[-5.954,0.784],[-4.107,3.699],[-3.63,3.432],[-3.608,4.221],[10.708,-0.792],[5.512,-5.988],[12.467,7.866],[9.036,11.298],[28.941,-9.725],[4.824,-7.509],[15.695,3.671],[6.503,-10.571],[-10.66,-6.497]],"v":[[1323,1192],[1289.213,1228.213],[1246,1255],[1229.483,1241.023],[1215,1225],[1200.447,1208.419],[1181,1197],[1166.247,1204.523],[1155,1216],[1143.231,1227.059],[1137,1243],[1159.1,1230.6],[1179,1216],[1209.307,1246.693],[1241,1276],[1311,1230],[1329,1211],[1370,1230],[1359,1207]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-2.784,5.004],[3.358,1.093],[4.267,-0.126],[4.15,-0.656],[3.009,-0.498],[5.23,-7.215],[6.325,-6.119],[8.311,-4.134],[8.702,1.798],[9.325,1.175],[6.122,-6.545],[4.456,-8.211],[-4.606,5.727],[-7.682,2.652],[-8.537,-2.296],[-10.558,-0.275],[-9.721,11.279],[-10.742,10.258],[-5.999,-0.309]],"o":[[-1.424,-3],[-3.358,-1.093],[-4.267,0.125],[-4.15,0.656],[-5.025,7.419],[-5.23,7.215],[-6.325,6.119],[-8.868,-1.632],[-8.702,-1.798],[-8.057,4.609],[-6.122,6.545],[8.893,-1.44],[4.606,-5.727],[10.292,0.541],[8.538,2.296],[14.375,-6.625],[9.721,-11.279],[6.22,-0.233],[5.999,0.309]],"v":[[1635,1383],[1627.571,1377.032],[1615.878,1375.753],[1602.996,1377.097],[1592,1379],[1576.84,1401.173],[1559.731,1421.397],[1538,1437],[1511.843,1431.657],[1485,1427],[1463.799,1443.799],[1448,1466],[1466.409,1453.409],[1483,1439],[1510.3,1444.199],[1538,1449],[1572.725,1420.725],[1602,1387],[1621.077,1388.578]],"c":true}],"h":1},{"t":8,"s":[{"i":[[4.239,0.149],[0.167,0],[0.167,0],[2.62,-2.88],[3.761,-1.739],[7.418,3.415],[10.184,0.649],[8.909,-10.091],[11.25,-7.75],[6.644,3.738],[5.812,-7.159],[-3.531,-2.136],[-4.143,-1.524],[-1.681,-2.152],[-3.648,-0.186],[-9.231,10.603],[-12.76,7.074],[-20.214,3.986],[-5.596,6.404]],"o":[[-0.167,0],[-0.167,0],[-3.761,1.739],[-2.62,2.88],[-12.143,1.31],[-7.418,-3.415],[-12.114,6.887],[-8.909,10.091],[-4.612,-3.208],[-6.644,-3.738],[1.735,3.932],[3.531,2.136],[2.628,1.205],[1.681,2.152],[13.318,-6.515],[9.231,-10.603],[13.901,5.599],[7.521,-4.479],[-0.197,-2.516]],"v":[[1558,1426],[1557.5,1426],[1557,1426],[1548,1433.5],[1539,1441],[1511.531,1435.97],[1487,1428],[1456.852,1454.852],[1428,1483],[1410.4,1469.725],[1391,1472],[1399.194,1480.807],[1411,1486],[1416.735,1491.764],[1424,1496],[1455.919,1468.419],[1487,1440],[1537,1450],[1556,1433]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-0.585,8.749],[2.094,-1.822],[1.475,-2.441],[1.893,-2.024],[3.349,-0.568],[2.85,1.484],[2.423,1.91],[2.237,2.096],[2.291,2.043],[2.815,-2.352],[2.297,-2.87],[1.959,-3.208],[1.801,-3.366],[-2.437,2.341],[-2.155,2.623],[-2.911,1.867],[-6.831,-3.703],[-9.151,1.037],[-4.5,4.833]],"o":[[-3.751,0.166],[-2.094,1.822],[-1.475,2.442],[-1.893,2.024],[-3.516,-0.818],[-2.85,-1.484],[-2.423,-1.91],[-2.237,-2.096],[-3.512,1.655],[-2.815,2.352],[-2.297,2.87],[-1.959,3.208],[3.758,-1.019],[2.437,-2.341],[2.155,-2.623],[3.524,6.226],[6.831,3.703],[4.415,-4.918],[4.5,-4.833]],"v":[[1456,1463],[1447.491,1466.241],[1442.396,1472.896],[1437.603,1479.853],[1430,1484],[1420.512,1480.488],[1412.663,1475.337],[1405.732,1469.268],[1399,1463],[1389.555,1469.055],[1381.933,1476.933],[1375.595,1486.094],[1370,1496],[1379.033,1490.7],[1385.661,1482.995],[1393,1476],[1408.779,1491.448],[1433,1496],[1447.372,1482.372]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-2.988,0.018],[1.236,1.379],[1.619,0.799],[1.926,0.335],[2.155,-0.012],[2.308,-0.243],[2.385,-0.357],[2.384,-0.355],[2.308,-0.236],[2.154,-0.001],[1.924,0.35],[1.617,0.818],[-1.763,-1.816],[-2.316,-0.964],[-2.744,-0.309],[-3.045,0.149],[-3.22,0.411],[-3.269,0.476],[-3.191,0.345]],"o":[[-0.777,-2.076],[-1.236,-1.379],[-1.619,-0.799],[-1.926,-0.335],[-2.155,0.012],[-2.308,0.243],[-2.385,0.357],[-2.384,0.355],[-2.308,0.236],[-2.154,0.001],[-1.924,-0.35],[1.083,2.864],[1.763,1.816],[2.316,0.964],[2.744,0.309],[3.045,-0.149],[3.22,-0.411],[3.269,-0.476],[3.191,-0.345]],"v":[[2919,1646],[2915.961,1640.846],[2911.658,1637.607],[2906.322,1635.934],[2900.181,1635.478],[2893.467,1635.889],[2886.408,1636.818],[2879.236,1637.915],[2872.178,1638.832],[2865.467,1639.218],[2859.331,1638.723],[2854,1637],[2858.3,1643.97],[2864.45,1648.091],[2872.072,1649.952],[2880.786,1650.144],[2890.215,1649.255],[2899.979,1647.875],[2909.7,1646.593]],"c":true}],"h":1},{"t":10.400390625,"s":[{"i":[[-1.812,0.497],[0.167,1.416],[0.388,1.195],[0.595,0.988],[0.788,0.795],[0.966,0.617],[1.131,0.453],[1.28,0.303],[1.416,0.167],[0.299,-0.686],[0.148,-0.806],[0.016,-0.868],[-0.094,-0.874],[-0.185,-0.823],[-0.255,-0.714],[-0.305,-0.549],[-1.329,-0.696],[-1.519,-0.403],[-1.681,-0.005]],"o":[[0.068,-1.652],[-0.167,-1.416],[-0.388,-1.195],[-0.595,-0.988],[-0.788,-0.795],[-0.966,-0.617],[-1.131,-0.453],[-1.28,-0.303],[-0.471,0.509],[-0.299,0.686],[-0.148,0.806],[-0.016,0.868],[0.094,0.874],[0.185,0.823],[0.255,0.714],[1.11,0.887],[1.329,0.696],[1.519,0.403],[1.681,0.005]],"v":[[3292,1612],[3291.848,1607.402],[3291.011,1603.489],[3289.532,1600.218],[3287.453,1597.547],[3284.818,1595.432],[3281.669,1593.831],[3278.048,1592.702],[3274,1592],[3272.851,1593.807],[3272.186,1596.059],[3271.945,1598.584],[3272.067,1601.212],[3272.491,1603.771],[3273.155,1606.091],[3274,1608],[3277.665,1610.4],[3281.946,1612.075],[3286.753,1612.712]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 10"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.338,1.162],[1.003,-0.556],[0.833,-0.806],[0.664,-1.001],[0.496,-1.143],[0.33,-1.232],[0.166,-1.266],[0.002,-1.247],[-0.16,-1.174],[-1.044,0.456],[-0.726,0.774],[-0.48,1.02],[-0.307,1.193],[-0.206,1.294],[-0.178,1.322],[-0.222,1.278]],"o":[[-1.175,0.252],[-1.003,0.556],[-0.833,0.806],[-0.664,1.001],[-0.496,1.144],[-0.33,1.232],[-0.166,1.266],[-0.002,1.247],[1.434,-0.066],[1.044,-0.456],[0.726,-0.774],[0.48,-1.02],[0.307,-1.193],[0.206,-1.294],[0.178,-1.322],[0.222,-1.278]],"v":[[1876,1265],[1872.734,1266.226],[1869.981,1268.281],[1867.737,1271.005],[1865.998,1274.236],[1864.758,1277.813],[1864.015,1281.573],[1863.764,1285.356],[1864,1289],[1867.699,1288.199],[1870.335,1286.335],[1872.126,1283.626],[1873.288,1280.288],[1874.04,1276.54],[1874.597,1272.597],[1875.178,1268.678]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-0.112,4.972],[2.113,-3.47],[1.952,-3.631],[2.238,-3.345],[2.97,-2.613],[2.064,1.436],[2.14,1.36],[2.756,0.744],[3.912,-0.412],[-2.201,-2.299],[-3.027,-1.473],[-3.437,-1.062],[-3.434,-1.066],[-2.618,3.747],[-2.435,3.94],[-1.6,4.348]],"o":[[-2.72,2.863],[-2.113,3.47],[-1.952,3.631],[-2.238,3.345],[-2.527,-0.973],[-2.064,-1.436],[-2.14,-1.36],[-2.756,-0.744],[0.96,3.54],[2.201,2.299],[3.027,1.473],[3.437,1.062],[2.148,-3.769],[2.618,-3.747],[2.435,-3.94],[1.6,-4.348]],"v":[[1873,1269],[1865.861,1278.611],[1859.875,1289.375],[1853.7,1299.951],[1846,1309],[1839.249,1305.252],[1833.078,1300.922],[1825.868,1297.632],[1816,1297],[1820.845,1305.655],[1828.79,1311.21],[1838.59,1314.91],[1849,1318],[1856.312,1306.781],[1864.054,1295.304],[1870.269,1282.926]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-2.947,7.401],[4.552,-6.282],[6.356,-4.477],[6.896,2.27],[8.963,0.204],[5.259,-8.408],[8.758,-4.909],[7.198,1.481],[3.202,-6.705],[-7.97,-1.363],[-7.428,-1.905],[-5.437,8.729],[-8.537,5.63],[-5.489,-2.177],[-6.629,-1.038],[-5.168,7.743]],"o":[[-7.438,3.395],[-4.552,6.282],[-5.452,-3.715],[-6.896,-2.27],[-7.206,6.461],[-5.259,8.408],[-6.007,0.221],[-7.198,-1.481],[4.691,4.642],[7.97,1.363],[8.714,-5.452],[5.437,-8.729],[6.414,1.254],[5.489,2.177],[7.382,-4.629],[5.168,-7.743]],"v":[[1873,1273],[1856.188,1288.688],[1841,1306],[1822.633,1296.866],[1799,1293],[1781.664,1316.664],[1762,1338],[1740.896,1333.637],[1724,1339],[1743.948,1347.052],[1768,1351],[1787.633,1328.133],[1807,1305],[1824.338,1310.662],[1842,1316],[1860.826,1296.579]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[0.667,0],[5.455,-6.045],[8.288,-3.211],[5.702,2.132],[7.964,-0.131],[18.176,-8.824],[16.869,-2.655],[26.284,-10.383],[8.551,-19.569],[-21.868,-0.799],[-25.432,11.902],[-16.312,-0.354],[-17.285,3],[-15.142,16.397],[-3.427,6.906],[-0.326,5.83]],"o":[[-7.891,3.609],[-5.455,6.045],[-6.23,-1.603],[-5.701,-2.132],[-17.836,9.164],[-16.56,-0.625],[-21.928,14.739],[-14.383,-2.084],[16.706,5.961],[25.004,-12.33],[16.506,0.161],[17.201,-5.269],[15.033,-2.609],[4.199,-6.134],[3.298,-6.15],[-0.667,0]],"v":[[1875,1273],[1856.298,1288.798],[1837,1304],[1819.8,1297.7],[1800,1294],[1761,1336],[1712,1334],[1655,1387],[1605,1386],[1661,1398],[1720,1345],[1766,1349],[1805,1306],[1852,1309],[1865,1291],[1877,1273]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.667,0],[16.789,-5.877],[16.279,-0.612],[15.377,-7.623],[17.884,-2.138],[21.544,-11.122],[21.352,-2.582],[10.476,-10.688],[3.803,-16.276],[-25.083,15.583],[-13.288,-8.045],[-21.525,13.809],[-16.975,-5.585],[-17.22,7.447],[-11.924,-1.409],[-7.745,18.589]],"o":[[-16.961,5.706],[-13.011,-2.656],[-12.75,10.25],[-17.834,-7.22],[-19.513,13.154],[-17.084,-4.899],[-10.829,10.442],[-10.255,10.462],[31.285,-9.382],[18.124,3.21],[21.907,-13.427],[16.233,-5.691],[17.016,-7.651],[12.263,1.07],[15.778,-10.555],[-0.667,0]],"v":[[1874,1276],[1836,1306],[1799,1296],[1769,1335],[1709,1337],[1659,1385],[1599,1378],[1569,1411],[1541,1447],[1606,1390],[1660,1400],[1715,1349],[1773,1348],[1808,1309],[1839,1318],[1876,1276]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-9.88,14.787],[11.075,-0.925],[11.622,-0.275],[6.981,-9.186],[9.849,-6.318],[9.79,1.377],[11.052,0.115],[9.713,-11.287],[13.178,-7.822],[11.49,1.146],[2.845,-10.33],[-9.068,-1.765],[-8.099,-2.735],[-27.857,16.809],[-22.757,0.423],[-21.885,10.448]],"o":[[-11.078,-1.977],[-11.075,0.925],[-10.229,5.938],[-6.981,9.186],[-8.789,-2.378],[-9.79,-1.377],[-12.972,8.028],[-9.713,11.287],[-7.195,-1.746],[-11.49,-1.146],[10.63,0.203],[9.068,1.765],[28.221,-16.446],[20.01,2.323],[19.457,-12.876],[18.792,-5.875]],"v":[[1774,1334],[1740.908,1333.311],[1707,1336],[1682.715,1360.215],[1659,1385],[1631.197,1379.303],[1600,1377],[1567.654,1407.654],[1535,1438],[1503.737,1430.943],[1479,1442],[1508.399,1445.101],[1534,1452],[1604,1388],[1664,1395],[1712,1346]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[21.755,-5.579],[14.042,16.291],[20.65,9.683],[4.31,-3.223],[-0.832,-5.947],[-3.557,1.409],[-3.995,0.805],[-8.588,-7.578],[-7.137,-9.03],[-7.487,-8.847],[-11.738,-4.595],[-2.826,0.826],[-20.196,5.804],[-34.848,-15.485],[13.903,18.431],[22.451,9.882]],"o":[[-18.18,-12.153],[-14.042,-16.291],[-7.591,-0.841],[-4.31,3.224],[4.778,1.443],[3.557,-1.409],[9.511,6.657],[8.588,7.578],[8.315,8.018],[7.487,8.847],[2.409,-0.409],[24.994,-1.006],[28.091,25.576],[-8.8,-23.533],[-16.887,-15.446],[-18.918,8.415]],"v":[[3047,1507],[3001.352,1461.647],[2952,1420],[2933.683,1423.91],[2928,1438],[2940.087,1437.186],[2951,1433],[2978.28,1454.22],[3002,1479],[3024.432,1505.567],[3052,1527],[3057,1528],[3109,1502],[3190,1584],[3147,1530],[3101,1479]],"c":true}],"h":1},{"t":8,"s":[{"i":[[7.569,-1.431],[10.549,13.755],[11.323,11.324],[5.003,4.061],[3.582,0.347],[1.928,-8.593],[-11.629,-1.492],[-1.78,2.887],[-4.116,0.551],[-12.517,-15.316],[-12.524,-15.309],[-1.736,-1.264],[-2.653,-0.347],[-2.97,3.53],[0.12,6.62],[4.213,-0.213]],"o":[[-9.479,-10.657],[-10.549,-13.755],[-3.408,-3.408],[-5.003,-4.061],[-8.917,-0.864],[-1.928,8.593],[3.765,-0.901],[1.78,-2.887],[14.407,13.427],[12.517,15.316],[2.404,0.596],[1.736,1.264],[3.238,-3.262],[2.97,-3.53],[-2.477,-1.523],[-9.851,-0.851]],"v":[[3184,1570],[3153.883,1532.001],[3121,1493],[3107.63,1480.704],[3094,1473],[3076.091,1488.733],[3089,1508],[3096.237,1501.237],[3104,1495],[3143.912,1538.589],[3181,1585],[3186.814,1588.186],[3193,1591],[3203.019,1581.519],[3208,1567],[3202,1561]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[1.404,1.929],[3.996,-2.587],[2.619,-3.964],[2.313,-4.27],[3.079,-3.504],[0.863,0.554],[0.702,0.715],[0.863,0.554],[1.347,0.07],[-4.033,-4.134],[-6.31,-1.856],[-2.365,4.635],[-1.851,5.15],[-3.269,2.898],[-1.783,4.384],[1.006,2.327]],"o":[[-6.445,0.139],[-3.996,2.587],[-2.619,3.964],[-2.313,4.27],[-1.347,-0.07],[-0.863,-0.554],[-0.702,-0.715],[-0.863,-0.554],[1.558,6.609],[4.033,4.134],[4.691,-2.309],[2.365,-4.635],[3.14,-3.026],[3.269,-2.898],[-1.57,-1.763],[-1.006,-2.327]],"v":[[3225,1532],[3209.607,1536.357],[3199.952,1546.453],[3192.821,1559.071],[3185,1571],[3181.766,1569.984],[3179.5,1568],[3177.234,1566.016],[3174,1565],[3182.436,1581.064],[3198,1590],[3208.13,1579.131],[3214,1564],[3224.019,1555.519],[3232,1545],[3228.375,1538.625]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.031,1.115],[2.375,-0.292],[1.481,-1.584],[0.766,-2.545],[0.23,-3.175],[-0.126,-3.473],[-0.303,-3.441],[-0.301,-3.077],[-0.12,-2.382],[-2.052,3.473],[-0.076,5.205],[0.764,5.255],[0.469,3.623],[-0.707,0.376],[-0.828,0.255],[-0.582,0.501]],"o":[[-3.449,-1.332],[-2.375,0.292],[-1.481,1.584],[-0.766,2.545],[-0.23,3.175],[0.126,3.473],[0.303,3.441],[0.301,3.077],[5.163,-0.059],[2.052,-3.473],[0.076,-5.204],[-0.764,-5.255],[0.219,-0.864],[0.707,-0.376],[0.828,-0.255],[0.582,-0.501]],"v":[[1715,1759],[1706.308,1757.523],[1700.569,1760.42],[1697.243,1766.697],[1695.793,1775.36],[1695.682,1785.415],[1696.371,1795.869],[1697.323,1805.729],[1698,1814],[1708.539,1808.282],[1711.448,1794.845],[1710.133,1778.736],[1708,1765],[1709.481,1763.231],[1711.876,1762.375],[1714.082,1761.332]],"c":true}],"h":1},{"t":10.400390625,"s":[{"i":[[2.695,0.597],[-1.586,-2.262],[-1.734,-2.198],[-1.87,-2.092],[-1.992,-1.945],[-2.102,-1.756],[-2.2,-1.524],[-2.284,-1.251],[-2.355,-0.936],[1.747,2.101],[1.707,2.225],[1.725,2.237],[1.802,2.135],[1.938,1.92],[2.132,1.592],[2.384,1.151]],"o":[[1.425,2.284],[1.586,2.262],[1.734,2.198],[1.87,2.092],[1.992,1.945],[2.102,1.756],[2.2,1.524],[2.284,1.251],[-1.845,-1.863],[-1.747,-2.101],[-1.707,-2.225],[-1.725,-2.237],[-1.802,-2.135],[-1.938,-1.92],[-2.132,-1.592],[-2.384,-1.151]],"v":[[2899,1636],[2903.519,1642.829],[2908.502,1649.529],[2913.911,1655.976],[2919.707,1662.042],[2925.853,1667.604],[2932.309,1672.534],[2939.038,1676.708],[2946,1680],[2940.627,1674.025],[2935.462,1667.507],[2930.328,1660.786],[2925.051,1654.2],[2919.455,1648.089],[2913.365,1642.792],[2906.605,1638.65]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 11"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-5.806,-1.195],[1.212,2.872],[1.404,2.679],[1.59,2.494],[1.768,2.315],[1.94,2.143],[2.105,1.978],[2.263,1.82],[2.414,1.669],[4.719,-3.198],[4.878,-3.038],[4.345,-3.571],[3.119,-4.797],[-4.787,2.13],[-3.984,2.932],[-3.955,2.962],[-4.699,2.217],[-2.761,-4.239],[-2.698,-4.302],[-3.713,-3.287]],"o":[[-1.013,-3.071],[-1.212,-2.872],[-1.404,-2.679],[-1.59,-2.494],[-1.768,-2.315],[-1.94,-2.143],[-2.105,-1.978],[-2.263,-1.82],[-3.867,4.05],[-4.719,3.198],[-4.878,3.038],[-4.345,3.571],[6.363,-0.553],[4.787,-2.13],[3.984,-2.932],[3.955,-2.962],[3.901,3.099],[2.761,4.239],[2.698,4.302],[3.713,3.287]],"v":[[2546,1355],[2542.661,1346.088],[2538.736,1337.764],[2534.244,1330.006],[2529.205,1322.794],[2523.641,1316.108],[2517.572,1309.928],[2511.018,1304.232],[2504,1299],[2490.948,1309.698],[2476.379,1318.879],[2462.37,1328.621],[2451,1341],[2467.532,1336.782],[2480.496,1328.996],[2492.212,1319.962],[2505,1312],[2514.724,1323.276],[2522.644,1336.356],[2531.992,1348.008]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-12.948,-4.385],[5.481,4.599],[5.678,5.108],[5.708,6.312],[7.355,0.52],[8.96,-7.022],[10.401,-0.744],[7.66,9.84],[12.226,5.274],[4.92,-2.889],[5.293,-2.753],[4.411,-2.09],[0.73,-5.77],[-8.153,3.68],[-9.235,2.598],[-9.075,-9.925],[-12.794,-6.206],[-8.754,5.746],[-10.97,3.53],[-8.833,-8.5]],"o":[[0.601,-10.496],[-5.481,-4.599],[-5.813,-5.23],[-5.708,-6.312],[-11.759,-0.832],[-8.96,7.022],[-12.135,-5.365],[-7.66,-9.84],[-6.028,0.691],[-4.92,2.889],[-3.628,2.872],[-4.411,2.09],[12.153,0.32],[8.153,-3.68],[8.906,10.094],[9.075,9.925],[12.015,-2.485],[8.754,-5.746],[10.719,6.615],[8.833,8.5]],"v":[[2686,1393],[2677.209,1371.959],[2659,1359],[2642.157,1339.967],[2623,1328],[2592.981,1340.819],[2565,1356],[2537.569,1330.931],[2510,1306],[2493.948,1311.953],[2479,1321],[2465.827,1327.326],[2457,1338],[2486.189,1331.688],[2511,1321],[2537.084,1351.916],[2569,1377],[2598.784,1363.284],[2627,1348],[2654.828,1372.172]],"c":true}],"h":1},{"t":4,"s":[{"i":[[22.882,-4.118],[7.83,11.919],[14.45,-2.043],[9.462,-3.567],[6.53,-4.514],[1.003,-1.069],[-2.083,0.138],[-20.05,2.514],[-28.701,-8.633],[-20.124,6.209],[-25.966,-10.929],[-34.779,-2.311],[-20.544,-20.456],[-9.825,2.367],[8.906,9.427],[11.531,11.53],[13.418,2.01],[10.722,-4.911],[13.331,-2.171],[34.241,11.426]],"o":[[-11.23,-2.367],[-7.83,-11.919],[-8.622,1.219],[-9.462,3.567],[-1.073,-0.138],[-1.003,1.069],[21.541,5.262],[22.544,14.789],[21.827,-4.506],[25.624,12.319],[34.128,14.365],[26.322,14.678],[7.599,3.16],[-0.584,-17.75],[-9.38,-10.78],[-8.953,-8.953],[-12.851,-1.926],[-11.428,5.235],[-32.417,-13.249],[-20.864,6.135]],"v":[[2566,1358],[2539.915,1330.692],[2509,1310],[2480.932,1317.528],[2456,1330],[2452.133,1332],[2453,1334],[2513,1325],[2573,1377],[2627,1352],[2698,1404],[2779,1384],[2843,1443],[2867,1453],[2842,1423],[2811,1391],[2775,1364],[2738,1374],[2703,1387],[2621,1332]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[18.484,-4.353],[22.62,8.046],[2.826,-0.826],[11.902,-3.098],[0.876,-8.221],[-20.115,1.853],[-25.69,-9.977],[-19.324,5.009],[-18.072,-10.827],[-19.556,0.218],[-26.442,0.806],[-42.932,-19.401],[-28.514,5.152],[7.005,3.662],[21.658,-11.676],[23.192,17.142],[12.193,4.807],[26.521,-3.48],[21.35,9.317],[15.66,1.919]],"o":[[-22.615,-8.051],[-2.409,0.409],[-14.426,0.574],[-6.54,5.865],[22.47,6.922],[23.466,12.201],[18.13,-6.203],[13.18,10.274],[16.295,9.763],[24.807,-0.277],[35.833,26.5],[21.055,-12.612],[1.691,-12.358],[-30.066,3.267],[-22.58,-17.754],[-6.485,-10.515],[-30.48,-0.48],[-26.596,-4.07],[-10.654,-9.185],[-21.33,-2.614]],"v":[[2566,1352],[2518,1308],[2513,1307],[2477,1316],[2454,1332],[2514,1324],[2571,1374],[2617,1347],[2663,1381],[2718,1406],[2777,1384],[2882,1466],[2951,1434],[2940,1413],[2870,1443],[2803,1389],[2779,1362],[2711,1384],[2648,1355],[2616,1328]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[42.005,20.328],[8.823,-5.844],[15.375,0.708],[14.251,9.749],[19.443,4.557],[0.173,-0.327],[-0.081,-0.581],[0.036,-0.193],[-0.079,-0.108],[-19.557,-10.481],[-23.216,-3.784],[-20.152,7.848],[-16.891,-15.109],[-26.82,-5.18],[-26.518,6.482],[-44.479,-15.855],[9.282,6.855],[15.172,18.354],[13.067,3.471],[29.333,-5.333]],"o":[[-11.334,3.332],[-8.823,5.844],[-17.553,-6.447],[-14.251,-9.749],[-0.39,0.11],[-0.173,0.327],[0.064,0.12],[-0.036,0.193],[12.661,17.224],[15.564,11.436],[23.523,-4.477],[16.464,15.536],[18.178,13.822],[27.326,-5.674],[33.858,26.475],[-0.263,-14.601],[-19.893,-14.691],[-7.594,-9.187],[-28.238,6.429],[-41.309,-21.025]],"v":[[2771,1365],[2743.03,1381.03],[2709,1391],[2663.417,1364.583],[2615,1341],[2614.147,1341.647],[2614,1343],[2613.988,1343.509],[2614,1344],[2669,1381],[2721,1410],[2779,1384],[2830,1429],[2886,1469],[2956,1440],[3056,1521],[3032,1493],[2978,1443],[2951,1418],[2876,1447]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[26.635,12.032],[-11.361,-9.806],[-12.418,-8.749],[-8.556,0.618],[-9.181,-0.28],[-10.115,-12.052],[-15.137,-7.03],[-11.773,-0.227],[-11.04,-0.96],[-4.812,-5.854],[-5.797,-4.87],[-2.862,-2.472],[-2.604,-2.729],[-3.702,-2.536],[-1.806,1.488],[9.356,8.588],[16.604,10.349],[23.171,1.496],[28.409,16.258],[18.337,1.003]],"o":[[8.139,13.028],[11.361,9.806],[8.595,1.191],[8.556,-0.618],[12.403,9.764],[10.115,12.052],[9.87,2.13],[11.773,0.227],[5.953,4.713],[4.812,5.854],[1.949,3.384],[2.862,2.472],[2.385,1.345],[3.702,2.536],[-2.654,-14.729],[-14.045,-12.892],[-23.781,-0.886],[-26.434,-18.233],[-17.011,0.322],[-25.194,-13.472]],"v":[[2439,1397],[2468.791,1430.709],[2505,1458],[2530.56,1458.183],[2557,1457],[2588.95,1491.55],[2625,1522],[2658.122,1524.878],[2693,1526],[2708.617,1542.383],[2724,1559],[2731.509,1567.491],[2740,1575],[2749.934,1582.126],[2759,1585],[2732,1557],[2694,1514],[2623,1511],[2555,1445],[2505,1447]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[8.449,-3.029],[2.932,3.098],[2.848,3.19],[3.367,2.247],[4.489,0.269],[0.101,-0.4],[0.486,-0.014],[-7.613,-6.887],[-10.409,-4.091],[-10.01,0.203],[-8.975,-0.666],[-11.229,-12.604],[-13.722,-10.111],[-6.622,-0.412],[-4.448,2.739],[6.373,0.793],[7.065,0.101],[11.149,13.185],[15.374,8.959],[11.315,0.069]],"o":[[-3.618,-1.971],[-2.932,-3.098],[-2.848,-3.19],[-3.367,-2.247],[-0.112,0.388],[-0.101,0.4],[6.139,8.361],[7.613,6.887],[6.984,-2.854],[10.01,-0.203],[13.361,10.472],[11.229,12.604],[6.064,0.091],[6.622,0.412],[-2.441,-4.726],[-6.373,-0.793],[-14.03,-10.303],[-11.149,-13.185],[-9.289,-1.755],[-11.315,-0.069]],"v":[[2623,1513],[2613.326,1505.137],[2604.807,1495.447],[2595.635,1487.033],[2584,1483],[2583.78,1484.281],[2583,1485],[2603.297,1508.203],[2630,1525],[2656.506,1520.86],[2686,1522],[2721.729,1557.771],[2758,1593],[2777.712,1594.623],[2795,1592],[2780.968,1584.532],[2760,1584],[2724.008,1546.992],[2686,1512],[2653.87,1508.912]],"c":true}],"h":1},{"t":8,"s":[{"i":[[-11.78,-3.054],[3.972,5.362],[4.121,5.212],[4.214,5.12],[4.25,5.083],[10.194,0.473],[10.604,0.062],[9.837,11.83],[13.505,8.162],[3.578,0.078],[1.573,-1.928],[0.481,-0.353],[0.218,-0.615],[-3.837,-0.33],[-3.355,-0.811],[-9.803,-12.364],[-12.836,-9.331],[-10.316,-0.517],[-10.115,-0.718],[-7.411,-10.005]],"o":[[-3.766,-5.568],[-3.972,-5.362],[-4.121,-5.212],[-4.214,-5.12],[-9.621,-1.045],[-10.194,-0.473],[-11.148,-10.519],[-9.837,-11.83],[-3.114,0.385],[-3.578,-0.078],[-0.86,-0.027],[-0.481,0.353],[2.298,1.868],[3.836,0.33],[12.951,9.216],[9.803,12.363],[9.62,1.213],[10.316,0.517],[7.576,8.925],[7.411,10.005]],"v":[[2866,1646],[2854.379,1629.62],[2842.226,1613.774],[2829.71,1598.29],[2817,1583],[2787.237,1580.763],[2756,1580],[2725.768,1545.232],[2692,1514],[2681.344,1513.843],[2673,1516],[2671.019,1516.519],[2670,1518],[2679.707,1520.793],[2691,1522],[2723.586,1555.914],[2756,1590],[2786.129,1592.371],[2817,1594],[2838.347,1624.402]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[4.54,-0.04],[4.125,5.792],[4.335,5.582],[5.043,4.874],[6.249,3.668],[2.053,0.035],[1.956,-0.224],[1.8,-0.522],[1.585,-0.858],[-1.626,-1.633],[-2.568,-0.463],[-2.908,0.277],[-2.646,0.585],[-4.246,-5.254],[-3.839,-5.66],[-4.299,-5.201],[-5.624,-3.876],[-4.338,0.495],[-0.988,3.845],[4.071,0.429]],"o":[[-4.412,-5.504],[-4.125,-5.792],[-4.335,-5.582],[-5.043,-4.874],[-2.092,-0.255],[-2.053,-0.035],[-1.956,0.224],[-1.8,0.522],[0.083,3.234],[1.626,1.633],[2.568,0.463],[2.908,-0.277],[5.518,3.983],[4.246,5.254],[3.839,5.66],[4.299,5.201],[4.659,-0.175],[4.338,-0.495],[-2.177,-2.323],[-4.071,-0.429]],"v":[[2864,1640],[2851.319,1622.931],[2838.755,1605.746],[2824.813,1589.937],[2808,1577],[2801.767,1576.556],[2795.739,1576.831],[2790.091,1577.94],[2785,1580],[2787.714,1587.193],[2794.156,1590.228],[2802.519,1590.4],[2811,1589],[2825.429,1603.072],[2837.34,1619.66],[2849.331,1636.169],[2864,1650],[2878.253,1649.753],[2887,1644],[2877.273,1640.227]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[-5.204,-0.463],[7.809,3.389],[9.046,2.579],[8.714,2.9],[6.814,4.352],[0.171,-0.079],[0.137,-0.113],[0.147,-0.103],[0.203,-0.048],[0.143,-0.107],[0.086,-0.164],[0.025,-0.225],[-0.041,-0.291],[-3.306,-2.36],[-4.294,-1.373],[-4.716,-0.951],[-4.572,-1.095],[-4.044,-1.623],[-4.139,-1.528],[-4.525,-1.141]],"o":[[-5.003,-5.331],[-7.809,-3.389],[-9.046,-2.579],[-8.714,-2.9],[-0.251,-0.001],[-0.171,0.079],[-0.137,0.113],[-0.147,0.103],[-0.195,0.055],[-0.143,0.107],[-0.086,0.164],[-0.025,0.225],[1.753,3.914],[3.306,2.36],[4.294,1.373],[4.716,0.951],[4.241,1.425],[4.044,1.623],[4.139,1.528],[4.525,1.141]],"v":[[2552,1866],[2532.391,1853.203],[2506.717,1844.533],[2479.685,1836.596],[2456,1826],[2455.378,1826.128],[2454.927,1826.428],[2454.513,1826.763],[2454,1827],[2453.492,1827.242],[2453.147,1827.646],[2452.978,1828.228],[2453,1829],[2460.73,1838.27],[2472.272,1843.728],[2485.927,1847.072],[2500,1850],[2512.355,1854.645],[2524.556,1859.443],[2537.479,1863.52]],"c":true}],"h":1},{"t":10.400390625,"s":[{"i":[[-1.372,2.003],[2.143,-0.107],[2.055,-0.195],[1.969,-0.281],[1.883,-0.367],[1.799,-0.451],[1.715,-0.535],[1.633,-0.617],[1.552,-0.698],[1.472,-0.778],[1.394,-0.856],[1.316,-0.934],[1.24,-1.01],[-3.039,0.336],[-3.034,0.341],[-2.951,0.424],[-2.79,0.585],[-2.552,0.823],[-2.237,1.138],[-1.843,1.532]],"o":[[-2.232,0.018],[-2.143,0.107],[-2.055,0.195],[-1.969,0.281],[-1.883,0.367],[-1.799,0.451],[-1.715,0.535],[-1.633,0.617],[-1.552,0.698],[-1.472,0.778],[-1.394,0.856],[-1.316,0.934],[2.966,-0.409],[3.039,-0.336],[3.034,-0.341],[2.951,-0.424],[2.79,-0.585],[2.552,-0.823],[2.237,-1.138],[1.843,-1.532]],"v":[[1712,1800],[1705.437,1800.187],[1699.139,1800.639],[1693.104,1801.354],[1687.326,1802.326],[1681.804,1803.554],[1676.534,1805.034],[1671.511,1806.761],[1666.734,1808.734],[1662.197,1810.947],[1657.898,1813.398],[1653.834,1816.084],[1650,1819],[1659.027,1817.902],[1668.156,1816.906],[1677.152,1815.777],[1685.783,1814.283],[1693.816,1812.191],[1701.018,1809.268],[1707.157,1805.282]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 12"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[1.269,0.688],[-0.089,-1.411],[-0.174,-1.326],[-0.287,-1.213],[-0.427,-1.073],[-0.595,-0.905],[-0.789,-0.711],[-1.011,-0.489],[-1.26,-0.24],[0.045,1.728],[0.466,1.549],[0.799,1.355],[1.044,1.147],[1.201,0.925]],"o":[[0.031,1.469],[0.089,1.411],[0.174,1.326],[0.287,1.213],[0.427,1.073],[0.595,0.905],[0.789,0.711],[1.011,0.489],[0.465,-1.892],[-0.045,-1.728],[-0.466,-1.549],[-0.799,-1.355],[-1.044,-1.147],[-1.201,-0.925]],"v":[[2034,1351],[2034.172,1355.328],[2034.56,1359.44],[2035.245,1363.255],[2036.31,1366.69],[2037.836,1369.664],[2039.905,1372.095],[2042.599,1373.901],[2046,1375],[2046.608,1369.567],[2045.82,1364.649],[2043.901,1360.289],[2041.115,1356.533],[2037.727,1353.422]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[1.876,7.124],[4.903,-0.597],[4.425,-1.075],[3.934,-1.566],[3.432,-2.068],[-3.965,0.394],[-3.769,0.954],[-3.795,0.958],[-4.042,0.406],[-1.03,-3.47],[-1.247,-3.253],[-2.094,-2.406],[-3.57,-0.93],[3.002,5.998]],"o":[[-5.369,0.13],[-4.903,0.597],[-4.425,1.075],[-3.934,1.566],[4.381,0.722],[3.965,-0.394],[3.769,-0.954],[3.795,-0.958],[1.442,3.058],[1.03,3.47],[1.247,3.253],[2.094,2.406],[-0.117,-8.883],[-3.002,-5.998]],"v":[[2371,1351],[2355.588,1352.088],[2341.593,1354.593],[2329.052,1358.552],[2318,1364],[2330.463,1364.352],[2342.009,1362.192],[2353.3,1359.185],[2365,1357],[2368.55,1366.95],[2371.808,1377.192],[2376.661,1385.839],[2385,1391],[2379.319,1369.681]],"c":true}],"h":1},{"t":4,"s":[{"i":[[8.204,13.13],[8.986,-1.18],[5.914,-3.561],[-7.531,0.489],[-8.363,-0.372],[-4.697,-8.137],[-8.959,-3.874],[-7.505,1.162],[-7.751,0.916],[-5.175,-7.492],[-10.189,-2.477],[6.534,7.966],[7.436,7.064],[19.385,1.385]],"o":[[-9.141,-1.28],[-8.986,1.18],[6.515,2.583],[7.531,-0.489],[4.254,8.58],[4.697,8.137],[8.229,-0.437],[7.505,-1.162],[8.113,4.554],[5.174,7.492],[-3.427,-11.073],[-6.534,-7.966],[-18.859,-0.859],[-11.546,-9.787]],"v":[[2373,1356],[2345.079,1355.869],[2322,1363],[2343.114,1365.159],[2367,1364],[2379.471,1390.029],[2399,1409],[2422.359,1406.359],[2445,1403],[2462.943,1423.057],[2484,1440],[2468.507,1411.993],[2447,1390],[2398,1395]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[17.426,0.426],[3.61,7.39],[6.298,4.702],[14.358,-0.224],[-15.176,-2.824],[-16.862,-9.138],[-16.757,-0.09],[-22.983,-11.35],[-18.271,-3.553],[-28.085,-9.248],[7.718,11.282],[15.69,5.894],[23.412,1.845],[20.244,14.423]],"o":[[-7.263,-3.737],[-3.61,-7.39],[-14.22,-5.157],[6.249,11.751],[14.348,11.652],[16.624,-0.042],[20.126,14.207],[20.359,0.337],[24.11,13.223],[-1.866,-17.134],[-9.324,-12.132],[-16.5,-6.198],[-22.112,-12.554],[-15.248,1.752]],"v":[[2401,1397],[2386.277,1378.723],[2373,1359],[2320,1357],[2365,1366],[2399,1410],[2445,1406],[2499,1455],[2557,1456],[2614,1511],[2590,1478],[2560,1445],[2500,1443],[2447,1392]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[14.034,-0.752],[13.536,8.13],[17.527,-1.339],[-17.328,-0.672],[-17.686,-7.314],[-16.464,-1.131],[-63.994,6.66],[-28.144,-15.523],[-24.539,0.877],[24.185,-0.953],[21.878,19.789],[17.603,2.063],[11.633,11.632],[9.145,1.962]],"o":[[-13.188,-8.479],[-15.727,-3.914],[6.14,11.86],[14.175,10.825],[14.771,-0.562],[25.338,31.996],[22.373,21.293],[22.099,-4.307],[-6.552,-22.353],[-23.239,-18.428],[-17.342,-2.325],[-12.023,-5.794],[-6.915,-6.914],[-12.033,-2.582]],"v":[[2401,1394],[2373,1357],[2322,1356],[2367,1365],[2400,1407],[2440,1401],[2557,1456],[2623,1521],[2693,1521],[2621,1508],[2560,1444],[2503,1442],[2469,1417],[2439,1388]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[24.269,6.397],[0,-0.667],[0,-0.667],[-12.325,-8.675],[-15.157,-5.843],[-9.359,5.641],[-12.514,2.486],[-13.009,-13.43],[-13.023,-11.827],[-9.117,-1.289],[-1.458,13.341],[9.025,-4.618],[42.901,25.099],[20.852,-13.482]],"o":[[0,0.667],[0,0.667],[7.544,13.456],[12.325,8.675],[5.052,-9.948],[9.359,-5.641],[13.941,8.454],[13.009,13.43],[8.418,7.646],[16.636,2.353],[-10.342,-12.381],[-39.945,-28.055],[-36.464,-2.13],[-20.446,-10.221]],"v":[[2821,1414],[2821,1416],[2821,1418],[2851.291,1450.709],[2893,1472],[2914.903,1448.903],[2948,1437],[2988.189,1471.47],[3027,1511],[3058,1532],[3091,1509],[3053,1515],[2946,1418],[2876,1451]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-5.034,15.633],[7.939,-5.061],[5.141,-7.859],[0.077,-9.092],[1.688,-7.237],[16.236,-5.097],[11.688,-9.646],[0.808,-5.481],[-1.541,-5.671],[-1.3,5.7],[-0.783,6.217],[-17.018,4.982],[-9.743,12.257],[7.681,15.902]],"o":[[-13.101,-0.101],[-7.939,5.061],[2.996,6.396],[-0.077,9.092],[-11.367,9.967],[-16.236,5.097],[-0.309,5.405],[-0.808,5.481],[7.015,0.015],[1.3,-5.7],[13.184,-8.816],[17.018,-4.982],[1.862,-19.262],[8.085,-12.581]],"v":[[1911,1574],[1880.03,1582.03],[1861,1602],[1865.014,1626.369],[1862,1652],[1818.241,1672.241],[1774,1692],[1771.613,1708.3],[1772,1725],[1783.174,1715.174],[1785,1696],[1833.081,1678.081],[1876,1655],[1875,1600]],"c":true}],"h":1},{"t":8,"s":[{"i":[[1.162,-0.163],[0.468,-3.365],[0.876,-2.958],[15.716,-3.617],[10.318,-9.015],[1.311,-9.189],[2.69,-7.81],[11.322,-1.512],[7.307,-5.526],[-4.794,-0.352],[-27.525,2.475],[-2.16,19.507],[-15.658,23.675],[6.205,1.128]],"o":[[-1.254,2.58],[-0.468,3.365],[-10.818,8.515],[-15.716,3.617],[-2.065,8.435],[-1.311,9.189],[-10.405,2.428],[-11.322,1.512],[0.135,2.005],[29.304,-0.696],[6.495,-15.172],[25.559,-13.774],[-0.708,-6.626],[-0.22,-0.78]],"v":[[1866,1640],[1863.716,1649.216],[1862,1659],[1819.625,1674.625],[1778,1691],[1773.469,1717.969],[1768,1744],[1734.177,1748.676],[1705,1758],[1703,1763],[1781,1751],[1790,1695],[1872,1659],[1868,1641]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[-10.844,5.156],[-0.037,3.903],[1.345,3.105],[2.459,0.65],[3.305,-3.463],[-0.356,-2.977],[0.059,-3.393],[13.548,-1.785],[11.899,-3.434],[-0.014,-5.589],[-4.537,-1.244],[-0.517,4.149],[-1.802,2.865],[-13.32,2.68]],"o":[[1.686,-3.043],[0.037,-3.903],[-1.345,-3.105],[-2.459,-0.65],[-0.366,3.699],[0.356,2.977],[-10.909,4.425],[-13.548,1.785],[-1.593,3.403],[0.014,5.588],[4.129,-0.538],[0.517,-4.149],[14.874,-1.126],[13.32,-2.68]],"v":[[1789,1747],[1791.517,1736.166],[1789.487,1725.24],[1783.714,1719.194],[1775,1723],[1775.27,1732.73],[1776,1742],[1738.243,1750.244],[1699,1757],[1695.902,1772.119],[1702,1784],[1707.745,1775.745],[1710,1764],[1752.523,1758.523]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[0.976,0.486],[5.514,-0.875],[5.307,-1.082],[4.971,-1.418],[4.506,-1.883],[3.913,-2.476],[3.191,-3.198],[-7.086,1.081],[-6.904,1.263],[-6.241,1.926],[-5.098,3.069],[-1.008,0.955],[-1.056,0.903],[-0.395,0.747]],"o":[[-5.593,0.796],[-5.514,0.875],[-5.307,1.082],[-4.971,1.418],[-4.506,1.883],[-3.913,2.476],[6.788,-1.379],[7.086,-1.081],[6.904,-1.263],[6.241,-1.926],[0.25,-0.902],[1.008,-0.955],[1.056,-0.903],[0.395,-0.747]],"v":[[815,2000],[798.308,2002.474],[782.044,2005.378],[766.596,2009.096],[752.348,2014.015],[739.688,2020.521],[729,2029],[749.93,2025.43],[771.035,2022.035],[790.872,2017.372],[808,2010],[810.065,2007.189],[813.339,2004.376],[815.693,2001.876]],"c":true}],"h":1},{"t":10.400390625,"s":[{"i":[[-0.002,1.943],[2.104,0.579],[1.71,-1.035],[1.19,-2.118],[0.544,-2.669],[-0.228,-2.688],[-1.125,-2.174],[-2.149,-1.128],[-3.298,0.45],[-0.431,1.514],[-0.37,1.575],[-0.296,1.648],[-0.21,1.734],[-0.112,1.832]],"o":[[-2.372,-2.726],[-2.104,-0.579],[-1.71,1.035],[-1.19,2.118],[-0.544,2.669],[0.228,2.688],[1.125,2.174],[2.149,1.128],[0.48,-1.465],[0.431,-1.514],[0.37,-1.575],[0.296,-1.648],[0.21,-1.734],[0.112,-1.832]],"v":[[2543,1858],[2536.255,1853.174],[2530.503,1853.991],[2526.122,1858.855],[2523.49,1866.169],[2522.985,1874.337],[2524.983,1881.762],[2529.862,1886.849],[2538,1888],[2539.369,1883.536],[2540.573,1878.906],[2541.575,1874.075],[2542.338,1869.005],[2542.825,1863.659]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 13"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.22,1.447],[1.341,0.123],[1.248,-0.141],[1.144,-0.368],[1.03,-0.557],[0.904,-0.71],[0.767,-0.825],[0.619,-0.904],[0.459,-0.945],[-1.592,0.074],[-1.495,0.172],[-1.345,0.322],[-1.142,0.525],[-0.887,0.78],[-0.58,1.087]],"o":[[-1.422,-0.424],[-1.341,-0.123],[-1.248,0.141],[-1.144,0.368],[-1.03,0.557],[-0.904,0.71],[-0.767,0.825],[-0.619,0.904],[1.638,-0.029],[1.592,-0.074],[1.495,-0.172],[1.345,-0.322],[1.142,-0.525],[0.887,-0.78],[0.58,-1.087]],"v":[[2339,1357],[2334.853,1356.188],[2330.967,1356.224],[2327.375,1356.997],[2324.111,1358.393],[2321.208,1360.304],[2318.7,1362.616],[2316.619,1365.218],[2315,1368],[2319.859,1367.858],[2324.502,1367.502],[2328.774,1366.774],[2332.517,1365.517],[2335.574,1363.574],[2337.787,1360.787]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[3.362,3.971],[-0.492,-3.788],[-1.039,-3.653],[-1.028,-3.664],[-0.457,-3.821],[3.494,-0.423],[3.439,-0.478],[2.475,-1.441],[0.604,-3.313],[-3.813,0.215],[-3.496,0.928],[-3.185,1.249],[-2.881,1.177],[1.25,6.084],[1.787,5.546]],"o":[[-0.614,4.068],[0.492,3.788],[1.039,3.653],[1.028,3.664],[-2.641,1.276],[-3.494,0.423],[-3.439,0.478],[-2.475,1.441],[4.136,0.89],[3.813,-0.215],[3.496,-0.928],[3.185,-1.249],[-1.75,-5.584],[-1.25,-6.084],[-1.787,-5.546]],"v":[[2038,1354],[2037.957,1365.748],[2040.394,1376.871],[2043.634,1387.809],[2046,1399],[2036.57,1401.32],[2025.944,1402.444],[2016.845,1405.095],[2012,1412],[2023.921,1412.914],[2034.882,1411.101],[2044.903,1407.737],[2054,1404],[2049.76,1386.24],[2045.464,1368.536]],"c":true}],"h":1},{"t":4,"s":[{"i":[[8.005,9.995],[-0.786,-7.107],[0.528,-7.315],[8.46,-2.873],[4.352,-6.981],[-1.334,-7.333],[-0.358,-8.309],[7.973,-2.861],[2.325,-8.508],[-7.99,4.01],[-8.66,3.34],[1.572,7.928],[0.332,9.168],[-8.433,2.234],[-3.551,7.116]],"o":[[-2.614,6.258],[0.786,7.107],[-8.808,2.525],[-8.46,2.873],[0.308,8.359],[1.333,7.333],[-4.784,6.05],[-7.973,2.861],[12.381,0.381],[7.99,-4.01],[0.62,-10.12],[-1.572,-7.928],[5.717,-4.949],[8.433,-2.234],[-2.28,-15.72]],"v":[[2039,1358],[2037.436,1378.207],[2039,1400],[2012.158,1407.158],[1992,1421],[1994.963,1444.037],[1998,1467],[1976.657,1478.156],[1959,1493],[1988.291,1486.291],[2012,1474],[2009.715,1447.785],[2006,1423],[2029.125,1414.125],[2049,1402]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[9.315,10.032],[0.575,-7.758],[0.833,-7.5],[11.218,-9.449],[-1.417,-15.25],[11.129,-19.538],[3.981,-15.686],[11.987,-6.68],[0.895,-11.439],[-22.905,4.445],[-3.096,5.571],[0,17],[-15.006,14.661],[-1.292,18.625],[-11.498,7.169]],"o":[[-2.865,5.468],[-0.575,7.758],[-14.448,6.219],[-1.11,17.776],[-14.486,16.181],[-0.097,19.569],[-11.419,7.247],[-9.461,2.872],[25.351,1.328],[4.707,-3.96],[0,-17],[12.294,-17.373],[1.118,-18.452],[10.496,-8.17],[0.813,-15.063]],"v":[[2042,1357],[2037.476,1377.476],[2036,1401],[1992,1419],[1996,1465],[1943,1504],[1940,1560],[1900,1576],[1878,1591],[1943,1572],[1956,1559],[1956,1508],[2009,1472],[2005,1424],[2045,1408]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[9.662,10.775],[0.264,-15.736],[10.698,-10.969],[2.291,-14.471],[13.097,-22.236],[3.261,-14.072],[17.281,-20.386],[-4.502,-22.374],[-1.589,25.412],[-25.443,9.224],[-2.592,16.742],[-9.797,6.991],[-8.667,9.219],[0.794,14.672],[-9.338,9.328]],"o":[[-6.702,9.298],[-12.544,9.123],[1.895,13.571],[-22.936,12.397],[-0.388,16.946],[-28.369,9.297],[7.326,19.723],[23.862,-3.138],[21.347,-13.32],[3.997,-15.336],[7.127,-9.389],[10.037,-7.162],[4.2,-16.38],[11.028,-7.639],[0.411,-16.964]],"v":[[2043,1358],[2038,1401],[1993,1421],[2000,1462],[1942,1510],[1940,1560],[1865,1598],[1865,1662],[1882,1598],[1954,1566],[1957,1511],[1981,1486],[2013,1468],[2008,1425],[2047,1408]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[0.667,0],[10.702,-7.798],[8.847,-9.653],[-0.614,-8.211],[0.187,-8.778],[17.211,-22.123],[6.336,-17.331],[15.36,-11.307],[-3.009,-2.909],[-14.147,4.946],[-13.292,8.161],[-2.491,21.842],[-18.4,20.6],[-2.837,15.886],[-6.951,24.397]],"o":[[-11.345,7.155],[-10.702,7.798],[-1.269,8.376],[0.614,8.211],[-25.533,13.801],[-3.395,20.272],[-21.06,5.606],[-4.635,1.871],[15.244,1.821],[14.381,-5.027],[4.288,-20.046],[20.701,-18.299],[1.004,-17.078],[11.709,-22.969],[-0.667,0]],"v":[[2002,1460],[1968.627,1482.126],[1939,1508],[1938.688,1532.698],[1940,1558],[1863,1599],[1855,1662],[1796,1683],[1785,1695],[1826,1680],[1870,1666],[1877,1600],[1953,1559],[1951,1513],[2004,1460]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[5.318,7.348],[1.667,0],[1.667,0],[-2.122,-7.449],[-3.905,-5.226],[-13.494,-6.006],[-9.456,-10.044],[0.02,-8.687],[-0.16,-8.506],[-10.343,-4.573],[-10.913,-1.421],[8.415,3.085],[5.081,6.419],[1.911,15.221],[29.262,17.071]],"o":[[-1.667,0],[-1.667,0],[-1.395,8.978],[2.122,7.449],[15.57,3.93],[13.494,6.006],[0.922,7.745],[-0.021,8.687],[6.716,7.284],[10.343,4.573],[-4.26,-7.24],[-8.415,-3.085],[-3.047,-16.31],[-20.531,-25.802],[-2.91,-9.756]],"v":[[2295,1620],[2290,1620],[2285,1620],[2286.525,1644.814],[2296,1664],[2340.086,1678.414],[2375,1702],[2376.072,1726.929],[2376,1753],[2402.352,1770.897],[2435,1780],[2414.116,1766.384],[2392,1754],[2391,1701],[2302,1651]],"c":true}],"h":1},{"t":8,"s":[{"i":[[22.812,21.521],[-0.255,8.791],[2.914,6.611],[6.244,3.389],[6.61,-2.034],[-4.261,-1.906],[-2.784,-3.382],[1.884,-8.461],[-0.238,-8.905],[-15.282,-6.052],[-12.59,-8.744],[2.664,-5.571],[-1.095,-6.798],[-2.666,-2.001],[-7.353,13.313]],"o":[[2.896,-6.227],[0.255,-8.791],[-4.414,-3.476],[-6.244,-3.389],[3.172,2.994],[4.261,1.906],[4.3,8.251],[-1.884,8.461],[10.283,11.05],[15.282,6.052],[-1.44,5.919],[-2.664,5.571],[1.278,3.389],[12.567,-8.099],[-25.461,-18.872]],"v":[[2392,1749],[2396.858,1725.288],[2393,1701],[2376.648,1689.368],[2357,1686],[2368.791,1692.709],[2380,1700],[2381.546,1725.009],[2377,1751],[2417.27,1774.73],[2461,1795],[2453.599,1811.841],[2450,1830],[2459,1835],[2480,1794]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[2.207,9.908],[3.843,1.947],[4.099,1.681],[4.331,0.643],[4.54,-1.166],[-4.402,-1.598],[-4.55,-1.45],[-1.905,-4.095],[3.46,-5.54],[2.312,-6.688],[-8.444,-2.723],[-9.244,-1.923],[5.742,2.091],[5.177,2.655],[-2.64,7.356]],"o":[[-3.565,-1.442],[-3.843,-1.947],[-4.099,-1.681],[-4.331,-0.643],[1.461,4.539],[4.402,1.598],[4.55,1.45],[-0.847,8.153],[-3.46,5.54],[6.983,4.184],[8.443,2.723],[-2.854,-4.979],[-5.742,-2.091],[4.646,-4.667],[2.64,-7.356]],"v":[[2479,1788],[2467.882,1782.723],[2455.963,1777.088],[2443.313,1773.409],[2430,1774],[2439.493,1782.507],[2453.62,1786.38],[2464,1794],[2456.599,1813.599],[2447,1831],[2470.304,1841.195],[2497,1848],[2483.243,1838.257],[2466,1832],[2477.639,1813.931]],"c":true}],"h":1},{"t":9.6,"s":[{"i":[[9.38,4.454],[-2.185,-2.101],[-2.395,-1.891],[-2.508,-1.777],[-2.526,-1.76],[-2.448,-1.838],[-2.274,-2.012],[-2.004,-2.282],[-4.219,-3.396],[-4.216,-3.409],[-4.639,-2.559],[-5.489,-0.845],[8.09,7.025],[8.71,6.415],[9.14,5.558]],"o":[[1.879,2.406],[2.185,2.101],[2.395,1.891],[2.508,1.777],[2.526,1.76],[2.448,1.838],[2.274,2.012],[4.649,2.519],[4.219,3.396],[4.216,3.409],[4.639,2.559],[-7.279,-7.388],[-8.09,-7.025],[-8.71,-6.415],[-9.14,-5.558]],"v":[[626,267],[632.12,273.737],[639.014,279.701],[646.392,285.179],[653.968,290.461],[661.453,295.833],[668.56,301.583],[675,308],[688.194,317.088],[700.739,327.511],[713.915,336.679],[729,342],[705.899,320.32],[680.651,300.099],[653.827,282.079]],"c":true}],"h":1},{"t":10.400390625,"s":[{"i":[[0.447,-0.07],[2.168,-1.118],[2.126,-1.16],[2.055,-1.23],[1.957,-1.329],[1.83,-1.455],[1.676,-1.61],[1.493,-1.793],[-4.073,1.677],[-3.549,2.2],[-2.952,2.798],[-2.28,3.47],[-0.095,0.118],[0.079,0.139],[0.26,0.076]],"o":[[-2.182,1.103],[-2.168,1.118],[-2.126,1.16],[-2.055,1.23],[-1.957,1.329],[-1.83,1.455],[-1.676,1.61],[4.522,-1.228],[4.073,-1.677],[3.549,-2.201],[2.952,-2.798],[0.263,-0.014],[0.095,-0.118],[-0.079,-0.139],[-0.26,-0.076]],"v":[[742,2018],[735.467,2021.324],[729.019,2024.733],[722.74,2028.311],[716.714,2032.143],[711.026,2036.312],[705.76,2040.903],[701,2046],[713.91,2041.66],[725.362,2035.862],[735.133,2028.383],[743,2019],[743.539,2018.781],[743.565,2018.374],[743.058,2018.03]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":11.2001953125,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 14"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.947,6.807],[0.428,-0.105],[0.22,-0.313],[0.165,-0.368],[0.264,-0.269],[0.516,-0.017],[1.961,-5.373],[1.818,-5.515],[2.198,-5.135],[3.102,-4.231],[5.195,0.952],[4.833,0.72],[3.721,-1.217],[1.861,-4.859],[-4.361,-0.973],[-4.852,-0.481],[-5.066,-0.268],[-5.001,-0.333],[-2.853,6.178],[-2.315,6.725],[-1.679,6.935]],"o":[[-0.79,-0.256],[-0.428,0.105],[-0.22,0.313],[-0.165,0.368],[-0.264,0.269],[-2.626,4.707],[-1.961,5.373],[-1.818,5.515],[-2.198,5.135],[-4.809,0.521],[-5.195,-0.952],[-4.833,-0.72],[-3.721,1.217],[3.591,1.743],[4.361,0.973],[4.852,0.481],[5.066,0.268],[3.294,-5.292],[2.853,-6.178],[2.315,-6.725],[1.679,-6.935]],"v":[[1804,1388],[1802.212,1387.812],[1801.278,1388.478],[1800.738,1389.538],[1800.132,1390.532],[1799,1391],[1792.251,1406.251],[1786.714,1422.714],[1780.82,1438.82],[1773,1453],[1757.808,1451.927],[1742.579,1448.993],[1729.561,1449.312],[1721,1458],[1732.996,1462.004],[1746.885,1464.115],[1761.831,1465.168],[1777,1466],[1786.245,1448.711],[1794.02,1429.272],[1800.036,1408.697]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[-3.291,11.877],[3.246,-4.504],[2.487,-5.263],[2.748,-5.002],[4.028,-3.722],[8.327,0.122],[7.772,-0.765],[6.13,-2.143],[6.808,-13.692],[10.099,-10.401],[6.639,-1.027],[6.452,-1.215],[6.316,-1.517],[-0.132,-7.966],[-13.666,2.251],[-12.403,2.597],[-6.958,14.042],[-10.582,10.418],[-10.384,-0.051],[-9.215,1.119],[-5.411,12.338]],"o":[[-5.024,2.726],[-3.246,4.504],[-2.487,5.263],[-2.748,5.002],[-7.796,-0.518],[-8.327,-0.122],[-7.772,0.765],[-9.669,10.831],[-6.808,13.692],[-5.991,1.676],[-6.639,1.027],[-5.867,1.966],[-6.316,1.517],[14.933,1.599],[13.666,-2.251],[10.585,-10.416],[6.958,-14.042],[9.249,-1.084],[10.384,0.051],[9.064,-7.769],[5.411,-12.338]],"v":[[1802,1396],[1789.851,1407.1],[1781.507,1422.006],[1773.91,1437.659],[1764,1451],[1739.544,1449.917],[1715.124,1450.76],[1694,1455],[1670.822,1493.322],[1647,1531],[1627.846,1534.846],[1608,1538],[1588.001,1541.501],[1577,1554],[1619.897,1552.147],[1659,1544],[1683.502,1505.501],[1708,1467],[1738.026,1466.026],[1768,1465],[1789.331,1433.581]],"c":true}],"h":1},{"t":4,"s":[{"i":[[-9.408,27.26],[6.872,-11.295],[11.101,-7.066],[11.25,0.084],[8.276,-2.89],[7.044,-13.456],[10.865,-9.635],[15.469,-2.785],[11.677,-6.867],[13.005,-19.194],[21.213,-8.19],[10.008,-1.163],[9.848,-1.415],[0.401,-18.502],[-18.265,2.819],[-15.147,7.124],[-11.283,13.855],[-15.867,8.405],[-31.857,9.42],[-26.697,16.637],[-17.013,0.32]],"o":[[-12.412,5.755],[-6.872,11.295],[-9.722,1.445],[-11.25,-0.084],[-10.959,9.541],[-7.044,13.456],[-14.448,5.994],[-15.469,2.785],[-18.766,11.036],[-13.005,19.193],[-8.121,1.934],[-10.008,1.163],[-18.504,2.659],[19.779,-4.306],[18.502,-2.856],[17.265,-8.12],[11.88,-14.588],[25.003,-13.244],[23.495,-19.838],[15.49,-1.844],[23.777,-16.223]],"v":[[1808,1394],[1781.517,1422.017],[1757,1452],[1724.416,1452.916],[1694,1456],[1668.929,1492.429],[1644,1529],[1597.921,1540.345],[1556,1553],[1511.835,1603.135],[1464,1649],[1436.295,1653.389],[1406,1657],[1365,1681],[1422,1672],[1476,1660],[1522,1614],[1566,1566],[1654,1544],[1708,1468],[1759,1467]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[3.831,0.455],[0.333,0],[23.247,-13.086],[16.534,-4.466],[18.55,-16.784],[33.913,-15.42],[31.709,-21.625],[32.294,-23.372],[9.109,-13.224],[14.892,-9.108],[5.036,-6.964],[2.716,-6.284],[-3.85,0.753],[-10.279,8.741],[-31.912,27.327],[-41.751,-0.085],[-34.874,24.31],[-42.605,5.362],[-19.423,18.577],[-17.476,0.523],[-11.139,24.861]],"o":[[-0.333,0],[-24.03,12.303],[-18.119,2.881],[-17.081,18.253],[-46.181,3.152],[-26.744,26.59],[-47.641,8.026],[-10.075,12.258],[-12.754,11.246],[-5.684,6.316],[-5.051,3.949],[-1.363,0.18],[16.014,-0.285],[32.482,-27.623],[36.508,-5.159],[37.922,-20.72],[26.758,-18.653],[24.215,-13.785],[14.539,-3.461],[21.69,-14.31],[0.613,-2.506]],"v":[[1807,1397],[1806,1397],[1755,1455],[1695,1458],[1656,1525],[1546,1563],[1469,1646],[1339,1683],[1310,1721],[1271,1754],[1252,1771],[1240,1786],[1239,1790],[1275,1768],[1367,1683],[1472,1663],[1560,1573],[1662,1540],[1708,1472],[1760,1470],[1805,1407]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[19.894,8.439],[-7.419,-4.748],[-4.072,-8.095],[1.893,-5.607],[-0.467,-7.967],[-8.626,-3.041],[-5.613,-6.053],[-2.712,-9.788],[-3.289,-9.211],[-11.34,-5.66],[-7.341,-9.659],[-0.524,-9.988],[-1.932,-7.595],[-16.109,-7.727],[-19.144,1.329],[12.258,10.409],[12.402,10.264],[-4.59,15.284],[-13.887,64.992],[10.982,14.685],[-1.726,10.607]],"o":[[2.252,9.914],[7.419,4.747],[-0.896,6.603],[-1.893,5.608],[5.885,5.782],[8.626,3.041],[-1.137,13.637],[2.712,9.788],[9.298,7.702],[11.34,5.66],[-2.03,8.451],[0.524,9.989],[13.152,12.098],[15.722,7.542],[-5.559,-17.108],[-16.215,-6.451],[1.06,-17.916],[-29.145,-28.508],[-8.511,-17.156],[-0.497,-12.831],[-11.198,-17.135]],"v":[[2139,1397],[2155.635,1416.864],[2175,1434],[2169.977,1451.477],[2167,1471],[2190.204,1482.796],[2213,1495],[2216.18,1529.32],[2226,1557],[2258.468,1575.532],[2288,1597],[2286.028,1625.642],[2290,1653],[2338,1676],[2387,1697],[2347,1669],[2303,1645],[2304,1593],[2228,1493],[2181,1463],[2188,1433]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[1.615,-0.281],[-2.527,-10.251],[-0.562,-11.669],[-11.816,-5.518],[-9.331,-8.002],[-0.044,-10.623],[-2.493,-8.174],[-16.017,-7.149],[-11.926,-11.241],[-2.004,-10.684],[-12.289,0.449],[0.823,9.74],[-2.427,8.729],[17.188,7.645],[11.187,13.646],[0.062,10.105],[1.836,8.331],[12.133,4.746],[6.386,11.775],[1.756,10.32],[6.604,7.659]],"o":[[-1.671,12.327],[2.527,10.251],[8.405,8.928],[11.816,5.518],[0.333,10.333],[0.044,10.623],[13.005,10.162],[16.017,7.149],[-2.307,9.715],[2.004,10.684],[-1.137,-8.312],[-0.823,-9.74],[-13.061,-11.773],[-17.188,-7.645],[-0.918,-9.249],[-0.062,-10.105],[-10.081,-8.242],[-12.133,-4.746],[-4.372,-8.062],[-1.756,-10.32],[-1.279,-0.055]],"v":[[2213,1491],[2215.825,1523.993],[2222,1556],[2253.806,1576.194],[2287,1595],[2286.881,1627.119],[2290,1656],[2335.31,1680.19],[2379,1706],[2377.053,1739.623],[2397,1758],[2393.327,1730.313],[2395,1702],[2347.095,1675.405],[2302,1646],[2301.188,1616.312],[2299,1588],[2263.728,1571.149],[2234,1549],[2226.674,1520.198],[2216,1492]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[-25.846,49.154],[0.333,0],[0.333,0],[6.304,-5.853],[7.396,-3.64],[9.898,-1.951],[9.128,-1.12],[9.892,-1.177],[9.367,-4.178],[5.661,-4.368],[5.134,-4.198],[15.635,-13.044],[17.304,-10.612],[10.226,-0.941],[11.066,-0.101],[4.957,-2.376],[0.851,-6.483],[-12.642,1.595],[-13.236,-2.183],[-22.442,19.058],[-25.592,15.908]],"o":[[-0.333,0],[-0.333,0],[-8.388,4.947],[-6.304,5.853],[-8.281,4.077],[-9.898,1.951],[-9.063,1.112],[-9.892,1.177],[-5.221,2.329],[-5.661,4.368],[-16.155,13.211],[-15.635,13.044],[-11.032,0.135],[-10.226,0.941],[-4.321,3.013],[-4.957,2.376],[11.196,0.197],[12.642,-1.595],[27.641,-13.859],[22.442,-19.058],[65.909,-9.09]],"v":[[1276,1754],[1275,1754],[1274,1754],[1252.756,1770.98],[1233,1786],[1205.135,1794.717],[1176,1799],[1147.228,1801.7],[1118,1809],[1101.435,1819.598],[1085,1833],[1037.862,1872.949],[989,1909],[957.525,1911.026],[926,1913],[910.897,1919.898],[901,1932],[936.969,1928.511],[976,1928],[1049.037,1876.537],[1119,1822]],"c":true}],"h":1},{"t":8,"s":[{"i":[[0.5,0],[4.495,-3.339],[4.032,-3.801],[4.271,-3.562],[5.213,-2.621],[8.531,-0.972],[9.091,-0.092],[9.075,0.694],[11.424,-9.409],[10.168,-10.666],[-8.793,7.207],[-11.103,4.896],[-1.756,-0.411],[-2.138,-0.028],[-19.08,6.754],[-12.426,13.408],[-2.27,1.73],[-2.101,1.899],[-2.001,2.23],[2.34,2.869],[0.5,0]],"o":[[-5.659,2.174],[-4.495,3.339],[-4.032,3.801],[-4.271,3.562],[-7.394,1.947],[-8.531,0.972],[-9.091,0.092],[-13.137,7.697],[-11.424,9.409],[11.723,-4.278],[8.793,-7.207],[1.837,0.329],[1.756,0.411],[26.255,0.422],[19.08,-6.754],[1.817,-2.183],[2.271,-1.729],[1.334,-2.211],[2.001,-2.23],[-0.5,0],[-0.5,0]],"v":[[1050,1869],[1034.944,1877.444],[1022.33,1888.33],[1010.05,1899.55],[996,1909],[971.968,1913.355],[945.392,1914.927],[918,1914],[881.274,1939.774],[849,1970],[878.464,1951.464],[907,1932],[912.275,1933.225],[918,1934],[985.872,1924.372],[1033,1894],[1039.287,1888.287],[1046,1883],[1052.255,1876.494],[1053,1869],[1051.5,1869]],"c":true}],"h":1},{"t":8.8,"s":[{"i":[[0.216,4.716],[0.583,0],[0.583,0],[0.583,0],[0.583,0],[6.32,-4.264],[5.794,-4.789],[5.702,-4.881],[6.045,-4.539],[5.961,-4.372],[6.083,-4.25],[5.227,-5.106],[1.299,-1.201],[1.025,-1.475],[0.667,-0.667],[0.452,-0.881],[0.617,-0.771],[-2.044,0.236],[-20.819,17.014],[-21.433,16.4],[-2.982,1.518]],"o":[[-0.583,0],[-0.583,0],[-0.583,0],[-0.583,0],[-7.279,3.304],[-6.32,4.264],[-5.794,4.789],[-5.702,4.881],[-4.862,5.471],[-5.961,4.372],[-6.083,4.25],[-1.777,0.722],[-1.299,1.201],[-0.881,0.452],[-0.667,0.667],[-0.574,0.155],[-0.617,0.77],[25.289,-12.543],[20.819,-17.014],[3.288,-1.211],[2.982,-1.518]],"v":[[920,1919],[918.25,1919],[916.5,1919],[914.75,1919],[913,1919],[892.71,1930.46],[874.648,1944.148],[857.512,1958.762],[840,1973],[823.521,1987.521],[805.209,2000.209],[788,2014],[783.436,2016.935],[780,2021],[777.678,2022.678],[776,2025],[773.537,2026.793],[775,2028],[842.892,1982.392],[905,1931],[915.128,1927.628]],"c":true}],"h":1},{"t":9.599609375,"s":[{"i":[[3.293,0.582],[-0.799,-1.38],[-0.947,-1.359],[-1.084,-1.324],[-1.212,-1.273],[-1.328,-1.207],[-1.435,-1.126],[-1.53,-1.03],[-1.616,-0.92],[-1.691,-0.794],[-1.755,-0.653],[-1.809,-0.497],[-1.853,-0.326],[-1.886,-0.14],[1.81,2.065],[1.883,1.992],[2.003,1.872],[2.168,1.707],[2.38,1.495],[2.638,1.237],[2.943,0.932]],"o":[[0.64,1.386],[0.799,1.38],[0.947,1.359],[1.084,1.324],[1.212,1.273],[1.328,1.207],[1.435,1.126],[1.53,1.03],[1.616,0.92],[1.691,0.794],[1.755,0.653],[1.809,0.497],[1.853,0.326],[-1.783,-2.092],[-1.81,-2.065],[-1.883,-1.992],[-2.003,-1.872],[-2.168,-1.707],[-2.38,-1.495],[-2.638,-1.237],[-2.943,-0.932]],"v":[[3263,2097],[3265.161,2101.152],[3267.782,2105.265],[3270.831,2109.293],[3274.278,2113.191],[3278.09,2116.915],[3282.237,2120.419],[3286.687,2123.658],[3291.409,2126.586],[3296.371,2129.16],[3301.543,2131.333],[3306.892,2133.061],[3312.389,2134.298],[3318,2135],[3312.621,2128.754],[3307.092,2122.658],[3301.275,2116.85],[3295.029,2111.471],[3288.218,2106.657],[3280.701,2102.549],[3272.342,2099.283]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":10.400390625,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 15"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[1.182,0.401],[-0.594,-0.99],[-0.816,-0.767],[-1.015,-0.569],[-1.189,-0.394],[-1.339,-0.244],[-1.466,-0.117],[-1.568,-0.015],[-1.647,0.064],[0.549,1.035],[0.913,0.67],[1.187,0.396],[1.369,0.214],[1.459,0.124],[1.458,0.125],[1.366,0.217]],"o":[[0.347,1.236],[0.594,0.99],[0.816,0.767],[1.015,0.569],[1.189,0.394],[1.339,0.244],[1.466,0.117],[1.568,0.015],[-0.092,-1.491],[-0.549,-1.035],[-0.913,-0.67],[-1.187,-0.396],[-1.369,-0.214],[-1.459,-0.124],[-1.458,-0.125],[-1.366,-0.217]],"v":[[2127,1398],[2128.417,1401.333],[2130.538,1403.963],[2133.29,1405.961],[2136.601,1407.399],[2140.4,1408.35],[2144.614,1408.886],[2149.171,1409.079],[2154,1409],[2153.016,1405.234],[2150.8,1402.7],[2147.627,1401.123],[2143.77,1400.23],[2139.505,1399.746],[2135.105,1399.395],[2130.845,1398.905]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[4.973,1.277],[-3.64,-2.193],[-4.333,-1.5],[-4.027,-1.807],[-2.72,-3.114],[1.2,-2.309],[1.236,-2.252],[0.543,-2.567],[-0.879,-3.253],[-2.284,2.216],[-1.293,3.207],[-0.738,3.762],[-0.618,3.882],[4.408,1.842],[4.307,1.943],[4.495,1.755]],"o":[[1.947,3.887],[3.64,2.193],[4.334,1.5],[4.027,1.807],[-0.435,2.738],[-1.2,2.309],[-1.236,2.252],[-0.543,2.567],[3.709,-0.791],[2.284,-2.216],[1.293,-3.207],[0.738,-3.762],[-4.799,-1.451],[-4.408,-1.842],[-4.307,-1.943],[-4.495,-1.755]],"v":[[2132,1398],[2140.63,1406.87],[2152.84,1412.16],[2165.631,1416.869],[2176,1424],[2173.366,1431.478],[2169.529,1438.228],[2166.678,1445.364],[2167,1454],[2175.881,1449.381],[2181.137,1441.137],[2184.075,1430.575],[2186,1419],[2172.261,1413.989],[2159.261,1408.239],[2146.13,1402.62]],"c":true}],"h":1},{"t":4,"s":[{"i":[[8.182,2.152],[-7.115,-3.718],[-4.193,-6.64],[1.922,-6.412],[-0.649,-8.983],[-9.911,-4.089],[-7.349,-6.652],[0.77,-7.286],[-5.936,-3.384],[-0.503,8.497],[-1.453,7.547],[10.623,4.377],[7.15,7.85],[-1.709,5.791],[-0.716,6.784],[8.478,4.438]],"o":[[3.348,7.486],[7.115,3.718],[-1.963,6.37],[-1.922,6.412],[7.006,6.994],[9.911,4.089],[1.144,7.472],[-0.77,7.286],[6.534,-2.466],[0.503,-8.497],[-6.358,-8.642],[-10.623,-4.377],[1.45,-6.05],[1.709,-5.791],[-5.905,-6.096],[-8.478,-4.438]],"v":[[2137,1401],[2154.366,1416.134],[2173,1430],[2166.541,1448.54],[2164,1471],[2190.743,1486.256],[2218,1501],[2216.406,1524.066],[2222,1541],[2230.811,1522.811],[2232,1497],[2204.594,1479.406],[2176,1463],[2181.051,1445.551],[2185,1427],[2162.708,1411.042]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[18.145,5.19],[-7.036,-4.964],[-4.164,-7.836],[1.767,-5.733],[-0.398,-7.898],[-9.737,-4.264],[-6.037,-7.963],[-0.768,-7.899],[-1.019,-7.648],[-14.378,-24.955],[-20.298,-4.203],[-2.848,17.485],[15.821,25.846],[0.096,14.571],[3.407,18.275],[-0.305,12.582]],"o":[[3.69,8.309],[7.036,4.964],[-1.331,6.169],[-1.767,5.733],[6.016,7.984],[9.736,4.264],[-0.09,8.756],[0.768,7.899],[19.271,20.063],[0.943,16.858],[10.063,-10.27],[-15.794,-25.873],[-1.505,-13.161],[-7.231,-16.003],[-2.084,-11.176],[-11.323,-15.345]],"v":[[2137,1398],[2154.645,1416.355],[2173,1434],[2167.704,1451.204],[2165,1471],[2190.484,1487.516],[2216,1504],[2217.168,1528.832],[2220,1552],[2290,1600],[2297,1649],[2304,1595],[2232,1542],[2231,1499],[2178,1463],[2185,1432]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.89,0.443],[0.89,-0.443],[17.252,-6.126],[15.994,-8.737],[34.775,-22.899],[32.954,-15.712],[21.983,-20.783],[23.35,-14.021],[29.465,-11.201],[1.387,-12.28],[-46.431,1.903],[-43.828,38.838],[-37.023,12.31],[-37.184,21.483],[-17.85,7.014],[-9.882,15.899]],"o":[[-0.211,1.122],[-20.138,2.503],[-18.192,6.459],[-37.601,20.54],[-40.883,11.439],[-27.007,12.876],[-20.76,19.627],[-36.278,4.389],[-8.656,5.01],[37.777,-7.224],[49.403,-33.263],[32.998,-16.336],[34.191,-24.475],[16.597,-6.595],[17.788,-6.989],[-0.211,-1.122]],"v":[[1661,1520],[1659,1522],[1604,1538],[1551,1556],[1470,1645],[1352,1672],[1288,1734],[1224,1786],[1126,1810],[1103,1828],[1224,1802],[1356,1686],[1476,1658],[1561,1567],[1614,1547],[1663,1522]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-8.957,23.377],[1.882,-0.04],[1.425,-0.405],[13.434,-4.774],[9.802,-6.361],[16.873,-16.627],[21.086,-12.414],[28.528,-8.011],[16.38,-20.045],[6.514,-5.819],[2.173,-3.827],[2.323,-0.677],[-4.792,-0.237],[-29.86,14.806],[-33.009,29.324],[-29.455,32.725]],"o":[[-2.047,-1.564],[-1.882,0.04],[-12.463,3.541],[-13.434,4.774],[-13.423,20.077],[-16.873,16.627],[-30.509,6.912],[-28.528,8.011],[-6.314,6.02],[-1.46,4.54],[-2.323,0.677],[-0.469,1.217],[30.821,-13.845],[48.21,-14.123],[37.062,-26.165],[20.992,-11.342]],"v":[[1421,1655],[1415.033,1653.023],[1410,1654],[1370.004,1666.385],[1334,1683],[1288.748,1738.248],[1232,1782],[1140.904,1801.651],[1071,1841],[1052,1859],[1044,1869],[1039,1873],[1037,1877],[1115,1821],[1259,1778],[1354,1685]],"c":true}],"h":1},{"t":7.2,"s":[{"i":[[79.113,7.555],[-7.587,-2.746],[-8.311,-2.023],[-13.883,-18.117],[-18.204,-13.796],[-26.177,-8.489],[-26.667,-8],[-11.256,-13.578],[-20.2,-4.633],[5.509,5.809],[4.563,5.498],[5.257,6.92],[7.447,4.662],[13.501,3.823],[13.575,4.557],[27.26,8.398]],"o":[[5.341,4.992],[7.587,2.746],[19.264,12.736],[13.883,18.117],[25.623,9.043],[26.177,8.489],[11.778,13.055],[11.256,13.578],[-2.403,-8.265],[-5.509,-5.809],[-5.524,-6.657],[-5.257,-6.92],[-11.423,-7.152],[-13.501,-3.823],[-26.424,-8.871],[-43.151,-43.517]],"v":[[2781,1832],[2800.773,1843.227],[2825,1850],[2872.295,1898.705],[2918,1949],[2995.717,1975.282],[3075,2000],[3107.184,2042.317],[3152,2072],[3139.12,2051.424],[3123,2035],[3107.441,2014.005],[3089,1996],[3051.114,1980.554],[3010,1969],[2930,1943]],"c":true}],"h":1},{"t":8,"s":[{"i":[[37.02,3.981],[-0.03,-0.387],[-0.081,-0.335],[-0.136,-0.281],[-0.194,-0.222],[-4.806,-2.361],[-5.739,-1.428],[-5.939,-1.228],[-5.406,-1.761],[-9.418,-12.082],[-8.053,-13.447],[-14.548,-4.535],[-17.244,0.744],[10.71,3.457],[11.06,3.107],[23.503,17.497]],"o":[[-0.019,0.436],[0.03,0.387],[0.081,0.335],[0.136,0.281],[3.139,4.028],[4.806,2.361],[5.739,1.428],[5.939,1.228],[11.274,10.226],[9.418,12.082],[13.564,4.602],[14.548,4.535],[-10.102,-4.065],[-10.71,-3.457],[-14.969,-26.031],[-23.503,-17.497]],"v":[[3006,1967],[3006.015,1968.235],[3006.181,1969.319],[3006.505,1970.245],[3007,1971],[3019.1,1980.4],[3035.1,1985.9],[3052.8,1989.7],[3070,1994],[3100.916,2027.585],[3127,2066],[3168.74,2081.01],[3216,2088],[3184.718,2076.782],[3152,2067],[3095.538,2000.462]],"c":true}],"h":1},{"t":8.7998046875,"s":[{"i":[[6.01,-0.843],[-0.999,-1.539],[-1.462,-1.191],[-1.607,-0.932],[-1.435,-0.76],[-5.636,-1.995],[-5.935,-1.498],[-6.082,-1.254],[-6.076,-1.263],[-15.532,-5.042],[-15.662,-2.463],[-0.304,-0.195],[-0.222,0.727],[27.804,7.363],[27.749,7.418],[2.987,2.18]],"o":[[0.218,1.975],[0.999,1.539],[1.462,1.191],[1.607,0.932],[5.184,2.746],[5.636,1.995],[5.935,1.498],[6.082,1.254],[16.211,3.37],[15.532,5.042],[0.561,-0.052],[0.304,0.195],[-21.034,-14.132],[-27.804,-7.363],[-3.043,-2.124],[-2.987,-2.18]],"v":[[3131,2058],[3132.905,2063.248],[3136.675,2067.322],[3141.358,2070.484],[3146,2073],[3162.268,2080.048],[3179.662,2085.224],[3197.725,2089.288],[3216,2093],[3263.412,2106.68],[3310,2119],[3311.254,2119.507],[3312,2119],[3237.036,2088.464],[3152,2068],[3143.725,2060.775]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":9.599609375,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 16"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[5.153,4.181],[-1.015,-2.943],[-1.388,-2.571],[-1.634,-2.324],[-1.754,-2.205],[-1.747,-2.211],[-1.614,-2.344],[-1.355,-2.603],[-0.969,-2.989],[3.485,-1.249],[3.535,-1.199],[3.142,-1.591],[2.308,-2.425],[1.032,-3.701],[-5.587,1.31],[-5.2,2.683],[-4.388,3.156],[-3.151,2.73],[3.756,5.577],[3.807,5.526],[4.273,5.061]],"o":[[0.516,3.443],[1.015,2.943],[1.388,2.571],[1.634,2.324],[1.754,2.205],[1.747,2.211],[1.614,2.344],[1.355,2.603],[-2.993,1.74],[-3.485,1.249],[-3.535,1.199],[-3.142,1.591],[-2.308,2.425],[5.548,0.962],[5.587,-1.31],[5.2,-2.683],[4.388,-3.156],[-4.119,-5.214],[-3.756,-5.577],[-3.807,-5.526],[-4.273,-5.061]],"v":[[2078,1433],[2080.328,1442.547],[2083.963,1450.787],[2088.527,1458.098],[2093.64,1464.86],[2098.923,1471.452],[2103.997,1478.253],[2108.482,1485.643],[2112,1494],[2102.173,1498.373],[2091.533,1501.933],[2081.407,1506.007],[2073.121,1511.921],[2068,1521],[2084.809,1520.253],[2101.096,1514.038],[2115.585,1505.054],[2127,1496],[2115.291,1479.709],[2104.05,1462.95],[2092.034,1446.966]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[8.381,7.619],[-1.55,-4.867],[-2.315,-4.102],[-2.107,-4.309],[-0.927,-5.489],[7.164,-3.947],[6.201,-4.91],[3.841,-7.27],[-6.737,-9.763],[-5.168,-11.332],[9.658,-6.254],[2.55,-10.793],[-6.376,3.935],[-5.306,3.771],[-5.938,4.343],[-2.458,6.513],[7.549,9.785],[3.845,13.488],[-9.749,5.251],[-4.757,10.243],[5.982,10.018]],"o":[[-0.187,6.603],[1.55,4.867],[2.315,4.102],[2.107,4.309],[-6.731,4.38],[-7.164,3.947],[-6.201,4.91],[4.883,11.617],[6.737,9.763],[-4.817,10.19],[-9.658,6.254],[8.191,4.51],[6.376,-3.935],[5.789,-4.115],[5.938,-4.343],[-3.96,-13.373],[-7.549,-9.785],[6.245,-8.755],[9.749,-5.251],[-4.691,-11.309],[-5.982,-10.018]],"v":[[2082,1439],[2084.288,1455.962],[2090.329,1469.171],[2097.205,1481.545],[2102,1496],[2080.808,1508.141],[2060.412,1521.078],[2045,1539],[2063.286,1570.214],[2082,1601],[2057.3,1623.548],[2036,1647],[2057.664,1645.711],[2075,1632],[2093.498,1619.798],[2107,1604],[2087.914,1571.086],[2069,1538],[2095.116,1519.116],[2119,1498],[2103.268,1465.732]],"c":true}],"h":1},{"t":4,"s":[{"i":[[10.39,6.477],[0.667,0],[-5.274,-21.06],[1.793,-22.576],[-5.924,-8.773],[-3.425,-11.576],[11.953,-10.015],[0.421,-13.281],[-5.989,-9.924],[-3.17,-15.163],[15.868,-7.846],[4.269,-18.075],[-12.286,8.227],[-15.553,5.896],[-1.643,11.164],[5.175,11.867],[5.524,13.809],[-16.281,23.719],[8.382,24.618],[-11.227,16.773],[4.046,11.905]],"o":[[-0.667,0],[-2.067,28.401],[-11.131,14.95],[-0.867,10.921],[6.792,10.058],[-7.835,11.581],[-10.001,8.379],[-0.391,12.339],[7.489,12.411],[-10.384,12.609],[-14.952,7.393],[18.618,7.955],[13.52,-9.053],[7.471,-7.206],[2.399,-16.305],[-7.572,-11.762],[13.902,-26.098],[-8.58,-24.42],[9.81,-18.19],[-0.836,-13.954],[-4.075,-11.99]],"v":[[2087,1434],[2085,1434],[2100,1498],[2047,1541],[2062,1572],[2078,1603],[2047,1632],[2021,1667],[2039,1703],[2055,1742],[2013,1770],[1973,1800],[2019,1788],[2062,1766],[2081,1745],[2063,1705],[2044,1666],[2103,1605],[2067,1542],[2114,1505],[2104,1466]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[10.092,5.908],[0.333,0],[-2.993,-20.531],[0.434,-21.634],[-5.662,-6.868],[-4.405,-10.173],[12.734,-33.266],[-5.954,-28.379],[16.167,-14.5],[5.509,-19.158],[-9.868,-32.798],[-5.596,7.018],[13.768,29.899],[-22.803,12.53],[-4.489,12.178],[7.647,29.019],[-13.7,15.3],[-3.777,11.223],[7.429,22.571],[-5.695,19.411],[4.537,13.049]],"o":[[-0.333,0],[-8.886,22.762],[-5.977,18.281],[-0.194,9.648],[7.709,9.351],[-26.483,19.517],[6.433,27.901],[-18.473,12.193],[-15.45,9.217],[16.947,25.72],[6.916,3.128],[-5.253,-38.414],[21.833,-13.501],[11.931,-4.735],[-7.27,-29.397],[6.85,-22.15],[9.755,-5.245],[-4.117,-25.883],[8.073,-17.358],[3.957,-13.487],[-6.22,-9.78]],"v":[[2090,1437],[2089,1437],[2101,1499],[2049,1541],[2067,1567],[2084,1594],[2023,1671],[2055,1742],[1999,1778],[1960,1813],[2008,1893],[2035,1893],[1989,1808],[2052,1765],[2083,1746],[2048,1671],[2082,1618],[2106,1597],[2073,1540],[2118,1506],[2107,1468]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[37.114,21.886],[0.235,-0.48],[-0.743,-0.218],[-12.313,-15.353],[-12.309,-15.358],[-20.564,-4.602],[-17.189,-7.979],[-12.704,-16.963],[-15.865,-13.802],[-29.219,-8.947],[-26.226,-11.941],[-11.338,-12.828],[-15.011,-9.155],[-8.607,-3.392],[-0.352,4.442],[6.855,8.479],[8.168,7.165],[15.798,15.202],[55.74,19.592],[31.673,30.327],[32.352,15.315]],"o":[[0.198,0.86],[-0.235,0.48],[9.439,18.228],[12.313,15.353],[14.554,10.612],[20.564,4.602],[12.32,17.346],[12.704,16.963],[25.897,12.27],[29.219,8.947],[10.636,13.531],[11.338,12.828],[6.583,5.417],[2.009,0.311],[-1.885,-13.448],[-8.669,-6.665],[-15.129,-15.87],[-50.696,-24.637],[-33.441,-28.558],[-33.884,-13.782],[-33.995,-25.006]],"v":[[2403,1567],[2402.591,1568.981],[2403,1570],[2436.348,1619.652],[2474,1665],[2529.024,1685.476],[2588,1702],[2624.842,1754.158],[2667,1801],[2751.254,1831.247],[2836,1861],[2868.218,1901.282],[2907,1935],[2930,1948],[2938,1949],[2915,1926],[2891,1904],[2848,1854],[2681,1795],[2598,1692],[2489,1658]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-37.994,-7.006],[7.611,2.389],[5.428,4.572],[7.575,2.425],[8.042,1.958],[11.928,13.245],[11.811,12.901],[4.43,4.505],[4.369,2.708],[6.173,2.32],[6.087,2.484],[19.514,6.059],[22.359,3.18],[8.392,10.274],[14.309,4.358],[0.511,-0.323],[0.367,-0.467],[-0.184,-0.85],[-27.384,-16.949],[-41.91,-16.423],[-35.364,-29.969]],"o":[[-3.129,-6.871],[-7.611,-2.389],[-8.658,-1.342],[-7.575,-2.425],[-13.476,-11.117],[-11.928,-13.245],[-3.909,-4.27],[-4.43,-4.505],[-5.222,-3.237],[-6.173,-2.32],[-18.586,-7.583],[-19.514,-6.059],[-11.122,-7.544],[-8.392,-10.274],[-0.591,0.242],[-0.511,0.323],[-0.61,0.057],[15.865,28.468],[53.478,4.856],[33.481,31.852],[32.662,12.339]],"v":[[3021,1983],[3003.225,1970.775],[2982,1962],[2958.038,1955.962],[2935,1949],[2897.251,1911.838],[2862,1872],[2849.345,1858.329],[2836,1847],[2818.648,1838.935],[2800,1832],[2743.329,1811.198],[2681,1797],[2653.89,1768.11],[2622,1744],[2620.332,1744.831],[2619,1746],[2618,1747],[2685,1813],[2821,1852],[2918,1951]],"c":true}],"h":1},{"t":7.2001953125,"s":[{"i":[[-9.824,19.842],[1.685,2.731],[2.113,2.303],[2.746,1.67],[3.584,0.833],[-0.465,-2.149],[-1.24,-1.787],[-1.156,-1.87],[-0.21,-2.398],[6.449,-3.904],[7.544,-2.856],[7.763,-2.51],[10.999,-4.636],[6.156,-9.627],[-2.677,-3.823],[-2.858,-3.642],[-4.957,-0.123],[-3.67,1.163],[2.842,3.658],[1.434,5.066],[-21.98,7.687]],"o":[[-1.462,-2.955],[-1.685,-2.731],[-2.113,-2.303],[-2.746,-1.67],[-1.172,2.955],[0.465,2.149],[1.24,1.787],[1.156,1.87],[-4.479,5.654],[-6.449,3.904],[-7.544,2.856],[-11.849,3.831],[-10.999,4.636],[0.435,6.065],[2.677,3.823],[4.503,-0.331],[4.957,0.123],[-2.196,-4.304],[-2.842,-3.658],[17.255,-12.412],[21.98,-7.686]],"v":[[2029,1895],[2024.33,1886.42],[2018.683,1878.817],[2011.444,1872.806],[2002,1869],[2001.154,1876.544],[2003.927,1882.336],[2007.736,1887.71],[2010,1894],[1993.388,1908.162],[1972.179,1918.127],[1949,1926],[1913.731,1937.653],[1887,1958],[1892.183,1972.317],[1901,1983],[1915.624,1983.124],[1929,1982],[1920.929,1970.571],[1914,1958],[1977.073,1932.073]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":8,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 17"},{"inv":false,"mode":"f","pt":{"a":1,"k":[{"t":2.4,"s":[{"i":[[-0.092,-0.425],[-6.033,-1.8],[-6.895,-0.939],[-6.789,-1.044],[-5.717,-2.116],[0.306,-5.417],[-0.06,-5.073],[-2.211,-3.12],[-6.147,0.444],[0.233,5.595],[0.459,5.73],[-0.254,5.881],[7.246,1.312],[7.624,1.2],[8.127,1.241],[6.667,-0.197],[0.197,-0.137]],"o":[[4.204,3.629],[6.033,1.8],[6.895,0.939],[6.789,1.044],[1.112,4.151],[-0.306,5.417],[0.06,5.073],[2.211,3.12],[0.933,-5.476],[-0.233,-5.595],[-0.459,-5.73],[-4.39,-4.55],[-7.246,-1.312],[-7.824,-1.232],[-8.127,-1.241],[-0.305,0.028],[-0.197,0.137]],"v":[[2233,1461],[2248.597,1468.903],[2268.23,1472.77],[2288.998,1475.502],[2308,1480],[2308.762,1494.754],[2307.947,1510.892],[2310.909,1523.584],[2323,1528],[2323.815,1511.398],[2322.543,1494.414],[2322,1477],[2303.926,1468.988],[2281,1466],[2256.632,1461.928],[2234,1460],[2233.202,1460.203]],"c":true}],"h":1},{"t":3.2,"s":[{"i":[[31.633,-1.632],[-12.147,-3.354],[-9.73,-5.769],[-2.323,-10.343],[-4.025,-8.642],[-16.479,-3.521],[-15.329,-4.67],[-3.159,-5.841],[-3.171,-5.83],[-3.866,-5.238],[-8.962,1.955],[5.167,9.333],[2.356,12.144],[1.94,2.06],[1.934,2.066],[26.349,11.651],[3.561,19.105]],"o":[[8.683,6.817],[12.147,3.353],[0.683,11.984],[2.323,10.343],[12.753,7.247],[16.479,3.521],[3.194,5.806],[3.159,5.841],[2.573,6.004],[3.866,5.238],[-1.976,-12.524],[-5.167,-9.333],[-2.306,-1.694],[-1.94,-2.06],[-28.156,-9.844],[-4.732,-17.935],[-21.105,-12.229]],"v":[[2240,1464],[2272.714,1477.786],[2307,1490],[2311.494,1523.506],[2321,1552],[2366.068,1566.932],[2415,1578],[2424.518,1595.482],[2434,1613],[2442.709,1631.469],[2461,1638],[2448.785,1606.715],[2436,1576],[2429.721,1570.279],[2424,1564],[2334,1540],[2322,1484]],"c":true}],"h":1},{"t":4,"s":[{"i":[[31.197,3.804],[-13.324,-5.009],[-9.684,-8.649],[-2.234,-9.933],[-4.251,-7.916],[-16.047,-3.786],[-14.127,-5.706],[-23.568,-21.099],[-36.599,-20.068],[-9.955,-15.568],[-24.647,1.414],[9.06,14.273],[10.009,13.324],[44.261,15.405],[21.416,25.25],[24.801,13.866],[5.482,16.518]],"o":[[8.019,10.314],[13.324,5.009],[1.813,10.354],[2.234,9.933],[12.685,7.149],[16.047,3.786],[16.617,28.05],[40.61,16.058],[9.198,14.814],[9.195,14.38],[-4.209,-19.124],[-8.817,-14.516],[-34.982,-24.684],[-25.985,-20.682],[-26.886,-11.781],[-6.413,-15.587],[-22.958,-15.375]],"v":[[2238,1457],[2272.252,1477.749],[2309,1496],[2314.672,1526.828],[2324,1554],[2368.418,1569.082],[2415,1582],[2470,1661],[2595,1706],[2625,1752],[2666,1787],[2639,1744],[2612,1701],[2483,1651],[2425,1569],[2336,1542],[2323,1489]],"c":true}],"h":1},{"t":4.8,"s":[{"i":[[31.528,7.472],[0,-1.333],[-18.23,-17.77],[-8.984,-15.016],[-24.455,-8.545],[-22.641,-27.359],[-38.461,-15.539],[-29.893,-28.107],[-27.879,-8.77],[-31.107,-1.981],[26.277,10.291],[27.657,7.823],[14.624,37.043],[39.884,17.116],[14.507,37.16],[27.001,5.999],[7.742,15.925]],"o":[[0,1.333],[16.739,19.261],[5.156,18.844],[24.846,8.154],[10.201,39.798],[35.603,18.397],[20.162,37.839],[28.101,11.334],[27.19,8.553],[-15.403,-22.547],[-27.21,-10.656],[-22.376,-29.29],[-34.44,-22.56],[-28.663,-23.003],[-20.298,-12.702],[-11.839,-11.828],[-22.428,-16.572]],"v":[[2242,1455],[2242,1459],[2312,1497],[2327,1554],[2408,1572],[2471,1659],[2590,1702],[2666,1800],[2751,1824],[2834,1851],[2761,1814],[2676,1789],[2611,1699],[2488,1651],[2421,1563],[2343,1542],[2326,1488]],"c":true}],"h":1},{"t":5.6,"s":[{"i":[[0.851,-0.184],[11.057,-12.943],[10.379,-13.621],[-6.908,-30.759],[18.887,-11.594],[2.353,-16.215],[-6.903,-10.856],[-4.008,-17.435],[20.565,-35.101],[-14.481,9.59],[-9.601,4.197],[-13.223,16.726],[12.83,32.503],[-21.875,34.457],[3.147,32.519],[-11.891,20.305],[3.758,6.935]],"o":[[-13.395,10.605],[-11.057,12.944],[-2.812,40.479],[-18.795,8.744],[-14.089,8.649],[-2.298,15.837],[9.468,14.891],[-35.145,20.522],[24.777,3.885],[8.404,-5.566],[19.25,-8.414],[-13.601,-31.732],[26.506,-29.827],[-10.079,-25.588],[8.651,-23.507],[2.967,-5.066],[-0.057,-0.61]],"v":[[2087,1590],[2050.738,1625.738],[2019,1666],[2055,1743],[2003,1775],[1956,1812],[1977,1856],[2000,1898],[1895,1960],[1949,1941],[1976,1927],[2031,1900],[1982,1813],[2078,1740],[2040,1671],[2084,1612],[2088,1591]],"c":true}],"h":1},{"t":6.4,"s":[{"i":[[-5.584,21.75],[2.473,0.527],[3.207,-0.207],[8.936,-7.897],[6.084,-10.749],[-9.352,-10.981],[-3.476,-16.856],[11.442,-4.724],[9.595,-6.572],[10.437,-22.23],[-6.545,-6.122],[-8.688,-0.688],[2.019,10.314],[-36.254,19.412],[-3.374,6.293],[8.813,16.854],[5.603,12.397]],"o":[[-1.902,-1.098],[-2.473,-0.527],[-11.173,5.661],[-8.936,7.898],[9.115,11.218],[9.352,10.981],[-6.635,9.532],[-11.442,4.724],[-20.116,12.551],[3.414,9.252],[7.979,-0.021],[-1.765,-10.569],[34.354,-21.313],[4.43,-5.236],[-5.486,-20.181],[-8.82,-9.18],[10.845,-16.488]],"v":[[2021,1772],[2014.479,1769.521],[2006,1769],[1975.684,1789.184],[1953,1817],[1982.229,1848.772],[2003,1889],[1974.22,1908.72],[1941,1924],[1880,1961],[1895,1984],[1918,1983],[1904,1960],[2018,1907],[2031,1891],[2005,1840],[1979,1812]],"c":true}],"h":1},{"t":7.2001953125,"s":[{"i":[[10.89,11.11],[17.942,-19.891],[24.93,-12.902],[3.497,1.67],[3.436,1.731],[14.115,-9.683],[7.015,-13.377],[-5.053,5.613],[-7.389,3.278],[-5.639,0.528],[-6.105,0.062],[-5.728,-2.272],[-8.722,0.722],[-17.146,18.188],[-21.341,13.992],[-11.161,-2.272],[-2.488,14.228]],"o":[[-24.3,13.533],[-17.942,19.891],[-4.578,-0.589],[-3.497,-1.67],[-23.523,-3.111],[-14.115,9.683],[7.397,-3.27],[5.053,-5.613],[5.34,-0.827],[5.639,-0.528],[5.364,2.635],[5.728,2.272],[22.076,-13.257],[17.146,-18.188],[5.868,5.141],[11.161,2.272],[-12.244,-9.756]],"v":[[3110,636],[3049.973,689.473],[2989,742],[2977.143,738.357],[2967,733],[2911.119,745.134],[2880,782],[2897.506,767.506],[2915,753],[2931.426,750.926],[2949,750],[2964.982,758.018],[2986,761],[3042.551,711.551],[3098,661],[3127.035,675.527],[3151,661]],"c":true}],"h":1}],"ix":1},"o":{"a":1,"k":[{"t":1.6,"s":[0],"h":1},{"t":2.4,"s":[100],"h":1},{"t":8,"s":[0],"h":1}],"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 18"}],"sw":4096,"sh":2304,"sc":"#ffffff","ip":0,"op":38,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"bob-x-(1)_0000s_0000_Vector-Smart-Object.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,517.5,0],"ix":2},"a":{"a":0,"k":[57,71,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"bob-x-(1)_0000s_0001_Vector-Smart-Object.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,67.5,0],"ix":2},"a":{"a":0,"k":[90,65.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":48,"s":[0,0,100]},{"t":79,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"bob-x-(1)_0000s_0002_Vector-Smart-Object.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,295.5,0],"ix":2},"a":{"a":0,"k":[220,194,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"bob-x-(1)_0000s_0003_Hue_Saturation-2-copy.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[538,295.5,0],"to":[34.333,0,0],"ti":[-34.333,0,0]},{"t":48,"s":[744,295.5,0]}],"ix":2},"a":{"a":0,"k":[120.5,141.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"bob-x-(1)_0000s_0004_Hue_Saturation-2.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[442,295.5,0],"to":[-30.667,0,0],"ti":[30.667,0,0]},{"t":48,"s":[258,295.5,0]}],"ix":2},"a":{"a":0,"k":[120.5,141.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":4320,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 0385e0c6..9cc51388 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -820,6 +820,7 @@ "special_mentions": "ذكر خاص", "tab_contributors": "المساهمون", "tab_special": "ذكر خاص", + "tab_donors": "المانحون", "manager_role": "مدير المجتمع", "manager_desc": "يدير مجتمعات Discord Ùˆ Reddit الخاصة بـ Nuvio", "sponsor_role": "راعي Ø§Ù„Ø³ÙŠØ±ÙØ±", @@ -833,6 +834,11 @@ "gratitude_desc": "كل سطر برمجي، بلاغ عن خطأ، واقتراح يساعد ÙÙŠ جعل Nuvio Ø£ÙØ¶Ù„ للجميع", "special_thanks_title": "شكر خاص", "special_thanks_desc": "هؤلاء الأشخاص الرائعون يساعدون ÙÙŠ Ø§Ù„Ø­ÙØ§Ø¸ على مجتمع Nuvio وتشغيل Ø§Ù„Ø³ÙŠØ±ÙØ±Ø§Øª", + "donors_desc": "شكراً لإيمانك بما نقوم ببناؤه. دعمك ÙŠØ­Ø§ÙØ¸ على Nuvio مجاناً ÙˆÙÙŠ تحسن مستمر.", + "latest_donations": "الأحدث", + "leaderboard": "الترتيب", + "loading_donors": "جاري تحميل المانحين…", + "no_donors": "لا يوجد مانحون حتى الآن", "error_rate_limit": "تم تجاوز حد معدل GitHub API. يرجى المحاولة لاحقاً أو التمرير للتحديث.", "error_failed": "ÙØ´Ù„ تحميل المساهمين. يرجى التحقق من اتصالك بالإنترنت.", "retry": "حاول مرة أخرى", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index f0ec8db1..cf95a991 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -833,6 +833,12 @@ "gratitude_desc": "Jede Zeile Code hilft", "special_thanks_title": "Besonderer Dank", "special_thanks_desc": "Diese erstaunlichen Menschen helfen", + "donors_desc": "Danke, dass Sie an das glauben, was wir aufbauen. Ihre Unterstützung hält Nuvio kostenlos und ständig verbessert.", + "tab_donors": "Spender", + "latest_donations": "Aktuell", + "leaderboard": "Bestenliste", + "loading_donors": "Spender werden geladen…", + "no_donors": "Noch keine Spender", "error_rate_limit": "GitHub API Rate Limit überschritten.", "error_failed": "Fehler beim Laden der Mitwirkenden.", "retry": "Erneut versuchen", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index f49df76d..ffc30ea2 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -820,6 +820,7 @@ "special_mentions": "Special Mentions", "tab_contributors": "Contributors", "tab_special": "Special Mentions", + "tab_donors": "Donors", "manager_role": "Community Manager", "manager_desc": "Manages the Discord & Reddit communities for Nuvio", "sponsor_role": "Server Sponsor", @@ -833,6 +834,11 @@ "gratitude_desc": "Each line of code, bug report, and suggestion helps make Nuvio better for everyone", "special_thanks_title": "Special Thanks", "special_thanks_desc": "These amazing people help keep the Nuvio community running and the servers online", + "donors_desc": "Thank you for believing in what we're building. Your support keeps Nuvio free and constantly improving.", + "latest_donations": "Latest", + "leaderboard": "Leaderboard", + "loading_donors": "Loading donors…", + "no_donors": "No donors yet", "error_rate_limit": "GitHub API rate limit exceeded. Please try again later or pull to refresh.", "error_failed": "Failed to load contributors. Please check your internet connection.", "retry": "Try Again", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 44618de1..f5a532af 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -820,6 +820,7 @@ "special_mentions": "Menciones especiales", "tab_contributors": "Colaboradores", "tab_special": "Menciones especiales", + "tab_donors": "Donantes", "manager_role": "Community Manager", "manager_desc": "Gestiona las comunidades de Discord y Reddit para Nuvio", "sponsor_role": "Patrocinador del servidor", @@ -833,6 +834,11 @@ "gratitude_desc": "Cada línea de código, informe de fallo y sugerencia ayuda a mejorar Nuvio para todos", "special_thanks_title": "Agradecimientos especiales", "special_thanks_desc": "Estas personas increíbles ayudan a mantener la comunidad de Nuvio en marcha y los servidores online", + "donors_desc": "Gracias por creer en lo que estamos construyendo. Tu apoyo mantiene Nuvio gratis y en constante mejora.", + "latest_donations": "Recientes", + "leaderboard": "Clasificación", + "loading_donors": "Cargando donantes…", + "no_donors": "Sin donantes aún", "error_rate_limit": "Se superó el límite de la API de GitHub. Inténtalo de nuevo más tarde o desliza para actualizar.", "error_failed": "Error al cargar los colaboradores. Comprueba tu conexión a internet.", "retry": "Reintentar", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 37b8aeba..9c2f9341 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -820,6 +820,7 @@ "special_mentions": "Mentions spéciales", "tab_contributors": "Contributeurs", "tab_special": "Mentions spéciales", + "tab_donors": "Donateurs", "manager_role": "Responsable de communauté", "manager_desc": "Gère les communautés Discord et Reddit pour Nuvio", "sponsor_role": "Sponsor serveur", @@ -833,6 +834,11 @@ "gratitude_desc": "Chaque ligne de code, rapport de bug et suggestion aide à rendre Nuvio meilleur pour tous", "special_thanks_title": "Remerciements spéciaux", "special_thanks_desc": "Ces personnes formidables aident à faire fonctionner la communauté Nuvio et à maintenir les serveurs en ligne", + "donors_desc": "Merci de croire en ce que nous construisons. Votre soutien garde Nuvio gratuit et en constant progrès.", + "latest_donations": "Récents", + "leaderboard": "Classement", + "loading_donors": "Chargement des donateurs…", + "no_donors": "Pas encore de donateurs", "error_rate_limit": "Limite de débit de l'API GitHub dépassée. Veuillez réessayer plus tard ou faire glisser pour actualiser.", "error_failed": "Échec du chargement des contributeurs. Veuillez vérifier votre connexion Internet.", "retry": "Réessayer", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 7abaa826..6482b4f8 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -820,6 +820,7 @@ "special_mentions": "Posebna priznanja", "tab_contributors": "Doprinositelji", "tab_special": "Posebna priznanja", + "tab_donors": "Donatori", "manager_role": "Community Manager", "manager_desc": "Upravlja Discord i Reddit zajednicama za Nuvio", "sponsor_role": "Sponzor poslužitelja", @@ -833,6 +834,11 @@ "gratitude_desc": "Svaka linija koda, prijava greÅ¡ke i prijedlog pomaže uÄiniti Nuvio boljim za sve", "special_thanks_title": "Posebna zahvala", "special_thanks_desc": "Ovi nevjerojatni ljudi pomažu održavati Nuvio zajednicu aktivnom i poslužitelje online", + "donors_desc": "Hvala Å¡to vjerujete u ono Å¡to gradimo. VaÅ¡a podrÅ¡ka Äini Nuvio besplatnim i neprestano poboljÅ¡anim.", + "latest_donations": "Nedavno", + "leaderboard": "Ljestvica", + "loading_donors": "UÄitavanje donatora…", + "no_donors": "JoÅ¡ nema donatora", "error_rate_limit": "PrekoraÄeno ograniÄenje GitHub API-ja. Molimo pokuÅ¡ajte ponovo kasnije ili povucite za osvježavanje.", "error_failed": "UÄitavanje doprinositelja nije uspjelo. Molimo provjerite svoju internetsku vezu.", "retry": "PokuÅ¡aj ponovo", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index bdbaae59..a70dc127 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -820,6 +820,7 @@ "special_mentions": "Menzioni speciali", "tab_contributors": "Collaboratori", "tab_special": "Menzioni speciali", + "tab_donors": "Donatori", "manager_role": "Community Manager", "manager_desc": "Gestisce le community Discord e Reddit per Nuvio", "sponsor_role": "Sponsor del Server", @@ -833,6 +834,11 @@ "gratitude_desc": "Ogni riga di codice, segnalazione di bug e suggerimento aiuta a rendere Nuvio migliore per tutti", "special_thanks_title": "Ringraziamenti speciali", "special_thanks_desc": "Queste persone fantastiche aiutano a mantenere attiva la community di Nuvio e i server online", + "donors_desc": "Grazie per credere in quello che stiamo costruendo. Il vostro supporto mantiene Nuvio gratuito e in continuo miglioramento.", + "latest_donations": "Recenti", + "leaderboard": "Classifica", + "loading_donors": "Caricamento donatori…", + "no_donors": "Nessun donatore ancora", "error_rate_limit": "Limite di frequenza API GitHub superato. Riprova più tardi o trascina per aggiornare.", "error_failed": "Impossibile caricare i collaboratori. Controlla la tua connessione internet.", "retry": "Riprova", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index df08a63b..8afdc591 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -834,6 +834,7 @@ "special_mentions": "Menções Especiais", "tab_contributors": "Contribuidores", "tab_special": "Menções Especiais", + "tab_donors": "Doadores", "manager_role": "Gerente da Comunidade", "manager_desc": "Gerencia as comunidades do Discord e Reddit", "sponsor_role": "Patrocinador do Servidor", @@ -847,6 +848,11 @@ "gratitude_desc": "Cada linha de código, relatório de bug e sugestão ajuda a tornar o Nuvio melhor para todos", "special_thanks_title": "Agradecimentos Especiais", "special_thanks_desc": "Essas pessoas incríveis ajudam a manter a comunidade Nuvio funcionando e os servidores online", + "donors_desc": "Obrigado por acreditar no que estamos construindo. Seu apoio mantém o Nuvio gratuito e continuamente melhorando.", + "latest_donations": "Recentes", + "leaderboard": "Placar", + "loading_donors": "Carregando doadores…", + "no_donors": "Sem doadores ainda", "error_rate_limit": "Limite de taxa da API do GitHub excedido. Tente novamente mais tarde.", "error_failed": "Falha ao carregar colaboradores. Verifique sua conexão com a internet.", "retry": "Tentar Novamente", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index f6dc928b..3b1c9151 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -834,6 +834,7 @@ "special_mentions": "Menções Especiais", "tab_contributors": "Contribuidores", "tab_special": "Menções Especiais", + "tab_donors": "Doadores", "manager_role": "Gestor da Comunidade", "manager_desc": "Gere as comunidades do Discord e Reddit", "sponsor_role": "Patrocinador do Servidor", @@ -847,6 +848,11 @@ "gratitude_desc": "Cada linha de código, relatório de bug e sugestão ajuda a tornar o Nuvio melhor para todos", "special_thanks_title": "Agradecimentos Especiais", "special_thanks_desc": "Essas pessoas incríveis ajudam a manter a comunidade Nuvio a funcionar e os servidores online", + "donors_desc": "Obrigado por acreditar no que estamos a construir. O seu apoio mantém o Nuvio gratuito e continuamente a melhorar.", + "latest_donations": "Recentes", + "leaderboard": "Placar", + "loading_donors": "A carregar doadores…", + "no_donors": "Sem doadores ainda", "error_rate_limit": "Limite de taxa da API do GitHub excedido. Tenta novamente mais tarde.", "error_failed": "Falha ao carregar colaboradores. Verifica a tua conexão com a internet.", "retry": "Tentar Novamente", diff --git a/src/screens/ContributorsScreen.tsx b/src/screens/ContributorsScreen.tsx index 652809d8..318e4eba 100644 --- a/src/screens/ContributorsScreen.tsx +++ b/src/screens/ContributorsScreen.tsx @@ -20,11 +20,13 @@ import { useNavigation } from '@react-navigation/native'; import { NavigationProp } from '@react-navigation/native'; import FastImage from '@d11/react-native-fast-image'; import { Feather, FontAwesome5 } from '@expo/vector-icons'; +import LottieView from 'lottie-react-native'; import { useTheme } from '../contexts/ThemeContext'; import { useTranslation } from 'react-i18next'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { fetchContributors, GitHubContributor } from '../services/githubReleaseService'; import { RootStackParamList } from '../navigation/AppNavigator'; +import { Donation, getDonationsWithCache } from '../services/donationsService'; const { width, height } = Dimensions.get('window'); const isTablet = width >= 768; @@ -77,7 +79,10 @@ const getSpecialMentionsConfig = (t: any) => [ }, ]; -type TabType = 'contributors' | 'special'; +type TabType = 'contributors' | 'special' | 'donors'; + +type DonorsTabType = 'latest' | 'leaderboard'; + interface ContributorCardProps { contributor: GitHubContributor; @@ -237,6 +242,65 @@ const SpecialMentionCard: React.FC = ({ mention, curren ); }; +interface DonorCardProps { + donor: Donation; + currentTheme: any; + isTablet: boolean; +} + +const DonorCard: React.FC = ({ donor, currentTheme, isTablet }) => { + const formatDonationDate = (dateString?: string) => { + if (!dateString) return ''; + try { + const date = new Date(dateString); + if (isNaN(date.getTime())) return dateString; + + return date.toLocaleDateString(undefined, { + year: 'numeric', + month: 'short', + day: 'numeric', + }); + } catch { + return dateString; + } + }; + + return ( + + + $ + + + + {donor.name} + + + {donor.amount.toFixed(2)} {donor.currency} · {formatDonationDate(donor.date)} + + {donor.message ? ( + + {donor.message} + + ) : null} + + + ); +}; + const ContributorsScreen: React.FC = () => { const { t } = useTranslation(); const navigation = useNavigation>(); @@ -245,13 +309,105 @@ const ContributorsScreen: React.FC = () => { const SPECIAL_MENTIONS_CONFIG = getSpecialMentionsConfig(t); - const [activeTab, setActiveTab] = useState('contributors'); + const [activeTab, setActiveTab] = useState('donors'); const [contributors, setContributors] = useState([]); const [loading, setLoading] = useState(true); const [refreshing, setRefreshing] = useState(false); const [error, setError] = useState(null); const [specialMentions, setSpecialMentions] = useState([]); const [specialMentionsLoading, setSpecialMentionsLoading] = useState(true); + const [donations, setDonations] = useState([]); + const [donationsLoading, setDonationsLoading] = useState(false); + const [donationsRefreshing, setDonationsRefreshing] = useState(false); + const [donationsError, setDonationsError] = useState(null); + const [donorsTab, setDonorsTab] = useState('leaderboard'); + + const getDonationTs = useCallback((dateValue?: string) => { + if (!dateValue) return 0; + const ts = Date.parse(dateValue); + return Number.isFinite(ts) ? ts : 0; + }, []); + + const formatDonationDate = useCallback((dateString?: string) => { + if (!dateString) return ''; + try { + const date = new Date(dateString); + if (isNaN(date.getTime())) return dateString; + + // Use locale-aware formatting + return date.toLocaleDateString(undefined, { + year: 'numeric', + month: 'short', + day: 'numeric', + }); + } catch { + return dateString; + } + }, []); + + const latestDonations = React.useMemo(() => { + return donations + .slice() + .sort((a, b) => getDonationTs(b.date) - getDonationTs(a.date)); + }, [donations, getDonationTs]); + + const leaderboardDonations = React.useMemo(() => { + const map = new Map(); + for (const d of donations) { + const name = (d.name || 'Supporter').trim() || 'Supporter'; + const currency = d.currency || 'USD'; + const key = `${name}__${currency}`; + const existing = map.get(key); + const amount = Number.isFinite(d.amount) ? d.amount : 0; + const ts = getDonationTs(d.date); + if (!existing) { + map.set(key, { + name, + currency, + total: amount, + count: 1, + lastDate: d.date, + }); + } else { + const existingTs = getDonationTs(existing.lastDate); + map.set(key, { + ...existing, + total: existing.total + amount, + count: existing.count + 1, + lastDate: ts > existingTs ? d.date : existing.lastDate, + }); + } + } + + const sorted = Array.from(map.values()).sort((a, b) => b.total - a.total); + + let lastTotal: number | null = null; + let lastRank = 0; + + return sorted.map((entry, index) => { + const rank = lastTotal !== null && entry.total === lastTotal ? lastRank : index + 1; + lastTotal = entry.total; + lastRank = rank; + return { + ...entry, + rank, + }; + }); + }, [donations, getDonationTs]); + + const getInitials = useCallback((name: string) => { + const parts = name.trim().split(/\s+/).filter(Boolean); + if (parts.length === 0) return 'U'; + if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase(); + return `${parts[0][0]}${parts[1][0]}`.toUpperCase(); + }, []); + + const getRankAnimation = useCallback((rank: number) => { + if (rank === 1) return require('../../assets/lottie/ranking/gold.json'); + if (rank === 2) return require('../../assets/lottie/ranking/silver.json'); + if (rank === 3) return require('../../assets/lottie/ranking/bronze.json'); + return null; + }, []); // Fetch Discord user data for special mentions const loadSpecialMentions = useCallback(async () => { @@ -309,6 +465,33 @@ const ContributorsScreen: React.FC = () => { } }, [activeTab, specialMentions.length, loadSpecialMentions]); + const loadDonations = useCallback(async (isRefresh = false) => { + try { + setDonationsError(null); + if (isRefresh) { + setDonationsRefreshing(true); + } else { + setDonationsLoading(true); + } + const data = await getDonationsWithCache(isRefresh); + setDonations(Array.isArray(data) ? data : []); + } catch (e) { + if (__DEV__) console.error('Error loading donations:', e); + setDonationsError('Failed to load donors.'); + setDonations([]); + } finally { + setDonationsLoading(false); + setDonationsRefreshing(false); + } + }, []); + + useEffect(() => { + if (activeTab === 'donors') { + // Force refresh on tab open so new donations appear quickly + loadDonations(true); + } + }, [activeTab, loadDonations]); + const loadContributors = useCallback(async (isRefresh = false) => { try { if (isRefresh) { @@ -486,6 +669,23 @@ const ContributorsScreen: React.FC = () => { { backgroundColor: currentTheme.colors.elevation1 }, isTablet && styles.tabletTabSwitcher ]}> + setActiveTab('donors')} + activeOpacity={0.7} + > + + {t('contributors.tab_donors')} + + { - {activeTab === 'contributors' ? ( + {activeTab === 'donors' ? ( + // Donors Tab + loadDonations(true)} + tintColor={currentTheme.colors.primary} + colors={[currentTheme.colors.primary]} + /> + } + showsVerticalScrollIndicator={false} + > + + + + + {t('contributors.tab_donors')} + + + {t('contributors.donors_desc')} + + + + + {/* Donors sub-tabs */} + + setDonorsTab('leaderboard')} + activeOpacity={0.7} + > + + {t('contributors.leaderboard')} + + + setDonorsTab('latest')} + activeOpacity={0.7} + > + + {t('contributors.latest_donations')} + + + + + {donationsLoading ? ( + + + {t('contributors.loading_donors')} + + ) : donationsError ? ( + + + + {donationsError} + + loadDonations(true)} + > + {t('common.retry')} + + + ) : donations.length === 0 ? ( + + + {t('contributors.no_donors')} + + ) : ( + donorsTab === 'latest' ? ( + latestDonations.map((donor, index) => ( + + )) + ) : ( + leaderboardDonations.map((entry, index) => ( + + + {getRankAnimation(entry.rank) ? ( + + {entry.rank} + + + ) : ( + {entry.rank} + )} + + + + {entry.name} + + + {entry.total.toFixed(2)} {entry.currency} · {entry.count} {entry.count === 1 ? 'donation' : 'donations'} + + + Rank #{entry.rank} · Last: {formatDonationDate(entry.lastDate)} + + + + )) + ) + )} + + ) : activeTab === 'contributors' ? ( // Contributors Tab <> {error ? ( @@ -606,7 +967,7 @@ const ContributorsScreen: React.FC = () => {
)} - ) : ( + ) : activeTab === 'special' ? ( // Special Mentions Tab { /> ))} - )} + ) : null} @@ -931,6 +1292,81 @@ const styles = StyleSheet.create({ tabletTabText: { fontSize: 16, }, + subTabSwitcher: { + flexDirection: 'row', + marginBottom: 16, + padding: 4, + borderRadius: 12, + }, + subTab: { + flex: 1, + paddingVertical: 10, + paddingHorizontal: 12, + borderRadius: 10, + alignItems: 'center', + justifyContent: 'center', + }, + subTabText: { + fontSize: 13, + fontWeight: '600', + }, + leaderboardCard: { + flexDirection: 'row', + alignItems: 'center', + padding: 16, + marginBottom: 12, + borderRadius: 16, + borderWidth: 1, + borderColor: 'rgba(255,255,255,0.06)', + shadowColor: '#000', + shadowOffset: { width: 0, height: 2 }, + shadowOpacity: 0.12, + shadowRadius: 6, + elevation: 4, + }, + leaderboardAvatar: { + width: 100, + height: 100, + marginRight: 16, + alignItems: 'center', + justifyContent: 'center', + }, + leaderboardBadge: { + width: 100, + height: 100, + alignItems: 'center', + justifyContent: 'center', + }, + leaderboardLottie: { + width: 100, + height: 100, + }, + leaderboardRankText: { + position: 'absolute', + fontSize: 18, + fontWeight: '800', + }, + donorAvatar: { + width: 60, + height: 60, + borderRadius: 30, + marginRight: 16, + backgroundColor: DISCORD_BRAND_COLOR, + alignItems: 'center', + justifyContent: 'center', + }, + donorAvatarText: { + fontSize: 22, + fontWeight: '800', + }, + donorAmount: { + fontSize: 14, + marginBottom: 4, + }, + donorMessage: { + fontSize: 13, + lineHeight: 18, + }, }); export default ContributorsScreen; diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index 386d511c..3cd2db1f 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -807,6 +807,13 @@ const SettingsScreen: React.FC = () => { {/* About */} + } + onPress={() => navigation.navigate('Contributors')} + /> = ({ onPress={handleVersionTap} isTablet={isTablet} /> - } - onPress={() => navigation.navigate('Contributors')} - isLast={!developerModeEnabled} - isTablet={isTablet} - /> + {developerModeEnabled && ( { + if (!DONATIONS_API_URL) return []; + const res = await fetch(`${DONATIONS_API_URL.replace(/\/$/, '')}/api/donations?limit=200`); + if (!res.ok) throw new Error(`Donations API failed: ${res.status}`); + const json = await res.json(); + const donations = json?.donations; + if (!Array.isArray(donations)) return []; + return donations; +} + +export async function getDonationsWithCache(forceRefresh = false): Promise { + const CACHE_KEY = 'donations_cache_v1'; + const TS_KEY = 'donations_cache_ts_v1'; + const TTL_MS = 10 * 60 * 1000; // 10 minutes + + if (!forceRefresh) { + try { + const cached = await mmkvStorage.getItem(CACHE_KEY); + const ts = await mmkvStorage.getItem(TS_KEY); + if (cached && ts) { + const age = Date.now() - parseInt(ts, 10); + if (Number.isFinite(age) && age < TTL_MS) { + const parsed = JSON.parse(cached); + if (Array.isArray(parsed)) return parsed; + } + } + } catch { + // ignore cache failures + } + } + + const donations = await fetchDonations(); + try { + await mmkvStorage.setItem(CACHE_KEY, JSON.stringify(donations)); + await mmkvStorage.setItem(TS_KEY, Date.now().toString()); + } catch { + // ignore cache failures + } + + return donations; +} diff --git a/src/services/trailerService.ts b/src/services/trailerService.ts index 8e73667c..1b7f4bbf 100644 --- a/src/services/trailerService.ts +++ b/src/services/trailerService.ts @@ -11,13 +11,10 @@ export class TrailerService { private static readonly ENV_LOCAL_BASE = process.env.EXPO_PUBLIC_TRAILER_LOCAL_BASE || 'http://46.62.173.157:3001'; private static readonly ENV_LOCAL_TRAILER_PATH = process.env.EXPO_PUBLIC_TRAILER_LOCAL_TRAILER_PATH || '/trailer'; private static readonly ENV_LOCAL_SEARCH_PATH = process.env.EXPO_PUBLIC_TRAILER_LOCAL_SEARCH_PATH || '/search-trailer'; - private static readonly ENV_XPRIME_URL = process.env.EXPO_PUBLIC_XPRIME_URL || 'https://db.xprime.tv/trailers'; - private static readonly XPRIME_URL = TrailerService.ENV_XPRIME_URL; private static readonly LOCAL_SERVER_URL = `${TrailerService.ENV_LOCAL_BASE}${TrailerService.ENV_LOCAL_TRAILER_PATH}`; private static readonly AUTO_SEARCH_URL = `${TrailerService.ENV_LOCAL_BASE}${TrailerService.ENV_LOCAL_SEARCH_PATH}`; private static readonly TIMEOUT = 20000; // 20 seconds - private static readonly USE_LOCAL_SERVER = true; // Toggle between local and XPrime /** * Fetches trailer URL for a given title and year @@ -28,20 +25,8 @@ export class TrailerService { * @returns Promise - The trailer URL or null if not found */ static async getTrailerUrl(title: string, year: number, tmdbId?: string, type?: 'movie' | 'tv'): Promise { - logger.info('TrailerService', `getTrailerUrl requested: title="${title}", year=${year}, tmdbId=${tmdbId || 'n/a'}, type=${type || 'n/a'}, useLocal=${this.USE_LOCAL_SERVER}`); - if (this.USE_LOCAL_SERVER) { - // Try local server first, fallback to XPrime if it fails - const localResult = await this.getTrailerFromLocalServer(title, year, tmdbId, type); - if (localResult) { - // logger.info('TrailerService', 'Returning trailer URL from local server'); - return localResult; - } - - logger.info('TrailerService', `Local server failed, falling back to XPrime for: ${title} (${year})`); - return this.getTrailerFromXPrime(title, year); - } else { - return this.getTrailerFromXPrime(title, year); - } + logger.info('TrailerService', `getTrailerUrl requested: title="${title}", year=${year}, tmdbId=${tmdbId || 'n/a'}, type=${type || 'n/a'}`); + return this.getTrailerFromLocalServer(title, year, tmdbId, type); } /** @@ -150,68 +135,10 @@ export class TrailerService { url: url }); } - return null; // Return null to trigger XPrime fallback - } - } - - /** - * Fetches trailer from XPrime API (original method) - * @param title - The movie/series title - * @param year - The release year - * @returns Promise - The trailer URL or null if not found - */ - private static async getTrailerFromXPrime(title: string, year: number): Promise { - try { - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), this.TIMEOUT); - - const url = `${this.XPRIME_URL}?title=${encodeURIComponent(title)}&year=${year}`; - - logger.info('TrailerService', `Fetching trailer from XPrime for: ${title} (${year})`); - logger.info('TrailerService', `XPrime request URL: ${url}`); - logger.info('TrailerService', `XPrime timeout set to ${this.TIMEOUT}ms`); - - const response = await fetch(url, { - method: 'GET', - headers: { - 'Accept': 'text/plain', - 'User-Agent': 'Nuvio/1.0', - }, - signal: controller.signal, - }); - - clearTimeout(timeoutId); - - logger.info('TrailerService', `XPrime response: status=${response.status} ok=${response.ok}`); - if (!response.ok) { - logger.warn('TrailerService', `XPrime failed: ${response.status} ${response.statusText}`); - return null; - } - - const trailerUrl = await response.text(); - logger.info('TrailerService', `XPrime raw URL length: ${trailerUrl ? trailerUrl.length : 0}`); - - if (!trailerUrl || !this.isValidTrailerUrl(trailerUrl.trim())) { - logger.warn('TrailerService', `Invalid trailer URL from XPrime: ${trailerUrl}`); - return null; - } - - const cleanUrl = trailerUrl.trim(); - logger.info('TrailerService', `Successfully fetched trailer from XPrime: ${cleanUrl}`); - - return cleanUrl; - } catch (error) { - if (error instanceof Error && error.name === 'AbortError') { - logger.warn('TrailerService', `XPrime request timed out after ${this.TIMEOUT}ms`); - } else { - const msg = error instanceof Error ? `${error.name}: ${error.message}` : String(error); - logger.error('TrailerService', `Error fetching from XPrime: ${msg}`); - } return null; } } - /** * Validates if the provided string is a valid trailer URL * @param url - The URL to validate @@ -389,42 +316,39 @@ export class TrailerService { } /** - * Switch between local server and XPrime API - * @param useLocal - true for local server, false for XPrime + * Switch between local server (deprecated - always uses local server now) + * @param useLocal - true for local server (always true now) */ static setUseLocalServer(useLocal: boolean): void { - (this as any).USE_LOCAL_SERVER = useLocal; - logger.info('TrailerService', `Switched to ${useLocal ? 'local server' : 'XPrime API'}`); + if (!useLocal) { + logger.warn('TrailerService', 'XPrime API is no longer supported. Always using local server.'); + } + logger.info('TrailerService', 'Using local server'); } /** * Get current server status * @returns object with server information */ - static getServerStatus(): { usingLocal: boolean; localUrl: string; xprimeUrl: string; fallbackEnabled: boolean } { + static getServerStatus(): { usingLocal: boolean; localUrl: string } { return { - usingLocal: this.USE_LOCAL_SERVER, + usingLocal: true, localUrl: this.LOCAL_SERVER_URL, - xprimeUrl: this.XPRIME_URL, - fallbackEnabled: true // Always enabled now }; } /** - * Test both servers and return their status + * Test local server and return its status * @returns Promise with server status information */ static async testServers(): Promise<{ localServer: { status: 'online' | 'offline'; responseTime?: number }; - xprimeServer: { status: 'online' | 'offline'; responseTime?: number }; }> { - logger.info('TrailerService', 'Testing servers (local and XPrime)'); + logger.info('TrailerService', 'Testing local server'); const results: { localServer: { status: 'online' | 'offline'; responseTime?: number }; - xprimeServer: { status: 'online' | 'offline'; responseTime?: number }; } = { - localServer: { status: 'offline' }, - xprimeServer: { status: 'offline' } + localServer: { status: 'offline' } }; // Test local server @@ -446,26 +370,7 @@ export class TrailerService { logger.warn('TrailerService', `Local server test failed: ${msg}`); } - // Test XPrime server - try { - const startTime = Date.now(); - const response = await fetch(`${this.XPRIME_URL}?title=test&year=2023`, { - method: 'GET', - signal: AbortSignal.timeout(5000) // 5 second timeout - }); - if (response.ok || response.status === 404) { // 404 is ok, means server is running - results.xprimeServer = { - status: 'online', - responseTime: Date.now() - startTime - }; - logger.info('TrailerService', `XPrime server online. Response time: ${results.xprimeServer.responseTime}ms`); - } - } catch (error) { - const msg = error instanceof Error ? `${error.name}: ${error.message}` : String(error); - logger.warn('TrailerService', `XPrime server test failed: ${msg}`); - } - - logger.info('TrailerService', `Server test results -> local: ${results.localServer.status}, xprime: ${results.xprimeServer.status}`); + logger.info('TrailerService', `Server test results -> local: ${results.localServer.status}`); return results; } } From d09625ebbd2168285d407e23f43782348b3f44b4 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 25 Jan 2026 16:34:35 +0530 Subject: [PATCH 44/58] optimized bufferConfig ExoPlayer --- Transaction_All.csv | 27 ------------------- .../android/components/VideoSurface.tsx | 10 +++++++ 2 files changed, 10 insertions(+), 27 deletions(-) delete mode 100644 Transaction_All.csv diff --git a/Transaction_All.csv b/Transaction_All.csv deleted file mode 100644 index 0613dec0..00000000 --- a/Transaction_All.csv +++ /dev/null @@ -1,27 +0,0 @@ -DateTime (UTC),"From","Message","Item","Received","Given","Currency","TransactionType","TransactionId","Reference","SalesTax","SalesTaxPercentage","SalesTaxIncludesShipping","BuyerCountry","BuyerStateOrProvince","BuyerEmail","PaymentProvider","DiscordUsername" -"06/24/2025 22:48","Nunie","This is from Taz just showing some love for your work","Ko-fi Support","10.00","0","USD","Tip","d23c58ab-8165-472f-9af5-af76b99fe196","T-Q5Q61GZKB0","","","","","","nunie661@gmail.com","PayPal","" -"07/03/2025 16:17","wildkazoos","Hope this helps get the testflight going! Good luck!","Ko-fi Support","5.00","0","USD","Tip","cb61f5a7-7cbe-41b2-9456-4ec3a7fdcc5a","T-A0A21HG9NY","","","","","","kazoos.wildcat.7y@icloud.com","PayPal","wildkazoos#0" -"07/06/2025 20:01","Nunie","Love what your doing to the community keep it up and looking forward to android tv","Ko-fi Support","10.00","0","USD","Tip","7a1dd5fd-6c42-428d-a150-600ceecd0bb9","T-G2G71HMJW5","","","","","","nunie661@gmail.com","PayPal","" -"09/11/2025 14:03","ak061","Great app","Ko-fi Support","10.00","0","USD","Tip","c4b10e74-9c3c-49ab-b32e-9b002c34ea58","T-C0C31L3IB8","","","","","","promoemails0501@gmail.com","PayPal","" -"09/16/2025 15:32","Gesti","","Ko-fi Support","10.00","0","USD","Tip","eb47a9a4-87ce-48bb-b78d-e2013e220b03","T-H2H61LCN1Y","","","","","","gestii97@gmail.com","PayPal","" -"09/18/2025 23:17","MK","Keep up the good work! Much love and support!","Ko-fi Support","50.00","0","USD","Tip","0d6d63e8-312b-48e1-ad45-a9f6bf375fda","T-G2G01LH03X","","","","","","mk90@windowslive.com","PayPal","mk90.#0" -"09/21/2025 02:43","Din","","Ko-fi Support","10.00","0","USD","Tip","751dd75f-1088-46c8-9abe-777117c105e7","T-Z8Z61LL2OW","","","","","","greksoft@ymail.com","PayPal","dinny.#0" -"09/23/2025 15:28","TheAdamsFamily","","Ko-fi Support","5.00","0","USD","Tip","fcfee7b8-cace-4190-bf9e-6cd776a58e02","T-F1A51LPUXP","","","","","","adam.gee@live.co.uk","PayPal","Not connected" -"10/15/2025 00:54","Capillary9835","","Ko-fi Support","5.00","0","USD","Tip","815ce820-4294-413e-9b4c-6999cf2e6de3","T-E1E41MU2KD","","","","","","07yq1ws7@duck.com","PayPal","capillary9835#0" -"10/19/2025 14:07","oma ","thank you for the app you've made it's absolutely amazing and the fact it's free <3","Ko-fi Support","10.00","0","USD","Tip","bfa6404c-4ac3-431c-bcb1-164d049b7c8c","T-K3K11N2ANR","","","","","","omar@amgu.com","PayPal","" -"10/30/2025 03:23","Rob ðŸ¶","i like to support all stremio app devs, thank you!","Ko-fi Support","5.00","0","USD","Tip","29887b4c-80f6-471a-9649-b33766579a3f","T-G2G01NLYW5","","","","","","robert.koteski@hotmail.com","PayPal","" -"11/11/2025 16:54","Ko-fi Supporter","Keep going...","Ko-fi Support","10.00","0","USD","Tip","1a96aad4-e3b5-4c83-bb08-ff797038ea09","T-F1F71OA1C7","","","","","","deepcity88@duck.com","PayPal","" -"11/14/2025 07:43","EvanderMegaton","I want to support every developer who does something related to my favorite hobby. Thank you! There is only one problem: there is no Android TV version, and therefore, $5 is for everything you have done so far, and $5 is my investment, stimulation for the TV version of the app :)","Ko-fi Support","10.00","0","USD","Tip","c8623031-36b5-4288-8171-0bc4fbf9ee54","T-C0C21OF41Y","","","","","","velimir.saban@gmail.com","PayPal","" -"11/19/2025 17:23","Jx","","Ko-fi Support","5.00","0","USD","Tip","fca4c0e4-cfaa-4488-8f40-84f1cd97ec8e","T-P5P11ORGGH","","","","","","xavier.bento@gmail.com","PayPal","jxb0532_89330#0" -"12/09/2025 20:09","Marcojaco","Thanks ","Ko-fi Support","5.00","0","USD","Tip","e4fec6ba-e4db-4d7a-b580-bd8941acf52f","T-U6U71PZLCX","","","","","","marcojaco32@gmail.com","PayPal","" -"12/15/2025 22:07","Razz","Best movies app I've seen to date!! Amazing work and long may it continue! Appreciated ðŸ‘ðŸ»","Ko-fi Support","7.00","0","USD","Tip","b4a59c25-3eda-4219-b8ea-f0eea8048bf6","T-O4O51QCM3T","","","","","","russellcausier@gmail.com","PayPal","razzthekid82#0" -"12/16/2025 18:58","Disc ~ george.epub","","Ko-fi Support","20.00","0","USD","Tip","870c51de-c26f-4e4c-80ae-28202325f861","T-P5P11QECFI","","","","","","georgegaines7@gmail.com","PayPal","Not connected" -"12/24/2025 13:45","LexTutor","","Ko-fi Support","10.00","0","USD","Tip","043da538-8f03-4126-83d8-5148ecacf25b","T-U7U31QVQ69","","","","","","arditmemollathe@gmail.com","PayPal","ardit6991#0" -"12/25/2025 13:22","Ko-fi Supporter","","Ko-fi Support","5.00","0","USD","Tip","700b1d65-3137-4984-8fc0-86921dccd008","T-F1F11QY1G7","","","","","","watsonzach12@gmail.com","PayPal","" -"12/25/2025 22:58","Ko-fi Supporter","","Ko-fi Support","5.00","0","USD","Tip","c5935dfc-2606-47e4-a3de-e84c20ba816c","T-U7U11QZ4NK","","","","","","jason@jasonboshears.com","PayPal","Not connected" -"12/29/2025 09:11","Grape Juice","","Ko-fi Support","5.00","0","USD","Tip","b04ac2de-282b-40a8-8f8e-561008b1b624","T-L3L31R7L7U","","","","","","grapejuice897@gmail.com","PayPal","grapedjuice#0" -"12/30/2025 01:26","Orlando","","Ko-fi Support","5.00","0","USD","Tip","a8e12e23-2e8a-4aae-b88c-5b84a91e0525","T-M4M71R9DFY","","","","","","orlandodewalt5@gmail.com","PayPal","Not connected" -"12/30/2025 13:22","Elyasa' Sidek","","Ko-fi Support","10.00","0","USD","Tip","6e07f94c-c7ba-42e4-8e6c-c50e7879b6aa","T-S6S11RAFG2","","","","","","elyasasidek@gmail.com","PayPal","elyasa0201#0" -"01/14/2026 14:58","Tedz ","Thank you Bro","Ko-fi Support","5.00","0","USD","Tip","a7f04654-8f37-4f74-98af-c97b4978c20a","T-R6R61SA5CK","","","","","","long_and_wide@yahoo.com","PayPal","" -"01/16/2026 21:34","Ko-fi Supporter","Appreciate you","Ko-fi Support","15.00","0","USD","Tip","236ecb15-ce1e-4a74-bb71-96a34b7994a7","T-M4M41SF6NB","","","","","","maingikenny@gmail.com","PayPal","Not connected" -"01/18/2026 11:16","Sovilor","","Ko-fi Support","5.00","0","USD","Tip","31d645b5-3098-465a-94f5-40f83d73adb7","T-S6S51SIYXB","","","","","","sovilor@gmail.com","PayPal","Not connected" diff --git a/src/components/player/android/components/VideoSurface.tsx b/src/components/player/android/components/VideoSurface.tsx index d67f2e8d..16a33085 100644 --- a/src/components/player/android/components/VideoSurface.tsx +++ b/src/components/player/android/components/VideoSurface.tsx @@ -337,6 +337,16 @@ export const VideoSurface: React.FC = ({ headers: exoRequestHeaders, requestHeaders: exoRequestHeadersArray, ...(resolvedRnVideoType ? { type: resolvedRnVideoType } : null), + bufferConfig: { + minBufferMs: 10000, + maxBufferMs: 20000, + bufferForPlaybackMs: 2000, + bufferForPlaybackAfterRebufferMs: 4000, + // @ts-ignore - Extra props supported by patched react-native-video + minBufferMemoryReservePercent: 0.15, + // @ts-ignore - Extra props supported by patched react-native-video + maxHeapAllocationPercent: 0.25, + } } as any} paused={paused} volume={volume} From df6006c2210b7560b72958535001a7fa16ad8a86 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 25 Jan 2026 22:31:36 +0530 Subject: [PATCH 45/58] release: 1.3.7 --- android/app/build.gradle | 6 +++--- android/app/src/main/res/values/strings.xml | 2 +- app.json | 8 ++++---- ios/Nuvio/Info.plist | 2 +- src/components/player/android/components/VideoSurface.tsx | 2 ++ 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index f180bb2e..04e1b814 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -95,8 +95,8 @@ android { applicationId 'com.nuvio.app' minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 34 - versionName "1.3.6" + versionCode 35 + versionName "1.3.7" buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\"" } @@ -118,7 +118,7 @@ android { def abiVersionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4] applicationVariants.all { variant -> variant.outputs.each { output -> - def baseVersionCode = 34 // Current versionCode 34 from defaultConfig + def baseVersionCode = 35 // Current versionCode 35 from defaultConfig def abiName = output.getFilter(com.android.build.OutputFile.ABI) def versionCode = baseVersionCode * 100 // Base multiplier diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 050c9866..9b0596a4 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -3,5 +3,5 @@ contain false dark - 1.3.6 + 1.3.7 \ No newline at end of file diff --git a/app.json b/app.json index 7e0b8d60..d5510500 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,7 @@ "expo": { "name": "Nuvio", "slug": "nuvio", - "version": "1.3.6", + "version": "1.3.7", "orientation": "default", "backgroundColor": "#020404", "icon": "./assets/ios/AppIcon.appiconset/Icon-App-60x60@3x.png", @@ -17,7 +17,7 @@ "ios": { "supportsTablet": true, "icon": "./assets/ios/AppIcon.appiconset/Icon-App-60x60@3x.png", - "buildNumber": "34", + "buildNumber": "35", "infoPlist": { "NSAppTransportSecurity": { "NSAllowsArbitraryLoads": true @@ -52,7 +52,7 @@ "android.permission.WRITE_SETTINGS" ], "package": "com.nuvio.app", - "versionCode": 34, + "versionCode": 35, "architectures": [ "arm64-v8a", "armeabi-v7a", @@ -105,6 +105,6 @@ "fallbackToCacheTimeout": 30000, "url": "https://ota.nuvioapp.space/api/manifest" }, - "runtimeVersion": "1.3.6" + "runtimeVersion": "1.3.7" } } diff --git a/ios/Nuvio/Info.plist b/ios/Nuvio/Info.plist index 60f82215..6b345fac 100644 --- a/ios/Nuvio/Info.plist +++ b/ios/Nuvio/Info.plist @@ -39,7 +39,7 @@ CFBundleVersion - 34 + 35 LSMinimumSystemVersion 12.0 LSRequiresIPhoneOS diff --git a/src/components/player/android/components/VideoSurface.tsx b/src/components/player/android/components/VideoSurface.tsx index 16a33085..57321d56 100644 --- a/src/components/player/android/components/VideoSurface.tsx +++ b/src/components/player/android/components/VideoSurface.tsx @@ -351,6 +351,8 @@ export const VideoSurface: React.FC = ({ paused={paused} volume={volume} rate={playbackSpeed} + // @ts-ignore - Prop supported by react-native-video 6.0+ + bufferingStrategy="DependingOnMemory" resizeMode={getExoResizeMode()} selectedAudioTrack={selectedAudioTrack} selectedTextTrack={selectedTextTrack} From 86f6bc4ae2e5c85739d4a30ee319e71d30e7f3ae Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 25 Jan 2026 22:43:53 +0530 Subject: [PATCH 46/58] added chinese --- src/constants/locales.ts | 3 +- src/i18n/locales/ar.json | 1 + src/i18n/locales/de.json | 1 + src/i18n/locales/en.json | 1 + src/i18n/locales/es.json | 1 + src/i18n/locales/fr.json | 1 + src/i18n/locales/hr.json | 1 + src/i18n/locales/it.json | 1 + src/i18n/locales/pt-BR.json | 1 + src/i18n/locales/pt-PT.json | 1 + src/i18n/locales/zh-CN.json | 1365 +++++++++++++++++++++++++++++++++++ src/i18n/resources.ts | 2 + 12 files changed, 1378 insertions(+), 1 deletion(-) create mode 100644 src/i18n/locales/zh-CN.json diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 299b747f..73de628c 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -7,5 +7,6 @@ export const LOCALES = [ { code: 'fr', key: 'french' }, { code: 'it', key: 'italian' }, { code: 'es', key: 'spanish' }, - { code: 'hr', key: 'croatian' } + { code: 'hr', key: 'croatian' }, + { code: 'zh-CN', key: 'chinese' } ]; \ No newline at end of file diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 9cc51388..f6e8b36f 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -631,6 +631,7 @@ "french": "Ø§Ù„ÙØ±Ù†Ø³ÙŠØ©", "italian": "الإيطالية", "croatian": "الكرواتية", + "chinese": "الصينية (المبسطة)", "account": "الحساب", "content_discovery": "المحتوى والاكتشاÙ", "appearance": "المظهر", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index cf95a991..faee6ba6 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -631,6 +631,7 @@ "french": "Französisch", "italian": "Italienisch", "croatian": "Kroatisch", + "chinese": "Chinesisch (Vereinfacht)", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ffc30ea2..bf9eb0dd 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -631,6 +631,7 @@ "french": "French", "italian": "Italian", "croatian": "Croatian", + "chinese": "Chinese (Simplified)", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index f5a532af..d5ae8b02 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -631,6 +631,7 @@ "french": "Francés", "italian": "Italiano", "croatian": "Croata", + "chinese": "Chino (Simplificado)", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 9c2f9341..d6c39784 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -631,6 +631,7 @@ "french": "Français", "italian": "Italien", "croatian": "Croate", + "chinese": "Chinois (Simplifié)", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 6482b4f8..bf9c60f2 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -631,6 +631,7 @@ "french": "Francuski", "italian": "Talijanski", "croatian": "Hrvatski", + "chinese": "Kineski (Pojednostavljeni)", "account": "RaÄun", "content_discovery": "Sadržaj i otkrivanje", "appearance": "Izgled", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index a70dc127..bb2105b3 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -631,6 +631,7 @@ "french": "Francese", "italian": "Italiano", "croatian": "Croato", + "chinese": "Cinese (Semplificato)", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 8afdc591..ffe237c6 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -645,6 +645,7 @@ "french": "Francês", "italian": "Italiano", "croatian": "Croata", + "chinese": "Chinês (Simplificado)", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 3b1c9151..19ec3a71 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -645,6 +645,7 @@ "french": "Francês", "italian": "Italiano", "croatian": "Croata", + "chinese": "Chinês (Simplificado)", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json new file mode 100644 index 00000000..fd58c310 --- /dev/null +++ b/src/i18n/locales/zh-CN.json @@ -0,0 +1,1365 @@ +{ + "common": { + "loading": "加载中...", + "cancel": "å–æ¶ˆ", + "save": "ä¿å­˜", + "delete": "删除", + "edit": "编辑", + "search": "æœç´¢", + "error": "错误", + "success": "æˆåŠŸ", + "ok": "确定", + "unknown": "未知", + "retry": "é‡è¯•", + "try_again": "é‡è¯•", + "go_back": "返回", + "settings": "设置", + "close": "关闭", + "show_more": "显示更多", + "show_less": "显示更少", + "load_more": "加载更多", + "unknown_date": "未知日期", + "anonymous_user": "匿å用户", + "time": { + "now": "刚刚", + "minutes_ago": "{{count}}分钟å‰", + "hours_ago": "{{count}}å°æ—¶å‰", + "days_ago": "{{count}}天å‰" + }, + "days_short": { + "sun": "周日", + "mon": "周一", + "tue": "周二", + "wed": "周三", + "thu": "周四", + "fri": "周五", + "sat": "周六" + }, + "email": "电å­é‚®ä»¶", + "status": "状æ€" + }, + "home": { + "categories": { + "movies": "电影", + "series": "剧集", + "channels": "频é“" + }, + "movies": "电影", + "tv_shows": "电视剧", + "load_more_catalogs": "加载更多目录", + "no_content": "暂无内容", + "add_catalogs": "添加目录", + "sign_in_available": "å¯ç™»å½•", + "sign_in_desc": "您å¯ä»¥éšæ—¶åœ¨ 设置 → 账户 中登录", + "view_all": "查看全部", + "this_week": "本周", + "upcoming": "å³å°†ä¸Šæ˜ ", + "recently_released": "最近å‘布", + "no_scheduled_episodes": "暂无预定剧集", + "check_back_later": "ç¨åŽå†æ¥çœ‹çœ‹", + "continue_watching": "继续观看", + "up_next": "接下æ¥", + "up_next_caps": "接下æ¥", + "released": "å·²å‘布", + "new": "æ–°", + "tba": "待定", + "new_episodes": "{{count}} 集新剧集", + "season_short": "第{{season}}å­£", + "episode_short": "第{{episode}}集", + "season": "第 {{season}} å­£", + "episode": "第 {{episode}} 集", + "movie": "电影", + "series": "剧集", + "tv_show": "电视剧", + "percent_watched": "观看进度 {{percent}}%", + "view_details": "查看详情", + "remove": "移除", + "play": "播放", + "play_now": "ç«‹å³æ’­æ”¾", + "resume": "继续播放", + "info": "ä¿¡æ¯", + "more_info": "更多信æ¯", + "my_list": "我的列表", + "save": "ä¿å­˜", + "saved": "å·²ä¿å­˜", + "retry": "é‡è¯•", + "install_addons": "安装æ’ä»¶", + "settings": "设置", + "no_featured_content": "暂无推è内容", + "couldnt_load_featured": "无法加载推è内容", + "no_featured_desc": "安装包å«ç›®å½•çš„æ’件或在设置中更改内容æºã€‚", + "load_error_desc": "èŽ·å–æŽ¨è内容时出现问题。请检查您的网络连接并é‡è¯•。", + "no_featured_available": "暂无推è内容å¯ç”¨", + "no_description": "暂无æè¿°" + }, + "navigation": { + "home": "首页", + "library": "媒体库", + "search": "æœç´¢", + "downloads": "下载", + "settings": "设置" + }, + "search": { + "title": "æœç´¢", + "recent_searches": "最近æœç´¢", + "discover": "å‘现", + "movies": "电影", + "tv_shows": "电视剧", + "select_catalog": "选择目录", + "all_genres": "所有类型", + "discovering": "正在å‘现内容...", + "show_more": "显示更多 ({{count}})", + "no_content_found": "未找到内容", + "try_different": "å°è¯•ä¸åŒçš„类型或目录", + "select_catalog_desc": "选择一个目录以开始å‘现", + "tap_catalog_desc": "点击上方的目录标签以开始", + "placeholder": "æœç´¢ç”µå½±ã€èŠ‚ç›®...", + "keep_typing": "继续输入...", + "type_characters": "输入至少 2 个字符进行æœç´¢", + "no_results": "未找到结果", + "try_keywords": "å°è¯•ä¸åŒçš„å…³é”®è¯æˆ–检查拼写", + "select_type": "选择类型", + "browse_movies": "æµè§ˆç”µå½±ç›®å½•", + "browse_tv": "æµè§ˆç”µè§†å‰§ç›®å½•", + "select_genre": "选择类型", + "show_all_content": "显示所有内容", + "genres_count": "{{count}} ç§ç±»åž‹" + }, + "library": { + "title": "媒体库", + "watched": "已观看", + "continue": "继续观看", + "watchlist": "待看列表", + "collection": "æ”¶è—", + "rated": "已评分", + "items": "项目", + "trakt_collections": "Trakt æ”¶è—", + "trakt_collection": "Trakt æ”¶è—", + "no_trakt": "暂无 Trakt æ”¶è—", + "no_trakt_desc": "开始使用 Trakt åŽï¼Œæ‚¨çš„ Trakt æ”¶è—将显示在这里", + "load_collections": "加载收è—", + "empty_folder": "{{folder}} 中暂无内容", + "empty_folder_desc": "此收è—夹为空", + "refresh": "刷新", + "no_movies": "暂无电影", + "no_series": "暂无电视剧", + "no_content": "暂无内容", + "add_content_desc": "呿‚¨çš„媒体库添加一些内容,它们将显示在这里", + "find_something": "找点看的", + "removed_from_library": "已从媒体库移除", + "item_removed": "项目已从您的媒体库中移除", + "failed_update_library": "更新媒体库失败", + "unable_remove": "无法从媒体库移除项目", + "marked_watched": "已标记为已观看", + "marked_unwatched": "已标记为未观看", + "item_marked_watched": "项目已标记为已观看", + "item_marked_unwatched": "项目已标记为未观看", + "failed_update_watched": "更新观看状æ€å¤±è´¥", + "unable_update_watched": "无法更新观看状æ€", + "added_to_library": "已添加到媒体库", + "item_added": "已添加到您的本地媒体库", + "add_to_library": "添加到媒体库", + "remove_from_library": "从媒体库移除", + "mark_watched": "标记为已观看", + "mark_unwatched": "标记为未观看", + "share": "分享", + "add_to_watchlist": "添加到 Trakt 待看列表", + "remove_from_watchlist": "从 Trakt 待看列表移除", + "added_to_watchlist": "已添加到待看列表", + "added_to_watchlist_desc": "已添加到您的 Trakt 待看列表", + "removed_from_watchlist": "已从待看列表移除", + "removed_from_watchlist_desc": "已从您的 Trakt 待看列表移除", + "add_to_collection": "添加到 Trakt æ”¶è—", + "remove_from_collection": "从 Trakt æ”¶è—移除", + "added_to_collection": "已添加到收è—", + "added_to_collection_desc": "已添加到您的 Trakt æ”¶è—", + "removed_from_collection": "已从收è—移除", + "removed_from_collection_desc": "已从您的 Trakt æ”¶è—移除" + }, + "metadata": { + "unable_to_load": "无法加载内容", + "error_code": "错误代ç ï¼š{{code}}", + "content_not_found": "未找到内容", + "content_not_found_desc": "此内容ä¸å­˜åœ¨æˆ–已被移除。", + "server_error": "æœåŠ¡å™¨é”™è¯¯", + "server_error_desc": "æœåŠ¡å™¨æš‚æ—¶ä¸å¯ç”¨ã€‚请ç¨åŽå†è¯•。", + "bad_gateway": "网关错误", + "bad_gateway_desc": "æœåС噍é‡åˆ°é—®é¢˜ã€‚请ç¨åŽå†è¯•。", + "service_unavailable": "æœåŠ¡ä¸å¯ç”¨", + "service_unavailable_desc": "æœåŠ¡ç›®å‰æ­£åœ¨ç»´æŠ¤ä¸­ã€‚请ç¨åŽå†è¯•。", + "too_many_requests": "请求过多", + "too_many_requests_desc": "您的请求过于频ç¹ã€‚请ç¨å€™å†è¯•。", + "request_timeout": "请求超时", + "request_timeout_desc": "请求耗时过长。请é‡è¯•。", + "network_error": "网络错误", + "network_error_desc": "请检查您的互è”网连接并é‡è¯•。", + "auth_error": "认è¯é”™è¯¯", + "auth_error_desc": "请检查您的账户设置并é‡è¯•。", + "access_denied": "æ‹’ç»è®¿é—®", + "access_denied_desc": "您没有æƒé™è®¿é—®æ­¤å†…容。", + "connection_error": "连接错误", + "streams_unavailable": "æµä¸å¯ç”¨", + "streams_unavailable_desc": "æµåª’ä½“æºæš‚æ—¶ä¸å¯ç”¨ã€‚请ç¨åŽå†è¯•。", + "unknown_error": "未知错误", + "something_went_wrong": "出了点问题。请é‡è¯•。", + "cast": "演员", + "more_like_this": "猜你喜欢", + "collection": "æ”¶è—", + "episodes": "剧集", + "seasons": "å­£", + "posters": "海报", + "banners": "横幅", + "specials": "特别篇", + "season_number": "第 {{number}} å­£", + "episode_count": "{{count}} 集", + "episode_count_plural": "{{count}} 集", + "no_episodes": "暂无剧集", + "no_episodes_for_season": "第 {{season}} 季暂无剧集", + "episodes_not_released": "剧集å¯èƒ½å°šæœªå‘布", + "no_description": "暂无æè¿°", + "episode_label": "第 {{number}} 集", + "watch_again": "冿¬¡è§‚看", + "completed": "已完æˆ", + "play_episode": "播放 S{{season}}E{{episode}}", + "play": "播放", + "watched": "已观看", + "watched_on_trakt": "在 Trakt 上已观看", + "synced_with_trakt": "已与 Trakt åŒæ­¥", + "saved": "å·²ä¿å­˜", + "director": "导演", + "directors": "导演", + "creator": "创作者", + "creators": "创作者", + "production": "制作", + "network": "网络", + "mark_watched": "标记为已观看", + "mark_unwatched": "标记为未观看", + "marking": "正在标记...", + "removing": "正在移除...", + "unmark_season": "å–æ¶ˆæ ‡è®°ç¬¬ {{season}} å­£", + "mark_season": "标记第 {{season}} å­£", + "resume": "继续播放", + "spoiler_warning": "剧é€è­¦å‘Š", + "spoiler_warning_desc": "此评论包å«å‰§é€ã€‚ç¡®å®šè¦æ˜¾ç¤ºå—?", + "cancel": "å–æ¶ˆ", + "reveal_spoilers": "显示剧é€", + "movie_details": "电影详情", + "show_details": "节目详情", + "tagline": "标语", + "status": "状æ€", + "release_date": "å‘布日期", + "runtime": "æ—¶é•¿", + "budget": "预算", + "revenue": "票房", + "origin_country": "原产国", + "original_language": "原始语言", + "first_air_date": "首播日期", + "last_air_date": "最近播出日期", + "total_episodes": "总集数", + "episode_runtime": "å•集时长", + "created_by": "主创", + "backdrop_gallery": "背景图库", + "loading_episodes": "正在加载剧集...", + "no_episodes_available": "暂无剧集å¯ç”¨", + "play_next": "播放 S{{season}}E{{episode}}", + "play_next_episode": "播放下一集", + "save": "ä¿å­˜", + "percent_watched": "已观看 {{percent}}%", + "percent_watched_trakt": "已观看 {{percent}}% (Trakt 上 {{traktPercent}}%)", + "synced_with_trakt_progress": "已与 Trakt åŒæ­¥", + "using_trakt_progress": "使用 Trakt 进度", + "added_to_collection_hero": "已添加到收è—", + "added_to_collection_desc_hero": "已添加到您的 Trakt æ”¶è—", + "removed_from_collection_hero": "已从收è—移除", + "removed_from_collection_desc_hero": "已从您的 Trakt æ”¶è—移除", + "mark_as_watched": "标记为已观看", + "mark_as_unwatched": "标记为未观看" + }, + "cast": { + "biography": "简介", + "known_for": "æˆå作", + "personal_info": "个人信æ¯", + "born_in": "出生于 {{place}}", + "filmography": "影视作å“", + "also_known_as": "别å", + "no_info_available": "暂无更多信æ¯", + "as_character": "饰演 {{character}}", + "loading_details": "正在加载详情...", + "years_old": "{{age}} å²", + "view_filmography": "查看影视作å“", + "filter": "筛选", + "sort_by": "排åº", + "sort_popular": "热门", + "sort_latest": "最新", + "sort_upcoming": "å³å°†ä¸Šæ˜ ", + "upcoming_badge": "å³å°†ä¸Šæ˜ ", + "coming_soon": "å³å°†æŽ¨å‡º", + "filmography_count": "å½±è§†ä½œå“ â€¢ {{count}} 部标题", + "loading_filmography": "正在加载影视作å“...", + "load_more_remaining": "加载更多 (剩余 {{count}})", + "alert_error_title": "错误", + "alert_error_message": "无法加载 \"{{title}}\"。请ç¨åŽå†è¯•。", + "alert_ok": "确定", + "no_upcoming": "该演员暂无å³å°†ä¸Šæ˜ çš„作å“", + "no_content": "该演员暂无内容", + "no_movies": "该演员暂无电影", + "no_tv": "该演员暂无电视剧" + }, + "comments": { + "title": "Trakt 评论", + "spoiler_warning": "âš ï¸ æ­¤è¯„è®ºåŒ…å«å‰§é€ã€‚点击显示。", + "spoiler": "剧é€", + "contains_spoilers": "包å«å‰§é€", + "reveal": "显示", + "vip": "VIP", + "unavailable": "评论ä¸å¯ç”¨", + "no_comments": "Trakt 上暂无评论", + "not_in_database": "此内容å¯èƒ½å°šæœªæ”¶å½•于 Trakt æ•°æ®åº“", + "check_trakt": "查看 Trakt" + }, + "trailers": { + "title": "预告片", + "official_trailers": "官方预告片", + "official_trailer": "官方预告片", + "teasers": "预告短片", + "teaser": "预告短片", + "clips_scenes": "片段和场景", + "clip": "片段", + "featurettes": "花絮", + "featurette": "花絮", + "behind_the_scenes": "幕åŽ", + "no_trailers": "暂无预告片", + "unavailable": "预告片ä¸å¯ç”¨", + "unavailable_desc": "此时无法加载预告片。请ç¨åŽå†è¯•。", + "unable_to_play": "无法播放预告片。请é‡è¯•。", + "watch_on_youtube": "在 YouTube 观看" + }, + "catalog": { + "no_content_found": "未找到内容", + "no_content_filters": "æ²¡æœ‰ç¬¦åˆæ‰€é€‰ç­›é€‰æ¡ä»¶çš„内容", + "loading_content": "正在加载内容...", + "back": "返回", + "in_theaters": "正在热映", + "all": "全部", + "failed_tmdb": "从 TMDB 加载内容失败", + "movies": "电影", + "tv_shows": "电视剧", + "channels": "频é“" + }, + "streams": { + "back_to_episodes": "返回剧集", + "back_to_info": "返回信æ¯", + "fetching_from": "正在获å–:", + "no_sources_available": "暂无æµåª’体æº", + "add_sources_desc": "请在设置中添加æµåª’体æº", + "add_sources": "添加æº", + "finding_streams": "正在查找å¯ç”¨æµ...", + "finding_best_stream": "正在查找最佳æµä»¥è‡ªåŠ¨æ’­æ”¾...", + "still_fetching": "ä»åœ¨èŽ·å–æµ...", + "no_streams_available": "暂无æµå¯ç”¨", + "starting_best_stream": "正在å¯åŠ¨æœ€ä½³æµ...", + "loading_more_sources": "正在加载更多æº..." + }, + "player_ui": { + "via": "via {{name}}", + "audio_tracks": "音频轨é“", + "no_audio_tracks": "暂无音频轨é“", + "playback_speed": "播放速度", + "on_hold": "æš‚åœä¸­", + "playback_error": "播放错误", + "unknown_error": "播放期间å‘声未知错误。", + "copy_error": "å¤åˆ¶é”™è¯¯è¯¦æƒ…", + "copied_to_clipboard": "å·²å¤åˆ¶åˆ°å‰ªè´´æ¿", + "dismiss": "忽略", + "continue_watching": "继续观看", + "start_over": "从头开始", + "resume": "æ¢å¤", + "change_source": "æ›´æ¢æº", + "switching_source": "æ­£åœ¨åˆ‡æ¢æº...", + "no_sources_found": "未找到æº", + "sources": "æº", + "finding_sources": "正在查找æº...", + "unknown_source": "未知æº", + "sources_limited": "由于æä¾›å•†é”™è¯¯ï¼Œæºå¯èƒ½å—到é™åˆ¶ã€‚", + "episodes": "剧集", + "specials": "特别篇", + "season": "第 {{season}} å­£", + "stream": "æµ {{number}}", + "subtitles": "字幕", + "built_in": "内置", + "addons": "æ’ä»¶", + "style": "æ ·å¼", + "none": "æ— ", + "search_online_subtitles": "æœç´¢åœ¨çº¿å­—幕", + "preview": "预览", + "quick_presets": "快速预设", + "default": "默认", + "yellow": "黄色", + "high_contrast": "高对比度", + "large": "大", + "core": "核心", + "font_size": "字体大å°", + "show_background": "显示背景", + "advanced": "高级", + "position": "ä½ç½®", + "text_color": "文本颜色", + "align": "对é½", + "bottom_offset": "底部åç§»", + "background_opacity": "背景ä¸é€æ˜Žåº¦", + "text_shadow": "文本阴影", + "on": "å¼€", + "off": "å…³", + "outline_color": "轮廓颜色", + "outline": "轮廓", + "outline_width": "轮廓宽度", + "letter_spacing": "å­—é—´è·", + "line_height": "行高", + "timing_offset": "æ—¶é—´åç§» (ç§’)", + "visual_sync": "è§†è§‰åŒæ­¥", + "timing_hint": "å‘å‰ (-) 或å‘åŽ (+) å¾®è°ƒå­—å¹•ä»¥åŒæ­¥ã€‚", + "reset_defaults": "é‡ç½®ä¸ºé»˜è®¤" + }, + "downloads": { + "title": "下载", + "no_downloads": "暂无下载", + "no_downloads_desc": "下载的内容将显示在此处以供离线观看", + "explore": "探索内容", + "path_copied": "路径已å¤åˆ¶", + "path_copied_desc": "本地文件路径已å¤åˆ¶åˆ°å‰ªè´´æ¿", + "copied": "å·²å¤åˆ¶", + "incomplete": "下载未完æˆ", + "incomplete_desc": "下载尚未完æˆ", + "not_available": "ä¸å¯ç”¨", + "not_available_desc": "仅在下载完æˆåŽæœ¬åœ°æ–‡ä»¶è·¯å¾„æ‰å¯ç”¨ã€‚", + "status_downloading": "下载中", + "status_completed": "已完æˆ", + "status_paused": "已暂åœ", + "status_error": "错误", + "status_queued": "已排队", + "status_unknown": "未知", + "provider": "æä¾›å•†", + "streaming_playlist_warning": "å¯èƒ½æ— æ³•播放 - æµåª’体播放列表", + "remaining": "剩余", + "not_ready": "下载未就绪", + "not_ready_desc": "请等待下载完æˆã€‚", + "filter_all": "全部", + "filter_active": "进行中", + "filter_done": "已完æˆ", + "filter_paused": "已暂åœ", + "no_filter_results": "没有 {{filter}} 下载", + "try_different_filter": "å°è¯•选择ä¸åŒçš„过滤器", + "limitations_title": "下载é™åˆ¶", + "limitations_msg": "• å°äºŽ 1MB 的文件通常是 M3U8 æµåª’体播放列表,无法下载离线观看。这些仅适用于在线æµåª’体,包å«è§†é¢‘片段的链接,而éžå®žé™…视频内容。", + "remove_title": "移除下载", + "remove_confirm": "移除 \"{{title}}\"{{season_episode}}?", + "cancel": "å–æ¶ˆ", + "remove": "移除" + }, + "addons": { + "title": "æ’ä»¶", + "reorder_mode": "釿–°æŽ’åºæ¨¡å¼", + "reorder_info": "顶部的æ’件在加载内容时具有更高优先级", + "add_addon_placeholder": "æ’ä»¶ URL", + "add_button": "添加æ’ä»¶", + "my_addons": "我的æ’ä»¶", + "community_addons": "社区æ’ä»¶", + "no_addons": "未安装æ’ä»¶", + "uninstall_title": "å¸è½½æ’ä»¶", + "uninstall_message": "确定è¦å¸è½½ {{name}} å—?", + "uninstall_button": "å¸è½½", + "install_success": "æ’件安装æˆåŠŸ", + "install_error": "安装æ’件失败", + "load_error": "加载æ’件失败", + "fetch_error": "èŽ·å–æ’件详情失败", + "invalid_url": "请输入æ’ä»¶ URL", + "configure": "é…ç½®", + "version": "版本: {{version}}", + "installed_addons": "已安装的æ’ä»¶", + "reorder_drag_title": "拖动æ’件以釿–°æŽ’åº", + "install": "安装", + "config_unavailable_title": "é…ç½®ä¸å¯ç”¨", + "config_unavailable_msg": "无法确定此æ’ä»¶çš„é…ç½® URL。", + "cannot_open_config_title": "无法打开é…ç½®", + "cannot_open_config_msg": "无法打开é…ç½® URL ({{url}})。该æ’ä»¶å¯èƒ½æ²¡æœ‰é…置页é¢ã€‚", + "description": "æè¿°", + "supported_types": "支æŒçš„类型", + "catalogs": "目录", + "no_description": "暂无æè¿°", + "overview": "概览", + "no_categories": "无分类", + "pre_installed": "预安装" + }, + "trakt": { + "title": "Trakt 设置", + "settings_title": "Trakt 设置", + "connect_title": "连接到 Trakt", + "connect_desc": "åŒæ­¥æ‚¨çš„观看历å²ã€å¾…看列表和收è—到 Trakt.tv", + "sign_in": "登录 Trakt", + "sign_out": "注销", + "sign_out_confirm": "ç¡®å®šè¦æ³¨é”€æ‚¨çš„ Trakt 账户å—?", + "joined": "加入于 {{date}}", + "sync_settings_title": "åŒæ­¥è®¾ç½®", + "sync_info": "连接到 Trakt åŽï¼Œå®Œæ•´çš„历å²è®°å½•直接从 API åŒæ­¥ï¼Œä¸ä¼šå†™å…¥æœ¬åœ°å­˜å‚¨ã€‚您的“继续观看â€åˆ—è¡¨åæ˜ äº†æ‚¨çš„全局 Trakt 进度。", + "auto_sync_label": "è‡ªåŠ¨åŒæ­¥æ’­æ”¾è¿›åº¦", + "auto_sync_desc": "è‡ªåŠ¨å°†è§‚çœ‹è¿›åº¦åŒæ­¥åˆ° Trakt", + "import_history_label": "导入观看历å²", + "import_history_desc": "使用“立å³åŒæ­¥â€ä»Ž Trakt 导入您的观看历å²å’Œè¿›åº¦", + "sync_now_button": "ç«‹å³åŒæ­¥", + "display_settings_title": "显示设置", + "show_comments_label": "显示 Trakt 评论", + "show_comments_desc": "在元数æ®å±å¹•中显示 Trakt 评论(如果å¯ç”¨ï¼‰", + "maintenance_title": "维护中", + "maintenance_unavailable": "Trakt ä¸å¯ç”¨", + "maintenance_desc": "Trakt é›†æˆæš‚æ—¶æš‚åœä»¥è¿›è¡Œç»´æŠ¤ã€‚æ‰€æœ‰åŒæ­¥å’Œèº«ä»½éªŒè¯éƒ½å°†è¢«ç¦ç”¨ï¼Œç›´åˆ°ç»´æŠ¤å®Œæˆã€‚", + "maintenance_button": "æœåŠ¡ç»´æŠ¤ä¸­", + "auth_success_title": "连接æˆåŠŸ", + "auth_success_msg": "您的 Trakt 账户已æˆåŠŸè¿žæŽ¥ã€‚", + "auth_error_title": "认è¯é”™è¯¯", + "auth_error_msg": "与 Trakt 完æˆèº«ä»½éªŒè¯å¤±è´¥ã€‚", + "auth_error_generic": "è®¤è¯æœŸé—´å‘生错误。", + "sign_out_error": "注销 Trakt 失败。", + "sync_complete_title": "åŒæ­¥å®Œæˆ", + "sync_success_msg": "å·²æˆåŠŸå°†æ‚¨çš„è§‚çœ‹è¿›åº¦ä¸Ž Trakt åŒæ­¥ã€‚", + "sync_error_msg": "åŒæ­¥å¤±è´¥ã€‚请é‡è¯•。" + }, + "simkl": { + "title": "Simkl 设置", + "settings_title": "Simkl 设置", + "connect_title": "连接到 Simkl", + "connect_desc": "åŒæ­¥æ‚¨çš„观看历å²å¹¶è¿½è¸ªæ‚¨æ­£åœ¨è§‚看的内容", + "sign_in": "登录 Simkl", + "sign_out": "断开连接", + "sign_out_confirm": "ç¡®å®šè¦æ–­å¼€ä¸Ž Simkl 的连接å—?", + "syncing_desc": "您的观看项目正在与 Simkl åŒæ­¥ã€‚", + "auth_success_title": "连接æˆåŠŸ", + "auth_success_msg": "您的 Simkl 账户已æˆåŠŸè¿žæŽ¥ã€‚", + "auth_error_title": "认è¯é”™è¯¯", + "auth_error_msg": "与 Simkl 完æˆèº«ä»½éªŒè¯å¤±è´¥ã€‚", + "auth_error_generic": "è®¤è¯æœŸé—´å‘生错误。", + "sign_out_error": "æ–­å¼€ Simkl 连接失败。", + "config_error_title": "é…置错误", + "config_error_msg": "环境å˜é‡ä¸­ç¼ºå°‘ Simkl 客户端 ID。", + "conflict_title": "冲çª", + "conflict_msg": "Trakt 已连接时无法连接到 Simkl。请先断开 Trakt。", + "disclaimer": "Nuvio 与 Simkl 无关。" + }, + "tmdb_settings": { + "title": "TMDb 设置", + "metadata_enrichment": "元数æ®å……实", + "metadata_enrichment_desc": "使用 TMDb æ•°æ®å¢žå¼ºæ‚¨çš„内容元数æ®ï¼Œä»¥èŽ·å¾—æ›´å¥½çš„è¯¦æƒ…å’Œä¿¡æ¯ã€‚", + "enable_enrichment": "å¯ç”¨å……实", + "enable_enrichment_desc": "使用 TMDb 的数æ®ä¸°å¯Œæ’件元数æ®ï¼ŒåŒ…括演员ã€åˆ†çº§ã€å¾½æ ‡/海报和制作信æ¯ã€‚", + "localized_text": "本地化文本", + "localized_text_desc": "从 TMDb以此您åå¥½çš„è¯­è¨€èŽ·å–æ ‡é¢˜å’Œæè¿°ã€‚", + "language": "语言", + "change": "更改", + "logo_preview": "徽标预览", + "logo_preview_desc": "预览显示本地化徽标在所选语言下的显示效果。", + "example": "示例:", + "no_logo": "无徽标å¯ç”¨", + "enrichment_options": "充实选项", + "enrichment_options_desc": "控制从 TMDb 获å–哪些数æ®ã€‚ç¦ç”¨çš„选项将使用æ’ä»¶æ•°æ®ï¼ˆå¦‚æžœå¯ç”¨ï¼‰ã€‚", + "cast_crew": "æ¼”èŒäººå‘˜", + "cast_crew_desc": "演员ã€å¯¼æ¼”ã€ç¼–剧åŠå…¶å¤´åƒ", + "title_description": "标题和æè¿°", + "title_description_desc": "使用 TMDb 本地化标题和概览文本", + "title_logos": "标题徽标", + "title_logos_desc": "é«˜è´¨é‡æ ‡é¢˜å¤„ç†å›¾åƒ", + "banners_backdrops": "横幅和背景", + "banners_backdrops_desc": "高分辨率背景图åƒ", + "certification": "内容分级", + "certification_desc": "年龄分级(PG-13, R, TV-MA 等)", + "recommendations": "推è", + "recommendations_desc": "相似内容建议", + "episode_data": "剧集数æ®", + "episode_data_desc": "剧集缩略图ã€ä¿¡æ¯åŠç”µè§†å‰§åŽå¤‡ä¿¡æ¯", + "season_posters": "季海报", + "season_posters_desc": "特定季的海报图åƒ", + "production_info": "制作信æ¯", + "production_info_desc": "网络和制作公å¸åŠå…¶å¾½æ ‡", + "movie_details": "电影详情", + "movie_details_desc": "预算ã€ç¥¨æˆ¿ã€æ—¶é•¿ã€æ ‡è¯­", + "tv_details": "电视剧详情", + "tv_details_desc": "状æ€ã€å­£æ•°ã€ç½‘络ã€åˆ›ä½œè€…", + "movie_collections": "电影系列", + "movie_collections_desc": "系列电影(漫å¨ã€æ˜Ÿçƒå¤§æˆ˜ç­‰ï¼‰", + "api_configuration": "API é…ç½®", + "api_configuration_desc": "é…置您的 TMDb API 访问以增强功能。", + "custom_api_key": "自定义 API 密钥", + "custom_api_key_desc": "使用您自己的 TMDb API 密钥以获得更好的性能和专用速率é™åˆ¶ã€‚", + "custom_key_active": "自定义 API 密钥已激活", + "api_key_required": "éœ€è¦ API 密钥", + "api_key_placeholder": "粘贴您的 TMDb API 密钥 (v3)", + "how_to_get_key": "å¦‚ä½•èŽ·å– TMDb API 密钥?", + "built_in_key_msg": "当剿­£åœ¨ä½¿ç”¨å†…ç½® API 密钥。考虑使用您自己的密钥以获得更好的性能。", + "cache_size": "缓存大å°", + "clear_cache": "清除缓存", + "cache_days": "TMDB å“应缓存 7 天以æé«˜æ€§èƒ½", + "choose_language": "选择语言", + "choose_language_desc": "选择您å好的 TMDb 内容语言", + "popular": "热门", + "all_languages": "所有语言", + "search_results": "æœç´¢ç»“æžœ", + "no_languages_found": "未找到 \"{{query}}\" 的语言", + "clear_search": "清除æœç´¢", + "clear_cache_title": "清除 TMDB 缓存", + "clear_cache_msg": "这将清除所有缓存的 TMDB æ•°æ® ({{size}})。在缓存é‡å»ºä¹‹å‰ï¼ŒåŠ è½½å¯èƒ½ä¼šæš‚æ—¶å˜æ…¢ã€‚", + "clear_cache_success": "TMDB 缓存已æˆåŠŸæ¸…é™¤ã€‚", + "clear_cache_error": "清除缓存失败。", + "clear_api_key_title": "清除 API 密钥", + "clear_api_key_msg": "确定è¦ç§»é™¤æ‚¨çš„自定义 API 密钥并æ¢å¤é»˜è®¤è®¾ç½®å—?", + "clear_api_key_success": "API 密钥清除æˆåŠŸ", + "clear_api_key_error": "清除 API 密钥失败", + "empty_api_key": "API 密钥ä¸èƒ½ä¸ºç©ºã€‚", + "invalid_api_key": "无效的 API 密钥。请检查并é‡è¯•。", + "save_error": "ä¿å­˜æ—¶å‘生错误。请é‡è¯•。", + "using_builtin_key": "现在使用内置 TMDb API 密钥。", + "using_custom_key": "现在使用您的自定义 TMDb API 密钥。", + "enter_custom_key": "请输入并ä¿å­˜æ‚¨çš„自定义 TMDb API 密钥。", + "key_verified": "API 密钥已验è¯å¹¶ä¿å­˜æˆåŠŸã€‚" + }, + "settings": { + "language": "语言", + "select_language": "选择语言", + "english": "英语", + "portuguese": "è‘¡è„牙语", + "portuguese_br": "è‘¡è„牙语 (巴西)", + "portuguese_pt": "è‘¡è„牙语 (è‘¡è„牙)", + "german": "德语", + "arabic": "阿拉伯语", + "spanish": "西ç­ç‰™è¯­", + "french": "法语", + "italian": "æ„大利语", + "croatian": "克罗地亚语", + "chinese": "简体中文", + "account": "账户", + "content_discovery": "内容与å‘现", + "appearance": "外观", + "integrations": "集æˆ", + "playback": "播放", + "backup_restore": "备份与æ¢å¤", + "updates": "æ›´æ–°", + "about": "关于", + "developer": "å¼€å‘者", + "cache": "缓存", + "title": "设置", + "settings_title": "设置", + "sign_in_sync": "ç™»å½•ä»¥åŒæ­¥", + "add_catalogs_sources": "æ’ä»¶ã€ç›®å½•å’Œæº", + "player_trailers_downloads": "播放器ã€é¢„告片ã€ä¸‹è½½", + "mdblist_tmdb_ai": "MDBListã€TMDBã€AI", + "check_updates": "检查更新", + "clear_mdblist_cache": "清除 MDBList 缓存", + "cache_management": "缓存管ç†", + "downloads_counter": "下载åŠè®¡æ•°", + "made_with_love": "ç”± Tapframe 和朋å‹ä»¬ â¤ï¸ 制作", + "sections": { + "information": "ä¿¡æ¯", + "account": "账户", + "theme": "主题", + "layout": "布局", + "sources": "æº", + "catalogs": "目录", + "discovery": "å‘现", + "metadata": "元数æ®", + "ai_assistant": "AI 助手", + "video_player": "视频播放器", + "audio_subtitles": "音频和字幕", + "media": "媒体", + "notifications": "通知", + "testing": "测试", + "danger_zone": "å±é™©åŒºåŸŸ" + }, + "items": { + "legal": "法律与å…责声明", + "privacy_policy": "éšç§æ”¿ç­–", + "report_issue": "报告问题", + "version": "版本", + "contributors": "贡献者", + "view_contributors": "查看所有贡献者", + "theme": "主题", + "episode_layout": "剧集布局", + "streams_backdrop": "æµèƒŒæ™¯", + "streams_backdrop_desc": "在移动端æµåª’体上显示模糊背景", + "addons": "æ’ä»¶", + "installed": "已安装", + "debrid_integration": "Debrid 集æˆ", + "debrid_desc": "连接 Torbox", + "plugins": "æ’ä»¶", + "plugins_desc": "ç®¡ç†æ’件和仓库", + "catalogs": "目录", + "active": "激活", + "home_screen": "主å±å¹•", + "home_screen_desc": "布局和内容", + "continue_watching": "继续观看", + "continue_watching_desc": "缓存和播放行为", + "show_discover": "显示å‘现部分", + "show_discover_desc": "在æœç´¢ä¸­æ˜¾ç¤ºå‘现内容", + "mdblist": "MDBList", + "mdblist_connected": "已连接", + "mdblist_desc": "å¯ç”¨ä»¥æ·»åŠ è¯„åˆ†å’Œè¯„è®º", + "simkl": "Simkl", + "simkl_connected": "已连接", + "simkl_desc": "追踪您观看的内容", + "tmdb": "TMDB", + "tmdb_desc": "元数æ®å’Œå¾½æ ‡æºæä¾›å•†", + "openrouter": "OpenRouter API", + "openrouter_connected": "已连接", + "openrouter_desc": "添加您的 API 密钥以å¯ç”¨ AI èŠå¤©", + "video_player": "视频播放器", + "built_in": "内置", + "external": "外部", + "preferred_audio": "首选音频语言", + "preferred_subtitle": "首选字幕语言", + "subtitle_source": "字幕æºä¼˜å…ˆçº§", + "auto_select_subs": "自动选择字幕", + "auto_select_subs_desc": "è‡ªåŠ¨é€‰æ‹©ç¬¦åˆæ‚¨å好的字幕", + "show_trailers": "显示预告片", + "show_trailers_desc": "在推è部分显示预告片", + "enable_downloads": "å¯ç”¨ä¸‹è½½", + "enable_downloads_desc": "显示下载标签页并å…许ä¿å­˜æµ", + "notifications": "通知", + "notifications_desc": "剧集æé†’", + "developer_tools": "å¼€å‘者工具", + "developer_tools_desc": "测试和调试选项", + "test_onboarding": "测试引导页", + "reset_onboarding": "é‡ç½®å¼•导页", + "test_announcement": "测试公告", + "test_announcement_desc": "显示新内容覆盖层", + "reset_campaigns": "é‡ç½®æ´»åЍ", + "reset_campaigns_desc": "清除活动展示记录", + "clear_all_data": "清除所有数æ®", + "clear_all_data_desc": "é‡ç½®æ‰€æœ‰è®¾ç½®å’Œç¼“存数æ®" + }, + "options": { + "horizontal": "æ°´å¹³", + "vertical": "垂直", + "internal_first": "内置优先", + "internal_first_desc": "ä¼˜å…ˆä½¿ç”¨å†…åµŒå­—å¹•ï¼Œç„¶åŽæ˜¯å¤–部", + "external_first": "外部优先", + "external_first_desc": "优先使用æ’ä»¶å­—å¹•ï¼Œç„¶åŽæ˜¯å†…嵌", + "any_available": "ä»»æ„å¯ç”¨", + "any_available_desc": "使用第一个å¯ç”¨çš„字幕轨é“" + }, + "clear_data_desc": "这将é‡ç½®æ‰€æœ‰è®¾ç½®å¹¶æ¸…除所有缓存数æ®ã€‚您确定å—?", + "app_updates": "应用更新", + "about_nuvio": "关于 Nuvio" + }, + "ai_settings": { + "title": "AI 助手", + "info_title": "AI 驱动的èŠå¤©", + "info_desc": "使用先进的 AI è¯¢é—®æœ‰å…³ä»»ä½•ç”µå½±æˆ–ç”µè§†å‰§é›†çš„é—®é¢˜ã€‚èŽ·å–æœ‰å…³å‰§æƒ…ã€è§’色ã€ä¸»é¢˜ã€èŠ±çµ®ç­‰çš„è§è§£ - 全部由全é¢çš„ TMDB æ•°æ®æ”¯æŒã€‚", + "feature_1": "特定剧集的上下文和分æž", + "feature_2": "剧情解释和角色è§è§£", + "feature_3": "幕åŽèŠ±çµ®å’Œäº‹å®ž", + "feature_4": "您自己的å…è´¹ OpenRouter API 密钥", + "api_key_section": "OPENROUTER API 密钥", + "api_key_label": "API 密钥", + "api_key_desc": "输入您的 OpenRouter API 密钥以å¯ç”¨ AI èŠå¤©åŠŸèƒ½", + "save_api_key": "ä¿å­˜ API 密钥", + "saving": "正在ä¿å­˜...", + "update": "æ›´æ–°", + "remove": "移除", + "get_free_key": "从 OpenRouter 获å–å…è´¹ API 密钥", + "enable_chat": "å¯ç”¨ AI èŠå¤©", + "enable_chat_desc": "å¯ç”¨åŽï¼Œå†…容页é¢ä¸Šå°†æ˜¾ç¤ºâ€œè¯¢é—® AIâ€æŒ‰é’®ã€‚", + "chat_enabled": "AI èŠå¤©å·²å¯ç”¨", + "chat_enabled_desc": "您现在å¯ä»¥è¯¢é—®æœ‰å…³ç”µå½±å’Œç”µè§†èŠ‚ç›®çš„æ—¶å€™ã€‚ç•™æ„内容页é¢ä¸Šçš„“询问 AIâ€æŒ‰é’®ï¼", + "how_it_works": "工作原ç†", + "how_it_works_desc": "• OpenRouter æä¾›è®¿é—®å¤šä¸ª AI 模型的æƒé™\n• 您的 API å¯†é’¥ä¿æŒç§å¯†å’Œå®‰å…¨\n• å…è´¹å±‚åŒ…å«æ…·æ…¨çš„使用é™é¢\n• å¯ä»¥è¯¢é—®æœ‰å…³ç‰¹å®šå‰§é›†/电影的上下文\n• 获å–详细分æžå’Œè§£é‡Š", + "error_invalid_key": "请输入有效的 API 密钥", + "error_key_format": "OpenRouter API 密钥应以 \"sk-or-\" 开头", + "success_saved": "OpenRouter API 密钥ä¿å­˜æˆåŠŸï¼", + "error_save": "ä¿å­˜ API 密钥失败", + "confirm_remove_title": "移除 API 密钥", + "confirm_remove_msg": "确定è¦ç§»é™¤æ‚¨çš„ OpenRouter API 密钥å—?这将ç¦ç”¨ AI èŠå¤©åŠŸèƒ½ã€‚", + "success_removed": "API 密钥移除æˆåŠŸ", + "error_remove": "移除 API 密钥失败" + }, + "catalog_settings": { + "title": "目录", + "layout_phone": "目录å±å¹•布局 (手机)", + "posters_per_row": "æ¯è¡Œæµ·æŠ¥æ•°", + "auto": "自动", + "show_titles": "显示海报标题", + "show_titles_desc": "在æ¯å¼ æµ·æŠ¥ä¸‹æ–¹æ˜¾ç¤ºæ ‡é¢˜æ–‡æœ¬", + "phone_only_hint": "仅适用于手机。平æ¿ç”µè„‘ä¿æŒè‡ªé€‚应布局。", + "catalogs_group": "目录", + "enabled_count": "å·²å¯ç”¨ {{enabled}} / {{total}}", + "rename_hint": "长按目录é‡å‘½å", + "rename_modal_title": "é‡å‘½å目录", + "rename_placeholder": "输入新目录åç§°", + "error_save_name": "无法ä¿å­˜è‡ªå®šä¹‰å称。" + }, + "continue_watching_settings": { + "title": "继续观看", + "playback_behavior": "播放行为", + "use_cached": "使用缓存æµ", + "use_cached_desc": "å¯ç”¨åŽï¼Œç‚¹å‡»â€œç»§ç»­è§‚看â€é¡¹ç›®å°†ä½¿ç”¨ä»¥å‰æ’­æ”¾çš„æµç›´æŽ¥æ‰“å¼€æ’­æ”¾å™¨ã€‚ç¦ç”¨æ—¶ï¼Œæ‰“开内容å±å¹•。", + "open_metadata": "打开元数æ®å±å¹•", + "open_metadata_desc": "当ç¦ç”¨ç¼“å­˜æµæ—¶ï¼Œæ‰“开元数æ®å±å¹•è€Œä¸æ˜¯æµå±å¹•。这将显示内容详情并å…许手动选择æµã€‚", + "card_appearance": "å¡ç‰‡å¤–è§‚", + "card_style": "å¡ç‰‡æ ·å¼", + "card_style_desc": "选择“继续观看â€é¡¹ç›®åœ¨ä¸»å±å¹•上的显示方å¼", + "wide": "宽", + "poster": "海报", + "cache_settings": "缓存设置", + "cache_duration": "æµç¼“存时长", + "cache_duration_desc": "缓存æµé“¾æŽ¥åœ¨è¿‡æœŸå‰çš„ä¿ç•™æ—¶é—´", + "important_note": "é‡è¦æç¤º", + "important_note_text": "å¹¶éžæ‰€æœ‰æµé“¾æŽ¥åœ¨æ•´ä¸ªç¼“å­˜æœŸé—´éƒ½ä¿æŒæœ‰æ•ˆã€‚较长的缓存时间å¯èƒ½å¯¼è‡´é“¾æŽ¥è¿‡æœŸã€‚å¦‚æžœç¼“å­˜é“¾æŽ¥å¤±è´¥ï¼Œåº”ç”¨å°†å›žé€€åˆ°èŽ·å–æ–°æµã€‚", + "how_it_works": "工作原ç†", + "how_it_works_cached": "• æµåœ¨æ’­æ”¾åŽä¼šæ ¹æ®æ‚¨é€‰æ‹©çš„æ—¶é•¿è¿›è¡Œç¼“å­˜\n• 使用缓存æµå‰ä¼šè¿›è¡ŒéªŒè¯\n• 如果缓存无效或过期,则回退到内容å±å¹•\n• “使用缓存æµâ€æŽ§åˆ¶ç›´æŽ¥æ’­æ”¾ä¸Žå±å¹•导航\n• “打开元数æ®å±å¹•â€ä»…在ç¦ç”¨ç¼“å­˜æµæ—¶å‡ºçް", + "how_it_works_uncached": "• 当ç¦ç”¨ç¼“å­˜æµæ—¶ï¼Œç‚¹å‡»â€œç»§ç»­è§‚看â€é¡¹ç›®å°†æ‰“开内容å±å¹•\n• “打开元数æ®å±å¹•â€é€‰é¡¹æŽ§åˆ¶æ‰“开哪个å±å¹•\n• 元数æ®å±å¹•显示内容详情并å…许手动选择æµ\n• æµå±å¹•显示å¯ç”¨æµä»¥ä¾¿ç«‹å³æ’­æ”¾", + "changes_saved": "更改已ä¿å­˜", + "min": "分钟", + "hour": "å°æ—¶", + "hours": "å°æ—¶" + }, + "contributors": { + "title": "贡献者", + "special_mentions": "特别æåŠ", + "tab_contributors": "贡献者", + "tab_special": "特别æåŠ", + "tab_donors": "æèµ è€…", + "manager_role": "社区ç»ç†", + "manager_desc": "ç®¡ç† Nuvio çš„ Discord å’Œ Reddit 社区", + "sponsor_role": "æœåŠ¡å™¨èµžåŠ©å•†", + "sponsor_desc": "资助 Nuvio çš„æœåŠ¡å™¨åŸºç¡€è®¾æ–½", + "mod_role": "Discord 版主", + "mod_desc": "ååŠ©ç®¡ç† Nuvio Discord 社区", + "loading": "加载中...", + "discord_user": "Discord 用户", + "contributions": "贡献", + "gratitude_title": "我们感谢æ¯ä¸€ä»½è´¡çŒ®", + "gratitude_desc": "æ¯ä¸€è¡Œä»£ç ã€æ¯ä¸€ä¸ªé”™è¯¯æŠ¥å‘Šå’Œå»ºè®®éƒ½è®© Nuvio å˜å¾—更好", + "special_thanks_title": "特别感谢", + "special_thanks_desc": "这些了ä¸èµ·çš„äººå¸®åŠ©ç»´æŒ Nuvio 社区的è¿ä½œå’ŒæœåŠ¡å™¨åœ¨çº¿", + "donors_desc": "感谢您信任我们的建设。您的支æŒè®© Nuvio ä¿æŒå…è´¹å¹¶ä¸æ–­æ”¹è¿›ã€‚", + "latest_donations": "最新", + "leaderboard": "排行榜", + "loading_donors": "正在加载æèµ è€…...", + "no_donors": "暂无æèµ è€…", + "error_rate_limit": "超出 GitHub API 速率é™åˆ¶ã€‚请ç¨åŽå†è¯•或下拉刷新。", + "error_failed": "加载贡献者失败。请检查您的网络连接。", + "retry": "é‡è¯•", + "no_contributors": "未找到贡献者", + "loading_contributors": "正在加载贡献者..." + }, + "debrid": { + "title": "Debrid 集æˆ", + "description_torbox": "é€šè¿‡é›†æˆ Torbox è§£é” 4K é«˜è´¨é‡æµåª’体和闪电般的速度。在下方输入您的 API 密钥以立å³å‡çº§æ‚¨çš„æµåª’ä½“ä½“éªŒã€‚", + "description_torrentio": "é…ç½® Torrentio 以获å–电影和电视节目的 Torrent æµã€‚éœ€è¦ Debrid æœåŠ¡æ‰èƒ½æµå¼ä¼ è¾“内容。", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "已连接", + "status_disconnected": "已断开", + "enable_addon": "å¯ç”¨æ’ä»¶", + "disconnect_button": "断开连接并移除", + "disconnect_loading": "正在断开...", + "account_info": "账户信æ¯", + "plan": "计划", + "plan_free": "å…è´¹", + "plan_essential": "基础 ($3/月)", + "plan_pro": "专业 ($10/月)", + "plan_standard": "标准 ($5/月)", + "plan_unknown": "未知", + "expires": "过期", + "downloaded": "已下载", + "status_active": "活跃", + "connected_title": "✓ 已连接到 TorBox", + "connected_desc": "您的 TorBox æ’件已激活并æä¾›é«˜çº§æµåª’体。", + "configure_title": "é…ç½®æ’ä»¶", + "configure_desc": "自定义您的æµåª’ä½“ä½“éªŒã€‚æŒ‰è´¨é‡æŽ’åºã€è¿‡æ»¤æ–‡ä»¶å¤§å°å¹¶ç®¡ç†å…¶ä»–集æˆè®¾ç½®ã€‚", + "open_settings": "打开设置", + "what_is_debrid": "什么是 Debrid æœåŠ¡ï¼Ÿ", + "enter_api_key": "输入您的 API 密钥", + "connect_button": "连接并安装", + "connecting": "正在连接...", + "unlock_speeds_title": "è§£é”高级速度", + "unlock_speeds_desc": "èŽ·å– Torbox è®¢é˜…ä»¥è®¿é—®é›¶ç¼“å†²çš„ç¼“å­˜é«˜è´¨é‡æµåª’体。", + "get_subscription": "获å–订阅", + "powered_by": "技术支æŒ", + "disclaimer_torbox": "Nuvio 与 Torbox 没有任何关è”。", + "disclaimer_torrentio": "Nuvio 与 Torrentio 没有任何关è”。", + "installed_badge": "✓ 已安装", + "promo_title": "âš¡ éœ€è¦ Debrid æœåŠ¡ï¼Ÿ", + "promo_desc": "èŽ·å– TorBox 以获得零缓冲的闪电般 4K æµåª’体。高级缓存 Torrent å’Œå³æ—¶ä¸‹è½½ã€‚", + "promo_button": "èŽ·å– TorBox 订阅", + "service_label": "Debrid æœåŠ¡ *", + "api_key_label": "API 密钥 *", + "sorting_label": "排åº", + "exclude_qualities": "排除质é‡", + "priority_languages": "优先语言", + "max_results": "最大结果数", + "additional_options": "其他选项", + "no_download_links": "䏿˜¾ç¤ºä¸‹è½½é“¾æŽ¥", + "no_debrid_catalog": "䏿˜¾ç¤º Debrid 目录", + "install_button": "安装 Torrentio", + "installing": "正在安装...", + "update_button": "æ›´æ–°é…ç½®", + "updating": "正在更新...", + "remove_button": "移除 Torrentio", + "error_api_required": "éœ€è¦ API 密钥", + "error_api_required_desc": "请输入您的 Debrid æœåŠ¡ API 密钥以安装 Torrentio。", + "success_installed": "Torrentio æ’件安装æˆåŠŸï¼", + "success_removed": "Torrentio æ’件移除æˆåŠŸ", + "alert_disconnect_title": "æ–­å¼€ Torbox", + "alert_disconnect_msg": "ç¡®å®šè¦æ–­å¼€ Torbox å—?这将移除æ’件并清除您ä¿å­˜çš„ API 密钥。" + }, + "home_screen": { + "title": "主å±å¹•设置", + "changes_applied": "更改已应用", + "display_options": "显示选项", + "show_hero": "显示推è部分", + "show_hero_desc": "顶部的精选内容", + "show_this_week": "显示本周部分", + "show_this_week_desc": "本周新剧集", + "select_catalogs": "选择目录", + "all_catalogs": "所有目录", + "selected": "已选择", + "hero_layout": "推è部分布局", + "layout_legacy": "传统", + "layout_carousel": "轮播", + "layout_appletv": "Apple TV", + "layout_desc": "全宽横幅ã€å¯æ»‘动å¡ç‰‡æˆ– Apple TV 风格", + "featured_source": "æŽ¨èæº", + "using_catalogs": "使用目录", + "manage_selected_catalogs": "管ç†é€‰å®šçš„目录", + "dynamic_bg": "åŠ¨æ€æŽ¨è背景", + "dynamic_bg_desc": "轮播下方的模糊横幅", + "performance_note": "å¯èƒ½ä¼šå½±å“低端设备的性能。", + "posters": "海报", + "show_titles": "显示标题", + "poster_size": "海报大å°", + "poster_corners": "海报圆角", + "size_small": "å°", + "size_medium": "中", + "size_large": "大", + "corners_square": "方形", + "corners_rounded": "圆角", + "corners_pill": "胶囊", + "about_these_settings": "关于这些设置", + "about_desc": "这些设置控制内容在您主å±å¹•上的显示方å¼ã€‚更改会立å³åº”用,无需é‡å¯åº”用。", + "hero_catalogs": { + "title": "推è部分目录", + "select_all": "全选", + "clear_all": "清除全部", + "info": "选择è¦åœ¨æŽ¨è部分显示的目录。如果未选择,将使用所有目录。完æˆåŽåˆ«å¿˜äº†ç‚¹å‡»ä¿å­˜ã€‚", + "settings_saved": "设置已ä¿å­˜", + "error_load": "加载目录失败", + "movies": "电影", + "tv_shows": "电视剧" + } + }, + "calendar": { + "title": "日历", + "loading": "正在加载日历...", + "no_scheduled_episodes": "暂无预定剧集", + "check_back_later": "ç¨åŽå†æ¥çœ‹çœ‹", + "showing_episodes_for": "显示 {{date}} 的剧集", + "show_all_episodes": "显示所有剧集", + "no_episodes_for": "暂无 {{date}} 的剧集", + "no_upcoming_found": "未找到å³å°†æ’­å‡ºçš„剧集", + "add_series_desc": "将剧集添加到您的媒体库以在此处查看到å³å°†æ’­å‡ºçš„剧集" + }, + "mdblist": { + "title": "è¯„åˆ†æ¥æº", + "status_disabled": "MDBList å·²ç¦ç”¨", + "status_active": "API 密钥已激活", + "status_required": "éœ€è¦ API 密钥", + "status_disabled_desc": "MDBList 功能目å‰å·²ç¦ç”¨ã€‚", + "status_active_desc": "MDBList 评分已å¯ç”¨ã€‚", + "status_required_desc": "在下方添加您的密钥以å¯ç”¨è¯„分。", + "enable_toggle": "å¯ç”¨ MDBList", + "enable_toggle_desc": "å¼€å¯/关闭所有 MDBList 功能", + "api_section": "API 密钥", + "placeholder": "粘贴您的 MDBList API 密钥", + "save": "ä¿å­˜", + "clear": "清除密钥", + "rating_providers": "评分æä¾›å•†", + "rating_providers_desc": "选择è¦åœ¨åº”用中显示的评分", + "how_to": "å¦‚ä½•èŽ·å– API 密钥", + "step_1": "登录", + "step_1_link": "MDBList 网站", + "step_2": "å‰å¾€", + "step_2_settings": "设置", + "step_2_api": "API", + "step_2_end": "部分。", + "step_3": "ç”Ÿæˆæ–°å¯†é’¥å¹¶å¤åˆ¶ã€‚", + "go_to_website": "å‰å¾€ MDBList", + "alert_clear_title": "清除 API 密钥", + "alert_clear_msg": "确定è¦ç§»é™¤ä¿å­˜çš„ API 密钥å—?", + "success_saved": "API 密钥ä¿å­˜æˆåŠŸã€‚", + "error_empty": "API 密钥ä¸èƒ½ä¸ºç©ºã€‚", + "error_save": "ä¿å­˜æ—¶å‘生错误。请é‡è¯•。", + "api_key_empty_error": "API 密钥ä¸èƒ½ä¸ºç©ºã€‚", + "success_cleared": "API 密钥清除æˆåŠŸ", + "error_clear": "清除 API 密钥失败" + }, + "notification": { + "title": "通知设置", + "section_general": "常规", + "enable_notifications": "å¯ç”¨é€šçŸ¥", + "section_types": "通知类型", + "new_episodes": "新剧集", + "upcoming_shows": "å³å°†æ’­å‡ºçš„节目", + "reminders": "æé†’", + "section_timing": "通知时间", + "timing_desc": "在剧集播出å‰å¤šä¹…通知您?", + "hours_1": "1 å°æ—¶", + "hours_suffix": "å°æ—¶", + "section_status": "通知状æ€", + "stats_upcoming": "å³å°†æ’­å‡º", + "stats_this_week": "本周", + "stats_total": "总计", + "sync_button": "åŒæ­¥åª’体库和 Trakt", + "syncing": "æ­£åœ¨åŒæ­¥...", + "sync_desc": "è‡ªåŠ¨åŒæ­¥æ‚¨åª’体库和 Trakt 待看列表/æ”¶è—中所有节目的通知。", + "section_advanced": "高级", + "reset_button": "é‡ç½®æ‰€æœ‰é€šçŸ¥", + "test_button": "测试通知 (5ç§’)", + "test_notification_in": "通知将在 {{seconds}}s åŽå‘出...", + "test_notification_text": "通知将在 {{seconds}} ç§’åŽå‡ºçް", + "alert_reset_title": "é‡ç½®é€šçŸ¥", + "alert_reset_msg": "è¿™å°†å–æ¶ˆæ‰€æœ‰é¢„定的通知,但ä¸ä¼šä»Žæ‚¨ä¿å­˜çš„媒体库中移除任何内容。您确定å—?", + "alert_reset_success": "所有通知已é‡ç½®", + "alert_sync_complete": "åŒæ­¥å®Œæˆ", + "alert_sync_msg": "æˆåŠŸåŒæ­¥æ‚¨çš„媒体库和 Trakt 项目的通知。\n\n预定:{{upcoming}} 集å³å°†æ’­å‡º\n本周:{{thisWeek}} 集", + "alert_test_scheduled": "测试通知已安排立å³è§¦å‘" + }, + "backup": { + "title": "备份与æ¢å¤", + "options_title": "备份选项", + "options_desc": "选择è¦åŒ…å«åœ¨å¤‡ä»½ä¸­çš„内容", + "section_core": "核心数æ®", + "section_addons": "æ’件与集æˆ", + "section_settings": "设置与å好", + "library_label": "媒体库", + "library_desc": "您ä¿å­˜çš„电影和电视剧", + "watch_progress_label": "观看进度", + "watch_progress_desc": "继续观看ä½ç½®", + "addons_label": "æ’ä»¶", + "addons_desc": "已安装的 Stremio æ’ä»¶", + "plugins_label": "æ’ä»¶é…ç½®", + "plugins_desc": "自定义抓å–器é…ç½®", + "trakt_label": "Trakt 集æˆ", + "trakt_desc": "åŒæ­¥æ•°æ®å’Œè®¤è¯ä»¤ç‰Œ", + "app_settings_label": "应用设置", + "app_settings_desc": "主题ã€å好和é…ç½®", + "user_prefs_label": "用户å好", + "user_prefs_desc": "æ’件顺åºå’Œ UI 设置", + "catalog_settings_label": "目录设置", + "catalog_settings_desc": "目录过滤器和å好", + "api_keys_label": "API 密钥", + "api_keys_desc": "MDBList å’Œ OpenRouter 密钥", + "action_create": "创建备份", + "action_restore": "从备份æ¢å¤", + "section_info": "关于备份", + "info_text": "• 使用上方的开关自定义备份内容\n• 备份文件存储在本地设备上\n• 分享您的备份以在设备间传输数æ®\n• æ¢å¤å°†è¦†ç›–您当å‰çš„æ•°æ®", + "alert_create_title": "创建备份", + "alert_no_content": "未选择è¦å¤‡ä»½çš„内容。\n\n请在上方的“备份选项â€éƒ¨åˆ†å¯ç”¨è‡³å°‘一个选项。", + "alert_backup_created_title": "备份已创建", + "alert_backup_created_msg": "您的备份已创建并准备好分享。", + "alert_backup_failed_title": "备份失败", + "alert_restore_confirm_title": "确认æ¢å¤", + "alert_restore_confirm_msg": "这将从 {{date}} 创建的备份æ¢å¤æ‚¨çš„æ•°æ®ã€‚\n\næ­¤æ“作将覆盖您当å‰çš„æ•°æ®ã€‚确定è¦ç»§ç»­å—?", + "alert_restore_complete_title": "æ¢å¤å®Œæˆ", + "alert_restore_complete_msg": "您的数æ®å·²æˆåŠŸæ¢å¤ã€‚è¯·é‡æ–°å¯åŠ¨åº”ç”¨ä»¥æŸ¥çœ‹æ‰€æœ‰æ›´æ”¹ã€‚", + "alert_restore_failed_title": "æ¢å¤å¤±è´¥", + "restart_app": "é‡å¯åº”用", + "alert_restart_failed_title": "é‡å¯å¤±è´¥", + "alert_restart_failed_msg": "é‡å¯åº”ç”¨å¤±è´¥ã€‚è¯·æ‰‹åŠ¨å…³é—­å¹¶é‡æ–°æ‰“开应用以查看æ¢å¤çš„æ•°æ®ã€‚" + }, + "updates": { + "title": "应用更新", + "status_checking": "正在检查更新...", + "status_available": "有å¯ç”¨æ›´æ–°ï¼", + "status_downloading": "正在下载更新...", + "status_installing": "正在安装更新...", + "status_success": "更新安装æˆåŠŸï¼", + "status_error": "更新失败", + "status_ready": "准备检查更新", + "action_check": "检查更新", + "action_install": "安装更新", + "release_notes": "å‘布说明:", + "version": "版本:", + "last_checked": "上次检查:", + "current_version": "当å‰ç‰ˆæœ¬ï¼š", + "current_release_notes": "当å‰å‘布说明:", + "github_release": "GITHUB å‘布", + "current": "当å‰ï¼š", + "latest": "最新:", + "notes": "说明:", + "view_release": "查看å‘布", + "notification_settings": "通知设置", + "ota_alerts_label": "OTA æ›´æ–°æé†’", + "ota_alerts_desc": "显示 OTA 更新通知", + "major_alerts_label": "é‡å¤§æ›´æ–°æé†’", + "major_alerts_desc": "显示 GitHub 上新应用版本的通知", + "alert_disable_ota_title": "ç¦ç”¨ OTA æ›´æ–°æé†’?", + "alert_disable_ota_msg": "您将ä¸å†æ”¶åˆ° OTA 更新的自动通知。\n\nâš ï¸ è­¦å‘Šï¼šä¿æŒæœ€æ–°ç‰ˆæœ¬å¯¹äºŽä»¥ä¸‹æ–¹é¢å¾ˆé‡è¦ï¼š\n• 错误修å¤å’Œç¨³å®šæ€§æ”¹è¿›\n• 新功能和增强\n• æä¾›å‡†ç¡®çš„å馈和崩溃报告\n\n您ä»ç„¶å¯ä»¥åœ¨æ­¤å±å¹•手动检查更新。", + "alert_disable_major_title": "ç¦ç”¨é‡å¤§æ›´æ–°æé†’?", + "alert_disable_major_msg": "您将ä¸å†æ”¶åˆ°éœ€è¦é‡æ–°å®‰è£…çš„é‡å¤§åº”用更新通知。\n\nâš ï¸ è­¦å‘Šï¼šé‡å¤§æ›´æ–°é€šå¸¸åŒ…括:\n• 关键安全补ä¸\n• 需è¦é‡æ–°å®‰è£…应用的é‡å¤§æ›´æ”¹\n• é‡è¦çš„兼容性修å¤\n\n您ä»ç„¶å¯ä»¥æ‰‹åŠ¨æ£€æŸ¥æ›´æ–°ã€‚", + "warning_note": "ä¿æŒæé†’å¼€å¯å¯ç¡®ä¿æ‚¨æ”¶åˆ°é”™è¯¯ä¿®å¤å¹¶æä¾›å‡†ç¡®çš„崩溃报告。", + "disable": "ç¦ç”¨", + "alert_no_update_to_install": "没有å¯å®‰è£…的更新", + "alert_install_failed": "安装更新失败", + "alert_no_update_title": "æ— æ›´æ–°", + "alert_update_applied_msg": "更新将在下次应用é‡å¯æ—¶åº”用" + }, + "player": { + "title": "视频播放器", + "section_selection": "播放器选择", + "internal_title": "内置播放器", + "internal_desc": "使用应用的默认视频播放器", + "vlc_title": "VLC", + "vlc_desc": "在 VLC 媒体播放器中打开æµ", + "infuse_title": "Infuse", + "infuse_desc": "在 Infuse 播放器中打开æµ", + "outplayer_title": "OutPlayer", + "outplayer_desc": "在 OutPlayer 中打开æµ", + "vidhub_title": "VidHub", + "vidhub_desc": "在 VidHub 播放器中打开æµ", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "在 Infuse 播放器 LiveContainer 中打开æµ", + "external_title": "外部播放器", + "external_desc": "在您å好的视频播放器中打开æµ", + "section_playback": "播放选项", + "skip_intro_settings_title": "跳过片头", + "powered_by_introdb": "ç”± IntroDB æä¾›æ”¯æŒ", + "autoplay_title": "自动播放首个æµ", + "autoplay_desc": "自动开始播放列表中显示的第一个æµã€‚", + "resume_title": "始终æ¢å¤", + "resume_desc": "跳过æ¢å¤æç¤ºå¹¶è‡ªåŠ¨ä»Žæ‚¨ç¦»å¼€çš„åœ°æ–¹ç»§ç»­ï¼ˆå¦‚æžœè§‚çœ‹å°‘äºŽ 85%)。", + "engine_title": "视频播放器引擎", + "engine_desc": "自动使用 ExoPlayer 并以 MPV 作为åŽå¤‡ã€‚MPV 䏿”¯æŒæŸäº›æ ¼å¼ï¼ˆå¦‚æœæ¯”视界和 HDR),因此建议使用“自动â€ä»¥èŽ·å¾—æœ€ä½³å…¼å®¹æ€§ã€‚", + "decoder_title": "è§£ç å™¨æ¨¡å¼", + "decoder_desc": "è§†é¢‘è§£ç æ–¹å¼ã€‚推è使用“自动â€ä»¥èŽ·å¾—æœ€ä½³å¹³è¡¡ã€‚", + "gpu_title": "GPU 渲染", + "gpu_desc": "GPU-Next æä¾›æ›´å¥½çš„ HDR 和色彩管ç†ã€‚", + "external_downloads_title": "外部播放器用于下载", + "external_downloads_desc": "在您首选的外部播放器中播放下载的内容。", + "restart_required": "需è¦é‡å¯", + "restart_msg_decoder": "请é‡å¯åº”用以使解ç å™¨æ›´æ”¹ç”Ÿæ•ˆã€‚", + "restart_msg_gpu": "请é‡å¯åº”用以使 GPU æ¨¡å¼æ›´æ”¹ç”Ÿæ•ˆã€‚", + "option_auto": "自动", + "option_auto_desc_engine": "ExoPlayer + MPV åŽå¤‡", + "option_mpv": "MPV", + "option_mpv_desc": "ä»… MPV", + "option_auto_desc_decoder": "最佳平衡", + "option_sw": "软件", + "option_sw_desc": "软件解ç ", + "option_hw": "硬件", + "option_hw_desc": "硬件解ç ", + "option_hw_plus": "硬件+", + "option_hw_plus_desc": "全硬件解ç ", + "option_gpu_desc": "标准", + "option_gpu_next_desc": "高级" + }, + "plugins": { + "title": "æ’ä»¶", + "enable_title": "å¯ç”¨æ’ä»¶", + "enable_desc": "å¯ç”¨æ’件引擎以解æžå¤–部媒体æº", + "repo_config_title": "仓库é…ç½®", + "repo_config_desc": "管ç†å¤–部æ’ä»¶ä»“åº“ã€‚åœ¨ä¸‹æ–¹å¼€å¯æˆ–关闭æ¯ä¸ªä»“库。", + "your_repos": "仓库", + "your_repos_desc": "é…ç½®æ’件的外部æºã€‚", + "add_repo_button": "添加仓库", + "refresh": "刷新", + "remove": "移除", + "enabled": "å·²å¯ç”¨", + "disabled": "å·²ç¦ç”¨", + "updating": "正在更新...", + "success": "æˆåŠŸ", + "error": "错误", + "alert_repo_added": "仓库已添加且æ’件加载æˆåŠŸ", + "alert_repo_saved": "仓库 URL ä¿å­˜æˆåŠŸ", + "alert_repo_refreshed": "仓库刷新æˆåŠŸ", + "alert_invalid_url": "无效的 URL æ ¼å¼", + "alert_plugins_cleared": "所有æ’件已移除", + "alert_cache_cleared": "仓库缓存已清除æˆåŠŸ", + "unknown": "未知", + "active": "活跃", + "available": "å¯ç”¨", + "platform_disabled": "å¹³å°å·²ç¦ç”¨", + "limited": "å—é™", + "clear_all": "清除所有æ’ä»¶", + "clear_all_desc": "确定è¦ç§»é™¤æ‰€æœ‰å·²å®‰è£…çš„æ’ä»¶å—?此æ“作无法撤销。", + "clear_cache": "清除仓库缓存", + "clear_cache_desc": "这将移除ä¿å­˜çš„仓库 URL 并清除所有缓存的æ’ä»¶æ•°æ®ã€‚您需è¦é‡æ–°è¾“入您的仓库 URL。", + "add_new_repo": "添加新仓库", + "available_plugins": "å¯ç”¨æ’ä»¶ ({{count}})", + "placeholder": "æœç´¢æ’ä»¶...", + "all": "全部", + "filter_all": "所有类型", + "filter_movies": "电影", + "filter_tv": "电视剧", + "enable_all": "å¯ç”¨å…¨éƒ¨", + "disable_all": "ç¦ç”¨å…¨éƒ¨", + "no_plugins_found": "未找到æ’ä»¶", + "no_plugins_available": "暂无æ’ä»¶å¯ç”¨", + "no_match_desc": "æ²¡æœ‰åŒ¹é… \"{{query}}\" çš„æ’件。å°è¯•ä¸åŒçš„æœç´¢è¯ã€‚", + "configure_repo_desc": "在上é…置仓库以查看å¯ç”¨æ’件。", + "clear_search": "清除æœç´¢", + "no_external_player": "无外部播放器", + "showbox_token": "ShowBox UI 令牌", + "showbox_placeholder": "粘贴您的 ShowBox UI 令牌", + "save": "ä¿å­˜", + "clear": "清除", + "additional_settings": "其他设置", + "enable_url_validation": "å¯ç”¨ URL 验è¯", + "url_validation_desc": "Before returning media URLs, validate them (may slow down results but improves reliability)", + "group_streams": "分组æ’ä»¶æº", + "group_streams_desc": "å¯ç”¨åŽï¼ŒæºæŒ‰ä»“库分组。ç¦ç”¨åŽï¼Œæ¯ä¸ªæ’件显示为å•独的æä¾›å•†ã€‚", + "sort_quality": "按质é‡ä¼˜å…ˆæŽ’åº", + "sort_quality_desc": "å¯ç”¨åŽï¼Œæºå°†æŒ‰è´¨é‡ä¼˜å…ˆæŽ’åºã€‚仅在å¯ç”¨åˆ†ç»„æ—¶å¯ç”¨ã€‚", + "show_logos": "显示æ’件徽标", + "show_logos_desc": "在æºå±å¹•上的媒体链接æ—边显示æ’件徽标。", + "quality_filtering": "è´¨é‡è¿‡æ»¤", + "quality_filtering_desc": "从æœç´¢ç»“果中排除特定视频分辨率。点击质é‡ä»¥ä»Žæ’件结果中排除。", + "excluded_qualities": "排除的质é‡ï¼š", + "language_filtering": "语言过滤", + "language_filtering_desc": "从æœç´¢ç»“果中排除特定语言。点击语言以从æ’件结果中排除。", + "note": "注æ„:", + "language_filtering_note": "此过滤器仅适用于包å«è¯­è¨€ä¿¡æ¯çš„æä¾›å•†ã€‚它ä¸ä¼šå½±å“å…¶ä»–æä¾›å•†ã€‚", + "excluded_languages": "排除的语言:", + "about_title": "关于æ’ä»¶", + "about_desc_1": "æ’件是模å—化组件,å¯ä»Žå„ç§å¤–部å议适é…内容。它们在您的设备上本地è¿è¡Œï¼Œå¯ä»¥ä»Žå—信任的仓库安装。", + "about_desc_2": "标记为“å—é™â€çš„æ’ä»¶å¯èƒ½éœ€è¦ç‰¹å®šçš„外部é…置。", + "help_title": "æ’件设置", + "help_step_1": "1. **å¯ç”¨æ’ä»¶** - 打开主开关", + "help_step_2": "2. **添加仓库** - 添加有效的仓库 URL", + "help_step_3": "3. **刷新仓库** - 获å–å¯ç”¨æ’ä»¶", + "help_step_4": "4. **激活** - å¯ç”¨æ‚¨å¸Œæœ›ä½¿ç”¨çš„æ’ä»¶", + "got_it": "知é“了ï¼", + "repo_format_hint": "æ ¼å¼ï¼šhttps://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "å–æ¶ˆ", + "add": "添加" + }, + "theme": { + "title": "应用主题", + "select_theme": "选择主题", + "create_custom": "创建自定义主题", + "options": "选项", + "use_dominant_color": "使用艺术作å“的主色调", + "categories": { + "all": "所有主题", + "dark": "暗色主题", + "colorful": "多彩", + "custom": "我的主题" + }, + "editor": { + "theme_name_placeholder": "主题åç§°", + "save": "ä¿å­˜", + "primary": "主è¦", + "secondary": "次è¦", + "background": "背景", + "invalid_name_title": "无效åç§°", + "invalid_name_msg": "请输入有效的主题åç§°" + }, + "alerts": { + "delete_title": "删除主题", + "delete_msg": "确定è¦åˆ é™¤ \"{{name}}\" å—?", + "ok": "确定", + "delete": "删除", + "cancel": "å–æ¶ˆ", + "back": "设置" + } + }, + "legal": { + "title": "法律与å…责声明", + "intro_title": "应用性质", + "intro_text": "Nuvio 是一个媒体播放器和元数æ®ç®¡ç†åº”用程åºã€‚它仅作为æµè§ˆå…¬å¼€å¯ç”¨å…ƒæ•°æ®ï¼ˆç”µå½±ã€ç”µè§†èŠ‚ç›®ç­‰ï¼‰å’Œæ’­æ”¾ç”¨æˆ·æˆ–ç¬¬ä¸‰æ–¹æ‰©å±•æä¾›çš„媒体文件的客户端界é¢ã€‚Nuvio æœ¬èº«ä¸æ‰˜ç®¡ã€å­˜å‚¨ã€åˆ†å‘或索引任何媒体内容。", + "extensions_title": "第三方æ’ä»¶", + "extensions_text": "Nuvio ä½¿ç”¨å¯æ‰©å±•架构,å…许用户安装第三方æ’件。这些æ’件由与 Nuvio 无关的独立开å‘者开å‘和维护。我们无法控制也无法对任何第三方æ’件的内容ã€åˆæ³•性或功能负责。", + "user_resp_title": "用户责任", + "user_resp_text": "用户对其安装的æ’件和访问的内容负全责。使用本应用程åºå³è¡¨ç¤ºæ‚¨åŒæ„ç¡®ä¿æ‚¨æ‹¥æœ‰ä½¿ç”¨ Nuvio è®¿é—®ä»»ä½•å†…å®¹çš„åˆæ³•æƒåˆ©ã€‚Nuvio 的开å‘者ä¸è®¤å¯æˆ–鼓励侵犯版æƒã€‚", + "dmca_title": "版æƒä¸Ž DMCA", + "dmca_text": "我们尊é‡ä»–人的知识产æƒã€‚由于 Nuvio 䏿‰˜ç®¡ä»»ä½•内容,我们无法从互è”网上移除内容。但是,如果您认为应用程åºç•Œé¢æœ¬èº«ä¾µçŠ¯äº†æ‚¨çš„æƒåˆ©ï¼Œè¯·è”系我们。", + "warranty_title": "æ— æ‹…ä¿", + "warranty_text": "æœ¬è½¯ä»¶â€œæŒ‰åŽŸæ ·â€æä¾›ï¼Œä¸æä¾›ä»»ä½•æ˜Žç¤ºæˆ–æš—ç¤ºçš„æ‹…ä¿ã€‚åœ¨ä»»ä½•æƒ…å†µä¸‹ï¼Œä½œè€…æˆ–ç‰ˆæƒæŒæœ‰äººå‡ä¸å¯¹å› ä½¿ç”¨æœ¬è½¯ä»¶è€Œå¼•èµ·çš„ä»»ä½•ç´¢èµ”ã€æŸå®³æˆ–其他责任负责。" + }, + "plugin_tester": { + "title": "æ’件测试器", + "subtitle": "实时è¿è¡ŒæŠ“å–器并检查日志", + "tabs": { + "individual": "å•个", + "repo": "仓库测试器", + "code": "代ç ", + "logs": "日志", + "results": "结果" + }, + "common": { + "error": "错误", + "success": "æˆåŠŸ", + "movie": "电影", + "tv": "电视剧", + "tmdb_id": "TMDB ID", + "season": "å­£", + "episode": "集", + "running": "正在è¿è¡Œ...", + "run_test": "è¿è¡Œæµ‹è¯•", + "play": "播放", + "done": "完æˆ", + "test": "测试", + "testing": "正在测试..." + }, + "individual": { + "load_from_url": "从 URL 加载", + "load_from_url_desc": "粘贴原始 GitHub URL 或本地 IP 并点击下载。", + "enter_url_error": "请输入 URL", + "code_loaded": "代ç å·²ä»Ž URL 加载", + "fetch_error": "获å–失败: {{message}}", + "no_code_error": "没有å¯è¿è¡Œçš„代ç ", + "plugin_code": "æ’件代ç ", + "focus_editor": "èšç„¦ä»£ç ç¼–辑器", + "code_placeholder": "// 在此粘贴æ’件代ç ...", + "test_parameters": "æµ‹è¯•å‚æ•°", + "no_logs": "暂无日志。è¿è¡Œæµ‹è¯•以查看输出。", + "no_streams": "暂未找到æµã€‚", + "streams_found": "找到 {{count}} 个æµ", + "streams_found_plural": "找到 {{count}} 个æµ", + "tap_play_hint": "点击播放以在原生播放器中测试æµã€‚", + "unnamed_stream": "æœªå‘½åæµ", + "quality": "è´¨é‡: {{quality}}", + "size": "大å°: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "头信æ¯: {{count}} 自定义头", + "find_placeholder": "在代ç ä¸­æŸ¥æ‰¾...", + "edit_code_title": "编辑代ç ", + "no_url_stream_error": "未找到此æµçš„ URL" + }, + "repo": { + "title": "仓库测试器", + "description": "获å–仓库(本地 URL 或 GitHub raw)并测试æ¯ä¸ªæä¾›å•†ã€‚", + "enter_repo_url_error": "请输入仓库 URL", + "invalid_url_title": "无效 URL", + "invalid_url_msg": "使用 GitHub raw URL 或本地 http(s) URL。\n\n示例:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "æ— æ³•ä»Žè¾“å…¥æž„å»ºæ¸…å• URL", + "manifest_fetch_error": "èŽ·å–æ¸…å•失败", + "repo_manifest_fetch_error": "获å–仓库清å•失败", + "missing_filename": "清å•中缺少文件å", + "scraper_build_error": "无法构建抓å–器 URL", + "download_scraper_error": "下载抓å–器失败", + "test_failed": "测试失败", + "test_parameters": "ä»“åº“æµ‹è¯•å‚æ•°", + "test_parameters_desc": "è¿™äº›å‚æ•°ä»…用于仓库测试器。", + "using_info": "使用: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "使用: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "æä¾›å•†", + "repository_default": "仓库", + "providers_count": "{{count}} æä¾›å•†", + "fetch_hint": "获å–仓库以列出æä¾›å•†ã€‚", + "test_all": "全部测试", + "status_running": "è¿è¡Œä¸­", + "status_ok": "正常 ({{count}})", + "status_ok_empty": "正常 (0)", + "status_failed": "失败", + "status_idle": "空闲", + "tried_url": "å°è¯•: {{url}}", + "provider_logs": "æä¾›å•†æ—¥å¿—", + "no_logs_captured": "未æ•获日志。" + } + } +} \ No newline at end of file diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 208f77f5..8f09b755 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -8,6 +8,7 @@ import it from './locales/it.json'; import de from './locales/de.json'; import hr from './locales/hr.json'; +import zhCN from './locales/zh-CN.json'; export const resources = { en: { translation: en }, @@ -19,4 +20,5 @@ export const resources = { it: { translation: it }, de: { translation: de }, hr: { translation: hr }, + 'zh-CN': { translation: zhCN }, }; From 77f5cb2b80ad324f6ef511755f32e454289a14cb Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Sun, 25 Jan 2026 22:55:22 +0530 Subject: [PATCH 47/58] added Hindi --- src/constants/locales.ts | 3 +- src/i18n/locales/ar.json | 1 + src/i18n/locales/de.json | 1 + src/i18n/locales/en.json | 1 + src/i18n/locales/es.json | 1 + src/i18n/locales/fr.json | 1 + src/i18n/locales/hi.json | 1366 ++++++++++++++++++ src/i18n/locales/hr.json | 1 + src/i18n/locales/it.json | 1 + src/i18n/locales/pt-BR.json | 1 + src/i18n/locales/pt-PT.json | 1 + src/i18n/locales/zh-CN.json | 1 + src/i18n/resources.ts | 2 + src/screens/ContributorsScreen.tsx | 172 +-- src/screens/settings/AboutSettingsScreen.tsx | 9 + 15 files changed, 1476 insertions(+), 86 deletions(-) create mode 100644 src/i18n/locales/hi.json diff --git a/src/constants/locales.ts b/src/constants/locales.ts index 73de628c..a1370055 100644 --- a/src/constants/locales.ts +++ b/src/constants/locales.ts @@ -8,5 +8,6 @@ export const LOCALES = [ { code: 'it', key: 'italian' }, { code: 'es', key: 'spanish' }, { code: 'hr', key: 'croatian' }, - { code: 'zh-CN', key: 'chinese' } + { code: 'zh-CN', key: 'chinese' }, + { code: 'hi', key: 'hindi' } ]; \ No newline at end of file diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index f6e8b36f..851cf6f8 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -632,6 +632,7 @@ "italian": "الإيطالية", "croatian": "الكرواتية", "chinese": "الصينية (المبسطة)", + "hindi": "الهندية", "account": "الحساب", "content_discovery": "المحتوى والاكتشاÙ", "appearance": "المظهر", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index faee6ba6..8dde0c84 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -632,6 +632,7 @@ "italian": "Italienisch", "croatian": "Kroatisch", "chinese": "Chinesisch (Vereinfacht)", + "hindi": "Hindi", "account": "Konto", "content_discovery": "Inhalt & Entdeckung", "appearance": "Aussehen", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index bf9eb0dd..7958dd53 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -632,6 +632,7 @@ "italian": "Italian", "croatian": "Croatian", "chinese": "Chinese (Simplified)", + "hindi": "Hindi", "account": "Account", "content_discovery": "Content & Discovery", "appearance": "Appearance", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index d5ae8b02..3d5153fd 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -632,6 +632,7 @@ "italian": "Italiano", "croatian": "Croata", "chinese": "Chino (Simplificado)", + "hindi": "Hindi", "account": "Cuenta", "content_discovery": "Contenido y descubrimiento", "appearance": "Apariencia", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index d6c39784..2054595a 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -632,6 +632,7 @@ "italian": "Italien", "croatian": "Croate", "chinese": "Chinois (Simplifié)", + "hindi": "Hindi", "account": "Compte", "content_discovery": "Contenu et découverte", "appearance": "Apparence", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json new file mode 100644 index 00000000..055ab60b --- /dev/null +++ b/src/i18n/locales/hi.json @@ -0,0 +1,1366 @@ +{ + "common": { + "loading": "लोड हो रहा है...", + "cancel": "रदà¥à¤¦ करें", + "save": "सहेजें", + "delete": "हटाà¤à¤‚", + "edit": "संपादित करें", + "search": "खोजें", + "error": "तà¥à¤°à¥à¤Ÿà¤¿", + "success": "सफल", + "ok": "ठीक है", + "unknown": "अजà¥à¤žà¤¾à¤¤", + "retry": "पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें", + "try_again": "फिर से पà¥à¤°à¤¯à¤¾à¤¸ करें", + "go_back": "वापस जाà¤à¤‚", + "settings": "सेटिंगà¥à¤¸", + "close": "बंद करें", + "show_more": "और दिखाà¤à¤‚", + "show_less": "कम दिखाà¤à¤‚", + "load_more": "और लोड करें", + "unknown_date": "अजà¥à¤žà¤¾à¤¤ तिथि", + "anonymous_user": "अजà¥à¤žà¤¾à¤¤ उपयोगकरà¥à¤¤à¤¾", + "time": { + "now": "अभी", + "minutes_ago": "{{count}} मिनट पहले", + "hours_ago": "{{count}} घंटे पहले", + "days_ago": "{{count}} दिन पहले" + }, + "days_short": { + "sun": "रवि", + "mon": "सोम", + "tue": "मंगल", + "wed": "बà¥à¤§", + "thu": "गà¥à¤°à¥", + "fri": "शà¥à¤•à¥à¤°", + "sat": "शनि" + }, + "email": "ईमेल", + "status": "सà¥à¤¥à¤¿à¤¤à¤¿" + }, + "home": { + "categories": { + "movies": "फिलà¥à¤®à¥‡à¤‚", + "series": "सीरीज", + "channels": "चैनल" + }, + "movies": "फिलà¥à¤®à¥‡à¤‚", + "tv_shows": "टीवी शोज़", + "load_more_catalogs": "और कैटलॉग लोड करें", + "no_content": "कोई सामगà¥à¤°à¥€ उपलबà¥à¤§ नहीं", + "add_catalogs": "कैटलॉग जोड़ें", + "sign_in_available": "साइन इन उपलबà¥à¤§ है", + "sign_in_desc": "आप सेटिंगà¥à¤¸ → खाता से कभी भी साइन इन कर सकते हैं", + "view_all": "सभी देखें", + "this_week": "इस सपà¥à¤¤à¤¾à¤¹", + "upcoming": "आगामी", + "recently_released": "हाल ही में जारी किया गया", + "no_scheduled_episodes": "बिना अनà¥à¤¸à¥‚चित à¤à¤ªà¤¿à¤¸à¥‹à¤¡ वाली सीरीज", + "check_back_later": "बाद में वापस देखें", + "continue_watching": "देखना जारी रखें", + "up_next": "अगला", + "up_next_caps": "अगला", + "released": "जारी किया गया", + "new": "नया", + "tba": "घोषित किया जाà¤à¤—ा", + "new_episodes": "{{count}} नठà¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "season_short": "सी{{season}}", + "episode_short": "à¤{{episode}}", + "season": "सीज़न {{season}}", + "episode": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ {{episode}}", + "movie": "फिलà¥à¤®", + "series": "सीरीज", + "tv_show": "टीवी शो", + "percent_watched": "{{percent}}% देखा गया", + "view_details": "विवरण देखें", + "remove": "हटाà¤à¤‚", + "play": "चलाà¤à¤‚", + "play_now": "अभी चलाà¤à¤‚", + "resume": "फिर से शà¥à¤°à¥‚ करें", + "info": "जानकारी", + "more_info": "अधिक जानकारी", + "my_list": "मेरी सूची", + "save": "सहेजें", + "saved": "सहेजा गया", + "retry": "पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें", + "install_addons": "à¤à¤¡-ऑन इंसà¥à¤Ÿà¥‰à¤² करें", + "settings": "सेटिंगà¥à¤¸", + "no_featured_content": "कोई विशेष सामगà¥à¤°à¥€ नहीं", + "couldnt_load_featured": "विशेष सामगà¥à¤°à¥€ लोड नहीं की जा सकी", + "no_featured_desc": "कैटलॉग वाले à¤à¤¡-ऑन इंसà¥à¤Ÿà¥‰à¤² करें या अपनी सेटिंगà¥à¤¸ में कंटेंट सà¥à¤°à¥‹à¤¤ बदलें।", + "load_error_desc": "विशेष सामगà¥à¤°à¥€ लाने में समसà¥à¤¯à¤¾ थी। कृपया अपना कनेकà¥à¤¶à¤¨ जांचें और पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "no_featured_available": "कोई विशेष सामगà¥à¤°à¥€ उपलबà¥à¤§ नहीं", + "no_description": "कोई विवरण उपलबà¥à¤§ नहीं" + }, + "navigation": { + "home": "होम", + "library": "लाइबà¥à¤°à¥‡à¤°à¥€", + "search": "खोजें", + "downloads": "डाउनलोड", + "settings": "सेटिंगà¥à¤¸" + }, + "search": { + "title": "खोजें", + "recent_searches": "हालिया खोजें", + "discover": "खोजें", + "movies": "फिलà¥à¤®à¥‡à¤‚", + "tv_shows": "टीवी शोज़", + "select_catalog": "कैटलॉग चà¥à¤¨à¥‡à¤‚", + "all_genres": "सभी शैलियां", + "discovering": "सामगà¥à¤°à¥€ खोजी जा रही है...", + "show_more": "और दिखाà¤à¤‚ ({{count}})", + "no_content_found": "कोई सामगà¥à¤°à¥€ नहीं मिली", + "try_different": "à¤à¤• अलग शैली या कैटलॉग का पà¥à¤°à¤¯à¤¾à¤¸ करें", + "select_catalog_desc": "खोजने के लिठà¤à¤• कैटलॉग चà¥à¤¨à¥‡à¤‚", + "tap_catalog_desc": "शà¥à¤°à¥‚ करने के लिठऊपर कैटलॉग चिप पर टैप करें", + "placeholder": "फिलà¥à¤®à¥‡à¤‚, शोज़ खोजें...", + "keep_typing": "टाइप करते रहें...", + "type_characters": "खोजने के लिठकम से कम 2 अकà¥à¤·à¤° टाइप करें", + "no_results": "कोई परिणाम नहीं मिला", + "try_keywords": "अलग-अलग कीवरà¥à¤¡ आज़माà¤à¤‚ या अपनी वरà¥à¤¤à¤¨à¥€ जांचें", + "select_type": "पà¥à¤°à¤•ार चà¥à¤¨à¥‡à¤‚", + "browse_movies": "फिलà¥à¤® कैटलॉग बà¥à¤°à¤¾à¤‰à¤œà¤¼ करें", + "browse_tv": "टीवी सीरीज कैटलॉग बà¥à¤°à¤¾à¤‰à¤œà¤¼ करें", + "select_genre": "शैली चà¥à¤¨à¥‡à¤‚", + "show_all_content": "सभी सामगà¥à¤°à¥€ दिखाà¤à¤‚", + "genres_count": "{{count}} शैलियां" + }, + "library": { + "title": "लाइबà¥à¤°à¥‡à¤°à¥€", + "watched": "देखा गया", + "continue": "जारी रखें", + "watchlist": "वॉचलिसà¥à¤Ÿ", + "collection": "संगà¥à¤°à¤¹", + "rated": "रेटेड", + "items": "आइटम", + "trakt_collections": "Trakt संगà¥à¤°à¤¹", + "trakt_collection": "Trakt संगà¥à¤°à¤¹", + "no_trakt": "कोई Trakt संगà¥à¤°à¤¹ नहीं", + "no_trakt_desc": "आपके Trakt संगà¥à¤°à¤¹ यहां दिखाई देंगे जब आप Trakt का उपयोग करना शà¥à¤°à¥‚ करेंगे", + "load_collections": "संगà¥à¤°à¤¹ लोड करें", + "empty_folder": "{{folder}} में कोई सामगà¥à¤°à¥€ नहीं", + "empty_folder_desc": "यह संगà¥à¤°à¤¹ खाली है", + "refresh": "ताज़ा करें", + "no_movies": "अभी कोई फिलà¥à¤®à¥‡à¤‚ नहीं हैं", + "no_series": "अभी कोई टीवी शोज़ नहीं हैं", + "no_content": "अभी कोई सामगà¥à¤°à¥€ नहीं है", + "add_content_desc": "अपनी लाइबà¥à¤°à¥‡à¤°à¥€ में कà¥à¤› सामगà¥à¤°à¥€ जोड़ें ताकि वह यहां दिखाई दे", + "find_something": "देखने के लिठकà¥à¤› खोजें", + "removed_from_library": "लाइबà¥à¤°à¥‡à¤°à¥€ से हटाया गया", + "item_removed": "आइटम आपकी लाइबà¥à¤°à¥‡à¤°à¥€ से हटा दिया गया", + "failed_update_library": "लाइबà¥à¤°à¥‡à¤°à¥€ अपडेट करने में विफल", + "unable_remove": "लाइबà¥à¤°à¥‡à¤°à¥€ से आइटम हटाने में असमरà¥à¤¥", + "marked_watched": "देखा गया के रूप में चिहà¥à¤¨à¤¿à¤¤", + "marked_unwatched": "अनदेखा के रूप में चिहà¥à¤¨à¤¿à¤¤", + "item_marked_watched": "आइटम देखा गया के रूप में चिहà¥à¤¨à¤¿à¤¤", + "item_marked_unwatched": "आइटम अनदेखा के रूप में चिहà¥à¤¨à¤¿à¤¤", + "failed_update_watched": "देखे गठकी सà¥à¤¥à¤¿à¤¤à¤¿ अपडेट करने में विफल", + "unable_update_watched": "देखे गठकी सà¥à¤¥à¤¿à¤¤à¤¿ अपडेट करने में असमरà¥à¤¥", + "added_to_library": "लाइबà¥à¤°à¥‡à¤°à¥€ में जोड़ा गया", + "item_added": "आपकी सà¥à¤¥à¤¾à¤¨à¥€à¤¯ लाइबà¥à¤°à¥‡à¤°à¥€ में जोड़ा गया", + "add_to_library": "लाइबà¥à¤°à¥‡à¤°à¥€ में जोड़ें", + "remove_from_library": "लाइबà¥à¤°à¥‡à¤°à¥€ से हटाà¤à¤‚", + "mark_watched": "देखा गया के रूप में चिहà¥à¤¨à¤¿à¤¤ करें", + "mark_unwatched": "अनदेखा के रूप में चिहà¥à¤¨à¤¿à¤¤ करें", + "share": "साà¤à¤¾ करें", + "add_to_watchlist": "Trakt वॉचलिसà¥à¤Ÿ में जोड़ें", + "remove_from_watchlist": "Trakt वॉचलिसà¥à¤Ÿ से हटाà¤à¤‚", + "added_to_watchlist": "वॉचलिसà¥à¤Ÿ में जोड़ा गया", + "added_to_watchlist_desc": "आपकी Trakt वॉचलिसà¥à¤Ÿ में जोड़ा गया", + "removed_from_watchlist": "वॉचलिसà¥à¤Ÿ से हटाया गया", + "removed_from_watchlist_desc": "आपकी Trakt वॉचलिसà¥à¤Ÿ से हटाया गया", + "add_to_collection": "Trakt संगà¥à¤°à¤¹ में जोड़ें", + "remove_from_collection": "Trakt संगà¥à¤°à¤¹ से हटाà¤à¤‚", + "added_to_collection": "संगà¥à¤°à¤¹ में जोड़ा गया", + "added_to_collection_desc": "आपके Trakt संगà¥à¤°à¤¹ में जोड़ा गया", + "removed_from_collection": "संगà¥à¤°à¤¹ से हटाया गया", + "removed_from_collection_desc": "आपके Trakt संगà¥à¤°à¤¹ से हटाया गया" + }, + "metadata": { + "unable_to_load": "सामगà¥à¤°à¥€ लोड करने में असमरà¥à¤¥", + "error_code": "तà¥à¤°à¥à¤Ÿà¤¿ कोड: {{code}}", + "content_not_found": "सामगà¥à¤°à¥€ नहीं मिली", + "content_not_found_desc": "यह सामगà¥à¤°à¥€ मौजूद नहीं है या हटा दी गई है।", + "server_error": "सरà¥à¤µà¤° तà¥à¤°à¥à¤Ÿà¤¿", + "server_error_desc": "सरà¥à¤µà¤° असà¥à¤¥à¤¾à¤¯à¥€ रूप से अनà¥à¤ªà¤²à¤¬à¥à¤§ है। कृपया बाद में पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "bad_gateway": "खराब गेटवे", + "bad_gateway_desc": "सरà¥à¤µà¤° समसà¥à¤¯à¤¾à¤“ं का सामना कर रहा है। कृपया बाद में पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "service_unavailable": "सेवा अनà¥à¤ªà¤²à¤¬à¥à¤§", + "service_unavailable_desc": "सेवा वरà¥à¤¤à¤®à¤¾à¤¨ में रखरखाव के लिठबंद है। कृपया बाद में पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "too_many_requests": "बहà¥à¤¤ सारे अनà¥à¤°à¥‹à¤§", + "too_many_requests_desc": "आप बहà¥à¤¤ सारे अनà¥à¤°à¥‹à¤§ कर रहे हैं। कृपया कà¥à¤› कà¥à¤·à¤£ पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ करें और पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "request_timeout": "अनà¥à¤°à¥‹à¤§ टाइमआउट", + "request_timeout_desc": "अनà¥à¤°à¥‹à¤§ में बहà¥à¤¤ अधिक समय लगा। कृपया पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "network_error": "नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¤¿", + "network_error_desc": "कृपया अपना इंटरनेट कनेकà¥à¤¶à¤¨ जांचें और पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "auth_error": "पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण तà¥à¤°à¥à¤Ÿà¤¿", + "auth_error_desc": "कृपया अपनी खाता सेटिंगà¥à¤¸ जांचें और पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "access_denied": "पहà¥à¤‚च असà¥à¤µà¥€à¤•ृत", + "access_denied_desc": "आपको इस सामगà¥à¤°à¥€ तक पहà¥à¤‚चने की अनà¥à¤®à¤¤à¤¿ नहीं है।", + "connection_error": "कनेकà¥à¤¶à¤¨ तà¥à¤°à¥à¤Ÿà¤¿", + "streams_unavailable": "सà¥à¤Ÿà¥à¤°à¥€à¤®à¥à¤¸ अनà¥à¤ªà¤²à¤¬à¥à¤§", + "streams_unavailable_desc": "सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग सà¥à¤°à¥‹à¤¤ वरà¥à¤¤à¤®à¤¾à¤¨ में अनà¥à¤ªà¤²à¤¬à¥à¤§ हैं। कृपया बाद में पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "unknown_error": "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿", + "something_went_wrong": "कà¥à¤› गलत हो गया। कृपया पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "cast": "कलाकार", + "more_like_this": "इसके जैसा और", + "collection": "संगà¥à¤°à¤¹", + "episodes": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡à¥à¤¸", + "seasons": "सीज़न", + "posters": "पोसà¥à¤Ÿà¤°", + "banners": " बैनर", + "specials": "विशेष", + "season_number": "सीज़न {{number}}", + "episode_count": "{{count}} à¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "episode_count_plural": "{{count}} à¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "no_episodes": "कोई à¤à¤ªà¤¿à¤¸à¥‹à¤¡ उपलबà¥à¤§ नहीं", + "no_episodes_for_season": "सीज़न {{season}} के लिठकोई à¤à¤ªà¤¿à¤¸à¥‹à¤¡ उपलबà¥à¤§ नहीं", + "episodes_not_released": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ अभी जारी नहीं हो सकते हैं", + "no_description": "कोई विवरण उपलबà¥à¤§ नहीं", + "episode_label": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ {{number}}", + "watch_again": "फिर से देखें", + "completed": "पूरा हà¥à¤†", + "play_episode": "सी{{season}}à¤{{episode}} चलाà¤à¤‚", + "play": "चलाà¤à¤‚", + "watched": "देखा गया", + "watched_on_trakt": "Trakt पर देखा गया", + "synced_with_trakt": "Trakt के साथ सिंक किया गया", + "saved": "सहेजा गया", + "director": "निरà¥à¤¦à¥‡à¤¶à¤•", + "directors": "निरà¥à¤¦à¥‡à¤¶à¤•", + "creator": "निरà¥à¤®à¤¾à¤¤à¤¾", + "creators": "निरà¥à¤®à¤¾à¤¤à¤¾", + "production": "पà¥à¤°à¥‹à¤¡à¤•à¥à¤¶à¤¨", + "network": "नेटवरà¥à¤•", + "mark_watched": "देखा गया के रूप में चिहà¥à¤¨à¤¿à¤¤ करें", + "mark_unwatched": "अनदेखा के रूप में चिहà¥à¤¨à¤¿à¤¤ करें", + "marking": "चिहà¥à¤¨à¤¿à¤¤ किया जा रहा है...", + "removing": "हटाया जा रहा है...", + "unmark_season": "सीज़न {{season}} को अनमारà¥à¤• करें", + "mark_season": "सीज़न {{season}} को चिहà¥à¤¨à¤¿à¤¤ करें", + "resume": "फिर से शà¥à¤°à¥‚ करें", + "spoiler_warning": "सà¥à¤ªà¥‰à¤‡à¤²à¤° चेतावनी", + "spoiler_warning_desc": "इस टिपà¥à¤ªà¤£à¥€ में सà¥à¤ªà¥‰à¤‡à¤²à¤° हैं। कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से इसे पà¥à¤°à¤•ट करना चाहते हैं?", + "cancel": "रदà¥à¤¦ करें", + "reveal_spoilers": "सà¥à¤ªà¥‰à¤‡à¤²à¤° दिखाà¤à¤‚", + "movie_details": "फिलà¥à¤® विवरण", + "show_details": "शो विवरण", + "tagline": "टैगलाइन", + "status": "सà¥à¤¥à¤¿à¤¤à¤¿", + "release_date": "रिलीज़ की तारीख", + "runtime": "अवधि", + "budget": "बजट", + "revenue": "राजसà¥à¤µ", + "origin_country": "मूल देश", + "original_language": "मूल भाषा", + "first_air_date": "पहली पà¥à¤°à¤¸à¤¾à¤°à¤£ तिथि", + "last_air_date": "अंतिम पà¥à¤°à¤¸à¤¾à¤°à¤£ तिथि", + "total_episodes": "कà¥à¤² à¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "episode_runtime": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ की अवधि", + "created_by": "दà¥à¤µà¤¾à¤°à¤¾ निरà¥à¤®à¤¿à¤¤", + "backdrop_gallery": "बैकडà¥à¤°à¥‰à¤ª गैलरी", + "loading_episodes": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ लोड हो रहे हैं...", + "no_episodes_available": "कोई à¤à¤ªà¤¿à¤¸à¥‹à¤¡ उपलबà¥à¤§ नहीं", + "play_next": "सी{{season}}à¤{{episode}} चलाà¤à¤‚", + "play_next_episode": "अगला à¤à¤ªà¤¿à¤¸à¥‹à¤¡ चलाà¤à¤‚", + "save": "सहेजें", + "percent_watched": "{{percent}}% देखा गया", + "percent_watched_trakt": "{{percent}}% देखा गया (Trakt पर {{traktPercent}}%)", + "synced_with_trakt_progress": "Trakt के साथ सिंक किया गया", + "using_trakt_progress": "Trakt पà¥à¤°à¤—ति का उपयोग कर रहा है", + "added_to_collection_hero": "संगà¥à¤°à¤¹ में जोड़ा गया", + "added_to_collection_desc_hero": "आपके Trakt संगà¥à¤°à¤¹ में जोड़ा गया", + "removed_from_collection_hero": "संगà¥à¤°à¤¹ से हटाया गया", + "removed_from_collection_desc_hero": "आपके Trakt संगà¥à¤°à¤¹ से हटाया गया", + "mark_as_watched": "देखा गया के रूप में चिहà¥à¤¨à¤¿à¤¤ करें", + "mark_as_unwatched": "अनदेखा के रूप में चिहà¥à¤¨à¤¿à¤¤ करें" + }, + "cast": { + "biography": "जीवनी", + "known_for": "इसके लिठजाना जाता है", + "personal_info": "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त जानकारी", + "born_in": "जनà¥à¤® {{place}} में", + "filmography": "filmography", + "also_known_as": "इस रूप में भी जाना जाता है", + "no_info_available": "कोई अतिरिकà¥à¤¤ जानकारी उपलबà¥à¤§ नहीं", + "as_character": "{{character}} के रूप में", + "loading_details": "विवरण लोड हो रहा है...", + "years_old": "{{age}} वरà¥à¤·", + "view_filmography": "Filmography देखें", + "filter": "फिलà¥à¤Ÿà¤°", + "sort_by": "कà¥à¤°à¤®à¤¬à¤¦à¥à¤§ करें", + "sort_popular": "लोकपà¥à¤°à¤¿à¤¯", + "sort_latest": "नवीनतम", + "sort_upcoming": "आगामी", + "upcoming_badge": "आगामी", + "coming_soon": "जलà¥à¤¦ आ रहा है", + "filmography_count": "Filmography • {{count}} शीरà¥à¤·à¤•", + "loading_filmography": "Filmography लोड हो रही है...", + "load_more_remaining": "और लोड करें ({{count}} शेष)", + "alert_error_title": "तà¥à¤°à¥à¤Ÿà¤¿", + "alert_error_message": "\"{{title}}\" लोड करने में असमरà¥à¤¥à¥¤ कृपया बाद में पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "alert_ok": "ठीक है", + "no_upcoming": "इस अभिनेता के लिठकोई आगामी रिलीज़ उपलबà¥à¤§ नहीं", + "no_content": "इस अभिनेता के लिठकोई सामगà¥à¤°à¥€ उपलबà¥à¤§ नहीं", + "no_movies": "इस अभिनेता के लिठकोई फिलà¥à¤®à¥‡à¤‚ उपलबà¥à¤§ नहीं", + "no_tv": "इस अभिनेता के लिठकोई टीवी शो उपलबà¥à¤§ नहीं" + }, + "comments": { + "title": "Trakt टिपà¥à¤ªà¤£à¤¿à¤¯à¤¾à¤", + "spoiler_warning": "âš ï¸ à¤‡à¤¸ टिपà¥à¤ªà¤£à¥€ में सà¥à¤ªà¥‰à¤‡à¤²à¤° हैं। पà¥à¤°à¤•ट करने के लिठटैप करें।", + "spoiler": "सà¥à¤ªà¥‰à¤‡à¤²à¤°", + "contains_spoilers": "सà¥à¤ªà¥‰à¤‡à¤²à¤° शामिल हैं", + "reveal": "पà¥à¤°à¤•ट करें", + "vip": "VIP", + "unavailable": "टिपà¥à¤ªà¤£à¤¿à¤¯à¤¾à¤ अनà¥à¤ªà¤²à¤¬à¥à¤§", + "no_comments": "Trakt पर अभी तक कोई टिपà¥à¤ªà¤£à¥€ नहीं", + "not_in_database": "यह सामगà¥à¤°à¥€ अभी तक Trakt के डेटाबेस में नहीं हो सकती है", + "check_trakt": "Trakt जांचें" + }, + "trailers": { + "title": "टà¥à¤°à¥‡à¤²à¤°", + "official_trailers": "आधिकारिक टà¥à¤°à¥‡à¤²à¤°", + "official_trailer": "आधिकारिक टà¥à¤°à¥‡à¤²à¤°", + "teasers": "टीज़र", + "teaser": "टीज़र", + "clips_scenes": "कà¥à¤²à¤¿à¤ªà¥à¤¸ और दृशà¥à¤¯", + "clip": "कà¥à¤²à¤¿à¤ª", + "featurettes": "फीचरेटà¥à¤¸", + "featurette": "फीचरेट", + "behind_the_scenes": "परà¥à¤¦à¥‡ के पीछे", + "no_trailers": "कोई टà¥à¤°à¥‡à¤²à¤° उपलबà¥à¤§ नहीं", + "unavailable": "टà¥à¤°à¥‡à¤²à¤° अनà¥à¤ªà¤²à¤¬à¥à¤§", + "unavailable_desc": "इस समय यह टà¥à¤°à¥‡à¤²à¤° लोड नहीं किया जा सका। कृपया बाद में पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "unable_to_play": "टà¥à¤°à¥‡à¤²à¤° चलाने में असमरà¥à¤¥à¥¤ कृपया पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "watch_on_youtube": "YouTube पर देखें" + }, + "catalog": { + "no_content_found": "कोई सामगà¥à¤°à¥€ नहीं मिली", + "no_content_filters": "चयनित फिलà¥à¤Ÿà¤° के लिठकोई सामगà¥à¤°à¥€ नहीं मिली", + "loading_content": "सामगà¥à¤°à¥€ लोड हो रही है...", + "back": "वापस", + "in_theaters": "सिनेमाघरों में", + "all": "सभी", + "failed_tmdb": "TMDB से सामगà¥à¤°à¥€ लोड करने में विफल", + "movies": "फिलà¥à¤®à¥‡à¤‚", + "tv_shows": "टीवी शोज़", + "channels": "चैनल" + }, + "streams": { + "back_to_episodes": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡à¥à¤¸ पर वापस जाà¤à¤‚", + "back_to_info": "जानकारी पर वापस जाà¤à¤‚", + "fetching_from": "से पà¥à¤°à¤¾à¤ªà¥à¤¤ किया जा रहा है:", + "no_sources_available": "कोई सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग सà¥à¤°à¥‹à¤¤ उपलबà¥à¤§ नहीं", + "add_sources_desc": "कृपया सेटिंगà¥à¤¸ में सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग सà¥à¤°à¥‹à¤¤ जोड़ें", + "add_sources": "सà¥à¤°à¥‹à¤¤ जोड़ें", + "finding_streams": "उपलबà¥à¤§ सà¥à¤Ÿà¥à¤°à¥€à¤®à¥à¤¸ खोजा जा रहा है...", + "finding_best_stream": "ऑटोपà¥à¤²à¥‡ के लिठसरà¥à¤µà¤¶à¥à¤°à¥‡à¤·à¥à¤  सà¥à¤Ÿà¥à¤°à¥€à¤® खोजा जा रहा है...", + "still_fetching": "अभी भी सà¥à¤Ÿà¥à¤°à¥€à¤®à¥à¤¸ पà¥à¤°à¤¾à¤ªà¥à¤¤ कर रहे हैं...", + "no_streams_available": "कोई सà¥à¤Ÿà¥à¤°à¥€à¤® उपलबà¥à¤§ नहीं", + "starting_best_stream": "सरà¥à¤µà¤¶à¥à¤°à¥‡à¤·à¥à¤  सà¥à¤Ÿà¥à¤°à¥€à¤® शà¥à¤°à¥‚ हो रहा है...", + "loading_more_sources": "और सà¥à¤°à¥‹à¤¤ लोड हो रहे हैं..." + }, + "player_ui": { + "via": "{{name}} के माधà¥à¤¯à¤® से", + "audio_tracks": "ऑडियो टà¥à¤°à¥ˆà¤•", + "no_audio_tracks": "कोई ऑडियो टà¥à¤°à¥ˆà¤• उपलबà¥à¤§ नहीं", + "playback_speed": "पà¥à¤²à¥‡à¤¬à¥ˆà¤• गति", + "on_hold": "होलà¥à¤¡ पर", + "playback_error": "पà¥à¤²à¥‡à¤¬à¥ˆà¤• तà¥à¤°à¥à¤Ÿà¤¿", + "unknown_error": "पà¥à¤²à¥‡à¤¬à¥ˆà¤• के दौरान à¤à¤• अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆà¥¤", + "copy_error": "तà¥à¤°à¥à¤Ÿà¤¿ विवरण कॉपी करें", + "copied_to_clipboard": "कà¥à¤²à¤¿à¤ªà¤¬à¥‹à¤°à¥à¤¡ पर कॉपी किया गया", + "dismiss": "खारिज करें", + "continue_watching": "देखना जारी रखें", + "start_over": "शà¥à¤°à¥‚ से", + "resume": "फिर से शà¥à¤°à¥‚ करें", + "change_source": "सà¥à¤°à¥‹à¤¤ बदलें", + "switching_source": "सà¥à¤°à¥‹à¤¤ बदला जा रहा है...", + "no_sources_found": "कोई सà¥à¤°à¥‹à¤¤ नहीं मिला", + "sources": "सà¥à¤°à¥‹à¤¤", + "finding_sources": "सà¥à¤°à¥‹à¤¤ खोजा जा रहा है...", + "unknown_source": "अजà¥à¤žà¤¾à¤¤ सà¥à¤°à¥‹à¤¤", + "sources_limited": "पà¥à¤°à¤¦à¤¾à¤¤à¤¾ तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¥‹à¤‚ के कारण सà¥à¤°à¥‹à¤¤ सीमित हो सकते हैं।", + "episodes": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡à¥à¤¸", + "specials": "विशेष", + "season": "सीज़न {{season}}", + "stream": "सà¥à¤Ÿà¥à¤°à¥€à¤® {{number}}", + "subtitles": "उपशीरà¥à¤·à¤•", + "built_in": "अंतरà¥à¤¨à¤¿à¤¹à¤¿à¤¤", + "addons": "à¤à¤¡-ऑन", + "style": "शैली", + "none": "कोई नहीं", + "search_online_subtitles": "ऑनलाइन उपशीरà¥à¤·à¤• खोजें", + "preview": "पूरà¥à¤µà¤¾à¤µà¤²à¥‹à¤•न", + "quick_presets": "तà¥à¤µà¤°à¤¿à¤¤ पà¥à¤°à¥€à¤¸à¥‡à¤Ÿ", + "default": "डिफ़ॉलà¥à¤Ÿ", + "yellow": "पीला", + "high_contrast": "उचà¥à¤š कंटà¥à¤°à¤¾à¤¸à¥à¤Ÿ", + "large": "बड़ा", + "core": "कोर", + "font_size": "फ़ॉनà¥à¤Ÿ आकार", + "show_background": "पृषà¥à¤ à¤­à¥‚मि दिखाà¤à¤‚", + "advanced": "उनà¥à¤¨à¤¤", + "position": "सà¥à¤¥à¤¿à¤¤à¤¿", + "text_color": "पाठ रंग", + "align": "संरेखित करें", + "bottom_offset": "नीचे का ऑफसेट", + "background_opacity": "पृषà¥à¤ à¤­à¥‚मि अपारदरà¥à¤¶à¤¿à¤¤à¤¾", + "text_shadow": "पाठ छाया", + "on": "चालू", + "off": "बंद", + "outline_color": "रूपरेखा रंग", + "outline": "रूपरेखा", + "outline_width": "रूपरेखा चौड़ाई", + "letter_spacing": "अकà¥à¤·à¤° रिकà¥à¤¤à¤¿", + "line_height": "पंकà¥à¤¤à¤¿ की ऊंचाई", + "timing_offset": "समय ऑफसेट (सेकंड)", + "visual_sync": "दृशà¥à¤¯ सिंक", + "timing_hint": "यदि आवशà¥à¤¯à¤• हो तो सिंक करने के लिठउपशीरà¥à¤·à¤• को पहले (-) या बाद में (+) खिसकाà¤à¤‚।", + "reset_defaults": "डिफ़ॉलà¥à¤Ÿ पर रीसेट करें" + }, + "downloads": { + "title": "डाउनलोड", + "no_downloads": "अभी तक कोई डाउनलोड नहीं", + "no_downloads_desc": "डाउनलोड की गई सामगà¥à¤°à¥€ ऑफ़लाइन देखने के लिठयहां दिखाई देगी", + "explore": "सामगà¥à¤°à¥€ à¤à¤•à¥à¤¸à¤ªà¥à¤²à¥‹à¤° करें", + "path_copied": "पथ कॉपी किया गया", + "path_copied_desc": "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ फ़ाइल पथ कà¥à¤²à¤¿à¤ªà¤¬à¥‹à¤°à¥à¤¡ पर कॉपी किया गया", + "copied": "कॉपी किया गया", + "incomplete": "डाउनलोड अधूरा", + "incomplete_desc": "डाउनलोड अभी पूरा नहीं हà¥à¤† है", + "not_available": "उपलबà¥à¤§ नहीं", + "not_available_desc": "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ फ़ाइल पथ केवल डाउनलोड पूरा होने के बाद उपलबà¥à¤§ होता है।", + "status_downloading": "डाउनलोड हो रहा है", + "status_completed": "पूरा हà¥à¤†", + "status_paused": "रà¥à¤•ा हà¥à¤†", + "status_error": "तà¥à¤°à¥à¤Ÿà¤¿", + "status_queued": "कतार में", + "status_unknown": "अजà¥à¤žà¤¾à¤¤", + "provider": "पà¥à¤°à¤¦à¤¾à¤¤à¤¾", + "streaming_playlist_warning": "चल नहीं सकता - सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग पà¥à¤²à¥‡à¤²à¤¿à¤¸à¥à¤Ÿ", + "remaining": "शेष", + "not_ready": "डाउनलोड तैयार नहीं", + "not_ready_desc": "कृपया डाउनलोड पूरा होने तक पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ करें।", + "filter_all": "सभी", + "filter_active": "सकà¥à¤°à¤¿à¤¯", + "filter_done": "हो गया", + "filter_paused": "रà¥à¤•ा हà¥à¤†", + "no_filter_results": "कोई {{filter}} डाउनलोड नहीं", + "try_different_filter": "à¤à¤• अलग फ़िलà¥à¤Ÿà¤° चà¥à¤¨à¤¨à¥‡ का पà¥à¤°à¤¯à¤¾à¤¸ करें", + "limitations_title": "डाउनलोड सीमाà¤à¤‚", + "limitations_msg": "• 1MB से छोटी फ़ाइलें आमतौर पर M3U8 सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग पà¥à¤²à¥‡à¤²à¤¿à¤¸à¥à¤Ÿ होती हैं और ऑफ़लाइन देखने के लिठडाउनलोड नहीं की जा सकतीं। ये केवल ऑनलाइन सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग के साथ काम करती हैं और इनमें वीडियो सेगमेंट के लिंक होते हैं, वासà¥à¤¤à¤µà¤¿à¤• वीडियो सामगà¥à¤°à¥€ नहीं।", + "remove_title": "डाउनलोड हटाà¤à¤‚", + "remove_confirm": "\"{{title}}\"{{season_episode}} हटाà¤à¤‚?", + "cancel": "रदà¥à¤¦ करें", + "remove": "हटाà¤à¤‚" + }, + "addons": { + "title": "à¤à¤¡-ऑन", + "reorder_mode": "पà¥à¤¨à¤ƒ कà¥à¤°à¤®à¤¬à¤¦à¥à¤§ मोड", + "reorder_info": "सामगà¥à¤°à¥€ लोड करते समय शीरà¥à¤· पर सà¥à¤¥à¤¿à¤¤ à¤à¤¡-ऑन की पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता अधिक होती है", + "add_addon_placeholder": "à¤à¤¡-ऑन URL", + "add_button": "à¤à¤¡-ऑन जोड़ें", + "my_addons": "मेरे à¤à¤¡-ऑन", + "community_addons": "समà¥à¤¦à¤¾à¤¯ à¤à¤¡-ऑन", + "no_addons": "कोई à¤à¤¡-ऑन इंसà¥à¤Ÿà¥‰à¤² नहीं", + "uninstall_title": "à¤à¤¡-ऑन अनइंसà¥à¤Ÿà¥‰à¤² करें", + "uninstall_message": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से {{name}} अनइंसà¥à¤Ÿà¥‰à¤² करना चाहते हैं?", + "uninstall_button": "अनइंसà¥à¤Ÿà¥‰à¤² करें", + "install_success": "à¤à¤¡-ऑन सफलतापूरà¥à¤µà¤• इंसà¥à¤Ÿà¥‰à¤² किया गया", + "install_error": "à¤à¤¡-ऑन इंसà¥à¤Ÿà¥‰à¤² करने में विफल", + "load_error": "à¤à¤¡-ऑन लोड करने में विफल", + "fetch_error": "à¤à¤¡-ऑन विवरण पà¥à¤°à¤¾à¤ªà¥à¤¤ करने में विफल", + "invalid_url": "कृपया à¤à¤• à¤à¤¡-ऑन URL दरà¥à¤œ करें", + "configure": "कॉनà¥à¤«à¤¼à¤¿à¤—र करें", + "version": "संसà¥à¤•रण: {{version}}", + "installed_addons": "इंसà¥à¤Ÿà¥‰à¤² किठगठà¤à¤¡-ऑन", + "reorder_drag_title": "पà¥à¤¨à¤ƒ कà¥à¤°à¤®à¤¬à¤¦à¥à¤§ करने के लिठà¤à¤¡-ऑन खींचें", + "install": "इंसà¥à¤Ÿà¥‰à¤² करें", + "config_unavailable_title": "कॉनà¥à¤«à¤¼à¤¿à¤—रेशन अनà¥à¤ªà¤²à¤¬à¥à¤§", + "config_unavailable_msg": "इस à¤à¤¡-ऑन के लिठकॉनà¥à¤«à¤¼à¤¿à¤—रेशन URL निरà¥à¤§à¤¾à¤°à¤¿à¤¤ नहीं किया जा सका।", + "cannot_open_config_title": "कॉनà¥à¤«à¤¼à¤¿à¤—रेशन नहीं खोल सकते", + "cannot_open_config_msg": "कॉनà¥à¤«à¤¼à¤¿à¤—रेशन URL ({{url}}) नहीं खोला जा सकता। à¤à¤¡-ऑन में कॉनà¥à¤«à¤¼à¤¿à¤—रेशन पृषà¥à¤  नहीं हो सकता है।", + "description": "विवरण", + "supported_types": "समरà¥à¤¥à¤¿à¤¤ पà¥à¤°à¤•ार", + "catalogs": "कैटलॉग", + "no_description": "कोई विवरण उपलबà¥à¤§ नहीं", + "overview": "अवलोकन", + "no_categories": "कोई शà¥à¤°à¥‡à¤£à¤¿à¤¯à¤¾à¤‚ नहीं", + "pre_installed": "पहले से इंसà¥à¤Ÿà¥‰à¤²" + }, + "trakt": { + "title": "Trakt सेटिंगà¥à¤¸", + "settings_title": "Trakt सेटिंगà¥à¤¸", + "connect_title": "Trakt के साथ कनेकà¥à¤Ÿ करें", + "connect_desc": "Trakt.tv के साथ अपने देखने के इतिहास, वॉचलिसà¥à¤Ÿ और संगà¥à¤°à¤¹ को सिंक करें", + "sign_in": "Trakt के साथ साइन इन करें", + "sign_out": "साइन आउट", + "sign_out_confirm": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से अपने Trakt खाते से साइन आउट करना चाहते हैं?", + "joined": "{{date}} को शामिल हà¥à¤", + "sync_settings_title": "सिंक सेटिंगà¥à¤¸", + "sync_info": "Trakt से कनेकà¥à¤Ÿ होने पर, पूरà¥à¤£ इतिहास सीधे API से सिंक होता है और सà¥à¤¥à¤¾à¤¨à¥€à¤¯ संगà¥à¤°à¤¹à¤£ में नहीं लिखा जाता है। आपकी देखना जारी रखें सूची आपकी वैशà¥à¤µà¤¿à¤• Trakt पà¥à¤°à¤—ति को दरà¥à¤¶à¤¾à¤¤à¥€ है।", + "auto_sync_label": "पà¥à¤²à¥‡à¤¬à¥ˆà¤• पà¥à¤°à¤—ति ऑटो-सिंक करें", + "auto_sync_desc": "Trakt पर देखने की पà¥à¤°à¤—ति सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से सिंक करें", + "import_history_label": "देखा गया इतिहास आयात करें", + "import_history_desc": "Trakt से अपने देखने के इतिहास और पà¥à¤°à¤—ति को आयात करने के लिठ\"अभी सिंक करें\" का उपयोग करें", + "sync_now_button": "अभी सिंक करें", + "display_settings_title": "पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ सेटिंगà¥à¤¸", + "show_comments_label": "Trakt टिपà¥à¤ªà¤£à¤¿à¤¯à¤¾à¤ दिखाà¤à¤‚", + "show_comments_desc": "उपलबà¥à¤§ होने पर मेटाडेटा सà¥à¤•à¥à¤°à¥€à¤¨ में Trakt टिपà¥à¤ªà¤£à¤¿à¤¯à¤¾à¤ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें", + "maintenance_title": "रखरखाव के तहत", + "maintenance_unavailable": "Trakt अनà¥à¤ªà¤²à¤¬à¥à¤§", + "maintenance_desc": "रखरखाव के लिठTrakt à¤à¤•ीकरण असà¥à¤¥à¤¾à¤¯à¥€ रूप से रोका गया है। रखरखाव पूरा होने तक सभी सिंकिंग और पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण अकà¥à¤·à¤® हैं।", + "maintenance_button": "सेवा रखरखाव के तहत", + "auth_success_title": "सफलतापूरà¥à¤µà¤• कनेकà¥à¤Ÿ किया गया", + "auth_success_msg": "आपका Trakt खाता सफलतापूरà¥à¤µà¤• कनेकà¥à¤Ÿ हो गया है।", + "auth_error_title": "पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण तà¥à¤°à¥à¤Ÿà¤¿", + "auth_error_msg": "Trakt के साथ पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण पूरा करने में विफल।", + "auth_error_generic": "पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण के दौरान à¤à¤• तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆà¥¤", + "sign_out_error": "Trakt से साइन आउट करने में विफल।", + "sync_complete_title": "सिंक पूरà¥à¤£", + "sync_success_msg": "Trakt के साथ आपकी देखने की पà¥à¤°à¤—ति सफलतापूरà¥à¤µà¤• सिंक की गई।", + "sync_error_msg": "सिंक विफल रहा। कृपया पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें।" + }, + "simkl": { + "title": "Simkl सेटिंगà¥à¤¸", + "settings_title": "Simkl सेटिंगà¥à¤¸", + "connect_title": "Simkl के साथ कनेकà¥à¤Ÿ करें", + "connect_desc": "अपने देखने के इतिहास को सिंक करें और टà¥à¤°à¥ˆà¤• करें कि आप कà¥à¤¯à¤¾ देख रहे हैं", + "sign_in": "Simkl के साथ साइन इन करें", + "sign_out": "डिसà¥à¤•नेकà¥à¤Ÿ करें", + "sign_out_confirm": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से Simkl से डिसà¥à¤•नेकà¥à¤Ÿ करना चाहते हैं?", + "syncing_desc": "आपके देखे गठआइटम Simkl के साथ सिंक हो रहे हैं।", + "auth_success_title": "सफलतापूरà¥à¤µà¤• कनेकà¥à¤Ÿ किया गया", + "auth_success_msg": "आपका Simkl खाता सफलतापूरà¥à¤µà¤• कनेकà¥à¤Ÿ हो गया है।", + "auth_error_title": "पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण तà¥à¤°à¥à¤Ÿà¤¿", + "auth_error_msg": "Simkl के साथ पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण पूरा करने में विफल।", + "auth_error_generic": "पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण के दौरान à¤à¤• तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆà¥¤", + "sign_out_error": "Simkl से डिसà¥à¤•नेकà¥à¤Ÿ करने में विफल।", + "config_error_title": "कॉनà¥à¤«à¤¼à¤¿à¤—रेशन तà¥à¤°à¥à¤Ÿà¤¿", + "config_error_msg": "परà¥à¤¯à¤¾à¤µà¤°à¤£ चर में Simkl कà¥à¤²à¤¾à¤‡à¤‚ट आईडी गायब है।", + "conflict_title": "संघरà¥à¤·", + "conflict_msg": "जब Trakt कनेकà¥à¤Ÿ होता है तो आप Simkl से कनेकà¥à¤Ÿ नहीं कर सकते। कृपया पहले Trakt डिसà¥à¤•नेकà¥à¤Ÿ करें।", + "disclaimer": "Nuvio Simkl से संबदà¥à¤§ नहीं है।" + }, + "tmdb_settings": { + "title": "TMDb सेटिंगà¥à¤¸", + "metadata_enrichment": "मेटाडेटा संवरà¥à¤§à¤¨", + "metadata_enrichment_desc": "बेहतर विवरण और जानकारी के लिठTMDb डेटा के साथ अपनी सामगà¥à¤°à¥€ मेटाडेटा बढ़ाà¤à¤‚।", + "enable_enrichment": "संवरà¥à¤§à¤¨ सकà¥à¤·à¤® करें", + "enable_enrichment_desc": "कलाकार, पà¥à¤°à¤®à¤¾à¤£à¤¨, लोगो/पोसà¥à¤Ÿà¤°, और उतà¥à¤ªà¤¾à¤¦à¤¨ जानकारी के लिठTMDb के साथ à¤à¤¡-ऑन मेटाडेटा बढ़ाता है।", + "localized_text": "सà¥à¤¥à¤¾à¤¨à¥€à¤¯à¤•ृत पाठ", + "localized_text_desc": "TMDb से अपनी पसंदीदा भाषा में शीरà¥à¤·à¤• और विवरण पà¥à¤°à¤¾à¤ªà¥à¤¤ करें।", + "language": "भाषा", + "change": "बदलें", + "logo_preview": "logo पूरà¥à¤µà¤¾à¤µà¤²à¥‹à¤•न", + "logo_preview_desc": "पूरà¥à¤µà¤¾à¤µà¤²à¥‹à¤•न दिखाता है कि चयनित भाषा में सà¥à¤¥à¤¾à¤¨à¥€à¤¯à¤•ृत लोगो कैसे दिखाई देंगे।", + "example": "उदाहरण:", + "no_logo": "कोई लोगो उपलबà¥à¤§ नहीं", + "enrichment_options": "संवरà¥à¤§à¤¨ विकलà¥à¤ª", + "enrichment_options_desc": "नियंतà¥à¤°à¤¿à¤¤ करें कि TMDb से कौन सा डेटा पà¥à¤°à¤¾à¤ªà¥à¤¤ किया जाता है। अकà¥à¤·à¤® विकलà¥à¤ª उपलबà¥à¤§ होने पर à¤à¤¡-ऑन डेटा का उपयोग करेंगे।", + "cast_crew": "कलाकार और कà¥à¤°à¥‚", + "cast_crew_desc": "पà¥à¤°à¥‹à¤«à¤¼à¤¾à¤‡à¤² फ़ोटो वाले अभिनेता, निरà¥à¤¦à¥‡à¤¶à¤•, लेखक", + "title_description": "शीरà¥à¤·à¤• और विवरण", + "title_description_desc": "TMDb सà¥à¤¥à¤¾à¤¨à¥€à¤¯à¤•ृत शीरà¥à¤·à¤• और अवलोकन पाठ का उपयोग करें", + "title_logos": "शीरà¥à¤·à¤• लोगो", + "title_logos_desc": "उचà¥à¤š-गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ वाले शीरà¥à¤·à¤• उपचार चितà¥à¤°", + "banners_backdrops": "बैनर और बैकडà¥à¤°à¥‰à¤ª", + "banners_backdrops_desc": "उचà¥à¤š-रिज़ॉलà¥à¤¯à¥‚शन बैकडà¥à¤°à¥‰à¤ª चितà¥à¤°", + "certification": "सामगà¥à¤°à¥€ पà¥à¤°à¤®à¤¾à¤£à¤¨", + "certification_desc": "आयॠरेटिंग (PG-13, R, TV-MA, आदि)", + "recommendations": "सिफारिशें", + "recommendations_desc": "समान सामगà¥à¤°à¥€ सà¥à¤à¤¾à¤µ", + "episode_data": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ डेटा", + "episode_data_desc": "टीवी शो के लिठà¤à¤ªà¤¿à¤¸à¥‹à¤¡ थंबनेल, जानकारी और फ़ॉलबैक", + "season_posters": "सीज़न पोसà¥à¤Ÿà¤°", + "season_posters_desc": "सीज़न-विशिषà¥à¤Ÿ पोसà¥à¤Ÿà¤° चितà¥à¤°", + "production_info": "उतà¥à¤ªà¤¾à¤¦à¤¨ जानकारी", + "production_info_desc": "लोगो के साथ नेटवरà¥à¤• और उतà¥à¤ªà¤¾à¤¦à¤¨ कंपनियां", + "movie_details": "फिलà¥à¤® विवरण", + "movie_details_desc": "बजट, राजसà¥à¤µ, अवधि, टैगलाइन", + "tv_details": "टीवी शो विवरण", + "tv_details_desc": "सà¥à¤¥à¤¿à¤¤à¤¿, सीज़न गणना, नेटवरà¥à¤•, निरà¥à¤®à¤¾à¤¤à¤¾", + "movie_collections": "फिलà¥à¤® संगà¥à¤°à¤¹", + "movie_collections_desc": "फà¥à¤°à¥‡à¤‚चाइजी फिलà¥à¤®à¥‡à¤‚ (मारà¥à¤µà¤², सà¥à¤Ÿà¤¾à¤° वारà¥à¤¸, आदि)", + "api_configuration": "API कॉनà¥à¤«à¤¼à¤¿à¤—रेशन", + "api_configuration_desc": "उनà¥à¤¨à¤¤ कारà¥à¤¯à¤•à¥à¤·à¤®à¤¤à¤¾ के लिठअपनी TMDb API पहà¥à¤‚च कॉनà¥à¤«à¤¼à¤¿à¤—र करें।", + "custom_api_key": "कसà¥à¤Ÿà¤® API कà¥à¤‚जी", + "custom_api_key_desc": "बेहतर पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ और समरà¥à¤ªà¤¿à¤¤ दर सीमाओं के लिठअपनी सà¥à¤µà¤¯à¤‚ की TMDb API कà¥à¤‚जी का उपयोग करें।", + "custom_key_active": "कसà¥à¤Ÿà¤® API कà¥à¤‚जी सकà¥à¤°à¤¿à¤¯", + "api_key_required": "API कà¥à¤‚जी आवशà¥à¤¯à¤•", + "api_key_placeholder": "अपनी TMDb API कà¥à¤‚जी (v3) पेसà¥à¤Ÿ करें", + "how_to_get_key": "TMDb API कà¥à¤‚जी कैसे पà¥à¤°à¤¾à¤ªà¥à¤¤ करें?", + "built_in_key_msg": "वरà¥à¤¤à¤®à¤¾à¤¨ में अंतरà¥à¤¨à¤¿à¤¹à¤¿à¤¤ API कà¥à¤‚जी का उपयोग कर रहा है। बेहतर पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ के लिठअपनी कà¥à¤‚जी का उपयोग करने पर विचार करें।", + "cache_size": "कैश का आकार", + "clear_cache": "कैश साफ़ करें", + "cache_days": "पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ को बेहतर बनाने के लिठTMDB पà¥à¤°à¤¤à¤¿à¤•à¥à¤°à¤¿à¤¯à¤¾à¤à¤‚ 7 दिनों के लिठकैश की जाती हैं", + "choose_language": "भाषा चà¥à¤¨à¥‡à¤‚", + "choose_language_desc": "TMDb सामगà¥à¤°à¥€ के लिठअपनी पसंदीदा भाषा चà¥à¤¨à¥‡à¤‚", + "popular": "लोकपà¥à¤°à¤¿à¤¯", + "all_languages": "सभी भाषाà¤à¤‚", + "search_results": "खोज परिणाम", + "no_languages_found": "\"{{query}}\" के लिठकोई भाषा नहीं मिली", + "clear_search": "खोज साफ़ करें", + "clear_cache_title": "TMDB कैश साफ़ करें", + "clear_cache_msg": "यह सभी कैश किठगठTMDB डेटा ({{size}}) को साफ़ कर देगा। कैश के पà¥à¤¨à¤°à¥à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ तक लोड होने में असà¥à¤¥à¤¾à¤¯à¥€ रूप से समय लग सकता है।", + "clear_cache_success": "TMDB कैश सफलतापूरà¥à¤µà¤• साफ़ किया गया।", + "clear_cache_error": "कैश साफ़ करने में विफल।", + "clear_api_key_title": "API कà¥à¤‚जी साफ़ करें", + "clear_api_key_msg": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से अपनी कसà¥à¤Ÿà¤® API कà¥à¤‚जी हटाना चाहते हैं और डिफ़ॉलà¥à¤Ÿ पर लौटना चाहते हैं?", + "clear_api_key_success": "API कà¥à¤‚जी सफलतापूरà¥à¤µà¤• साफ़ की गई", + "clear_api_key_error": "API कà¥à¤‚जी साफ़ करने में विफल", + "empty_api_key": "API कà¥à¤‚जी खाली नहीं हो सकती।", + "invalid_api_key": "अमानà¥à¤¯ API कà¥à¤‚जी। कृपया जांचें और पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "save_error": "सहेजते समय à¤à¤• तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆà¥¤ कृपया पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "using_builtin_key": "अब अंतरà¥à¤¨à¤¿à¤¹à¤¿à¤¤ TMDb API कà¥à¤‚जी का उपयोग कर रहा है।", + "using_custom_key": "अब आपकी कसà¥à¤Ÿà¤® TMDb API कà¥à¤‚जी का उपयोग कर रहा है।", + "enter_custom_key": "कृपया अपनी कसà¥à¤Ÿà¤® TMDb API कà¥à¤‚जी दरà¥à¤œ करें और सहेजें।", + "key_verified": "API कà¥à¤‚जी सतà¥à¤¯à¤¾à¤ªà¤¿à¤¤ और सफलतापूरà¥à¤µà¤• सहेजी गई।" + }, + "settings": { + "language": "भाषा", + "select_language": "भाषा चà¥à¤¨à¥‡à¤‚", + "english": "अंगà¥à¤°à¥‡à¤œà¤¼à¥€", + "portuguese": "पà¥à¤°à¥à¤¤à¤—ाली", + "portuguese_br": "पà¥à¤°à¥à¤¤à¤—ाली (बà¥à¤°à¤¾à¤œà¥€à¤²)", + "portuguese_pt": "पà¥à¤°à¥à¤¤à¤—ाली (पà¥à¤°à¥à¤¤à¤—ाल)", + "german": "जरà¥à¤®à¤¨", + "arabic": "अरबी", + "spanish": "सà¥à¤ªà¥‡à¤¨à¤¿à¤¶", + "french": "फà¥à¤°à¥‡à¤‚च", + "italian": "इतालवी", + "croatian": "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤ˆ", + "chinese": "चीनी (सरलीकृत)", + "hindi": "हिनà¥à¤¦à¥€", + "account": "खाता", + "content_discovery": "सामगà¥à¤°à¥€ और खोज", + "appearance": "दिखावट", + "integrations": "à¤à¤•ीकरण", + "playback": "पà¥à¤²à¥‡à¤¬à¥ˆà¤•", + "backup_restore": "बैकअप और पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾", + "updates": "अपडेट", + "about": "के बारे में", + "developer": "डेवलपर", + "cache": "कैश", + "title": "सेटिंगà¥à¤¸", + "settings_title": "सेटिंगà¥à¤¸", + "sign_in_sync": "सिंक करने के लिठसाइन इन करें", + "add_catalogs_sources": "à¤à¤¡-ऑन, कैटलॉग, और सà¥à¤°à¥‹à¤¤", + "player_trailers_downloads": "पà¥à¤²à¥‡à¤¯à¤°, टà¥à¤°à¥‡à¤²à¤°, डाउनलोड", + "mdblist_tmdb_ai": "MDBList, TMDB, AI", + "check_updates": "अपडेट की जांच करें", + "clear_mdblist_cache": "MDBList कैश साफ़ करें", + "cache_management": "कैश पà¥à¤°à¤¬à¤‚धन", + "downloads_counter": "डाउनलोड और गिनती", + "made_with_love": "Tapframe और दोसà¥à¤¤à¥‹à¤‚ दà¥à¤µà¤¾à¤°à¤¾ â¤ï¸ के साथ बनाया गया", + "sections": { + "information": "जानकारी", + "account": "खाता", + "theme": "थीम", + "layout": "लेआउट", + "sources": "सà¥à¤°à¥‹à¤¤", + "catalogs": "कैटलॉग", + "discovery": "खोज", + "metadata": "मेटाडेटा", + "ai_assistant": "AI सहायक", + "video_player": "वीडियो पà¥à¤²à¥‡à¤¯à¤°", + "audio_subtitles": "ऑडियो और उपशीरà¥à¤·à¤•", + "media": "मीडिया", + "notifications": "सूचनाà¤à¤‚", + "testing": "परीकà¥à¤·à¤£", + "danger_zone": "खतरा कà¥à¤·à¥‡à¤¤à¥à¤°" + }, + "items": { + "legal": "कानूनी और असà¥à¤µà¥€à¤•रण", + "privacy_policy": "गोपनीयता नीति", + "report_issue": "समसà¥à¤¯à¤¾ की रिपोरà¥à¤Ÿ करें", + "version": "संसà¥à¤•रण", + "contributors": "योगदानकरà¥à¤¤à¤¾", + "view_contributors": "सभी योगदानकरà¥à¤¤à¤¾ देखें", + "theme": "थीम", + "episode_layout": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ लेआउट", + "streams_backdrop": "सà¥à¤Ÿà¥à¤°à¥€à¤®à¥à¤¸ बैकडà¥à¤°à¥‰à¤ª", + "streams_backdrop_desc": "मोबाइल सà¥à¤Ÿà¥à¤°à¥€à¤®à¥à¤¸ पर धà¥à¤‚धला बैकडà¥à¤°à¥‰à¤ª दिखाà¤à¤‚", + "addons": "à¤à¤¡-ऑन", + "installed": "इंसà¥à¤Ÿà¥‰à¤² किया गया", + "debrid_integration": "Debrid à¤à¤•ीकरण", + "debrid_desc": "Torbox कनेकà¥à¤Ÿ करें", + "plugins": "पà¥à¤²à¤—इनà¥à¤¸", + "plugins_desc": "पà¥à¤²à¤—इनà¥à¤¸ और रिपॉजिटरी पà¥à¤°à¤¬à¤‚धित करें", + "catalogs": "कैटलॉग", + "active": "सकà¥à¤°à¤¿à¤¯", + "home_screen": "होम सà¥à¤•à¥à¤°à¥€à¤¨", + "home_screen_desc": "लेआउट और सामगà¥à¤°à¥€", + "continue_watching": "देखना जारी रखें", + "continue_watching_desc": "कैश और पà¥à¤²à¥‡à¤¬à¥ˆà¤• वà¥à¤¯à¤µà¤¹à¤¾à¤°", + "show_discover": "खोज अनà¥à¤­à¤¾à¤— दिखाà¤à¤‚", + "show_discover_desc": "खोज में खोज सामगà¥à¤°à¥€ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें", + "mdblist": "MDBList", + "mdblist_connected": "जà¥à¤¡à¤¼à¤¾ हà¥à¤†", + "mdblist_desc": "रेटिंग और समीकà¥à¤·à¤¾ जोड़ने के लिठसकà¥à¤·à¤® करें", + "simkl": "Simkl", + "simkl_connected": "जà¥à¤¡à¤¼à¤¾ हà¥à¤†", + "simkl_desc": "टà¥à¤°à¥ˆà¤• करें कि आप कà¥à¤¯à¤¾ देखते हैं", + "tmdb": "TMDB", + "tmdb_desc": "मेटाडेटा और लोगो सà¥à¤°à¥‹à¤¤ पà¥à¤°à¤¦à¤¾à¤¤à¤¾", + "openrouter": "OpenRouter API", + "openrouter_connected": "जà¥à¤¡à¤¼à¤¾ हà¥à¤†", + "openrouter_desc": "AI चैट सकà¥à¤·à¤® करने के लिठअपनी API कà¥à¤‚जी जोड़ें", + "video_player": "वीडियो पà¥à¤²à¥‡à¤¯à¤°", + "built_in": "अंतरà¥à¤¨à¤¿à¤¹à¤¿à¤¤", + "external": "बाहरी", + "preferred_audio": "पसंदीदा ऑडियो भाषा", + "preferred_subtitle": "पसंदीदा उपशीरà¥à¤·à¤• भाषा", + "subtitle_source": "उपशीरà¥à¤·à¤• सà¥à¤°à¥‹à¤¤ पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता", + "auto_select_subs": "उपशीरà¥à¤·à¤• ऑटो-चयन करें", + "auto_select_subs_desc": "अपनी पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ताओं से मेल खाने वाले उपशीरà¥à¤·à¤• सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से चà¥à¤¨à¥‡à¤‚", + "show_trailers": "टà¥à¤°à¥‡à¤²à¤° दिखाà¤à¤‚", + "show_trailers_desc": "हीरो अनà¥à¤­à¤¾à¤— में टà¥à¤°à¥‡à¤²à¤° पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें", + "enable_downloads": "डाउनलोड सकà¥à¤·à¤® करें", + "enable_downloads_desc": "डाउनलोड टैब दिखाà¤à¤‚ और सà¥à¤Ÿà¥à¤°à¥€à¤® सहेजना सकà¥à¤·à¤® करें", + "notifications": "सूचनाà¤à¤‚", + "notifications_desc": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ रिमाइंडर", + "developer_tools": "डेवलपर टूलà¥à¤¸", + "developer_tools_desc": "परीकà¥à¤·à¤£ और डिबग विकलà¥à¤ª", + "test_onboarding": "ऑनबोरà¥à¤¡à¤¿à¤‚ग टेसà¥à¤Ÿ", + "reset_onboarding": "ऑनबोरà¥à¤¡à¤¿à¤‚ग रीसेट", + "test_announcement": "घोषणा टेसà¥à¤Ÿ", + "test_announcement_desc": "नया कà¥à¤¯à¤¾ है ओवरले दिखाà¤à¤‚", + "reset_campaigns": "अभियान रीसेट करें", + "reset_campaigns_desc": "अभियान इंपà¥à¤°à¥‡à¤¶à¤¨ साफ़ करें", + "clear_all_data": "सभी डेटा साफ़ करें", + "clear_all_data_desc": "सभी सेटिंगà¥à¤¸ और कैश किठगठडेटा को रीसेट करें" + }, + "options": { + "horizontal": "कà¥à¤·à¥ˆà¤¤à¤¿à¤œ", + "vertical": "लंबवत", + "internal_first": "आंतरिक पहले", + "internal_first_desc": "à¤à¤®à¥à¤¬à¥‡à¤¡à¥‡à¤¡ उपशीरà¥à¤·à¤• को पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता दें, फिर बाहरी", + "external_first": "बाहरी पहले", + "external_first_desc": "à¤à¤¡-ऑन उपशीरà¥à¤·à¤• को पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता दें, फिर à¤à¤®à¥à¤¬à¥‡à¤¡à¥‡à¤¡", + "any_available": "कोई भी उपलबà¥à¤§", + "any_available_desc": "पहले उपलबà¥à¤§ उपशीरà¥à¤·à¤• टà¥à¤°à¥ˆà¤• का उपयोग करें" + }, + "clear_data_desc": "यह सभी सेटिंगà¥à¤¸ को रीसेट कर देगा और सभी कैश किठगठडेटा को साफ़ कर देगा। कà¥à¤¯à¤¾ आप सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ हैं?", + "app_updates": "à¤à¤ª अपडेट", + "about_nuvio": "Nuvio के बारे में" + }, + "ai_settings": { + "title": "AI सहायक", + "info_title": "AI-पावरà¥à¤¡ चैट", + "info_desc": "उनà¥à¤¨à¤¤ AI का उपयोग करके किसी भी फिलà¥à¤® या टीवी शो à¤à¤ªà¤¿à¤¸à¥‹à¤¡ के बारे में पà¥à¤°à¤¶à¥à¤¨ पूछें। पà¥à¤²à¥‰à¤Ÿ, पातà¥à¤°à¥‹à¤‚, विषयों, सामानà¥à¤¯ जà¥à¤žà¤¾à¤¨ और बहà¥à¤¤ कà¥à¤› के बारे में जानकारी पà¥à¤°à¤¾à¤ªà¥à¤¤ करें - सभी वà¥à¤¯à¤¾à¤ªà¤• TMDB डेटा दà¥à¤µà¤¾à¤°à¤¾ संचालित।", + "feature_1": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡-विशिषà¥à¤Ÿ संदरà¥à¤­ और विशà¥à¤²à¥‡à¤·à¤£", + "feature_2": "पà¥à¤²à¥‰à¤Ÿ सà¥à¤ªà¤·à¥à¤Ÿà¥€à¤•रण और चरितà¥à¤° अंतरà¥à¤¦à¥ƒà¤·à¥à¤Ÿà¤¿", + "feature_3": "परà¥à¤¦à¥‡ के पीछे की सामानà¥à¤¯ जानकारी और तथà¥à¤¯", + "feature_4": "आपकी अपनी मà¥à¤«à¥à¤¤ OpenRouter API कà¥à¤‚जी", + "api_key_section": "OPENROUTER API कà¥à¤‚जी", + "api_key_label": "API कà¥à¤‚जी", + "api_key_desc": "AI चैट सà¥à¤µà¤¿à¤§à¤¾à¤“ं को सकà¥à¤·à¤® करने के लिठअपनी OpenRouter API कà¥à¤‚जी दरà¥à¤œ करें", + "save_api_key": "API कà¥à¤‚जी सहेजें", + "saving": "सहेजा जा रहा है...", + "update": "अपडेट", + "remove": "हटाà¤à¤‚", + "get_free_key": "OpenRouter से मà¥à¤«à¥à¤¤ API कà¥à¤‚जी पà¥à¤°à¤¾à¤ªà¥à¤¤ करें", + "enable_chat": "AI चैट सकà¥à¤·à¤® करें", + "enable_chat_desc": "सकà¥à¤·à¤® होने पर, सामगà¥à¤°à¥€ पृषà¥à¤ à¥‹à¤‚ पर \"AI से पूछें\" बटन दिखाई देगा।", + "chat_enabled": "AI चैट सकà¥à¤·à¤®", + "chat_enabled_desc": "अब आप फिलà¥à¤®à¥‹à¤‚ और टीवी शो के बारे में सवाल पूछ सकते हैं। सामगà¥à¤°à¥€ पृषà¥à¤ à¥‹à¤‚ पर \"AI से पूछें\" बटन देखें!", + "how_it_works": "यह कैसे काम करता है", + "how_it_works_desc": "• OpenRouter कई AI मॉडल तक पहà¥à¤‚च पà¥à¤°à¤¦à¤¾à¤¨ करता है\n• आपकी API कà¥à¤‚जी निजी और सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ रहती है\n• मà¥à¤«à¥à¤¤ टियर में उदार उपयोग सीमाà¤à¤‚ शामिल हैं\n• विशिषà¥à¤Ÿ à¤à¤ªà¤¿à¤¸à¥‹à¤¡/फिलà¥à¤®à¥‹à¤‚ के बारे में संदरà¥à¤­ के साथ चैट करें\n• विसà¥à¤¤à¥ƒà¤¤ विशà¥à¤²à¥‡à¤·à¤£ और सà¥à¤ªà¤·à¥à¤Ÿà¥€à¤•रण पà¥à¤°à¤¾à¤ªà¥à¤¤ करें", + "error_invalid_key": "कृपया à¤à¤• मानà¥à¤¯ API कà¥à¤‚जी दरà¥à¤œ करें", + "error_key_format": "OpenRouter API कà¥à¤‚जी \"sk-or-\" से शà¥à¤°à¥‚ होनी चाहिà¤", + "success_saved": "OpenRouter API कà¥à¤‚जी सफलतापूरà¥à¤µà¤• सहेजी गई!", + "error_save": "API कà¥à¤‚जी सहेजने में विफल", + "confirm_remove_title": "API कà¥à¤‚जी हटाà¤à¤‚", + "confirm_remove_msg": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से अपनी OpenRouter API कà¥à¤‚जी हटाना चाहते हैं? यह AI चैट सà¥à¤µà¤¿à¤§à¤¾à¤“ं को अकà¥à¤·à¤® कर देगा।", + "success_removed": "API कà¥à¤‚जी सफलतापूरà¥à¤µà¤• हटाई गई", + "error_remove": "API कà¥à¤‚जी हटाने में विफल" + }, + "catalog_settings": { + "title": "कैटलॉग", + "layout_phone": "लेआउट कैटलॉग सà¥à¤•à¥à¤°à¥€à¤¨ (फ़ोन)", + "posters_per_row": "पà¥à¤°à¤¤à¤¿ पंकà¥à¤¤à¤¿ पोसà¥à¤Ÿà¤°", + "auto": "ऑटो", + "show_titles": "पोसà¥à¤Ÿà¤° शीरà¥à¤·à¤• दिखाà¤à¤‚", + "show_titles_desc": "पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पोसà¥à¤Ÿà¤° के नीचे शीरà¥à¤·à¤• पाठ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें", + "phone_only_hint": "केवल फोन पर लागू होता है। टैबलेट अनà¥à¤•ूली लेआउट रखते हैं।", + "catalogs_group": "कैटलॉग", + "enabled_count": "{{total}} में से {{enabled}} सकà¥à¤·à¤®", + "rename_hint": "कैटलॉग का नाम बदलने के लिठदेर तक दबाà¤à¤‚", + "rename_modal_title": "कैटलॉग का नाम बदलें", + "rename_placeholder": "नया कैटलॉग नाम दरà¥à¤œ करें", + "error_save_name": "कसà¥à¤Ÿà¤® नाम सहेजा नहीं जा सका।" + }, + "continue_watching_settings": { + "title": "देखना जारी रखें", + "playback_behavior": "पà¥à¤²à¥‡à¤¬à¥ˆà¤• वà¥à¤¯à¤µà¤¹à¤¾à¤°", + "use_cached": "कैश किठगठसà¥à¤Ÿà¥à¤°à¥€à¤® का उपयोग करें", + "use_cached_desc": "सकà¥à¤·à¤® होने पर, देखना जारी रखें आइटम पर कà¥à¤²à¤¿à¤• करने से पहले से चलाठगठसà¥à¤Ÿà¥à¤°à¥€à¤® का उपयोग करके सीधे पà¥à¤²à¥‡à¤¯à¤° खà¥à¤² जाà¤à¤—ा। अकà¥à¤·à¤® होने पर, इसके बजाय à¤à¤• सामगà¥à¤°à¥€ सà¥à¤•à¥à¤°à¥€à¤¨ खà¥à¤²à¤¤à¥€ है।", + "open_metadata": "मेटाडेटा सà¥à¤•à¥à¤°à¥€à¤¨ खोलें", + "open_metadata_desc": "जब कैश किठगठसà¥à¤Ÿà¥à¤°à¥€à¤® अकà¥à¤·à¤® होते हैं, तो सà¥à¤Ÿà¥à¤°à¥€à¤® सà¥à¤•à¥à¤°à¥€à¤¨ के बजाय मेटाडेटा सà¥à¤•à¥à¤°à¥€à¤¨ खोलें। यह सामगà¥à¤°à¥€ विवरण दिखाता है और मैनà¥à¤¯à¥à¤…ल सà¥à¤Ÿà¥à¤°à¥€à¤® चयन की अनà¥à¤®à¤¤à¤¿ देता है।", + "card_appearance": "कारà¥à¤¡ का सà¥à¤µà¤°à¥‚प", + "card_style": "कारà¥à¤¡ शैली", + "card_style_desc": "चà¥à¤¨à¥‡à¤‚ कि देखना जारी रखें आइटम होम सà¥à¤•à¥à¤°à¥€à¤¨ पर कैसे दिखाई दें", + "wide": "चौड़ा", + "poster": "पोसà¥à¤Ÿà¤°", + "cache_settings": "कैश सेटिंगà¥à¤¸", + "cache_duration": "सà¥à¤Ÿà¥à¤°à¥€à¤® कैश अवधि", + "cache_duration_desc": "समापà¥à¤¤ होने से पहले कैश किठगठसà¥à¤Ÿà¥à¤°à¥€à¤® लिंक कितने समय तक रखें", + "important_note": "महतà¥à¤µà¤ªà¥‚रà¥à¤£ नोट", + "important_note_text": "सभी सà¥à¤Ÿà¥à¤°à¥€à¤® लिंक पूरी कैश अवधि के लिठसकà¥à¤°à¤¿à¤¯ नहीं रह सकते हैं। लंबे समय तक कैश समय के परिणामसà¥à¤µà¤°à¥‚प लिंक समापà¥à¤¤ हो सकते हैं। यदि कोई कैश किया गया लिंक विफल हो जाता है, तो à¤à¤ª ताज़ा सà¥à¤Ÿà¥à¤°à¥€à¤® लाने के लिठवापस आ जाà¤à¤—ा।", + "how_it_works": "यह कैसे काम करता है", + "how_it_works_cached": "• सà¥à¤Ÿà¥à¤°à¥€à¤® खेलने के बाद आपकी चयनित अवधि के लिठकैश की जाती हैं\n• उपयोग से पहले कैश की गई सà¥à¤Ÿà¥à¤°à¥€à¤® मानà¥à¤¯ की जाती हैं\n• यदि कैश अमानà¥à¤¯ या समापà¥à¤¤ हो गया है, तो सामगà¥à¤°à¥€ सà¥à¤•à¥à¤°à¥€à¤¨ पर वापस आ जाता है\n• \"कैश की गई सà¥à¤Ÿà¥à¤°à¥€à¤® का उपयोग करें\" पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· पà¥à¤²à¥‡à¤¯à¤° बनाम सà¥à¤•à¥à¤°à¥€à¤¨ नेविगेशन को नियंतà¥à¤°à¤¿à¤¤ करता है\n• \"मेटाडेटा सà¥à¤•à¥à¤°à¥€à¤¨ खोलें\" केवल तभी दिखाई देता है जब कैश की गई सà¥à¤Ÿà¥à¤°à¥€à¤® अकà¥à¤·à¤® होती हैं", + "how_it_works_uncached": "• जब कैश की गई सà¥à¤Ÿà¥à¤°à¥€à¤® अकà¥à¤·à¤® होती हैं, तो देखना जारी रखें आइटम पर कà¥à¤²à¤¿à¤• करने से सामगà¥à¤°à¥€ सà¥à¤•à¥à¤°à¥€à¤¨ खà¥à¤²à¤¤à¥€ हैं\n• \"मेटाडेटा सà¥à¤•à¥à¤°à¥€à¤¨ खोलें\" विकलà¥à¤ª नियंतà¥à¤°à¤¿à¤¤ करता है कि कौन सी सà¥à¤•à¥à¤°à¥€à¤¨ खोलनी है\n• मेटाडेटा सà¥à¤•à¥à¤°à¥€à¤¨ सामगà¥à¤°à¥€ विवरण दिखाती है और मैनà¥à¤¯à¥à¤…ल सà¥à¤Ÿà¥à¤°à¥€à¤® चयन की अनà¥à¤®à¤¤à¤¿ देती है\n• सà¥à¤Ÿà¥à¤°à¥€à¤® सà¥à¤•à¥à¤°à¥€à¤¨ ततà¥à¤•ाल पà¥à¤²à¥‡à¤¬à¥ˆà¤• के लिठउपलबà¥à¤§ सà¥à¤Ÿà¥à¤°à¥€à¤® दिखाती है", + "changes_saved": "परिवरà¥à¤¤à¤¨ सहेजे गà¤", + "min": "मिनट", + "hour": "घंटा", + "hours": "घंटे" + }, + "contributors": { + "title": "योगदानकरà¥à¤¤à¤¾", + "special_mentions": "विशेष उलà¥à¤²à¥‡à¤–", + "tab_contributors": "योगदानकरà¥à¤¤à¤¾", + "tab_special": "विशेष उलà¥à¤²à¥‡à¤–", + "tab_donors": "दानकरà¥à¤¤à¤¾", + "manager_role": "समà¥à¤¦à¤¾à¤¯ पà¥à¤°à¤¬à¤‚धक", + "manager_desc": "Nuvio के लिठDiscord और Reddit समà¥à¤¦à¤¾à¤¯à¥‹à¤‚ का पà¥à¤°à¤¬à¤‚धन करता है", + "sponsor_role": "सरà¥à¤µà¤° पà¥à¤°à¤¾à¤¯à¥‹à¤œà¤•", + "sponsor_desc": "Nuvio के लिठसरà¥à¤µà¤° बà¥à¤¨à¤¿à¤¯à¤¾à¤¦à¥€ ढांचे को पà¥à¤°à¤¾à¤¯à¥‹à¤œà¤¿à¤¤ किया", + "mod_role": "Discord मॉडरेटर", + "mod_desc": "Nuvio Discord समà¥à¤¦à¤¾à¤¯ को संचालित करने में मदद करता है", + "loading": "लोड हो रहा है...", + "discord_user": "Discord उपयोगकरà¥à¤¤à¤¾", + "contributions": "योगदान", + "gratitude_title": "हम हर योगदान के लिठआभारी हैं", + "gratitude_desc": "कोड की पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पंकà¥à¤¤à¤¿, बग रिपोरà¥à¤Ÿ और सà¥à¤à¤¾à¤µ Nuvio को सभी के लिठबेहतर बनाने में मदद करते हैं", + "special_thanks_title": "विशेष धनà¥à¤¯à¤µà¤¾à¤¦", + "special_thanks_desc": "ये अदà¥à¤­à¥à¤¤ लोग Nuvio समà¥à¤¦à¤¾à¤¯ को चलाने और सरà¥à¤µà¤° को ऑनलाइन रखने में मदद करते हैं", + "donors_desc": "हम जो बना रहे हैं उस पर विशà¥à¤µà¤¾à¤¸ करने के लिठधनà¥à¤¯à¤µà¤¾à¤¦à¥¤ आपका समरà¥à¤¥à¤¨ Nuvio को मà¥à¤«à¤¼à¥à¤¤ रखता है और लगातार सà¥à¤§à¤¾à¤° रहा है।", + "latest_donations": "नवीनतम", + "leaderboard": "लीडरबोरà¥à¤¡", + "loading_donors": "दानकरà¥à¤¤à¤¾à¤“ं को लोड किया जा रहा है...", + "no_donors": "अभी तक कोई दानकरà¥à¤¤à¤¾ नहीं", + "error_rate_limit": "GitHub API दर सीमा पार हो गई। कृपया बाद में पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें या ताज़ा करने के लिठखींचें।", + "error_failed": "योगदानकरà¥à¤¤à¤¾à¤“ं को लोड करने में विफल। कृपया अपना इंटरनेट कनेकà¥à¤¶à¤¨ जांचें।", + "retry": "पà¥à¤¨à¤ƒ पà¥à¤°à¤¯à¤¾à¤¸ करें", + "no_contributors": "कोई योगदानकरà¥à¤¤à¤¾ नहीं मिला", + "loading_contributors": "योगदानकरà¥à¤¤à¤¾à¤“ं को लोड किया जा रहा है..." + }, + "debrid": { + "title": "Debrid à¤à¤•ीकरण", + "description_torbox": "Torbox को à¤à¤•ीकृत करके 4K उचà¥à¤š-गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ वाले सà¥à¤Ÿà¥à¤°à¥€à¤® और बिजली की तेज़ गति अनलॉक करें। अपने सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग अनà¥à¤­à¤µ को तà¥à¤°à¤‚त अपगà¥à¤°à¥‡à¤¡ करने के लिठनीचे अपनी API कà¥à¤‚जी दरà¥à¤œ करें।", + "description_torrentio": "फिलà¥à¤®à¥‹à¤‚ और टीवी शो के लिठटोरेंट सà¥à¤Ÿà¥à¤°à¥€à¤® पà¥à¤°à¤¾à¤ªà¥à¤¤ करने के लिठTorrentio कॉनà¥à¤«à¤¼à¤¿à¤—र करें। सामगà¥à¤°à¥€ सà¥à¤Ÿà¥à¤°à¥€à¤® करने के लिठà¤à¤• डेबà¥à¤°à¤¿à¤¡ सेवा आवशà¥à¤¯à¤• है।", + "tab_torbox": "TorBox", + "tab_torrentio": "Torrentio", + "status_connected": "जà¥à¤¡à¤¼à¤¾ हà¥à¤†", + "status_disconnected": "डिसà¥à¤•नेकà¥à¤Ÿ किया गया", + "enable_addon": "à¤à¤¡-ऑन सकà¥à¤·à¤® करें", + "disconnect_button": "डिसà¥à¤•नेकà¥à¤Ÿ करें और निकालें", + "disconnect_loading": "डिसà¥à¤•नेकà¥à¤Ÿ किया जा रहा है...", + "account_info": "खाता जानकारी", + "plan": "योजना", + "plan_free": "निःशà¥à¤²à¥à¤•", + "plan_essential": "आवशà¥à¤¯à¤• ($3/माह)", + "plan_pro": "पà¥à¤°à¥‹ ($10/माह)", + "plan_standard": "मानक ($5/माह)", + "plan_unknown": "अजà¥à¤žà¤¾à¤¤", + "expires": "समापà¥à¤¤ होता है", + "downloaded": "डाउनलोड किया गया", + "status_active": "सकà¥à¤°à¤¿à¤¯", + "connected_title": "✓ TorBox से जà¥à¤¡à¤¼à¤¾ हà¥à¤†", + "connected_desc": "आपका TorBox à¤à¤¡-ऑन सकà¥à¤°à¤¿à¤¯ है और पà¥à¤°à¥€à¤®à¤¿à¤¯à¤® सà¥à¤Ÿà¥à¤°à¥€à¤® पà¥à¤°à¤¦à¤¾à¤¨ कर रहा है।", + "configure_title": "à¤à¤¡-ऑन कॉनà¥à¤«à¤¼à¤¿à¤—र करें", + "configure_desc": "अपने सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग अनà¥à¤­à¤µ को अनà¥à¤•ूलित करें। गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ के आधार पर कà¥à¤°à¤®à¤¬à¤¦à¥à¤§ करें, फ़ाइल आकार फ़िलà¥à¤Ÿà¤° करें और अनà¥à¤¯ à¤à¤•ीकरण सेटिंगà¥à¤¸ पà¥à¤°à¤¬à¤‚धित करें।", + "open_settings": "सेटिंगà¥à¤¸ खोलें", + "what_is_debrid": "Debrid सेवा कà¥à¤¯à¤¾ है?", + "enter_api_key": "अपनी API कà¥à¤‚जी दरà¥à¤œ करें", + "connect_button": "कनेकà¥à¤Ÿ करें और इंसà¥à¤Ÿà¥‰à¤² करें", + "connecting": "कनेकà¥à¤Ÿ किया जा रहा है...", + "unlock_speeds_title": "पà¥à¤°à¥€à¤®à¤¿à¤¯à¤® गति अनलॉक करें", + "unlock_speeds_desc": "शूनà¥à¤¯ बफरिंग के साथ कैश किठगठउचà¥à¤š-गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ वाले सà¥à¤Ÿà¥à¤°à¥€à¤® तक पहà¥à¤‚चने के लिठTorbox सदसà¥à¤¯à¤¤à¤¾ पà¥à¤°à¤¾à¤ªà¥à¤¤ करें।", + "get_subscription": "सदसà¥à¤¯à¤¤à¤¾ पà¥à¤°à¤¾à¤ªà¥à¤¤ करें", + "powered_by": "दà¥à¤µà¤¾à¤°à¤¾ संचालित", + "disclaimer_torbox": "Nuvio किसी भी तरह से Torbox से संबदà¥à¤§ नहीं है।", + "disclaimer_torrentio": "Nuvio किसी भी तरह से Torrentio से संबदà¥à¤§ नहीं है।", + "installed_badge": "✓ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤", + "promo_title": "âš¡ à¤à¤• Debrid सेवा की आवशà¥à¤¯à¤•ता है?", + "promo_desc": "शूनà¥à¤¯ बफरिंग के साथ बिजली की तेज़ 4K सà¥à¤Ÿà¥à¤°à¥€à¤®à¤¿à¤‚ग के लिठTorBox पà¥à¤°à¤¾à¤ªà¥à¤¤ करें। पà¥à¤°à¥€à¤®à¤¿à¤¯à¤® कैश किठगठटोरेंट और ततà¥à¤•ाल डाउनलोड।", + "promo_button": "TorBox सदसà¥à¤¯à¤¤à¤¾ पà¥à¤°à¤¾à¤ªà¥à¤¤ करें", + "service_label": "Debrid सेवा *", + "api_key_label": "API कà¥à¤‚जी *", + "sorting_label": "छà¤à¤Ÿà¤¾à¤ˆ", + "exclude_qualities": "गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ बाहर निकालें", + "priority_languages": "पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ता वाली भाषाà¤à¤‚", + "max_results": "अधिकतम परिणाम", + "additional_options": "अतिरिकà¥à¤¤ विकलà¥à¤ª", + "no_download_links": "डाउनलोड लिंक न दिखाà¤à¤‚", + "no_debrid_catalog": "डेबà¥à¤°à¤¿à¤¡ कैटलॉग न दिखाà¤à¤‚", + "install_button": "Torrentio इंसà¥à¤Ÿà¥‰à¤² करें", + "installing": "इंसà¥à¤Ÿà¥‰à¤² किया जा रहा है...", + "update_button": "कॉनà¥à¤«à¤¼à¤¿à¤—रेशन अपडेट करें", + "updating": "अपडेट किया जा रहा है...", + "remove_button": "Torrentio निकालें", + "error_api_required": "API कà¥à¤‚जी आवशà¥à¤¯à¤•", + "error_api_required_desc": "कृपया Torrentio सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने के लिठअपनी डेबà¥à¤°à¤¿à¤¡ सेवा API कà¥à¤‚जी दरà¥à¤œ करें।", + "success_installed": "Torrentio à¤à¤¡-ऑन सफलतापूरà¥à¤µà¤• सà¥à¤¥à¤¾à¤ªà¤¿à¤¤!", + "success_removed": "Torrentio à¤à¤¡-ऑन सफलतापूरà¥à¤µà¤• हटाया गया", + "alert_disconnect_title": "Torbox डिसà¥à¤•नेकà¥à¤Ÿ करें", + "alert_disconnect_msg": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से Torbox को डिसà¥à¤•नेकà¥à¤Ÿ करना चाहते हैं? यह à¤à¤¡-ऑन को हटा देगा और आपकी सहेजी गई API कà¥à¤‚जी को साफ़ कर देगा।" + }, + "home_screen": { + "title": "होम सà¥à¤•à¥à¤°à¥€à¤¨ सेटिंगà¥à¤¸", + "changes_applied": "परिवरà¥à¤¤à¤¨ लागू", + "display_options": "पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ विकलà¥à¤ª", + "show_hero": "हीरो अनà¥à¤­à¤¾à¤— दिखाà¤à¤‚", + "show_hero_desc": "शीरà¥à¤· पर पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ सामगà¥à¤°à¥€", + "show_this_week": "इस सपà¥à¤¤à¤¾à¤¹ अनà¥à¤­à¤¾à¤— दिखाà¤à¤‚", + "show_this_week_desc": "वरà¥à¤¤à¤®à¤¾à¤¨ सपà¥à¤¤à¤¾à¤¹ के नठà¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "select_catalogs": "कैटलॉग चà¥à¤¨à¥‡à¤‚", + "all_catalogs": "सभी कैटलॉग", + "selected": "चयनित", + "hero_layout": "हीरो लेआउट", + "layout_legacy": "लिगेसी", + "layout_carousel": "कलिडोसà¥à¤•ोप", + "layout_appletv": "Apple TV", + "layout_desc": "पूरà¥à¤£-चौड़ाई बैनर, सà¥à¤µà¤¾à¤‡à¤ª करने योगà¥à¤¯ कारà¥à¤¡, या Apple TV शैली", + "featured_source": "विशेष सà¥à¤°à¥‹à¤¤", + "using_catalogs": "कैटलॉग का उपयोग करना", + "manage_selected_catalogs": "चयनित कैटलॉग पà¥à¤°à¤¬à¤‚धित करें", + "dynamic_bg": "गतिशील हीरो पृषà¥à¤ à¤­à¥‚मि", + "dynamic_bg_desc": "हिंडोला के पीछे धà¥à¤‚धला बैनर", + "performance_note": "कम-अंत वाले उपकरणों पर पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ को पà¥à¤°à¤­à¤¾à¤µà¤¿à¤¤ कर सकता है।", + "posters": "पोसà¥à¤Ÿà¤°", + "show_titles": "शीरà¥à¤·à¤• दिखाà¤à¤‚", + "poster_size": "पोसà¥à¤Ÿà¤° का आकार", + "poster_corners": "पोसà¥à¤Ÿà¤° कोने", + "size_small": "छोटा", + "size_medium": "मधà¥à¤¯à¤®", + "size_large": "बड़ा", + "corners_square": "चौकोर", + "corners_rounded": "गोल", + "corners_pill": "पिल", + "about_these_settings": "इन सेटिंगà¥à¤¸ के बारे में", + "about_desc": "ये सेटिंगà¥à¤¸ नियंतà¥à¤°à¤¿à¤¤ करती हैं कि आपकी होम सà¥à¤•à¥à¤°à¥€à¤¨ पर सामगà¥à¤°à¥€ कैसे पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ होती है। परिवरà¥à¤¤à¤¨ à¤à¤ª को पà¥à¤¨à¤°à¤¾à¤°à¤‚भ किठबिना तà¥à¤°à¤‚त लागू होते हैं।", + "hero_catalogs": { + "title": "हीरो अनà¥à¤­à¤¾à¤— कैटलॉग", + "select_all": "सभी चà¥à¤¨à¥‡à¤‚", + "clear_all": "सभी साफ़ करें", + "info": "हीरो अनà¥à¤­à¤¾à¤— में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करने के लिठकौन से कैटलॉग चà¥à¤¨à¥‡à¤‚। यदि कोई नहीं चà¥à¤¨à¤¾ गया है, तो सभी कैटलॉग का उपयोग किया जाà¤à¤—ा। जब आप कर लें तो सहेजें दबाना न भूलें।", + "settings_saved": "सेटिंगà¥à¤¸ सहेजी गईं", + "error_load": "कैटलॉग लोड करने में विफल", + "movies": "फिलà¥à¤®à¥‡à¤‚", + "tv_shows": "टीवी शोज़" + } + }, + "calendar": { + "title": "कैलेंडर", + "loading": "कैलेंडर लोड हो रहा है...", + "no_scheduled_episodes": "कोई निरà¥à¤§à¤¾à¤°à¤¿à¤¤ à¤à¤ªà¤¿à¤¸à¥‹à¤¡ नहीं", + "check_back_later": "बाद में वापस देखें", + "showing_episodes_for": "{{date}} के लिठà¤à¤ªà¤¿à¤¸à¥‹à¤¡ दिखा रहा है", + "show_all_episodes": "सभी à¤à¤ªà¤¿à¤¸à¥‹à¤¡ दिखाà¤à¤‚", + "no_episodes_for": "{{date}} के लिठकोई à¤à¤ªà¤¿à¤¸à¥‹à¤¡ नहीं", + "no_upcoming_found": "कोई आगामी à¤à¤ªà¤¿à¤¸à¥‹à¤¡ नहीं मिला", + "add_series_desc": "यहाठउनके आगामी à¤à¤ªà¤¿à¤¸à¥‹à¤¡ देखने के लिठअपनी लाइबà¥à¤°à¥‡à¤°à¥€ में सीरीज़ जोड़ें" + }, + "mdblist": { + "title": "रेटिंग सà¥à¤°à¥‹à¤¤", + "status_disabled": "MDBList अकà¥à¤·à¤®", + "status_active": "API कà¥à¤‚जी सकà¥à¤°à¤¿à¤¯", + "status_required": "API कà¥à¤‚जी आवशà¥à¤¯à¤•", + "status_disabled_desc": "MDBList कारà¥à¤¯à¤•à¥à¤·à¤®à¤¤à¤¾ वरà¥à¤¤à¤®à¤¾à¤¨ में अकà¥à¤·à¤® है।", + "status_active_desc": "MDBList से रेटिंग सकà¥à¤·à¤® हैं।", + "status_required_desc": "रेटिंग सकà¥à¤·à¤® करने के लिठनीचे अपनी कà¥à¤‚जी जोड़ें।", + "enable_toggle": "MDBList सकà¥à¤·à¤® करें", + "enable_toggle_desc": "सभी MDBList कारà¥à¤¯à¤•à¥à¤·à¤®à¤¤à¤¾ चालू/बंद करें", + "api_section": "API कà¥à¤‚जी", + "placeholder": "अपनी MDBList API कà¥à¤‚जी पेसà¥à¤Ÿ करें", + "save": "सहेजें", + "clear": "कà¥à¤‚जी साफ़ करें", + "rating_providers": "रेटिंग पà¥à¤°à¤¦à¤¾à¤¤à¤¾", + "rating_providers_desc": "à¤à¤ª में कौन सी रेटिंग पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करनी है, चà¥à¤¨à¥‡à¤‚", + "how_to": "API कà¥à¤‚जी कैसे पà¥à¤°à¤¾à¤ªà¥à¤¤ करें", + "step_1": "Log in on the", + "step_1_link": "MDBList वेबसाइट", + "step_2": "Go to", + "step_2_settings": "सेटिंगà¥à¤¸", + "step_2_api": "API", + "step_2_end": "अनà¥à¤­à¤¾à¤—।", + "step_3": "à¤à¤• नई कà¥à¤‚जी उतà¥à¤ªà¤¨à¥à¤¨ करें और इसे कॉपी करें।", + "go_to_website": "MDBList पर जाà¤à¤‚", + "alert_clear_title": "API कà¥à¤‚जी साफ़ करें", + "alert_clear_msg": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से सहेजी गई API कà¥à¤‚जी को निकालना चाहते हैं?", + "success_saved": "API कà¥à¤‚जी सफलतापूरà¥à¤µà¤• सहेजी गई।", + "error_empty": "API कà¥à¤‚जी खाली नहीं हो सकती।", + "error_save": "सहेजते समय à¤à¤• तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆà¥¤ कृपया पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें।", + "api_key_empty_error": "API कà¥à¤‚जी खाली नहीं हो सकती।", + "success_cleared": "API कà¥à¤‚जी सफलतापूरà¥à¤µà¤• साफ़ की गई", + "error_clear": "API कà¥à¤‚जी साफ़ करने में विफल" + }, + "notification": { + "title": "अधिसूचना सेटिंगà¥à¤¸", + "section_general": "सामानà¥à¤¯", + "enable_notifications": "अधिसूचनाà¤à¤‚ सकà¥à¤·à¤® करें", + "section_types": "अधिसूचना पà¥à¤°à¤•ार", + "new_episodes": "नठà¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "upcoming_shows": "आगामी शो", + "reminders": "रिमाइंडर", + "section_timing": "अधिसूचना समय", + "timing_desc": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡ पà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ होने से पहले आपको कब सूचित किया जाना चाहिà¤?", + "hours_1": "1 घंटा", + "hours_suffix": "घंटे", + "section_status": "अधिसूचना सà¥à¤¥à¤¿à¤¤à¤¿", + "stats_upcoming": "आगामी", + "stats_this_week": "इस सपà¥à¤¤à¤¾à¤¹", + "stats_total": "काà¥à¤²", + "sync_button": "लाइबà¥à¤°à¥‡à¤°à¥€ और Trakt सिंक करें", + "syncing": "सिंक हो रहा है...", + "sync_desc": "आपकी लाइबà¥à¤°à¥‡à¤°à¥€ और Trakt वॉचलिसà¥à¤Ÿ/कलेकà¥à¤¶à¤¨ में सभी शो के लिठसूचनाओं को सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से सिंक करता है।", + "section_advanced": "उनà¥à¤¨à¤¤", + "reset_button": "सभी सूचनाà¤à¤‚ रीसेट करें", + "test_button": "टेसà¥à¤Ÿ अधिसूचना (5 सेकंड)", + "test_notification_in": "{{seconds}}s में अधिसूचना...", + "test_notification_text": "अधिसूचना {{seconds}} सेकंड में दिखाई देगी", + "alert_reset_title": "अधिसूचनाà¤à¤‚ रीसेट करें", + "alert_reset_msg": "यह सभी निरà¥à¤§à¤¾à¤°à¤¿à¤¤ सूचनाओं को रदà¥à¤¦ कर देगा, लेकिन आपकी सहेजी गई लाइबà¥à¤°à¥‡à¤°à¥€ से कà¥à¤› भी नहीं हटाà¤à¤—ा। कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ हैं?", + "alert_reset_success": "सभी सूचनाà¤à¤‚ रीसेट कर दी गई हैं", + "alert_sync_complete": "सिंक पूरà¥à¤£", + "alert_sync_msg": "आपकी लाइबà¥à¤°à¥‡à¤°à¥€ और Trakt आइटम के लिठसूचनाà¤à¤‚ सफलतापूरà¥à¤µà¤• सिंक की गईं।\n\nनिरà¥à¤§à¤¾à¤°à¤¿à¤¤: {{upcoming}} आगामी à¤à¤ªà¤¿à¤¸à¥‹à¤¡\nइस सपà¥à¤¤à¤¾à¤¹: {{thisWeek}} à¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "alert_test_scheduled": "परीकà¥à¤·à¤£ अधिसूचना तà¥à¤°à¤‚त फायर करने के लिठनिरà¥à¤§à¤¾à¤°à¤¿à¤¤ है" + }, + "backup": { + "title": "बैकअप और पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾", + "options_title": "बैकअप विकलà¥à¤ª", + "options_desc": "अपने बैकअप में कà¥à¤¯à¤¾ शामिल करना है चà¥à¤¨à¥‡à¤‚", + "section_core": "कोर डेटा", + "section_addons": "à¤à¤¡-ऑन और à¤à¤•ीकरण", + "section_settings": "सेटिंगà¥à¤¸ और पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ताà¤à¤‚", + "library_label": "लाइबà¥à¤°à¥‡à¤°à¥€", + "library_desc": "आपकी सहेजी गई फिलà¥à¤®à¥‡à¤‚ और टीवी शो", + "watch_progress_label": "देखने की पà¥à¤°à¤—ति", + "watch_progress_desc": "देखना जारी रखें सà¥à¤¥à¤¿à¤¤à¤¿à¤¯à¤¾à¤‚", + "addons_label": "à¤à¤¡-ऑन", + "addons_desc": "इंसà¥à¤Ÿà¥‰à¤² किठगठStremio à¤à¤¡-ऑन", + "plugins_label": "पà¥à¤²à¤—इनà¥à¤¸", + "plugins_desc": "कसà¥à¤Ÿà¤® सà¥à¤•à¥à¤°à¥ˆà¤ªà¤° कॉनà¥à¤«à¤¼à¤¿à¤—रेशन", + "trakt_label": "Trakt à¤à¤•ीकरण", + "trakt_desc": "डेटा और पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण टोकन सिंक करें", + "app_settings_label": "à¤à¤ª सेटिंगà¥à¤¸", + "app_settings_desc": "थीम, पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ताà¤à¤‚ और कॉनà¥à¤«à¤¼à¤¿à¤—रेशन", + "user_prefs_label": "उपयोगकरà¥à¤¤à¤¾ पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ताà¤à¤‚", + "user_prefs_desc": "à¤à¤¡-ऑन ऑरà¥à¤¡à¤° और UI सेटिंगà¥à¤¸", + "catalog_settings_label": "कैटलॉग सेटिंगà¥à¤¸", + "catalog_settings_desc": "कैटलॉग फ़िलà¥à¤Ÿà¤° और पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•ताà¤à¤‚", + "api_keys_label": "API कà¥à¤‚जी", + "api_keys_desc": "MDBList और OpenRouter कà¥à¤‚जी", + "action_create": "बैकअप बनाà¤à¤‚", + "action_restore": "बैकअप से पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करें", + "section_info": "बैकअप के बारे में", + "info_text": "• ऊपर दिठगठटॉगल का उपयोग करके अनà¥à¤•ूलित करें कि कà¥à¤¯à¤¾ बैकअप किया जाता है\n• बैकअप फ़ाइलें आपके डिवाइस पर सà¥à¤¥à¤¾à¤¨à¥€à¤¯ रूप से संगà¥à¤°à¤¹à¥€à¤¤ की जाती हैं\n• उपकरणों के बीच डेटा सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरित करने के लिठअपना बैकअप साà¤à¤¾ करें\n• पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾ से आपका वरà¥à¤¤à¤®à¤¾à¤¨ डेटा अधिलेखित हो जाà¤à¤—ा", + "alert_create_title": "बैकअप बनाà¤à¤‚", + "alert_no_content": "बैकअप के लिठकोई सामगà¥à¤°à¥€ चयनित नहीं है।\n\nकृपया ऊपर बैकअप विकलà¥à¤ª अनà¥à¤­à¤¾à¤— में कम से कम à¤à¤• विकलà¥à¤ª सकà¥à¤·à¤® करें।", + "alert_backup_created_title": "बैकअप बनाया गया", + "alert_backup_created_msg": "आपका बैकअप बनाया गया है और साà¤à¤¾ करने के लिठतैयार है।", + "alert_backup_failed_title": "बैकअप विफल", + "alert_restore_confirm_title": "पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾ की पà¥à¤·à¥à¤Ÿà¤¿ करें", + "alert_restore_confirm_msg": "यह {{date}} को बनाठगठबैकअप से आपका डेटा पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करेगा।\n\nयह कारà¥à¤°à¤µà¤¾à¤ˆ आपके वरà¥à¤¤à¤®à¤¾à¤¨ डेटा को अधिलेखित कर देगी। कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से जारी रखना चाहते हैं?", + "alert_restore_complete_title": "पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾ पूरà¥à¤£", + "alert_restore_complete_msg": "आपका डेटा सफलतापूरà¥à¤µà¤• पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया गया है। सभी परिवरà¥à¤¤à¤¨ देखने के लिठकृपया à¤à¤ª को पà¥à¤¨à¤°à¤¾à¤°à¤‚भ करें।", + "alert_restore_failed_title": "पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾ विफल", + "restart_app": "à¤à¤ª पà¥à¤¨à¤°à¤¾à¤°à¤‚भ करें", + "alert_restart_failed_title": "पà¥à¤¨à¤°à¤¾à¤°à¤‚भ विफल", + "alert_restart_failed_msg": "à¤à¤ª को पà¥à¤¨à¤°à¤¾à¤°à¤‚भ करने में विफल। अपना पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ डेटा देखने के लिठकृपया à¤à¤ª को मैनà¥à¤¯à¥à¤…ल रूप से बंद करें और फिर से खोलें।" + }, + "updates": { + "title": "à¤à¤ª अपडेट", + "status_checking": "अपडेट की जांच हो रही है...", + "status_available": "अपडेट उपलबà¥à¤§ है!", + "status_downloading": "अपडेट डाउनलोड हो रहा है...", + "status_installing": "अपडेट इंसà¥à¤Ÿà¥‰à¤² हो रहा है...", + "status_success": "अपडेट सफलतापूरà¥à¤µà¤• इंसà¥à¤Ÿà¥‰à¤² किया गया!", + "status_error": "अपडेट विफल", + "status_ready": "अपडेट की जांच के लिठतैयार", + "action_check": "अपडेट की जांच करें", + "action_install": "अपडेट इंसà¥à¤Ÿà¥‰à¤² करें", + "release_notes": "रिलीज़ नोटà¥à¤¸:", + "version": "संसà¥à¤•रण:", + "last_checked": "अंतिम जांच:", + "current_version": "वरà¥à¤¤à¤®à¤¾à¤¨ संसà¥à¤•रण:", + "current_release_notes": "वरà¥à¤¤à¤®à¤¾à¤¨ रिलीज़ नोटà¥à¤¸:", + "github_release": "GITHUB रिलीज़", + "current": "वरà¥à¤¤à¤®à¤¾à¤¨:", + "latest": "नवीनतम:", + "notes": "नोटà¥à¤¸:", + "view_release": "रिलीज़ देखें", + "notification_settings": "अधिसूचना सेटिंगà¥à¤¸", + "ota_alerts_label": "OTA अपडेट अलरà¥à¤Ÿ", + "ota_alerts_desc": "ओवर-द-à¤à¤¯à¤° अपडेट के लिठसूचनाà¤à¤‚ दिखाà¤à¤‚", + "major_alerts_label": "पà¥à¤°à¤®à¥à¤– अपडेट अलरà¥à¤Ÿ", + "major_alerts_desc": "GitHub पर नठà¤à¤ª संसà¥à¤•रणों के लिठसूचनाà¤à¤‚ दिखाà¤à¤‚", + "alert_disable_ota_title": "OTA अपडेट अलरà¥à¤Ÿ अकà¥à¤·à¤® करें?", + "alert_disable_ota_msg": "अब आपको OTA अपडेट के लिठसà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ सूचनाà¤à¤‚ पà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं होंगी।\n\nâš ï¸ à¤šà¥‡à¤¤à¤¾à¤µà¤¨à¥€: नवीनतम संसà¥à¤•रण पर रहना इसके लिठमहतà¥à¤µà¤ªà¥‚रà¥à¤£ है:\n• बग फिकà¥à¤¸ और सà¥à¤¥à¤¿à¤°à¤¤à¤¾ में सà¥à¤§à¤¾à¤°\n• नई सà¥à¤µà¤¿à¤§à¤¾à¤à¤ और संवरà¥à¤¦à¥à¤§à¤¨\n• सटीक पà¥à¤°à¤¤à¤¿à¤•à¥à¤°à¤¿à¤¯à¤¾ और कà¥à¤°à¥ˆà¤¶ रिपोरà¥à¤Ÿ पà¥à¤°à¤¦à¤¾à¤¨ करना\n\nआप अभी भी इस सà¥à¤•à¥à¤°à¥€à¤¨ में मैनà¥à¤¯à¥à¤…ल रूप से अपडेट की जांच कर सकते हैं।", + "alert_disable_major_title": "पà¥à¤°à¤®à¥à¤– अपडेट अलरà¥à¤Ÿ अकà¥à¤·à¤® करें?", + "alert_disable_major_msg": "अब आपको पà¥à¤°à¤®à¥à¤– à¤à¤ª अपडेट के लिठसूचनाà¤à¤‚ पà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं होंगी जिनके लिठपà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾ की आवशà¥à¤¯à¤•ता होती है।\n\nâš ï¸ à¤šà¥‡à¤¤à¤¾à¤µà¤¨à¥€: पà¥à¤°à¤®à¥à¤– अपडेट में अकà¥à¤¸à¤° शामिल होते हैं:\n• महतà¥à¤µà¤ªà¥‚रà¥à¤£ सà¥à¤°à¤•à¥à¤·à¤¾ पैच\n• बà¥à¤°à¥‡à¤•िंग परिवरà¥à¤¤à¤¨ जिनके लिठà¤à¤ª पà¥à¤¨à¤°à¥à¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾ की आवशà¥à¤¯à¤•ता होती है\n• महतà¥à¤µà¤ªà¥‚रà¥à¤£ संगतता सà¥à¤§à¤¾à¤°\n\nआप अभी भी मैनà¥à¤¯à¥à¤…ल रूप से अपडेट की जांच कर सकते हैं।", + "warning_note": "अलरà¥à¤Ÿ सकà¥à¤·à¤® रखने से यह सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ होता है कि आपको बग फिकà¥à¤¸ पà¥à¤°à¤¾à¤ªà¥à¤¤ हों और आप सटीक कà¥à¤°à¥ˆà¤¶ रिपोरà¥à¤Ÿ पà¥à¤°à¤¦à¤¾à¤¨ कर सकें।", + "disable": "अकà¥à¤·à¤® करें", + "alert_no_update_to_install": "इंसà¥à¤Ÿà¥‰à¤² करने के लिठकोई अपडेट उपलबà¥à¤§ नहीं है", + "alert_install_failed": "अपडेट इंसà¥à¤Ÿà¥‰à¤² करने में विफल", + "alert_no_update_title": "कोई अपडेट नहीं", + "alert_update_applied_msg": "अगले à¤à¤ª पà¥à¤¨à¤°à¤¾à¤°à¤‚भ पर अपडेट लागू किया जाà¤à¤—ा" + }, + "player": { + "title": "वीडियो पà¥à¤²à¥‡à¤¯à¤°", + "section_selection": "पà¥à¤²à¥‡à¤¯à¤° चयन", + "internal_title": "इनबिलà¥à¤Ÿ पà¥à¤²à¥‡à¤¯à¤°", + "internal_desc": "à¤à¤ª का डिफ़ॉलà¥à¤Ÿ वीडियो पà¥à¤²à¥‡à¤¯à¤° उपयोग करें", + "vlc_title": "VLC", + "vlc_desc": "VLC मीडिया पà¥à¤²à¥‡à¤¯à¤° में सà¥à¤Ÿà¥à¤°à¥€à¤® ओपन करें", + "infuse_title": "Infuse", + "infuse_desc": "Infuse पà¥à¤²à¥‡à¤¯à¤° में सà¥à¤Ÿà¥à¤°à¥€à¤® ओपन करें", + "outplayer_title": "OutPlayer", + "outplayer_desc": "OutPlayer में सà¥à¤Ÿà¥à¤°à¥€à¤® ओपन करें", + "vidhub_title": "VidHub", + "vidhub_desc": "VidHub पà¥à¤²à¥‡à¤¯à¤° में सà¥à¤Ÿà¥à¤°à¥€à¤® ओपन करें", + "infuse_live_title": "Infuse Livecontainer", + "infuse_live_desc": "Infuse पà¥à¤²à¥‡à¤¯à¤° LiveContainer में सà¥à¤Ÿà¥à¤°à¥€à¤® ओपन करें", + "external_title": "à¤à¤•à¥à¤¸à¤Ÿà¤°à¥à¤¨à¤² पà¥à¤²à¥‡à¤¯à¤°", + "external_desc": "अपने पसंदीदा वीडियो पà¥à¤²à¥‡à¤¯à¤° में सà¥à¤Ÿà¥à¤°à¥€à¤® ओपन करें", + "section_playback": "पà¥à¤²à¥‡à¤¬à¥ˆà¤• विकलà¥à¤ª", + "skip_intro_settings_title": "इंटà¥à¤°à¥‹ छोड़ें", + "powered_by_introdb": "IntroDB दà¥à¤µà¤¾à¤°à¤¾ संचालित", + "autoplay_title": "पहली सà¥à¤Ÿà¥à¤°à¥€à¤® ऑटो-पà¥à¤²à¥‡ करें", + "autoplay_desc": "सूची में दिखाई गई पहली सà¥à¤Ÿà¥à¤°à¥€à¤® को सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से शà¥à¤°à¥‚ करें।", + "resume_title": "हमेशा जारी रखें", + "resume_desc": "रिजà¥à¤¯à¥‚म पà¥à¤°à¥‰à¤®à¥à¤ªà¥à¤Ÿ छोड़ें और सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से वहीं से जारी रखें जहां आपने छोड़ा था (यदि 85% से कम देखा गया है)।", + "engine_title": "वीडियो पà¥à¤²à¥‡à¤¯à¤° इंजन", + "engine_desc": "ऑटो MPV फ़ॉलबैक के साथ ExoPlayer का उपयोग करता है। डॉलà¥à¤¬à¥€ विजन और HDR जैसे कà¥à¤› पà¥à¤°à¤¾à¤°à¥‚प MPV दà¥à¤µà¤¾à¤°à¤¾ समरà¥à¤¥à¤¿à¤¤ नहीं हो सकते हैं, इसलिठसरà¥à¤µà¥‹à¤¤à¥à¤¤à¤® संगतता के लिठऑटो की अनà¥à¤¶à¤‚सा की जाती है।", + "decoder_title": "डिकोडर मोड", + "decoder_desc": "वीडियो कैसे डिकोड किया जाता है। सरà¥à¤µà¥‹à¤¤à¥à¤¤à¤® संतà¥à¤²à¤¨ के लिठऑटो की अनà¥à¤¶à¤‚सा की जाती है।", + "gpu_title": "GPU रेंडरिंग", + "gpu_desc": "GPU-Next बेहतर HDR और रंग पà¥à¤°à¤¬à¤‚धन पà¥à¤°à¤¦à¤¾à¤¨ करता है।", + "external_downloads_title": "डाउनलोड के लिठà¤à¤•à¥à¤¸à¤Ÿà¤°à¥à¤¨à¤² पà¥à¤²à¥‡à¤¯à¤°", + "external_downloads_desc": "अपने पसंदीदा à¤à¤•à¥à¤¸à¤Ÿà¤°à¥à¤¨à¤² पà¥à¤²à¥‡à¤¯à¤° में डाउनलोड की गई सामगà¥à¤°à¥€ चलाà¤à¤‚।", + "restart_required": "पà¥à¤¨à¤°à¤¾à¤°à¤‚भ आवशà¥à¤¯à¤•", + "restart_msg_decoder": "डिकोडर परिवरà¥à¤¤à¤¨ पà¥à¤°à¤­à¤¾à¤µà¥€ होने के लिठकृपया à¤à¤ª को पà¥à¤¨à¤°à¤¾à¤°à¤‚भ करें।", + "restart_msg_gpu": "GPU मोड परिवरà¥à¤¤à¤¨ पà¥à¤°à¤­à¤¾à¤µà¥€ होने के लिठकृपया à¤à¤ª को पà¥à¤¨à¤°à¤¾à¤°à¤‚भ करें।", + "option_auto": "ऑटो", + "option_auto_desc_engine": "ExoPlayer + MPV फ़ॉलबैक", + "option_mpv": "MPV", + "option_mpv_desc": "केवल MPV", + "option_auto_desc_decoder": "सरà¥à¤µà¥‹à¤¤à¥à¤¤à¤® संतà¥à¤²à¤¨", + "option_sw": "SW", + "option_sw_desc": "सॉफà¥à¤Ÿà¤µà¥‡à¤¯à¤°", + "option_hw": "HW", + "option_hw_desc": "हारà¥à¤¡à¤µà¥‡à¤¯à¤°", + "option_hw_plus": "HW+", + "option_hw_plus_desc": "पूरà¥à¤£ HW", + "option_gpu_desc": "मानक", + "option_gpu_next_desc": "उनà¥à¤¨à¤¤" + }, + "plugins": { + "title": "पà¥à¤²à¤—इनà¥à¤¸", + "enable_title": "पà¥à¤²à¤—इनà¥à¤¸ सकà¥à¤·à¤® करें", + "enable_desc": "बाहरी मीडिया सà¥à¤°à¥‹à¤¤à¥‹à¤‚ को हल करने के लिठपà¥à¤²à¤—इन इंजन सकà¥à¤·à¤® करें", + "repo_config_title": "रिपॉजिटरी कॉनà¥à¤«à¤¼à¤¿à¤—रेशन", + "repo_config_desc": "बाहरी पà¥à¤²à¤—इन रिपॉजिटरी पà¥à¤°à¤¬à¤‚धित करें। नीचे पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• रिपॉजिटरी को चालू या बंद करें।", + "your_repos": "रिपॉजिटरी", + "your_repos_desc": "पà¥à¤²à¤—इनà¥à¤¸ के लिठबाहरी सà¥à¤°à¥‹à¤¤ कॉनà¥à¤«à¤¼à¤¿à¤—र करें।", + "add_repo_button": "रिपॉजिटरी जोड़ें", + "refresh": "रीफà¥à¤°à¥‡à¤¶", + "remove": "हटाà¤à¤‚", + "enabled": "सकà¥à¤·à¤®", + "disabled": "अकà¥à¤·à¤®", + "updating": "अपडेट हो रहा है...", + "success": "सफल", + "error": "तà¥à¤°à¥à¤Ÿà¤¿", + "alert_repo_added": "रिपॉजिटरी जोड़ी गई और पà¥à¤²à¤—इनà¥à¤¸ सफलतापूरà¥à¤µà¤• लोड किठगà¤", + "alert_repo_saved": "रिपॉजिटरी URL सफलतापूरà¥à¤µà¤• सहेजा गया", + "alert_repo_refreshed": "रिपॉजिटरी सफलतापूरà¥à¤µà¤• रीफà¥à¤°à¥‡à¤¶ की गई", + "alert_invalid_url": "अमानà¥à¤¯ URL पà¥à¤°à¤¾à¤°à¥‚प", + "alert_plugins_cleared": "सभी पà¥à¤²à¤—इनà¥à¤¸ हटा दिठगठहैं", + "alert_cache_cleared": "रिपॉजिटरी कैश सफलतापूरà¥à¤µà¤• साफ़ किया गया", + "unknown": "अजà¥à¤žà¤¾à¤¤", + "active": "सकà¥à¤°à¤¿à¤¯", + "available": "उपलबà¥à¤§", + "platform_disabled": "पà¥à¤²à¥‡à¤Ÿà¤«à¤¼à¥‰à¤°à¥à¤® अकà¥à¤·à¤®", + "limited": "सीमित", + "clear_all": "सभी पà¥à¤²à¤—इनà¥à¤¸ साफ़ करें", + "clear_all_desc": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से सभी इंसà¥à¤Ÿà¥‰à¤² किठगठपà¥à¤²à¤—इनà¥à¤¸ को हटाना चाहते हैं? इस कारà¥à¤°à¤µà¤¾à¤ˆ को पूरà¥à¤µà¤µà¤¤ नहीं किया जा सकता।", + "clear_cache": "रिपॉजिटरी कैश साफ़ करें", + "clear_cache_desc": "यह सहेजे गठरिपॉजिटरी URL को हटा देगा और सभी कैश किठगठपà¥à¤²à¤—इन डेटा को साफ़ कर देगा। आपको अपना रिपॉजिटरी URL फिर से दरà¥à¤œ करना होगा।", + "add_new_repo": "नई रिपॉजिटरी जोड़ें", + "available_plugins": "उपलबà¥à¤§ पà¥à¤²à¤—इनà¥à¤¸ ({{count}})", + "placeholder": "पà¥à¤²à¤—इनà¥à¤¸ खोजें...", + "all": "सभी", + "filter_all": "सभी पà¥à¤°à¤•ार", + "filter_movies": "फिलà¥à¤®à¥‡à¤‚", + "filter_tv": "टीवी शोज़", + "enable_all": "सभी सकà¥à¤·à¤® करें", + "disable_all": "सभी अकà¥à¤·à¤® करें", + "no_plugins_found": "कोई पà¥à¤²à¤—इन नहीं मिला", + "no_plugins_available": "कोई पà¥à¤²à¤—इन उपलबà¥à¤§ नहीं", + "no_match_desc": "\"{{query}}\" से मेल खाने वाले कोई पà¥à¤²à¤—इन नहीं। à¤à¤• अलग खोज शबà¥à¤¦ आज़माà¤à¤‚।", + "configure_repo_desc": "उपलबà¥à¤§ पà¥à¤²à¤—इनà¥à¤¸ देखने के लिठऊपर à¤à¤• रिपॉजिटरी कॉनà¥à¤«à¤¼à¤¿à¤—र करें।", + "clear_search": "खोज साफ़ करें", + "no_external_player": "कोई बाहरी पà¥à¤²à¥‡à¤¯à¤° नहीं", + "showbox_token": "ShowBox UI टोकन", + "showbox_placeholder": "अपना ShowBox UI टोकन पेसà¥à¤Ÿ करें", + "save": "सहेजें", + "clear": "साफ़ करें", + "additional_settings": "अतिरिकà¥à¤¤ सेटिंगà¥à¤¸", + "enable_url_validation": "URL सतà¥à¤¯à¤¾à¤ªà¤¨ सकà¥à¤·à¤® करें", + "url_validation_desc": "उनà¥à¤¹à¥‡à¤‚ वापस करने से पहले मीडिया URL सतà¥à¤¯à¤¾à¤ªà¤¿à¤¤ करें (परिणाम धीमा हो सकता है लेकिन विशà¥à¤µà¤¸à¤¨à¥€à¤¯à¤¤à¤¾ में सà¥à¤§à¤¾à¤° होता है)", + "group_streams": "पà¥à¤²à¤—इन सà¥à¤°à¥‹à¤¤ समूह", + "group_streams_desc": "सकà¥à¤·à¤® होने पर, सà¥à¤°à¥‹à¤¤ रिपॉजिटरी दà¥à¤µà¤¾à¤°à¤¾ समूहीकृत होते हैं। अकà¥à¤·à¤® होने पर, पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पà¥à¤²à¤—इन à¤à¤• अलग पà¥à¤°à¤¦à¤¾à¤¤à¤¾ के रूप में दिखाई देता है।", + "sort_quality": "पहले गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ के अनà¥à¤¸à¤¾à¤° कà¥à¤°à¤®à¤¬à¤¦à¥à¤§ करें", + "sort_quality_desc": "सकà¥à¤·à¤® होने पर, सà¥à¤°à¥‹à¤¤ पहले गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ के अनà¥à¤¸à¤¾à¤° कà¥à¤°à¤®à¤¬à¤¦à¥à¤§ होते हैं। केवल तभी उपलबà¥à¤§ जब समूहीकरण सकà¥à¤·à¤® हो।", + "show_logos": "पà¥à¤²à¤—इन लोगो दिखाà¤à¤‚", + "show_logos_desc": "सà¥à¤°à¥‹à¤¤ सà¥à¤•à¥à¤°à¥€à¤¨ पर मीडिया लिंक के बगल में पà¥à¤²à¤—इन लोगो पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें।", + "quality_filtering": "गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ फ़िलà¥à¤Ÿà¤°à¤¿à¤‚ग", + "quality_filtering_desc": "खोज परिणामों से विशिषà¥à¤Ÿ वीडियो रिज़ॉलà¥à¤¯à¥‚शन को बाहर निकालें। पà¥à¤²à¤—इन परिणामों से बाहर निकालने के लिठगà¥à¤£à¤µà¤¤à¥à¤¤à¤¾ पर टैप करें।", + "excluded_qualities": "बहिषà¥à¤•ृत गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾:", + "language_filtering": "भाषा फ़िलà¥à¤Ÿà¤°à¤¿à¤‚ग", + "language_filtering_desc": "खोज परिणामों से विशिषà¥à¤Ÿ भाषाओं को बाहर निकालें। पà¥à¤²à¤—इन परिणामों से बाहर निकालने के लिठकिसी भाषा पर टैप करें।", + "note": "नोट:", + "language_filtering_note": "यह फ़िलà¥à¤Ÿà¤° केवल उन पà¥à¤°à¤¦à¤¾à¤¤à¤¾à¤“ं पर लागू होता है जिनमें भाषा की जानकारी शामिल होती है। यह अनà¥à¤¯ पà¥à¤°à¤¦à¤¾à¤¤à¤¾à¤“ं को पà¥à¤°à¤­à¤¾à¤µà¤¿à¤¤ नहीं करता है।", + "excluded_languages": "बहिषà¥à¤•ृत भाषाà¤à¤‚:", + "about_title": "पà¥à¤²à¤—इनà¥à¤¸ के बारे में", + "about_desc_1": "पà¥à¤²à¤—इनà¥à¤¸ मॉडà¥à¤¯à¥‚लर घटक हैं जो विभिनà¥à¤¨ बाहरी पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल से सामगà¥à¤°à¥€ को अनà¥à¤•ूलित करते हैं। वे आपके डिवाइस पर सà¥à¤¥à¤¾à¤¨à¥€à¤¯ रूप से चलते हैं और विशà¥à¤µà¤¸à¤¨à¥€à¤¯ रिपॉजिटरी से सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किठजा सकते हैं।", + "about_desc_2": "\"सीमित\" चिहà¥à¤¨à¤¿à¤¤ पà¥à¤²à¤—इनà¥à¤¸ को विशिषà¥à¤Ÿ बाहरी कॉनà¥à¤«à¤¼à¤¿à¤—रेशन की आवशà¥à¤¯à¤•ता हो सकती है।", + "help_title": "पà¥à¤²à¤—इन सेटअप", + "help_step_1": "1. **पà¥à¤²à¤—इनà¥à¤¸ सकà¥à¤·à¤® करें** - मà¥à¤–à¥à¤¯ सà¥à¤µà¤¿à¤š चालू करें", + "help_step_2": "2. **रिपॉजिटरी जोड़ें** - à¤à¤• वैध रिपॉजिटरी URL जोड़ें", + "help_step_3": "3. **रिपॉजिटरी रीफà¥à¤°à¥‡à¤¶ करें** - उपलबà¥à¤§ पà¥à¤²à¤—इनà¥à¤¸ पà¥à¤°à¤¾à¤ªà¥à¤¤ करें", + "help_step_4": "4. **सकà¥à¤°à¤¿à¤¯ करें** - उन पà¥à¤²à¤—इनà¥à¤¸ को सकà¥à¤·à¤® करें जिनका आप उपयोग करना चाहते हैं", + "got_it": "समठगया!", + "repo_format_hint": "पà¥à¤°à¤¾à¤°à¥‚प: https://raw.githubusercontent.com/username/repo/refs/heads/branch", + "cancel": "रदà¥à¤¦ करें", + "add": "जोड़ें" + }, + "theme": { + "title": "à¤à¤ª थीमà¥à¤¸", + "select_theme": "थीम चà¥à¤¨à¥‡à¤‚", + "create_custom": "कसà¥à¤Ÿà¤® थीम बनाà¤à¤‚", + "options": "विकलà¥à¤ª", + "use_dominant_color": "कलाकृति से पà¥à¤°à¤®à¥à¤– रंग का उपयोग करें", + "categories": { + "all": "सभी थीमà¥à¤¸", + "dark": "डारà¥à¤• थीमà¥à¤¸", + "colorful": "रंगीन", + "custom": "मेरी थीमà¥à¤¸" + }, + "editor": { + "theme_name_placeholder": "थीम का नाम", + "save": "सहेजें", + "primary": "पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•", + "secondary": "माधà¥à¤¯à¤®à¤¿à¤•", + "background": "पृषà¥à¤ à¤­à¥‚मि", + "invalid_name_title": "अमानà¥à¤¯ नाम", + "invalid_name_msg": "कृपया à¤à¤• वैध थीम नाम दरà¥à¤œ करें" + }, + "alerts": { + "delete_title": "थीम हटाà¤à¤‚", + "delete_msg": "कà¥à¤¯à¤¾ आप निशà¥à¤šà¤¿à¤¤ रूप से \"{{name}}\" को हटाना चाहते हैं?", + "ok": "दीक है", + "delete": "हटाà¤à¤‚", + "cancel": "रदà¥à¤¦ करें", + "back": "सेटिंगà¥à¤¸" + } + }, + "legal": { + "title": "कानूनी और असà¥à¤µà¥€à¤•रण", + "intro_title": "à¤à¤ªà¥à¤²à¤¿à¤•ेशन की पà¥à¤°à¤•ृति", + "intro_text": "Nuvio à¤à¤• मीडिया पà¥à¤²à¥‡à¤¯à¤° और मेटाडेटा पà¥à¤°à¤¬à¤‚धन à¤à¤ªà¥à¤²à¤¿à¤•ेशन है। यह सारà¥à¤µà¤œà¤¨à¤¿à¤• रूप से उपलबà¥à¤§ मेटाडेटा (फिलà¥à¤®à¥‡à¤‚, टीवी शो, आदि) बà¥à¤°à¤¾à¤‰à¤œà¤¼ करने और उपयोगकरà¥à¤¤à¤¾ या तृतीय-पकà¥à¤· à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¦à¤¾à¤¨ की गई मीडिया फ़ाइलों को चलाने के लिठपूरी तरह से कà¥à¤²à¤¾à¤‡à¤‚ट-साइड इंटरफ़ेस के रूप में कारà¥à¤¯ करता है। Nuvio सà¥à¤µà¤¯à¤‚ किसी भी मीडिया सामगà¥à¤°à¥€ को होसà¥à¤Ÿ, सà¥à¤Ÿà¥‹à¤°, वितरित या इंडेकà¥à¤¸ नहीं करता है।", + "extensions_title": "तृतीय-पकà¥à¤· पà¥à¤²à¤—इनà¥à¤¸", + "extensions_text": "Nuvio à¤à¤• à¤à¤•à¥à¤¸à¥à¤Ÿà¥‡à¤‚सिबल आरà¥à¤•िटेकà¥à¤šà¤° का उपयोग करता है जो उपयोगकरà¥à¤¤à¤¾à¤“ं को तृतीय-पकà¥à¤· पà¥à¤²à¤—इनà¥à¤¸ सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करने की अनà¥à¤®à¤¤à¤¿ देता है। ये पà¥à¤²à¤—इनà¥à¤¸ सà¥à¤µà¤¤à¤‚तà¥à¤° डेवलपरà¥à¤¸ दà¥à¤µà¤¾à¤°à¤¾ विकसित और बनाठरखे जाते हैं जो Nuvio से संबदà¥à¤§ नहीं हैं। किसी भी तृतीय-पकà¥à¤· पà¥à¤²à¤—इन की सामगà¥à¤°à¥€, वैधता या कारà¥à¤¯à¤•à¥à¤·à¤®à¤¤à¤¾ के लिठहमारा कोई नियंतà¥à¤°à¤£ नहीं है, और हम कोई जिमà¥à¤®à¥‡à¤¦à¤¾à¤°à¥€ नहीं लेते हैं।", + "user_resp_title": "उपयोगकरà¥à¤¤à¤¾ जिमà¥à¤®à¥‡à¤¦à¤¾à¤°à¥€", + "user_resp_text": "उपयोगकरà¥à¤¤à¤¾ पूरी तरह से उन पà¥à¤²à¤—इनà¥à¤¸ के लिठजिमà¥à¤®à¥‡à¤¦à¤¾à¤° हैं जिनà¥à¤¹à¥‡à¤‚ वे सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करते हैं और जिस सामगà¥à¤°à¥€ तक वे पहà¥à¤‚चते हैं। इस à¤à¤ªà¥à¤²à¤¿à¤•ेशन का उपयोग करके, आप यह सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ करने के लिठसहमत हैं कि आपके पास Nuvio का उपयोग करके किसी भी सामगà¥à¤°à¥€ को देखने का कानूनी अधिकार है। Nuvio के डेवलपरà¥à¤¸ कॉपीराइट उलà¥à¤²à¤‚घन का समरà¥à¤¥à¤¨ या पà¥à¤°à¥‹à¤¤à¥à¤¸à¤¾à¤¹à¤¨ नहीं करते हैं।", + "dmca_title": "कॉपीराइट और DMCA", + "dmca_text": "हम दूसरों के बौदà¥à¤§à¤¿à¤• संपदा अधिकारों का समà¥à¤®à¤¾à¤¨ करते हैं। चूंकि Nuvio किसी भी सामगà¥à¤°à¥€ को होसà¥à¤Ÿ नहीं करता है, इसलिठहम इंटरनेट से सामगà¥à¤°à¥€ नहीं हटा सकते हैं। हालाà¤à¤•ि, यदि आपको लगता है कि à¤à¤ªà¥à¤²à¤¿à¤•ेशन इंटरफ़ेस सà¥à¤µà¤¯à¤‚ आपके अधिकारों का उलà¥à¤²à¤‚घन करता है, तो कृपया हमसे संपरà¥à¤• करें।", + "warranty_title": "कोई वारंटी नहीं", + "warranty_text": "यह सॉफ़à¥à¤Ÿà¤µà¥‡à¤¯à¤° \"जैसा है\" पà¥à¤°à¤¦à¤¾à¤¨ किया जाता है, बिना किसी पà¥à¤°à¤•ार की वारंटी, वà¥à¤¯à¤•à¥à¤¤ या निहित। किसी भी सà¥à¤¥à¤¿à¤¤à¤¿ में लेखक या कॉपीराइट धारक इस सॉफ़à¥à¤Ÿà¤µà¥‡à¤¯à¤° के उपयोग से उतà¥à¤ªà¤¨à¥à¤¨ किसी भी दावे, कà¥à¤·à¤¤à¤¿ या अनà¥à¤¯ दायितà¥à¤µ के लिठउतà¥à¤¤à¤°à¤¦à¤¾à¤¯à¥€ नहीं होंगे।" + }, + "plugin_tester": { + "title": "पà¥à¤²à¤—इन टेसà¥à¤Ÿà¤°", + "subtitle": "चलते-फिरते सà¥à¤•à¥à¤°à¥ˆà¤ªà¤° चलाà¤à¤‚ और लॉग का निरीकà¥à¤·à¤£ करें", + "tabs": { + "individual": "वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त", + "repo": "रिपो टेसà¥à¤Ÿà¤°", + "code": "कोड", + "logs": "लॉग", + "results": "परिणाम" + }, + "common": { + "error": "तà¥à¤°à¥à¤Ÿà¤¿", + "success": "सफल", + "movie": "फिलà¥à¤®", + "tv": "टीवी", + "tmdb_id": "TMDB ID", + "season": "सीज़न", + "episode": "à¤à¤ªà¤¿à¤¸à¥‹à¤¡", + "running": "चल रहा है...", + "run_test": "टेसà¥à¤Ÿ चलाà¤à¤‚", + "play": "चलाà¤à¤‚", + "done": "हो गया", + "test": "टेसà¥à¤Ÿ", + "testing": "परीकà¥à¤·à¤£..." + }, + "individual": { + "load_from_url": "URL से लोड करें", + "load_from_url_desc": "à¤à¤• कचà¥à¤šà¤¾ GitHub URL या सà¥à¤¥à¤¾à¤¨à¥€à¤¯ IP पेसà¥à¤Ÿ करें और डाउनलोड टैप करें।", + "enter_url_error": "कृपया à¤à¤• URL दरà¥à¤œ करें", + "code_loaded": "कोड़ URL से लोड किया गया", + "fetch_error": "लाने में विफल: {{message}}", + "no_code_error": "चलाने के लिठकोई कोड नहीं", + "plugin_code": "पà¥à¤²à¤—इन कोड", + "focus_editor": "कोड à¤à¤¡à¤¿à¤Ÿà¤° फोकस करें", + "code_placeholder": "// यहाठपà¥à¤²à¤—इन कोड पेसà¥à¤Ÿ करें...", + "test_parameters": "टेसà¥à¤Ÿ पैरामीटर", + "no_logs": "अभी तक कोई लॉग नहीं। आउटपà¥à¤Ÿ देखने के लिठà¤à¤• टेसà¥à¤Ÿ चलाà¤à¤‚।", + "no_streams": "अभी तक कोई सà¥à¤Ÿà¥à¤°à¥€à¤® नहीं मिली।", + "streams_found": "{{count}} सà¥à¤Ÿà¥à¤°à¥€à¤® मिली", + "streams_found_plural": "{{count}} सà¥à¤Ÿà¥à¤°à¥€à¤®à¥à¤¸ मिलीं", + "tap_play_hint": "मूल पà¥à¤²à¥‡à¤¯à¤° में सà¥à¤Ÿà¥à¤°à¥€à¤® का परीकà¥à¤·à¤£ करने के लिठपà¥à¤²à¥‡ टैप करें।", + "unnamed_stream": "अनाम सà¥à¤Ÿà¥à¤°à¥€à¤®", + "quality": "गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾: {{quality}}", + "size": "आकार: {{size}}", + "url_label": "URL: {{url}}", + "headers_info": "हेडर: {{count}} कसà¥à¤Ÿà¤® हेडर", + "find_placeholder": "कोड में खोजें...", + "edit_code_title": "कोड संपादित करें", + "no_url_stream_error": "इस सà¥à¤Ÿà¥à¤°à¥€à¤® के लिठकोई URL नहीं मिला" + }, + "repo": { + "title": "रिपो टेसà¥à¤Ÿà¤°", + "description": "à¤à¤• रिपॉजिटरी (सà¥à¤¥à¤¾à¤¨à¥€à¤¯ URL या GitHub कचà¥à¤šà¤¾) पà¥à¤°à¤¾à¤ªà¥à¤¤ करें और पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पà¥à¤°à¤¦à¤¾à¤¤à¤¾ का परीकà¥à¤·à¤£ करें।", + "enter_repo_url_error": "कृपया à¤à¤• रिपॉजिटरी URL दरà¥à¤œ करें", + "invalid_url_title": "अमानà¥à¤¯ URL", + "invalid_url_msg": "GitHub कचà¥à¤šà¤¾ URL या सà¥à¤¥à¤¾à¤¨à¥€à¤¯ http(s) URL का उपयोग करें।\n\nउदाहरण:\nhttps://raw.githubusercontent.com/tapframe/nuvio-providers/refs/heads/main", + "manifest_build_error": "इनपà¥à¤Ÿ से मेनिफेसà¥à¤Ÿ URL नहीं बनाया जा सका", + "manifest_fetch_error": "मेनिफेसà¥à¤Ÿ लाने में विफल", + "repo_manifest_fetch_error": "रिपॉजिटरी मेनिफेसà¥à¤Ÿ लाने में विफल", + "missing_filename": "मेनिफेसà¥à¤Ÿ में फ़ाइल नाम गायब है", + "scraper_build_error": "सà¥à¤•à¥à¤°à¥ˆà¤ªà¤° URL नहीं बनाया जा सका", + "download_scraper_error": "सà¥à¤•à¥à¤°à¥ˆà¤ªà¤° डाउनलोड करने में विफल", + "test_failed": "टेसà¥à¤Ÿ विफल", + "test_parameters": "रिपो टेसà¥à¤Ÿ पैरामीटर", + "test_parameters_desc": "ये पैरामीटर केवल रिपो टेसà¥à¤Ÿà¤° के लिठउपयोग किठजाते हैं।", + "using_info": "उपयोग: {{mediaType}} • TMDB {{tmdbId}}", + "using_info_tv": "उपयोग: {{mediaType}} • TMDB {{tmdbId}} • S{{season}}E{{episode}}", + "providers_title": "पà¥à¤°à¤¦à¤¾à¤¤à¤¾", + "repository_default": "रिपॉजिटरी", + "providers_count": "{{count}} पà¥à¤°à¤¦à¤¾à¤¤à¤¾", + "fetch_hint": "पà¥à¤°à¤¦à¤¾à¤¤à¤¾à¤“ं को सूचीबदà¥à¤§ करने के लिठà¤à¤• रिपो पà¥à¤°à¤¾à¤ªà¥à¤¤ करें।", + "test_all": "सभी टेसà¥à¤Ÿ करें", + "status_running": "चल रहा है", + "status_ok": "ठीक है ({{count}})", + "status_ok_empty": "ठीक है (0)", + "status_failed": "विफल", + "status_idle": "निषà¥à¤•à¥à¤°à¤¿à¤¯", + "tried_url": "आजमाया गया: {{url}}", + "provider_logs": "पà¥à¤°à¤¦à¤¾à¤¤à¤¾ लॉग", + "no_logs_captured": "कोई लॉग कैपà¥à¤šà¤° नहीं किया गया।" + } + } +} \ No newline at end of file diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index bf9c60f2..b14fdffc 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -632,6 +632,7 @@ "italian": "Talijanski", "croatian": "Hrvatski", "chinese": "Kineski (Pojednostavljeni)", + "hindi": "Hindski", "account": "RaÄun", "content_discovery": "Sadržaj i otkrivanje", "appearance": "Izgled", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index bb2105b3..8149982d 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -632,6 +632,7 @@ "italian": "Italiano", "croatian": "Croato", "chinese": "Cinese (Semplificato)", + "hindi": "Hindi", "account": "Account", "content_discovery": "Contenuti e Scoperta", "appearance": "Aspetto", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index ffe237c6..f5f8784a 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -646,6 +646,7 @@ "italian": "Italiano", "croatian": "Croata", "chinese": "Chinês (Simplificado)", + "hindi": "Hindi", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", diff --git a/src/i18n/locales/pt-PT.json b/src/i18n/locales/pt-PT.json index 19ec3a71..bd5bb645 100644 --- a/src/i18n/locales/pt-PT.json +++ b/src/i18n/locales/pt-PT.json @@ -646,6 +646,7 @@ "italian": "Italiano", "croatian": "Croata", "chinese": "Chinês (Simplificado)", + "hindi": "Hindi", "account": "Conta", "content_discovery": "Conteúdo e Descoberta", "appearance": "Aparência", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index fd58c310..93fb7cbc 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -632,6 +632,7 @@ "italian": "æ„大利语", "croatian": "克罗地亚语", "chinese": "简体中文", + "hindi": "å°åœ°è¯­", "account": "账户", "content_discovery": "内容与å‘现", "appearance": "外观", diff --git a/src/i18n/resources.ts b/src/i18n/resources.ts index 8f09b755..feb80a4f 100644 --- a/src/i18n/resources.ts +++ b/src/i18n/resources.ts @@ -8,6 +8,7 @@ import it from './locales/it.json'; import de from './locales/de.json'; import hr from './locales/hr.json'; +import hi from './locales/hi.json'; import zhCN from './locales/zh-CN.json'; export const resources = { @@ -21,4 +22,5 @@ export const resources = { de: { translation: de }, hr: { translation: hr }, 'zh-CN': { translation: zhCN }, + hi: { translation: hi }, }; diff --git a/src/screens/ContributorsScreen.tsx b/src/screens/ContributorsScreen.tsx index 318e4eba..75dfe841 100644 --- a/src/screens/ContributorsScreen.tsx +++ b/src/screens/ContributorsScreen.tsx @@ -254,7 +254,7 @@ const DonorCard: React.FC = ({ donor, currentTheme, isTablet }) try { const date = new Date(dateString); if (isNaN(date.getTime())) return dateString; - + return date.toLocaleDateString(undefined, { year: 'numeric', month: 'short', @@ -333,7 +333,7 @@ const ContributorsScreen: React.FC = () => { try { const date = new Date(dateString); if (isNaN(date.getTime())) return dateString; - + // Use locale-aware formatting return date.toLocaleDateString(undefined, { year: 'numeric', @@ -382,15 +382,17 @@ const ContributorsScreen: React.FC = () => { const sorted = Array.from(map.values()).sort((a, b) => b.total - a.total); let lastTotal: number | null = null; - let lastRank = 0; + let currentRank = 0; - return sorted.map((entry, index) => { - const rank = lastTotal !== null && entry.total === lastTotal ? lastRank : index + 1; + return sorted.map((entry) => { + if (lastTotal === null || entry.total !== lastTotal) { + currentRank += 1; + } lastTotal = entry.total; - lastRank = rank; + return { ...entry, - rank, + rank: currentRank, }; }); }, [donations, getDonationTs]); @@ -803,87 +805,87 @@ const ContributorsScreen: React.FC = () => { - {donationsLoading ? ( - - - {t('contributors.loading_donors')} - - ) : donationsError ? ( - - - - {donationsError} - - loadDonations(true)} - > - {t('common.retry')} - - - ) : donations.length === 0 ? ( - - - {t('contributors.no_donors')} - + {donationsLoading ? ( + + + {t('contributors.loading_donors')} + + ) : donationsError ? ( + + + + {donationsError} + + loadDonations(true)} + > + {t('common.retry')} + + + ) : donations.length === 0 ? ( + + + {t('contributors.no_donors')} + + ) : ( + donorsTab === 'latest' ? ( + latestDonations.map((donor, index) => ( + + )) ) : ( - donorsTab === 'latest' ? ( - latestDonations.map((donor, index) => ( - - )) - ) : ( - leaderboardDonations.map((entry, index) => ( - - - {getRankAnimation(entry.rank) ? ( - - {entry.rank} - - - ) : ( + leaderboardDonations.map((entry, index) => ( + + + {getRankAnimation(entry.rank) ? ( + {entry.rank} - )} - - - - {entry.name} - - - {entry.total.toFixed(2)} {entry.currency} · {entry.count} {entry.count === 1 ? 'donation' : 'donations'} - - - Rank #{entry.rank} · Last: {formatDonationDate(entry.lastDate)} - - + + + ) : ( + {entry.rank} + )} - )) - ) - )} + + + {entry.name} + + + {entry.total.toFixed(2)} {entry.currency} · {entry.count} {entry.count === 1 ? 'donation' : 'donations'} + + + Rank #{entry.rank} · Last: {formatDonationDate(entry.lastDate)} + + + + )) + ) + )} ) : activeTab === 'contributors' ? ( // Contributors Tab diff --git a/src/screens/settings/AboutSettingsScreen.tsx b/src/screens/settings/AboutSettingsScreen.tsx index b0cde362..04e3d3d4 100644 --- a/src/screens/settings/AboutSettingsScreen.tsx +++ b/src/screens/settings/AboutSettingsScreen.tsx @@ -183,6 +183,15 @@ export const AboutSettingsContent: React.FC = ({ return ( <> + {isTablet && ( + navigation.navigate('Contributors')} + renderControl={() => } + isTablet={isTablet} + /> + )} Date: Mon, 26 Jan 2026 10:54:56 +0530 Subject: [PATCH 48/58] update readme --- README.md | 175 +++++++++--------------------------------------------- 1 file changed, 29 insertions(+), 146 deletions(-) diff --git a/README.md b/README.md index ecf89b79..c252d120 100644 --- a/README.md +++ b/README.md @@ -1,175 +1,60 @@ -# 🎬 Nuvio Media Hub +# Nuvio Media Hub -
- - - [![Contributors][contributors-shield]][contributors-url] - [![Forks][forks-shield]][forks-url] - [![Stargazers][stars-shield]][stars-url] - [![Issues][issues-shield]][issues-url] - [![License][license-shield]][license-url] - Nuvio Logo

- A modern media hub built with React Native and Expo + A modern media hub built with React Native and Expo.
- Stremio Addon ecosystem • Cross‑platform • Offline metadata & sync -
-
- Get Started » -
-
- -Report Bug -· -Request Feature + Stremio Addon ecosystem • Cross-platform • Offline metadata & sync

- -
- Table of Contents +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![License][license-shield]][license-url] -
    -
  1. - About The Project -
  2. -
  3. Installation
  4. +## About -
  5. Getting Started
  6. -
  7. Contributing
  8. -
  9. Support
  10. -
  11. License
  12. -
  13. Legal
  14. -
  15. Contact
  16. -
  17. Acknowledgments
  18. -
  19. Built With
  20. -
-
+Nuvio Media Hub is a cross-platform app for managing, discovering, and streaming your media via a flexible addon ecosystem. Built with React Native and Expo. - -## About The Project - -Nuvio Media Hub is a cross‑platform app for managing, discovering, and streaming your media via a flexible addon ecosystem. Built with React Native + Expo, it integrates providers and sync services while keeping a simple, fast UI. - - ## Installation ### Android -[![Download APK](https://img.shields.io/badge/Download-APK-green?style=for-the-badge)](https://github.com/tapframe/NuvioStreaming/releases/latest) - -Download the latest APK from [GitHub Releases](https://github.com/tapframe/NuvioStreaming/releases/latest) +Download the latest APK from [GitHub Releases](https://github.com/tapframe/NuvioStreaming/releases/latest). ### iOS -#### TestFlight (Recommended) +* [TestFlight](https://testflight.apple.com/join/QkKMGRqp) +* [AltStore](https://tinyurl.com/NuvioAltstore) +* [SideStore](https://tinyurl.com/NuvioSidestore) -TestFlight Icon [![Join TestFlight](https://img.shields.io/badge/Join-TestFlight-blue?style=for-the-badge)](https://testflight.apple.com/join/QkKMGRqp) +**Manual source:** `https://raw.githubusercontent.com/tapframe/NuvioStreaming/main/nuvio-source.json` -#### AltStore +## Development -AltStore Logo [![Add to AltStore](https://img.shields.io/badge/Add%20to-AltStore-blue?style=for-the-badge)](https://tinyurl.com/NuvioAltstore) +```bash +git clone https://github.com/tapframe/NuvioStreaming.git +cd NuvioStreaming +npm install +npx expo run:android +# or +npx expo run:ios +``` -#### SideStore +## Legal & DMCA -SideStore Logo [![Add to SideStore](https://img.shields.io/badge/Add%20to-SideStore-green?style=for-the-badge)](https://tinyurl.com/NuvioSidestore) - -**Manual URL:** `https://raw.githubusercontent.com/tapframe/NuvioStreaming/main/nuvio-source.json` - -

(back to top)

- - -## Getting Started - -Follow the steps below to run the app locally for development. For detailed setup and troubleshooting, see [Project Documentation](docs/DOCUMENTATION.md). - -### Development Build - -
- Build from Source - - git clone https://github.com/tapframe/NuvioStreaming.git - cd NuvioStreaming - npm install - # If you hit peer dependency conflicts: - # npm install --legacy-peer-deps - npx expo start - - npx expo prebuild - npx expo run:android # Android - npx expo run:ios # iOS - -
- -

(back to top)

- -## Contributing - -Contributions make the open‑source community amazing! Any contributions are greatly appreciated. - -1. Fork the project -2. Create your feature branch (`git checkout -b feature/AmazingFeature`) -3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) -4. Push to the branch (`git push origin feature/AmazingFeature`) -5. Open a Pull Request - -

(back to top)

- -## Support - -If you find Nuvio helpful, consider supporting development: - -* **Ko‑Fi** – `https://ko-fi.com/tapframe` -* **GitHub Star** – Star the repo to show support -* **Share** – Tell others about the project - -

(back to top)

- -## License - -Distributed under the GNU GPLv3 License. See `LICENSE` for more information. - -

(back to top)

- -## Legal +Nuvio functions solely as a client-side interface for browsing metadata and playing media files provided by user-installed extensions. It does not host, store, or distribute any media content. For comprehensive legal information, including our full disclaimer, third-party extension policy, and DMCA/Copyright information, please visit our **[Legal & Disclaimer Page](https://tapframe.github.io/NuvioStreaming/#legal)**. -**Disclaimer:** Nuvio functions solely as a client-side interface for browsing metadata and playing media files provided by user-installed extensions. It does not host, store, or distribute any media content. - -

(back to top)

- -## Contact - -**Project Links:** - -* GitHub: `https://github.com/tapframe` -* Issues: `https://github.com/tapframe/NuvioStreaming/issues` - -

(back to top)

- -## Acknowledgments - -* [React Native](https://reactnative.dev/) -* [Expo](https://expo.dev/) -* [TypeScript](https://www.typescriptlang.org/) -* Community contributors and testers - -**Disclaimer:** This application functions as a media hub with addon/plugin support. It does not contain any built‑in content or host media content. Content access is only available through user‑installed plugins and addons. Any legal concerns should be directed to the specific websites providing the content. - -

(back to top)

- ## Built With -

- - Skills Icons - -
- React Native • Expo • TypeScript -

+* React Native +* Expo +* TypeScript ## Star History @@ -181,8 +66,6 @@ For comprehensive legal information, including our full disclaimer, third-party -

(back to top)

- [contributors-shield]: https://img.shields.io/github/contributors/tapframe/NuvioStreaming.svg?style=for-the-badge [contributors-url]: https://github.com/tapframe/NuvioStreaming/graphs/contributors From 4ea96b477fb89311b48856bd9d265986a551955c Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 11:04:16 +0530 Subject: [PATCH 49/58] update readme --- README.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c252d120..cd7f51b7 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,22 @@ -# Nuvio Media Hub -
- Nuvio Logo -

+ + Nuvio +
+
+ + [![Contributors][contributors-shield]][contributors-url] + [![Forks][forks-shield]][forks-url] + [![Stargazers][stars-shield]][stars-url] + [![Issues][issues-shield]][issues-url] + [![License][license-shield]][license-url] + +

A modern media hub built with React Native and Expo.
Stremio Addon ecosystem • Cross-platform • Offline metadata & sync

-
-[![Contributors][contributors-shield]][contributors-url] -[![Forks][forks-shield]][forks-url] -[![Stargazers][stars-shield]][stars-url] -[![Issues][issues-shield]][issues-url] -[![License][license-shield]][license-url] + ## About From f4bd44d3e021027923c14984c4c7a4f4cee57b5c Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 11:46:28 +0530 Subject: [PATCH 50/58] Removed Debrid Integration --- src/navigation/AppNavigator.tsx | 20 +++---------------- .../ContentDiscoverySettingsScreen.tsx | 15 +++----------- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index 13f50760..61ac06bb 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -73,7 +73,7 @@ import BackdropGalleryScreen from '../screens/BackdropGalleryScreen'; import BackupScreen from '../screens/BackupScreen'; import ContinueWatchingSettingsScreen from '../screens/ContinueWatchingSettingsScreen'; import ContributorsScreen from '../screens/ContributorsScreen'; -import DebridIntegrationScreen from '../screens/DebridIntegrationScreen'; + import { ContentDiscoverySettingsScreen, AppearanceSettingsScreen, @@ -214,7 +214,7 @@ export type RootStackParamList = { }; ContinueWatchingSettings: undefined; Contributors: undefined; - DebridIntegration: undefined; + // New organized settings screens ContentDiscoverySettings: undefined; AppearanceSettings: undefined; @@ -1730,21 +1730,7 @@ const InnerNavigator = ({ initialRouteName }: { initialRouteName?: keyof RootSta }, }} /> - + - {hasVisibleItems(['addons', 'debrid']) && ( + {hasVisibleItems(['addons', 'scrapers']) && ( {isItemVisible('addons') && ( } onPress={() => navigation.navigate('Addons')} - isLast={!isItemVisible('debrid')} - isTablet={isTablet} - /> - )} - {isItemVisible('debrid') && ( - } - onPress={() => navigation.navigate('DebridIntegration')} + isLast={!isItemVisible('scrapers')} isTablet={isTablet} /> )} + {isItemVisible('scrapers') && ( Date: Mon, 26 Jan 2026 12:53:14 +0530 Subject: [PATCH 51/58] added simkl watchlists --- App.tsx | 17 +- src/contexts/SimklContext.tsx | 85 +++++ src/hooks/useSimklIntegration.ts | 535 +++++++++++++++++++++++++-- src/screens/LibraryScreen.tsx | 606 +++++++++++++++++++++++++++++-- src/services/simklService.ts | 287 ++++++++++++++- 5 files changed, 1453 insertions(+), 77 deletions(-) create mode 100644 src/contexts/SimklContext.tsx diff --git a/App.tsx b/App.tsx index 4be43b96..ffe6425f 100644 --- a/App.tsx +++ b/App.tsx @@ -30,6 +30,7 @@ import 'react-native-reanimated'; import { CatalogProvider } from './src/contexts/CatalogContext'; import { GenreProvider } from './src/contexts/GenreContext'; import { TraktProvider } from './src/contexts/TraktContext'; +import { SimklProvider } from './src/contexts/SimklContext'; import { ThemeProvider, useTheme } from './src/contexts/ThemeContext'; import { TrailerProvider } from './src/contexts/TrailerContext'; import { DownloadsProvider } from './src/contexts/DownloadsContext'; @@ -263,13 +264,15 @@ function App(): React.JSX.Element { - - - - - - - + + + + + + + + + diff --git a/src/contexts/SimklContext.tsx b/src/contexts/SimklContext.tsx new file mode 100644 index 00000000..b0384009 --- /dev/null +++ b/src/contexts/SimklContext.tsx @@ -0,0 +1,85 @@ +import React, { createContext, useContext, ReactNode } from 'react'; +import { useSimklIntegration } from '../hooks/useSimklIntegration'; +import { + SimklWatchlistItem, + SimklPlaybackData, + SimklRatingItem, + SimklUserSettings, + SimklStats, + SimklStatus +} from '../services/simklService'; + +export interface SimklContextProps { + // Authentication + isAuthenticated: boolean; + isLoading: boolean; + userSettings: SimklUserSettings | null; + userStats: SimklStats | null; + + // Collections - Shows + watchingShows: SimklWatchlistItem[]; + planToWatchShows: SimklWatchlistItem[]; + completedShows: SimklWatchlistItem[]; + onHoldShows: SimklWatchlistItem[]; + droppedShows: SimklWatchlistItem[]; + + // Collections - Movies + watchingMovies: SimklWatchlistItem[]; + planToWatchMovies: SimklWatchlistItem[]; + completedMovies: SimklWatchlistItem[]; + onHoldMovies: SimklWatchlistItem[]; + droppedMovies: SimklWatchlistItem[]; + + // Collections - Anime + watchingAnime: SimklWatchlistItem[]; + planToWatchAnime: SimklWatchlistItem[]; + completedAnime: SimklWatchlistItem[]; + onHoldAnime: SimklWatchlistItem[]; + droppedAnime: SimklWatchlistItem[]; + + // Special collections + continueWatching: SimklPlaybackData[]; + ratedContent: SimklRatingItem[]; + + // Lookup Sets (for O(1) status checks) + watchingSet: Set; + planToWatchSet: Set; + completedSet: Set; + onHoldSet: Set; + droppedSet: Set; + + // Methods + checkAuthStatus: () => Promise; + refreshAuthStatus: () => Promise; + loadAllCollections: () => Promise; + addToStatus: (imdbId: string, type: 'movie' | 'show' | 'anime', status: SimklStatus) => Promise; + removeFromStatus: (imdbId: string, type: 'movie' | 'show' | 'anime', status: SimklStatus) => Promise; + isInStatus: (imdbId: string, type: 'movie' | 'show' | 'anime', status: SimklStatus) => boolean; + + // Scrobbling methods (from existing hook) + startWatching?: (content: any, progress: number) => Promise; + updateProgress?: (content: any, progress: number) => Promise; + stopWatching?: (content: any, progress: number) => Promise; + syncAllProgress?: () => Promise; + fetchAndMergeSimklProgress?: () => Promise; +} + +const SimklContext = createContext(undefined); + +export function SimklProvider({ children }: { children: ReactNode }) { + const simklIntegration = useSimklIntegration(); + + return ( + + {children} + + ); +} + +export function useSimklContext() { + const context = useContext(SimklContext); + if (context === undefined) { + throw new Error('useSimklContext must be used within a SimklProvider'); + } + return context; +} diff --git a/src/hooks/useSimklIntegration.ts b/src/hooks/useSimklIntegration.ts index 3fe37d53..e073951c 100644 --- a/src/hooks/useSimklIntegration.ts +++ b/src/hooks/useSimklIntegration.ts @@ -6,36 +6,106 @@ import { SimklPlaybackData, SimklUserSettings, SimklStats, - SimklActivities + SimklActivities, + SimklWatchlistItem, + SimklRatingItem, + SimklStatus } from '../services/simklService'; import { storageService } from '../services/storageService'; +import { mmkvStorage } from '../services/mmkvStorage'; import { logger } from '../utils/logger'; const simklService = SimklService.getInstance(); +// Cache keys +const SIMKL_ACTIVITIES_CACHE = '@simkl:activities'; +const SIMKL_COLLECTIONS_CACHE = '@simkl:collections'; +const SIMKL_CACHE_TIMESTAMP = '@simkl:cache_timestamp'; + let hasLoadedProfileOnce = false; let cachedUserSettings: SimklUserSettings | null = null; let cachedUserStats: SimklStats | null = null; +interface CollectionsCache { + timestamp: number; + watchingShows: SimklWatchlistItem[]; + watchingMovies: SimklWatchlistItem[]; + watchingAnime: SimklWatchlistItem[]; + planToWatchShows: SimklWatchlistItem[]; + planToWatchMovies: SimklWatchlistItem[]; + planToWatchAnime: SimklWatchlistItem[]; + completedShows: SimklWatchlistItem[]; + completedMovies: SimklWatchlistItem[]; + completedAnime: SimklWatchlistItem[]; + onHoldShows: SimklWatchlistItem[]; + onHoldMovies: SimklWatchlistItem[]; + onHoldAnime: SimklWatchlistItem[]; + droppedShows: SimklWatchlistItem[]; + droppedMovies: SimklWatchlistItem[]; + droppedAnime: SimklWatchlistItem[]; + continueWatching: SimklPlaybackData[]; + ratedContent: SimklRatingItem[]; +} + export function useSimklIntegration() { + // Authentication state const [isAuthenticated, setIsAuthenticated] = useState(false); const [isLoading, setIsLoading] = useState(true); - - // Basic lists - const [continueWatching, setContinueWatching] = useState([]); const [userSettings, setUserSettings] = useState(() => cachedUserSettings); const [userStats, setUserStats] = useState(() => cachedUserStats); + // Collection state - Shows + const [watchingShows, setWatchingShows] = useState([]); + const [planToWatchShows, setPlanToWatchShows] = useState([]); + const [completedShows, setCompletedShows] = useState([]); + const [onHoldShows, setOnHoldShows] = useState([]); + const [droppedShows, setDroppedShows] = useState([]); + + // Collection state - Movies + const [watchingMovies, setWatchingMovies] = useState([]); + const [planToWatchMovies, setPlanToWatchMovies] = useState([]); + const [completedMovies, setCompletedMovies] = useState([]); + const [onHoldMovies, setOnHoldMovies] = useState([]); + const [droppedMovies, setDroppedMovies] = useState([]); + + // Collection state - Anime + const [watchingAnime, setWatchingAnime] = useState([]); + const [planToWatchAnime, setPlanToWatchAnime] = useState([]); + const [completedAnime, setCompletedAnime] = useState([]); + const [onHoldAnime, setOnHoldAnime] = useState([]); + const [droppedAnime, setDroppedAnime] = useState([]); + + // Special collections + const [continueWatching, setContinueWatching] = useState([]); + const [ratedContent, setRatedContent] = useState([]); + + // Lookup Sets for O(1) status checks (combined across types) + const [watchingSet, setWatchingSet] = useState>(new Set()); + const [planToWatchSet, setPlanToWatchSet] = useState>(new Set()); + const [completedSet, setCompletedSet] = useState>(new Set()); + const [onHoldSet, setOnHoldSet] = useState>(new Set()); + const [droppedSet, setDroppedSet] = useState>(new Set()); + + // Activity tracking for caching + const [lastActivityCheck, setLastActivityCheck] = useState(null); + const lastPlaybackFetchAt = useRef(0); const lastActivitiesCheckAt = useRef(0); const lastPlaybackActivityAt = useRef(null); + // Helper: Normalize IMDB ID + const normalizeImdbId = (imdbId: string): string => { + return imdbId.replace('tt', ''); + }; + + // Helper: Parse activity date const parseActivityDate = (value?: string): number | null => { if (!value) return null; const parsed = Date.parse(value); return Number.isNaN(parsed) ? null : parsed; }; + // Helper: Get latest playback activity timestamp const getLatestPlaybackActivity = (activities: SimklActivities | null): number | null => { if (!activities) return null; @@ -55,6 +125,127 @@ export function useSimklIntegration() { return Math.max(...timestamps); }; + // Helper: Build lookup Sets + const buildLookupSets = useCallback(( + watchingItems: SimklWatchlistItem[], + planItems: SimklWatchlistItem[], + completedItems: SimklWatchlistItem[], + holdItems: SimklWatchlistItem[], + droppedItems: SimklWatchlistItem[] + ) => { + const buildSet = (items: SimklWatchlistItem[]): Set => { + const set = new Set(); + items.forEach(item => { + const content = item.show || item.movie || item.anime; + if (content?.ids?.imdb) { + const type = item.show ? 'show' : item.movie ? 'movie' : 'anime'; + const key = `${type}:${normalizeImdbId(content.ids.imdb)}`; + set.add(key); + } + }); + return set; + }; + + setWatchingSet(buildSet(watchingItems)); + setPlanToWatchSet(buildSet(planItems)); + setCompletedSet(buildSet(completedItems)); + setOnHoldSet(buildSet(holdItems)); + setDroppedSet(buildSet(droppedItems)); + }, []); + + // Load collections from cache + const loadFromCache = useCallback(async (): Promise => { + try { + const cachedData = await mmkvStorage.getItem(SIMKL_COLLECTIONS_CACHE); + if (!cachedData) return false; + + const cache: CollectionsCache = JSON.parse(cachedData); + + // Check cache age (5 minutes) + const age = Date.now() - cache.timestamp; + if (age > 5 * 60 * 1000) { + logger.log('[useSimklIntegration] Cache expired'); + return false; + } + + // Debug: Log cache sample to check poster data + if (cache.watchingShows && cache.watchingShows.length > 0) { + logger.log('[useSimklIntegration] Cache sample - first watching show:', JSON.stringify(cache.watchingShows[0], null, 2)); + } + if (cache.watchingMovies && cache.watchingMovies.length > 0) { + logger.log('[useSimklIntegration] Cache sample - first watching movie:', JSON.stringify(cache.watchingMovies[0], null, 2)); + } + + // Load into state + setWatchingShows(cache.watchingShows || []); + setWatchingMovies(cache.watchingMovies || []); + setWatchingAnime(cache.watchingAnime || []); + setPlanToWatchShows(cache.planToWatchShows || []); + setPlanToWatchMovies(cache.planToWatchMovies || []); + setPlanToWatchAnime(cache.planToWatchAnime || []); + setCompletedShows(cache.completedShows || []); + setCompletedMovies(cache.completedMovies || []); + setCompletedAnime(cache.completedAnime || []); + setOnHoldShows(cache.onHoldShows || []); + setOnHoldMovies(cache.onHoldMovies || []); + setOnHoldAnime(cache.onHoldAnime || []); + setDroppedShows(cache.droppedShows || []); + setDroppedMovies(cache.droppedMovies || []); + setDroppedAnime(cache.droppedAnime || []); + setContinueWatching(cache.continueWatching || []); + setRatedContent(cache.ratedContent || []); + + // Build lookup Sets + buildLookupSets( + [...cache.watchingShows, ...cache.watchingMovies, ...cache.watchingAnime], + [...cache.planToWatchShows, ...cache.planToWatchMovies, ...cache.planToWatchAnime], + [...cache.completedShows, ...cache.completedMovies, ...cache.completedAnime], + [...cache.onHoldShows, ...cache.onHoldMovies, ...cache.onHoldAnime], + [...cache.droppedShows, ...cache.droppedMovies, ...cache.droppedAnime] + ); + + logger.log('[useSimklIntegration] Loaded from cache'); + return true; + } catch (error) { + logger.error('[useSimklIntegration] Failed to load from cache:', error); + return false; + } + }, [buildLookupSets]); + + // Save collections to cache + const saveToCache = useCallback(async (collections: Omit) => { + try { + const cache: CollectionsCache = { + ...collections, + timestamp: Date.now() + }; + + await mmkvStorage.setItem(SIMKL_COLLECTIONS_CACHE, JSON.stringify(cache)); + logger.log('[useSimklIntegration] Saved to cache'); + } catch (error) { + logger.error('[useSimklIntegration] Failed to save to cache:', error); + } + }, []); + + // Compare activities to check if refresh needed + const compareActivities = useCallback(( + newActivities: SimklActivities | null, + cachedActivities: SimklActivities | null + ): boolean => { + if (!cachedActivities) return true; + if (!newActivities) return false; + + // Compare timestamps + const newAll = parseActivityDate(newActivities.all); + const cachedAll = parseActivityDate(cachedActivities.all); + + if (newAll && cachedAll && newAll > cachedAll) { + return true; + } + + return false; + }, []); + // Check authentication status const checkAuthStatus = useCallback(async () => { setIsLoading(true); @@ -73,7 +264,262 @@ export function useSimklIntegration() { await checkAuthStatus(); }, [checkAuthStatus]); - // Load playback/continue watching + // Load all collections (main data loading method) + const loadAllCollections = useCallback(async () => { + if (!isAuthenticated) { + logger.log('[useSimklIntegration] Cannot load collections: not authenticated'); + return; + } + + setIsLoading(true); + + try { + // 1. Check activities first (efficient timestamp check) + const activities = await simklService.getActivities(); + + // 2. Try to load from cache if activities haven't changed + const cachedActivitiesStr = await mmkvStorage.getItem(SIMKL_ACTIVITIES_CACHE); + const cachedActivities: SimklActivities | null = cachedActivitiesStr ? JSON.parse(cachedActivitiesStr) : null; + + const needsRefresh = compareActivities(activities, cachedActivities); + + if (!needsRefresh && cachedActivities) { + const cacheLoaded = await loadFromCache(); + if (cacheLoaded) { + setLastActivityCheck(activities); + logger.log('[useSimklIntegration] Using cached collections'); + return; + } + } + + logger.log('[useSimklIntegration] Fetching fresh collections from API'); + + // 3. Fetch all collections in parallel + const [ + watchingShowsData, + watchingMoviesData, + watchingAnimeData, + planToWatchShowsData, + planToWatchMoviesData, + planToWatchAnimeData, + completedShowsData, + completedMoviesData, + completedAnimeData, + onHoldShowsData, + onHoldMoviesData, + onHoldAnimeData, + droppedShowsData, + droppedMoviesData, + droppedAnimeData, + continueWatchingData, + ratingsData + ] = await Promise.all([ + simklService.getAllItems('shows', 'watching'), + simklService.getAllItems('movies', 'watching'), + simklService.getAllItems('anime', 'watching'), + simklService.getAllItems('shows', 'plantowatch'), + simklService.getAllItems('movies', 'plantowatch'), + simklService.getAllItems('anime', 'plantowatch'), + simklService.getAllItems('shows', 'completed'), + simklService.getAllItems('movies', 'completed'), + simklService.getAllItems('anime', 'completed'), + simklService.getAllItems('shows', 'hold'), + simklService.getAllItems('movies', 'hold'), + simklService.getAllItems('anime', 'hold'), + simklService.getAllItems('shows', 'dropped'), + simklService.getAllItems('movies', 'dropped'), + simklService.getAllItems('anime', 'dropped'), + simklService.getPlaybackStatus(), + simklService.getRatings() + ]); + + // 4. Update state + setWatchingShows(watchingShowsData); + setWatchingMovies(watchingMoviesData); + setWatchingAnime(watchingAnimeData); + setPlanToWatchShows(planToWatchShowsData); + setPlanToWatchMovies(planToWatchMoviesData); + setPlanToWatchAnime(planToWatchAnimeData); + setCompletedShows(completedShowsData); + setCompletedMovies(completedMoviesData); + setCompletedAnime(completedAnimeData); + setOnHoldShows(onHoldShowsData); + setOnHoldMovies(onHoldMoviesData); + setOnHoldAnime(onHoldAnimeData); + setDroppedShows(droppedShowsData); + setDroppedMovies(droppedMoviesData); + setDroppedAnime(droppedAnimeData); + setContinueWatching(continueWatchingData); + setRatedContent(ratingsData); + + // 5. Build lookup Sets + buildLookupSets( + [...watchingShowsData, ...watchingMoviesData, ...watchingAnimeData], + [...planToWatchShowsData, ...planToWatchMoviesData, ...planToWatchAnimeData], + [...completedShowsData, ...completedMoviesData, ...completedAnimeData], + [...onHoldShowsData, ...onHoldMoviesData, ...onHoldAnimeData], + [...droppedShowsData, ...droppedMoviesData, ...droppedAnimeData] + ); + + // 6. Cache everything + await saveToCache({ + watchingShows: watchingShowsData, + watchingMovies: watchingMoviesData, + watchingAnime: watchingAnimeData, + planToWatchShows: planToWatchShowsData, + planToWatchMovies: planToWatchMoviesData, + planToWatchAnime: planToWatchAnimeData, + completedShows: completedShowsData, + completedMovies: completedMoviesData, + completedAnime: completedAnimeData, + onHoldShows: onHoldShowsData, + onHoldMovies: onHoldMoviesData, + onHoldAnime: onHoldAnimeData, + droppedShows: droppedShowsData, + droppedMovies: droppedMoviesData, + droppedAnime: droppedAnimeData, + continueWatching: continueWatchingData, + ratedContent: ratingsData + }); + + // Save activities + if (activities) { + await mmkvStorage.setItem(SIMKL_ACTIVITIES_CACHE, JSON.stringify(activities)); + setLastActivityCheck(activities); + } + + logger.log('[useSimklIntegration] Collections loaded successfully'); + } catch (error) { + logger.error('[useSimklIntegration] Error loading collections:', error); + } finally { + setIsLoading(false); + } + }, [isAuthenticated, buildLookupSets, compareActivities, loadFromCache, saveToCache]); + + // Status management methods + const addToStatus = useCallback(async ( + imdbId: string, + type: 'movie' | 'show' | 'anime', + status: SimklStatus + ): Promise => { + if (!isAuthenticated) return false; + + try { + const success = await simklService.addToList(imdbId, type, status); + + if (success) { + // Optimistic Set update + const normalizedId = normalizeImdbId(imdbId); + const key = `${type}:${normalizedId}`; + + // Update appropriate Set + switch (status) { + case 'watching': + setWatchingSet(prev => new Set(prev).add(key)); + break; + case 'plantowatch': + setPlanToWatchSet(prev => new Set(prev).add(key)); + break; + case 'completed': + setCompletedSet(prev => new Set(prev).add(key)); + break; + case 'hold': + setOnHoldSet(prev => new Set(prev).add(key)); + break; + case 'dropped': + setDroppedSet(prev => new Set(prev).add(key)); + break; + } + + // Reload collections to get fresh data + setTimeout(() => loadAllCollections(), 1000); + } + + return success; + } catch (error) { + logger.error('[useSimklIntegration] Error adding to status:', error); + return false; + } + }, [isAuthenticated, loadAllCollections]); + + const removeFromStatus = useCallback(async ( + imdbId: string, + type: 'movie' | 'show' | 'anime', + status: SimklStatus + ): Promise => { + if (!isAuthenticated) return false; + + try { + const success = await simklService.removeFromList(imdbId, type); + + if (success) { + // Optimistic Set update + const normalizedId = normalizeImdbId(imdbId); + const key = `${type}:${normalizedId}`; + + // Remove from all Sets + setWatchingSet(prev => { + const newSet = new Set(prev); + newSet.delete(key); + return newSet; + }); + setPlanToWatchSet(prev => { + const newSet = new Set(prev); + newSet.delete(key); + return newSet; + }); + setCompletedSet(prev => { + const newSet = new Set(prev); + newSet.delete(key); + return newSet; + }); + setOnHoldSet(prev => { + const newSet = new Set(prev); + newSet.delete(key); + return newSet; + }); + setDroppedSet(prev => { + const newSet = new Set(prev); + newSet.delete(key); + return newSet; + }); + + // Reload collections + setTimeout(() => loadAllCollections(), 1000); + } + + return success; + } catch (error) { + logger.error('[useSimklIntegration] Error removing from status:', error); + return false; + } + }, [isAuthenticated, loadAllCollections]); + + const isInStatus = useCallback(( + imdbId: string, + type: 'movie' | 'show' | 'anime', + status: SimklStatus + ): boolean => { + const normalizedId = normalizeImdbId(imdbId); + const key = `${type}:${normalizedId}`; + + switch (status) { + case 'watching': + return watchingSet.has(key); + case 'plantowatch': + return planToWatchSet.has(key); + case 'completed': + return completedSet.has(key); + case 'hold': + return onHoldSet.has(key); + case 'dropped': + return droppedSet.has(key); + default: + return false; + } + }, [watchingSet, planToWatchSet, completedSet, onHoldSet, droppedSet]); + + // Load playback/continue watching (kept from original) const loadPlaybackStatus = useCallback(async () => { if (!isAuthenticated) return; try { @@ -84,7 +530,7 @@ export function useSimklIntegration() { } }, [isAuthenticated]); - // Load user settings and stats + // Load user settings and stats (kept from original) const loadUserProfile = useCallback(async () => { if (!isAuthenticated) return; try { @@ -106,7 +552,7 @@ export function useSimklIntegration() { } }, [isAuthenticated]); - // Start watching (scrobble start) + // Scrobbling methods (kept from original) const startWatching = useCallback(async (content: SimklContentData, progress: number): Promise => { if (!isAuthenticated) return false; try { @@ -118,7 +564,6 @@ export function useSimklIntegration() { } }, [isAuthenticated]); - // Update progress (scrobble pause) const updateProgress = useCallback(async (content: SimklContentData, progress: number): Promise => { if (!isAuthenticated) return false; try { @@ -130,7 +575,6 @@ export function useSimklIntegration() { } }, [isAuthenticated]); - // Stop watching (scrobble stop) const stopWatching = useCallback(async (content: SimklContentData, progress: number): Promise => { if (!isAuthenticated) return false; try { @@ -142,16 +586,12 @@ export function useSimklIntegration() { } }, [isAuthenticated]); - // Sync All Local Progress -> Simkl + // Sync methods (kept from original) const syncAllProgress = useCallback(async (): Promise => { if (!isAuthenticated) return false; try { const unsynced = await storageService.getUnsyncedProgress(); - // Filter for items that specifically need SIMKL sync (unsynced.filter(i => !i.progress.simklSynced...)) - // storageService.getUnsyncedProgress currently returns items that need Trakt OR Simkl sync. - // We should check simklSynced specifically here. - const itemsToSync = unsynced.filter(i => !i.progress.simklSynced || (i.progress.simklLastSynced && i.progress.lastUpdated > i.progress.simklLastSynced)); if (itemsToSync.length === 0) return true; @@ -163,10 +603,9 @@ export function useSimklIntegration() { const season = item.episodeId ? parseInt(item.episodeId.split('S')[1]?.split('E')[0] || '0') : undefined; const episode = item.episodeId ? parseInt(item.episodeId.split('E')[1] || '0') : undefined; - // Construct content data const content: SimklContentData = { type: item.type === 'series' ? 'episode' : 'movie', - title: 'Unknown', // Ideally storage has title, but it might not. Simkl needs IDs mainly. + title: 'Unknown', ids: { imdb: item.id }, season, episode @@ -174,21 +613,15 @@ export function useSimklIntegration() { const progressPercent = (item.progress.currentTime / item.progress.duration) * 100; - // If completed (>=80% or 95% depending on logic, let's say 85% safe), add to history - // Simkl: Stop with >= 80% marks as watched. - // Or explicitly add to history. - let success = false; if (progressPercent >= 85) { - // Add to history if (content.type === 'movie') { await simklService.addToHistory({ movies: [{ ids: { imdb: item.id } }] }); } else { await simklService.addToHistory({ shows: [{ ids: { imdb: item.id }, seasons: [{ number: season, episodes: [{ number: episode }] }] }] }); } - success = true; // Assume success if no throw + success = true; } else { - // Pause (scrobble) const res = await simklService.scrobblePause(content, progressPercent); success = !!res; } @@ -207,7 +640,6 @@ export function useSimklIntegration() { } }, [isAuthenticated]); - // Fetch Simkl -> Merge Local const fetchAndMergeSimklProgress = useCallback(async (): Promise => { if (!isAuthenticated) return false; @@ -263,7 +695,6 @@ export function useSimklIntegration() { episodeId ); - // Mark as synced locally so we don't push it back await storageService.updateSimklSyncStatus(id, type!, true, item.progress, episodeId); } } @@ -272,7 +703,7 @@ export function useSimklIntegration() { logger.error('[useSimklIntegration] Error fetching/merging Simkl progress', e); return false; } - }, [isAuthenticated]); + }, [isAuthenticated, getLatestPlaybackActivity]); // Effects useEffect(() => { @@ -287,7 +718,7 @@ export function useSimklIntegration() { loadUserProfile(); } } - }, [isAuthenticated, loadPlaybackStatus, fetchAndMergeSimklProgress, loadUserProfile]); + }, [isAuthenticated, fetchAndMergeSimklProgress, loadUserProfile]); // App state listener for sync useEffect(() => { @@ -295,24 +726,64 @@ export function useSimklIntegration() { const sub = AppState.addEventListener('change', (state) => { if (state === 'active') { fetchAndMergeSimklProgress(); + loadAllCollections(); } }); return () => sub.remove(); - }, [isAuthenticated, fetchAndMergeSimklProgress]); - + }, [isAuthenticated, fetchAndMergeSimklProgress, loadAllCollections]); return { + // Authentication isAuthenticated, isLoading, + userSettings, + userStats, checkAuthStatus, refreshAuthStatus, + + // Collections - Shows + watchingShows, + planToWatchShows, + completedShows, + onHoldShows, + droppedShows, + + // Collections - Movies + watchingMovies, + planToWatchMovies, + completedMovies, + onHoldMovies, + droppedMovies, + + // Collections - Anime + watchingAnime, + planToWatchAnime, + completedAnime, + onHoldAnime, + droppedAnime, + + // Special collections + continueWatching, + ratedContent, + + // Lookup Sets + watchingSet, + planToWatchSet, + completedSet, + onHoldSet, + droppedSet, + + // Methods + loadAllCollections, + addToStatus, + removeFromStatus, + isInStatus, + + // Scrobbling (kept from original) startWatching, updateProgress, stopWatching, syncAllProgress, fetchAndMergeSimklProgress, - continueWatching, - userSettings, - userStats, }; } diff --git a/src/screens/LibraryScreen.tsx b/src/screens/LibraryScreen.tsx index 984310f1..fe37c9cc 100644 --- a/src/screens/LibraryScreen.tsx +++ b/src/screens/LibraryScreen.tsx @@ -19,6 +19,7 @@ import { Platform, ScrollView, BackHandler, + Image, } from 'react-native'; import { FlashList } from '@shopify/flash-list'; import { useNavigation } from '@react-navigation/native'; @@ -34,6 +35,7 @@ import { logger } from '../utils/logger'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { useTheme } from '../contexts/ThemeContext'; import { useTraktContext } from '../contexts/TraktContext'; +import { useSimklContext } from '../contexts/SimklContext'; import TraktIcon from '../../assets/rating-icons/trakt.svg'; import { traktService, TraktService, TraktImages } from '../services/traktService'; import { TraktLoadingSpinner } from '../components/common/TraktLoadingSpinner'; @@ -87,6 +89,8 @@ function getGridLayout(screenWidth: number): { numColumns: number; itemWidth: nu return { numColumns, itemWidth }; } +import { TMDBService } from '../services/tmdbService'; + const TraktItem = React.memo(({ item, width, @@ -109,12 +113,47 @@ const TraktItem = React.memo(({ const url = TraktService.getTraktPosterUrl(item.images); if (isMounted && url) { setPosterUrl(url); + return; + } + } + + if (item.imdbId || item.traktId) { + try { + const tmdbService = TMDBService.getInstance(); + let tmdbId: number | null = null; + + if (item.imdbId) { + tmdbId = await tmdbService.findTMDBIdByIMDB(item.imdbId); + } + + if (!tmdbId && item.traktId) { + + } + + if (tmdbId) { + let posterPath: string | null = null; + + if (item.type === 'movie') { + const details = await tmdbService.getMovieDetails(String(tmdbId)); + posterPath = details?.poster_path ?? null; + } else { + const details = await tmdbService.getTVShowDetails(tmdbId); + posterPath = details?.poster_path ?? null; + } + + if (isMounted && posterPath) { + const url = tmdbService.getImageUrl(posterPath, 'w500'); + setPosterUrl(url); + } + } + } catch (error) { + logger.debug('Failed to fetch poster from TMDB', error); } } }; fetchPoster(); return () => { isMounted = false; }; - }, [item.images]); + }, [item.images, item.imdbId, item.traktId, item.type]); const handlePress = useCallback(() => { if (item.imdbId) { @@ -219,9 +258,11 @@ const LibraryScreen = () => { const { numColumns, itemWidth } = useMemo(() => getGridLayout(width), [width]); const [loading, setLoading] = useState(true); const [libraryItems, setLibraryItems] = useState([]); - const [filter, setFilter] = useState<'trakt' | 'movies' | 'series'>('movies'); + const [filter, setFilter] = useState<'trakt' | 'simkl' | 'movies' | 'series'>('movies'); const [showTraktContent, setShowTraktContent] = useState(false); const [selectedTraktFolder, setSelectedTraktFolder] = useState(null); + const [showSimklContent, setShowSimklContent] = useState(false); + const [selectedSimklFolder, setSelectedSimklFolder] = useState(null); const { showInfo, showError } = useToast(); const [menuVisible, setMenuVisible] = useState(false); const [selectedItem, setSelectedItem] = useState(null); @@ -230,7 +271,6 @@ const LibraryScreen = () => { const { settings } = useSettings(); const flashListRef = useRef(null); - // Scroll to top handler const scrollToTop = useCallback(() => { flashListRef.current?.scrollToOffset({ offset: 0, animated: true }); }, []); @@ -252,6 +292,29 @@ const LibraryScreen = () => { loadAllCollections } = useTraktContext(); + const { + isAuthenticated: simklAuthenticated, + isLoading: simklLoading, + watchingShows, + watchingMovies, + watchingAnime, + planToWatchShows, + planToWatchMovies, + planToWatchAnime, + completedShows, + completedMovies, + completedAnime, + onHoldShows, + onHoldMovies, + onHoldAnime, + droppedShows, + droppedMovies, + droppedAnime, + continueWatching: simklContinueWatching, + ratedContent: simklRatedContent, + loadAllCollections: loadSimklCollections + } = useSimklContext(); + useEffect(() => { const applyStatusBarConfig = () => { StatusBar.setBarStyle('light-content'); @@ -276,12 +339,20 @@ const LibraryScreen = () => { } return true; } + if (showSimklContent) { + if (selectedSimklFolder) { + setSelectedSimklFolder(null); + } else { + setShowSimklContent(false); + } + return true; + } return false; }; const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction); return () => backHandler.remove(); - }, [showTraktContent, selectedTraktFolder]); + }, [showTraktContent, showSimklContent, selectedTraktFolder, selectedSimklFolder]); useEffect(() => { const loadLibrary = async () => { @@ -396,6 +467,117 @@ const LibraryScreen = () => { return folders.filter(folder => folder.itemCount > 0); }, [traktAuthenticated, watchedMovies, watchedShows, watchlistMovies, watchlistShows, collectionMovies, collectionShows, continueWatching, ratedContent]); + const simklFolders = useMemo((): TraktFolder[] => { + if (!simklAuthenticated) return []; + + const folders: TraktFolder[] = [ + { + id: 'continue-watching', + name: t('library.continue'), + icon: 'play-circle-outline', + itemCount: simklContinueWatching?.length || 0, + }, + { + id: 'watching-shows', + name: 'Watching Shows', + icon: 'visibility', + itemCount: watchingShows?.length || 0, + }, + { + id: 'watching-movies', + name: 'Watching Movies', + icon: 'visibility', + itemCount: watchingMovies?.length || 0, + }, + { + id: 'watching-anime', + name: 'Watching Anime', + icon: 'visibility', + itemCount: watchingAnime?.length || 0, + }, + { + id: 'plantowatch-shows', + name: 'Plan to Watch Shows', + icon: 'bookmark-border', + itemCount: planToWatchShows?.length || 0, + }, + { + id: 'plantowatch-movies', + name: 'Plan to Watch Movies', + icon: 'bookmark-border', + itemCount: planToWatchMovies?.length || 0, + }, + { + id: 'plantowatch-anime', + name: 'Plan to Watch Anime', + icon: 'bookmark-border', + itemCount: planToWatchAnime?.length || 0, + }, + { + id: 'completed-shows', + name: 'Completed Shows', + icon: 'check-circle', + itemCount: completedShows?.length || 0, + }, + { + id: 'completed-movies', + name: 'Completed Movies', + icon: 'check-circle', + itemCount: completedMovies?.length || 0, + }, + { + id: 'completed-anime', + name: 'Completed Anime', + icon: 'check-circle', + itemCount: completedAnime?.length || 0, + }, + { + id: 'onhold-shows', + name: 'On Hold Shows', + icon: 'pause-circle-outline', + itemCount: onHoldShows?.length || 0, + }, + { + id: 'onhold-movies', + name: 'On Hold Movies', + icon: 'pause-circle-outline', + itemCount: onHoldMovies?.length || 0, + }, + { + id: 'onhold-anime', + name: 'On Hold Anime', + icon: 'pause-circle-outline', + itemCount: onHoldAnime?.length || 0, + }, + { + id: 'dropped-shows', + name: 'Dropped Shows', + icon: 'cancel', + itemCount: droppedShows?.length || 0, + }, + { + id: 'dropped-movies', + name: 'Dropped Movies', + icon: 'cancel', + itemCount: droppedMovies?.length || 0, + }, + { + id: 'dropped-anime', + name: 'Dropped Anime', + icon: 'cancel', + itemCount: droppedAnime?.length || 0, + }, + { + id: 'ratings', + name: t('library.rated'), + icon: 'star', + itemCount: simklRatedContent?.length || 0, + } + ]; + + return folders.filter(folder => folder.itemCount > 0); + }, [simklAuthenticated, watchingShows, watchingMovies, watchingAnime, planToWatchShows, planToWatchMovies, planToWatchAnime, completedShows, completedMovies, completedAnime, onHoldShows, onHoldMovies, onHoldAnime, droppedShows, droppedMovies, droppedAnime, simklContinueWatching, simklRatedContent, t]); + const renderItem = ({ item }: { item: LibraryItem }) => ( { }); }, [watchedMovies, watchedShows, watchlistMovies, watchlistShows, collectionMovies, collectionShows, continueWatching, ratedContent]); + const getSimklFolderItems = useCallback((folderId: string): TraktDisplayItem[] => { + const items: TraktDisplayItem[] = []; + + switch (folderId) { + case 'continue-watching': + return (simklContinueWatching || []).map(item => { + const content = item.show || item.movie; + return { + id: String(content?.ids?.simkl || Math.random()), + name: content?.title || 'Unknown', + type: item.show ? 'series' : 'movie', + poster: '', + year: content?.year, + lastWatched: item.paused_at, + imdbId: content?.ids?.imdb, + traktId: content?.ids?.simkl || 0, + }; + }); + + case 'watching-shows': + return (watchingShows || []).map(item => ({ + id: String(item.show?.ids?.simkl || Math.random()), + name: item.show?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.show?.year, + lastWatched: item.last_watched_at, + rating: item.user_rating, + imdbId: item.show?.ids?.imdb, + traktId: item.show?.ids?.simkl || 0, + })); + + case 'watching-movies': + return (watchingMovies || []).map(item => ({ + id: String(item.movie?.ids?.simkl || Math.random()), + name: item.movie?.title || 'Unknown', + type: 'movie' as const, + poster: '', + year: item.movie?.year, + lastWatched: item.last_watched_at, + rating: item.user_rating, + imdbId: item.movie?.ids?.imdb, + traktId: item.movie?.ids?.simkl || 0, + })); + + case 'watching-anime': + return (watchingAnime || []).map(item => ({ + id: String(item.anime?.ids?.simkl || Math.random()), + name: item.anime?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.anime?.year, + lastWatched: item.last_watched_at, + rating: item.user_rating, + imdbId: item.anime?.ids?.imdb, + traktId: item.anime?.ids?.simkl || 0, + })); + + case 'plantowatch-shows': + return (planToWatchShows || []).map(item => ({ + id: String(item.show?.ids?.simkl || Math.random()), + name: item.show?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.show?.year, + lastWatched: item.added_to_watchlist_at, + imdbId: item.show?.ids?.imdb, + traktId: item.show?.ids?.simkl || 0, + })); + + case 'plantowatch-movies': + return (planToWatchMovies || []).map(item => ({ + id: String(item.movie?.ids?.simkl || Math.random()), + name: item.movie?.title || 'Unknown', + type: 'movie' as const, + poster: '', + year: item.movie?.year, + lastWatched: item.added_to_watchlist_at, + imdbId: item.movie?.ids?.imdb, + traktId: item.movie?.ids?.simkl || 0, + })); + + case 'plantowatch-anime': + return (planToWatchAnime || []).map(item => ({ + id: String(item.anime?.ids?.simkl || Math.random()), + name: item.anime?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.anime?.year, + lastWatched: item.added_to_watchlist_at, + imdbId: item.anime?.ids?.imdb, + traktId: item.anime?.ids?.simkl || 0, + })); + + case 'completed-shows': + return (completedShows || []).map(item => ({ + id: String(item.show?.ids?.simkl || Math.random()), + name: item.show?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.show?.year, + lastWatched: item.last_watched_at, + imdbId: item.show?.ids?.imdb, + traktId: item.show?.ids?.simkl || 0, + })); + + case 'completed-movies': + return (completedMovies || []).map(item => ({ + id: String(item.movie?.ids?.simkl || Math.random()), + name: item.movie?.title || 'Unknown', + type: 'movie' as const, + poster: '', + year: item.movie?.year, + lastWatched: item.last_watched_at, + imdbId: item.movie?.ids?.imdb, + traktId: item.movie?.ids?.simkl || 0, + })); + + case 'completed-anime': + return (completedAnime || []).map(item => ({ + id: String(item.anime?.ids?.simkl || Math.random()), + name: item.anime?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.anime?.year, + lastWatched: item.last_watched_at, + imdbId: item.anime?.ids?.imdb, + traktId: item.anime?.ids?.simkl || 0, + })); + + case 'onhold-shows': + return (onHoldShows || []).map(item => ({ + id: String(item.show?.ids?.simkl || Math.random()), + name: item.show?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.show?.year, + lastWatched: item.last_watched_at, + imdbId: item.show?.ids?.imdb, + traktId: item.show?.ids?.simkl || 0, + })); + + case 'onhold-movies': + return (onHoldMovies || []).map(item => ({ + id: String(item.movie?.ids?.simkl || Math.random()), + name: item.movie?.title || 'Unknown', + type: 'movie' as const, + poster: '', + year: item.movie?.year, + lastWatched: item.last_watched_at, + imdbId: item.movie?.ids?.imdb, + traktId: item.movie?.ids?.simkl || 0, + })); + + case 'onhold-anime': + return (onHoldAnime || []).map(item => ({ + id: String(item.anime?.ids?.simkl || Math.random()), + name: item.anime?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.anime?.year, + lastWatched: item.last_watched_at, + imdbId: item.anime?.ids?.imdb, + traktId: item.anime?.ids?.simkl || 0, + })); + + case 'dropped-shows': + return (droppedShows || []).map(item => ({ + id: String(item.show?.ids?.simkl || Math.random()), + name: item.show?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.show?.year, + lastWatched: item.last_watched_at, + imdbId: item.show?.ids?.imdb, + traktId: item.show?.ids?.simkl || 0, + })); + + case 'dropped-movies': + return (droppedMovies || []).map(item => ({ + id: String(item.movie?.ids?.simkl || Math.random()), + name: item.movie?.title || 'Unknown', + type: 'movie' as const, + poster: '', + year: item.movie?.year, + lastWatched: item.last_watched_at, + imdbId: item.movie?.ids?.imdb, + traktId: item.movie?.ids?.simkl || 0, + })); + + case 'dropped-anime': + return (droppedAnime || []).map(item => ({ + id: String(item.anime?.ids?.simkl || Math.random()), + name: item.anime?.title || 'Unknown', + type: 'series' as const, + poster: '', + year: item.anime?.year, + lastWatched: item.last_watched_at, + imdbId: item.anime?.ids?.imdb, + traktId: item.anime?.ids?.simkl || 0, + })); + + case 'ratings': + return (simklRatedContent || []).map(item => { + const content = item.show || item.movie || item.anime; + const type = item.show ? 'series' : item.movie ? 'movie' : 'series'; + return { + id: String(content?.ids?.simkl || Math.random()), + name: content?.title || 'Unknown', + type, + poster: '', + year: content?.year, + lastWatched: item.rated_at, + rating: item.rating, + imdbId: content?.ids?.imdb, + traktId: content?.ids?.simkl || 0, + }; + }); + } + + return items.sort((a, b) => { + const dateA = a.lastWatched ? new Date(a.lastWatched).getTime() : 0; + const dateB = b.lastWatched ? new Date(b.lastWatched).getTime() : 0; + return dateB - dateA; + }); + }, [simklContinueWatching, watchingShows, watchingMovies, watchingAnime, planToWatchShows, planToWatchMovies, planToWatchAnime, completedShows, completedMovies, completedAnime, onHoldShows, onHoldMovies, onHoldAnime, droppedShows, droppedMovies, droppedAnime, simklRatedContent]); + const renderTraktContent = () => { if (traktLoading) { return ; @@ -800,7 +1209,133 @@ const LibraryScreen = () => { ); }; - const renderFilter = (filterType: 'trakt' | 'movies' | 'series', label: string, iconName: keyof typeof MaterialIcons.glyphMap) => { + const renderSimklCollectionFolder = ({ folder }: { folder: TraktFolder }) => ( + { + setSelectedSimklFolder(folder.id); + loadSimklCollections(); + }} + activeOpacity={0.7} + > + + + + + {folder.name} + + + {folder.itemCount} {t('library.items')} + + + + + ); + + const renderSimklContent = () => { + if (simklLoading) { + return ( + + + + ); + } + + if (!selectedSimklFolder) { + if (simklFolders.length === 0) { + return ( + + + + {t('library.no_trakt')} + + + {t('library.no_trakt_desc')} + + { + loadSimklCollections(); + }} + activeOpacity={0.7} + > + {t('library.load_collections')} + + + ); + } + + return ( + renderSimklCollectionFolder({ folder: item })} + keyExtractor={item => item.id} + numColumns={numColumns} + contentContainerStyle={styles.listContainer} + showsVerticalScrollIndicator={false} + onEndReachedThreshold={0.7} + onEndReached={() => { }} + /> + ); + } + + const folderItems = getSimklFolderItems(selectedSimklFolder); + + if (folderItems.length === 0) { + const folderName = simklFolders.find(f => f.id === selectedSimklFolder)?.name || t('library.collection'); + return ( + + + {t('library.empty_folder', { folder: folderName })} + + {t('library.empty_folder_desc')} + + { + loadSimklCollections(); + }} + activeOpacity={0.7} + > + Refresh + + + ); + } + + return ( + renderTraktItem({ item })} + keyExtractor={(item) => `${item.type}-${item.id}`} + numColumns={numColumns} + style={styles.traktContainer} + contentContainerStyle={{ paddingBottom: insets.bottom + 80 }} + showsVerticalScrollIndicator={false} + onEndReachedThreshold={0.7} + onEndReached={() => { }} + /> + ); + }; + + const renderFilter = (filterType: 'trakt' | 'simkl' | 'movies' | 'series', label: string) => { const isActive = filter === filterType; return ( @@ -821,22 +1356,20 @@ const LibraryScreen = () => { } return; } + if (filterType === 'simkl') { + if (!simklAuthenticated) { + navigation.navigate('Settings'); + } else { + setShowSimklContent(true); + setSelectedSimklFolder(null); + loadSimklCollections(); + } + return; + } setFilter(filterType); }} activeOpacity={0.7} > - {filterType === 'trakt' ? ( - - - - ) : ( - - )} { ? (selectedTraktFolder ? traktFolders.find(f => f.id === selectedTraktFolder)?.name || t('library.collection') : t('library.trakt_collection')) - : t('library.title') + : showSimklContent + ? (selectedSimklFolder + ? simklFolders.find(f => f.id === selectedSimklFolder)?.name || t('library.collection') + : 'SIMKL Collections') + : t('library.title') } - showBackButton={showTraktContent} - onBackPress={showTraktContent ? () => { - if (selectedTraktFolder) { - setSelectedTraktFolder(null); - } else { - setShowTraktContent(false); + showBackButton={showTraktContent || showSimklContent} + onBackPress={(showTraktContent || showSimklContent) ? () => { + if (showTraktContent) { + if (selectedTraktFolder) { + setSelectedTraktFolder(null); + } else { + setShowTraktContent(false); + } + } else if (showSimklContent) { + if (selectedSimklFolder) { + setSelectedSimklFolder(null); + } else { + setShowSimklContent(false); + } } } : undefined} useMaterialIcons={showTraktContent} @@ -929,15 +1474,16 @@ const LibraryScreen = () => { /> - {!showTraktContent && ( + {!showTraktContent && !showSimklContent && ( - {renderFilter('trakt', 'Trakt', 'pan-tool')} - {renderFilter('movies', t('search.movies'), 'movie')} - {renderFilter('series', t('search.tv_shows'), 'live-tv')} + {renderFilter('trakt', 'Trakt')} + {renderFilter('simkl', 'SIMKL')} + {renderFilter('movies', t('search.movies'))} + {renderFilter('series', t('search.tv_shows'))} )} - {showTraktContent ? renderTraktContent() : renderContent()} + {showTraktContent ? renderTraktContent() : showSimklContent ? renderSimklContent() : renderContent()} {selectedItem && ( @@ -1065,13 +1611,11 @@ const styles = StyleSheet.create({ overflow: 'hidden', backgroundColor: 'rgba(255,255,255,0.03)', aspectRatio: 2 / 3, - // Consistent shadow/elevation matching ContentItem elevation: Platform.OS === 'android' ? 1 : 0, shadowColor: '#000', shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.05, shadowRadius: 1, - // Consistent border styling borderWidth: 1.5, borderColor: 'rgba(255,255,255,0.15)', }, diff --git a/src/services/simklService.ts b/src/services/simklService.ts index b824a138..ef027ffe 100644 --- a/src/services/simklService.ts +++ b/src/services/simklService.ts @@ -66,11 +66,13 @@ export interface SimklPlaybackData { movie?: { title: string; year: number; + poster?: string; ids: SimklIds; }; show?: { title: string; year: number; + poster?: string; ids: SimklIds; }; episode?: { @@ -130,9 +132,95 @@ export interface SimklActivities { anime?: string; [key: string]: string | undefined; }; + movies?: { + all?: string; + rated_at?: string; + plantowatch?: string; + completed?: string; + dropped?: string; + [key: string]: string | undefined; + }; + shows?: { + all?: string; + rated_at?: string; + playback?: string; + plantowatch?: string; + watching?: string; + completed?: string; + hold?: string; + dropped?: string; + [key: string]: string | undefined; + }; + anime?: { + all?: string; + rated_at?: string; + playback?: string; + plantowatch?: string; + watching?: string; + completed?: string; + hold?: string; + dropped?: string; + [key: string]: string | undefined; + }; [key: string]: any; } +export interface SimklWatchlistItem { + movie?: { + title: string; + year: number; + poster?: string; + ids: SimklIds; + }; + show?: { + title: string; + year: number; + poster?: string; + ids: SimklIds; + }; + anime?: { + title: string; + year: number; + poster?: string; + ids: SimklIds; + }; + status?: 'watching' | 'plantowatch' | 'completed' | 'hold' | 'dropped'; + last_watched_at?: string; + user_rating?: number; + watched_episodes_count?: number; + total_episodes_count?: number; + last_watched?: string; + next_to_watch?: string; + added_to_watchlist_at?: string; +} + +export interface SimklRatingItem { + movie?: { + title: string; + year: number; + poster?: string; + ids: SimklIds; + }; + show?: { + title: string; + year: number; + poster?: string; + ids: SimklIds; + }; + anime?: { + title: string; + year: number; + poster?: string; + ids: SimklIds; + }; + rating: number; + rated_at: string; + last_watched_at?: string; + user_rated_at?: string; +} + +export type SimklStatus = 'watching' | 'plantowatch' | 'completed' | 'hold' | 'dropped'; + export class SimklService { private static instance: SimklService; private accessToken: string | null = null; @@ -603,16 +691,201 @@ export class SimklService { } /** - * SYNC: Get Full Watch History (summary) - * Optimization: Check /sync/activities first in real usage. - * For now, we implement simple fetch. + * SYNC: Get all items from user's lists + * Enhanced version with type and status filtering */ - public async getAllItems(dateFrom?: string): Promise { + public async getAllItems( + type?: 'movies' | 'shows' | 'anime', + status?: SimklStatus, + dateFrom?: string + ): Promise { let url = '/sync/all-items/'; - if (dateFrom) { - url += `?date_from=${dateFrom}`; + + if (type) { + url += `${type}/`; } - return await this.apiRequest(url); + + if (status) { + url += status; + } + + const params: string[] = []; + if (dateFrom) { + params.push(`date_from=${dateFrom}`); + } + + if (params.length > 0) { + url += `?${params.join('&')}`; + } + + try { + logger.log(`[SimklService] getAllItems: Fetching ${url}`); + const response = await this.apiRequest(url); + if (!response) { + logger.log('[SimklService] getAllItems: No response from API'); + return []; + } + + logger.log('[SimklService] getAllItems: Response keys:', Object.keys(response)); + + // Parse response based on type + const items: SimklWatchlistItem[] = []; + + if (response.movies && type === 'movies') { + logger.log(`[SimklService] getAllItems: Returning ${response.movies.length} movies`); + if (response.movies.length > 0) { + logger.log('[SimklService] getAllItems: First movie sample:', JSON.stringify(response.movies[0], null, 2)); + } + return response.movies || []; + } + if (response.shows && type === 'shows') { + logger.log(`[SimklService] getAllItems: Returning ${response.shows.length} shows`); + if (response.shows.length > 0) { + logger.log('[SimklService] getAllItems: First show sample:', JSON.stringify(response.shows[0], null, 2)); + } + return response.shows || []; + } + if (response.anime && type === 'anime') { + logger.log(`[SimklService] getAllItems: Returning ${response.anime.length} anime`); + if (response.anime.length > 0) { + logger.log('[SimklService] getAllItems: First anime sample:', JSON.stringify(response.anime[0], null, 2)); + } + return response.anime || []; + } + + // If no type specified, return all + if (!type) { + if (response.movies) items.push(...response.movies); + if (response.shows) items.push(...response.shows); + if (response.anime) items.push(...response.anime); + logger.log(`[SimklService] getAllItems: Returning ${items.length} total items`); + return items; + } + + logger.log('[SimklService] getAllItems: No matching type found, returning empty array'); + return []; + } catch (error) { + logger.error('[SimklService] Failed to get all items:', error); + return []; + } + } + + /** + * SYNC: Get user ratings + */ + public async getRatings( + type?: 'movies' | 'shows' | 'anime', + ratingFilter?: string + ): Promise { + let url = '/sync/ratings/'; + + if (type) { + url += type; + if (ratingFilter) { + url += `/${ratingFilter}`; + } + } + + try { + const response = await this.apiRequest(url); + if (!response) return []; + + const items: SimklRatingItem[] = []; + + // Aggregate ratings from all types + if (response.movies) items.push(...response.movies); + if (response.shows) items.push(...response.shows); + if (response.anime) items.push(...response.anime); + + return items; + } catch (error) { + logger.error('[SimklService] Failed to get ratings:', error); + return []; + } + } + + /** + * Add item to a specific status list + */ + public async addToList( + imdbId: string, + type: 'movie' | 'show' | 'anime', + status: SimklStatus + ): Promise { + const contentType = type === 'movie' ? 'movies' : type === 'show' ? 'shows' : 'anime'; + + const payload = { + [contentType]: [{ + to: status, + ids: { imdb: imdbId } + }] + }; + + try { + const response = await this.apiRequest('/sync/add-to-list', 'POST', payload); + return !!response; + } catch (error) { + logger.error('[SimklService] Failed to add to list:', error); + return false; + } + } + + /** + * Remove item from list (marks as not interested) + */ + public async removeFromList( + imdbId: string, + type: 'movie' | 'show' | 'anime' + ): Promise { + const contentType = type === 'movie' ? 'movies' : type === 'show' ? 'shows' : 'anime'; + + const payload = { + [contentType]: [{ + ids: { imdb: imdbId } + }] + }; + + try { + const response = await this.apiRequest('/sync/remove-from-list', 'POST', payload); + return !!response; + } catch (error) { + logger.error('[SimklService] Failed to remove from list:', error); + return false; + } + } + + /** + * Add rating for item + */ + public async addRating( + imdbId: string, + type: 'movie' | 'show' | 'anime', + rating: number + ): Promise { + const contentType = type === 'movie' ? 'movies' : type === 'show' ? 'shows' : 'anime'; + + const payload = { + [contentType]: [{ + ids: { imdb: imdbId }, + rating: Math.max(1, Math.min(10, rating)) + }] + }; + + try { + const response = await this.apiRequest('/sync/ratings', 'POST', payload); + return !!response; + } catch (error) { + logger.error('[SimklService] Failed to add rating:', error); + return false; + } + } + + /** + * Get poster URL - returns empty string to let app's existing poster infrastructure handle it + * The app will use IMDB ID or TMDB ID to fetch posters through existing metadata services + */ + public static getPosterUrl(): string { + return ''; } /** From aeb49232ddab05e36457f0a2298e6b7636047755 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 13:23:48 +0530 Subject: [PATCH 52/58] update index.html --- index.html | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index a892445a..0aa06117 100644 --- a/index.html +++ b/index.html @@ -995,15 +995,7 @@
-
- - -
- - +
@@ -1027,7 +1019,7 @@ - + From 2417bf548a4f60463a61b5b8ed48905f5f247e79 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 16:55:58 +0530 Subject: [PATCH 53/58] feat: added theintrodb.org skip intro service --- src/components/player/AndroidVideoPlayer.tsx | 9 +- src/components/player/KSPlayerCore.tsx | 9 +- src/components/player/common/UpNextButton.tsx | 16 +- .../player/overlays/SkipIntroButton.tsx | 35 ++-- src/hooks/useSettings.ts | 2 + .../settings/PlaybackSettingsScreen.tsx | 144 ++++++++++++++++- src/services/introService.ts | 149 ++++++++++++++++-- 7 files changed, 331 insertions(+), 33 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index c757b8d7..ed785869 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -44,6 +44,7 @@ import ParentalGuideOverlay from './overlays/ParentalGuideOverlay'; import SkipIntroButton from './overlays/SkipIntroButton'; import UpNextButton from './common/UpNextButton'; import { CustomAlert } from '../CustomAlert'; +import { CreditsInfo } from '../../services/introService'; // Android-specific components @@ -144,6 +145,9 @@ const AndroidVideoPlayer: React.FC = () => { // Subtitle sync modal state const [showSyncModal, setShowSyncModal] = useState(false); + // Credits timing state from API + const [creditsInfo, setCreditsInfo] = useState(null); + // Track auto-selection ref to prevent duplicate selections const hasAutoSelectedTracks = useRef(false); @@ -167,7 +171,7 @@ const AndroidVideoPlayer: React.FC = () => { }, [uri, episodeId]); const metadataResult = useMetadata({ id: id || 'placeholder', type: (type as any) }); - const { metadata, cast } = Boolean(id && type) ? (metadataResult as any) : { metadata: null, cast: [] }; + const { metadata, cast, tmdbId } = Boolean(id && type) ? (metadataResult as any) : { metadata: null, cast: [], tmdbId: null }; const hasLogo = metadata && metadata.logo; const openingAnimation = useOpeningAnimation(backdrop, metadata); @@ -961,8 +965,10 @@ const AndroidVideoPlayer: React.FC = () => { episode={episode} malId={(metadata as any)?.mal_id || (metadata as any)?.external_ids?.mal_id} kitsuId={id?.startsWith('kitsu:') ? id.split(':')[1] : undefined} + tmdbId={tmdbId || undefined} currentTime={playerState.currentTime} onSkip={(endTime) => controlsHook.seekToTime(endTime)} + onCreditsInfo={setCreditsInfo} controlsVisible={playerState.showControls} controlsFixedOffset={100} /> @@ -988,6 +994,7 @@ const AndroidVideoPlayer: React.FC = () => { metadata={metadataResult?.metadata ? { poster: metadataResult.metadata.poster, id: metadataResult.metadata.id } : undefined} controlsVisible={playerState.showControls} controlsFixedOffset={100} + creditsInfo={creditsInfo} />
diff --git a/src/components/player/KSPlayerCore.tsx b/src/components/player/KSPlayerCore.tsx index 4d042109..737daa5f 100644 --- a/src/components/player/KSPlayerCore.tsx +++ b/src/components/player/KSPlayerCore.tsx @@ -21,6 +21,7 @@ import ResumeOverlay from './modals/ResumeOverlay'; import ParentalGuideOverlay from './overlays/ParentalGuideOverlay'; import SkipIntroButton from './overlays/SkipIntroButton'; import { SpeedActivatedOverlay, PauseOverlay, GestureControls } from './components'; +import { CreditsInfo } from '../../services/introService'; // Platform-specific components import { KSPlayerSurface } from './ios/components/KSPlayerSurface'; @@ -154,7 +155,7 @@ const KSPlayerCore: React.FC = () => { const speedControl = useSpeedControl(1.0); // Metadata Hook - const { metadata, groupedEpisodes, cast } = useMetadata({ id, type: type as 'movie' | 'series' }); + const { metadata, groupedEpisodes, cast, tmdbId } = useMetadata({ id, type: type as 'movie' | 'series' }); // Trakt Autosync const traktAutosync = useTraktAutosync({ @@ -177,6 +178,9 @@ const KSPlayerCore: React.FC = () => { // Subtitle sync modal state const [showSyncModal, setShowSyncModal] = useState(false); + // Credits timing state from API + const [creditsInfo, setCreditsInfo] = useState(null); + // Track auto-selection refs to prevent duplicate selections const hasAutoSelectedTracks = useRef(false); @@ -923,8 +927,10 @@ const KSPlayerCore: React.FC = () => { episode={episode} malId={(metadata as any)?.mal_id || (metadata as any)?.external_ids?.mal_id} kitsuId={id?.startsWith('kitsu:') ? id.split(':')[1] : undefined} + tmdbId={tmdbId || undefined} currentTime={currentTime} onSkip={(endTime) => controls.seekToTime(endTime)} + onCreditsInfo={setCreditsInfo} controlsVisible={showControls} controlsFixedOffset={126} /> @@ -950,6 +956,7 @@ const KSPlayerCore: React.FC = () => { metadata={metadata ? { poster: metadata.poster, id: metadata.id } : undefined} controlsVisible={showControls} controlsFixedOffset={126} + creditsInfo={creditsInfo} /> {/* Modals */} diff --git a/src/components/player/common/UpNextButton.tsx b/src/components/player/common/UpNextButton.tsx index 9958e0c6..d8c5de0b 100644 --- a/src/components/player/common/UpNextButton.tsx +++ b/src/components/player/common/UpNextButton.tsx @@ -4,6 +4,7 @@ import { Animated } from 'react-native'; import { MaterialIcons } from '@expo/vector-icons'; import { logger } from '../../../utils/logger'; import { LinearGradient } from 'expo-linear-gradient'; +import { CreditsInfo } from '../../../services/introService'; export interface Insets { top: number; @@ -33,6 +34,7 @@ interface UpNextButtonProps { metadata?: { poster?: string; id?: string }; // Added metadata prop controlsVisible?: boolean; controlsFixedOffset?: number; + creditsInfo?: CreditsInfo | null; // Add credits info from API } const UpNextButton: React.FC = ({ @@ -49,6 +51,7 @@ const UpNextButton: React.FC = ({ metadata, controlsVisible = false, controlsFixedOffset = 100, + creditsInfo, }) => { const [visible, setVisible] = useState(false); const opacity = useRef(new Animated.Value(0)).current; @@ -76,10 +79,19 @@ const UpNextButton: React.FC = ({ const shouldShow = useMemo(() => { if (!nextEpisode || duration <= 0) return false; + + // If we have credits timing from API, use that as primary source + if (creditsInfo?.startTime !== null && creditsInfo?.startTime !== undefined) { + // Show button when we reach credits start time and stay visible until 10s before end + const timeRemaining = duration - currentTime; + const isInCredits = currentTime >= creditsInfo.startTime; + return isInCredits && timeRemaining > 10; + } + + // Fallback: Use fixed timing (show when under ~1 minute and above 10s) const timeRemaining = duration - currentTime; - // Be tolerant to timer jitter: show when under ~1 minute and above 10s return timeRemaining < 61 && timeRemaining > 10; - }, [nextEpisode, duration, currentTime]); + }, [nextEpisode, duration, currentTime, creditsInfo]); // Debug logging removed to reduce console noise // The state is computed in shouldShow useMemo above diff --git a/src/components/player/overlays/SkipIntroButton.tsx b/src/components/player/overlays/SkipIntroButton.tsx index b5329c6a..2061aab7 100644 --- a/src/components/player/overlays/SkipIntroButton.tsx +++ b/src/components/player/overlays/SkipIntroButton.tsx @@ -10,7 +10,7 @@ import Animated, { import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { MaterialIcons } from '@expo/vector-icons'; import { BlurView } from 'expo-blur'; -import { introService, SkipInterval, SkipType } from '../../../services/introService'; +import { introService, SkipInterval, SkipType, CreditsInfo } from '../../../services/introService'; import { useTheme } from '../../../contexts/ThemeContext'; import { logger } from '../../../utils/logger'; import { useSettings } from '../../../hooks/useSettings'; @@ -22,8 +22,10 @@ interface SkipIntroButtonProps { episode?: number; malId?: string; kitsuId?: string; + tmdbId?: number; currentTime: number; onSkip: (endTime: number) => void; + onCreditsInfo?: (credits: CreditsInfo | null) => void; controlsVisible?: boolean; controlsFixedOffset?: number; } @@ -35,8 +37,10 @@ export const SkipIntroButton: React.FC = ({ episode, malId, kitsuId, + tmdbId, currentTime, onSkip, + onCreditsInfo, controlsVisible = false, controlsFixedOffset = 100, }) => { @@ -65,20 +69,22 @@ export const SkipIntroButton: React.FC = ({ // Fetch skip data when episode changes useEffect(() => { - const episodeKey = `${imdbId}-${season}-${episode}-${malId}-${kitsuId}`; + const episodeKey = `${imdbId}-${season}-${episode}-${malId}-${kitsuId}-${tmdbId}`; if (!skipIntroEnabled) { setSkipIntervals([]); setCurrentInterval(null); setIsVisible(false); fetchedRef.current = false; + if (onCreditsInfo) onCreditsInfo(null); return; } // Skip if not a series or missing required data (though MAL/Kitsu ID might be enough for some cases, usually need season/ep) - if (type !== 'series' || (!imdbId && !malId && !kitsuId) || !season || !episode) { + if (type !== 'series' || (!imdbId && !malId && !kitsuId && !tmdbId) || !season || !episode) { setSkipIntervals([]); fetchedRef.current = false; + if (onCreditsInfo) onCreditsInfo(null); return; } @@ -94,24 +100,35 @@ export const SkipIntroButton: React.FC = ({ setSkipIntervals([]); const fetchSkipData = async () => { - logger.log(`[SkipIntroButton] Fetching skip data for S${season}E${episode} (IMDB: ${imdbId}, MAL: ${malId}, Kitsu: ${kitsuId})...`); + logger.log(`[SkipIntroButton] Fetching skip data for S${season}E${episode} (TMDB: ${tmdbId}, IMDB: ${imdbId}, MAL: ${malId}, Kitsu: ${kitsuId})...`); try { - const intervals = await introService.getSkipTimes(imdbId, season, episode, malId, kitsuId); - setSkipIntervals(intervals); + const mediaType = type === 'series' ? 'tv' : type === 'movie' ? 'movie' : 'tv'; + const result = await introService.getSkipTimes(imdbId, season, episode, malId, kitsuId, tmdbId, mediaType); + setSkipIntervals(result.intervals); - if (intervals.length > 0) { - logger.log(`[SkipIntroButton] ✓ Found ${intervals.length} skip intervals:`, intervals); + // Pass credits info to parent via callback + if (onCreditsInfo) { + onCreditsInfo(result.credits); + } + + if (result.intervals.length > 0) { + logger.log(`[SkipIntroButton] ✓ Found ${result.intervals.length} skip intervals:`, result.intervals); } else { logger.log(`[SkipIntroButton] ✗ No skip data available for this episode`); } + + if (result.credits) { + logger.log(`[SkipIntroButton] ✓ Found credits timing:`, result.credits); + } } catch (error) { logger.error('[SkipIntroButton] Error fetching skip data:', error); setSkipIntervals([]); + if (onCreditsInfo) onCreditsInfo(null); } }; fetchSkipData(); - }, [imdbId, type, season, episode, malId, kitsuId, skipIntroEnabled]); + }, [imdbId, type, season, episode, malId, kitsuId, tmdbId, skipIntroEnabled, onCreditsInfo]); // Determine active interval based on current playback position useEffect(() => { diff --git a/src/hooks/useSettings.ts b/src/hooks/useSettings.ts index c285a1de..838afb94 100644 --- a/src/hooks/useSettings.ts +++ b/src/hooks/useSettings.ts @@ -59,6 +59,7 @@ export interface AppSettings { // Playback behavior alwaysResume: boolean; // If true, resume automatically without prompt when progress < 85% skipIntroEnabled: boolean; // Enable/disable Skip Intro overlay (IntroDB) + introDbSource: 'theintrodb' | 'introdb'; // Preferred IntroDB source: TheIntroDB (new) or IntroDB (legacy) // Downloads enableDownloads: boolean; // Show Downloads tab and enable saving streams // Theme settings @@ -147,6 +148,7 @@ export const DEFAULT_SETTINGS: AppSettings = { // Playback behavior defaults alwaysResume: true, skipIntroEnabled: true, + introDbSource: 'theintrodb', // Default to TheIntroDB (new API) // Downloads enableDownloads: false, useExternalPlayerForDownloads: false, diff --git a/src/screens/settings/PlaybackSettingsScreen.tsx b/src/screens/settings/PlaybackSettingsScreen.tsx index 8cd69710..00b3f998 100644 --- a/src/screens/settings/PlaybackSettingsScreen.tsx +++ b/src/screens/settings/PlaybackSettingsScreen.tsx @@ -1,5 +1,5 @@ import React, { useState, useCallback, useMemo, useRef, useEffect } from 'react'; -import { View, StyleSheet, ScrollView, StatusBar, Platform, Text, TouchableOpacity, Dimensions } from 'react-native'; +import { View, StyleSheet, ScrollView, StatusBar, Platform, Text, TouchableOpacity, Dimensions, Image } from 'react-native'; import { useNavigation, useFocusEffect } from '@react-navigation/native'; import { NavigationProp } from '@react-navigation/native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; @@ -17,6 +17,7 @@ import { SvgXml } from 'react-native-svg'; const { width } = Dimensions.get('window'); const INTRODB_LOGO_URI = 'https://introdb.app/images/logo-vector.svg'; +const THEINTRODB_FAVICON_URI = 'https://theintrodb.org/favicon.ico'; // Available languages for audio/subtitle selection const AVAILABLE_LANGUAGES = [ @@ -77,6 +78,7 @@ export const PlaybackSettingsContent: React.FC = ( const config = useRealtimeConfig(); const [introDbLogoXml, setIntroDbLogoXml] = useState(null); + const [theIntroDbLoaded, setTheIntroDbLoaded] = useState(false); useEffect(() => { let cancelled = false; @@ -103,20 +105,57 @@ export const PlaybackSettingsContent: React.FC = ( }; }, []); - const introDbLogoIcon = introDbLogoXml ? ( - - ) : ( - - ); + // Preload TheIntroDB favicon + useEffect(() => { + let cancelled = false; + const load = async () => { + try { + await fetch(THEINTRODB_FAVICON_URI); + if (!cancelled) setTheIntroDbLoaded(true); + } catch { + if (!cancelled) setTheIntroDbLoaded(false); + } + }; + load(); + return () => { + cancelled = true; + }; + }, []); + + const introDbLogoIcon = useMemo(() => { + const selectedSource = settings?.introDbSource || 'theintrodb'; + + if (selectedSource === 'theintrodb') { + // Show TheIntroDB favicon + return theIntroDbLoaded ? ( + + ) : ( + + ); + } else { + // Show IntroDB logo (legacy) + return introDbLogoXml ? ( + + ) : ( + + ); + } + }, [settings?.introDbSource, introDbLogoXml, theIntroDbLoaded, currentTheme.colors.primary]); // Bottom sheet refs const audioLanguageSheetRef = useRef(null); const subtitleLanguageSheetRef = useRef(null); const subtitleSourceSheetRef = useRef(null); + const introSourceSheetRef = useRef(null); // Snap points const languageSnapPoints = useMemo(() => ['70%'], []); const sourceSnapPoints = useMemo(() => ['45%'], []); + const introSourceSnapPoints = useMemo(() => ['35%'], []); // Handlers to present sheets - ensure only one is open at a time const openAudioLanguageSheet = useCallback(() => { @@ -137,6 +176,13 @@ export const PlaybackSettingsContent: React.FC = ( setTimeout(() => subtitleSourceSheetRef.current?.present(), 100); }, []); + const openIntroSourceSheet = useCallback(() => { + audioLanguageSheetRef.current?.dismiss(); + subtitleLanguageSheetRef.current?.dismiss(); + subtitleSourceSheetRef.current?.dismiss(); + setTimeout(() => introSourceSheetRef.current?.present(), 100); + }, []); + const isItemVisible = (itemId: string) => { if (!config?.items) return true; const item = config.items[itemId]; @@ -188,6 +234,17 @@ export const PlaybackSettingsContent: React.FC = ( subtitleSourceSheetRef.current?.dismiss(); }; + const handleSelectIntroSource = (value: 'theintrodb' | 'introdb') => { + updateSetting('introDbSource', value); + introSourceSheetRef.current?.dismiss(); + }; + + const getIntroSourceLabel = (value: string) => { + if (value === 'theintrodb') return 'TheIntroDB'; + if (value === 'introdb') return 'IntroDB'; + return 'TheIntroDB'; + }; + return ( <> {hasVisibleItems(['video_player']) && ( @@ -212,7 +269,7 @@ export const PlaybackSettingsContent: React.FC = ( ( = ( onValueChange={(value) => updateSetting('skipIntroEnabled', value)} /> )} - isLast isTablet={isTablet} /> + {settings?.skipIntroEnabled && ( + } + onPress={openIntroSourceSheet} + isLast + isTablet={isTablet} + /> + )} {/* Audio & Subtitle Preferences */} @@ -442,6 +509,67 @@ export const PlaybackSettingsContent: React.FC = ( })} + + {/* Intro Source Bottom Sheet */} + + + Skip Intro Source + + + {[ + { value: 'theintrodb', label: 'TheIntroDB', description: 'theintrodb.org - Supports skip recap and end credits if available', logo: THEINTRODB_FAVICON_URI }, + { value: 'introdb', label: 'IntroDB', description: 'Skip Intro database by introdb.app', logo: INTRODB_LOGO_URI } + ].map((option) => { + const isSelected = option.value === (settings?.introDbSource || 'theintrodb'); + return ( + handleSelectIntroSource(option.value as 'theintrodb' | 'introdb')} + > + + + {option.value === 'theintrodb' ? ( + + ) : ( + introDbLogoXml ? ( + + ) : ( + + ) + )} + + {option.label} + + + + {option.description} + + + {isSelected && ( + + )} + + ); + })} + + ); }; diff --git a/src/services/introService.ts b/src/services/introService.ts index 9d225903..1cce4ee1 100644 --- a/src/services/introService.ts +++ b/src/services/introService.ts @@ -1,6 +1,7 @@ import axios from 'axios'; import { logger } from '../utils/logger'; import { tmdbService } from './tmdbService'; +import { mmkvStorage } from './mmkvStorage'; /** * IntroDB API service for fetching TV show intro timestamps @@ -8,6 +9,7 @@ import { tmdbService } from './tmdbService'; */ const INTRODB_API_URL = process.env.EXPO_PUBLIC_INTRODB_API_URL; +const THEINTRODB_API_URL = 'https://api.theintrodb.org/v1'; const ANISKIP_API_URL = 'https://api.aniskip.com/v2'; const KITSU_API_URL = 'https://kitsu.io/api/edge'; const ARM_IMDB_URL = 'https://arm.haglund.dev/api/v2/imdb'; @@ -18,10 +20,31 @@ export interface SkipInterval { startTime: number; endTime: number; type: SkipType; - provider: 'introdb' | 'aniskip'; + provider: 'introdb' | 'aniskip' | 'theintrodb'; skipId?: string; } +export interface CreditsInfo { + startTime: number | null; + endTime: number | null; + confidence: number; +} + +export interface TheIntroDBTimestamp { + start_ms: number | null; + end_ms: number | null; + confidence: number; + submission_count: number; +} + +export interface TheIntroDBResponse { + tmdb_id: number; + type: 'movie' | 'tv'; + intro?: TheIntroDBTimestamp; + recap?: TheIntroDBTimestamp; + credits?: TheIntroDBTimestamp; +} + export interface IntroTimestamps { imdb_id: string; season: number; @@ -152,6 +175,75 @@ async function fetchFromAniSkip(malId: string, episode: number): Promise { + try { + const params: any = { tmdb_id: tmdbId }; + if (type === 'tv' && season !== undefined && episode !== undefined) { + params.season = season; + params.episode = episode; + } + + const response = await axios.get(`${THEINTRODB_API_URL}/media`, { + params, + timeout: 5000, + }); + + const intervals: SkipInterval[] = []; + let credits: CreditsInfo | null = null; + + // Add intro skip interval if available + if (response.data.intro && response.data.intro.end_ms !== null) { + intervals.push({ + startTime: response.data.intro.start_ms !== null ? response.data.intro.start_ms / 1000 : 0, + endTime: response.data.intro.end_ms / 1000, + type: 'intro', + provider: 'theintrodb' + }); + } + + // Add recap skip interval if available + if (response.data.recap && response.data.recap.start_ms !== null && response.data.recap.end_ms !== null) { + intervals.push({ + startTime: response.data.recap.start_ms / 1000, + endTime: response.data.recap.end_ms / 1000, + type: 'recap', + provider: 'theintrodb' + }); + } + + // Store credits info for next episode button timing + if (response.data.credits && response.data.credits.start_ms !== null) { + credits = { + startTime: response.data.credits.start_ms / 1000, + endTime: response.data.credits.end_ms !== null ? response.data.credits.end_ms / 1000 : null, + confidence: response.data.credits.confidence + }; + } + + if (intervals.length > 0 || credits) { + logger.log(`[IntroService] TheIntroDB found data for TMDB ${tmdbId}:`, { + intervals: intervals.length, + hasCredits: !!credits + }); + } + + return { intervals, credits }; + } catch (error: any) { + if (axios.isAxiosError(error) && error.response?.status === 404) { + logger.log(`[IntroService] No TheIntroDB data for TMDB ${tmdbId}`); + return { intervals: [], credits: null }; + } + + logger.error('[IntroService] Error fetching from TheIntroDB:', error?.message || error); + return { intervals: [], credits: null }; + } +} + async function fetchFromIntroDb(imdbId: string, season: number, episode: number): Promise { try { const response = await axios.get(`${INTRODB_API_URL}/intro`, { @@ -195,19 +287,52 @@ export async function getSkipTimes( season: number, episode: number, malId?: string, - kitsuId?: string -): Promise { - // 1. Try IntroDB (TV Shows) first - if (imdbId) { - const introDbIntervals = await fetchFromIntroDb(imdbId, season, episode); - if (introDbIntervals.length > 0) { - return introDbIntervals; + kitsuId?: string, + tmdbId?: number, + type?: 'movie' | 'tv' +): Promise<{ intervals: SkipInterval[], credits: CreditsInfo | null }> { + // Get user preference for intro source + const introDbSource = mmkvStorage.getString('introDbSource') || 'theintrodb'; + + if (introDbSource === 'theintrodb') { + // User prefers TheIntroDB (new API) + // 1. Try TheIntroDB (Primary) - Supports both movies and TV shows + if (tmdbId && type) { + const theIntroDbResult = await fetchFromTheIntroDb(tmdbId, type, season, episode); + if (theIntroDbResult.intervals.length > 0 || theIntroDbResult.credits) { + return theIntroDbResult; + } + } + + // 2. Try old IntroDB (Fallback for TV Shows) + if (imdbId) { + const introDbIntervals = await fetchFromIntroDb(imdbId, season, episode); + if (introDbIntervals.length > 0) { + return { intervals: introDbIntervals, credits: null }; + } + } + } else { + // User prefers IntroDB (legacy) + // 1. Try old IntroDB first + if (imdbId) { + const introDbIntervals = await fetchFromIntroDb(imdbId, season, episode); + if (introDbIntervals.length > 0) { + return { intervals: introDbIntervals, credits: null }; + } + } + + // 2. Try TheIntroDB as fallback + if (tmdbId && type) { + const theIntroDbResult = await fetchFromTheIntroDb(tmdbId, type, season, episode); + if (theIntroDbResult.intervals.length > 0 || theIntroDbResult.credits) { + return theIntroDbResult; + } } } - // 2. Try AniSkip (Anime) if we have MAL ID or Kitsu ID + // 3. Try AniSkip (Anime) if we have MAL ID or Kitsu ID let finalMalId = malId; - + // If we have Kitsu ID but no MAL ID, try to resolve it if (!finalMalId && kitsuId) { logger.log(`[IntroService] Resolving MAL ID from Kitsu ID: ${kitsuId}`); @@ -232,11 +357,11 @@ export async function getSkipTimes( const aniSkipIntervals = await fetchFromAniSkip(finalMalId, episode); if (aniSkipIntervals.length > 0) { logger.log(`[IntroService] Found ${aniSkipIntervals.length} skip intervals from AniSkip`); - return aniSkipIntervals; + return { intervals: aniSkipIntervals, credits: null }; } } - return []; + return { intervals: [], credits: null }; } /** From a8f10fbcd8cd4445761f84c9d4648a5e068530bf Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 17:17:24 +0530 Subject: [PATCH 54/58] disabled android player brightness control temporarily --- src/components/player/AndroidVideoPlayer.tsx | 6 +- .../player/android/hooks/usePlayerSetup.ts | 48 +------ .../player/components/GestureControls.tsx | 4 +- src/hooks/usePlayerGestureControls.ts | 132 +++++++++--------- 4 files changed, 74 insertions(+), 116 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index ed785869..3fe131e4 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -176,8 +176,7 @@ const AndroidVideoPlayer: React.FC = () => { const openingAnimation = useOpeningAnimation(backdrop, metadata); const [volume, setVolume] = useState(1.0); - const [brightness, setBrightness] = useState(1.0); - const setupHook = usePlayerSetup(playerState.setScreenDimensions, setVolume, setBrightness, playerState.paused); + const setupHook = usePlayerSetup(playerState.setScreenDimensions, setVolume, playerState.paused); const controlsHook = usePlayerControls( mpvPlayerRef, @@ -218,8 +217,6 @@ const AndroidVideoPlayer: React.FC = () => { const gestureControls = usePlayerGestureControls({ volume, setVolume, - brightness, - setBrightness, volumeRange: { min: 0, max: 1 }, volumeSensitivity: 0.006, brightnessSensitivity: 0.004, @@ -873,7 +870,6 @@ const AndroidVideoPlayer: React.FC = () => { showControls={playerState.showControls} hideControls={hideControls} volume={volume} - brightness={brightness} controlsTimeout={controlsTimeout} resizeMode={playerState.resizeMode} /> diff --git a/src/components/player/android/hooks/usePlayerSetup.ts b/src/components/player/android/hooks/usePlayerSetup.ts index 88a4167d..60e8d94f 100644 --- a/src/components/player/android/hooks/usePlayerSetup.ts +++ b/src/components/player/android/hooks/usePlayerSetup.ts @@ -2,7 +2,7 @@ import { useEffect, useRef } from 'react'; import { StatusBar, Platform, Dimensions, AppState } from 'react-native'; import RNImmersiveMode from 'react-native-immersive-mode'; import * as NavigationBar from 'expo-navigation-bar'; -import * as Brightness from 'expo-brightness'; + import { activateKeepAwakeAsync, deactivateKeepAwake } from 'expo-keep-awake'; import { logger } from '../../../../utils/logger'; import { useFocusEffect } from '@react-navigation/native'; @@ -13,12 +13,10 @@ const DEBUG_MODE = false; export const usePlayerSetup = ( setScreenDimensions: (dim: any) => void, setVolume: (vol: number) => void, - setBrightness: (bri: number) => void, + paused: boolean ) => { - const originalAppBrightnessRef = useRef(null); - const originalSystemBrightnessRef = useRef(null); - const originalSystemBrightnessModeRef = useRef(null); + const isAppBackgrounded = useRef(false); // Prevent screen sleep while playing @@ -85,49 +83,9 @@ export const usePlayerSetup = ( // Initialize volume (default to 1.0) setVolume(1.0); - // Initialize Brightness - const initBrightness = async () => { - try { - if (Platform.OS === 'android') { - try { - const [sysBright, sysMode] = await Promise.all([ - (Brightness as any).getSystemBrightnessAsync?.(), - (Brightness as any).getSystemBrightnessModeAsync?.() - ]); - originalSystemBrightnessRef.current = typeof sysBright === 'number' ? sysBright : null; - originalSystemBrightnessModeRef.current = typeof sysMode === 'number' ? sysMode : null; - } catch (e) { - // ignore - } - } - const currentBrightness = await Brightness.getBrightnessAsync(); - originalAppBrightnessRef.current = currentBrightness; - setBrightness(currentBrightness); - } catch (error) { - logger.warn('[usePlayerSetup] Error setting brightness', error); - setBrightness(1.0); - } - }; - initBrightness(); - return () => { subscription?.remove(); disableImmersiveMode(); - const restoreBrightness = async () => { - try { - if (Platform.OS === 'android') { - - } - if (originalAppBrightnessRef.current !== null) { - await Brightness.setBrightnessAsync(originalAppBrightnessRef.current); - setBrightness(originalAppBrightnessRef.current); - } - } catch (e) { - logger.warn('[usePlayerSetup] Error restoring brightness', e); - } - }; - - restoreBrightness(); }; }, []); diff --git a/src/components/player/components/GestureControls.tsx b/src/components/player/components/GestureControls.tsx index 403316ff..b249e855 100644 --- a/src/components/player/components/GestureControls.tsx +++ b/src/components/player/components/GestureControls.tsx @@ -19,7 +19,7 @@ interface GestureControlsProps { showControls: boolean; hideControls: () => void; volume: number; - brightness: number; + brightness?: number; controlsTimeout: React.MutableRefObject; resizeMode?: string; } @@ -34,7 +34,7 @@ export const GestureControls: React.FC = ({ showControls, hideControls, volume, - brightness, + brightness = 0.5, controlsTimeout, resizeMode = 'contain' }) => { diff --git a/src/hooks/usePlayerGestureControls.ts b/src/hooks/usePlayerGestureControls.ts index f15bd3dc..7b9b1465 100644 --- a/src/hooks/usePlayerGestureControls.ts +++ b/src/hooks/usePlayerGestureControls.ts @@ -6,8 +6,8 @@ import * as Brightness from 'expo-brightness'; interface GestureControlConfig { volume: number; setVolume: (value: number) => void; - brightness: number; - setBrightness: (value: number) => void; + brightness?: number; + setBrightness?: (value: number) => void; volumeRange?: { min: number; max: number }; // Default: { min: 0, max: 1 } volumeSensitivity?: number; // Default: 0.006 (iOS), 0.0084 (Android with 1.4x multiplier) brightnessSensitivity?: number; // Default: 0.004 (iOS), 0.0056 (Android with 1.4x multiplier) @@ -20,69 +20,69 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { const [showVolumeOverlay, setShowVolumeOverlay] = useState(false); const [showBrightnessOverlay, setShowBrightnessOverlay] = useState(false); const [showResizeModeOverlay, setShowResizeModeOverlay] = useState(false); - + // Animated values const volumeGestureTranslateY = useRef(new Animated.Value(0)).current; const brightnessGestureTranslateY = useRef(new Animated.Value(0)).current; const volumeOverlayOpacity = useRef(new Animated.Value(0)).current; const brightnessOverlayOpacity = useRef(new Animated.Value(0)).current; const resizeModeOverlayOpacity = useRef(new Animated.Value(0)).current; - + // Tracking refs const lastVolumeGestureY = useRef(0); const lastBrightnessGestureY = useRef(0); const volumeOverlayTimeout = useRef(null); const brightnessOverlayTimeout = useRef(null); const resizeModeOverlayTimeout = useRef(null); - + // Extract config with defaults and platform adjustments const volumeRange = config.volumeRange || { min: 0, max: 1 }; const baseVolumeSensitivity = config.volumeSensitivity || 0.006; const baseBrightnessSensitivity = config.brightnessSensitivity || 0.004; const overlayTimeout = config.overlayTimeout || 1500; - + // Platform-specific sensitivity adjustments // Android needs higher sensitivity due to different touch handling const platformMultiplier = Platform.OS === 'android' ? 1.6 : 1.0; const volumeSensitivity = baseVolumeSensitivity * platformMultiplier; const brightnessSensitivity = baseBrightnessSensitivity * platformMultiplier; - + // Volume gesture handler const onVolumeGestureEvent = Animated.event( [{ nativeEvent: { translationY: volumeGestureTranslateY } }], - { + { useNativeDriver: false, listener: (event: PanGestureHandlerGestureEvent) => { const { translationY, state } = event.nativeEvent; - + if (state === State.ACTIVE) { // Auto-initialize on first active frame if (Math.abs(translationY) < 5 && Math.abs(lastVolumeGestureY.current - translationY) > 20) { lastVolumeGestureY.current = translationY; return; } - + // Calculate delta from last position const deltaY = -(translationY - lastVolumeGestureY.current); lastVolumeGestureY.current = translationY; - + // Normalize sensitivity based on volume range const rangeMultiplier = volumeRange.max - volumeRange.min; const volumeChange = deltaY * volumeSensitivity * rangeMultiplier; const newVolume = Math.max(volumeRange.min, Math.min(volumeRange.max, config.volume + volumeChange)); - + config.setVolume(newVolume); - + if (config.debugMode) { console.log(`[GestureControls] Volume set to: ${newVolume} (Platform: ${Platform.OS}, Sensitivity: ${volumeSensitivity})`); } - + // Show overlay if (!showVolumeOverlay) { setShowVolumeOverlay(true); volumeOverlayOpacity.setValue(1); } - + // Reset hide timer if (volumeOverlayTimeout.current) { clearTimeout(volumeOverlayTimeout.current); @@ -98,55 +98,59 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { } } ); - - // Brightness gesture handler - const onBrightnessGestureEvent = Animated.event( - [{ nativeEvent: { translationY: brightnessGestureTranslateY } }], - { - useNativeDriver: false, - listener: (event: PanGestureHandlerGestureEvent) => { - const { translationY, state } = event.nativeEvent; - - if (state === State.ACTIVE) { - // Auto-initialize - if (Math.abs(translationY) < 5 && Math.abs(lastBrightnessGestureY.current - translationY) > 20) { + + // Brightness gesture handler - only active if brightness is provided + const onBrightnessGestureEvent = config.brightness !== undefined && config.setBrightness + ? Animated.event( + [{ nativeEvent: { translationY: brightnessGestureTranslateY } }], + { + useNativeDriver: false, + listener: (event: PanGestureHandlerGestureEvent) => { + const { translationY, state } = event.nativeEvent; + + if (state === State.ACTIVE) { + // Auto-initialize + if (Math.abs(translationY) < 5 && Math.abs(lastBrightnessGestureY.current - translationY) > 20) { + lastBrightnessGestureY.current = translationY; + return; + } + + const deltaY = -(translationY - lastBrightnessGestureY.current); lastBrightnessGestureY.current = translationY; - return; + + const brightnessSensitivity = (config.brightnessSensitivity || 0.004) * platformMultiplier; + const brightnessChange = deltaY * brightnessSensitivity; + const currentBrightness = config.brightness as number; // Safe cast as we checked undefined + const newBrightness = Math.max(0, Math.min(1, currentBrightness + brightnessChange)); + + config.setBrightness!(newBrightness); + Brightness.setBrightnessAsync(newBrightness).catch(() => { }); + + if (config.debugMode) { + console.log(`[GestureControls] Device brightness set to: ${newBrightness} (Platform: ${Platform.OS}, Sensitivity: ${brightnessSensitivity})`); + } + + if (!showBrightnessOverlay) { + setShowBrightnessOverlay(true); + brightnessOverlayOpacity.setValue(1); + } + + if (brightnessOverlayTimeout.current) { + clearTimeout(brightnessOverlayTimeout.current); + } + brightnessOverlayTimeout.current = setTimeout(() => { + Animated.timing(brightnessOverlayOpacity, { + toValue: 0, + duration: 250, + useNativeDriver: true, + }).start(() => setShowBrightnessOverlay(false)); + }, overlayTimeout); } - - const deltaY = -(translationY - lastBrightnessGestureY.current); - lastBrightnessGestureY.current = translationY; - - const brightnessChange = deltaY * brightnessSensitivity; - const newBrightness = Math.max(0, Math.min(1, config.brightness + brightnessChange)); - - config.setBrightness(newBrightness); - Brightness.setBrightnessAsync(newBrightness).catch(() => {}); - - if (config.debugMode) { - console.log(`[GestureControls] Device brightness set to: ${newBrightness} (Platform: ${Platform.OS}, Sensitivity: ${brightnessSensitivity})`); - } - - if (!showBrightnessOverlay) { - setShowBrightnessOverlay(true); - brightnessOverlayOpacity.setValue(1); - } - - if (brightnessOverlayTimeout.current) { - clearTimeout(brightnessOverlayTimeout.current); - } - brightnessOverlayTimeout.current = setTimeout(() => { - Animated.timing(brightnessOverlayOpacity, { - toValue: 0, - duration: 250, - useNativeDriver: true, - }).start(() => setShowBrightnessOverlay(false)); - }, overlayTimeout); } } - } - ); - + ) + : undefined; + // Cleanup function const cleanup = () => { if (volumeOverlayTimeout.current) { @@ -180,12 +184,12 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { }, overlayTimeout); }); }; - + return { // Gesture handlers onVolumeGestureEvent, onBrightnessGestureEvent, - + // Overlay state showVolumeOverlay, showBrightnessOverlay, @@ -193,10 +197,10 @@ export const usePlayerGestureControls = (config: GestureControlConfig) => { volumeOverlayOpacity, brightnessOverlayOpacity, resizeModeOverlayOpacity, - + // Overlay functions showResizeModeOverlayFn, - + // Cleanup cleanup, }; From 8b267fb6d7ca0251b813472d2deea5ad33807277 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:10:46 +0530 Subject: [PATCH 55/58] improved touch handling player controls --- .../android/components/GestureControls.tsx | 129 +++++++++++------- .../player/controls/PlayerControls.tsx | 2 +- .../player/ios/components/GestureControls.tsx | 129 +++++++++++------- 3 files changed, 155 insertions(+), 105 deletions(-) diff --git a/src/components/player/android/components/GestureControls.tsx b/src/components/player/android/components/GestureControls.tsx index 41bf66b5..9216664a 100644 --- a/src/components/player/android/components/GestureControls.tsx +++ b/src/components/player/android/components/GestureControls.tsx @@ -52,78 +52,104 @@ export const GestureControls: React.FC = ({ return 'brightness-high'; }; + // Create refs for all gesture handlers to enable cross-referencing + const leftPanRef = React.useRef(null); + const rightPanRef = React.useRef(null); + const leftTapRef = React.useRef(null); + const rightTapRef = React.useRef(null); + const centerTapRef = React.useRef(null); + const leftLongPressRef = React.useRef(null); + const rightLongPressRef = React.useRef(null); + + // Shared style for left side gesture area + const leftSideStyle = { + position: 'absolute' as const, + top: screenDimensions.height * 0.15, + left: 0, + width: screenDimensions.width * 0.4, + height: screenDimensions.height * 0.7, + zIndex: 10, + }; + + // Shared style for right side gesture area + const rightSideStyle = { + position: 'absolute' as const, + top: screenDimensions.height * 0.15, + right: 0, + width: screenDimensions.width * 0.4, + height: screenDimensions.height * 0.7, + zIndex: 10, + }; + return ( <> - {/* Left side gesture handler - brightness + tap + long press */} + {/* Left side gestures - brightness + tap + long press (flat structure) */} - - - - - + - {/* Right side gesture handler - volume + tap + long press */} + + + + + + + + + {/* Right side gestures - volume + tap + long press (flat structure) */} - - - - - + + + + + + + + + {/* Center area tap handler */} { if (showControls) { const timeoutId = setTimeout(() => { @@ -138,7 +164,6 @@ export const GestureControls: React.FC = ({ } }} shouldCancelWhenOutside={false} - simultaneousHandlers={[]} > = ({ left: screenDimensions.width * 0.4, width: screenDimensions.width * 0.2, height: screenDimensions.height * 0.7, - zIndex: 5, + zIndex: 10, }} /> diff --git a/src/components/player/controls/PlayerControls.tsx b/src/components/player/controls/PlayerControls.tsx index 16bb7a3b..eb7ad749 100644 --- a/src/components/player/controls/PlayerControls.tsx +++ b/src/components/player/controls/PlayerControls.tsx @@ -386,7 +386,7 @@ export const PlayerControls: React.FC = ({ {/* Center Controls - CloudStream Style */} + }]} pointerEvents="box-none"> {/* Backward Seek Button (-10s) */} = ({ // Helper to get dimensions (using passed screenDimensions) const getDimensions = () => screenDimensions; + // Create refs for all gesture handlers to enable cross-referencing + const leftPanRef = React.useRef(null); + const rightPanRef = React.useRef(null); + const leftTapRef = React.useRef(null); + const rightTapRef = React.useRef(null); + const centerTapRef = React.useRef(null); + const leftLongPressRef = React.useRef(null); + const rightLongPressRef = React.useRef(null); + + // Shared style for left side gesture area + const leftSideStyle = { + position: 'absolute' as const, + top: screenDimensions.height * 0.15, + left: 0, + width: screenDimensions.width * 0.4, + height: screenDimensions.height * 0.7, + zIndex: 10, + }; + + // Shared style for right side gesture area + const rightSideStyle = { + position: 'absolute' as const, + top: screenDimensions.height * 0.15, + right: 0, + width: screenDimensions.width * 0.4, + height: screenDimensions.height * 0.7, + zIndex: 10, + }; + return ( <> - {/* Left side gesture handler - brightness + tap + long press */} + {/* Left side gestures - brightness + tap + long press (flat structure) */} - - - - - + - {/* Right side gesture handler - volume + tap + long press */} + + + + + + + + + {/* Right side gestures - volume + tap + long press (flat structure) */} - - - - - + + + + + + + + + {/* Center area tap handler */} { if (showControls) { const timeoutId = setTimeout(() => { @@ -123,7 +149,6 @@ export const GestureControls: React.FC = ({ } }} shouldCancelWhenOutside={false} - simultaneousHandlers={[]} > = ({ left: screenDimensions.width * 0.4, width: screenDimensions.width * 0.2, height: screenDimensions.height * 0.7, - zIndex: 5, + zIndex: 10, }} /> From a318bd350bb7e3a021ff483e0ed6127901cae074 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:30:57 +0530 Subject: [PATCH 56/58] Added double tap to Skip, Slide to seek --- src/components/player/AndroidVideoPlayer.tsx | 5 + src/components/player/KSPlayerCore.tsx | 5 + .../android/components/GestureControls.tsx | 422 +++++++++++++----- .../player/components/GestureControls.tsx | 421 +++++++++++++---- 4 files changed, 652 insertions(+), 201 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index 3fe131e4..cd3bbd46 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -872,6 +872,11 @@ const AndroidVideoPlayer: React.FC = () => { volume={volume} controlsTimeout={controlsTimeout} resizeMode={playerState.resizeMode} + skip={controlsHook.skip} + currentTime={playerState.currentTime} + duration={playerState.duration} + seekToTime={controlsHook.seekToTime} + formatTime={formatTime} /> { brightness={brightness} controlsTimeout={controlsTimeout} resizeMode={resizeMode} + skip={controls.skip} + currentTime={currentTime} + duration={duration} + seekToTime={controls.seekToTime} + formatTime={formatTime} /> {/* UI Controls */} diff --git a/src/components/player/android/components/GestureControls.tsx b/src/components/player/android/components/GestureControls.tsx index 9216664a..3485daf3 100644 --- a/src/components/player/android/components/GestureControls.tsx +++ b/src/components/player/android/components/GestureControls.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import { View, Text, StyleSheet, Animated } from 'react-native'; import { TapGestureHandler, @@ -22,6 +22,12 @@ interface GestureControlsProps { brightness: number; controlsTimeout: React.MutableRefObject; resizeMode?: string; + // New props for double-tap skip and horizontal seek + skip?: (seconds: number) => void; + currentTime?: number; + duration?: number; + seekToTime?: (seconds: number) => void; + formatTime?: (seconds: number) => string; } export const GestureControls: React.FC = ({ @@ -36,7 +42,12 @@ export const GestureControls: React.FC = ({ volume, brightness, controlsTimeout, - resizeMode = 'contain' + resizeMode = 'contain', + skip, + currentTime, + duration, + seekToTime, + formatTime, }) => { const getVolumeIcon = (value: number) => { @@ -52,128 +63,232 @@ export const GestureControls: React.FC = ({ return 'brightness-high'; }; - // Create refs for all gesture handlers to enable cross-referencing - const leftPanRef = React.useRef(null); - const rightPanRef = React.useRef(null); - const leftTapRef = React.useRef(null); - const rightTapRef = React.useRef(null); - const centerTapRef = React.useRef(null); - const leftLongPressRef = React.useRef(null); - const rightLongPressRef = React.useRef(null); + // Refs for gesture handlers + const leftDoubleTapRef = React.useRef(null); + const rightDoubleTapRef = React.useRef(null); + const horizontalSeekPanRef = React.useRef(null); + const leftVerticalPanRef = React.useRef(null); + const rightVerticalPanRef = React.useRef(null); - // Shared style for left side gesture area + // State for double-tap skip overlays + const [showSkipForwardOverlay, setShowSkipForwardOverlay] = useState(false); + const [showSkipBackwardOverlay, setShowSkipBackwardOverlay] = useState(false); + const [skipAmount, setSkipAmount] = useState(10); + + // State for horizontal seek + const [isHorizontalSeeking, setIsHorizontalSeeking] = useState(false); + const [seekPreviewTime, setSeekPreviewTime] = useState(0); + const [seekStartTime, setSeekStartTime] = useState(0); + + // Refs for overlay timeouts + const skipForwardTimeoutRef = React.useRef(null); + const skipBackwardTimeoutRef = React.useRef(null); + + // Cleanup timeouts on unmount + React.useEffect(() => { + return () => { + if (skipForwardTimeoutRef.current) clearTimeout(skipForwardTimeoutRef.current); + if (skipBackwardTimeoutRef.current) clearTimeout(skipBackwardTimeoutRef.current); + }; + }, []); + + // Double-tap handlers + const handleLeftDoubleTap = () => { + if (skip) { + skip(-10); + setSkipAmount(prev => { + const newAmount = showSkipBackwardOverlay ? prev + 10 : 10; + return newAmount; + }); + setShowSkipBackwardOverlay(true); + if (skipBackwardTimeoutRef.current) { + clearTimeout(skipBackwardTimeoutRef.current); + } + skipBackwardTimeoutRef.current = setTimeout(() => { + setShowSkipBackwardOverlay(false); + setSkipAmount(10); + }, 800); + } + }; + + const handleRightDoubleTap = () => { + if (skip) { + skip(10); + setSkipAmount(prev => { + const newAmount = showSkipForwardOverlay ? prev + 10 : 10; + return newAmount; + }); + setShowSkipForwardOverlay(true); + if (skipForwardTimeoutRef.current) { + clearTimeout(skipForwardTimeoutRef.current); + } + skipForwardTimeoutRef.current = setTimeout(() => { + setShowSkipForwardOverlay(false); + setSkipAmount(10); + }, 800); + } + }; + + // Shared styles for gesture areas (relative to parent container) const leftSideStyle = { + position: 'absolute' as const, + top: 0, + left: 0, + width: screenDimensions.width * 0.4, + height: '100%' as const, + }; + + const rightSideStyle = { + position: 'absolute' as const, + top: 0, + right: 0, + width: screenDimensions.width * 0.4, + height: '100%' as const, + }; + + // Full gesture area style + const gestureAreaStyle = { position: 'absolute' as const, top: screenDimensions.height * 0.15, left: 0, - width: screenDimensions.width * 0.4, - height: screenDimensions.height * 0.7, - zIndex: 10, - }; - - // Shared style for right side gesture area - const rightSideStyle = { - position: 'absolute' as const, - top: screenDimensions.height * 0.15, - right: 0, - width: screenDimensions.width * 0.4, + width: screenDimensions.width, height: screenDimensions.height * 0.7, zIndex: 10, }; return ( <> - {/* Left side gestures - brightness + tap + long press (flat structure) */} - - - - + {/* Horizontal seek gesture - OUTERMOST wrapper, fails on vertical movement */} - - + ref={horizontalSeekPanRef} + onGestureEvent={(event: any) => { + const { translationX, state } = event.nativeEvent; - - - - - {/* Right side gestures - volume + tap + long press (flat structure) */} - - - - - - - - - - - - - {/* Center area tap handler */} - { - if (showControls) { - const timeoutId = setTimeout(() => { - hideControls(); - }, 0); - if (controlsTimeout.current) { - clearTimeout(controlsTimeout.current); + if (state === State.ACTIVE) { + if (!isHorizontalSeeking && currentTime !== undefined) { + setIsHorizontalSeeking(true); + setSeekStartTime(currentTime); + } + + if (duration && duration > 0) { + const sensitivityFactor = duration > 3600 ? 120 : duration > 1800 ? 90 : 60; + const seekDelta = (translationX / screenDimensions.width) * sensitivityFactor; + const newTime = Math.max(0, Math.min(duration, seekStartTime + seekDelta)); + setSeekPreviewTime(newTime); } - controlsTimeout.current = timeoutId; - } else { - toggleControls(); } }} - shouldCancelWhenOutside={false} + onHandlerStateChange={(event: any) => { + const { state } = event.nativeEvent; + + if (state === State.END || state === State.CANCELLED) { + if (isHorizontalSeeking && seekToTime) { + seekToTime(seekPreviewTime); + } + setIsHorizontalSeeking(false); + } + }} + activeOffsetX={[-30, 30]} + failOffsetY={[-20, 20]} + maxPointers={1} > - - + + {/* Left side gestures */} + + + + + + + + + + + + + + + + + {/* Center area tap handler */} + { + if (showControls) { + const timeoutId = setTimeout(() => { + hideControls(); + }, 0); + if (controlsTimeout.current) { + clearTimeout(controlsTimeout.current); + } + controlsTimeout.current = timeoutId; + } else { + toggleControls(); + } + }} + > + + + + {/* Right side gestures */} + + + + + + + + + + + + + + + + + {/* Volume/Brightness Pill Overlay */} {(gestureControls.showVolumeOverlay || gestureControls.showBrightnessOverlay) && ( @@ -251,6 +366,99 @@ export const GestureControls: React.FC = ({ )} + + {/* Skip Forward Overlay - Right side */} + {showSkipForwardOverlay && ( + + + + + + +{skipAmount}s + + + + )} + + {/* Skip Backward Overlay - Left side */} + {showSkipBackwardOverlay && ( + + + + + + -{skipAmount}s + + + + )} + + {/* Horizontal Seek Preview Overlay */} + {isHorizontalSeeking && formatTime && ( + + + + (currentTime || 0) ? "fast-forward" : "fast-rewind"} + size={24} + color="rgba(255, 255, 255)" + /> + + + {formatTime(seekPreviewTime)} + + (currentTime || 0) ? '#4CAF50' : '#FF5722', + fontSize: 12, + fontWeight: '600', + marginLeft: 4, + }}> + {seekPreviewTime > (currentTime || 0) ? '+' : ''} + {Math.round(seekPreviewTime - (currentTime || 0))}s + + + + )} ); }; diff --git a/src/components/player/components/GestureControls.tsx b/src/components/player/components/GestureControls.tsx index b249e855..973965df 100644 --- a/src/components/player/components/GestureControls.tsx +++ b/src/components/player/components/GestureControls.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import { View, Text, StyleSheet, Animated } from 'react-native'; import { TapGestureHandler, @@ -22,6 +22,12 @@ interface GestureControlsProps { brightness?: number; controlsTimeout: React.MutableRefObject; resizeMode?: string; + // New props for double-tap skip and horizontal seek + skip?: (seconds: number) => void; + currentTime?: number; + duration?: number; + seekToTime?: (seconds: number) => void; + formatTime?: (seconds: number) => string; } export const GestureControls: React.FC = ({ @@ -36,7 +42,12 @@ export const GestureControls: React.FC = ({ volume, brightness = 0.5, controlsTimeout, - resizeMode = 'contain' + resizeMode = 'contain', + skip, + currentTime, + duration, + seekToTime, + formatTime, }) => { const getVolumeIcon = (value: number) => { @@ -52,105 +63,234 @@ export const GestureControls: React.FC = ({ return 'brightness-high'; }; + // Refs for gesture handlers + const leftDoubleTapRef = React.useRef(null); + const rightDoubleTapRef = React.useRef(null); + const horizontalSeekPanRef = React.useRef(null); + const leftVerticalPanRef = React.useRef(null); + const rightVerticalPanRef = React.useRef(null); + + // State for double-tap skip overlays + const [showSkipForwardOverlay, setShowSkipForwardOverlay] = useState(false); + const [showSkipBackwardOverlay, setShowSkipBackwardOverlay] = useState(false); + const [skipAmount, setSkipAmount] = useState(10); + + // State for horizontal seek + const [isHorizontalSeeking, setIsHorizontalSeeking] = useState(false); + const [seekPreviewTime, setSeekPreviewTime] = useState(0); + const [seekStartTime, setSeekStartTime] = useState(0); + + // Refs for overlay timeouts + const skipForwardTimeoutRef = React.useRef(null); + const skipBackwardTimeoutRef = React.useRef(null); + + // Cleanup timeouts on unmount + React.useEffect(() => { + return () => { + if (skipForwardTimeoutRef.current) clearTimeout(skipForwardTimeoutRef.current); + if (skipBackwardTimeoutRef.current) clearTimeout(skipBackwardTimeoutRef.current); + }; + }, []); + + // Double-tap handlers + const handleLeftDoubleTap = () => { + if (skip) { + skip(-10); + setSkipAmount(prev => { + const newAmount = showSkipBackwardOverlay ? prev + 10 : 10; + return newAmount; + }); + setShowSkipBackwardOverlay(true); + if (skipBackwardTimeoutRef.current) { + clearTimeout(skipBackwardTimeoutRef.current); + } + skipBackwardTimeoutRef.current = setTimeout(() => { + setShowSkipBackwardOverlay(false); + setSkipAmount(10); + }, 800); + } + }; + + const handleRightDoubleTap = () => { + if (skip) { + skip(10); + setSkipAmount(prev => { + const newAmount = showSkipForwardOverlay ? prev + 10 : 10; + return newAmount; + }); + setShowSkipForwardOverlay(true); + if (skipForwardTimeoutRef.current) { + clearTimeout(skipForwardTimeoutRef.current); + } + skipForwardTimeoutRef.current = setTimeout(() => { + setShowSkipForwardOverlay(false); + setSkipAmount(10); + }, 800); + } + }; + + // Shared styles for gesture areas (relative to parent container) + const leftSideStyle = { + position: 'absolute' as const, + top: 0, + left: 0, + width: screenDimensions.width * 0.4, + height: '100%' as const, + }; + + const rightSideStyle = { + position: 'absolute' as const, + top: 0, + right: 0, + width: screenDimensions.width * 0.4, + height: '100%' as const, + }; + + // Full gesture area style + const gestureAreaStyle = { + position: 'absolute' as const, + top: screenDimensions.height * 0.15, + left: 0, + width: screenDimensions.width, + height: screenDimensions.height * 0.7, + zIndex: 10, + }; + return ( <> - {/* Left side gesture handler - brightness + tap + long press */} - - - - - - - + {/* Horizontal seek gesture - OUTERMOST wrapper, fails on vertical movement */} + { + const { translationX, state } = event.nativeEvent; - {/* Right side gesture handler - volume + tap + long press */} - - - - - - - - - {/* Center area tap handler */} - { - if (showControls) { - const timeoutId = setTimeout(() => { - hideControls(); - }, 0); - if (controlsTimeout.current) { - clearTimeout(controlsTimeout.current); + if (state === State.ACTIVE) { + if (!isHorizontalSeeking && currentTime !== undefined) { + setIsHorizontalSeeking(true); + setSeekStartTime(currentTime); + } + + if (duration && duration > 0) { + const sensitivityFactor = duration > 3600 ? 120 : duration > 1800 ? 90 : 60; + const seekDelta = (translationX / screenDimensions.width) * sensitivityFactor; + const newTime = Math.max(0, Math.min(duration, seekStartTime + seekDelta)); + setSeekPreviewTime(newTime); } - controlsTimeout.current = timeoutId; - } else { - toggleControls(); } }} - shouldCancelWhenOutside={false} - simultaneousHandlers={[]} - > - - + onHandlerStateChange={(event: any) => { + const { state } = event.nativeEvent; - {/* Volume/Brightness Pill Overlay - Compact top design */} + if (state === State.END || state === State.CANCELLED) { + if (isHorizontalSeeking && seekToTime) { + seekToTime(seekPreviewTime); + } + setIsHorizontalSeeking(false); + } + }} + activeOffsetX={[-30, 30]} + failOffsetY={[-20, 20]} + maxPointers={1} + > + + {/* Left side gestures */} + + + + + + + + + + + + + + + + + {/* Center area tap handler */} + { + if (showControls) { + const timeoutId = setTimeout(() => { + hideControls(); + }, 0); + if (controlsTimeout.current) { + clearTimeout(controlsTimeout.current); + } + controlsTimeout.current = timeoutId; + } else { + toggleControls(); + } + }} + > + + + + {/* Right side gestures */} + + + + + + + + + + + + + + + + + + + {/* Volume/Brightness Pill Overlay */} {(gestureControls.showVolumeOverlay || gestureControls.showBrightnessOverlay) && ( = ({ )} + + {/* Skip Forward Overlay - Right side */} + {showSkipForwardOverlay && ( + + + + + + +{skipAmount}s + + + + )} + + {/* Skip Backward Overlay - Left side */} + {showSkipBackwardOverlay && ( + + + + + + -{skipAmount}s + + + + )} + + {/* Horizontal Seek Preview Overlay */} + {isHorizontalSeeking && formatTime && ( + + + + (currentTime || 0) ? "fast-forward" : "fast-rewind"} + size={18} + color="rgba(255, 255, 255, 0.9)" + /> + + + {formatTime(seekPreviewTime)} + + (currentTime || 0) ? '#4CAF50' : '#FF5722', + fontSize: 12, + fontWeight: '600', + marginLeft: 4, + }}> + {seekPreviewTime > (currentTime || 0) ? '+' : ''} + {Math.round(seekPreviewTime - (currentTime || 0))}s + + + + )} ); }; From fd9cc1ac52568895c408562f35d29b2ff3156402 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 27 Jan 2026 00:26:37 +0530 Subject: [PATCH 57/58] improved gesture handler behaviour --- .../android/components/GestureControls.tsx | 464 ------------------ .../player/components/GestureControls.tsx | 131 ++--- .../player/hooks/usePlayerControls.ts | 16 +- .../player/ios/components/GestureControls.tsx | 358 -------------- 4 files changed, 78 insertions(+), 891 deletions(-) delete mode 100644 src/components/player/android/components/GestureControls.tsx delete mode 100644 src/components/player/ios/components/GestureControls.tsx diff --git a/src/components/player/android/components/GestureControls.tsx b/src/components/player/android/components/GestureControls.tsx deleted file mode 100644 index 3485daf3..00000000 --- a/src/components/player/android/components/GestureControls.tsx +++ /dev/null @@ -1,464 +0,0 @@ -import React, { useState } from 'react'; -import { View, Text, StyleSheet, Animated } from 'react-native'; -import { - TapGestureHandler, - PanGestureHandler, - LongPressGestureHandler, - State -} from 'react-native-gesture-handler'; -import { MaterialIcons } from '@expo/vector-icons'; -import { styles as localStyles } from '../../utils/playerStyles'; - -interface GestureControlsProps { - screenDimensions: { width: number, height: number }; - gestureControls: any; - onLongPressActivated: () => void; - onLongPressEnd: () => void; - onLongPressStateChange: (event: any) => void; - toggleControls: () => void; - showControls: boolean; - hideControls: () => void; - volume: number; - brightness: number; - controlsTimeout: React.MutableRefObject; - resizeMode?: string; - // New props for double-tap skip and horizontal seek - skip?: (seconds: number) => void; - currentTime?: number; - duration?: number; - seekToTime?: (seconds: number) => void; - formatTime?: (seconds: number) => string; -} - -export const GestureControls: React.FC = ({ - screenDimensions, - gestureControls, - onLongPressActivated, - onLongPressEnd, - onLongPressStateChange, - toggleControls, - showControls, - hideControls, - volume, - brightness, - controlsTimeout, - resizeMode = 'contain', - skip, - currentTime, - duration, - seekToTime, - formatTime, -}) => { - - const getVolumeIcon = (value: number) => { - if (value === 0) return 'volume-off'; - if (value < 0.3) return 'volume-mute'; - if (value < 0.6) return 'volume-down'; - return 'volume-up'; - }; - - const getBrightnessIcon = (value: number) => { - if (value < 0.3) return 'brightness-low'; - if (value < 0.7) return 'brightness-medium'; - return 'brightness-high'; - }; - - // Refs for gesture handlers - const leftDoubleTapRef = React.useRef(null); - const rightDoubleTapRef = React.useRef(null); - const horizontalSeekPanRef = React.useRef(null); - const leftVerticalPanRef = React.useRef(null); - const rightVerticalPanRef = React.useRef(null); - - // State for double-tap skip overlays - const [showSkipForwardOverlay, setShowSkipForwardOverlay] = useState(false); - const [showSkipBackwardOverlay, setShowSkipBackwardOverlay] = useState(false); - const [skipAmount, setSkipAmount] = useState(10); - - // State for horizontal seek - const [isHorizontalSeeking, setIsHorizontalSeeking] = useState(false); - const [seekPreviewTime, setSeekPreviewTime] = useState(0); - const [seekStartTime, setSeekStartTime] = useState(0); - - // Refs for overlay timeouts - const skipForwardTimeoutRef = React.useRef(null); - const skipBackwardTimeoutRef = React.useRef(null); - - // Cleanup timeouts on unmount - React.useEffect(() => { - return () => { - if (skipForwardTimeoutRef.current) clearTimeout(skipForwardTimeoutRef.current); - if (skipBackwardTimeoutRef.current) clearTimeout(skipBackwardTimeoutRef.current); - }; - }, []); - - // Double-tap handlers - const handleLeftDoubleTap = () => { - if (skip) { - skip(-10); - setSkipAmount(prev => { - const newAmount = showSkipBackwardOverlay ? prev + 10 : 10; - return newAmount; - }); - setShowSkipBackwardOverlay(true); - if (skipBackwardTimeoutRef.current) { - clearTimeout(skipBackwardTimeoutRef.current); - } - skipBackwardTimeoutRef.current = setTimeout(() => { - setShowSkipBackwardOverlay(false); - setSkipAmount(10); - }, 800); - } - }; - - const handleRightDoubleTap = () => { - if (skip) { - skip(10); - setSkipAmount(prev => { - const newAmount = showSkipForwardOverlay ? prev + 10 : 10; - return newAmount; - }); - setShowSkipForwardOverlay(true); - if (skipForwardTimeoutRef.current) { - clearTimeout(skipForwardTimeoutRef.current); - } - skipForwardTimeoutRef.current = setTimeout(() => { - setShowSkipForwardOverlay(false); - setSkipAmount(10); - }, 800); - } - }; - - // Shared styles for gesture areas (relative to parent container) - const leftSideStyle = { - position: 'absolute' as const, - top: 0, - left: 0, - width: screenDimensions.width * 0.4, - height: '100%' as const, - }; - - const rightSideStyle = { - position: 'absolute' as const, - top: 0, - right: 0, - width: screenDimensions.width * 0.4, - height: '100%' as const, - }; - - // Full gesture area style - const gestureAreaStyle = { - position: 'absolute' as const, - top: screenDimensions.height * 0.15, - left: 0, - width: screenDimensions.width, - height: screenDimensions.height * 0.7, - zIndex: 10, - }; - - return ( - <> - {/* Horizontal seek gesture - OUTERMOST wrapper, fails on vertical movement */} - { - const { translationX, state } = event.nativeEvent; - - if (state === State.ACTIVE) { - if (!isHorizontalSeeking && currentTime !== undefined) { - setIsHorizontalSeeking(true); - setSeekStartTime(currentTime); - } - - if (duration && duration > 0) { - const sensitivityFactor = duration > 3600 ? 120 : duration > 1800 ? 90 : 60; - const seekDelta = (translationX / screenDimensions.width) * sensitivityFactor; - const newTime = Math.max(0, Math.min(duration, seekStartTime + seekDelta)); - setSeekPreviewTime(newTime); - } - } - }} - onHandlerStateChange={(event: any) => { - const { state } = event.nativeEvent; - - if (state === State.END || state === State.CANCELLED) { - if (isHorizontalSeeking && seekToTime) { - seekToTime(seekPreviewTime); - } - setIsHorizontalSeeking(false); - } - }} - activeOffsetX={[-30, 30]} - failOffsetY={[-20, 20]} - maxPointers={1} - > - - {/* Left side gestures */} - - - - - - - - - - - - - - - - - {/* Center area tap handler */} - { - if (showControls) { - const timeoutId = setTimeout(() => { - hideControls(); - }, 0); - if (controlsTimeout.current) { - clearTimeout(controlsTimeout.current); - } - controlsTimeout.current = timeoutId; - } else { - toggleControls(); - } - }} - > - - - - {/* Right side gestures */} - - - - - - - - - - - - - - - - - - - {/* Volume/Brightness Pill Overlay */} - {(gestureControls.showVolumeOverlay || gestureControls.showBrightnessOverlay) && ( - - - - - - - - {gestureControls.showVolumeOverlay && volume === 0 - ? "Muted" - : `${Math.round((gestureControls.showVolumeOverlay ? volume : brightness) * 100)}%` - } - - - - )} - - {/* Aspect Ratio Overlay */} - {gestureControls.showResizeModeOverlay && ( - - - - - - - - {resizeMode.charAt(0).toUpperCase() + resizeMode.slice(1)} - - - - )} - - {/* Skip Forward Overlay - Right side */} - {showSkipForwardOverlay && ( - - - - - - +{skipAmount}s - - - - )} - - {/* Skip Backward Overlay - Left side */} - {showSkipBackwardOverlay && ( - - - - - - -{skipAmount}s - - - - )} - - {/* Horizontal Seek Preview Overlay */} - {isHorizontalSeeking && formatTime && ( - - - - (currentTime || 0) ? "fast-forward" : "fast-rewind"} - size={24} - color="rgba(255, 255, 255)" - /> - - - {formatTime(seekPreviewTime)} - - (currentTime || 0) ? '#4CAF50' : '#FF5722', - fontSize: 12, - fontWeight: '600', - marginLeft: 4, - }}> - {seekPreviewTime > (currentTime || 0) ? '+' : ''} - {Math.round(seekPreviewTime - (currentTime || 0))}s - - - - )} - - ); -}; diff --git a/src/components/player/components/GestureControls.tsx b/src/components/player/components/GestureControls.tsx index 973965df..599a22af 100644 --- a/src/components/player/components/GestureControls.tsx +++ b/src/components/player/components/GestureControls.tsx @@ -92,40 +92,85 @@ export const GestureControls: React.FC = ({ }; }, []); + // Refs for tracking rapid seek state + const seekBaselineTime = React.useRef(null); + const gestureSkipAmount = React.useRef(0); + // Double-tap handlers const handleLeftDoubleTap = () => { - if (skip) { - skip(-10); - setSkipAmount(prev => { - const newAmount = showSkipBackwardOverlay ? prev + 10 : 10; - return newAmount; - }); + if (seekToTime && currentTime !== undefined) { + // If overlay is not visible, this is a new seek sequence + if (!showSkipBackwardOverlay) { + seekBaselineTime.current = currentTime; + gestureSkipAmount.current = 0; + } + + // Increment skip amount + gestureSkipAmount.current += 10; + const currentSkip = gestureSkipAmount.current; + + // Calculate target time based on locked baseline + const baseTime = seekBaselineTime.current !== null ? seekBaselineTime.current : currentTime; + const targetTime = Math.max(0, baseTime - currentSkip); + + // Execute seek + seekToTime(targetTime); + + // Update UI state + setSkipAmount(currentSkip); setShowSkipBackwardOverlay(true); + if (skipBackwardTimeoutRef.current) { clearTimeout(skipBackwardTimeoutRef.current); } skipBackwardTimeoutRef.current = setTimeout(() => { setShowSkipBackwardOverlay(false); setSkipAmount(10); + gestureSkipAmount.current = 0; + seekBaselineTime.current = null; }, 800); + } else if (skip) { + // Fallback if seekToTime not available + skip(-10); } }; const handleRightDoubleTap = () => { - if (skip) { - skip(10); - setSkipAmount(prev => { - const newAmount = showSkipForwardOverlay ? prev + 10 : 10; - return newAmount; - }); + if (seekToTime && currentTime !== undefined) { + // If overlay is not visible, this is a new seek sequence + if (!showSkipForwardOverlay) { + seekBaselineTime.current = currentTime; + gestureSkipAmount.current = 0; + } + + // Increment skip amount + gestureSkipAmount.current += 10; + const currentSkip = gestureSkipAmount.current; + + // Calculate target time based on locked baseline + const baseTime = seekBaselineTime.current !== null ? seekBaselineTime.current : currentTime; + const targetTime = baseTime + currentSkip; + // Note: duration check happens in seekToTime + + // Execute seek + seekToTime(targetTime); + + // Update UI state + setSkipAmount(currentSkip); setShowSkipForwardOverlay(true); + if (skipForwardTimeoutRef.current) { clearTimeout(skipForwardTimeoutRef.current); } skipForwardTimeoutRef.current = setTimeout(() => { setShowSkipForwardOverlay(false); setSkipAmount(10); + gestureSkipAmount.current = 0; + seekBaselineTime.current = null; }, 800); + } else if (skip) { + // Fallback + skip(10); } }; @@ -362,31 +407,12 @@ export const GestureControls: React.FC = ({ {/* Skip Forward Overlay - Right side */} {showSkipForwardOverlay && ( - - - - - + + + + + + +{skipAmount}s @@ -395,31 +421,12 @@ export const GestureControls: React.FC = ({ {/* Skip Backward Overlay - Left side */} {showSkipBackwardOverlay && ( - - - - - + + + + + + -{skipAmount}s diff --git a/src/components/player/hooks/usePlayerControls.ts b/src/components/player/hooks/usePlayerControls.ts index 16a5a180..f2561c08 100644 --- a/src/components/player/hooks/usePlayerControls.ts +++ b/src/components/player/hooks/usePlayerControls.ts @@ -37,30 +37,32 @@ export const usePlayerControls = (config: PlayerControlsConfig) => { setPaused(!paused); }, [paused, setPaused]); + const seekTimeoutRef = useRef(null); + const seekToTime = useCallback((rawSeconds: number) => { const timeInSeconds = Math.max(0, Math.min(rawSeconds, duration > 0 ? duration - END_EPSILON : rawSeconds)); - if (playerRef.current && duration > 0 && !isSeeking.current) { + if (playerRef.current && duration > 0) { if (DEBUG_MODE) logger.log(`[usePlayerControls] Seeking to ${timeInSeconds}`); isSeeking.current = true; - // iOS optimization: pause while seeking for smoother experience - + // Clear existing timeout to keep isSeeking true during rapid seeks + if (seekTimeoutRef.current) { + clearTimeout(seekTimeoutRef.current); + } // Actually perform the seek playerRef.current.seek(timeInSeconds); // Debounce the seeking state reset - setTimeout(() => { + seekTimeoutRef.current = setTimeout(() => { if (isMounted.current && isSeeking.current) { isSeeking.current = false; - // Resume if it was playing (iOS specific) - } }, 500); } - }, [duration, paused, setPaused, playerRef, isSeeking, isMounted]); + }, [duration, paused, playerRef, isSeeking, isMounted]); const skip = useCallback((seconds: number) => { seekToTime(currentTime + seconds); diff --git a/src/components/player/ios/components/GestureControls.tsx b/src/components/player/ios/components/GestureControls.tsx deleted file mode 100644 index 7ffe3af9..00000000 --- a/src/components/player/ios/components/GestureControls.tsx +++ /dev/null @@ -1,358 +0,0 @@ -import React from 'react'; -import { View, Text, Animated } from 'react-native'; -import { - TapGestureHandler, - PanGestureHandler, - LongPressGestureHandler, -} from 'react-native-gesture-handler'; -import { MaterialIcons } from '@expo/vector-icons'; - -interface GestureControlsProps { - screenDimensions: { width: number, height: number }; - gestureControls: any; - onLongPressActivated: () => void; - onLongPressEnd: () => void; - onLongPressStateChange: (event: any) => void; - toggleControls: () => void; - showControls: boolean; - hideControls: () => void; - volume: number; - brightness: number; - controlsTimeout: React.MutableRefObject; -} - -export const GestureControls: React.FC = ({ - screenDimensions, - gestureControls, - onLongPressActivated, - onLongPressEnd, - onLongPressStateChange, - toggleControls, - showControls, - hideControls, - volume, - brightness, - controlsTimeout -}) => { - // Helper to get dimensions (using passed screenDimensions) - const getDimensions = () => screenDimensions; - - // Create refs for all gesture handlers to enable cross-referencing - const leftPanRef = React.useRef(null); - const rightPanRef = React.useRef(null); - const leftTapRef = React.useRef(null); - const rightTapRef = React.useRef(null); - const centerTapRef = React.useRef(null); - const leftLongPressRef = React.useRef(null); - const rightLongPressRef = React.useRef(null); - - // Shared style for left side gesture area - const leftSideStyle = { - position: 'absolute' as const, - top: screenDimensions.height * 0.15, - left: 0, - width: screenDimensions.width * 0.4, - height: screenDimensions.height * 0.7, - zIndex: 10, - }; - - // Shared style for right side gesture area - const rightSideStyle = { - position: 'absolute' as const, - top: screenDimensions.height * 0.15, - right: 0, - width: screenDimensions.width * 0.4, - height: screenDimensions.height * 0.7, - zIndex: 10, - }; - - return ( - <> - {/* Left side gestures - brightness + tap + long press (flat structure) */} - - - - - - - - - - - - - {/* Right side gestures - volume + tap + long press (flat structure) */} - - - - - - - - - - - - - {/* Center area tap handler */} - { - if (showControls) { - const timeoutId = setTimeout(() => { - hideControls(); - }, 0); - if (controlsTimeout.current) { - clearTimeout(controlsTimeout.current); - } - controlsTimeout.current = timeoutId; - } else { - toggleControls(); - } - }} - shouldCancelWhenOutside={false} - > - - - - {/* Volume Overlay */} - {gestureControls.showVolumeOverlay && ( - - - - - {/* Horizontal Dotted Progress Bar */} - - {/* Dotted background */} - - {Array.from({ length: 16 }, (_, i) => ( - - ))} - - - {/* Progress fill */} - - - - - {Math.round(volume)}% - - - - )} - - {/* Brightness Overlay */} - {gestureControls.showBrightnessOverlay && ( - - - - - {/* Horizontal Dotted Progress Bar */} - - {/* Dotted background */} - - {Array.from({ length: 16 }, (_, i) => ( - - ))} - - - {/* Progress fill */} - - - - - {Math.round(brightness * 100)}% - - - - )} - - ); -}; From de576915d554da83578c6092631047b3be299202 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 27 Jan 2026 00:41:53 +0530 Subject: [PATCH 58/58] added buffer indicator --- src/components/player/AndroidVideoPlayer.tsx | 14 ++++++++++-- src/components/player/KSPlayerCore.tsx | 22 +++++++++++++++---- .../player/controls/PlayerControls.tsx | 20 +++++++++++------ src/components/player/utils/playerStyles.ts | 2 +- 4 files changed, 44 insertions(+), 14 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index cd3bbd46..f260021c 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -1,5 +1,5 @@ import React, { useRef, useEffect, useMemo, useCallback, useState } from 'react'; -import { View, StyleSheet, Platform, Animated, ToastAndroid } from 'react-native'; +import { View, StyleSheet, Platform, Animated, ToastAndroid, ActivityIndicator } from 'react-native'; import { toast } from '@backpackapp-io/react-native-toast'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { useNavigation, useRoute, RouteProp } from '@react-navigation/native'; @@ -787,7 +787,9 @@ const AndroidVideoPlayer: React.FC = () => { modals.setErrorDetails(displayError); modals.setShowErrorModal(true); }} - onBuffer={(buf) => playerState.setIsBuffering(buf.isBuffering)} + onBuffer={(buf) => { + playerState.setIsBuffering(buf.isBuffering); + }} onTracksChanged={(data) => { console.log('[AndroidVideoPlayer] onTracksChanged:', data); if (data?.audioTracks) { @@ -879,6 +881,13 @@ const AndroidVideoPlayer: React.FC = () => { formatTime={formatTime} /> + {/* Buffering Indicator (Visible when controls are hidden) */} + {playerState.isBuffering && !playerState.showControls && ( + + + + )} + { playerBackend={useExoPlayer ? 'ExoPlayer' : 'MPV'} onSwitchToMPV={handleManualSwitchToMPV} useExoPlayer={useExoPlayer} + isBuffering={playerState.isBuffering} /> { await traktAutosync.handlePlaybackEnd(duration, duration, 'ended'); }} onError={handleError} - onBuffer={setIsBuffering} + onBuffer={(b) => { + setIsBuffering(b); + }} onReadyForDisplay={() => setIsPlayerReady(true)} - onPlaybackStalled={() => setIsBuffering(true)} - onPlaybackResume={() => setIsBuffering(false)} + onPlaybackStalled={() => { + setIsBuffering(true); + }} + onPlaybackResume={() => { + setIsBuffering(false); + }} screenWidth={screenDimensions.width} screenHeight={screenDimensions.height} customVideoStyles={{ width: '100%', height: '100%' }} @@ -817,6 +823,13 @@ const KSPlayerCore: React.FC = () => { {/* UI Controls */} {isVideoLoaded && ( + {/* Buffering Indicator (Visible when controls are hidden) */} + {isBuffering && !showControls && ( + + + + )} + { isAirPlayActive={isAirPlayActive} allowsAirPlay={allowsAirPlay} onAirPlayPress={() => ksPlayerRef.current?.showAirPlayPicker()} + isBuffering={isBuffering} /> )} diff --git a/src/components/player/controls/PlayerControls.tsx b/src/components/player/controls/PlayerControls.tsx index eb7ad749..9ff3eb08 100644 --- a/src/components/player/controls/PlayerControls.tsx +++ b/src/components/player/controls/PlayerControls.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { View, Text, TouchableOpacity, Animated, StyleSheet, Platform, Dimensions } from 'react-native'; +import { View, Text, TouchableOpacity, Animated, StyleSheet, Platform, Dimensions, ActivityIndicator } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; import Feather from 'react-native-vector-icons/Feather'; import { LinearGradient } from 'expo-linear-gradient'; @@ -54,6 +54,7 @@ interface PlayerControlsProps { // MPV Switch (Android only) onSwitchToMPV?: () => void; useExoPlayer?: boolean; + isBuffering?: boolean; } export const PlayerControls: React.FC = ({ @@ -98,6 +99,7 @@ export const PlayerControls: React.FC = ({ onAirPlayPress, onSwitchToMPV, useExoPlayer, + isBuffering = false, }) => { const { currentTheme } = useTheme(); const { t } = useTranslation(); @@ -463,7 +465,7 @@ export const PlayerControls: React.FC = ({ = ({ transform: [{ scale: playIconScale }], opacity: playIconOpacity }}> - + {isBuffering ? ( + + ) : ( + + )} diff --git a/src/components/player/utils/playerStyles.ts b/src/components/player/utils/playerStyles.ts index a4418e84..35dd6f7c 100644 --- a/src/components/player/utils/playerStyles.ts +++ b/src/components/player/utils/playerStyles.ts @@ -23,7 +23,7 @@ const qualityPadH = isTV ? 10 : isLargeTablet ? 9 : isTablet ? 8 : 8; const qualityPadV = isTV ? 4 : isLargeTablet ? 3 : isTablet ? 3 : 2; const qualityRadius = isTV ? 6 : isLargeTablet ? 5 : isTablet ? 4 : 4; const qualityTextFont = isTV ? 13 : isLargeTablet ? 12 : isTablet ? 11 : 11; -const controlsGap = isTV ? 56 : isLargeTablet ? 48 : isTablet ? 44 : 40; +const controlsGap = isTV ? 140 : isLargeTablet ? 110 : isTablet ? 90 : 70; const controlsTranslateY = isTV ? -48 : isLargeTablet ? -42 : isTablet ? -36 : -30; const skipTextFont = isTV ? 14 : isLargeTablet ? 13 : isTablet ? 12 : 12; const sliderBottom = isTV ? 60 : isLargeTablet ? 50 : isTablet ? 45 : 35;