From c2969d8c28467867166c0d84ff6bf2d00df126b2 Mon Sep 17 00:00:00 2001 From: Cutiful <113351087+Syaroful@users.noreply.github.com> Date: Sat, 12 Jul 2025 10:15:45 +0700 Subject: [PATCH] refactor: merge ClusterNetwotkModule into NetworkModule --- agrilinkvocpro/gradle/libs.versions.toml | 18 +- .../core/component/DiseaseDetectionBanner.kt | 53 + .../core/component/Loader.kt | 14 + .../core/extention/DiagnosisResult.kt | 8 + .../data/model/ErrorResponse.kt | 6 + .../repository/PlantDiagnosisRepository.kt | 4 +- .../PlantDiagnosisRepositoryImpl.kt | 57 +- .../presentation/detail/DetailScreen.kt | 11 +- .../detail/PlantDiagnosisViewModel.kt | 16 +- .../presentation/history/HistoryScreen.kt | 34 +- .../src/main/res/raw/loading.json | 5629 +++++++++++++++++ 11 files changed, 5771 insertions(+), 79 deletions(-) create mode 100644 agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/DiseaseDetectionBanner.kt create mode 100644 agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/Loader.kt create mode 100644 agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/extention/DiagnosisResult.kt create mode 100644 agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/model/ErrorResponse.kt create mode 100644 agrilinkvocpro/plant_disease_detection_feature/src/main/res/raw/loading.json diff --git a/agrilinkvocpro/gradle/libs.versions.toml b/agrilinkvocpro/gradle/libs.versions.toml index 2d8b542..a052b51 100644 --- a/agrilinkvocpro/gradle/libs.versions.toml +++ b/agrilinkvocpro/gradle/libs.versions.toml @@ -6,9 +6,6 @@ converterGson = "2.9.0" datastorePreferences = "1.1.7" featureDelivery = "2.1.0" firebaseBom = "33.13.0" -hiltAndroid = "2.56.2" -hiltAndroidCompiler = "2.56.2" -hiltNavigationCompose = "1.2.0" javaJwt = "4.4.0" koinAndroid = "3.5.3" koinAndroidxCompose = "3.5.3" @@ -17,17 +14,13 @@ coreKtx = "1.16.0" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" -kotlinxSerializationJson = "1.6.3" kotlinxSerializationJsonVersion = "1.6.0" -ktorClientCio = "2.3.3" -ktorClientContentNegotiation = "2.3.3" -ktorClientCore = "2.3.3" -ktorSerializationKotlinxJson = "2.3.3" lifecycleRuntimeKtx = "2.9.0" activityCompose = "1.10.1" composeBom = "2025.05.00" lifecycleViewmodelCompose = "2.9.0" loggingInterceptor = "4.11.0" +lottieCompose = "6.6.6" navigationCompose = "2.9.0" okhttp = "4.12.0" retrofit = "2.9.0" @@ -35,7 +28,6 @@ retrofit2KotlinxSerializationConverter = "0.8.0" roomRuntime = "2.7.1" runtime = "1.8.2" runtimeAndroid = "1.8.1" -ycharts = "2.1.0" [libraries] accompanist-placeholder-material = { module = "com.google.accompanist:accompanist-placeholder-material", version.ref = "accompanistSwiperefresh" } @@ -46,7 +38,6 @@ androidx-camera-lifecycle = { module = "androidx.camera:camera-lifecycle", versi androidx-camera-view = { module = "androidx.camera:camera-view", version.ref = "cameraCore" } androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" } -androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigationCompose" } androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycleViewmodelCompose" } androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationCompose" } androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomRuntime" } @@ -75,17 +66,12 @@ androidx-material3 = { group = "androidx.compose.material3", name = "material3" androidx-runtime-android = { group = "androidx.compose.runtime", name = "runtime-android", version.ref = "runtimeAndroid" } koin-android = { module = "io.insert-koin:koin-android", version.ref = "koinAndroid" } koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koinAndroidxCompose" } -kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } kotlinx-serialization-json-v160 = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJsonVersion" } -ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktorClientCio" } -ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktorClientContentNegotiation" } -ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktorClientCore" } -ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktorSerializationKotlinxJson" } logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "loggingInterceptor" } +lottie-compose = { module = "com.airbnb.android:lottie-compose", version.ref = "lottieCompose" } okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } retrofit2-kotlinx-serialization-converter = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofit2KotlinxSerializationConverter" } -ycharts = { module = "co.yml:ycharts", version.ref = "ycharts" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/DiseaseDetectionBanner.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/DiseaseDetectionBanner.kt new file mode 100644 index 0000000..687e4c5 --- /dev/null +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/DiseaseDetectionBanner.kt @@ -0,0 +1,53 @@ +package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.component + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.R +import com.syaroful.agrilinkvocpro.presentation.theme.MainGreen + +@Composable +fun DiseaseDetectionBanner() { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = MainGreen, shape = RoundedCornerShape(8.dp)) + .padding(horizontal = 16.dp, vertical = 8.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Column(modifier = Modifier.fillMaxWidth(0.6f)) { + Text( + "Lindungi Tanamanmu dari Hama dan Penyakit", + style = MaterialTheme.typography.titleMedium.copy(color = Color.White) + ) + Text( + "Deteksi, lihat hasil dan lakukan perawatan", + style = MaterialTheme.typography.bodySmall.copy(Color.White.copy(alpha = 0.5f)) + ) + } + Image( + modifier = Modifier.fillMaxWidth(0.8f), + painter = painterResource(id = R.drawable.plant_in_pot), + contentDescription = "Plant Image", + ) + } + } +} \ No newline at end of file diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/Loader.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/Loader.kt new file mode 100644 index 0000000..769537d --- /dev/null +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/component/Loader.kt @@ -0,0 +1,14 @@ +package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.component + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import com.airbnb.lottie.compose.LottieAnimation +import com.airbnb.lottie.compose.LottieCompositionSpec +import com.airbnb.lottie.compose.rememberLottieComposition +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.R + +@Composable +fun Loader() { + val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.loading)) + LottieAnimation(composition) +} \ No newline at end of file diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/extention/DiagnosisResult.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/extention/DiagnosisResult.kt new file mode 100644 index 0000000..b1a384e --- /dev/null +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/core/extention/DiagnosisResult.kt @@ -0,0 +1,8 @@ +package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention + +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model.PlantDiseaseDetectionResponse + +sealed class DiagnosisResult { + data class Success(val data: PlantDiseaseDetectionResponse) : DiagnosisResult() + data class Error(val errorMessage: String) : DiagnosisResult() +} \ No newline at end of file diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/model/ErrorResponse.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/model/ErrorResponse.kt new file mode 100644 index 0000000..15f5a25 --- /dev/null +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/model/ErrorResponse.kt @@ -0,0 +1,6 @@ +package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model + +@kotlinx.serialization.Serializable +data class ErrorResponse( + val error: String? = null +) diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepository.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepository.kt index c4fca01..02ccf7b 100644 --- a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepository.kt +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepository.kt @@ -1,7 +1,7 @@ package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.repository -import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model.PlantDiseaseDetectionResponse +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.DiagnosisResult interface PlantDiagnosisRepository { - suspend fun detectDisease(base64Image: String, prompt: String): PlantDiseaseDetectionResponse + suspend fun detectDisease(base64Image: String, prompt: String): DiagnosisResult } \ No newline at end of file diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepositoryImpl.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepositoryImpl.kt index 64faea5..737af9a 100644 --- a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepositoryImpl.kt +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/data/repository/PlantDiagnosisRepositoryImpl.kt @@ -1,6 +1,7 @@ package com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.repository -import android.util.Log +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.DiagnosisResult +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model.ErrorResponse import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model.GeminiContent import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model.GeminiPart import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.model.GeminiRequest @@ -10,32 +11,44 @@ import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.network. import kotlinx.serialization.json.Json class PlantDiagnosisRepositoryImpl(private val api: GeminiApiService) : PlantDiagnosisRepository { + private val json = Json { ignoreUnknownKeys = true } override suspend fun detectDisease( base64Image: String, prompt: String - ): PlantDiseaseDetectionResponse { - val request = GeminiRequest( - contents = listOf( - GeminiContent( - parts = listOf( - GeminiPart(text = prompt), - GeminiPart(inline_data = InlineData("image/jpeg", base64Image)) + ): DiagnosisResult { + return try { + val request = GeminiRequest( + contents = listOf( + GeminiContent( + parts = listOf( + GeminiPart(text = prompt), + GeminiPart(inline_data = InlineData("image/jpeg", base64Image)) + ) ) ) ) - ) + val response = api.detectDisease( + apiKey = "AIzaSyDYZHlMfOdFAcTFptWHqhPwIO734VdNUWE", + request = request + ) - val response = api.detectDisease( - apiKey = "AIzaSyDYZHlMfOdFAcTFptWHqhPwIO734VdNUWE", // Ideally use BuildConfig or secure storage - request = request - ) - Log.d("PlantDiagnosisRepository", "Response: $response") - - val rawJson = response.candidates.first().content.parts.first().text - val cleanedJson = rawJson - .replace("```json", "") - .replace("```", "") - .trim() - return Json.decodeFromString(cleanedJson) + val rawJson = response.candidates.first().content.parts.first().text + val cleanedJson = rawJson + .replace("```json", "") + .replace("```", "") + .trim() + try { + val parsedSuccess = + json.decodeFromString(cleanedJson) + DiagnosisResult.Success(parsedSuccess) + } catch (e: Exception) { + val parsedError = json.decodeFromString(cleanedJson) + DiagnosisResult.Error(parsedError.error.toString()) + } + } catch (e: Exception) { + DiagnosisResult.Error("Terjadi kesalahan: ${e.localizedMessage ?: "tidak diketahui"}") + } } -} \ No newline at end of file +} + + diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/DetailScreen.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/DetailScreen.kt index ccca72a..b6200c8 100644 --- a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/DetailScreen.kt +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/DetailScreen.kt @@ -17,7 +17,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.Card -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon @@ -42,8 +41,8 @@ import com.syaroful.agrilinkvocpro.R import com.syaroful.agrilinkvocpro.core.components.AppButton import com.syaroful.agrilinkvocpro.core.components.DefaultErrorComponent import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.AppConstant +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.component.Loader import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.presentation.camera.CameraViewModel -import com.syaroful.agrilinkvocpro.presentation.theme.MainGreen import org.koin.androidx.compose.koinViewModel @OptIn(ExperimentalMaterial3Api::class) @@ -119,7 +118,7 @@ fun DetailScreen( Box( modifier = Modifier.align(Alignment.CenterHorizontally) ) { - CircularProgressIndicator(color = MainGreen) + Loader() } } @@ -221,7 +220,11 @@ fun DetailScreen( } Spacer(modifier = Modifier.height(56.dp)) } else { - Text("Gagal parsing response") + DefaultErrorComponent( + painter = painterResource(id = R.drawable.mascot_surprised), + label = "Keknya bukan gambar daun", + message = "Gambar tidak menunjukkan daun tanaman, mohon unggah gambar daun yang jelas" + ) } } } diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/PlantDiagnosisViewModel.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/PlantDiagnosisViewModel.kt index bc002cb..b20f79e 100644 --- a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/PlantDiagnosisViewModel.kt +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/detail/PlantDiagnosisViewModel.kt @@ -4,6 +4,7 @@ import android.graphics.Bitmap import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.DiagnosisResult import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.toBase64 import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.toByteArray import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.local.entity.PlantDiagnosisEntity @@ -30,9 +31,18 @@ class PlantDiagnosisViewModel( viewModelScope.launch { try { val base64 = bitmap.toBase64() - val result = repository.detectDisease(prompt = prompt, base64Image = base64) - _state.value = Result.success(result) - Log.d("PlantDiagnosisViewModel", "Diagnosis result: $result") + when (val result = + repository.detectDisease(prompt = prompt, base64Image = base64)) { + is DiagnosisResult.Success -> { + _state.value = Result.success(result.data) + Log.d("PlantDiagnosisViewModel", "Diagnosis result: ${result.data}") + } + + is DiagnosisResult.Error -> { + _state.value = Result.failure(Exception(result.errorMessage)) + Log.e("PlantDiagnosisViewModel", "Diagnosis error: ${result.errorMessage}") + } + } } catch (e: Exception) { _state.value = Result.failure(e) Log.e("PlantDiagnosisViewModel", "Error during diagnosis", e) diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/history/HistoryScreen.kt b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/history/HistoryScreen.kt index ae3fee6..9adc4c7 100644 --- a/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/history/HistoryScreen.kt +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/java/com/syaroful/agrilinkvocpro/plant_disease_detection_feature/presentation/history/HistoryScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color @@ -40,6 +39,7 @@ import androidx.compose.ui.unit.dp import androidx.navigation.NavHostController import com.syaroful.agrilinkvocpro.R import com.syaroful.agrilinkvocpro.core.components.DefaultErrorComponent +import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.component.DiseaseDetectionBanner import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.toBitmap import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.core.extention.toFormattedDate import com.syaroful.agrilinkvocpro.plant_disease_detection_feature.data.local.entity.PlantDiagnosisEntity @@ -185,34 +185,4 @@ private fun DiagnosisListItem( } } -@Composable -private fun DiseaseDetectionBanner() { - Box( - modifier = Modifier - .fillMaxWidth() - .background(color = MainGreen, shape = RoundedCornerShape(8.dp)) - .padding(horizontal = 16.dp, vertical = 8.dp) - ) { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically - ) { - Column(modifier = Modifier.fillMaxWidth(0.6f)) { - Text( - "Lindungi Tanamanmu dari Hama dan Penyakit", - style = MaterialTheme.typography.titleMedium.copy(color = Color.White) - ) - Text( - "Deteksi, lihat hasil dan lakukan perawatan", - style = MaterialTheme.typography.bodySmall.copy(Color.White.copy(alpha = 0.5f)) - ) - } - Image( - modifier = Modifier.fillMaxWidth(0.8f), - painter = painterResource(id = R.drawable.plant_in_pot), - contentDescription = "Plant Image", - ) - } - } -} + diff --git a/agrilinkvocpro/plant_disease_detection_feature/src/main/res/raw/loading.json b/agrilinkvocpro/plant_disease_detection_feature/src/main/res/raw/loading.json new file mode 100644 index 0000000..5e8dd31 --- /dev/null +++ b/agrilinkvocpro/plant_disease_detection_feature/src/main/res/raw/loading.json @@ -0,0 +1,5629 @@ +{ + "v": "5.7.4", + "fr": 29.9700012207031, + "ip": 0, + "op": 94.0000038286985, + "w": 1920, + "h": 2832, + "nm": "Pre-comp 2", + "ddd": 0, + "assets": [ + { + "id": "comp_0", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 8", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 49, + "s": [ + 7.892 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 53, + "s": [ + 21.892 + ] + }, + { + "t": 57.0000023216576, + "s": [ + 7.892 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 1040, + 1660, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -38.585, + 243.479, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + -100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -20, + -120 + ], + [ + -56, + 6 + ], + [ + -22, + 42 + ], + [ + 30, + 16 + ], + [ + -6, + 52 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 26.961, + 161.769 + ], + [ + 12, + -56 + ], + [ + 22, + -42 + ], + [ + -30, + -16 + ], + [ + 6, + -52 + ] + ], + "v": [ + [ + -84, + -86 + ], + [ + -180, + 92 + ], + [ + 12, + 262 + ], + [ + -4, + 140 + ], + [ + -18, + 38 + ], + [ + -34, + -52 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.101, + 0.737, + 0.208, + 0.364, + 0.178, + 0.845, + 0.29, + 1, + 0.254, + 0.953, + 0.372 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -44, + 218 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + -106, + -32 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 6", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 1100, + 1636, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -106, + 220, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + -100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -20, + -120 + ], + [ + -56, + 6 + ], + [ + -22, + 42 + ], + [ + 30, + 16 + ], + [ + -6, + 52 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 26.961, + 161.769 + ], + [ + 12, + -56 + ], + [ + 22, + -42 + ], + [ + -30, + -16 + ], + [ + 6, + -52 + ] + ], + "v": [ + [ + -84, + -86 + ], + [ + -180, + 92 + ], + [ + 12, + 262 + ], + [ + -4, + 140 + ], + [ + -18, + 38 + ], + [ + -34, + -52 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.178392911425, + 0.78431372549, + 0.280228349274, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 7", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 49, + "s": [ + -9.199 + ] + }, + { + "i": { + "x": [ + 0.833 + ], + "y": [ + 0.833 + ] + }, + "o": { + "x": [ + 0.167 + ], + "y": [ + 0.167 + ] + }, + "t": 53, + "s": [ + -24.199 + ] + }, + { + "t": 57.0000023216576, + "s": [ + -9.199 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 914, + 1656, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -50.025, + 237.17, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -20, + -120 + ], + [ + -56, + 6 + ], + [ + -22, + 42 + ], + [ + 30, + 16 + ], + [ + -6, + 52 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 26.961, + 161.769 + ], + [ + 12, + -56 + ], + [ + 22, + -42 + ], + [ + -30, + -16 + ], + [ + 6, + -52 + ] + ], + "v": [ + [ + -84, + -86 + ], + [ + -180, + 92 + ], + [ + 12, + 262 + ], + [ + -4, + 140 + ], + [ + -18, + 38 + ], + [ + -34, + -52 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.101, + 0.737, + 0.208, + 0.364, + 0.178, + 0.845, + 0.29, + 1, + 0.254, + 0.953, + 0.372 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -44, + 218 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + -106, + -32 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 5", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 854, + 1636, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -106, + 220, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + -20, + -120 + ], + [ + -56, + 6 + ], + [ + -22, + 42 + ], + [ + 30, + 16 + ], + [ + -6, + 52 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 26.961, + 161.769 + ], + [ + 12, + -56 + ], + [ + 22, + -42 + ], + [ + -30, + -16 + ], + [ + 6, + -52 + ] + ], + "v": [ + [ + -84, + -86 + ], + [ + -180, + 92 + ], + [ + 12, + 262 + ], + [ + -4, + 140 + ], + [ + -18, + 38 + ], + [ + -34, + -52 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.178392911425, + 0.78431372549, + 0.280228349274, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 960, + 1416, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 368, + 368 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 5, + "k": { + "a": 0, + "k": [ + 0, + 0.311, + 0.98, + 0.422, + 0.296, + 0.464, + 0.99, + 0.55, + 0.493, + 0.616, + 1, + 0.679, + 0.739, + 0.463, + 0.99, + 0.551, + 1, + 0.31, + 0.98, + 0.424 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -60, + -6 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + 54, + -4 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 10, + 80 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 150.000006109625, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_1", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 19, + "s": [ + -8 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 23, + "s": [ + -24 + ] + }, + { + "t": 27.0000010997325, + "s": [ + -8 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 557.91, + 276.096, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 57.466, + -269.667, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + -65, + 65, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 14, + 11.75 + ], + [ + -23, + -5.75 + ] + ], + "o": [ + [ + 11, + 11.75 + ], + [ + -13.25, + -6.25 + ] + ], + "v": [ + [ + 43.75, + -295.456 + ], + [ + 92, + -265.956 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 70.056, + -286.383 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 70.056, + -286.383 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": -82.818, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 2", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 23, + -21 + ], + [ + 4, + -24 + ], + [ + -1, + 8.25 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -14.109, + 12.882 + ], + [ + 110, + 4 + ], + [ + 1, + -8.25 + ] + ], + "v": [ + [ + 165, + -400 + ], + [ + 84, + -339 + ], + [ + 42, + -255 + ], + [ + 165, + -351 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.169, + 0.494, + 0.408, + 0.516, + 0.169, + 0.612, + 0.408, + 1, + 0.169, + 0.729, + 0.408 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + 108, + -326 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + 36, + -244 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 2, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 900.000036657751, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 3", + "parent": 3, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + -142, + 1, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 1, + -0.5 + ], + [ + 22.75, + -13.25 + ] + ], + "o": [ + [ + -16.75, + 34 + ], + [ + 53.75, + -20.75 + ] + ], + "v": [ + [ + 249, + -316.5 + ], + [ + 186.75, + -258.25 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 900.000036657751, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 19, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 23, + "s": [ + 15 + ] + }, + { + "t": 27.0000010997325, + "s": [ + 0 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 591, + 281, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 50, + -261, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 23, + -21 + ], + [ + 4, + -24 + ], + [ + -1, + 8.25 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -14.109, + 12.882 + ], + [ + 110, + 4 + ], + [ + 1, + -8.25 + ] + ], + "v": [ + [ + 165, + -400 + ], + [ + 84, + -339 + ], + [ + 42, + -255 + ], + [ + 165, + -351 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.169, + 0.494, + 0.408, + 0.516, + 0.169, + 0.612, + 0.408, + 1, + 0.169, + 0.729, + 0.408 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + 108, + -326 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + 36, + -244 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 900.000036657751, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "Shape Layer 1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 562, + 762, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 202, + 484, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 512, + 512 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.996, + 0.749, + 0.016, + 0.364, + 0.98, + 0.635, + 0.069, + 1, + 0.965, + 0.522, + 0.122 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -108, + -144 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + 124, + 140 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 212, + 266 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 900.000036657751, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_2", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 4", + "parent": 2, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 1, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 76.678, + -286.656, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 217.909, + -287.377, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 1, + -0.5 + ], + [ + 22.75, + -13.25 + ] + ], + "o": [ + [ + -16.75, + 34 + ], + [ + 53.75, + -20.75 + ] + ], + "v": [ + [ + 249, + -316.5 + ], + [ + 186.75, + -258.25 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 1, + 1, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 900.000036657751, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 19, + "s": [ + -11 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 23, + "s": [ + 25 + ] + }, + { + "t": 27.0000010997325, + "s": [ + -11 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 1529, + 1001, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 50, + -261, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 23, + -21 + ], + [ + 4, + -24 + ], + [ + -1, + 8.25 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -14.109, + 12.882 + ], + [ + 110, + 4 + ], + [ + 1, + -8.25 + ] + ], + "v": [ + [ + 165, + -400 + ], + [ + 84, + -339 + ], + [ + 42, + -255 + ], + [ + 165, + -351 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.169, + 0.494, + 0.408, + 0.516, + 0.169, + 0.612, + 0.408, + 1, + 0.169, + 0.729, + 0.408 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + 108, + -326 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + 36, + -244 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 900.000036657751, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "Shape Layer 3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 1517.581, + 1201.276, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 557.581, + 269.276, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 81.437, + 81.437, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 96, + -56 + ], + [ + -116, + -316 + ], + [ + 0, + 0 + ], + [ + -82, + 292 + ] + ], + "o": [ + [ + -78, + -56 + ], + [ + 97.205, + 264.8 + ], + [ + 0, + 0 + ], + [ + 88.58, + -315.432 + ] + ], + "v": [ + [ + 39.07, + -124 + ], + [ + -216, + 128 + ], + [ + 38.456, + 304 + ], + [ + 315.926, + 108.912 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.996, + 0.367, + 0.397, + 0.364, + 0.833, + 0.184, + 0.23, + 1, + 0.671, + 0, + 0.063 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -240.765, + -136.765 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + 227.147, + 243.5 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 528, + 188 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 155.000006313279, + "st": 0, + "bm": 0 + } + ] + } + ], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.037 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 64, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.24 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.482 + ], + "y": [ + 0 + ] + }, + "t": 69, + "s": [ + -26 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.716 + ], + "y": [ + 0 + ] + }, + "t": 88, + "s": [ + 3 + ] + }, + { + "t": 92.0000037472368, + "s": [ + 0 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 730.613, + 1626.282, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -228, + 218, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 3, + 157.5 + ], + [ + -50, + -112 + ], + [ + -153, + 34 + ], + [ + -44, + 43 + ], + [ + 8, + 15 + ], + [ + 11, + -7 + ], + [ + 31, + -6 + ], + [ + 27, + 17 + ], + [ + 0, + 0 + ], + [ + -4.5, + 30 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + -2.5, + 1.5 + ], + [ + 50, + 112 + ], + [ + 46, + -13 + ], + [ + 44, + -43 + ], + [ + -8, + -15 + ], + [ + -11, + 7 + ], + [ + -31, + 6 + ], + [ + -2, + -2 + ], + [ + 0, + 0 + ], + [ + 4.5, + -30 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -259, + -7 + ], + [ + -255, + 213 + ], + [ + 52.5, + 395 + ], + [ + 185, + 300 + ], + [ + 226, + 235 + ], + [ + 181, + 247 + ], + [ + 64, + 308 + ], + [ + -32, + 289 + ], + [ + 9, + 289 + ], + [ + 42, + 256.5 + ], + [ + 11, + 217.5 + ], + [ + -181, + 217.5 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.169, + 0.494, + 0.408, + 0.364, + 0.169, + 0.612, + 0.408, + 1, + 0.169, + 0.729, + 0.408 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -24, + 276 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + -84, + 390 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 64.0000026067734, + "op": 94.0000038286985, + "st": 64.0000026067734, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.037 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 32, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.24 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.482 + ], + "y": [ + 0 + ] + }, + "t": 37, + "s": [ + -26 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.716 + ], + "y": [ + 0 + ] + }, + "t": 56, + "s": [ + 3 + ] + }, + { + "t": 60.0000024438501, + "s": [ + 0 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 730.613, + 1626.282, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -228, + 218, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 3, + 157.5 + ], + [ + -50, + -112 + ], + [ + -153, + 34 + ], + [ + -44, + 43 + ], + [ + 8, + 15 + ], + [ + 11, + -7 + ], + [ + 31, + -6 + ], + [ + 27, + 17 + ], + [ + 0, + 0 + ], + [ + -4.5, + 30 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + -2.5, + 1.5 + ], + [ + 50, + 112 + ], + [ + 46, + -13 + ], + [ + 44, + -43 + ], + [ + -8, + -15 + ], + [ + -11, + 7 + ], + [ + -31, + 6 + ], + [ + -2, + -2 + ], + [ + 0, + 0 + ], + [ + 4.5, + -30 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -259, + -7 + ], + [ + -255, + 213 + ], + [ + 52.5, + 395 + ], + [ + 185, + 300 + ], + [ + 226, + 235 + ], + [ + 181, + 247 + ], + [ + 64, + 308 + ], + [ + -32, + 289 + ], + [ + 9, + 289 + ], + [ + 42, + 256.5 + ], + [ + 11, + 217.5 + ], + [ + -181, + 217.5 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.169, + 0.494, + 0.408, + 0.364, + 0.169, + 0.612, + 0.408, + 1, + 0.169, + 0.729, + 0.408 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -24, + 276 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + -84, + 390 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 32.0000013033867, + "op": 64.0000026067734, + "st": 32.0000013033867, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 0, + "nm": "Pre-comp 3", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.274 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 64, + "s": [ + 0 + ] + }, + { + "t": 82.0000033399285, + "s": [ + 360 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.152, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 65, + "s": [ + 946, + 1416, + 0 + ], + "to": [ + 0, + -135, + 0 + ], + "ti": [ + 0, + -10.667, + 0 + ] + }, + { + "i": { + "x": 0.174, + "y": 1 + }, + "o": { + "x": 0.835, + "y": 0 + }, + "t": 71, + "s": [ + 946, + 606, + 0 + ], + "to": [ + 0, + 10.667, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.791, + "y": 0 + }, + "t": 85, + "s": [ + 946, + 1480, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 89.0000036250443, + "s": [ + 946, + 1416, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 973.55, + 1513.55, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 110, + 110, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1920, + "h": 2832, + "ip": 65.0000026475043, + "op": 77.0000031362743, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 0, + "nm": "Pre-comp 3", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.93, + "y": 0 + }, + "t": 44, + "s": [ + 986, + 940, + 0 + ], + "to": [ + 0, + 110, + 0 + ], + "ti": [ + 0, + -86, + 0 + ] + }, + { + "i": { + "x": 0.582, + "y": 0.749 + }, + "o": { + "x": 0.18, + "y": 0 + }, + "t": 48, + "s": [ + 986, + 1600, + 0 + ], + "to": [ + 0, + 48.778, + 0 + ], + "ti": [ + 0, + 12.712, + 0 + ] + }, + { + "i": { + "x": 0.702, + "y": 1 + }, + "o": { + "x": 0.347, + "y": 0.153 + }, + "t": 55, + "s": [ + 986, + 1667.657, + 0 + ], + "to": [ + 0, + -9.7, + 0 + ], + "ti": [ + 0, + -0.577, + 0 + ] + }, + { + "t": 62.0000025253118, + "s": [ + 986, + 1568, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 973.55, + 1622.641, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 44, + "s": [ + 110, + 110, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 48, + "s": [ + 110, + 110, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 55, + "s": [ + 110, + 92.4, + 100 + ] + }, + { + "t": 62.0000025253118, + "s": [ + 110, + 110, + 100 + ] + } + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1920, + "h": 2832, + "ip": 46.0000018736184, + "op": 65.0000026475043, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Shape Layer 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.037 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 0, + "s": [ + 0 + ] + }, + { + "i": { + "x": [ + 0.24 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.482 + ], + "y": [ + 0 + ] + }, + "t": 5, + "s": [ + -26 + ] + }, + { + "i": { + "x": [ + 0.667 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.716 + ], + "y": [ + 0 + ] + }, + "t": 24, + "s": [ + 3 + ] + }, + { + "t": 28.0000011404634, + "s": [ + 0 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 730.613, + 1626.282, + 0 + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + -228, + 218, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 3, + 157.5 + ], + [ + -50, + -112 + ], + [ + -153, + 34 + ], + [ + -44, + 43 + ], + [ + 8, + 15 + ], + [ + 11, + -7 + ], + [ + 31, + -6 + ], + [ + 27, + 17 + ], + [ + 0, + 0 + ], + [ + -4.5, + 30 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + -2.5, + 1.5 + ], + [ + 50, + 112 + ], + [ + 46, + -13 + ], + [ + 44, + -43 + ], + [ + -8, + -15 + ], + [ + -11, + 7 + ], + [ + -31, + 6 + ], + [ + -2, + -2 + ], + [ + 0, + 0 + ], + [ + 4.5, + -30 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -259, + -7 + ], + [ + -255, + 213 + ], + [ + 52.5, + 395 + ], + [ + 185, + 300 + ], + [ + 226, + 235 + ], + [ + 181, + 247 + ], + [ + 64, + 308 + ], + [ + -32, + 289 + ], + [ + 9, + 289 + ], + [ + 42, + 256.5 + ], + [ + 11, + 217.5 + ], + [ + -181, + 217.5 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "gf", + "o": { + "a": 0, + "k": 100, + "ix": 10 + }, + "r": 1, + "bm": 0, + "g": { + "p": 3, + "k": { + "a": 0, + "k": [ + 0, + 0.169, + 0.494, + 0.408, + 0.364, + 0.169, + 0.612, + 0.408, + 1, + 0.169, + 0.729, + 0.408 + ], + "ix": 9 + } + }, + "s": { + "a": 0, + "k": [ + -24, + 276 + ], + "ix": 5 + }, + "e": { + "a": 0, + "k": [ + -84, + 390 + ], + "ix": 6 + }, + "t": 1, + "nm": "Gradient Fill 1", + "mn": "ADBE Vector Graphic - G-Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 32.0000013033867, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 0, + "nm": "Pre-comp 1", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.274 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 64, + "s": [ + 0 + ] + }, + { + "t": 82.0000033399285, + "s": [ + 360 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.152, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 65, + "s": [ + 994, + 1416, + 0 + ], + "to": [ + 0, + -116.333, + 0 + ], + "ti": [ + 0, + -10.667, + 0 + ] + }, + { + "i": { + "x": 0.174, + "y": 1 + }, + "o": { + "x": 0.835, + "y": 0 + }, + "t": 71, + "s": [ + 994, + 718, + 0 + ], + "to": [ + 0, + 10.667, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.791, + "y": 0 + }, + "t": 85, + "s": [ + 994, + 1480, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 89.0000036250443, + "s": [ + 994, + 1416, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 574, + 540, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1080, + "h": 1080, + "ip": 77.0000031362743, + "op": 79.000003217736, + "st": 64.0000026067734, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 0, + "nm": "Pre-comp 1", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.274 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 0, + "s": [ + 0 + ] + }, + { + "t": 18.000000733155, + "s": [ + 360 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.152, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 1, + "s": [ + 994, + 1416, + 0 + ], + "to": [ + 0, + -133.667, + 0 + ], + "ti": [ + 0, + -10.667, + 0 + ] + }, + { + "i": { + "x": 0.174, + "y": 1 + }, + "o": { + "x": 0.835, + "y": 0 + }, + "t": 7, + "s": [ + 994, + 614, + 0 + ], + "to": [ + 0, + 10.667, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.791, + "y": 0 + }, + "t": 21, + "s": [ + 994, + 1480, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 25.0000010182709, + "s": [ + 994, + 1416, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 574, + 540, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1080, + "h": 1080, + "ip": 0, + "op": 15.0000006109625, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 0, + "nm": "Pre-comp 1", + "refId": "comp_1", + "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": 87, + "s": [ + 994, + 1688, + 0 + ], + "to": [ + 0, + -10.667, + 0 + ], + "ti": [ + 0, + 10.667, + 0 + ] + }, + { + "t": 91.000003706506, + "s": [ + 994, + 1624, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 574, + 748, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 81, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 84, + "s": [ + 104, + 90, + 100 + ] + }, + { + "t": 88.0000035843135, + "s": [ + 100, + 100, + 100 + ] + } + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1080, + "h": 1080, + "ip": 79.000003217736, + "op": 94.0000038286985, + "st": 63.0000025660426, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 0, + "nm": "Apple 2", + "refId": "comp_2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.93, + "y": 0 + }, + "t": 11, + "s": [ + 930, + 996, + 0 + ], + "to": [ + 0, + 110, + 0 + ], + "ti": [ + 0, + -86, + 0 + ] + }, + { + "i": { + "x": 0.582, + "y": 0.771 + }, + "o": { + "x": 0.18, + "y": 0 + }, + "t": 15, + "s": [ + 930, + 1656, + 0 + ], + "to": [ + 0, + 48.778, + 0 + ], + "ti": [ + 0, + 12.712, + 0 + ] + }, + { + "i": { + "x": 0.702, + "y": 1 + }, + "o": { + "x": 0.347, + "y": 0.226 + }, + "t": 22, + "s": [ + 930, + 1731.657, + 0 + ], + "to": [ + 0, + -9.7, + 0 + ], + "ti": [ + 0, + -0.577, + 0 + ] + }, + { + "t": 29.0000011811942, + "s": [ + 930, + 1664, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 1488, + 1384, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 11, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 15, + "s": [ + 100, + 100, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 22, + "s": [ + 100, + 84, + 100 + ] + }, + { + "t": 29.0000011811942, + "s": [ + 100, + 100, + 100 + ] + } + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1920, + "h": 1920, + "ip": 15.0000006109625, + "op": 33.0000013441176, + "st": -2.00000008146167, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 0, + "nm": "Apple", + "refId": "comp_2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.274 + ], + "y": [ + 1 + ] + }, + "o": { + "x": [ + 0.333 + ], + "y": [ + 0 + ] + }, + "t": 34, + "s": [ + 0 + ] + }, + { + "t": 51.0000020772726, + "s": [ + 360 + ] + } + ], + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.152, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 34, + "s": [ + 962, + 1420, + 0 + ], + "to": [ + 0, + -137.667, + 0 + ], + "ti": [ + 0, + -10.667, + 0 + ] + }, + { + "i": { + "x": 0.174, + "y": 1 + }, + "o": { + "x": 0.835, + "y": 0 + }, + "t": 40, + "s": [ + 962, + 594, + 0 + ], + "to": [ + 0, + 10.667, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.791, + "y": 0 + }, + "t": 54, + "s": [ + 962, + 1484, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "t": 58.0000023623884, + "s": [ + 962, + 1420, + 0 + ] + } + ], + "ix": 2, + "l": 2 + }, + "a": { + "a": 0, + "k": [ + 1528, + 1188, + 0 + ], + "ix": 1, + "l": 2 + }, + "s": { + "a": 0, + "k": [ + 100, + 100, + 100 + ], + "ix": 6, + "l": 2 + } + }, + "ao": 0, + "w": 1920, + "h": 1920, + "ip": 33.0000013441176, + "op": 46.0000018736184, + "st": 16.0000006516934, + "bm": 0 + } + ], + "markers": [] +} \ No newline at end of file