diff --git a/app/src/main/java/com/rosetta/messenger/MainActivity.kt b/app/src/main/java/com/rosetta/messenger/MainActivity.kt index b61bc90..8af7bec 100644 --- a/app/src/main/java/com/rosetta/messenger/MainActivity.kt +++ b/app/src/main/java/com/rosetta/messenger/MainActivity.kt @@ -37,6 +37,7 @@ import com.rosetta.messenger.network.SearchUser import com.rosetta.messenger.repository.AvatarRepository import com.rosetta.messenger.ui.auth.AccountInfo import com.rosetta.messenger.ui.auth.AuthFlow +import com.rosetta.messenger.ui.auth.DeviceConfirmScreen import com.rosetta.messenger.ui.chats.ChatDetailScreen import com.rosetta.messenger.ui.chats.ChatsListScreen import com.rosetta.messenger.ui.chats.RequestsListScreen @@ -144,6 +145,7 @@ class MainActivity : FragmentActivity() { else -> true } val isLoggedIn by accountManager.isLoggedIn.collectAsState(initial = null) + val protocolState by ProtocolManager.state.collectAsState() var showSplash by remember { mutableStateOf(true) } var showOnboarding by remember { mutableStateOf(true) } var hasExistingAccount by remember { mutableStateOf(null) } @@ -210,6 +212,9 @@ class MainActivity : FragmentActivity() { "auth_new" isLoggedIn != true && hasExistingAccount == true -> "auth_unlock" + protocolState == + ProtocolState.DEVICE_VERIFICATION_REQUIRED -> + "device_confirm" else -> "main" }, transitionSpec = { @@ -430,6 +435,18 @@ class MainActivity : FragmentActivity() { } ) } + "device_confirm" -> { + DeviceConfirmScreen( + isDarkTheme = isDarkTheme, + onExit = { + currentAccount = null + scope.launch { + ProtocolManager.disconnect() + accountManager.logout() + } + } + ) + } } } } @@ -690,7 +707,9 @@ fun MainScreen( // Appearance: background blur color preference val prefsManager = remember { com.rosetta.messenger.data.PreferencesManager(context) } val backgroundBlurColorId by - prefsManager.backgroundBlurColorId.collectAsState(initial = "avatar") + prefsManager + .backgroundBlurColorIdForAccount(accountPublicKey) + .collectAsState(initial = "avatar") val pinnedChats by prefsManager.pinnedChats.collectAsState(initial = emptySet()) // AvatarRepository для работы с аватарами @@ -920,7 +939,9 @@ fun MainScreen( currentBlurColorId = backgroundBlurColorId, onBack = { navStack = navStack.filterNot { it is Screen.Appearance } }, onBlurColorChange = { newId -> - mainScreenScope.launch { prefsManager.setBackgroundBlurColorId(newId) } + mainScreenScope.launch { + prefsManager.setBackgroundBlurColorId(accountPublicKey, newId) + } }, onToggleTheme = onToggleTheme, accountPublicKey = accountPublicKey, diff --git a/app/src/main/java/com/rosetta/messenger/crypto/CryptoManager.kt b/app/src/main/java/com/rosetta/messenger/crypto/CryptoManager.kt index 171e7a5..b7def35 100644 --- a/app/src/main/java/com/rosetta/messenger/crypto/CryptoManager.kt +++ b/app/src/main/java/com/rosetta/messenger/crypto/CryptoManager.kt @@ -29,6 +29,8 @@ object CryptoManager { private const val PBKDF2_ITERATIONS = 1000 private const val KEY_SIZE = 256 private const val SALT = "rosetta" + private const val PBKDF2_HMAC_SHA1 = "PBKDF2WithHmacSHA1" + private const val PBKDF2_HMAC_SHA256 = "PBKDF2WithHmacSHA256" // 🚀 ОПТИМИЗАЦИЯ: Кэш для генерации ключей (seedPhrase -> KeyPair) private val keyPairCache = mutableMapOf() @@ -57,8 +59,13 @@ object CryptoManager { * (чтобы кэш был горячий к моменту дешифровки) */ fun getPbkdf2Key(password: String): SecretKeySpec { - return pbkdf2KeyCache.getOrPut(password) { - val factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1") + return getPbkdf2Key(password, PBKDF2_HMAC_SHA256) + } + + private fun getPbkdf2Key(password: String, algorithm: String): SecretKeySpec { + val cacheKey = "$algorithm::$password" + return pbkdf2KeyCache.getOrPut(cacheKey) { + val factory = SecretKeyFactory.getInstance(algorithm) val spec = PBEKeySpec( password.toCharArray(), @@ -207,8 +214,8 @@ object CryptoManager { /** * Encrypt data with password using PBKDF2 + AES * - * ⚠️ ВАЖНО: Совместимость с JS (crypto-js) и React Native (cryptoJSI.ts): - * - PBKDF2WithHmacSHA1 (не SHA256!) - crypto-js использует SHA1 по умолчанию + * ⚠️ ВАЖНО: Совместимость с Desktop (crypto-js 4.x): + * - PBKDF2WithHmacSHA256 * - Salt: "rosetta" * - Iterations: 1000 * - Key size: 256 bit @@ -231,17 +238,8 @@ object CryptoManager { val encryptedChunks = mutableListOf() for (chunk in chunks) { - // Derive key using PBKDF2-HMAC-SHA1 - val factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1") - val spec = - PBEKeySpec( - password.toCharArray(), - SALT.toByteArray(Charsets.UTF_8), - PBKDF2_ITERATIONS, - KEY_SIZE - ) - val secretKey = factory.generateSecret(spec) - val key = SecretKeySpec(secretKey.encoded, "AES") + // Desktop parity: PBKDF2-HMAC-SHA256 + val key = getPbkdf2Key(password, PBKDF2_HMAC_SHA256) // Generate random IV val iv = ByteArray(16) @@ -262,19 +260,8 @@ object CryptoManager { // Return chunked format: "CHNK:" + chunks joined by "::" return "CHNK:" + encryptedChunks.joinToString("::") } else { - // Single chunk (original behavior) - // Derive key using PBKDF2-HMAC-SHA1 (⚠️ SHA1, не SHA256!) - // crypto-js по умолчанию использует SHA1 для PBKDF2 - val factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1") - val spec = - PBEKeySpec( - password.toCharArray(), - SALT.toByteArray(Charsets.UTF_8), - PBKDF2_ITERATIONS, - KEY_SIZE - ) - val secretKey = factory.generateSecret(spec) - val key = SecretKeySpec(secretKey.encoded, "AES") + // Single chunk (desktop parity) + val key = getPbkdf2Key(password, PBKDF2_HMAC_SHA256) // Generate random IV val iv = ByteArray(16) @@ -297,8 +284,8 @@ object CryptoManager { /** * Decrypt data with password * - * ⚠️ ВАЖНО: Совместимость с JS (crypto-js) и React Native (cryptoJSI.ts): - * - PBKDF2WithHmacSHA1 (не SHA256!) - crypto-js использует SHA1 по умолчанию + * ⚠️ ВАЖНО: Desktop использует PBKDF2-SHA256. + * Для обратной совместимости с legacy Android данными пробуем также SHA1. * - Salt: "rosetta" * - Iterations: 1000 * - Key size: 256 bit @@ -339,71 +326,83 @@ object CryptoManager { /** 🔐 Внутренняя функция расшифровки (без кэширования результата) */ private fun decryptWithPasswordInternal(encryptedData: String, password: String): String? { - return try { - // 🚀 Получаем кэшированный PBKDF2 ключ - val key = getPbkdf2Key(password) + val keysToTry = + listOf( + getPbkdf2Key(password, PBKDF2_HMAC_SHA256), + getPbkdf2Key(password, PBKDF2_HMAC_SHA1) + ) + keysToTry.forEach { key -> // Check for old format: base64-encoded string containing hex if (isOldFormat(encryptedData)) { - val decoded = String(Base64.decode(encryptedData, Base64.NO_WRAP), Charsets.UTF_8) - val parts = decoded.split(":") - if (parts.size != 2) return null + try { + val decoded = + String(Base64.decode(encryptedData, Base64.NO_WRAP), Charsets.UTF_8) + val parts = decoded.split(":") + if (parts.size != 2) return@forEach - val iv = parts[0].chunked(2).map { it.toInt(16).toByte() }.toByteArray() - val ciphertext = parts[1].chunked(2).map { it.toInt(16).toByte() }.toByteArray() + val iv = parts[0].chunked(2).map { it.toInt(16).toByte() }.toByteArray() + val ciphertext = parts[1].chunked(2).map { it.toInt(16).toByte() }.toByteArray() - // Decrypt with AES-256-CBC (используем кэшированный ключ!) - val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") - cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(iv)) - val decrypted = cipher.doFinal(ciphertext) - - return String(decrypted, Charsets.UTF_8) + val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") + cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(iv)) + val decrypted = cipher.doFinal(ciphertext) + return String(decrypted, Charsets.UTF_8) + } catch (_: Exception) { + return@forEach + } } // Check for chunked format if (encryptedData.startsWith("CHNK:")) { - val chunkStrings = encryptedData.substring(5).split("::") - val decompressedParts = mutableListOf() + try { + val chunkStrings = encryptedData.substring(5).split("::") + val decompressedParts = mutableListOf() - for (chunkString in chunkStrings) { - val parts = chunkString.split(":") - if (parts.size != 2) return null + for (chunkString in chunkStrings) { + val parts = chunkString.split(":") + if (parts.size != 2) return@forEach - val iv = Base64.decode(parts[0], Base64.NO_WRAP) - val ciphertext = Base64.decode(parts[1], Base64.NO_WRAP) + val iv = Base64.decode(parts[0], Base64.NO_WRAP) + val ciphertext = Base64.decode(parts[1], Base64.NO_WRAP) - // Decrypt with AES-256-CBC (используем кэшированный ключ!) - val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") - cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(iv)) - val decrypted = cipher.doFinal(ciphertext) + val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") + cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(iv)) + val decrypted = cipher.doFinal(ciphertext) - decompressedParts.add(decrypted) + decompressedParts.add(decrypted) + } + + // Concatenate all decrypted chunks + val allBytes = decompressedParts.fold(ByteArray(0)) { acc, arr -> acc + arr } + + // Decompress the concatenated data + return String(decompress(allBytes), Charsets.UTF_8) + } catch (_: Exception) { + return@forEach } - - // Concatenate all decrypted chunks - val allBytes = decompressedParts.fold(ByteArray(0)) { acc, arr -> acc + arr } - - // Decompress the concatenated data - return String(decompress(allBytes), Charsets.UTF_8) } // New format: base64 "iv:ciphertext" - val parts = encryptedData.split(":") - if (parts.size != 2) return null + try { + val parts = encryptedData.split(":") + if (parts.size != 2) return@forEach - val iv = Base64.decode(parts[0], Base64.NO_WRAP) - val ciphertext = Base64.decode(parts[1], Base64.NO_WRAP) + val iv = Base64.decode(parts[0], Base64.NO_WRAP) + val ciphertext = Base64.decode(parts[1], Base64.NO_WRAP) - // Decrypt with AES-256-CBC (используем кэшированный ключ!) - val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") - cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(iv)) - val decrypted = cipher.doFinal(ciphertext) + val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding") + cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(iv)) + val decrypted = cipher.doFinal(ciphertext) - // Decompress (zlib inflate - совместимо с pako.inflate в JS) - String(decompress(decrypted), Charsets.UTF_8) - } catch (e: Exception) { - null + // Decompress (совместимо с desktop + fallback для legacy) + return String(decompress(decrypted), Charsets.UTF_8) + } catch (_: Exception) { + return@forEach + } } + + return null } /** Check if data is in old format (base64-encoded hex with ":") */ @@ -425,16 +424,13 @@ object CryptoManager { } /** - * RAW Deflate сжатие (без zlib header) + * Сжатие данных для encodeWithPassword. * - * ⚠️ ВАЖНО: nowrap=true для совместимости с pako.deflate() в JS! - * - pako.deflate() создаёт RAW deflate поток (без 2-byte zlib header) - * - Java Deflater() по умолчанию создаёт zlib поток (с header 78 9C) - * - Поэтому используем Deflater(level, true) где true = nowrap + * Десктоп использует pako.deflate (zlib wrapper), поэтому тут должен быть обычный + * Deflater без nowrap=true. */ private fun compress(data: ByteArray): ByteArray { - // nowrap=true = RAW deflate (совместимо с pako.deflate) - val deflater = Deflater(Deflater.DEFAULT_COMPRESSION, true) + val deflater = Deflater(Deflater.DEFAULT_COMPRESSION) deflater.setInput(data) deflater.finish() @@ -450,27 +446,38 @@ object CryptoManager { } /** - * RAW Inflate декомпрессия (без zlib header) - * - * ⚠️ ВАЖНО: nowrap=true для совместимости с pako.inflate() в JS! - * - pako.inflate() ожидает RAW deflate поток - * - Java Inflater() по умолчанию ожидает zlib поток (с header) - * - Поэтому используем Inflater(true) где true = nowrap + * Декомпрессия с обратной совместимостью: + * 1) сначала zlib (desktop/new android), + * 2) затем raw deflate (legacy android данные). */ private fun decompress(data: ByteArray): ByteArray { - // nowrap=true = RAW inflate (совместимо с pako.inflate) - val inflater = Inflater(true) + return try { + inflate(data, nowrap = false) + } catch (_: Exception) { + inflate(data, nowrap = true) + } + } + + private fun inflate(data: ByteArray, nowrap: Boolean): ByteArray { + val inflater = Inflater(nowrap) inflater.setInput(data) val outputStream = ByteArrayOutputStream() val buffer = ByteArray(1024) while (!inflater.finished()) { val count = inflater.inflate(buffer) + if (count == 0) { + if (inflater.needsInput() || inflater.needsDictionary()) { + throw IllegalStateException("Inflate failed: incomplete or unsupported stream") + } + } outputStream.write(buffer, 0, count) } inflater.end() // Освобождаем ресурсы outputStream.close() - return outputStream.toByteArray() + val result = outputStream.toByteArray() + if (result.isEmpty()) throw IllegalStateException("Decompression produced empty output") + return result } /** diff --git a/app/src/main/java/com/rosetta/messenger/crypto/MessageCrypto.kt b/app/src/main/java/com/rosetta/messenger/crypto/MessageCrypto.kt index 756fa7b..4897d82 100644 --- a/app/src/main/java/com/rosetta/messenger/crypto/MessageCrypto.kt +++ b/app/src/main/java/com/rosetta/messenger/crypto/MessageCrypto.kt @@ -511,6 +511,23 @@ object MessageCrypto { encryptedKey: String, myPrivateKey: String ): String = decryptIncomingFull(ciphertext, encryptedKey, myPrivateKey).plaintext + + fun decryptIncomingFullWithPlainKey( + ciphertext: String, + plainKeyAndNonce: ByteArray + ): DecryptedIncoming { + require(plainKeyAndNonce.size >= 56) { "Invalid plainKeyAndNonce size: ${plainKeyAndNonce.size}" } + + val key = plainKeyAndNonce.copyOfRange(0, 32) + val nonce = plainKeyAndNonce.copyOfRange(32, 56) + val plaintext = decryptMessage(ciphertext, key.toHex(), nonce.toHex()) + return DecryptedIncoming(plaintext, plainKeyAndNonce) + } + + fun decryptIncomingWithPlainKey( + ciphertext: String, + plainKeyAndNonce: ByteArray + ): String = decryptIncomingFullWithPlainKey(ciphertext, plainKeyAndNonce).plaintext /** * Расшифровка MESSAGES attachment blob diff --git a/app/src/main/java/com/rosetta/messenger/data/MessageRepository.kt b/app/src/main/java/com/rosetta/messenger/data/MessageRepository.kt index e81492c..7976f46 100644 --- a/app/src/main/java/com/rosetta/messenger/data/MessageRepository.kt +++ b/app/src/main/java/com/rosetta/messenger/data/MessageRepository.kt @@ -49,6 +49,7 @@ class MessageRepository private constructor(private val context: Context) { private val messageDao = database.messageDao() private val dialogDao = database.dialogDao() private val avatarDao = database.avatarDao() + private val syncTimeDao = database.syncTimeDao() private val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) @@ -95,6 +96,10 @@ class MessageRepository private constructor(private val context: Context) { companion object { @Volatile private var INSTANCE: MessageRepository? = null + const val SYSTEM_SAFE_PUBLIC_KEY = "0x000000000000000000000000000000000000000002" + const val SYSTEM_SAFE_TITLE = "Safe" + const val SYSTEM_SAFE_USERNAME = "safe" + // 🔥 In-memory кэш обработанных messageId для предотвращения дубликатов // LRU кэш с ограничением 1000 элементов - защита от race conditions private val processedMessageIds = @@ -136,6 +141,86 @@ class MessageRepository private constructor(private val context: Context) { } } + suspend fun addDeviceLoginSystemMessage( + ipAddress: String, + deviceId: String, + deviceName: String, + deviceOs: String + ) { + val account = currentAccount ?: return + val privateKey = currentPrivateKey ?: return + + val safeIp = ipAddress.ifBlank { "unknown" } + val safeDeviceName = deviceName.ifBlank { "Unknown device" } + val safeDeviceOs = deviceOs.ifBlank { "unknown" } + val safeDeviceId = dotCenterIfNeeded(deviceId.ifBlank { "unknown" }, maxLength = 12, side = 4) + + val messageText = + """ + Attempt to login from a new device + + We detected a login to your account from $safeIp a new device by seed phrase. If this was you, you can safely ignore this message. + + Arch: $safeDeviceOs + IP: $safeIp + Device: $safeDeviceName + ID: $safeDeviceId + """ + .trimIndent() + + val encryptedPlainMessage = + try { + CryptoManager.encryptWithPassword(messageText, privateKey) + } catch (_: Exception) { + return + } + + val messageId = UUID.randomUUID().toString().replace("-", "").take(32) + val timestamp = System.currentTimeMillis() + val dialogKey = getDialogKey(SYSTEM_SAFE_PUBLIC_KEY) + + val inserted = + messageDao.insertMessage( + MessageEntity( + account = account, + fromPublicKey = SYSTEM_SAFE_PUBLIC_KEY, + toPublicKey = account, + content = "", + timestamp = timestamp, + chachaKey = "", + read = 0, + fromMe = 0, + delivered = DeliveryStatus.DELIVERED.value, + messageId = messageId, + plainMessage = encryptedPlainMessage, + attachments = "[]", + dialogKey = dialogKey + ) + ) + + if (inserted == -1L) return + + val existing = dialogDao.getDialog(account, SYSTEM_SAFE_PUBLIC_KEY) + dialogDao.insertDialog( + DialogEntity( + id = existing?.id ?: 0, + account = account, + opponentKey = SYSTEM_SAFE_PUBLIC_KEY, + opponentTitle = existing?.opponentTitle?.ifBlank { SYSTEM_SAFE_TITLE } ?: SYSTEM_SAFE_TITLE, + opponentUsername = + existing?.opponentUsername?.ifBlank { SYSTEM_SAFE_USERNAME } + ?: SYSTEM_SAFE_USERNAME, + isOnline = existing?.isOnline ?: 0, + lastSeen = existing?.lastSeen ?: 0, + verified = maxOf(existing?.verified ?: 0, 1), + iHaveSent = 1 + ) + ) + + dialogDao.updateDialogFromMessages(account, SYSTEM_SAFE_PUBLIC_KEY) + _newMessageEvents.tryEmit(dialogKey) + } + /** Инициализация с текущим аккаунтом */ fun initialize(publicKey: String, privateKey: String) { val start = System.currentTimeMillis() @@ -163,6 +248,20 @@ class MessageRepository private constructor(private val context: Context) { return currentAccount != null && currentPrivateKey != null } + suspend fun getLastSyncTimestamp(): Long { + val account = currentAccount ?: return 0L + return syncTimeDao.getLastSync(account) ?: 0L + } + + suspend fun updateLastSyncTimestamp(timestamp: Long) { + if (timestamp <= 0) return + val account = currentAccount ?: return + val existing = syncTimeDao.getLastSync(account) ?: 0L + if (timestamp > existing) { + syncTimeDao.upsert(AccountSyncTimeEntity(account = account, lastSync = timestamp)) + } + } + /** Получить поток сообщений для диалога */ fun getMessagesFlow(opponentKey: String): StateFlow> { val dialogKey = getDialogKey(opponentKey) @@ -238,6 +337,11 @@ class MessageRepository private constructor(private val context: Context) { val encryptResult = MessageCrypto.encryptForSending(text.trim(), toPublicKey) val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey + val aesChachaKey = + CryptoManager.encryptWithPassword( + String(encryptResult.plainKeyAndNonce, Charsets.ISO_8859_1), + privateKey + ) // 📝 LOG: Шифрование успешно MessageLogger.logEncryptionSuccess( @@ -344,6 +448,7 @@ class MessageRepository private constructor(private val context: Context) { this.toPublicKey = toPublicKey this.content = encryptedContent this.chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = CryptoManager.generatePrivateKeyHash(privateKey) this.messageId = messageId @@ -397,11 +502,15 @@ class MessageRepository private constructor(private val context: Context) { timestamp = packet.timestamp ) + val isOwnMessage = packet.fromPublicKey == account + // 🔥 Проверяем, не заблокирован ли отправитель - val isBlocked = database.blacklistDao().isUserBlocked(packet.fromPublicKey, account) - if (isBlocked) { - MessageLogger.logBlockedSender(packet.fromPublicKey) - return + if (!isOwnMessage) { + val isBlocked = database.blacklistDao().isUserBlocked(packet.fromPublicKey, account) + if (isBlocked) { + MessageLogger.logBlockedSender(packet.fromPublicKey) + return + } } // 🔥 Генерируем messageId если он пустой (как в Архиве - generateRandomKeyFormSeed) @@ -435,17 +544,37 @@ class MessageRepository private constructor(private val context: Context) { return } - val dialogKey = getDialogKey(packet.fromPublicKey) + val dialogOpponentKey = if (isOwnMessage) packet.toPublicKey else packet.fromPublicKey + val dialogKey = getDialogKey(dialogOpponentKey) try { - // 🔑 КРИТИЧНО: Сохраняем ЗАШИФРОВАННЫЙ chacha_key (как в Desktop!) - // Desktop: хранит зашифрованный ключ, расшифровывает только при использовании - // Buffer.from(await decrypt(message.chacha_key, privatePlain), - // "binary").toString('utf-8') + val plainKeyAndNonce = + if (isOwnMessage && packet.aesChachaKey.isNotBlank()) { + CryptoManager.decryptWithPassword(packet.aesChachaKey, privateKey) + ?.toByteArray(Charsets.ISO_8859_1) + } else { + null + } + + if (isOwnMessage && packet.aesChachaKey.isNotBlank() && plainKeyAndNonce == null) { + ProtocolManager.addLog( + "⚠️ OWN SYNC: failed to decrypt aesChachaKey for ${messageId.take(8)}..." + ) + } + + if (isOwnMessage && plainKeyAndNonce == null && packet.aesChachaKey.isBlank()) { + MessageLogger.debug( + "📥 OWN SYNC fallback: aesChachaKey is missing, trying chachaKey decrypt" + ) + } // Расшифровываем val plainText = - MessageCrypto.decryptIncoming(packet.content, packet.chachaKey, privateKey) + if (plainKeyAndNonce != null) { + MessageCrypto.decryptIncomingWithPlainKey(packet.content, plainKeyAndNonce) + } else { + MessageCrypto.decryptIncoming(packet.content, packet.chachaKey, privateKey) + } // 📝 LOG: Расшифровка успешна MessageLogger.logDecryptionSuccess( @@ -459,18 +588,25 @@ class MessageRepository private constructor(private val context: Context) { serializeAttachmentsWithDecryption( packet.attachments, packet.chachaKey, - privateKey + privateKey, + plainKeyAndNonce ) // 🖼️ Обрабатываем IMAGE attachments - сохраняем в файл (как в desktop) - processImageAttachments(packet.attachments, packet.chachaKey, privateKey) + processImageAttachments( + packet.attachments, + packet.chachaKey, + privateKey, + plainKeyAndNonce + ) // 📸 Обрабатываем AVATAR attachments - сохраняем аватар отправителя processAvatarAttachments( packet.attachments, packet.fromPublicKey, packet.chachaKey, - privateKey + privateKey, + plainKeyAndNonce ) // 🔒 Шифруем plainMessage с использованием приватного ключа @@ -486,7 +622,7 @@ class MessageRepository private constructor(private val context: Context) { timestamp = packet.timestamp, chachaKey = packet.chachaKey, read = 0, - fromMe = 0, + fromMe = if (isOwnMessage) 1 else 0, delivered = DeliveryStatus.DELIVERED.value, messageId = messageId, // 🔥 Используем сгенерированный messageId! plainMessage = encryptedPlainMessage, // 🔒 Зашифрованный текст @@ -506,10 +642,10 @@ class MessageRepository private constructor(private val context: Context) { } // 🔥 КРИТИЧНО: Обновляем диалог через updateDialogFromMessages - dialogDao.updateDialogFromMessages(account, packet.fromPublicKey) + dialogDao.updateDialogFromMessages(account, dialogOpponentKey) // 🔥 Логируем что записалось в диалог - val dialog = dialogDao.getDialog(account, packet.fromPublicKey) + val dialog = dialogDao.getDialog(account, dialogOpponentKey) MessageLogger.logDialogUpdate( dialogKey = dialogKey, lastMessage = dialog?.lastMessage, @@ -517,7 +653,7 @@ class MessageRepository private constructor(private val context: Context) { ) // 🔥 Запрашиваем информацию о пользователе для отображения имени вместо ключа - requestUserInfo(packet.fromPublicKey) + requestUserInfo(dialogOpponentKey) // Обновляем кэш только если сообщение новое if (!stillExists) { @@ -534,6 +670,11 @@ class MessageRepository private constructor(private val context: Context) { } catch (e: Exception) { // 📝 LOG: Ошибка обработки MessageLogger.logDecryptionError(messageId, e) + ProtocolManager.addLog( + "❌ Incoming message dropped: ${messageId.take(8)}..., own=$isOwnMessage, reason=${e.javaClass.simpleName}" + ) + // Разрешаем повторную обработку через re-sync, если пакет не удалось сохранить. + processedMessageIds.remove(messageId) e.printStackTrace() } } @@ -573,17 +714,24 @@ class MessageRepository private constructor(private val context: Context) { MessageLogger.debug("👁 READ PACKET from: ${packet.fromPublicKey.take(16)}...") + // Синхронизация read может прийти как: + // 1) from=opponent, to=account (обычный read от собеседника) + // 2) from=account, to=opponent (read c другого устройства этого же аккаунта) + val opponentKey = + if (packet.fromPublicKey == account) packet.toPublicKey else packet.fromPublicKey + if (opponentKey.isBlank()) return + // Проверяем последнее сообщение ДО обновления - val lastMsgBefore = messageDao.getLastMessageDebug(account, packet.fromPublicKey) + val lastMsgBefore = messageDao.getLastMessageDebug(account, opponentKey) // Отмечаем все наши исходящие сообщения к этому собеседнику как прочитанные - messageDao.markAllAsRead(account, packet.fromPublicKey) + messageDao.markAllAsRead(account, opponentKey) // 🔥 DEBUG: Проверяем последнее сообщение ПОСЛЕ обновления - val lastMsgAfter = messageDao.getLastMessageDebug(account, packet.fromPublicKey) + val lastMsgAfter = messageDao.getLastMessageDebug(account, opponentKey) // Обновляем кэш - все исходящие сообщения помечаем как прочитанные - val dialogKey = getDialogKey(packet.fromPublicKey) + val dialogKey = getDialogKey(opponentKey) val readCount = messageCache[dialogKey]?.value?.count { it.isFromMe && !it.isRead } ?: 0 messageCache[dialogKey]?.let { flow -> flow.value = @@ -596,13 +744,13 @@ class MessageRepository private constructor(private val context: Context) { _deliveryStatusEvents.tryEmit(DeliveryStatusUpdate(dialogKey, "", DeliveryStatus.READ)) // 📝 LOG: Статус прочтения - MessageLogger.logReadStatus(fromPublicKey = packet.fromPublicKey, messagesCount = readCount) + MessageLogger.logReadStatus(fromPublicKey = opponentKey, messagesCount = readCount) // 🔥 КРИТИЧНО: Обновляем диалог чтобы lastMessageRead обновился - dialogDao.updateDialogFromMessages(account, packet.fromPublicKey) + dialogDao.updateDialogFromMessages(account, opponentKey) // Логируем что записалось в диалог - val dialog = dialogDao.getDialog(account, packet.fromPublicKey) + val dialog = dialogDao.getDialog(account, opponentKey) } /** @@ -719,6 +867,13 @@ class MessageRepository private constructor(private val context: Context) { } } + private fun dotCenterIfNeeded(value: String, maxLength: Int, side: Int): String { + if (value.length <= maxLength) return value + val safeSide = side.coerceAtLeast(1) + if (safeSide * 2 >= value.length) return value + return value.take(safeSide) + "..." + value.takeLast(safeSide) + } + private suspend fun updateDialog( opponentKey: String, lastMessage: String, @@ -919,7 +1074,8 @@ class MessageRepository private constructor(private val context: Context) { attachments: List, fromPublicKey: String, encryptedKey: String, - privateKey: String + privateKey: String, + plainKeyAndNonce: ByteArray? = null ) { for (attachment in attachments) { @@ -929,11 +1085,14 @@ class MessageRepository private constructor(private val context: Context) { // 1. Расшифровываем blob с ChaCha ключом сообщения val decryptedBlob = - MessageCrypto.decryptAttachmentBlob( - attachment.blob, - encryptedKey, - privateKey - ) + plainKeyAndNonce?.let { + MessageCrypto.decryptAttachmentBlobWithPlainKey(attachment.blob, it) + } + ?: MessageCrypto.decryptAttachmentBlob( + attachment.blob, + encryptedKey, + privateKey + ) if (decryptedBlob != null) { // 2. Сохраняем аватар в кэш @@ -964,7 +1123,8 @@ class MessageRepository private constructor(private val context: Context) { private fun processImageAttachments( attachments: List, encryptedKey: String, - privateKey: String + privateKey: String, + plainKeyAndNonce: ByteArray? = null ) { val publicKey = currentAccount ?: return @@ -975,11 +1135,14 @@ class MessageRepository private constructor(private val context: Context) { // 1. Расшифровываем blob с ChaCha ключом сообщения val decryptedBlob = - MessageCrypto.decryptAttachmentBlob( - attachment.blob, - encryptedKey, - privateKey - ) + plainKeyAndNonce?.let { + MessageCrypto.decryptAttachmentBlobWithPlainKey(attachment.blob, it) + } + ?: MessageCrypto.decryptAttachmentBlob( + attachment.blob, + encryptedKey, + privateKey + ) if (decryptedBlob != null) { // 2. Сохраняем в файл (как в desktop) @@ -1008,7 +1171,8 @@ class MessageRepository private constructor(private val context: Context) { private fun serializeAttachmentsWithDecryption( attachments: List, encryptedKey: String, - privateKey: String + privateKey: String, + plainKeyAndNonce: ByteArray? = null ): String { if (attachments.isEmpty()) return "[]" @@ -1022,11 +1186,14 @@ class MessageRepository private constructor(private val context: Context) { try { // 1. Расшифровываем с ChaCha ключом сообщения val decryptedBlob = - MessageCrypto.decryptAttachmentBlob( - attachment.blob, - encryptedKey, - privateKey - ) + plainKeyAndNonce?.let { + MessageCrypto.decryptAttachmentBlobWithPlainKey(attachment.blob, it) + } + ?: MessageCrypto.decryptAttachmentBlob( + attachment.blob, + encryptedKey, + privateKey + ) if (decryptedBlob != null) { // 2. Re-encrypt с приватным ключом для хранения (как в Desktop Архиве) diff --git a/app/src/main/java/com/rosetta/messenger/data/PreferencesManager.kt b/app/src/main/java/com/rosetta/messenger/data/PreferencesManager.kt index 68cac49..858ee3c 100644 --- a/app/src/main/java/com/rosetta/messenger/data/PreferencesManager.kt +++ b/app/src/main/java/com/rosetta/messenger/data/PreferencesManager.kt @@ -49,8 +49,9 @@ class PreferencesManager(private val context: Context) { // Language val APP_LANGUAGE = stringPreferencesKey("app_language") // "en", "ru", etc. - // Appearance / Customization - val BACKGROUND_BLUR_COLOR_ID = stringPreferencesKey("background_blur_color_id") // id from BackgroundBlurPresets + // Appearance / Customization (legacy global key) + val BACKGROUND_BLUR_COLOR_ID = + stringPreferencesKey("background_blur_color_id") // id from BackgroundBlurPresets // Pinned Chats (max 3) val PINNED_CHATS = stringSetPreferencesKey("pinned_chats") // Set of opponent public keys @@ -219,6 +220,12 @@ class PreferencesManager(private val context: Context) { // 🎨 APPEARANCE / CUSTOMIZATION // ═════════════════════════════════════════════════════════════ + private fun buildBackgroundBlurColorKey(account: String): Preferences.Key? { + val trimmedAccount = account.trim() + if (trimmedAccount.isBlank()) return null + return stringPreferencesKey("background_blur_color_id::$trimmedAccount") + } + val backgroundBlurColorId: Flow = context.dataStore.data.map { preferences -> preferences[BACKGROUND_BLUR_COLOR_ID] ?: "avatar" // Default: use avatar blur @@ -228,6 +235,21 @@ class PreferencesManager(private val context: Context) { context.dataStore.edit { preferences -> preferences[BACKGROUND_BLUR_COLOR_ID] = value } } + fun backgroundBlurColorIdForAccount(account: String): Flow = + context.dataStore.data.map { preferences -> + val scopedKey = buildBackgroundBlurColorKey(account) + if (scopedKey != null) preferences[scopedKey] ?: "avatar" else "avatar" + } + + suspend fun setBackgroundBlurColorId(account: String, value: String) { + val scopedKey = buildBackgroundBlurColorKey(account) + context.dataStore.edit { preferences -> + if (scopedKey != null) { + preferences[scopedKey] = value + } + } + } + // ═════════════════════════════════════════════════════════════ // 📌 PINNED CHATS // ═════════════════════════════════════════════════════════════ diff --git a/app/src/main/java/com/rosetta/messenger/database/RosettaDatabase.kt b/app/src/main/java/com/rosetta/messenger/database/RosettaDatabase.kt index 546c44c..451b1d1 100644 --- a/app/src/main/java/com/rosetta/messenger/database/RosettaDatabase.kt +++ b/app/src/main/java/com/rosetta/messenger/database/RosettaDatabase.kt @@ -14,8 +14,9 @@ import androidx.sqlite.db.SupportSQLiteDatabase MessageEntity::class, DialogEntity::class, BlacklistEntity::class, - AvatarCacheEntity::class], - version = 11, + AvatarCacheEntity::class, + AccountSyncTimeEntity::class], + version = 12, exportSchema = false ) abstract class RosettaDatabase : RoomDatabase() { @@ -24,6 +25,7 @@ abstract class RosettaDatabase : RoomDatabase() { abstract fun dialogDao(): DialogDao abstract fun blacklistDao(): BlacklistDao abstract fun avatarDao(): AvatarDao + abstract fun syncTimeDao(): SyncTimeDao companion object { @Volatile private var INSTANCE: RosettaDatabase? = null @@ -132,6 +134,20 @@ abstract class RosettaDatabase : RoomDatabase() { } } + private val MIGRATION_11_12 = + object : Migration(11, 12) { + override fun migrate(database: SupportSQLiteDatabase) { + database.execSQL( + """ + CREATE TABLE IF NOT EXISTS accounts_sync_times ( + account TEXT NOT NULL PRIMARY KEY, + last_sync INTEGER NOT NULL + ) + """ + ) + } + } + fun getDatabase(context: Context): RosettaDatabase { return INSTANCE ?: synchronized(this) { @@ -151,7 +167,8 @@ abstract class RosettaDatabase : RoomDatabase() { MIGRATION_7_8, MIGRATION_8_9, MIGRATION_9_10, - MIGRATION_10_11 + MIGRATION_10_11, + MIGRATION_11_12 ) .fallbackToDestructiveMigration() // Для разработки - только // если миграция не diff --git a/app/src/main/java/com/rosetta/messenger/database/SyncEntities.kt b/app/src/main/java/com/rosetta/messenger/database/SyncEntities.kt new file mode 100644 index 0000000..ba04556 --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/database/SyncEntities.kt @@ -0,0 +1,24 @@ +package com.rosetta.messenger.database + +import androidx.room.ColumnInfo +import androidx.room.Dao +import androidx.room.Entity +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.PrimaryKey +import androidx.room.Query + +@Entity(tableName = "accounts_sync_times") +data class AccountSyncTimeEntity( + @PrimaryKey @ColumnInfo(name = "account") val account: String, + @ColumnInfo(name = "last_sync") val lastSync: Long +) + +@Dao +interface SyncTimeDao { + @Query("SELECT last_sync FROM accounts_sync_times WHERE account = :account LIMIT 1") + suspend fun getLastSync(account: String): Long? + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun upsert(entity: AccountSyncTimeEntity) +} diff --git a/app/src/main/java/com/rosetta/messenger/network/PacketDeviceList.kt b/app/src/main/java/com/rosetta/messenger/network/PacketDeviceList.kt new file mode 100644 index 0000000..bf999fd --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/network/PacketDeviceList.kt @@ -0,0 +1,66 @@ +package com.rosetta.messenger.network + +enum class DeviceState(val value: Int) { + ONLINE(0), + OFFLINE(1); + + companion object { + fun fromValue(value: Int): DeviceState { + return entries.firstOrNull { it.value == value } ?: OFFLINE + } + } +} + +enum class DeviceVerifyState(val value: Int) { + VERIFIED(0), + NOT_VERIFIED(1); + + companion object { + fun fromValue(value: Int): DeviceVerifyState { + return entries.firstOrNull { it.value == value } ?: VERIFIED + } + } +} + +data class DeviceEntry( + val deviceId: String, + val deviceName: String, + val deviceOs: String, + val deviceStatus: DeviceState, + val deviceVerify: DeviceVerifyState +) + +class PacketDeviceList : Packet() { + var devices: List = emptyList() + + override fun getPacketId(): Int = 0x17 + + override fun receive(stream: Stream) { + val deviceCount = stream.readInt16() + val parsedDevices = mutableListOf() + repeat(deviceCount) { + parsedDevices += DeviceEntry( + deviceId = stream.readString(), + deviceName = stream.readString(), + deviceOs = stream.readString(), + deviceStatus = DeviceState.fromValue(stream.readInt8()), + deviceVerify = DeviceVerifyState.fromValue(stream.readInt8()) + ) + } + devices = parsedDevices + } + + override fun send(): Stream { + val stream = Stream() + stream.writeInt16(getPacketId()) + stream.writeInt16(devices.size) + devices.forEach { device -> + stream.writeString(device.deviceId) + stream.writeString(device.deviceName) + stream.writeString(device.deviceOs) + stream.writeInt8(device.deviceStatus.value) + stream.writeInt8(device.deviceVerify.value) + } + return stream + } +} diff --git a/app/src/main/java/com/rosetta/messenger/network/PacketDeviceNew.kt b/app/src/main/java/com/rosetta/messenger/network/PacketDeviceNew.kt new file mode 100644 index 0000000..955965e --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/network/PacketDeviceNew.kt @@ -0,0 +1,33 @@ +package com.rosetta.messenger.network + +data class DeviceInfo( + var deviceId: String = "", + var deviceName: String = "", + var deviceOs: String = "" +) + +class PacketDeviceNew : Packet() { + var ipAddress: String = "" + var device: DeviceInfo = DeviceInfo() + + override fun getPacketId(): Int = 0x09 + + override fun receive(stream: Stream) { + ipAddress = stream.readString() + device = DeviceInfo( + deviceId = stream.readString(), + deviceName = stream.readString(), + deviceOs = stream.readString() + ) + } + + override fun send(): Stream { + val stream = Stream() + stream.writeInt16(getPacketId()) + stream.writeString(ipAddress) + stream.writeString(device.deviceId) + stream.writeString(device.deviceName) + stream.writeString(device.deviceOs) + return stream + } +} diff --git a/app/src/main/java/com/rosetta/messenger/network/PacketDeviceResolve.kt b/app/src/main/java/com/rosetta/messenger/network/PacketDeviceResolve.kt new file mode 100644 index 0000000..601c6e6 --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/network/PacketDeviceResolve.kt @@ -0,0 +1,32 @@ +package com.rosetta.messenger.network + +enum class DeviceResolveSolution(val value: Int) { + ACCEPT(0), + DECLINE(1); + + companion object { + fun fromValue(value: Int): DeviceResolveSolution { + return entries.firstOrNull { it.value == value } ?: DECLINE + } + } +} + +class PacketDeviceResolve : Packet() { + var deviceId: String = "" + var solution: DeviceResolveSolution = DeviceResolveSolution.DECLINE + + override fun getPacketId(): Int = 0x18 + + override fun receive(stream: Stream) { + deviceId = stream.readString() + solution = DeviceResolveSolution.fromValue(stream.readInt8()) + } + + override fun send(): Stream { + val stream = Stream() + stream.writeInt16(getPacketId()) + stream.writeString(deviceId) + stream.writeInt8(solution.value) + return stream + } +} diff --git a/app/src/main/java/com/rosetta/messenger/network/PacketHandshake.kt b/app/src/main/java/com/rosetta/messenger/network/PacketHandshake.kt index 56da610..feeaabf 100644 --- a/app/src/main/java/com/rosetta/messenger/network/PacketHandshake.kt +++ b/app/src/main/java/com/rosetta/messenger/network/PacketHandshake.kt @@ -1,5 +1,22 @@ package com.rosetta.messenger.network +enum class HandshakeState(val value: Int) { + COMPLETED(0), + NEED_DEVICE_VERIFICATION(1); + + companion object { + fun fromValue(value: Int): HandshakeState { + return entries.firstOrNull { it.value == value } ?: COMPLETED + } + } +} + +data class HandshakeDevice( + var deviceId: String = "", + var deviceName: String = "", + var deviceOs: String = "" +) + /** * Handshake packet (ID: 0x00) * First packet sent by client to authenticate with the server @@ -9,6 +26,8 @@ class PacketHandshake : Packet() { var publicKey: String = "" var protocolVersion: Int = 1 var heartbeatInterval: Int = 15 + var device: HandshakeDevice = HandshakeDevice() + var handshakeState: HandshakeState = HandshakeState.NEED_DEVICE_VERIFICATION override fun getPacketId(): Int = 0x00 @@ -17,6 +36,12 @@ class PacketHandshake : Packet() { publicKey = stream.readString() protocolVersion = stream.readInt8() heartbeatInterval = stream.readInt8() + device = HandshakeDevice( + deviceId = stream.readString(), + deviceName = stream.readString(), + deviceOs = stream.readString() + ) + handshakeState = HandshakeState.fromValue(stream.readInt8()) } override fun send(): Stream { @@ -26,6 +51,10 @@ class PacketHandshake : Packet() { stream.writeString(publicKey) stream.writeInt8(protocolVersion) stream.writeInt8(heartbeatInterval) + stream.writeString(device.deviceId) + stream.writeString(device.deviceName) + stream.writeString(device.deviceOs) + stream.writeInt8(handshakeState.value) return stream } } diff --git a/app/src/main/java/com/rosetta/messenger/network/PacketMessage.kt b/app/src/main/java/com/rosetta/messenger/network/PacketMessage.kt index 7f6d6a5..d45344e 100644 --- a/app/src/main/java/com/rosetta/messenger/network/PacketMessage.kt +++ b/app/src/main/java/com/rosetta/messenger/network/PacketMessage.kt @@ -12,6 +12,7 @@ class PacketMessage : Packet() { var timestamp: Long = 0 var privateKey: String = "" // Hash приватного ключа (для авторизации) var messageId: String = "" + var aesChachaKey: String = "" // ChaCha key+nonce зашифрованный приватным ключом отправителя var attachments: List = emptyList() override fun getPacketId(): Int = 0x06 @@ -36,6 +37,7 @@ class PacketMessage : Packet() { )) } attachments = attachmentsList + aesChachaKey = stream.readString() } override fun send(): Stream { @@ -56,6 +58,7 @@ class PacketMessage : Packet() { stream.writeString(attachment.blob) stream.writeInt8(attachment.type.value) } + stream.writeString(aesChachaKey) return stream } diff --git a/app/src/main/java/com/rosetta/messenger/network/PacketSync.kt b/app/src/main/java/com/rosetta/messenger/network/PacketSync.kt new file mode 100644 index 0000000..3aa971e --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/network/PacketSync.kt @@ -0,0 +1,37 @@ +package com.rosetta.messenger.network + +enum class SyncStatus(val value: Int) { + NOT_NEEDED(0), + BATCH_START(1), + BATCH_END(2); + + companion object { + fun fromValue(value: Int): SyncStatus { + return entries.firstOrNull { it.value == value } ?: NOT_NEEDED + } + } +} + +/** + * Sync packet (ID: 0x19) + * Используется для батчевой синхронизации сообщений и read-статусов + */ +class PacketSync : Packet() { + var status: SyncStatus = SyncStatus.NOT_NEEDED + var timestamp: Long = 0 + + override fun getPacketId(): Int = 0x19 + + override fun receive(stream: Stream) { + status = SyncStatus.fromValue(stream.readInt8()) + timestamp = stream.readInt64() + } + + override fun send(): Stream { + val stream = Stream() + stream.writeInt16(getPacketId()) + stream.writeInt8(status.value) + stream.writeInt64(timestamp) + return stream + } +} diff --git a/app/src/main/java/com/rosetta/messenger/network/Protocol.kt b/app/src/main/java/com/rosetta/messenger/network/Protocol.kt index 9a580b3..5471a70 100644 --- a/app/src/main/java/com/rosetta/messenger/network/Protocol.kt +++ b/app/src/main/java/com/rosetta/messenger/network/Protocol.kt @@ -16,6 +16,7 @@ enum class ProtocolState { CONNECTING, CONNECTED, HANDSHAKING, + DEVICE_VERIFICATION_REQUIRED, AUTHENTICATED } @@ -102,6 +103,7 @@ class Protocol( // Last used credentials for reconnection private var lastPublicKey: String? = null private var lastPrivateHash: String? = null + private var lastDevice: HandshakeDevice = HandshakeDevice() // Getters for ProtocolManager to fetch own profile fun getPublicKey(): String? = lastPublicKey @@ -121,21 +123,40 @@ class Protocol( 0x06 to { PacketMessage() }, 0x07 to { PacketRead() }, 0x08 to { PacketDelivery() }, - 0x09 to { PacketChunk() }, - 0x0B to { PacketTyping() } + 0x09 to { PacketDeviceNew() }, + 0x0B to { PacketTyping() }, + 0x0F to { PacketRequestTransport() }, + 0x17 to { PacketDeviceList() }, + 0x18 to { PacketDeviceResolve() }, + 0x19 to { PacketSync() } ) init { // Register handshake response handler waitPacket(0x00) { packet -> if (packet is PacketHandshake) { - log("✅ HANDSHAKE SUCCESS: protocol=${packet.protocolVersion}, heartbeat=${packet.heartbeatInterval}s") handshakeJob?.cancel() - handshakeComplete = true - setState(ProtocolState.AUTHENTICATED, "Handshake response received") - flushPacketQueue() - - // Start heartbeat with interval from server + + when (packet.handshakeState) { + HandshakeState.COMPLETED -> { + log("✅ HANDSHAKE COMPLETE: protocol=${packet.protocolVersion}, heartbeat=${packet.heartbeatInterval}s") + handshakeComplete = true + setState(ProtocolState.AUTHENTICATED, "Handshake completed") + flushPacketQueue() + } + + HandshakeState.NEED_DEVICE_VERIFICATION -> { + log("🔐 HANDSHAKE NEEDS DEVICE VERIFICATION") + handshakeComplete = false + setState( + ProtocolState.DEVICE_VERIFICATION_REQUIRED, + "Handshake requires device verification" + ) + packetQueue.clear() + } + } + + // Keep heartbeat in both handshake states to maintain server session. startHeartbeat(packet.heartbeatInterval) } } @@ -171,7 +192,10 @@ class Protocol( val currentState = _state.value val socketAlive = webSocket != null - if (currentState == ProtocolState.AUTHENTICATED) { + if ( + currentState == ProtocolState.AUTHENTICATED || + currentState == ProtocolState.DEVICE_VERIFICATION_REQUIRED + ) { val sent = webSocket?.send("heartbeat") ?: false if (sent) { log("💓 Heartbeat OK (socket=$socketAlive, state=$currentState)") @@ -184,7 +208,9 @@ class Protocol( } } } else { - log("💔 HEARTBEAT SKIPPED: state=$currentState (not AUTHENTICATED), socket=$socketAlive") + log( + "💔 HEARTBEAT SKIPPED: state=$currentState (not ready), socket=$socketAlive" + ) } } catch (e: Exception) { log("💔 HEARTBEAT EXCEPTION: ${e.message}") @@ -200,7 +226,11 @@ class Protocol( log("🔌 CONNECT CALLED: currentState=$currentState, reconnectAttempts=$reconnectAttempts, isConnecting=$isConnecting") // КРИТИЧНО: Если уже подключены и аутентифицированы - не переподключаемся! - if (currentState == ProtocolState.AUTHENTICATED || currentState == ProtocolState.HANDSHAKING) { + if ( + currentState == ProtocolState.AUTHENTICATED || + currentState == ProtocolState.HANDSHAKING || + currentState == ProtocolState.DEVICE_VERIFICATION_REQUIRED + ) { log("✅ Already authenticated or handshaking, skipping connect()") return } @@ -264,7 +294,7 @@ class Protocol( lastPublicKey?.let { publicKey -> lastPrivateHash?.let { privateHash -> log("🤝 Auto-starting handshake with saved credentials") - startHandshake(publicKey, privateHash) + startHandshake(publicKey, privateHash, lastDevice) } } ?: log("⚠️ No saved credentials, waiting for manual handshake") } else { @@ -308,19 +338,24 @@ class Protocol( /** * Start handshake with server */ - fun startHandshake(publicKey: String, privateHash: String) { + fun startHandshake(publicKey: String, privateHash: String, device: HandshakeDevice) { log("🤝 Starting handshake...") log(" Public key: ${publicKey.take(20)}...") log(" Private hash: ${privateHash.take(20)}...") log(" Current state: ${_state.value}") // Detect account switch: already authenticated but with different credentials - val switchingAccount = (_state.value == ProtocolState.AUTHENTICATED || _state.value == ProtocolState.HANDSHAKING) && + val switchingAccount = ( + _state.value == ProtocolState.AUTHENTICATED || + _state.value == ProtocolState.HANDSHAKING || + _state.value == ProtocolState.DEVICE_VERIFICATION_REQUIRED + ) && lastPublicKey != null && lastPublicKey != publicKey // Save credentials for reconnection lastPublicKey = publicKey lastPrivateHash = privateHash + lastDevice = device // If switching accounts, force disconnect and reconnect with new credentials if (switchingAccount) { @@ -340,6 +375,11 @@ class Protocol( log("⚠️ HANDSHAKE IGNORED: Already authenticated") return } + + if (_state.value == ProtocolState.DEVICE_VERIFICATION_REQUIRED) { + log("⚠️ HANDSHAKE IGNORED: Waiting for device verification") + return + } if (_state.value != ProtocolState.CONNECTED) { log("⚠️ HANDSHAKE DEFERRED: Not connected (state=${_state.value}), will handshake after connection") @@ -353,6 +393,7 @@ class Protocol( val handshake = PacketHandshake().apply { this.publicKey = publicKey this.privateKey = privateHash + this.device = device } sendPacketDirect(handshake) @@ -411,10 +452,12 @@ class Protocol( } try { - // 📦 Используем Chunker для отправки (как в Desktop) - // Если пакет большой, он будет разбит на части автоматически - val chunker = Chunker(socket) { msg -> log(msg) } - chunker.send(stream) + val sent = socket.send(ByteString.of(*data)) + if (!sent) { + log("❌ WebSocket rejected packet ${packet.getPacketId()}, re-queueing") + packetQueue.add(packet) + return + } log("✅ Packet ${packet.getPacketId()} sent successfully") } catch (e: Exception) { log("❌ Exception sending packet ${packet.getPacketId()}: ${e.message}") @@ -554,6 +597,7 @@ class Protocol( */ fun isConnected(): Boolean = _state.value == ProtocolState.CONNECTED || _state.value == ProtocolState.HANDSHAKING || + _state.value == ProtocolState.DEVICE_VERIFICATION_REQUIRED || _state.value == ProtocolState.AUTHENTICATED /** diff --git a/app/src/main/java/com/rosetta/messenger/network/ProtocolManager.kt b/app/src/main/java/com/rosetta/messenger/network/ProtocolManager.kt index c8405f7..0bc24dd 100644 --- a/app/src/main/java/com/rosetta/messenger/network/ProtocolManager.kt +++ b/app/src/main/java/com/rosetta/messenger/network/ProtocolManager.kt @@ -1,15 +1,18 @@ package com.rosetta.messenger.network import android.content.Context +import android.os.Build import com.rosetta.messenger.data.AccountManager import com.rosetta.messenger.data.MessageRepository import kotlinx.coroutines.* import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow +import java.security.SecureRandom import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.atomic.AtomicInteger import kotlin.coroutines.resume /** @@ -21,6 +24,9 @@ object ProtocolManager { // Server address - same as React Native version private const val SERVER_ADDRESS = "ws://46.28.71.12:3000" + private const val DEVICE_PREFS = "rosetta_protocol" + private const val DEVICE_ID_KEY = "device_id" + private const val DEVICE_ID_LENGTH = 128 private var protocol: Protocol? = null private var messageRepository: MessageRepository? = null @@ -36,6 +42,13 @@ object ProtocolManager { private val _typingUsers = MutableStateFlow>(emptySet()) val typingUsers: StateFlow> = _typingUsers.asStateFlow() + // Connected devices and pending verification requests + private val _devices = MutableStateFlow>(emptyList()) + val devices: StateFlow> = _devices.asStateFlow() + + private val _pendingDeviceVerification = MutableStateFlow(null) + val pendingDeviceVerification: StateFlow = _pendingDeviceVerification.asStateFlow() + // Сигнал обновления own profile (username/name загружены с сервера) private val _ownProfileUpdated = MutableStateFlow(0L) val ownProfileUpdated: StateFlow = _ownProfileUpdated.asStateFlow() @@ -50,6 +63,10 @@ object ProtocolManager { // 🚀 Флаг для включения UI логов (по умолчанию ВЫКЛЮЧЕНО - это вызывало ANR!) private var uiLogsEnabled = false + private var lastProtocolState: ProtocolState? = null + @Volatile private var syncBatchInProgress = false + @Volatile private var resyncRequiredAfterAccountInit = false + private val inboundPacketTasks = AtomicInteger(0) fun addLog(message: String) { val timestamp = dateFormat.format(Date()) @@ -85,7 +102,11 @@ object ProtocolManager { private fun setupStateMonitoring() { scope.launch { getProtocol().state.collect { newState -> - // State monitoring without logging + val previous = lastProtocolState + if (newState == ProtocolState.AUTHENTICATED && previous != ProtocolState.AUTHENTICATED) { + onAuthenticated() + } + lastProtocolState = newState } } } @@ -95,9 +116,13 @@ object ProtocolManager { * Должен вызываться после авторизации пользователя */ fun initializeAccount(publicKey: String, privateKey: String) { - val start = System.currentTimeMillis() + syncBatchInProgress = false messageRepository?.initialize(publicKey, privateKey) -} + if (resyncRequiredAfterAccountInit || protocol?.isAuthenticated() == true) { + resyncRequiredAfterAccountInit = false + requestSynchronize() + } + } /** * Настройка обработчиков пакетов @@ -115,9 +140,17 @@ object ProtocolManager { } send(deliveryPacket) - scope.launch { + launchInboundPacketTask { + val repository = messageRepository + if (repository == null || !repository.isInitialized()) { + requireResyncAfterAccountInit("⏳ Incoming message before account init, scheduling re-sync") + return@launchInboundPacketTask + } try { - messageRepository?.handleIncomingMessage(messagePacket) + repository.handleIncomingMessage(messagePacket) + if (!syncBatchInProgress) { + repository.updateLastSyncTimestamp(messagePacket.timestamp) + } } catch (e: Exception) { // Silent error handling } @@ -128,8 +161,13 @@ object ProtocolManager { waitPacket(0x08) { packet -> val deliveryPacket = packet as PacketDelivery - scope.launch { - messageRepository?.handleDelivery(deliveryPacket) + launchInboundPacketTask { + val repository = messageRepository + if (repository == null || !repository.isInitialized()) { + requireResyncAfterAccountInit("⏳ Delivery status before account init, scheduling re-sync") + return@launchInboundPacketTask + } + repository.handleDelivery(deliveryPacket) } } @@ -138,10 +176,41 @@ object ProtocolManager { waitPacket(0x07) { packet -> val readPacket = packet as PacketRead - scope.launch { - messageRepository?.handleRead(readPacket) + launchInboundPacketTask { + val repository = messageRepository + if (repository == null || !repository.isInitialized()) { + requireResyncAfterAccountInit("⏳ Read status before account init, scheduling re-sync") + return@launchInboundPacketTask + } + repository.handleRead(readPacket) + if (!syncBatchInProgress) { + repository.updateLastSyncTimestamp(System.currentTimeMillis()) + } } } + + // 🔐 New device login attempt (0x09) — desktop parity (system Safe message) + waitPacket(0x09) { packet -> + val devicePacket = packet as PacketDeviceNew + + addLog( + "🔐 DEVICE LOGIN ATTEMPT: ip=${devicePacket.ipAddress}, device=${devicePacket.device.deviceName}, os=${devicePacket.device.deviceOs}" + ) + + launchInboundPacketTask { + messageRepository?.addDeviceLoginSystemMessage( + ipAddress = devicePacket.ipAddress, + deviceId = devicePacket.device.deviceId, + deviceName = devicePacket.device.deviceName, + deviceOs = devicePacket.device.deviceOs + ) + } + } + + // 🔄 Обработчик батчевой синхронизации (0x19) + waitPacket(0x19) { packet -> + handleSyncPacket(packet as PacketSync) + } // 🟢 Обработчик онлайн-статуса (0x05) waitPacket(0x05) { packet -> @@ -168,6 +237,16 @@ object ProtocolManager { _typingUsers.value = _typingUsers.value - typingPacket.fromPublicKey } } + + // 📱 Обработчик списка устройств (0x17) + waitPacket(0x17) { packet -> + val devicesPacket = packet as PacketDeviceList + val parsedDevices = devicesPacket.devices + _devices.value = parsedDevices + _pendingDeviceVerification.value = parsedDevices.firstOrNull { device -> + device.deviceVerify == DeviceVerifyState.NOT_VERIFIED + } + } // 🔥 Обработчик поиска/user info (0x03) // Обновляет информацию о пользователе в диалогах когда приходит ответ от сервера @@ -224,6 +303,78 @@ object ProtocolManager { TransportManager.setTransportServer(transportPacket.transportServer) } } + + private fun launchInboundPacketTask(block: suspend () -> Unit) { + inboundPacketTasks.incrementAndGet() + scope.launch { + try { + block() + } finally { + inboundPacketTasks.decrementAndGet() + } + } + } + + private fun requireResyncAfterAccountInit(reason: String) { + if (!resyncRequiredAfterAccountInit) { + addLog(reason) + } + resyncRequiredAfterAccountInit = true + } + + private suspend fun waitInboundPacketTasks(timeoutMs: Long = 15_000L) { + val deadline = System.currentTimeMillis() + timeoutMs + while (inboundPacketTasks.get() > 0 && System.currentTimeMillis() < deadline) { + delay(25) + } + } + + private fun onAuthenticated() { + TransportManager.requestTransportServer() + fetchOwnProfile() + requestSynchronize() + } + + private fun requestSynchronize() { + scope.launch { + val repository = messageRepository + if (repository == null || !repository.isInitialized()) { + requireResyncAfterAccountInit("⏳ Sync postponed until account is initialized") + return@launch + } + val lastSync = repository.getLastSyncTimestamp() + sendSynchronize(lastSync) + } + } + + private fun sendSynchronize(timestamp: Long) { + val packet = PacketSync().apply { + status = SyncStatus.NOT_NEEDED + this.timestamp = timestamp + } + send(packet) + } + + private fun handleSyncPacket(packet: PacketSync) { + scope.launch { + when (packet.status) { + SyncStatus.BATCH_START -> { + syncBatchInProgress = true + } + SyncStatus.BATCH_END -> { + syncBatchInProgress = true + waitInboundPacketTasks() + messageRepository?.updateLastSyncTimestamp(packet.timestamp) + syncBatchInProgress = false + sendSynchronize(packet.timestamp) + } + SyncStatus.NOT_NEEDED -> { + syncBatchInProgress = false + messageRepository?.updateLastSyncTimestamp(packet.timestamp) + } + } + } + } /** * Get or create Protocol instance @@ -258,14 +409,8 @@ object ProtocolManager { * Authenticate with server */ fun authenticate(publicKey: String, privateHash: String) { - getProtocol().startHandshake(publicKey, privateHash) - - // 🚀 Запрашиваем транспортный сервер и own profile после авторизации - scope.launch { - delay(500) // Даём время на завершение handshake - TransportManager.requestTransportServer() - fetchOwnProfile() - } + val device = buildHandshakeDevice() + getProtocol().startHandshake(publicKey, privateHash, device) } /** @@ -380,6 +525,28 @@ object ProtocolManager { null } } + + /** + * Accept a pending device login request. + */ + fun acceptDevice(deviceId: String) { + val packet = PacketDeviceResolve().apply { + this.deviceId = deviceId + this.solution = DeviceResolveSolution.ACCEPT + } + send(packet) + } + + /** + * Decline a pending device login request. + */ + fun declineDevice(deviceId: String) { + val packet = PacketDeviceResolve().apply { + this.deviceId = deviceId + this.solution = DeviceResolveSolution.DECLINE + } + send(packet) + } /** * Send packet (simplified) @@ -408,6 +575,50 @@ object ProtocolManager { fun unwaitPacket(packetId: Int, callback: (Packet) -> Unit) { getProtocol().unwaitPacket(packetId, callback) } + + private fun buildHandshakeDevice(): HandshakeDevice { + val context = appContext + val deviceId = if (context != null) { + getOrCreateDeviceId(context) + } else { + generateDeviceId() + } + val manufacturer = Build.MANUFACTURER.orEmpty().trim() + val model = Build.MODEL.orEmpty().trim() + val name = listOf(manufacturer, model) + .filter { it.isNotBlank() } + .distinct() + .joinToString(" ") + .ifBlank { "Android Device" } + val os = "Android ${Build.VERSION.RELEASE ?: "Unknown"}" + + return HandshakeDevice( + deviceId = deviceId, + deviceName = name, + deviceOs = os + ) + } + + private fun getOrCreateDeviceId(context: Context): String { + val prefs = context.getSharedPreferences(DEVICE_PREFS, Context.MODE_PRIVATE) + val cached = prefs.getString(DEVICE_ID_KEY, null) + if (!cached.isNullOrBlank()) { + return cached + } + val newId = generateDeviceId() + prefs.edit().putString(DEVICE_ID_KEY, newId).apply() + return newId + } + + private fun generateDeviceId(): String { + val chars = "abcdefghijklmnopqrstuvwxyz0123456789" + val random = SecureRandom() + return buildString(DEVICE_ID_LENGTH) { + repeat(DEVICE_ID_LENGTH) { + append(chars[random.nextInt(chars.length)]) + } + } + } /** * Disconnect and clear @@ -415,6 +626,10 @@ object ProtocolManager { fun disconnect() { protocol?.disconnect() protocol?.clearCredentials() + _devices.value = emptyList() + _pendingDeviceVerification.value = null + syncBatchInProgress = false + inboundPacketTasks.set(0) } /** @@ -423,6 +638,10 @@ object ProtocolManager { fun destroy() { protocol?.destroy() protocol = null + _devices.value = emptyList() + _pendingDeviceVerification.value = null + syncBatchInProgress = false + inboundPacketTasks.set(0) scope.cancel() } diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/DeviceConfirmScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/DeviceConfirmScreen.kt new file mode 100644 index 0000000..8fa6d35 --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/DeviceConfirmScreen.kt @@ -0,0 +1,199 @@ +package com.rosetta.messenger.ui.auth + +import android.os.Build +import androidx.compose.foundation.BorderStroke +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.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.widthIn +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.airbnb.lottie.compose.LottieAnimation +import com.airbnb.lottie.compose.LottieCompositionSpec +import com.airbnb.lottie.compose.LottieConstants +import com.airbnb.lottie.compose.animateLottieCompositionAsState +import com.airbnb.lottie.compose.rememberLottieComposition +import com.rosetta.messenger.R +import com.rosetta.messenger.network.DeviceResolveSolution +import com.rosetta.messenger.network.Packet +import com.rosetta.messenger.network.PacketDeviceResolve +import com.rosetta.messenger.network.ProtocolManager +import com.rosetta.messenger.ui.onboarding.PrimaryBlue +import compose.icons.TablerIcons +import compose.icons.tablericons.DeviceMobile +import kotlinx.coroutines.launch + +@Composable +fun DeviceConfirmScreen( + isDarkTheme: Boolean, + onExit: () -> Unit +) { + val backgroundColor = if (isDarkTheme) Color(0xFF1A1A1A) else Color(0xFFF2F2F7) + val cardColor = if (isDarkTheme) Color(0xFF2C2C2E) else Color.White + val cardBorderColor = if (isDarkTheme) Color(0xFF3A3A3C) else Color(0xFFE8E8ED) + val textColor = if (isDarkTheme) Color.White else Color.Black + val secondaryTextColor = if (isDarkTheme) Color(0xFF8E8E93) else Color(0xFF666666) + val onExitState by rememberUpdatedState(onExit) + val scope = rememberCoroutineScope() + + val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.device_confirm)) + val progress by animateLottieCompositionAsState( + composition = composition, + iterations = LottieConstants.IterateForever + ) + + val localDeviceName = remember { + listOf(Build.MANUFACTURER.orEmpty(), Build.MODEL.orEmpty()) + .filter { it.isNotBlank() } + .distinct() + .joinToString(" ") + .ifBlank { "this device" } + } + + DisposableEffect(Unit) { + val callback: (Packet) -> Unit = callback@{ packet -> + val resolve = packet as? PacketDeviceResolve ?: return@callback + if (resolve.solution == DeviceResolveSolution.DECLINE) { + scope.launch { onExitState() } + } + } + ProtocolManager.waitPacket(0x18, callback) + onDispose { + ProtocolManager.unwaitPacket(0x18, callback) + } + } + + Box( + modifier = Modifier + .fillMaxSize() + .background(backgroundColor) + .navigationBarsPadding() + .padding(horizontal = 22.dp), + contentAlignment = Alignment.Center + ) { + Surface( + modifier = Modifier + .fillMaxWidth() + .widthIn(max = 400.dp), + color = cardColor, + shape = RoundedCornerShape(24.dp), + border = BorderStroke(1.dp, cardBorderColor) + ) { + Column( + modifier = Modifier.padding(horizontal = 20.dp, vertical = 20.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + LottieAnimation( + composition = composition, + progress = { progress }, + modifier = Modifier.size(128.dp) + ) + + Spacer(modifier = Modifier.height(8.dp)) + + Row(verticalAlignment = Alignment.CenterVertically) { + Icon( + imageVector = TablerIcons.DeviceMobile, + contentDescription = null, + tint = PrimaryBlue + ) + Spacer(modifier = Modifier.size(6.dp)) + Text( + text = "NEW DEVICE REQUEST", + color = PrimaryBlue, + fontSize = 12.sp, + fontWeight = FontWeight.SemiBold + ) + } + + Spacer(modifier = Modifier.height(10.dp)) + + Text( + text = "Waiting for approval", + color = textColor, + fontSize = 22.sp, + fontWeight = FontWeight.SemiBold, + textAlign = TextAlign.Center + ) + + Spacer(modifier = Modifier.height(10.dp)) + + Text( + text = "Open Rosetta on your first device and approve this login request.", + color = secondaryTextColor, + fontSize = 14.sp, + textAlign = TextAlign.Center, + lineHeight = 20.sp + ) + + Spacer(modifier = Modifier.height(14.dp)) + + Text( + text = "\"$localDeviceName\" is waiting for approval", + color = textColor.copy(alpha = 0.9f), + fontSize = 13.sp, + textAlign = TextAlign.Center, + lineHeight = 20.sp + ) + + Spacer(modifier = Modifier.height(18.dp)) + + Text( + text = "If you didn't request this login, tap Exit.", + color = secondaryTextColor, + fontSize = 12.sp, + textAlign = TextAlign.Center + ) + + Spacer(modifier = Modifier.height(12.dp)) + + Button( + onClick = onExitState, + modifier = Modifier.height(42.dp), + colors = ButtonDefaults.buttonColors( + containerColor = Color(0xFFFF3B30), + contentColor = Color.White + ), + shape = RoundedCornerShape(12.dp) + ) { + Text("Exit") + } + + Spacer(modifier = Modifier.height(4.dp)) + + Text( + text = "Waiting for confirmation...", + color = secondaryTextColor, + fontSize = 11.sp + ) + } + } + } +} diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt index 0d07e53..79e16fb 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt @@ -66,6 +66,7 @@ import com.airbnb.lottie.compose.animateLottieCompositionAsState import com.airbnb.lottie.compose.rememberLottieComposition import com.rosetta.messenger.R import com.rosetta.messenger.data.ForwardManager +import com.rosetta.messenger.data.MessageRepository import com.rosetta.messenger.database.RosettaDatabase import com.rosetta.messenger.network.AttachmentType import com.rosetta.messenger.network.ProtocolManager @@ -438,11 +439,13 @@ fun ChatDetailScreen( } // Динамический subtitle: typing > online > offline + val isSystemAccount = user.publicKey == MessageRepository.SYSTEM_SAFE_PUBLIC_KEY val chatSubtitle = when { isSavedMessages -> "Notes" isTyping -> "" // Пустая строка, используем компонент TypingIndicator isOnline -> "online" + isSystemAccount -> "official account" else -> "offline" } @@ -1041,7 +1044,9 @@ fun ChatDetailScreen( } } // Кнопки действий - if (!isSavedMessages) { + if (!isSavedMessages && + !isSystemAccount + ) { IconButton( onClick = { /* TODO: Voice call */ } @@ -1117,6 +1122,8 @@ fun ChatDetailScreen( isDarkTheme, isSavedMessages = isSavedMessages, + isSystemAccount = + isSystemAccount, isBlocked = isBlocked, onBlockClick = { @@ -1878,6 +1885,8 @@ fun ChatDetailScreen( message, isDarkTheme = isDarkTheme, + isSystemSafeChat = + isSystemAccount, isSelectionMode = isSelectionMode, showTail = diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt index fa61ccd..866c512 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt @@ -1695,6 +1695,13 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { * - Сохранение в БД в IO потоке * - Поддержка Reply/Forward через attachments (как в React Native) */ + private fun encryptAesChachaKey(plainKeyAndNonce: ByteArray, privateKey: String): String { + return CryptoManager.encryptWithPassword( + String(plainKeyAndNonce, Charsets.ISO_8859_1), + privateKey + ) + } + fun sendMessage() { val text = _inputText.value.trim() val recipient = opponentKey @@ -1793,6 +1800,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce // Для шифрования attachments + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, privateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(privateKey) @@ -1916,6 +1924,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipient content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId @@ -2022,6 +2031,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, privateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(privateKey) val messageAttachments = mutableListOf() @@ -2118,6 +2128,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipientPublicKey content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId @@ -2369,6 +2380,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, privateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(privateKey) @@ -2404,6 +2416,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipient content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId @@ -2530,6 +2543,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, privateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(privateKey) @@ -2568,6 +2582,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipient content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId @@ -2765,6 +2780,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, privateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(privateKey) @@ -2829,6 +2845,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipient content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId @@ -2934,6 +2951,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, privateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(privateKey) @@ -2968,6 +2986,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipient content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId @@ -3135,6 +3154,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { val encryptedContent = encryptResult.ciphertext val encryptedKey = encryptResult.encryptedKey val plainKeyAndNonce = encryptResult.plainKeyAndNonce + val aesChachaKey = encryptAesChachaKey(plainKeyAndNonce, userPrivateKey) val privateKeyHash = CryptoManager.generatePrivateKeyHash(userPrivateKey) @@ -3179,6 +3199,7 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { toPublicKey = recipient content = encryptedContent chachaKey = encryptedKey + this.aesChachaKey = aesChachaKey this.timestamp = timestamp this.privateKey = privateKeyHash this.messageId = messageId diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt index e780913..c16edd8 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clipToBounds +import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.graphics.lerp @@ -37,16 +38,21 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.DialogProperties import com.airbnb.lottie.compose.* import com.rosetta.messenger.R import com.rosetta.messenger.BuildConfig import com.rosetta.messenger.data.AccountManager import com.rosetta.messenger.data.EncryptedAccount import com.rosetta.messenger.data.RecentSearchesManager +import com.rosetta.messenger.network.DeviceEntry import com.rosetta.messenger.network.ProtocolManager import com.rosetta.messenger.network.ProtocolState import com.rosetta.messenger.repository.AvatarRepository import com.rosetta.messenger.ui.chats.components.AnimatedDotsText +import com.rosetta.messenger.ui.chats.components.DebugLogsBottomSheet +import com.rosetta.messenger.ui.chats.components.DeviceVerificationBanner import com.rosetta.messenger.ui.components.AppleEmojiText import com.rosetta.messenger.ui.components.AvatarImage import com.rosetta.messenger.ui.components.VerifiedBadge @@ -77,6 +83,11 @@ data class Chat( val isPinned: Boolean = false ) +private enum class DeviceResolveAction { + ACCEPT, + DECLINE +} + // Avatar colors matching React Native app (Mantine inspired) // Light theme colors (background lighter, text darker) private val avatarColorsLight = @@ -250,6 +261,8 @@ fun ChatsListScreen( // Protocol connection state val protocolState by ProtocolManager.state.collectAsState() + val syncLogs by ProtocolManager.debugLogs.collectAsState() + val pendingDeviceVerification by ProtocolManager.pendingDeviceVerification.collectAsState() // 🔥 Пользователи, которые сейчас печатают val typingUsers by ProtocolManager.typingUsers.collectAsState() @@ -275,6 +288,10 @@ fun ChatsListScreen( // Status dialog state var showStatusDialog by remember { mutableStateOf(false) } + var showSyncLogs by remember { mutableStateOf(false) } + + // Включаем UI логи только когда открыт bottom sheet, чтобы не перегружать композицию + LaunchedEffect(showSyncLogs) { ProtocolManager.enableUILogs(showSyncLogs) } // 📬 Requests screen state var showRequestsScreen by remember { mutableStateOf(false) } @@ -298,6 +315,10 @@ fun ChatsListScreen( var dialogsToDelete by remember { mutableStateOf>(emptyList()) } var dialogToBlock by remember { mutableStateOf(null) } var dialogToUnblock by remember { mutableStateOf(null) } + var deviceResolveRequest by + remember { + mutableStateOf?>(null) + } // 🔥 Selection mode state var selectedChatKeys by remember { mutableStateOf>(emptySet()) } @@ -379,6 +400,11 @@ fun ChatsListScreen( Color( 0xFF4CAF50 ) + ProtocolState + .DEVICE_VERIFICATION_REQUIRED -> + Color( + 0xFFFF9800 + ) ProtocolState .CONNECTING, ProtocolState @@ -443,6 +469,15 @@ fun ChatsListScreen( color = textColor ) } + ProtocolState.DEVICE_VERIFICATION_REQUIRED -> { + Text( + text = "Device verification required", + fontSize = 16.sp, + fontWeight = + FontWeight.Medium, + color = textColor + ) + } } } } @@ -1161,6 +1196,18 @@ fun ChatsListScreen( }, actions = { if (!showRequestsScreen) { + IconButton( + onClick = { + showSyncLogs = true + } + ) { + Icon( + TablerIcons.Bug, + contentDescription = "Sync logs", + tint = Color.White.copy(alpha = 0.92f) + ) + } + IconButton( onClick = { if (protocolState == @@ -1508,6 +1555,33 @@ fun ChatsListScreen( listBackgroundColor ) ) { + pendingDeviceVerification?.let { pendingDevice -> + item(key = "device_verification_banner_${pendingDevice.deviceId}") { + Column { + DeviceVerificationBanner( + device = pendingDevice, + isDarkTheme = isDarkTheme, + accountPublicKey = accountPublicKey, + avatarRepository = avatarRepository, + onAccept = { + deviceResolveRequest = + pendingDevice to + DeviceResolveAction.ACCEPT + }, + onDecline = { + deviceResolveRequest = + pendingDevice to + DeviceResolveAction.DECLINE + } + ) + Divider( + color = dividerColor, + thickness = 0.5.dp + ) + } + } + } + if (requestsCount > 0) { item( key = @@ -1819,9 +1893,173 @@ fun ChatsListScreen( ) } + deviceResolveRequest?.let { (device, action) -> + DeviceResolveDialog( + isDarkTheme = isDarkTheme, + device = device, + action = action, + onDismiss = { deviceResolveRequest = null }, + onConfirm = { + val request = deviceResolveRequest + deviceResolveRequest = null + if (request != null) { + when (request.second) { + DeviceResolveAction.ACCEPT -> { + ProtocolManager.acceptDevice( + request.first.deviceId + ) + } + DeviceResolveAction.DECLINE -> { + ProtocolManager.declineDevice( + request.first.deviceId + ) + } + } + } + } + ) + } + + if (showSyncLogs) { + DebugLogsBottomSheet( + logs = syncLogs, + isDarkTheme = isDarkTheme, + onDismiss = { showSyncLogs = false }, + onClearLogs = { ProtocolManager.clearLogs() } + ) + } + } // Close Box } +@Composable +private fun DeviceResolveDialog( + isDarkTheme: Boolean, + device: DeviceEntry, + action: DeviceResolveAction, + onDismiss: () -> Unit, + onConfirm: () -> Unit +) { + val containerColor = if (isDarkTheme) Color(0xFF2C2C2E) else Color.White + val borderColor = if (isDarkTheme) Color(0xFF3A3A3C) else Color(0xFFE8E8ED) + val textColor = if (isDarkTheme) Color.White else Color.Black + val secondaryTextColor = if (isDarkTheme) Color(0xFF8E8E93) else Color(0xFF666666) + val isAccept = action == DeviceResolveAction.ACCEPT + val confirmColor = if (isAccept) PrimaryBlue else Color(0xFFFF3B30) + val accentBg = + if (isDarkTheme) confirmColor.copy(alpha = 0.18f) + else confirmColor.copy(alpha = 0.12f) + + val composition by rememberLottieComposition( + LottieCompositionSpec.RawRes( + if (isAccept) R.raw.saved else R.raw.device_confirm + ) + ) + val progress by animateLottieCompositionAsState( + composition = composition, + iterations = LottieConstants.IterateForever + ) + val deviceLabel = buildString { + append(device.deviceName.ifBlank { "Unknown device" }) + if (device.deviceOs.isNotBlank()) { + append(" • ") + append(device.deviceOs) + } + } + + Dialog( + onDismissRequest = onDismiss, + properties = DialogProperties(usePlatformDefaultWidth = false) + ) { + Surface( + modifier = + Modifier.fillMaxWidth() + .padding(horizontal = 24.dp) + .widthIn(max = 380.dp), + color = containerColor, + shape = RoundedCornerShape(22.dp), + border = BorderStroke(1.dp, borderColor) + ) { + Column( + modifier = Modifier.padding(horizontal = 18.dp, vertical = 18.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Box( + modifier = + Modifier.size(96.dp) + .clip(RoundedCornerShape(20.dp)) + .background(accentBg), + contentAlignment = Alignment.Center + ) { + LottieAnimation( + composition = composition, + progress = { progress }, + modifier = Modifier.size(78.dp) + ) + } + + Spacer(modifier = Modifier.height(14.dp)) + + Text( + text = if (isAccept) "Approve new device?" else "Decline this login?", + fontWeight = FontWeight.Bold, + color = textColor, + fontSize = 19.sp, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + + Spacer(modifier = Modifier.height(8.dp)) + + Text( + text = + if (isAccept) { + "Allow \"$deviceLabel\" to access your account?" + } else { + "Block login from \"$deviceLabel\"?" + }, + color = secondaryTextColor, + textAlign = TextAlign.Center, + lineHeight = 19.sp, + maxLines = 3, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.fillMaxWidth() + ) + + Spacer(modifier = Modifier.height(14.dp)) + + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + OutlinedButton( + onClick = onDismiss, + modifier = Modifier.weight(1f).height(42.dp), + shape = RoundedCornerShape(12.dp), + border = BorderStroke( + width = 1.dp, + color = if (isDarkTheme) Color(0xFF4A4F60) else Color(0xFFD9D9DE) + ) + ) { + Text("Cancel", color = secondaryTextColor) + } + Button( + onClick = onConfirm, + modifier = Modifier.weight(1f).height(42.dp), + shape = RoundedCornerShape(12.dp), + colors = ButtonDefaults.buttonColors( + containerColor = confirmColor, + contentColor = Color.White + ) + ) { + Text(if (isAccept) "Approve" else "Decline login") + } + } + } + } + } +} + /** * 🚀 Shimmer skeleton для списка чатов — показывается пока данные грузятся Имитирует 10 строк * диалогов: аватар + 2 строки текста diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/components/ChatDetailComponents.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/components/ChatDetailComponents.kt index 2cf1e8e..a32a496 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/components/ChatDetailComponents.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/components/ChatDetailComponents.kt @@ -33,7 +33,10 @@ import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.withStyle import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp @@ -244,6 +247,7 @@ fun TypingIndicator(isDarkTheme: Boolean) { fun MessageBubble( message: ChatMessage, isDarkTheme: Boolean, + isSystemSafeChat: Boolean = false, isSelectionMode: Boolean = false, showTail: Boolean = true, isGroupStart: Boolean = false, @@ -322,30 +326,43 @@ fun MessageBubble( else if (isDarkTheme) Color(0xFF8E8E93) else Color(0xFF666666) } + val isSafeSystemMessage = + isSystemSafeChat && + !message.isOutgoing && + message.replyData == null && + message.forwardedMessages.isEmpty() && + message.attachments.isEmpty() && + message.text.isNotBlank() + // Telegram: bubbleRadius = 17dp, smallRad (хвостик) = 6dp val bubbleShape = - remember(message.isOutgoing, showTail) { - RoundedCornerShape( - topStart = TelegramBubbleSpec.bubbleRadius, - topEnd = TelegramBubbleSpec.bubbleRadius, - bottomStart = - if (message.isOutgoing) TelegramBubbleSpec.bubbleRadius - else - (if (showTail) TelegramBubbleSpec.nearRadius - else TelegramBubbleSpec.bubbleRadius), - bottomEnd = - if (message.isOutgoing) - (if (showTail) TelegramBubbleSpec.nearRadius - else TelegramBubbleSpec.bubbleRadius) - else TelegramBubbleSpec.bubbleRadius - ) + remember(message.isOutgoing, showTail, isSafeSystemMessage) { + if (isSafeSystemMessage) { + RoundedCornerShape(18.dp) + } else { + RoundedCornerShape( + topStart = TelegramBubbleSpec.bubbleRadius, + topEnd = TelegramBubbleSpec.bubbleRadius, + bottomStart = + if (message.isOutgoing) TelegramBubbleSpec.bubbleRadius + else + (if (showTail) TelegramBubbleSpec.nearRadius + else TelegramBubbleSpec.bubbleRadius), + bottomEnd = + if (message.isOutgoing) + (if (showTail) TelegramBubbleSpec.nearRadius + else TelegramBubbleSpec.bubbleRadius) + else TelegramBubbleSpec.bubbleRadius + ) + } } val timeFormat = remember { SimpleDateFormat("HH:mm", Locale.getDefault()) } Box( modifier = - Modifier.fillMaxWidth().pointerInput(Unit) { + Modifier.fillMaxWidth().pointerInput(isSafeSystemMessage) { + if (isSafeSystemMessage) return@pointerInput // 🔥 Простой горизонтальный свайп для reply // Используем detectHorizontalDragGestures который лучше работает со // скроллом @@ -501,6 +518,7 @@ fun MessageBubble( // Для фото + caption - padding только внизу для текста val bubblePadding = when { + isSafeSystemMessage -> PaddingValues(0.dp) hasOnlyMedia -> PaddingValues(0.dp) hasImageWithCaption -> PaddingValues(0.dp) else -> PaddingValues(horizontal = 10.dp, vertical = 8.dp) @@ -578,7 +596,9 @@ fun MessageBubble( } val bubbleWidthModifier = - if (hasImageWithCaption || hasOnlyMedia) { + if (isSafeSystemMessage) { + Modifier.widthIn(min = 220.dp, max = 320.dp) + } else if (hasImageWithCaption || hasOnlyMedia) { Modifier.width( photoWidth ) // 🔥 Фиксированная ширина = размер фото (убирает лишний @@ -635,13 +655,25 @@ fun MessageBubble( }, shape = bubbleShape ) + } else if (isSafeSystemMessage) { + Modifier.background( + if (isDarkTheme) Color(0xFF2A2A2D) + else Color(0xFFF0F0F4) + ) } else { Modifier.background(bubbleColor) } ) .padding(bubblePadding) ) { - Column { + if (isSafeSystemMessage) { + SafeSystemMessageCard( + text = message.text, + timestamp = message.timestamp, + isDarkTheme = isDarkTheme + ) + } else { + Column { // 🔥 Forwarded messages (multiple, desktop parity) if (message.forwardedMessages.isNotEmpty()) { ForwardedMessagesBubble( @@ -962,11 +994,86 @@ fun MessageBubble( ) } } + } } } } } +@Composable +private fun SafeSystemMessageCard(text: String, timestamp: Date, isDarkTheme: Boolean) { + val contentColor = if (isDarkTheme) Color(0xFFE8E9EE) else Color(0xFF1E1F23) + val timeColor = if (isDarkTheme) Color(0xFFB3B7C0) else Color(0xFF737983) + val annotatedText = remember(text) { buildSafeSystemAnnotatedText(text) } + val timeFormat = remember { SimpleDateFormat("HH:mm", Locale.getDefault()) } + + Column( + modifier = + Modifier.fillMaxWidth().padding(start = 14.dp, end = 14.dp, top = 12.dp, bottom = 8.dp) + ) { + Text( + text = annotatedText, + color = contentColor, + fontSize = 16.sp, + lineHeight = 20.sp + ) + Spacer(modifier = Modifier.height(6.dp)) + Text( + text = timeFormat.format(timestamp), + color = timeColor, + fontSize = 11.sp, + modifier = Modifier.align(Alignment.End) + ) + } +} + +private fun buildSafeSystemAnnotatedText(text: String) = buildAnnotatedString { + val boldStyle = SpanStyle(fontWeight = FontWeight.SemiBold) + val lines = text.lines() + + lines.forEachIndexed { index, line -> + when { + index == 0 && line.isNotBlank() -> { + withStyle(boldStyle) { append(line) } + } + line.startsWith("We detected a login to your account from ") -> { + val prefix = "We detected a login to your account from " + val marker = " a new device by seed phrase" + val tail = line.removePrefix(prefix) + val markerIndex = tail.indexOf(marker) + + if (markerIndex > 0) { + val ip = tail.substring(0, markerIndex) + append(prefix) + withStyle(boldStyle) { append(ip) } + append(" a new device ") + withStyle(boldStyle) { append("by seed phrase") } + append(tail.substring(markerIndex + marker.length)) + } else { + append(line) + } + } + line.startsWith("Arch:") || + line.startsWith("IP:") || + line.startsWith("Device:") || + line.startsWith("ID:") -> { + val separatorIndex = line.indexOf(':') + if (separatorIndex > 0) { + withStyle(boldStyle) { append(line.substring(0, separatorIndex + 1)) } + if (separatorIndex + 1 < line.length) { + append(line.substring(separatorIndex + 1)) + } + } else { + append(line) + } + } + else -> append(line) + } + + if (index < lines.lastIndex) append('\n') + } +} + /** Animated message status indicator */ @Composable fun AnimatedMessageStatus( @@ -1722,6 +1829,7 @@ fun KebabMenu( onDismiss: () -> Unit, isDarkTheme: Boolean, isSavedMessages: Boolean, + isSystemAccount: Boolean = false, isBlocked: Boolean, onBlockClick: () -> Unit, onUnblockClick: () -> Unit, @@ -1752,7 +1860,7 @@ fun KebabMenu( dismissOnClickOutside = true ) ) { - if (!isSavedMessages) { + if (!isSavedMessages && !isSystemAccount) { KebabMenuItem( icon = if (isBlocked) TelegramIcons.Done else TelegramIcons.Block, text = if (isBlocked) "Unblock User" else "Block User", diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/components/DeviceVerificationBanner.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/components/DeviceVerificationBanner.kt new file mode 100644 index 0000000..5bd9cc1 --- /dev/null +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/components/DeviceVerificationBanner.kt @@ -0,0 +1,124 @@ +package com.rosetta.messenger.ui.chats.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.rosetta.messenger.network.DeviceEntry +import com.rosetta.messenger.repository.AvatarRepository +import com.rosetta.messenger.ui.components.AvatarImage +import com.rosetta.messenger.ui.onboarding.PrimaryBlue + +@Composable +fun DeviceVerificationBanner( + device: DeviceEntry, + isDarkTheme: Boolean, + accountPublicKey: String, + avatarRepository: AvatarRepository?, + onAccept: () -> Unit, + onDecline: () -> Unit +) { + val itemBackground = if (isDarkTheme) Color(0xFF1A1A1A) else Color(0xFFF2F2F7) + val titleColor = if (isDarkTheme) Color.White else Color.Black + val subtitleColor = if (isDarkTheme) Color(0xFF8E8E93) else Color(0xFF666666) + val acceptColor = PrimaryBlue + val declineColor = Color(0xFFFF3B30) + + val loginText = + buildString { + append("New login from ") + append(device.deviceName) + if (device.deviceOs.isNotBlank()) { + append(" (") + append(device.deviceOs) + append(")") + } + append(". Is it you?") + } + + Column( + modifier = Modifier + .fillMaxWidth() + .background(itemBackground) + .padding(horizontal = 16.dp, vertical = 8.dp) + ) { + Row { + AvatarImage( + publicKey = accountPublicKey, + avatarRepository = avatarRepository, + size = 56.dp, + isDarkTheme = isDarkTheme + ) + + Spacer(modifier = Modifier.width(12.dp)) + + Column(modifier = Modifier.weight(1f)) { + Text( + text = "Someone just got access to your messages!", + color = titleColor, + fontSize = 15.sp, + fontWeight = FontWeight.SemiBold, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Spacer(modifier = Modifier.height(3.dp)) + + Text( + text = loginText, + color = subtitleColor, + fontSize = 13.sp, + lineHeight = 17.sp, + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + + Spacer(modifier = Modifier.height(6.dp)) + + Row { + TextButton( + onClick = onAccept, + contentPadding = PaddingValues(0.dp), + modifier = Modifier.height(32.dp) + ) { + Text( + text = "Yes, it's me", + color = acceptColor, + fontSize = 14.sp, + fontWeight = FontWeight.SemiBold + ) + } + + Spacer(modifier = Modifier.width(12.dp)) + + TextButton( + onClick = onDecline, + contentPadding = PaddingValues(0.dp), + modifier = Modifier.height(32.dp) + ) { + Text( + text = "No, it's not me!", + color = declineColor, + fontSize = 14.sp, + fontWeight = FontWeight.SemiBold + ) + } + } + } + } + } +} diff --git a/app/src/main/java/com/rosetta/messenger/ui/components/AvatarImage.kt b/app/src/main/java/com/rosetta/messenger/ui/components/AvatarImage.kt index bab951f..4db16c5 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/components/AvatarImage.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/components/AvatarImage.kt @@ -18,11 +18,14 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import com.rosetta.messenger.R +import com.rosetta.messenger.data.MessageRepository import com.rosetta.messenger.repository.AvatarRepository import com.rosetta.messenger.ui.chats.AvatarColors import com.rosetta.messenger.ui.chats.getAvatarColor @@ -75,6 +78,8 @@ fun AvatarImage( shape: Shape = CircleShape, displayName: String? = null // 🔥 Имя для инициалов (title/username) ) { + val isSystemSafeAccount = publicKey == MessageRepository.SYSTEM_SAFE_PUBLIC_KEY + // Получаем аватары из репозитория val avatars by avatarRepository?.getAvatars(publicKey, allDecode = false)?.collectAsState() ?: remember { mutableStateOf(emptyList()) } @@ -129,7 +134,14 @@ fun AvatarImage( LaunchedEffect(bitmap) { } - if (bitmap != null) { + if (isSystemSafeAccount) { + Image( + painter = painterResource(id = R.drawable.safe_account), + contentDescription = "Safe avatar", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } else if (bitmap != null) { // Отображаем реальный аватар Image( bitmap = bitmap!!.asImageBitmap(), diff --git a/app/src/main/res/drawable/safe_account.png b/app/src/main/res/drawable/safe_account.png new file mode 100644 index 0000000..a6a13b7 Binary files /dev/null and b/app/src/main/res/drawable/safe_account.png differ diff --git a/app/src/main/res/raw/device_confirm.json b/app/src/main/res/raw/device_confirm.json new file mode 100644 index 0000000..45410cb --- /dev/null +++ b/app/src/main/res/raw/device_confirm.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"INBOX","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL SECOND BOX","parent":2,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[-3,42,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.5,0.5,0.5],"y":[0,0,0]},"t":74,"s":[100,100,100]},{"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":81,"s":[108,108,100]},{"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":88,"s":[105,105,100]},{"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":94,"s":[100,100,100]},{"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":100,"s":[105,105,100]},{"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":106,"s":[100,100,100]},{"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":112,"s":[105,105,100]},{"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":118,"s":[100,100,100]},{"i":{"x":[0.186,0.186,0.1],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":124,"s":[105,105,100]},{"t":156,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":180,"st":-4,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"FRONT","sr":1,"ks":{"o":{"a":1,"k":[{"t":55,"s":[100],"h":1},{"t":93,"s":[0],"h":1},{"t":120,"s":[100],"h":1}]},"r":{"a":1,"k":[{"i":{"x":[0.8],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":56,"s":[0]},{"i":{"x":[0.53],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":81,"s":[-3]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":94,"s":[3]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":106,"s":[-5]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":118,"s":[2]},{"i":{"x":[0.7],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":130,"s":[-2]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.1],"y":[0]},"t":143,"s":[1]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":154,"s":[0]},{"t":175,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":21,"s":[253.567,438.832,0],"to":[0,6.083,0],"ti":[0,2.917,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[253.567,475.332,0],"to":[0,-2.917,0],"ti":[0,4.417,0]},{"i":{"x":0.4,"y":0.895},"o":{"x":0.2,"y":0},"t":42,"s":[253.567,421.332,0],"to":[0,-4.417,0],"ti":[0,0.083,0]},{"i":{"x":0.745,"y":0.891},"o":{"x":0.56,"y":0.158},"t":52,"s":[253.567,448.832,0],"to":[0,-0.083,0],"ti":[0,-1.333,0]},{"i":{"x":0.752,"y":1},"o":{"x":0.688,"y":0.177},"t":68,"s":[253.567,420.832,0],"to":[0,1.333,0],"ti":[-0.167,7.667,0]},{"i":{"x":0.225,"y":1},"o":{"x":0.332,"y":0},"t":81,"s":[253.567,456.832,0],"to":[0.167,-7.667,0],"ti":[0,0.667,0]},{"i":{"x":0.797,"y":0.617},"o":{"x":0.486,"y":0},"t":97,"s":[254.567,374.832,0],"to":[0,-0.234,0],"ti":[0.14,-12.471,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.864,"y":0.242},"t":124,"s":[254.324,396.278,0],"to":[-0.26,23.063,0],"ti":[0.108,-6.274,0]},{"i":{"x":0.3,"y":0.944},"o":{"x":0.3,"y":0},"t":137,"s":[253.567,465.832,0],"to":[-0.167,9.667,0],"ti":[0,4.5,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0.209},"t":148,"s":[253.567,429.832,0],"to":[0,-4.5,0],"ti":[0,-1.5,0]},{"t":175,"s":[253.567,438.832,0]}]},"a":{"a":0,"k":[-2.433,179.832,0]},"s":{"a":1,"k":[{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.9,0.9,0.9],"y":[0,0,0]},"t":21,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":34,"s":[102,98,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":42,"s":[99,101,100]},{"i":{"x":[0.8,0.8,0.8],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":55,"s":[100,100,100]},{"i":{"x":[0.213,0.213,0.1],"y":[1,1,1]},"o":{"x":[0.484,0.484,0.2],"y":[0,0,0]},"t":77,"s":[100,100,100]},{"i":{"x":[0.9,0.9,0.9],"y":[1,1,1]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":105,"s":[92,92,100]},{"t":138,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":19,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-19.273],[29.04,0],[14.909,16.371],[30.244,0],[0,0],[-2.005,6.384]],"o":[[2.222,6.384],[0,0],[-24.696,0],[-15.947,18.485],[-30.144,0],[-26.243,-28.815],[0,0],[-2.484,0],[0,0]],"v":[[186.181,62.567],[182.981,70.34],[111.926,70.34],[59.935,104.732],[-2.433,135.51],[-64.886,104.296],[-126.536,70.34],[-187.948,70.34],[-191.219,62.567]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-17.415],[29.04,0],[14.909,14.793],[30.244,0],[0,0],[-2.005,5.769]],"o":[[2.222,5.769],[0,0],[-24.696,0],[-15.947,16.703],[-30.144,0],[-26.243,-26.037],[0,0],[-2.484,0],[0,0]],"v":[[186.107,66.5],[182.907,73.524],[111.852,73.524],[59.861,104.6],[-2.506,132.41],[-64.96,104.206],[-126.61,73.524],[-188.022,73.524],[-191.293,66.5]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-20.078],[29.04,0],[14.909,17.054],[30.244,0],[0,0],[-2.005,6.651]],"o":[[2.222,6.651],[0,0],[-24.696,0],[-15.947,19.257],[-30.144,0],[-26.243,-30.019],[0,0],[-2.484,0],[0,0]],"v":[[186.181,56.531],[182.981,64.629],[111.926,64.629],[59.935,100.457],[-2.433,132.52],[-64.886,100.003],[-126.536,64.629],[-187.948,64.629],[-191.219,56.531]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-19.273],[29.04,0],[14.909,16.371],[30.244,0],[0,0],[-2.005,6.384]],"o":[[2.222,6.384],[0,0],[-24.696,0],[-15.947,18.485],[-30.144,0],[-26.243,-28.815],[0,0],[-2.484,0],[0,0]],"v":[[186.181,62.567],[182.981,70.34],[111.926,70.34],[59.935,104.732],[-2.433,135.51],[-64.886,104.296],[-126.536,70.34],[-187.948,70.34],[-191.219,62.567]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[2.27,0],[0,0],[14.045,-19.463],[24.894,-2.109],[13.044,16.197],[26.016,-0.349],[0,0],[2.354,7.183]],"o":[[3.275,4.933],[0,0],[-21.243,0.285],[-13.47,18.667],[-25.84,2.189],[-22.96,-28.51],[0,0],[-2.24,0],[0,0]],"v":[[187.475,53.567],[185.089,62.34],[128.348,65.492],[83.335,98.48],[32.819,132.594],[-24.658,106.991],[-77.365,78.489],[-145.404,82.59],[-153.104,75.067]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[2.255,0],[0,0],[14.893,-17.732],[26.012,0],[13.354,15.062],[27.09,0],[0,0],[-1.796,5.874]],"o":[[1.99,5.874],[0,0],[-22.12,0],[-14.284,17.007],[-27,0],[-23.506,-26.511],[0,0],[-2.225,0],[0,0]],"v":[[166.553,66.97],[163.687,74.121],[100.042,74.121],[53.472,105.764],[-2.391,134.08],[-58.331,105.362],[-113.552,74.121],[-168.56,74.121],[-171.49,66.97]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[1.343,0],[0,0],[4.915,-16.108],[7.245,0.402],[1.838,6.151],[14.938,5.276],[0,0],[0,0]],"o":[[-10.881,5.678],[0,0],[-18.935,-7.349],[-4.034,13.22],[-7.872,-0.437],[-7.009,-23.459],[0,0],[-1.325,0],[0,0]],"v":[[3.601,88.261],[-16.981,89.538],[-67.103,67.93],[-100.415,85.006],[-121.12,102.996],[-137.116,90.106],[-158.563,33.871],[-207.208,14.371],[-209.579,13.095]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[1.036,0],[0,0],[0,0],[0.327,0],[0,0],[0,0],[0,0],[0.254,1.303]],"o":[[-2.511,-0.697],[0,0],[-2.228,0],[0,0],[-0.34,0],[0,0],[0,0],[-1.022,0],[0,0]],"v":[[-210.672,47.47],[-212.538,44.996],[-199.303,38.871],[-198.118,55.631],[-198.575,59.246],[-191.46,46.481],[-196.224,-1.754],[-180.777,-14.379],[-181.352,-14.53]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0.473,0],[0,0],[1.225,-1.665],[4.623,-4.292],[2.098,10.718],[5.133,-4.84],[0,0],[1.652,-2.22]],"o":[[1.442,0.974],[0,0],[-0.414,0.006],[-3.349,4.553],[-2.601,2.415],[-3.432,-17.534],[0,0],[-0.467,0],[0,0]],"v":[[178.354,-7.975],[178.774,-9.196],[177.674,-6.607],[176.064,-2.354],[171.12,78.792],[162.83,45.892],[154.452,29.932],[141.401,50.031],[139.596,54.012]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[1.419,0],[0,0],[5.062,-1.76],[22.297,-5.797],[6.392,11.426],[18.397,-4.993],[0,0],[4.957,-2.22]],"o":[[3.516,1.03],[0,0],[-1.249,0.007],[-13.84,4.813],[-13.319,3.463],[-14.158,-25.308],[0,0],[-1.4,0],[0,0]],"v":[[203.484,-1.183],[199.68,3.34],[187.374,8.965],[175.313,13.857],[139.069,95.885],[109.108,77.921],[71.603,50.59],[15.138,72.09],[-0.957,78.317]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-19.273],[29.04,0],[14.909,16.371],[30.244,0],[0,0],[-2.005,6.384]],"o":[[2.222,6.384],[0,0],[-24.696,0],[-15.947,18.485],[-30.144,0],[-26.243,-28.815],[0,0],[-2.484,0],[0,0]],"v":[[186.181,62.567],[182.981,70.34],[111.926,70.34],[59.935,104.732],[-2.433,135.51],[-64.886,104.296],[-126.536,70.34],[-187.948,70.34],[-191.219,62.567]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.019607843831,0.388235300779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":19,"s":[{"i":[[0,0],[6.073,0],[0,0],[0,6.073]],"o":[[0,6.073],[0,0],[-6.073,0],[0,0]],"v":[[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[6.073,0],[0,0],[0,5.488]],"o":[[0,5.488],[0,0],[-6.073,0],[0,0]],"v":[[208.694,190.159],[197.697,200.096],[-202.563,200.096],[-213.559,190.159]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[6.073,0],[0,0],[0,6.327]],"o":[[0,6.327],[0,0],[-6.073,0],[0,0]],"v":[[208.694,195.64],[197.697,207.096],[-202.563,207.096],[-213.559,195.64]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[6.073,0],[0,0],[0,6.073]],"o":[[0,6.073],[0,0],[-6.073,0],[0,0]],"v":[[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[5.477,0],[0,0],[2.139,7.871]],"o":[[0,6.073],[0,0],[-7.733,0.001],[0,0]],"v":[[213.027,173.849],[203.11,184.846],[-159.833,210.846],[-170.859,199.195]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[5.44,0],[0,0],[0,5.588]],"o":[[0,5.588],[0,0],[-5.44,0],[0,0]],"v":[[186.718,189.826],[176.868,199.944],[-181.65,199.944],[-191.5,189.826]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[4.206,1.706],[0,0],[0,0]],"o":[[-4.875,1.325],[0,0],[-1.821,-0.481],[0,0]],"v":[[1.776,224.426],[-9.796,223.444],[-223.122,124.194],[-227.412,121.087]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[2.5,0],[0,0],[0,5.588]],"o":[[0,5.588],[0,0],[-0.548,0],[0,0]],"v":[[-209.078,172.326],[-213.605,182.444],[-194.097,77.444],[-195.089,67.326]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[1.141,0],[0,0],[0.772,0.282]],"o":[[-0.211,1.107],[0,0],[-1.141,0],[0,0]],"v":[[201.526,81.989],[199.644,85.429],[144.883,190.429],[141.38,190.262]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[3.122,-1.513],[0,0],[0.351,0.527]],"o":[[0.004,0.643],[0,0],[-1.026,0.648],[0,0]],"v":[[232.837,101.199],[227.977,105.096],[2.399,210.096],[-3.131,209.815]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[6.073,0],[0,0],[0,6.073]],"o":[[0,6.073],[0,0],[-6.073,0],[0,0]],"v":[[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.46274510026,0.490196079016,0.592156887054,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":19,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.073],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-6.073,0],[0,0],[0,0]],"v":[[208.694,73.443],[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099],[-213.559,70.969]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,5.488],[0,0]],"o":[[0,0],[0,5.488],[0,0],[-6.073,0],[0,0],[0,0]],"v":[[208.62,76.327],[208.694,190.159],[197.697,200.096],[-202.563,200.096],[-213.559,190.159],[-213.633,74.091]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.327],[0,0]],"o":[[0,0],[0,6.327],[0,0],[-6.073,0],[0,0],[0,0]],"v":[[208.694,67.861],[208.694,195.64],[197.697,207.096],[-202.563,207.096],[-213.559,195.64],[-213.559,65.283]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.073],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-6.073,0],[0,0],[0,0]],"v":[[208.694,73.443],[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099],[-213.559,70.969]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[5.477,0],[0,0],[0,6.073],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-5.477,0],[0,0],[0,0]],"v":[[212.027,61.193],[213.027,173.849],[203.11,184.846],[-159.833,210.846],[-169.75,199.849],[-168.84,87.205]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[5.44,0],[0,0],[0,5.588],[0,0]],"o":[[0,0],[0,5.588],[0,0],[-5.44,0],[0,0],[0,0]],"v":[[186.718,76.976],[186.718,189.826],[176.868,199.944],[-181.65,199.944],[-191.5,189.826],[-191.5,74.699]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[3.241,0],[0,0],[0,5.588],[0,0]],"o":[[0,0],[0,5.588],[0,0],[-3.241,0],[0,0],[0,0]],"v":[[-3.26,92.393],[-3.928,213.326],[-9.796,223.444],[-223.122,124.194],[-228.99,114.076],[-229.027,6.896]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[2.5,0],[0,0],[0,5.588],[0,0]],"o":[[0,0],[0,5.588],[0,0],[-0.548,0],[0,0],[0,0]],"v":[[-208.83,47.226],[-209.078,172.326],[-213.605,182.444],[-194.097,77.444],[-195.089,67.326],[-187.678,-29.801]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[1.141,0],[0,0],[0,6.073],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-1.141,0],[0,0],[0,0]],"v":[[196.611,-27.103],[201.71,74.432],[199.644,85.429],[144.883,190.429],[142.816,179.432],[139.733,59.302]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[3.424,0],[0,0],[0,6.073],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-3.424,0],[0,0],[0,0]],"v":[[234.426,-8.057],[234.176,94.099],[227.977,105.096],[2.399,210.096],[-3.801,199.099],[-1.801,78.969]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.073],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-6.073,0],[0,0],[0,0]],"v":[[208.694,73.443],[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099],[-213.559,70.969]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.600000023842,0.607843160629,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":19,"s":[{"i":[[-0.012,-5.032],[0,0],[0,0],[-26.166,-30.559],[-29.38,0],[-17.356,20.61],[-24.689,0],[0,0],[-2.664,4.136]],"o":[[0.013,5.266],[0,0],[21.819,0],[16,18.686],[27.7,0],[19.472,-23.123],[0,0],[0,0],[1.427,-2.215]],"v":[[-212.7,72.046],[-203.094,77.756],[-122.69,77.756],[-69.97,109.841],[-3.258,142.926],[63.183,112.528],[115.166,77.358],[200.335,77.756],[208.069,74.257]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[-0.012,-4.547],[0,0],[0,0],[-26.166,-27.613],[-29.38,0],[-17.356,18.623],[-24.689,0],[0,0],[-2.664,3.737]],"o":[[0.013,4.758],[0,0],[21.819,0],[16,16.885],[27.7,0],[19.472,-20.894],[0,0],[0,0],[1.427,-2.001]],"v":[[-212.774,75.065],[-203.168,80.225],[-122.764,80.225],[-70.044,109.217],[-3.332,139.112],[63.109,111.644],[115.092,79.865],[200.261,80.225],[207.995,77.063]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[-0.012,-5.242],[0,0],[0,0],[-26.166,-31.835],[-29.38,0],[-17.356,21.471],[-24.689,0],[0,0],[-2.664,4.308]],"o":[[0.013,5.486],[0,0],[21.819,0],[16,19.467],[27.7,0],[19.472,-24.089],[0,0],[0,0],[1.427,-2.307]],"v":[[-212.7,66.406],[-203.094,72.354],[-122.69,72.354],[-69.97,105.78],[-3.258,140.246],[63.183,108.578],[115.166,71.94],[200.335,72.354],[208.069,68.709]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[-0.012,-5.032],[0,0],[0,0],[-26.166,-30.559],[-29.38,0],[-17.356,20.61],[-24.689,0],[0,0],[-2.664,4.136]],"o":[[0.013,5.266],[0,0],[21.819,0],[16,18.686],[27.7,0],[19.472,-23.123],[0,0],[0,0],[1.427,-2.215]],"v":[[-212.7,72.046],[-203.094,77.756],[-122.69,77.756],[-69.97,109.841],[-3.258,142.926],[63.183,112.528],[115.166,77.358],[200.335,77.756],[208.069,74.257]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[-0.381,-5.017],[0,0],[0,0],[-22.917,-30.255],[-25.185,2.134],[-14.654,20.808],[-21.237,0.285],[0,0],[-2.402,4.136]],"o":[[0.201,2.643],[0,0],[18.769,-0.251],[14.014,18.5],[23.745,-2.012],[16.441,-23.346],[0,0],[0,0],[1.287,-2.215]],"v":[[-168.065,88.282],[-158.813,90.506],[-73.958,85.86],[-28.957,112.594],[32.738,140.044],[86.233,106.237],[131.728,69.222],[204.489,65.506],[211.463,62.007]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-0.011,-4.63],[0,0],[0,0],[-23.437,-28.116],[-26.316,0],[-15.546,18.962],[-22.114,0],[0,0],[-2.386,3.805]],"o":[[0.011,4.845],[0,0],[19.544,0],[14.331,17.193],[24.811,0],[17.442,-21.275],[0,0],[0,0],[1.278,-2.038]],"v":[[-190.73,75.691],[-182.126,80.944],[-110.107,80.944],[-62.885,110.464],[-3.13,140.904],[56.382,112.936],[102.944,80.578],[179.231,80.944],[186.159,77.725]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[-0.006,-4.63],[0,0],[0,0],[-5.552,-10.433],[-11.835,-2.714],[-5.464,14.296],[-10.414,-3.056],[0,0],[-1.422,3.805]],"o":[[0.007,4.845],[0,0],[14.136,5.203],[4.094,7.692],[8.068,1.85],[5.411,-14.156],[0,0],[0,0],[0.761,-2.038]],"v":[[-228.568,7.887],[-218.372,13.218],[-158.078,39.104],[-140.062,90.794],[-121.533,107.332],[-96.142,86.878],[-74.432,69.59],[-9.289,95.418],[-3.594,93.141]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[-0.005,-4.63],[0,0],[0,0],[5.142,-15.767],[-0.331,0],[0,0],[-2.227,0],[0,0],[-1.097,3.805]],"o":[[0.005,4.845],[0,0],[-2.148,3.634],[-3.646,11.179],[0.312,0],[0,0],[0,0],[0,0],[0.587,-2.038]],"v":[[-187.324,-28.809],[-188.371,-25.056],[-198.477,6.194],[-192.267,49.595],[-198.585,63.912],[-198.206,45.536],[-199.18,43.828],[-212.27,51.194],[-209.087,47.975]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[-2.59,4.314],[0,0],[0,0],[-1.515,-8.08],[-3.843,0.181],[-0.455,31.128],[-2.671,2.715],[0,0],[-1.52,2.305]],"o":[[0.844,-1.406],[0,0],[3.515,-2.166],[2.822,15.05],[3.434,-0.162],[0.121,-8.29],[0,0],[0,0],[1.166,-1.769]],"v":[[140.931,51.989],[143.078,48.665],[156.097,28.63],[163.806,54.583],[171.867,79.028],[175.228,11.596],[178.468,-6.677],[179.173,-8.335],[179.395,-8.771]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[-0.007,-5.032],[0,0],[0,0],[-9.934,-19.08],[-16.103,7.982],[-4.644,25.819],[-11.7,4.239],[-2.786,1.034],[0,0]],"o":[[0.007,5.266],[0,0],[13.979,-4.159],[8.008,15.381],[13.106,-6.497],[2.046,-11.374],[0,0],[2.786,-1.034],[0,0]],"v":[[-1.316,80.046],[4.867,80.113],[72.003,55.06],[105.189,78.181],[142.176,97.89],[168.341,33.778],[185.36,11.966],[219.695,-1.208],[225.573,-2.913]],"c":false}]},{"t":156,"s":[{"i":[[-0.012,-5.032],[0,0],[0,0],[-26.166,-30.559],[-29.38,0],[-17.356,20.61],[-24.689,0],[0,0],[-2.664,4.136]],"o":[[0.013,5.266],[0,0],[21.819,0],[16,18.686],[27.7,0],[19.472,-23.123],[0,0],[0,0],[1.427,-2.215]],"v":[[-212.7,72.046],[-203.094,77.756],[-122.69,77.756],[-69.97,109.841],[-3.258,142.926],[63.183,112.528],[115.166,77.358],[200.335,77.756],[208.069,74.257]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.988235294819,0.988235294819,0.980392158031,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":19,"s":[{"i":[[0,0],[5.728,0],[0,0],[0,5.802],[0,0],[0,0],[-75.629,-1.934],[-42.875,-1.649],[0,0]],"o":[[0,5.802],[0,0],[-5.737,0],[0,0],[0,0],[47.878,-1.649],[63.754,1.63],[0,0],[0,0]],"v":[[196.064,192.382],[185.694,202.879],[-191.989,202.879],[-202.369,192.382],[-202.369,77.878],[-117.848,78.499],[-3.148,145.644],[115.685,78.499],[195.979,77.878]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[5.728,0],[0,0],[0,5.243],[0,0],[0,0],[-75.629,-1.747],[-42.875,-1.49],[0,0]],"o":[[0,5.243],[0,0],[-5.737,0],[0,0],[0,0],[47.878,-1.49],[63.754,1.473],[0,0],[0,0]],"v":[[196.064,186.801],[185.694,196.286],[-191.989,196.286],[-202.369,186.801],[-202.442,80.335],[-117.922,80.896],[-3.221,141.568],[115.611,80.896],[195.905,80.335]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[5.728,0],[0,0],[0,6.044],[0,0],[0,0],[-75.629,-2.014],[-42.875,-1.718],[0,0]],"o":[[0,6.044],[0,0],[-5.737,0],[0,0],[0,0],[47.878,-1.718],[63.754,1.698],[0,0],[0,0]],"v":[[196.064,191.768],[185.694,202.703],[-191.989,202.703],[-202.369,191.768],[-202.369,72.481],[-117.848,73.129],[-3.148,143.077],[115.685,73.129],[195.979,72.481]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[5.728,0],[0,0],[0,5.802],[0,0],[0,0],[-75.629,-1.934],[-42.875,-1.649],[0,0]],"o":[[0,5.802],[0,0],[-5.737,0],[0,0],[0,0],[47.878,-1.649],[63.754,1.63],[0,0],[0,0]],"v":[[196.064,192.382],[185.694,202.879],[-191.989,202.879],[-202.369,192.382],[-202.369,77.878],[-117.848,78.499],[-3.148,145.644],[115.685,78.499],[195.979,77.878]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[5.165,0],[0,0],[0,5.802],[0,0],[0,0],[-64.994,3.566],[-36.903,-1.155],[0,0]],"o":[[0,5.802],[0,0],[-5.174,0],[0,0],[0,0],[41.163,-2.201],[54.788,-3.006],[0,0],[0,0]],"v":[[201.637,170.132],[192.286,180.629],[-150.298,206.629],[-159.658,196.132],[-158.158,90.628],[-69.783,86.547],[33.062,142.744],[132.19,70.357],[200.561,65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[5.13,0],[0,0],[0,5.338],[0,0],[0,0],[-67.742,-1.779],[-38.404,-1.517],[0,0]],"o":[[0,5.338],[0,0],[-5.139,0],[0,0],[0,0],[42.885,-1.517],[57.105,1.5],[0,0],[0,0]],"v":[[175.405,186.406],[166.117,196.064],[-172.179,196.064],[-181.476,186.406],[-181.476,81.057],[-105.77,81.628],[-3.031,143.404],[103.409,81.628],[175.329,81.057]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[3.056,0],[0,0],[0,5.338],[0,0],[0,0],[-35.281,-3.323],[-22.879,-1.517],[0,0]],"o":[[0,5.338],[0,0],[-3.061,0],[0,0],[0,0],[18.927,4.895],[22.83,2.151],[0,0],[0,0]],"v":[[-10.668,209.906],[-16.201,219.564],[-217.479,120.314],[-223.018,110.656],[-219.778,14.932],[-158.177,40.128],[-123.205,109.747],[-78.972,68.312],[-10.045,96.473]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[2.357,0],[0,0],[0,5.338],[0,0],[0,0],[-0.852,-1.217],[-3.867,-1.517],[0,0]],"o":[[0,5.338],[0,0],[-0.517,0],[0,0],[0,0],[0.301,7.451],[0.718,1.026],[0,0],[0,0]],"v":[[-214.277,168.906],[-218.545,178.564],[-193.143,73.564],[-194.08,63.906],[-187.697,-24.818],[-198.926,7.128],[-198.583,65.622],[-199.133,44.628],[-214.063,51.307]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[1.076,0],[0,0],[0,5.802],[0,0],[0,0],[-4.579,3.154],[-5.963,2.221],[0,0]],"o":[[0,5.802],[0,0],[-1.078,0],[0,0],[0,0],[6.011,2.104],[4.099,-2.823],[0,0],[0,0]],"v":[[199.337,70.715],[197.388,81.212],[146.869,186.212],[144.919,175.715],[140.906,57.485],[160.35,30.851],[171.776,78.295],[179.373,-1.608],[195.386,-22.907]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[3.229,0],[0,0],[0,5.802],[0,0],[0,0],[-29.905,3.094],[-19.742,2.348],[0,0]],"o":[[0,5.802],[0,0],[-3.234,0],[0,0],[0,0],[35.749,-0.902],[35.493,-3.672],[0,0],[0,0]],"v":[[227.056,90.382],[222.549,103.558],[8.36,205.879],[6.008,194.382],[7.758,84.057],[73.751,50.25],[137.007,96.519],[178.742,14.249],[227.258,-3.622]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[5.728,0],[0,0],[0,5.802],[0,0],[0,0],[-75.629,-1.934],[-42.875,-1.649],[0,0]],"o":[[0,5.802],[0,0],[-5.737,0],[0,0],[0,0],[47.878,-1.649],[63.754,1.63],[0,0],[0,0]],"v":[[196.064,192.382],[185.694,202.879],[-191.989,202.879],[-202.369,192.382],[-202.369,77.878],[-117.848,78.499],[-3.148,145.644],[115.685,78.499],[195.979,77.878]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[0,0.723,0.727,0.805,0.332,0.789,0.793,0.857,1,0.855,0.859,0.91]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[0,0.722,0.726,0.804,0.332,0.779,0.784,0.851,1,0.837,0.842,0.898]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"t":141,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[-2.817,199.036],"to":[-15.951,-6.665],"ti":[47.998,15.185]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[-125.426,153.739],"to":[-52.438,-16.589],"ti":[-15.549,13.165]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[-188.529,105.451],"to":[29.781,-25.216],"ti":[-59.526,-2.327]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[175.871,47.742],"to":[59.526,2.327],"ti":[29.781,-25.216]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[168.625,119.414],"to":[-29.781,25.216],"ti":[28.574,-13.27]},{"t":141,"s":[-2.817,199.036]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[-2.817,85.463],"to":[-6.771,0.522],"ti":[21.354,-4.004]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[-89.594,66.161],"to":[-24.564,4.605],"ti":[-10.516,10.454]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[-59.502,81.976],"to":[19.657,-19.542],"ti":[-34.505,12.641]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[115.124,-31.791],"to":[34.505,-12.641],"ti":[19.657,-19.542]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[147.529,6.127],"to":[-19.657,19.542],"ti":[25.058,-13.223]},{"t":141,"s":[-2.817,85.463]}]},"t":1,"nm":"Gradient Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.9,"y":0},"t":19,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.073],[0,0],[0,0],[-53.606,0],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-6.073,0],[0,0],[0,0],[0,0],[53.606,0],[0,0]],"v":[[208.694,76.85],[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099],[-213.559,76.85],[-91.086,76.85],[-3.045,134.51],[84.052,76.85]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,5.488],[0,0],[0,0],[-53.606,0],[0,0]],"o":[[0,0],[0,5.488],[0,0],[-6.073,0],[0,0],[0,0],[0,0],[53.606,0],[0,0]],"v":[[208.62,79.406],[208.694,190.159],[197.697,200.096],[-202.563,200.096],[-213.559,190.159],[-213.633,79.406],[-91.159,79.406],[-3.119,131.507],[83.979,79.406]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.327],[0,0],[0,0],[-53.606,0],[0,0]],"o":[[0,0],[0,6.327],[0,0],[-6.073,0],[0,0],[0,0],[0,0],[53.606,0],[0,0]],"v":[[208.694,71.41],[208.694,195.64],[197.697,207.096],[-202.563,207.096],[-213.559,195.64],[-213.559,71.41],[-91.086,71.41],[-3.045,131.478],[84.052,71.41]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[6.073,0],[0,0],[0,6.073],[0,0],[0,0],[-53.606,0],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-6.073,0],[0,0],[0,0],[0,0],[53.606,0],[0,0]],"v":[[208.694,76.85],[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099],[-213.559,76.85],[-91.086,76.85],[-3.045,134.51],[84.052,76.85]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[5.477,0],[0,0],[0,6.073],[0,0],[0,0],[-45.952,3.893],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-5.477,0],[0,0],[0,0],[0,0],[45.952,-3.893],[0,0]],"v":[[212.027,64.6],[213.027,173.849],[203.11,184.846],[-159.833,210.846],[-169.75,199.849],[-168.25,89.6],[-46.783,84.589],[32.21,131.642],[104.458,72.322]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[5.44,0],[0,0],[0,5.588],[0,0],[0,0],[-48.016,0],[0,0]],"o":[[0,0],[0,5.588],[0,0],[-5.44,0],[0,0],[0,0],[0,0],[48.016,0],[0,0]],"v":[[186.718,80.111],[186.718,189.826],[176.868,199.944],[-181.65,199.944],[-191.5,189.826],[-191.5,80.111],[-81.798,80.111],[-2.939,133.16],[75.075,80.111]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[3.241,0],[0,0],[0,5.588],[0,0],[0,0],[-19.718,-1.969],[-18.811,0.037]],"o":[[0,0],[0,5.588],[0,0],[-3.241,0],[0,0],[0,0],[0,0],[21.234,2.12],[16.939,3.162]],"v":[[-3.26,95.527],[-3.928,213.326],[-9.796,223.444],[-223.122,124.194],[-228.99,114.076],[-228.527,11.807],[-150.896,41.736],[-122.657,102.991],[-80.352,64.42]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[2.5,0],[0,0],[0,5.588],[0,0],[0,0],[-0.604,0],[0,0]],"o":[[0,0],[0,5.588],[0,0],[-0.548,0],[0,0],[0,0],[0,0],[0.604,0],[0,0]],"v":[[-208.83,50.361],[-209.078,172.326],[-213.605,182.444],[-194.097,77.444],[-195.089,67.326],[-187.678,-24.389],[-198.017,7.611],[-198.582,58.616],[-200.718,40.361]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[1.141,0],[0,0],[0,6.073],[0,0],[0,0],[-4.289,2.547],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-1.141,0],[0,0],[0,0],[0,0],[3.048,-1.811],[0,0]],"v":[[197.505,-23.88],[201.71,74.432],[199.644,85.429],[144.883,190.429],[142.816,179.432],[139.482,57.35],[158.681,28.957],[172.269,78.27],[183.422,-3.369]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[3.424,0],[0,0],[0,6.073],[0,0],[0,0],[-25.705,3.213],[0,0]],"o":[[0,0],[0,6.073],[0,0],[-3.424,0],[0,0],[0,0],[0,0],[18.27,-2.283],[0,0]],"v":[[234.426,-4.65],[234.176,94.099],[227.977,105.096],[2.399,210.096],[-3.801,199.099],[0.199,79.6],[91.338,50.1],[141.462,95.385],[172.41,17.475]],"c":true}]},{"t":156,"s":[{"i":[[-9.29,-1.058],[0,0],[6.073,0],[0,0],[0,6.073],[0,0],[0,0],[-53.606,0],[0,0]],"o":[[8.657,17.122],[0,6.073],[0,0],[-6.073,0],[0,0],[0,0],[0,0],[53.606,0],[0,0]],"v":[[202.692,69.498],[208.694,196.099],[197.697,207.096],[-202.563,207.096],[-213.559,196.099],[-213.559,76.85],[-91.086,76.85],[-3.045,134.51],[84.052,76.85]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.102,0.894,0.898,0.945,0.551,0.892,0.896,0.943,1,0.89,0.894,0.941]}},"s":{"a":0,"k":[-2.817,208.036]},"e":{"a":0,"k":[-2.817,36.67]},"t":1,"nm":"Gradient Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":0,"op":180,"st":-4,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Sides 2","parent":5,"sr":1,"ks":{"p":{"a":0,"k":[258.346,386.27,0]},"a":{"a":0,"k":[258.346,386.27,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-226.018,192.184],[-221.698,71.834]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-186.944,198.329],[-237.498,68.714]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-194.648,172.236],[-195.341,67.631]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[129.696,179.308],[135.892,61.328]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-22.105,210.654],[203.475,104.098]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-232.676,172.153],[194.034,172.005]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[159.198,177.903],[163.843,10.78]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-21.813,195.156],[203.749,91.959]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-232.676,172.153],[194.034,172.005]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[159.198,177.903],[163.843,10.78]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-21.296,194.939],[203.087,91.717]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-232.676,172.153],[192.534,172.005]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-232.676,172.153],[192.534,172.005]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-21.431,70.523],[-21.296,194.939]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-44.867,70.284],[-45.016,195.436]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-119.332,70.893],[-120.05,197.515]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-166.487,69.503],[-167.566,197.062]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-232.864,70],[-234.5,199]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745127958,0.490196108351,0.592156862745,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[449.758,332.371]},"a":{"a":0,"k":[165.889,64.877]},"s":{"a":0,"k":[105,105]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":43,"s":[0],"h":1},{"t":53,"s":[100],"h":1},{"t":119,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"R Side","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-240.043,79.058],[-228.079,181.337]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-264.36,182.453],[-264.251,182.638]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-264.675,173.186],[126.058,187.273]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-272.668,104.881],[-52.936,204.809]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-240.043,79.058],[-228.079,181.337]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-264.36,182.453],[-264.251,182.638]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-264.675,173.186],[126.058,187.273]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-271.715,101.071],[-52.936,204.809]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":117,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-240.043,79.058],[-228.079,181.337]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-264.36,182.453],[-264.251,182.638]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-264.675,173.186],[126.058,187.273]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-271.688,86.309],[-52.936,204.809]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-262.973,82.244],[-75.991,204.925]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-245.544,74.114],[-149.697,206.244]],"c":false}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-240.529,71.041],[-196.368,205.307]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-223.227,84],[-262,206.5]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":123,"s":[0.462745127958,0.490196108351,0.592156862745,1]},{"t":132,"s":[0.537186324596,0.562710881233,0.657516300678,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":51,"s":[0],"h":1},{"t":93,"s":[100],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.262,405.212]},"a":{"a":0,"k":[-52.75,144.25]},"s":{"a":0,"k":[105,105]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Front 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252.697,358.335]},"a":{"a":0,"k":[252.697,358.335]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":81,"op":138,"st":-4,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Sides","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.091,81.209,0]},"a":{"a":0,"k":[258.346,386.27,0]},"s":{"a":0,"k":[95.238,95.238,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-202.501,-61.985],[-231.63,69.947],[-232.353,189.826],[-222.498,63.999]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-239.891,-64.026],[-187.364,75.594],[-186.944,198.329],[-237.498,68.714]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-174.854,-60.896],[-195.525,55.101],[-193.086,169.063],[-194.757,56.501]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[139.699,-52.014],[130.864,65.138],[128.841,177.629],[135.892,61.328]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[204.093,-0.14],[-22.24,81.476],[-22.105,210.654],[203.475,104.098]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[193.928,46.791],[-233.175,45.546],[-232.676,172.153],[194.034,172.005]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[165.142,-34.385],[158.134,51.833],[159.198,177.903],[163.843,10.78]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[203.705,-6.807],[-21.431,70.523],[-21.296,194.939],[203.087,91.717]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[193.928,46.791],[-233.175,45.546],[-232.676,172.153],[194.034,172.005]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[165.142,-34.385],[158.134,51.833],[159.198,177.903],[163.843,10.78]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[203.705,-6.807],[-21.431,70.523],[-21.296,194.939],[203.087,91.717]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[192.428,46.791],[-233.175,45.546],[-232.676,172.153],[192.534,172.005]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[168.118,-34.881],[158.134,51.833],[159.198,177.903],[166.818,10.284]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[204.181,-9.664],[-21.431,70.523],[-21.296,194.939],[203.563,88.86]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[201.745,3.037],[-44.867,70.284],[-45.016,195.436],[201.226,106.531]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[196.874,28.44],[-119.332,70.893],[-120.05,197.515],[196.553,141.873]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[193.772,44.614],[-166.487,69.503],[-167.566,197.062],[193.578,164.376]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[189,69.5],[-232.864,70],[-234.5,199],[189,199]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.600000023842,0.607843160629,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[0,0.64,0.645,0.739,0.332,0.709,0.714,0.793,1,0.777,0.783,0.848]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[0,0.771,0.775,0.851,0.332,0.847,0.851,0.91,1,0.923,0.927,0.969]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[0,0.655,0.66,0.752,0.332,0.727,0.732,0.808,1,0.799,0.804,0.864]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[0,0.655,0.66,0.752,0.332,0.727,0.732,0.808,1,0.799,0.804,0.864]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[0,0.655,0.66,0.752,0.332,0.727,0.732,0.808,1,0.799,0.804,0.864]},{"t":130,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[-221.061,97.608],"to":[6.033,-0.818],"ti":[-55.257,2.799]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[-184.864,92.698],"to":[55.257,-2.799],"ti":[-46.462,-8.411]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[110.484,80.813],"to":[46.462,8.411],"ti":[19.499,-14.498]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[93.906,143.165],"to":[-19.499,14.498],"ti":[-10.82,11.361]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[-6.507,167.8],"to":[10.82,-11.361],"ti":[-16.987,8.623]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[158.826,75.001],"to":[16.987,-8.623],"ti":[27.651,-15.087]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[95.412,116.062],"to":[-27.651,15.087],"ti":[-10.569,6.843]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[-7.077,165.523],"to":[10.569,-6.843],"ti":[-16.471,6.66]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[158.826,75.001],"to":[16.471,-6.66],"ti":[27.651,-15.087]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[91.751,125.563],"to":[-27.651,15.087],"ti":[-11.179,8.427]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[-7.077,165.523],"to":[11.179,-8.427],"ti":[-15.813,5.785]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[158.826,75.001],"to":[15.813,-5.785],"ti":[27.646,-13.996]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[87.801,130.811],"to":[-27.646,13.996],"ti":[15.809,-4.695]},{"t":130,"s":[-7.05,158.979]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[-101.492,-27.113],"to":[3.357,19.124],"ti":[-23.554,-15.106]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[-81.353,87.632],"to":[23.554,15.106],"ti":[-23.752,12.905]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[39.831,63.521],"to":[23.752,-12.905],"ti":[7.424,0.811]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[61.158,10.201],"to":[-7.424,-0.811],"ti":[-0.593,-9.841]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[-4.715,58.652],"to":[0.593,9.841],"ti":[-11.467,12.618]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[64.718,69.25],"to":[11.467,-12.618],"ti":[12.3,-0.394]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[64.088,-17.053],"to":[-12.3,0.394],"ti":[-0.105,-14.384]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[-9.08,71.612],"to":[0.105,14.384],"ti":[-9.837,15.54]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[64.718,69.25],"to":[9.837,-15.54],"ti":[12.3,-0.394]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[49.944,-21.629],"to":[-12.3,0.394],"ti":[-2.462,-15.146]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[-9.08,71.612],"to":[2.462,15.146],"ti":[-12.726,0.816]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[64.718,69.25],"to":[12.726,-0.816],"ti":[12.435,-4.019]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[67.277,66.718],"to":[-12.435,4.019],"ti":[12.861,-4.441]},{"t":130,"s":[-9.892,93.363]}]},"t":1,"nm":"Gradient Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[449.758,332.371]},"a":{"a":0,"k":[165.889,64.877]},"s":{"a":0,"k":[105,105]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":43,"s":[0],"h":1},{"t":53,"s":[100],"h":1},{"t":120,"s":[0],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"R Side","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[159,79.5],[-262.864,80],[-263.499,200.508],[159,209]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[162.711,63.832],[-218.92,85.738],[-218.59,208.535],[162.722,187.832]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[121.066,72.273],[-228.568,75.493],[-229.708,190.833],[121.08,191.731]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-53.775,90.452],[-266.773,13.071],[-268.47,120.595],[-53.745,220.523]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-229.971,62.159],[-238.402,-24.071],[-240.043,79.058],[-228.079,181.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-265.21,56.5],[-232.728,-31.5],[-264.813,55.25],[-262.945,173.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[126.099,60.31],[-265.998,46.723],[-264.675,173.186],[126.058,187.273]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-52.966,79.5],[-270.971,3.071],[-272.668,104.881],[-52.936,204.809]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-229.971,62.159],[-239.394,-24.071],[-240.043,79.058],[-228.079,181.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-265.21,56.5],[-232.728,-31.5],[-264.813,55.25],[-262.945,173.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[126.099,60.31],[-265.998,46.723],[-264.675,173.186],[126.058,187.273]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-52.966,79.5],[-270.018,-0.738],[-271.715,101.071],[-52.936,204.809]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":117,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-229.971,62.159],[-239.394,-24.071],[-240.043,79.058],[-228.079,181.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-265.21,56.5],[-230.728,-28.5],[-264.813,55.25],[-262.945,173.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[126.099,60.31],[-265.998,46.723],[-264.675,173.186],[126.058,187.273]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-52.966,79.5],[-270.943,-16.929],[-271.688,86.309],[-52.936,204.809]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-76.418,79.505],[-262.749,-25.448],[-262.973,82.244],[-75.991,204.925]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-150.916,80.602],[-246.362,-42.487],[-245.544,74.114],[-149.697,206.244]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-198.091,79.524],[-242.009,-51.232],[-240.529,71.041],[-196.368,205.307]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-264.5,80.5],[-225.728,-47],[-223.227,84],[-262,206.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.600000023842,0.607843160629,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[0,0.771,0.775,0.851,0.332,0.847,0.851,0.91,1,0.923,0.927,0.969]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[0,0.771,0.775,0.851,0.332,0.847,0.851,0.91,1,0.923,0.927,0.969]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[0,0.771,0.775,0.851,0.332,0.847,0.851,0.91,1,0.923,0.927,0.969]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[0,0.749,0.753,0.827,0.332,0.824,0.827,0.886,1,0.898,0.902,0.945]},{"t":130,"s":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[-92.523,174.21],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[-92.523,174.21],"to":[-5.378,-2.764],"ti":[15.798,13.748]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[-124.789,157.627],"to":[-15.798,-13.748],"ti":[10.42,10.984]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[-187.309,91.721],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[-187.309,91.721],"to":[29.88,14.18],"ti":[-10.053,-11.836]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[-8.032,176.8],"to":[10.053,11.836],"ti":[29.88,14.18]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[-126.991,162.74],"to":[-29.88,-14.18],"ti":[-19.827,-2.343]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[-187.309,91.721],"to":[19.827,2.343],"ti":[-10.053,-11.836]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[-8.032,176.8],"to":[10.053,11.836],"ti":[34.339,11.26]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[-126.991,162.74],"to":[-34.339,-11.26],"ti":[14.512,8.916]},{"t":130,"s":[-214.065,109.241]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[-89.624,58.434],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[-89.624,58.434],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[-89.624,58.434],"to":[4.647,-3.23],"ti":[-4.647,3.23]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[-61.742,39.052],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[-61.742,39.052],"to":[8.777,5.427],"ti":[4.647,-3.23]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":107,"s":[-9.08,71.612],"to":[-4.647,3.23],"ti":[8.777,5.427]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[-89.624,58.434],"to":[-8.777,-5.427],"ti":[-13.424,-2.196]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[-61.742,39.052],"to":[13.424,2.196],"ti":[5.753,-4.676]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[-9.08,71.612],"to":[-5.753,4.676],"ti":[18.846,5.778]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[-96.257,67.109],"to":[-18.846,-5.778],"ti":[4.317,5.028]},{"t":130,"s":[-122.158,36.942]}]},"t":1,"nm":"Gradient Fill 3","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":51,"s":[0],"h":1},{"t":93,"s":[100],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.262,405.212]},"a":{"a":0,"k":[-52.75,144.25]},"s":{"a":0,"k":[105,105]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Front","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252.697,358.335]},"a":{"a":0,"k":[252.697,358.335]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":81,"op":138,"st":-4,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"ARROW 2","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":29,"s":[0],"h":1},{"t":118,"s":[100],"h":1}]},"p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[-3.762,-80.464,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.8,"y":1},"o":{"x":0.9,"y":0},"t":10,"s":[-3.762,-118.964,0],"to":[0,0,0],"ti":[-2.678,-20.327,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.15,"y":0},"t":26,"s":[-3.762,169.181,0],"to":[1.586,12.038,0],"ti":[-4.093,48.485,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":118,"s":[5.334,20.84,0],"to":[2.819,-33.389,0],"ti":[0,0,0]},{"i":{"x":0.793,"y":1},"o":{"x":0.69,"y":0},"t":126,"s":[12.6,-48.222,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.1,"y":0},"t":139,"s":[-4.122,-29.912,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":152,"s":[-3.762,-91.464,0],"to":[0,0,0],"ti":[0,0,0]},{"t":175,"s":[-3.762,-80.464,0]}]},"a":{"a":0,"k":[-3.762,-80.464,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,1.2,-1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.6,0.6,0.6],"y":[0,0,0]},"t":10,"s":[112,90,100]},{"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":21,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0.167,0]},"t":26,"s":[100,100,100]},{"i":{"x":[0.9,0.9,0.9],"y":[1,1,1]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":118,"s":[100,60,100]},{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.1,0.1,0.1],"y":[0,0,0]},"t":140,"s":[92,110,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":153,"s":[105,95,100]},{"t":179,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[0.406,-0.919],[-2.584,-2.472],[0,0],[-3.055,3.102],[0,0],[0,0],[1.218,2.757]],"o":[[-1.218,2.757],[0,0],[3.055,3.102],[0,0],[0,0],[2.583,-2.471],[-0.406,-0.919]],"v":[[-87.444,-169.056],[-85.729,-160.382],[-9.319,-82.791],[1.795,-82.791],[46.076,-127.756],[78.205,-160.382],[79.92,-169.055]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0.315,-0.919],[-2.003,-2.472],[0,0],[-2.368,3.102],[0,0],[0,0],[0.944,2.757]],"o":[[-0.944,2.757],[0,0],[2.368,3.102],[0,0],[0,0],[2.002,-2.471],[-0.315,-0.919]],"v":[[-68.624,-170.556],[-67.295,-161.882],[-8.095,-93.546],[0.52,-93.546],[33.618,-130.004],[59.771,-161.882],[61.101,-170.555]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0.341,-0.919],[-2.171,-2.472],[0,0],[-2.567,3.102],[0,0],[0,0],[1.023,2.757]],"o":[[-1.024,2.757],[0,0],[2.567,3.102],[0,0],[0,0],[2.171,-2.471],[-0.341,-0.919]],"v":[[-74.085,-170.121],[-72.644,-161.447],[-8.45,-90.425],[0.89,-90.425],[37.233,-129.352],[65.121,-161.447],[66.562,-170.12]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0.365,-0.659],[-2.319,-1.773],[0,0],[-2.743,2.225],[0,0],[0,0],[1.093,1.978]],"o":[[-1.094,1.978],[0,0],[2.743,2.225],[0,0],[0,0],[2.319,-1.773],[-0.364,-0.659]],"v":[[-79.098,-117.766],[-77.558,-111.543],[-8.977,-58.904],[1,-58.904],[40.194,-88.383],[69.605,-111.543],[71.145,-117.765]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0.37,-0.694],[-2.355,-1.866],[0,0],[-2.784,2.342],[0,0],[0,0],[1.11,2.082]],"o":[[-1.11,2.082],[0,0],[2.784,2.342],[0,0],[0,0],[2.354,-1.866],[-0.37,-0.694]],"v":[[-80.208,-124.59],[-78.646,-118.042],[-9.022,-62.082],[1.106,-62.082],[40.976,-93.622],[70.749,-118.042],[72.312,-124.589]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0.005,-1.939],[-0.03,-5.213],[0,0],[-1.351,6.543],[0,0],[0,0],[0.047,5.815]],"o":[[-0.014,5.816],[0,0],[1.351,6.543],[0,0],[0,0],[0.1,-5.212],[-0.016,-1.938]],"v":[[-25.853,-171.904],[-25.833,-153.609],[-26.035,57.32],[15.121,56.831],[16.696,-144.584],[17.255,-180.711],[17.274,-199.385]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[-0.085,-1.601],[-2.643,-3.629],[0,0],[-5.507,16.247],[0,0],[0,0],[1.187,4.663]],"o":[[0.231,4.356],[0,0],[7.025,18.363],[0,0],[0,0],[0.787,-3.916],[-0.396,-1.554]],"v":[[-58.819,-188.154],[-55.882,-175.578],[-16.754,-53.604],[8.493,-53.855],[41.609,-177.263],[52.513,-219.845],[52.098,-235.683]],"c":false}]},{"t":137,"s":[{"i":[[0.406,-0.919],[-2.584,-2.472],[0,0],[-3.055,3.102],[0,0],[0,0],[1.218,2.757]],"o":[[-1.218,2.757],[0,0],[3.055,3.102],[0,0],[0,0],[2.583,-2.471],[-0.406,-0.919]],"v":[[-87.444,-169.056],[-85.729,-160.382],[-9.319,-82.791],[1.795,-82.791],[46.076,-127.756],[78.205,-160.382],[79.92,-169.055]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.678431391716,0.168627455831,0.168627455831,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[6.934,0],[0,0],[0,0],[4.82,0],[0,0],[0,-4.82],[0,0],[0,0],[-5.011,-4.793],[0,0],[-3.055,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-4.82,0],[0,0],[0,0],[-6.934,0],[0,0],[3.055,3.102],[0,0],[0,0],[5.011,-4.793]],"v":[[72.889,-173.63],[44.689,-173.63],[44.689,-214.152],[35.962,-222.879],[-43.486,-222.879],[-52.213,-214.152],[-52.213,-173.63],[-80.413,-173.63],[-85.729,-160.382],[-9.319,-82.791],[1.795,-82.791],[65.027,-147.001],[78.205,-160.382]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[5.375,0],[0,0],[0,0],[2.766,0],[0,0],[0,-4.82],[0,0],[0,0],[-3.884,-4.793],[0,0],[-2.368,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-2.766,0],[0,0],[0,0],[-5.375,0],[0,0],[2.368,3.102],[0,0],[0,0],[3.884,-4.793]],"v":[[55.651,-175.13],[33.793,-175.13],[24.208,-247.116],[19.199,-255.843],[-26.401,-255.843],[-31.41,-247.116],[-41.317,-175.13],[-63.175,-175.13],[-67.295,-161.882],[-8.095,-93.546],[0.52,-93.546],[49.557,-147.001],[59.771,-161.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[5.677,0],[0,0],[0,0],[2.426,0],[0,0],[0,-4.82],[0,0],[0,0],[-4.102,-4.793],[0,0],[-2.501,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-2.426,0],[0,0],[0,0],[-5.676,0],[0,0],[2.501,3.102],[0,0],[0,0],[4.102,-4.793]],"v":[[58.986,-174.84],[32.652,-175.835],[22.186,-268.995],[17.793,-277.722],[-22.204,-277.722],[-26.597,-268.995],[-38.176,-176.084],[-66.509,-174.84],[-70.861,-161.592],[-8.331,-91.466],[0.766,-91.466],[52.55,-147.001],[63.338,-161.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[5.827,0],[0,0],[0,0],[2.721,0],[0,0],[0,-4.82],[0,0],[0,0],[-4.211,-4.793],[0,0],[-2.567,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-2.721,0],[0,0],[0,0],[-5.827,0],[0,0],[2.567,3.102],[0,0],[0,0],[4.211,-4.793]],"v":[[60.653,-174.695],[36.955,-174.695],[23.618,-291.131],[18.691,-299.858],[-26.161,-299.858],[-31.087,-291.131],[-44.479,-174.695],[-68.177,-174.695],[-72.644,-161.447],[-8.45,-90.425],[0.89,-90.425],[54.047,-147.001],[65.121,-161.447]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[5.96,0],[0,0],[0,0],[2.972,0],[0,0],[0,-4.365],[0,0],[0,0],[-4.307,-4.342],[0,0],[-2.626,2.81],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.365],[0,0],[-2.972,0],[0,0],[0,0],[-5.96,0],[0,0],[2.626,2.81],[0,0],[0,0],[4.307,-4.342]],"v":[[62.046,-156.812],[37.809,-156.812],[26.206,-289.761],[20.824,-297.665],[-28.169,-297.665],[-33.551,-289.761],[-45.476,-156.812],[-69.713,-156.812],[-74.282,-144.812],[-8.626,-79.918],[0.926,-79.918],[55.289,-131.819],[66.615,-144.812]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[6.092,0],[0,0],[0,0],[3.223,0],[0,0],[0,-3.911],[0,0],[0,0],[-4.403,-3.89],[0,0],[-2.684,2.518],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.911],[0,0],[-3.223,0],[0,0],[0,0],[-6.092,0],[0,0],[2.684,2.518],[0,0],[0,0],[4.403,-3.89]],"v":[[63.439,-138.929],[38.664,-138.929],[28.597,-259.688],[22.761,-266.771],[-30.374,-266.771],[-36.211,-259.688],[-46.474,-138.929],[-71.25,-138.929],[-75.92,-128.178],[-8.801,-69.411],[0.963,-69.411],[56.532,-116.637],[68.11,-128.178]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[6.225,0],[0,0],[0,0],[3.475,0],[0,0],[0,-3.457],[0,0],[0,0],[-4.498,-3.439],[0,0],[-2.743,2.225],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.457],[0,0],[-3.475,0],[0,0],[0,0],[-6.225,0],[0,0],[2.743,2.225],[0,0],[0,0],[4.498,-3.439]],"v":[[64.832,-121.047],[39.518,-121.047],[31.186,-212.917],[24.894,-219.177],[-32.383,-219.177],[-38.674,-212.917],[-47.472,-121.047],[-72.786,-121.047],[-77.558,-111.543],[-8.977,-58.904],[1,-58.904],[57.775,-101.455],[69.605,-111.543]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[6.319,0],[0,0],[0,0],[3.654,0],[0,0],[0,-3.639],[0,0],[0,0],[-4.566,-3.619],[0,0],[-2.784,2.342],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.639],[0,0],[-3.654,0],[0,0],[0,0],[-6.319,0],[0,0],[2.784,2.342],[0,0],[0,0],[4.566,-3.619]],"v":[[65.904,-128.043],[40.206,-128.043],[33.217,-156.142],[26.602,-162.73],[-33.625,-162.73],[-40.241,-156.142],[-48.102,-128.043],[-73.801,-128.043],[-78.646,-118.042],[-9.022,-62.082],[1.106,-62.082],[58.74,-107.515],[70.749,-118.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0.083,0],[0,0],[0,0],[2.132,0],[0,0],[0,-10.165],[0,0],[0,0],[-0.058,-10.11],[0,0],[-1.351,6.543],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-10.165],[0,0],[-2.132,0],[0,0],[0,0],[-0.08,0],[0,0],[1.351,6.543],[0,0],[0,0],[-0.097,-9.212]],"v":[[17.191,-208.932],[17.268,-208.284],[17.057,-280.468],[13.197,-298.874],[-21.9,-305.043],[-25.759,-286.637],[-25.448,-181.551],[-25.772,-181.551],[-25.833,-153.609],[-26.035,57.32],[15.121,56.83],[17.039,-146.373],[17.255,-180.711]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[3.688,-0.408],[0,0],[0,0],[3.555,0],[0,0],[0,-8.329],[0,0],[0,0],[-3.75,-8.8],[0,0],[-9.198,21.627],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-8.329],[0,0],[-3.555,0],[0,0],[0,0],[-3.525,1.154],[0,0],[4.154,11.477],[0,0],[0,0],[1.732,-8.063]],"v":[[47.154,-242.431],[32.383,-240.464],[31.309,-287.363],[15.407,-295.914],[-32.91,-279.633],[-39.347,-264.551],[-40.088,-208.726],[-56.339,-198.867],[-55.882,-175.578],[-16.754,-53.604],[8.493,-53.855],[46.584,-193.881],[52.513,-219.845]],"c":true}]},{"t":137,"s":[{"i":[[6.934,0],[0,0],[0,0],[4.82,0],[0,0],[0,-4.82],[0,0],[0,0],[-5.011,-4.793],[0,0],[-3.055,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-4.82,0],[0,0],[0,0],[-6.934,0],[0,0],[3.055,3.102],[0,0],[0,0],[5.011,-4.793]],"v":[[72.889,-173.63],[44.689,-173.63],[44.689,-214.152],[35.962,-222.879],[-43.486,-222.879],[-52.213,-214.152],[-52.213,-173.63],[-80.413,-173.63],[-85.729,-160.382],[-9.319,-82.791],[1.795,-82.791],[65.027,-147.001],[78.205,-160.382]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.847058832645,0.227450981736,0.227450981736,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[0,0],[0,6.367],[0,0],[1.691,-6.104]],"o":[[-8.556,0],[0,0],[6.372,0],[0,0]],"v":[[51.261,-160.382],[40.339,-173.187],[71.358,-173.63],[79.792,-160.382]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,6.367],[0,0],[1.31,-6.104]],"o":[[-6.632,0],[0,0],[4.939,0],[0,0]],"v":[[38.887,-161.882],[30.421,-174.687],[54.465,-175.13],[61.002,-161.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,6.367],[0,0],[1.384,-6.104]],"o":[[-7.004,0],[0,0],[5.216,0],[0,0]],"v":[[41.281,-161.592],[29.09,-175.392],[57.733,-174.84],[64.637,-161.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,6.367],[0,0],[1.421,-6.104]],"o":[[-7.19,0],[0,0],[5.355,0],[0,0]],"v":[[42.478,-161.447],[33.299,-174.252],[59.367,-174.695],[66.454,-161.447]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,4.567],[0,0],[1.518,-4.378]],"o":[[-7.681,0],[0,0],[5.72,0],[0,0]],"v":[[45.417,-111.543],[35.612,-120.729],[63.458,-121.047],[71.03,-111.543]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,4.807],[0,0],[1.541,-4.608]],"o":[[-7.797,0],[0,0],[5.807,0],[0,0]],"v":[[46.195,-118.042],[36.241,-127.709],[64.51,-128.043],[72.196,-118.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,13.429],[0,0],[0.066,-12.873]],"o":[[-0.332,0],[0,0],[0.076,0],[0,0]],"v":[[17.243,-181.55],[17.232,-207.6],[17.173,-208.932],[17.316,-180.711]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[5.03,9.092],[0,0],[-0.238,-10.586]],"o":[[-4.659,0.515],[0,0],[3.389,-0.375],[0,0]],"v":[[43.474,-227.204],[30.147,-239.576],[46.34,-242.341],[51.076,-229.733]],"c":true}]},{"t":137,"s":[{"i":[[0,0],[0,6.367],[0,0],[1.691,-6.104]],"o":[[-8.556,0],[0,0],[6.372,0],[0,0]],"v":[[51.261,-160.382],[40.339,-173.187],[71.358,-173.63],[79.792,-160.382]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,0.592,0.573,0.5,1,0.592,0.573,1,1,0.592,0.573,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[60.495,-168.776]},"e":{"a":0,"k":[60.464,-161.587]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[0,0],[0,6.367],[0,0],[-1.691,-6.104]],"o":[[8.556,0],[0,0],[-6.372,0],[0,0]],"v":[[-59.169,-160.382],[-48.247,-173.187],[-79.267,-173.63],[-87.701,-160.382]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[0,0],[0,6.367],[0,0],[-1.31,-6.104]],"o":[[6.632,0],[0,0],[-4.939,0],[0,0]],"v":[[-46.709,-161.882],[-38.243,-174.687],[-62.286,-175.13],[-68.824,-161.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,6.367],[0,0],[-1.384,-6.104]],"o":[[7.004,0],[0,0],[-5.216,0],[0,0]],"v":[[-49.119,-161.592],[-34.929,-175.641],[-65.571,-174.84],[-72.476,-161.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[0,0],[0,6.367],[0,0],[-1.421,-6.104]],"o":[[7.19,0],[0,0],[-5.355,0],[0,0]],"v":[[-50.325,-161.447],[-41.146,-174.252],[-67.214,-174.695],[-74.301,-161.447]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[0,0],[0,4.567],[0,0],[-1.518,-4.378]],"o":[[7.681,0],[0,0],[-5.72,0],[0,0]],"v":[[-53.716,-111.543],[-43.911,-120.729],[-71.757,-121.047],[-79.329,-111.543]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,4.807],[0,0],[-1.541,-4.608]],"o":[[7.797,0],[0,0],[-5.807,0],[0,0]],"v":[[-54.442,-118.042],[-44.488,-127.709],[-72.757,-128.043],[-80.443,-118.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,13.429],[0,0],[-0.019,-12.873]],"o":[[0.098,0],[0,0],[-0.073,0],[0,0]],"v":[[-25.528,-153.609],[-25.402,-180.617],[-25.759,-181.551],[-25.856,-153.609]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[0,0],[9.675,3.348],[0,0],[-4.142,-9.743]],"o":[[4.35,-1.424],[0,0],[-3.239,1.061],[0,0]],"v":[[-24.853,-193.451],[-37.833,-208.659],[-55.756,-199.057],[-56.885,-175.249]],"c":true}]},{"t":137,"s":[{"i":[[0,0],[0,6.367],[0,0],[-1.691,-6.104]],"o":[[8.556,0],[0,0],[-6.372,0],[0,0]],"v":[[-59.169,-160.382],[-48.247,-173.187],[-79.267,-173.63],[-87.701,-160.382]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,0.592,0.573,0.5,1,0.592,0.573,1,1,0.592,0.573,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[-67.942,-169.151]},"e":{"a":0,"k":[-67.942,-161.962]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[-3.04,0],[0,0],[-1.419,-2.729],[11.828,0.898],[0,0],[0,0]],"o":[[0,0],[3.04,0],[0,0],[0,0],[-12.447,0],[1.419,-2.729]],"v":[[-41.139,-208.461],[33.616,-208.461],[40.724,-203.891],[32.711,-222.879],[-40.235,-222.879],[-48.247,-203.891]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-1.745,0],[0,0],[-0.815,-2.729],[6.789,0.898],[0,0],[0,0]],"o":[[0,0],[1.745,0],[0,0],[0,0],[-7.144,0],[0.815,-2.729]],"v":[[-24.429,-248.293],[16.977,-247.794],[21.932,-236.855],[17.333,-255.843],[-24.535,-255.843],[-29.134,-236.855]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[-1.531,0],[0,0],[-0.715,-2.729],[5.954,0.898],[0,0],[0,0]],"o":[[0,0],[1.531,0],[0,0],[0,0],[-6.266,0],[0.715,-2.729]],"v":[[-18.773,-270.271],[14.612,-270.52],[20.189,-258.734],[16.156,-277.722],[-20.567,-277.722],[-24.6,-258.734]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-1.716,0],[0,0],[-0.801,-2.729],[6.677,0.898],[0,0],[0,0]],"o":[[0,0],[1.716,0],[0,0],[0,0],[-7.027,0],[0.801,-2.729]],"v":[[-23.087,-292.386],[15.867,-292.386],[21.379,-280.87],[16.856,-299.858],[-24.325,-299.858],[-28.848,-280.87]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[-1.875,0],[0,0],[-0.875,-2.472],[7.294,0.814],[0,0],[0,0]],"o":[[0,0],[1.875,0],[0,0],[0,0],[-7.676,0],[0.875,-2.472]],"v":[[-26.222,-290.287],[17.379,-289.793],[23.76,-280.467],[18.819,-297.665],[-26.164,-297.665],[-31.105,-280.467]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-2.033,0],[0,0],[-0.949,-2.215],[7.91,0.729],[0,0],[0,0]],"o":[[0,0],[2.033,0],[0,0],[0,0],[-8.325,0],[0.949,-2.215]],"v":[[-27.806,-259.981],[20.692,-259.49],[25.945,-251.361],[20.586,-266.771],[-28.2,-266.771],[-33.558,-251.361]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-2.192,0],[0,0],[-1.023,-1.958],[8.527,0.644],[0,0],[0,0]],"o":[[0,0],[2.192,0],[0,0],[0,0],[-8.973,0],[1.023,-1.958]],"v":[[-30.691,-208.835],[23.202,-208.835],[28.326,-205.556],[22.55,-219.177],[-30.039,-219.177],[-35.815,-205.556]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-2.305,0],[0,0],[-1.076,-2.06],[8.966,0.678],[0,0],[0,0]],"o":[[0,0],[2.305,0],[0,0],[0,0],[-9.436,0],[1.076,-2.06]],"v":[[-31.846,-151.846],[24.823,-151.846],[30.211,-148.395],[24.137,-162.73],[-31.161,-162.73],[-37.235,-148.395]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[-1.345,0],[0,0],[-0.628,-5.756],[5.231,1.895],[0,0],[0,0]],"o":[[0,0],[1.345,0],[0,0],[0,0],[-5.505,0],[0.628,-5.756]],"v":[[-19.603,-297.706],[11.882,-293.11],[15.303,-258.826],[11.759,-298.874],[-20.462,-305.043],[-24.005,-264.995]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[-2.243,0],[0,0],[-1.047,-4.716],[13.53,0.422],[0,0],[0,0]],"o":[[0,0],[2.243,0],[0,0],[0,0],[-9.181,0],[7.317,7.393]],"v":[[-17.18,-258.897],[27.965,-277.045],[27.521,-287.82],[13.009,-295.914],[-30.512,-279.633],[-35.34,-270.771]],"c":true}]},{"t":137,"s":[{"i":[[-3.04,0],[0,0],[-1.419,-2.729],[11.828,0.898],[0,0],[0,0]],"o":[[0,0],[3.04,0],[0,0],[0,0],[-12.447,0],[1.419,-2.729]],"v":[[-41.139,-208.461],[33.616,-208.461],[40.724,-203.891],[32.711,-222.879],[-40.235,-222.879],[-48.247,-203.891]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,0.592,0.573,0.5,1,0.592,0.573,1,1,0.592,0.573,0,1,0.5,0.5,1,0]}},"s":{"a":0,"k":[-4.38,-219.151]},"e":{"a":0,"k":[-4.224,-210.149]},"t":1,"nm":"Gradient Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[-5.684,1.305],[-2.015,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-7.225,-1.482],[-4.556,-4.358]],"v":[[-72.541,-173.409],[-3.762,-109.437],[-3.762,-80.464],[-85.729,-160.382]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[-4.405,1.305],[-1.562,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-5.6,-1.482],[-3.531,-4.358]],"v":[[-57.073,-174.909],[-3.787,-120.192],[-3.787,-91.22],[-67.295,-161.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-4.776,1.305],[-1.693,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-6.072,-1.482],[-3.829,-4.358]],"v":[[-61.562,-174.474],[-3.78,-117.071],[-3.78,-88.099],[-72.644,-161.447]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[-5.102,0.936],[-1.809,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-6.486,-1.063],[-4.09,-3.126]],"v":[[-65.72,-120.888],[-3.989,-78.018],[-3.989,-57.235],[-77.558,-111.543]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[-5.179,0.985],[-1.836,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-6.584,-1.119],[-4.152,-3.29]],"v":[[-66.627,-127.876],[-3.958,-82.198],[-3.958,-60.326],[-78.646,-118.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[-0.065,2.753],[-0.891,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-3.195,-3.126],[-0.052,-9.192]],"v":[[-25.681,-181.084],[-19.328,56.809],[-19.935,58.542],[-25.833,-153.609]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[-2.188,3.09],[-1.486,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-12.683,-0.869],[-4.66,-6.399]],"v":[[-52.218,-199.814],[-3.882,-102.519],[-3.335,-43.41],[-55.882,-175.578]],"c":true}]},{"t":137,"s":[{"i":[[-5.684,1.305],[-2.015,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-7.225,-1.482],[-4.556,-4.358]],"v":[[-72.541,-173.409],[-3.762,-109.437],[-3.762,-80.464],[-85.729,-160.382]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.729,0.153,0.153,0.5,0.729,0.153,0.153,1,0.729,0.153,0.153,0,1,0.5,0.5,1,0]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.999},"o":{"x":0.167,"y":0},"t":31,"s":[-47.38,-122.839],"to":[3.061,5.938],"ti":[0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.031},"t":126,"s":[-29.012,-87.208],"to":[0,0],"ti":[3.061,5.938]},{"t":137,"s":[-47.38,-122.839]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.999},"o":{"x":0.167,"y":0},"t":31,"s":[-36.413,-133.997],"to":[1.955,8.095],"ti":[-2.776,-7.368]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.068},"t":118,"s":[-24.684,-85.429],"to":[2.776,7.368],"ti":[1.955,8.095]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.029},"t":126,"s":[-19.754,-89.787],"to":[-1.955,-8.095],"ti":[2.776,7.368]},{"t":137,"s":[-36.413,-133.997]}]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[5.684,1.305],[2.015,0],[0,0],[-21.525,22.902],[0,0]],"o":[[0,0],[0,0],[6.144,0],[7.795,-8.293],[4.556,-4.358]],"v":[[65.017,-173.409],[-3.762,-109.437],[-3.762,-80.464],[65.209,-146.441],[78.205,-160.382]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[4.405,1.305],[1.562,0],[0,0],[-16.685,22.902],[0,0]],"o":[[0,0],[0,0],[4.762,0],[6.042,-8.293],[3.531,-4.358]],"v":[[49.55,-174.909],[-3.787,-120.192],[-3.787,-91.22],[49.698,-146.441],[59.771,-161.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[4.776,1.305],[1.693,0],[0,0],[-18.089,22.902],[0,0]],"o":[[0,0],[0,0],[5.163,0],[6.55,-8.293],[3.829,-4.358]],"v":[[54.038,-174.474],[-3.78,-117.071],[-3.78,-88.099],[54.199,-146.441],[65.121,-161.447]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[5.102,0.936],[1.809,0],[0,0],[-19.323,16.429],[0,0]],"o":[[0,0],[0,0],[5.515,0],[6.997,-5.949],[4.09,-3.126]],"v":[[57.766,-120.888],[-3.989,-78.018],[-3.989,-57.235],[57.938,-101.053],[69.605,-111.543]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[5.179,0.985],[1.836,0],[0,0],[-19.616,17.29],[0,0]],"o":[[0,0],[0,0],[5.599,0],[7.103,-6.261],[4.152,-3.29]],"v":[[58.731,-127.876],[-3.958,-82.198],[-3.958,-60.326],[58.905,-107.092],[70.749,-118.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0.068,2.753],[0.891,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[2.422,0],[0,0],[0.039,-9.517]],"v":[[17.097,-208.465],[15.319,49.867],[13.963,56.137],[16.885,-144.366],[17.255,-180.711]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[3.271,1.908],[1.486,0],[0,0],[-4.691,18.1],[0,0]],"o":[[0,0],[0,0],[11.517,-0.654],[1.925,-7.426],[1.57,-7.919]],"v":[[43.009,-241.588],[-3.882,-102.519],[-3.335,-43.41],[46.248,-192.339],[52.513,-219.845]],"c":true}]},{"t":137,"s":[{"i":[[5.684,1.305],[2.015,0],[0,0],[-21.525,22.902],[0,0]],"o":[[0,0],[0,0],[6.144,0],[7.795,-8.293],[4.556,-4.358]],"v":[[65.017,-173.409],[-3.762,-109.437],[-3.762,-80.464],[65.209,-146.441],[78.205,-160.382]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.729,0.153,0.153,0.5,0.729,0.153,0.153,1,0.729,0.153,0.153,0,1,0.5,0.5,1,0]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.999},"o":{"x":0.167,"y":0},"t":31,"s":[40.183,-119.964],"to":[-0.921,6.161],"ti":[0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.031},"t":126,"s":[34.658,-82.998],"to":[0,0],"ti":[-0.921,6.161]},{"t":137,"s":[40.183,-119.964]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.999},"o":{"x":0.167,"y":0},"t":31,"s":[27.633,-133.157],"to":[-2.018,7.913],"ti":[3.658,-7.036]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.059},"t":118,"s":[15.527,-85.677],"to":[-3.658,7.036],"ti":[-2.018,7.913]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.031},"t":126,"s":[5.684,-90.941],"to":[2.018,-7.913],"ti":[-3.658,7.036]},{"t":137,"s":[27.633,-133.157]}]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":10,"s":[{"i":[[6.934,0],[0,0],[0,0],[4.82,0],[0,0],[0,-4.82],[0,0],[0,0],[-5.011,-4.793],[0,0],[-3.055,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-4.82,0],[0,0],[0,0],[-6.934,0],[0,0],[3.055,3.102],[0,0],[0,0],[5.011,-4.793]],"v":[[72.889,-173.63],[44.689,-173.63],[44.689,-214.152],[35.962,-222.879],[-43.486,-222.879],[-52.213,-214.152],[-52.213,-173.63],[-80.413,-173.63],[-85.729,-160.382],[-9.319,-82.791],[1.795,-82.791],[63.261,-145.208],[78.205,-160.382]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[{"i":[[5.375,0],[0,0],[0,0],[2.766,0],[0,0],[0,-4.82],[0,0],[0,0],[-3.884,-4.793],[0,0],[-2.368,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-2.766,0],[0,0],[0,0],[-5.375,0],[0,0],[2.368,3.102],[0,0],[0,0],[3.884,-4.793]],"v":[[55.651,-175.13],[33.793,-175.13],[24.208,-247.116],[19.199,-255.843],[-26.401,-255.843],[-31.41,-247.116],[-41.317,-175.13],[-63.175,-175.13],[-67.295,-161.882],[-8.095,-93.546],[0.52,-93.546],[48.188,-145.208],[59.771,-161.882]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[5.677,0],[0,0],[0,0],[2.426,0],[0,0],[0,-4.82],[0,0],[0,0],[-4.102,-4.793],[0,0],[-2.501,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-2.426,0],[0,0],[0,0],[-5.676,0],[0,0],[2.501,3.102],[0,0],[0,0],[4.102,-4.793]],"v":[[58.986,-174.84],[32.652,-175.835],[22.186,-268.995],[17.793,-277.722],[-22.204,-277.722],[-26.597,-268.995],[-38.176,-176.084],[-66.509,-174.84],[-70.861,-161.592],[-8.331,-91.466],[0.766,-91.466],[51.104,-145.208],[63.338,-161.592]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[5.827,0],[0,0],[0,0],[2.721,0],[0,0],[0,-4.82],[0,0],[0,0],[-4.211,-4.793],[0,0],[-2.567,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-2.721,0],[0,0],[0,0],[-5.827,0],[0,0],[2.567,3.102],[0,0],[0,0],[4.211,-4.793]],"v":[[60.653,-174.695],[36.955,-174.695],[23.618,-291.131],[18.691,-299.858],[-26.161,-299.858],[-31.087,-291.131],[-44.479,-174.695],[-68.177,-174.695],[-72.644,-161.447],[-8.45,-90.425],[0.89,-90.425],[52.562,-145.208],[65.121,-161.447]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[{"i":[[5.96,0],[0,0],[0,0],[2.972,0],[0,0],[0,-4.365],[0,0],[0,0],[-4.307,-4.342],[0,0],[-2.626,2.81],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.365],[0,0],[-2.972,0],[0,0],[0,0],[-5.96,0],[0,0],[2.626,2.81],[0,0],[0,0],[4.307,-4.342]],"v":[[62.046,-156.812],[37.809,-156.812],[26.206,-289.761],[20.824,-297.665],[-28.169,-297.665],[-33.551,-289.761],[-45.476,-156.812],[-69.713,-156.812],[-74.282,-144.812],[-8.626,-79.918],[0.926,-79.918],[53.772,-130.195],[66.615,-144.812]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[6.092,0],[0,0],[0,0],[3.223,0],[0,0],[0,-3.911],[0,0],[0,0],[-4.403,-3.89],[0,0],[-2.684,2.518],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.911],[0,0],[-3.223,0],[0,0],[0,0],[-6.092,0],[0,0],[2.684,2.518],[0,0],[0,0],[4.403,-3.89]],"v":[[63.439,-138.929],[38.664,-138.929],[28.597,-259.688],[22.761,-266.771],[-30.374,-266.771],[-36.211,-259.688],[-46.474,-138.929],[-71.25,-138.929],[-75.92,-128.178],[-8.801,-69.411],[0.963,-69.411],[54.981,-115.181],[68.11,-128.178]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[{"i":[[6.225,0],[0,0],[0,0],[3.475,0],[0,0],[0,-3.457],[0,0],[0,0],[-4.498,-3.439],[0,0],[-2.743,2.225],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.457],[0,0],[-3.475,0],[0,0],[0,0],[-6.225,0],[0,0],[2.743,2.225],[0,0],[0,0],[4.498,-3.439]],"v":[[64.832,-121.047],[39.518,-121.047],[31.186,-212.917],[24.894,-219.177],[-32.383,-219.177],[-38.674,-212.917],[-47.472,-121.047],[-72.786,-121.047],[-77.558,-111.543],[-8.977,-58.904],[1,-58.904],[56.19,-100.168],[69.605,-111.543]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[6.319,0],[0,0],[0,0],[3.654,0],[0,0],[0,-3.639],[0,0],[0,0],[-4.566,-3.619],[0,0],[-2.784,2.342],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-3.639],[0,0],[-3.654,0],[0,0],[0,0],[-6.319,0],[0,0],[2.784,2.342],[0,0],[0,0],[4.566,-3.619]],"v":[[65.904,-128.043],[40.206,-128.043],[33.217,-156.142],[26.602,-162.73],[-33.625,-162.73],[-40.241,-156.142],[-48.102,-128.043],[-73.801,-128.043],[-78.646,-118.042],[-9.022,-62.082],[1.106,-62.082],[57.131,-106.161],[70.749,-118.042]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0.083,0],[0,0],[0,0],[2.132,0],[0,0],[0,-10.165],[0,0],[0,0],[-0.058,-10.11],[0,0],[-1.351,6.543],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-10.165],[0,0],[-2.132,0],[0,0],[0,0],[-0.08,0],[0,0],[1.351,6.543],[0,0],[0,0],[0.194,-10.11]],"v":[[17.191,-208.932],[16.855,-208.932],[17.057,-280.468],[13.197,-298.874],[-21.9,-305.043],[-25.759,-286.637],[-25.448,-181.551],[-25.772,-181.551],[-25.833,-153.609],[-26.035,57.32],[15.121,56.83],[16.914,-143.793],[17.255,-180.711]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":126,"s":[{"i":[[3.688,-0.408],[0,0],[0,0],[3.555,0],[0,0],[0,-8.329],[0,0],[0,0],[-5.125,-7.039],[0,0],[-8.651,20.121],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-8.329],[0,0],[-3.555,0],[0,0],[0,0],[-3.525,1.154],[0,0],[5.247,14.49],[0,0],[0,0],[1.818,-8.535]],"v":[[47.154,-242.431],[32.154,-240.773],[31.309,-287.363],[15.407,-295.914],[-32.91,-279.633],[-39.347,-264.551],[-40.088,-208.726],[-56.339,-198.867],[-55.882,-175.578],[-16.754,-53.604],[8.493,-53.855],[46.211,-191.68],[52.513,-219.845]],"c":true}]},{"t":137,"s":[{"i":[[6.934,0],[0,0],[0,0],[4.82,0],[0,0],[0,-4.82],[0,0],[0,0],[-5.011,-4.793],[0,0],[-3.055,3.102],[0,0],[0,0]],"o":[[0,0],[0,0],[0,-4.82],[0,0],[-4.82,0],[0,0],[0,0],[-6.934,0],[0,0],[3.055,3.102],[0,0],[0,0],[5.011,-4.793]],"v":[[72.889,-173.63],[44.689,-173.63],[44.689,-214.152],[35.962,-222.879],[-43.486,-222.879],[-52.213,-214.152],[-52.213,-173.63],[-80.413,-173.63],[-85.729,-160.382],[-9.319,-82.791],[1.795,-82.791],[63.261,-145.208],[78.205,-160.382]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0,0.718,0.137,0.137,0.2,0.827,0.212,0.204,0.4,0.937,0.286,0.271,0.7,0.963,0.306,0.276,1,0.988,0.325,0.282]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":31,"s":[-3.005,-74.464],"to":[-0.022,11.723],"ti":[-0.071,-5.434]},{"i":{"x":0.833,"y":1},"o":{"x":0.6,"y":0},"t":118,"s":[-3.135,-4.125],"to":[0.071,5.434],"ti":[-0.022,11.723]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.031},"t":126,"s":[-2.577,-41.859],"to":[0.022,-11.723],"ti":[0.071,5.434]},{"t":137,"s":[-3.005,-74.464]}]},"e":{"a":0,"k":[-2.971,-166.276]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Envelope Back","parent":8,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[-67.81,-5.926,0],"to":[1.177,-0.034,0],"ti":[3.601,2.191,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[-60.747,-6.131,0],"to":[-2.191,-1.333,0],"ti":[7.295,3.181,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[-64.041,-21.136,0],"to":[-4.695,-2.048,0],"ti":[1.871,0.845,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[-98.052,-19.809,0],"to":[-4.779,-2.157,0],"ti":[1.201,0.031,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[-105.239,-20.695,0],"to":[-1.201,-0.031,0],"ti":[-1.195,0.041,0]},{"t":118,"s":[-98.067,-20.939,0]}]},"s":{"a":0,"k":[141.31,137.693,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.019,-113.297],[-55,63.979],[-4.258,66.347],[28.405,-81.552]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-8.873,-95.009],[-50.601,64.197],[-12.045,64.76],[24.278,-110.528]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-50.573,-66.306],[-68.267,117.02],[86.9,66.04],[99.002,-100.923]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-116.274,-80.232],[-114.214,94.577],[139.992,87.037],[142.514,-77.962]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-78.585,-88.684],[-83.636,76.572],[86.969,87.679],[87.548,-44.506]],"c":true}]},{"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.797,-74.63],[-10.418,76.048],[23.319,90.716],[22.464,-22.16]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[0,1,1,1,0.5,0.872,0.88,0.936,1,0.744,0.761,0.872]},{"t":118,"s":[0,0.988,0.325,0.282,0.5,0.908,0.269,0.243,1,0.827,0.212,0.204]}]}},"s":{"a":0,"k":[19.99,-55.84]},"e":{"a":0,"k":[28.149,29.851]},"t":1,"nm":"Gradient Fill 7778","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[4.4,2.731],[0,0],[0,0],[0,0],[0,0],[2.602,3.991]],"o":[[-6.437,-3.995],[0,0],[0,0],[0,0],[0,0],[-4.229,-6.488]],"v":[[-4.087,-121.792],[-11.275,-116.491],[-67.5,81.5],[-2.5,83.5],[31.358,-74.035],[30.746,-87.337]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":95,"s":[{"i":[[2.949,-1.848],[0,0],[0,0],[0,0],[0,0],[4.249,0.818]],"o":[[-4.741,2.971],[0,0],[0,0],[0,0],[0,0],[-5.315,-1.686]],"v":[[-12.341,-99.369],[-18.389,-91.195],[-62.502,77.635],[-8.419,80.571],[31.883,-108.971],[28.422,-116.345]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[3.782,-1.024],[0.099,-0.288],[0,0],[0,0],[0,0],[7.494,-2.442]],"o":[[-7.686,2.081],[-2.444,7.119],[0,0],[0,0],[0,0],[-5.831,1.9]],"v":[[-52.725,-70.267],[-61.61,-62.294],[-81.736,122.02],[91.848,66.54],[104.64,-99.022],[96.66,-106.278]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[8.54,0.031],[0,0],[0,0],[0,0],[0,0],[9.206,0.813]],"o":[[-10.383,-0.038],[0,0],[0,0],[0,0],[0,0],[-5.503,-0.486]],"v":[[-114.624,-84.969],[-125.433,-74.59],[-126.064,104.253],[150.547,93.404],[155.761,-73.204],[146.448,-83.426]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[5.922,1.425],[0,0],[0,0],[0,0],[0.119,9.909],[0,0]],"o":[[-6.91,-1.663],[0,0],[0,0],[0,0],[-0.134,-11.158],[0,0]],"v":[[-79.863,-93.91],[-87.078,-88.081],[-95.486,86.247],[102.1,94.675],[100.849,-36.856],[98.122,-49.327]],"c":true}]},{"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-12.251,-80.812],[-12.258,-80.012],[-12.596,85.723],[26.1,97.712],[24.87,-23.464],[24.852,-24.57]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[0.6,0.60784295774,0.701960963829,1]},{"t":118,"s":[0.803921568627,0.196513905245,0.196513905245,1]}]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":112,"s":[0.898049507889,0.898049507889,0.958169974533,1]},{"t":118,"s":[0.988235353956,0.325490196078,0.282352941176,1]}]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false}],"ip":94,"op":119,"st":48,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Envelope","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":20,"s":[100],"h":1},{"t":94,"s":[0],"h":1},{"t":118,"s":[100],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[100]},{"t":135,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":16,"s":[-49.397,-101.137,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.2,"y":0.2},"t":31,"s":[-48.902,148.7,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.31,"y":0.969},"o":{"x":0.4,"y":0},"t":51,"s":[-48.902,148.7,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.01},"t":74,"s":[1.622,137.687,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[-51.324,149.697,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[-8.449,134.754,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[6.779,137.991,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[21.542,122.972,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[26.897,117.617,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[39.032,116.968,0],"to":[0,0,0],"ti":[0,0,0]},{"t":135,"s":[29.453,136.35,0]}]},"a":{"a":0,"k":[-68.927,172.802,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":119,"s":[75.24,77.22,100]},{"t":135,"s":[40,0,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,-0.574],[0,0],[-2.674,0],[0,0],[0,0.574],[0,0],[2.674,0],[0,0]],"o":[[0,0],[0,0.574],[0,0],[2.674,0],[0,0],[0,-0.574],[0,0],[-2.674,0]],"v":[[-97.67,-16.121],[-97.67,8.945],[-92.827,9.983],[88.486,9.983],[93.328,8.945],[93.328,-16.121],[88.486,-17.16],[-92.827,-17.16]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,-6.889],[0,0],[-4.342,0],[0,0],[0,6.889],[0,0],[3.305,0],[0,0]],"o":[[0,0],[0,6.889],[0,0],[4.342,0],[0,0],[0,-6.889],[0,0],[-3.305,0]],"v":[[-118.864,-179.27],[-157.218,149.147],[-149.356,161.622],[145.014,161.622],[152.876,149.147],[117.167,-179.27],[111.183,-191.745],[-112.88,-191.745]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[1.963,-5.723],[-24.413,-45.915],[-6.352,0],[0,0],[-1.043,4.439],[28.152,95.717],[6.786,0],[0,0]],"o":[[-15.069,42.918],[2.845,4.294],[0,0],[6.352,0],[3.572,-8.662],[-0.398,-3.986],[0,0],[-6.786,0]],"v":[[-246.266,-81.513],[-229.115,143.133],[-217.614,152.434],[213.039,152.434],[225.464,143.133],[240.183,-81.803],[227.357,-90.67],[-232.723,-90.67]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,-6.279],[0,0],[-5.763,0],[0,0],[0,6.279],[0,0],[5.763,0],[0,0]],"o":[[0,0],[0,6.279],[0,0],[5.763,0],[0,0],[0,-6.279],[0,0],[-5.763,0]],"v":[[-207.961,-133.355],[-207.961,141.064],[-197.526,152.434],[193.185,152.434],[203.62,141.064],[203.62,-133.355],[193.185,-144.724],[-197.526,-144.724]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,-5.782],[-15.824,-64.567],[-6.033,0],[0,0],[-2.69,15.514],[0,0],[6.033,0],[0,0]],"o":[[0,0],[2.878,11.744],[0,0],[6.033,0],[11.308,-65.214],[0,-5.782],[0,0],[-6.033,0]],"v":[[-217.599,-110.72],[-217.599,141.965],[-206.675,152.434],[202.333,152.434],[213.257,141.965],[213.257,-110.72],[202.333,-121.189],[-206.675,-121.189]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0.039,-5.404],[0,0],[-5.766,0.064],[0,0],[0.111,5.403],[0,0],[5.766,0.097],[0,0]],"o":[[0,0],[0.111,5.403],[0,0],[5.766,-0.064],[0,0],[0.039,-5.404],[0,0],[-5.766,-0.097]],"v":[[-259.469,-99.408],[-266.553,181.033],[-255.911,190.7],[150.831,166.284],[161.071,156.384],[147.002,-114.108],[136.633,-124.069],[-248.957,-109.018]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-0.108,-5.913],[0,0],[-5.434,0.099],[0,0],[0.108,5.913],[0,0],[5.434,-0.1],[0,0]],"o":[[0,0],[0.108,5.913],[0,0],[5.434,-0.099],[0,0],[-0.108,-5.913],[0,0],[-5.434,0.1]],"v":[[-187.375,-127.145],[-202.449,145.409],[-192.414,155.935],[184.607,149.031],[194.25,138.144],[194.527,-124.641],[184.493,-135.168],[-177.732,-138.032]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[1.973,-6.216],[0,0],[-4.356,-0.607],[0,0],[-1.311,6.357],[0,0],[4.196,1.216],[0,0]],"o":[[0,0],[-1.311,6.358],[0,0],[4.355,0.607],[0,0],[1.973,-6.216],[0,0],[-4.196,-1.216]],"v":[[-195.688,-162.839],[-223.311,84.61],[-219.074,99.547],[41.055,186.638],[67.273,166.302],[91.57,-98.49],[84.953,-116.37],[-184.518,-171.892]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[2.085,-5.942],[0,0],[-1.729,-0.522],[0,0],[-1.832,6.068],[0,0],[1.539,1.105],[0,0]],"o":[[0,0],[-1.832,6.068],[0,0],[1.729,0.522],[0,0],[2.085,-5.942],[0,0],[-1.539,-1.105]],"v":[[-82.96,-165.589],[-152.761,68.899],[-153.955,83.065],[-115.583,172.938],[-72.58,135.108],[-20.887,-103.777],[-26.455,-128.92],[-76.398,-174.348]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[-0.324,-6.072],[0,0],[0.714,-0.592],[0,0],[0.215,6.21],[0,0],[-0.688,1.188],[0,0]],"o":[[0,0],[0.215,6.21],[0,0],[-0.714,0.592],[0,0],[-0.324,-6.072],[0,0],[0.688,-1.188]],"v":[[-60.568,-146.342],[-56.338,86.988],[-57.033,101.579],[-99.7,186.652],[-104,166.787],[-107.985,-91.869],[-106.9,-109.335],[-62.4,-155.185]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[-1.846,-6.216],[0,0],[4.076,-0.607],[0,0],[1.227,6.357],[0,0],[-3.927,1.216],[0,0]],"o":[[0,0],[1.227,6.358],[0,0],[-4.076,0.607],[0,0],[-1.846,-6.216],[0,0],[3.927,-1.216]],"v":[[49.858,-170.098],[75.693,84.609],[71.727,99.547],[-171.712,186.638],[-196.248,166.302],[-224.93,-113.39],[-218.738,-131.27],[39.404,-179.151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[-1.301,-5.531],[0,0],[4.743,-0.808],[0,0],[0.845,5.603],[0,0],[-5.087,0.934],[0,0]],"o":[[0,0],[1.095,5.569],[0,0],[-4.78,0.576],[0,0],[-1.301,-5.531],[0,0],[5.087,-0.934]],"v":[[90.467,-152.328],[87.781,94.97],[81.719,107.574],[-232.913,176.302],[-249.885,162.689],[-265.013,-91.92],[-256.966,-105.637],[78.901,-160.651]],"c":true}]},{"t":135,"s":[{"i":[[-0.666,-4.96],[0,0],[5.298,-0.975],[0,0],[0.526,4.975],[0,0],[-5.348,0.699],[0,0]],"o":[[0,0],[0.985,4.912],[0,0],[-5.367,0.551],[0,0],[-0.666,-4.96],[0,0],[5.348,-0.699]],"v":[[101.67,-133.1],[133.545,107.496],[125.735,118.156],[-249.714,171.507],[-260.383,163.498],[-278.804,-86.446],[-270.327,-96.692],[90.782,-140.815]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.600000023842,0.607843160629,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0.672,-0.155],[0,0],[7.192,1.512],[0,0],[-0.993,0]],"o":[[0.987,0],[0,0],[-6.635,1.567],[0,0],[-0.683,-0.154],[0,0]],"v":[[80.458,-16.895],[81.286,-16.487],[9.106,0.175],[-11.786,0.198],[-85.529,-16.479],[-84.709,-16.888]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0.83,-1.863],[0,0],[11.677,18.161],[0,0],[-1.227,0]],"o":[[1.22,0],[0,0],[-10.772,18.82],[0,0],[-0.844,-1.855],[0,0]],"v":[[101.263,-188.562],[102.286,-183.668],[17.46,-13.452],[-16.458,-13.176],[-103.86,-183.565],[-102.847,-188.481]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[0,0],[1.705,-1.389],[51.315,-29.646],[9.496,5.358],[0,0],[-2.519,0]],"o":[[2.505,0],[0,0],[-16.9,9.763],[-46.749,-26.377],[-1.733,-1.383],[0,0]],"v":[[206.987,-88.297],[209.089,-84.648],[24.497,64.59],[-25.124,64.796],[-214.203,-84.571],[-212.122,-88.236]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,0],[1.448,-1.698],[0,0],[15.498,16.552],[0,0],[-2.139,0]],"o":[[2.127,0],[0,0],[-14.297,17.153],[0,0],[-1.472,-1.691],[0,0]],"v":[[175.886,-141.823],[177.671,-137.363],[22.13,45.058],[-22.89,45.31],[-181.799,-137.269],[-180.032,-141.749]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[1.516,-1.564],[0,0],[16.224,15.241],[0,0],[-2.239,0]],"o":[[2.227,0],[0,0],[-14.967,15.794],[0,0],[-1.541,-1.557],[0,0]],"v":[[184.224,-118.518],[186.093,-114.411],[23.268,53.562],[-23.86,53.794],[-190.211,-114.324],[-188.361,-118.449]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[1.459,-1.437],[0,0],[13.303,9.319],[0,0],[-2.14,-0.036]],"o":[[2.128,0.035],[0,0],[-12.844,14.55],[0,0],[-1.462,-1.48],[0,0]],"v":[[119.307,-121.862],[121.065,-117.993],[-10.228,56.163],[-53.151,62.009],[-233.268,-102.338],[-231.473,-106.165]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[1.336,-1.624],[0,0],[13.31,16.718],[0,0],[-2.017,0.037]],"o":[[2.006,-0.037],[0,0],[-14.742,15.015],[0,0],[-1.417,-1.567],[0,0]],"v":[[168.232,-132.137],[169.992,-127.968],[17.341,42.956],[-24.994,39.767],[-162.775,-131.283],[-161.186,-135.532]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[1.588,-1.375],[0,0],[4.651,13.921],[0,0],[-1.557,-0.451]],"o":[[1.549,0.449],[0,0],[-13.435,9.177],[0,0],[-0.54,-1.985],[0,0]],"v":[[71.446,-117.149],[71.716,-108.441],[-100.192,24.495],[-131.111,17.953],[-179.52,-160.766],[-172.714,-165.255]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0.951,-1.329],[0,0],[-3.812,13.382],[0,0],[-0.571,-0.41]],"o":[[0.568,0.407],[0,0],[-8.512,5.175],[0,0],[0.168,-1.882],[0,0]],"v":[[-32.039,-129.49],[-27.761,-114.057],[-114.929,-10.29],[-119.797,-3.459],[-74.672,-164.279],[-72.713,-168.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[-0.26,-1.344],[0,0],[-0.699,13.598],[0,0],[0.255,-0.441]],"o":[[-0.254,0.438],[0,0],[2.018,8.965],[0,0],[0.089,-1.939],[0,0]],"v":[[-104.684,-110.097],[-104.729,-101.589],[-79.203,19.033],[-74.43,4.513],[-63.22,-144.317],[-64.336,-148.701]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[-1.486,-1.375],[0,0],[-5.562,9.689],[0,0],[1.458,-0.451]],"o":[[-1.45,0.449],[0,0],[6.927,9.005],[0,0],[0.506,-1.985],[0,0]],"v":[[-206.098,-132.049],[-206.351,-123.34],[-50.95,11.531],[-27.802,5.438],[34.727,-168.025],[28.358,-172.514]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[-1.63,-1.261],[0,0],[-10.533,10.704],[0,0],[1.888,-0.346]],"o":[[-1.878,0.344],[0,0],[13.862,9.59],[0,0],[0.949,-1.728],[0,0]],"v":[[-241.096,-105.886],[-241.919,-99.887],[-67.321,55.327],[-35.1,49.904],[68.456,-151.341],[64.076,-155.195]],"c":true}]},{"t":135,"s":[{"i":[[0,0],[-1.524,-1.166],[0,0],[-10.283,9.93],[0,0],[1.985,-0.259]],"o":[[-1.974,0.258],[0,0],[12.505,12.047],[0,0],[1.186,-1.514],[0,0]],"v":[[-253.968,-96.499],[-255.151,-92.759],[-80.834,91.013],[-56.053,90.916],[76.98,-133.018],[74.865,-136.343]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.103,0.961,0.961,1,0.512,0.882,0.884,0.951,0.734,0.804,0.808,0.902]}},"s":{"a":0,"k":[-1.728,-126.964]},"e":{"a":0,"k":[-0.228,77.542]},"t":1,"nm":"Gradient Fill 11","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[7.205,1.629],[0,0],[0,0],[0,0]],"o":[[0,0],[-7.127,1.645],[0,0],[0,0],[0,0],[0,0]],"v":[[92.308,-16.758],[11.966,1.788],[-14.489,1.817],[-96.594,-16.751],[-91.375,-17.16],[88.055,-17.16]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[11.698,19.573],[0,0],[0,0],[0,0]],"o":[[0,0],[-11.571,19.762],[0,0],[0,0],[0,0],[0,0]],"v":[[115.907,-186.926],[22.104,5.921],[-20.848,6.271],[-117.535,-186.833],[-111.085,-191.745],[110.651,-191.745]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[0,0],[53.248,-33.089],[22.104,12.396],[0,0],[0,0],[0,0]],"o":[[0,0],[-12.356,7.678],[-51.45,-28.854],[0,0],[0,0],[0,0]],"v":[[237.057,-87.077],[31.291,79.036],[-31.546,79.296],[-242.282,-87.008],[-229.037,-90.67],[226.264,-90.67]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,0],[0,0],[15.527,17.839],[0,0],[0,0],[0,0]],"o":[[0,0],[-15.358,18.012],[0,0],[0,0],[0,0],[0,0]],"v":[[201.422,-140.332],[28.293,62.715],[-28.716,63.034],[-205.644,-140.248],[-194.396,-144.724],[192.256,-144.724]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[16.254,16.426],[0,0],[0,0],[0,0]],"o":[[0,0],[-16.077,16.585],[0,0],[0,0],[0,0],[0,0]],"v":[[210.956,-117.145],[29.72,69.821],[-29.959,70.115],[-215.173,-117.067],[-203.399,-121.189],[201.362,-121.189]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[12.525,10.619],[0,0],[0,0],[0,0]],"o":[[0,0],[-14.391,18.802],[0,0],[0,0],[0,0],[0,0]],"v":[[144.847,-120.15],[-3.809,68.511],[-59.125,75.983],[-257.107,-105.302],[-245.826,-108.966],[135.704,-124.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[13.716,16.772],[0,0],[0,0],[0,0]],"o":[[0,0],[-12.29,13.848],[0,0],[0,0],[0,0],[0,0]],"v":[[192.334,-131.174],[21.793,60.001],[-31.817,55.964],[-185.309,-133.676],[-174.781,-138.086],[183.617,-135.152]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[2.883,12.238],[0,0],[0,0],[0,0]],"o":[[0,0],[-12.283,7.983],[0,0],[0,0],[0,0],[0,0]],"v":[[92.162,-105.862],[-105.317,45.175],[-134.771,33.479],[-191.835,-169.174],[-182.239,-171.232],[84.277,-116.566]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[-3.744,9.151],[0,0],[0,0],[0,0]],"o":[[0,0],[-2.838,1.025],[0,0],[0,0],[0,0],[0,0]],"v":[[-19.157,-110.802],[-127.311,5.302],[-129.087,6.167],[-80.052,-171.668],[-75.562,-173.748],[-26.703,-129.098]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[-0.558,17.364],[0,0],[0,0],[0,0]],"o":[[0,0],[1.845,7.798],[0,0],[0,0],[0,0],[0,0]],"v":[[-108.082,-99.07],[-79.556,33.814],[-73.88,19.679],[-61.2,-152.53],[-62.774,-154.54],[-106.789,-109.527]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[-5.675,12.725],[0,0],[0,0],[0,0]],"o":[[0,0],[6.408,7.928],[0,0],[0,0],[0,0],[0,0]],"v":[[-225.485,-120.761],[-55.258,22.492],[-28.326,17.647],[46.252,-176.433],[37.271,-178.491],[-218.106,-131.466]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[-9.929,12.651],[0,0],[0,0],[0,0]],"o":[[0,0],[14.916,11.065],[0,0],[0,0],[0,0],[0,0]],"v":[[-264.519,-98.423],[-72.479,67.315],[-30.059,61.762],[86.994,-158.024],[76.139,-160.144],[-256.146,-105.787]],"c":true}]},{"t":135,"s":[{"i":[[0,0],[0,0],[-9.48,11.045],[0,0],[0,0],[0,0]],"o":[[0,0],[14.285,15.795],[0,0],[0,0],[0,0],[0,0]],"v":[[-277.504,-92.224],[-84.936,103.018],[-49.448,103.14],[98.789,-138.263],[87.878,-140.435],[-269.465,-96.805]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.51372551918,0.533333361149,0.631372570992,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.804,0.808,0.902,0.647,0.822,0.824,0.892,1,0.839,0.839,0.882]}},"s":{"a":0,"k":[-0.637,94.833]},"e":{"a":0,"k":[4.624,-135.86]},"t":1,"nm":"Gradient Fill 122","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[6.575,-1.454],[0,0],[0,0],[0,0]],"o":[[0,0],[-6.575,-1.454],[0,0],[0,0],[0,0],[0,0]],"v":[[90.176,9.917],[9.844,-7.807],[-14.186,-7.807],[-94.52,9.917],[-87.36,9.917],[82.68,9.917]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[10.675,-17.468],[0,0],[0,0],[0,0]],"o":[[0,0],[-10.675,-17.468],[0,0],[0,0],[0,0],[0,0]],"v":[[147.759,160.825],[18.659,-79.403],[-20.355,-79.403],[-152.103,160.825],[-140.479,160.825],[135.589,160.825]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[0,0],[0,0],[15.617,-13.024],[0,0],[0,0],[0,0]],"o":[[0,0],[-15.617,-13.024],[0,0],[0,0],[0,0],[0,0]],"v":[[217.054,151.84],[26.25,-6.904],[-30.825,-6.904],[-221.633,151.84],[-204.627,151.84],[199.25,151.84]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,0],[0,0],[14.168,-15.92],[0,0],[0,0],[0,0]],"o":[[0,0],[-14.168,-15.92],[0,0],[0,0],[0,0],[0,0]],"v":[[196.828,151.707],[23.72,-42.334],[-28.062,-42.334],[-201.173,151.707],[-185.744,151.707],[180.675,151.707]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[14.832,-14.66],[0,0],[0,0],[0,0]],"o":[[0,0],[-14.832,-14.66],[0,0],[0,0],[0,0],[0,0]],"v":[[206.147,151.765],[24.933,-26.908],[-29.274,-26.908],[-210.493,151.765],[-194.341,151.765],[189.237,151.765]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[12.721,-13.491],[0,0],[0,0],[0,0]],"o":[[0,0],[-12.522,-13.914],[0,0],[0,0],[0,0],[0,0]],"v":[[154.463,165.618],[-4.458,-9.308],[-70.263,-16.314],[-259.572,190.116],[-244.135,189.944],[138.301,165.798]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[14.527,-13.868],[0,0],[0,0],[0,0]],"o":[[0,0],[-12.108,-16.024],[0,0],[0,0],[0,0],[0,0]],"v":[[188.029,148.284],[23.714,-31.203],[-24.958,-35.142],[-195.865,155.314],[-181.318,155.048],[172.8,148.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[10.685,-14.185],[0,0],[0,0],[0,0]],"o":[[0,0],[-4.549,-17.866],[0,0],[0,0],[0,0],[0,0]],"v":[[15.971,148.167],[-71.329,-19.355],[-120.93,-12.746],[-210.475,63.801],[-220.482,91.895],[31.752,184.585]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[6.103,-14.242],[0,0],[0,0],[0,0]],"o":[[0,0],[3.317,-16.415],[0,0],[0,0],[0,0],[0,0]],"v":[[-126.56,110.901],[-113.779,-25.379],[-100.17,-48.121],[-140.273,35.505],[-150.069,63.899],[-119.125,171.103]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[-1.605,-13.857],[0,0],[0,0],[0,0]],"o":[[0,0],[0.683,-17.452],[0,0],[0,0],[0,0],[0,0]],"v":[[-97.864,167.966],[-83.498,-5.512],[-77.077,-17.946],[-58.443,66.661],[-56.802,94.104],[-98.174,184.647]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[-4.234,-12.32],[0,0],[0,0],[0,0]],"o":[[0,0],[6.227,-12.66],[0,0],[0,0],[0,0],[0,0]],"v":[[-161.239,167.509],[-73.989,-19.315],[-34.861,-14.579],[65.166,96.207],[73.045,91.895],[-163.006,184.585]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[-6.939,-11.941],[0,0],[0,0],[0,0]],"o":[[0,0],[7.257,-13.144],[0,0],[0,0],[0,0],[0,0]],"v":[[-230.036,167.482],[-79.396,-22.585],[-34.934,-18.403],[80.147,102.26],[76.348,104.873],[-222.634,174.402]],"c":true}]},{"t":135,"s":[{"i":[[0,0],[0,0],[-12.285,-11.087],[0,0],[0,0],[0,0]],"o":[[0,0],[9.117,-14.072],[0,0],[0,0],[0,0],[0,0]],"v":[[-253.167,171.28],[-91.617,-24.919],[-41.916,-24.571],[128.974,116.971],[114.789,119.582],[-238.125,169.735]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.662,0.662,0.759,0.197,0.759,0.764,0.852,0.53,0.855,0.867,0.945]}},"s":{"a":0,"k":[-0.045,127.032]},"e":{"a":0,"k":[-4.766,-98.874]},"t":1,"nm":"Gradient Fill 123","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[7.127,-1.576],[0,0],[0,0],[0,0]],"o":[[0,0],[-7.127,-1.576],[0,0],[0,0],[0,0],[0,0]],"v":[[93.328,8.945],[10.854,-9.296],[-15.195,-9.296],[-97.67,8.945],[-94.52,9.983],[89.713,9.983]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[11.572,-18.935],[0,0],[0,0],[0,0]],"o":[[0,0],[-11.572,-18.935],[0,0],[0,0],[0,0],[0,0]],"v":[[152.876,149.147],[20.298,-97.292],[-21.994,-97.292],[-157.218,149.147],[-152.103,161.622],[147.006,161.622]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[0,0],[44.479,16.391],[13.327,-6.645],[0,0],[0,0],[0,0]],"o":[[0,0],[-9.305,-3.429],[-56.103,27.972],[0,0],[0,0],[0,0]],"v":[[224.541,143.132],[28.648,-20.243],[-33.223,-20.243],[-229.115,143.132],[-221.633,152.434],[215.953,152.434]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,0],[0,0],[15.359,-17.258],[0,0],[0,0],[0,0]],"o":[[0,0],[-15.359,-17.258],[0,0],[0,0],[0,0],[0,0]],"v":[[203.62,141.064],[25.896,-58.638],[-30.237,-58.638],[-207.961,141.064],[-201.173,152.434],[195.829,152.434]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[16.078,-15.891],[0,0],[0,0],[0,0]],"o":[[0,0],[-16.078,-15.891],[0,0],[0,0],[0,0],[0,0]],"v":[[213.257,141.965],[27.21,-41.921],[-31.552,-41.921],[-217.599,141.965],[-210.493,152.434],[205.101,152.434]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[13.79,-14.625],[0,0],[0,0],[0,0]],"o":[[0,0],[-13.574,-15.083],[0,0],[0,0],[0,0],[0,0]],"v":[[161.07,156.384],[-2.418,-23.309],[-72.099,-30.379],[-266.553,181.033],[-259.56,190.741],[153.477,166.255]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[15.748,-15.034],[0,0],[0,0],[0,0]],"o":[[0,0],[-13.125,-17.37],[0,0],[0,0],[0,0],[0,0]],"v":[[194.25,138.144],[26.998,-46.344],[-25.764,-50.614],[-202.449,145.409],[-195.853,155.998],[187.1,148.985]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[12.796,-13.352],[0,0],[0,0],[0,0]],"o":[[0,0],[-3.25,-20.563],[0,0],[0,0],[0,0],[0,0]],"v":[[32.513,150.046],[-65.244,-30.947],[-119.316,-32.783],[-220.698,61.221],[-221.336,91.637],[43.053,186.916]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[6.333,-13.61],[0,0],[0,0],[0,0]],"o":[[0,0],[4.3,-19.061],[0,0],[0,0],[0,0],[0,0]],"v":[[-121.711,118.026],[-104.496,-21.574],[-96.197,-67.139],[-145.62,36.985],[-150.381,63.665],[-114.79,173.178]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[-1.922,-13.042],[0,0],[0,0],[0,0]],"o":[[0,0],[0.488,-20.087],[0,0],[0,0],[0,0],[0,0]],"v":[[-100.577,169.802],[-84.412,-16.835],[-77.32,-37.519],[-56.766,64.141],[-56.661,93.852],[-100.027,186.924]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[-5.744,-12.03],[0,0],[0,0],[0,0]],"o":[[0,0],[5.892,-14.886],[0,0],[0,0],[0,0],[0,0]],"v":[[-176.719,169.388],[-75.75,-28.962],[-32.189,-29.842],[74.734,93.628],[73.845,91.637],[-173.582,186.916]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[-7.997,-12.361],[0,0],[0,0],[0,0]],"o":[[0,0],[7.553,-14.791],[0,0],[0,0],[0,0],[0,0]],"v":[[-241.008,164.092],[-81.154,-33.954],[-33.304,-32.438],[86.989,95.92],[84.51,103.642],[-235.106,176.566]],"c":true}]},{"t":135,"s":[{"i":[[0,0],[0,0],[-13.317,-12.019],[0,0],[0,0],[0,0]],"o":[[0,0],[9.883,-15.254],[0,0],[0,0],[0,0],[0,0]],"v":[[-260.382,163.498],[-94.883,-37.573],[-41.895,-37.683],[133.545,107.496],[129.088,117.539],[-252.176,171.76]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.600000023842,0.607843160629,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.733,0.722,0.796,0.459,0.81,0.804,0.876,1,0.886,0.886,0.957]}},"s":{"a":0,"k":[-0.659,92.569]},"e":{"a":0,"k":[-2.024,18.053]},"t":1,"nm":"Gradient Fill 1234","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0.67,-0.177],[0,0],[0,0],[0,0],[-0.642,0.178],[0,0]],"o":[[0,0],[0.662,0.179],[0,0],[0,0],[0,0],[-0.655,-0.176],[0,0],[0,0]],"v":[[-95.876,-15.991],[-50.33,-4.226],[-50.344,-3.616],[-95.617,8.491],[91.275,8.491],[46.89,-3.536],[46.868,-4.138],[91.599,-15.991]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,0],[0,0],[1.088,-2.131],[0,0],[0,0],[0,0],[-1.042,2.136],[0,0]],"o":[[0,0],[1.075,2.147],[0,0],[0,0],[0,0],[-1.063,-2.109],[0,0],[0,0]],"v":[[-116.647,-177.703],[-70.441,-52.001],[-70.463,-44.68],[-153.885,143.693],[149.543,143.693],[70.207,-39.164],[70.171,-46.399],[115.03,-177.703]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[0,0],[0,0],[1.591,-1.589],[0,0],[0,0],[0,0],[-1.524,1.592],[0,0]],"o":[[0,0],[1.572,1.601],[0,0],[0,0],[0,0],[-1.555,-1.573],[0,0],[0,0]],"v":[[-240.46,-80.2],[-116.675,25.172],[-118.722,30.631],[-224.24,139.066],[219.665,139.066],[117.597,31.348],[114.188,25.953],[235.256,-80.2]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,0],[0,0],[1.444,-1.942],[0,0],[0,0],[0,0],[-1.383,1.947],[0,0]],"o":[[0,0],[1.426,1.957],[0,0],[0,0],[0,0],[-1.411,-1.923],[0,0],[0,0]],"v":[[-204.096,-131.926],[-105.95,-3.124],[-105.979,3.548],[-203.538,136.094],[199.196,136.094],[103.55,4.424],[103.502,-2.17],[199.893,-131.926]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[1.511,-1.788],[0,0],[0,0],[0,0],[-1.448,1.792],[0,0]],"o":[[0,0],[1.493,1.802],[0,0],[0,0],[0,0],[-1.477,-1.77],[0,0],[0,0]],"v":[[-213.553,-109.404],[-110.81,9.196],[-110.841,15.34],[-212.968,137.388],[208.626,137.388],[108.501,16.147],[108.451,10.075],[209.356,-109.404]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[1.298,-1.65],[0,0],[0,0],[0,0],[-1.244,1.655],[0,0]],"o":[[0,0],[1.258,1.706],[0,0],[0,0],[0,0],[-1.245,-1.676],[0,0],[0,0]],"v":[[-255.611,-98.113],[-146.627,22.486],[-146.695,28.228],[-262.215,176.706],[156.556,152.156],[66.675,23.251],[66.673,17.575],[143.265,-112.941]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[1.328,-1.854],[0,0],[0,0],[0,0],[-1.448,1.722],[0,0]],"o":[[0,0],[1.379,1.818],[0,0],[0,0],[0,0],[-1.18,-1.912],[0,0],[0,0]],"v":[[-183.706,-125.866],[-99.761,0.671],[-99.673,6.955],[-198.364,140.651],[189.993,133.54],[95.238,8.89],[95.694,2.696],[191.038,-123.231]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[1.119,-1.843],[0,0],[0,0],[0,0],[-1.118,1.78],[0,0]],"o":[[0,0],[0.447,2.102],[0,0],[0,0],[0,0],[-0.388,-2.118],[0,0],[0,0]],"v":[[-193.323,-160.609],[-156.841,-14.112],[-157.991,-7.359],[-217.953,56.605],[39.014,151.464],[-21.782,12.556],[-20.537,5.913],[88.407,-97.862]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0.728,-1.828],[0,0],[0,0],[0,0],[-0.712,1.768],[0,0]],"o":[[0,0],[-0.412,1.939],[0,0],[0,0],[0,0],[0.43,-1.959],[0,0],[0,0]],"v":[[-82.402,-163.496],[-110.087,-43.295],[-112.037,-36.847],[-134.733,37.93],[-124.061,110.656],[-103.021,-3.324],[-101.075,-9.676],[-22.357,-103.139]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[-0.168,-1.801],[0,0],[0,0],[0,0],[0.168,1.739],[0,0]],"o":[[0,0],[-0.067,2.054],[0,0],[0,0],[0,0],[0.058,-2.069],[0,0],[0,0]],"v":[[-60.956,-144.163],[-71.581,-16.059],[-71.408,-9.462],[-57.216,59.632],[-101.519,171.187],[-90.095,22.039],[-90.282,15.549],[-107.467,-91.256]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[-0.377,-1.558],[0,0],[0,0],[0,0],[0.389,1.511],[0,0]],"o":[[0,0],[-0.676,1.504],[0,0],[0,0],[0,0],[0.641,-1.525],[0,0],[0,0]],"v":[[47.644,-167.868],[-11.729,-7.327],[-12.24,-2.087],[72.165,89.012],[-182.091,170.806],[-98.065,2.336],[-97.635,-2.838],[-221.971,-112.762]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[-0.689,-1.492],[0,0],[0,0],[0,0],[0.673,1.475],[0,0]],"o":[[0,0],[-0.744,1.58],[0,0],[0,0],[0,0],[0.726,-1.575],[0,0],[0,0]],"v":[[87.352,-150.443],[-2.81,4.648],[-2.903,9.905],[83.178,92.108],[-241.43,162.357],[-115.083,15.615],[-114.993,10.418],[-261.428,-91.266]],"c":true}]},{"t":135,"s":[{"i":[[0,0],[0,0],[-1.284,-1.382],[0,0],[0,0],[0,0],[1.238,1.392],[0,0]],"o":[[0,0],[-0.883,1.697],[0,0],[0,0],[0,0],[0.874,-1.668],[0,0],[0,0]],"v":[[98.236,-131.502],[9.213,9.203],[9.899,14.472],[128.698,104.356],[-256.679,159.136],[-156.93,29.654],[-157.55,24.439],[-275.194,-85.769]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.324,0.024,0,0.435,0.589,0.022,0,0.425,0.854,0.02,0,0.416,0.324,1,0.589,0.65,0.854,0.3]}},"s":{"a":0,"k":[0.105,-45.053]},"e":{"a":0,"k":[-1.728,23.793]},"t":1,"nm":"Gradient Fill 12345","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":15},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,-0.574],[0,0],[-2.5,0],[0,0],[0,0.574],[0,0],[2.5,0],[0,0]],"o":[[0,0],[0,0.574],[0,0],[2.5,0],[0,0],[0,-0.574],[0,0],[-2.5,0]],"v":[[-91.458,-16.121],[-91.458,8.945],[-86.931,9.983],[82.589,9.983],[87.116,8.945],[87.116,-16.121],[82.589,-17.16],[-86.931,-17.16]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,-6.889],[0,0],[-4.06,0],[0,0],[0,6.889],[0,0],[3.09,0],[0,0]],"o":[[0,0],[0,6.889],[0,0],[4.06,0],[0,0],[0,-6.889],[0,0],[-3.09,0]],"v":[[-111.188,-179.27],[-147.133,149.147],[-139.782,161.622],[135.441,161.622],[142.791,149.147],[109.491,-179.27],[103.896,-191.745],[-105.593,-191.745]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[5.551,-8.898],[-22.945,-45.307],[-5.939,0],[0,0],[-0.956,4.826],[15.364,36.403],[6.345,0],[0,0]],"o":[[-22.763,30.902],[5.209,3.571],[0,0],[5.939,0],[20.655,-55.036],[-3.64,-4.71],[0,0],[-6.345,0]],"v":[[-229.249,-81.369],[-214.362,143.133],[-203.608,152.434],[199.033,152.434],[209.787,143.133],[223.883,-81.369],[212.394,-90.67],[-217.76,-90.67]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,-6.279],[0,0],[-5.388,0],[0,0],[0,6.279],[0,0],[5.388,0],[0,0]],"o":[[0,0],[0,6.279],[0,0],[5.388,0],[0,0],[0,-6.279],[0,0],[-5.388,0]],"v":[[-194.576,-133.355],[-194.576,141.064],[-184.82,152.434],[180.478,152.434],[190.234,141.064],[190.234,-133.355],[180.478,-144.724],[-184.82,-144.724]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,-5.782],[-7.22,-72.976],[-5.64,0],[0,0],[-1.287,4.324],[0,0],[5.641,0],[0,0]],"o":[[0,0],[2.758,5.941],[0,0],[5.641,0],[11.352,-64.567],[0,-5.782],[0,0],[-5.64,0]],"v":[[-203.586,-110.72],[-203.586,141.965],[-193.373,152.434],[189.032,152.434],[199.245,141.965],[199.245,-110.72],[189.032,-121.189],[-193.373,-121.189]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0.039,-5.404],[0,0],[-5.391,0.06],[0,0],[0.112,5.403],[0,0],[5.391,0.09],[0,0]],"o":[[0,0],[0.111,5.403],[0,0],[5.391,-0.06],[0,0],[0.039,-5.404],[0,0],[-5.391,-0.09]],"v":[[-246.077,-99.183],[-253.16,180.884],[-243.197,190.559],[138.117,166.426],[147.677,156.533],[133.61,-114.332],[123.92,-124.281],[-236.244,-108.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-0.108,-5.913],[0,0],[-5.08,0.093],[0,0],[0.108,5.913],[0,0],[5.08,-0.093],[0,0]],"o":[[0,0],[0.108,5.913],[0,0],[5.08,-0.093],[0,0],[-0.108,-5.913],[0,0],[-5.08,0.093]],"v":[[-174.754,-127.376],[-189.829,145.178],[-180.434,155.716],[172.627,149.25],[181.629,138.375],[181.907,-124.41],[172.512,-134.948],[-165.751,-138.251]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[1.973,-6.216],[0,0],[-4.072,-0.567],[0,0],[-1.311,6.357],[0,0],[3.923,1.137],[0,0]],"o":[[0,0],[22.279,11.61],[0,0],[4.072,0.567],[0,0],[1.973,-6.216],[0,0],[-3.923,-1.137]],"v":[[-185.942,-160.014],[-208.362,54.113],[-227.179,54.678],[28.271,165.571],[56.359,152.3],[75.388,-91.728],[75.701,-119.052],[-175.266,-169.21]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[2.085,-5.942],[0,0],[-1.617,-0.488],[0,0],[-1.832,6.068],[0,0],[1.439,1.033],[0,0]],"o":[[0,0],[7.14,10.769],[0,0],[1.617,0.488],[0,0],[2.085,-5.942],[0,0],[-1.439,-1.033]],"v":[[-79.385,-163.023],[-140.294,39.68],[-140.696,45.385],[-127.445,116.538],[-74.795,98.629],[-40.743,-79.496],[-29.849,-131.355],[-73.004,-171.913]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[-0.324,-6.072],[0,0],[0.668,-0.554],[0,0],[0.215,6.21],[0,0],[-0.644,1.111],[0,0]],"o":[[0,0],[-3.654,11.341],[0,0],[-0.668,0.554],[0,0],[-0.324,-6.072],[0,0],[0.644,-1.111]],"v":[[-62.166,-143.582],[-58.789,57.198],[-55.703,57.75],[-97.603,166.073],[-102.21,153.109],[-105.331,-85.264],[-105.382,-111.955],[-63.918,-152.566]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[-1.846,-6.216],[0,0],[3.811,-0.567],[0,0],[1.227,6.357],[0,0],[-3.672,1.137],[0,0]],"o":[[0,0],[-20.85,11.61],[0,0],[-3.811,0.567],[0,0],[-1.846,-6.216],[0,0],[3.672,-1.137]],"v":[[40.737,-167.273],[63.189,86.52],[80.799,87.085],[-159.748,165.571],[-186.034,152.3],[-209.787,-106.628],[-210.08,-133.952],[30.745,-176.469]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[-1.301,-5.531],[0,0],[4.434,-0.755],[0,0],[0.844,5.603],[0,0],[-4.756,0.873],[0,0]],"o":[[0,0],[-8.94,7.957],[0,0],[-4.469,0.539],[0,0],[-1.301,-5.531],[0,0],[4.756,-0.873]],"v":[[78.652,-150.158],[75.029,93.924],[79.114,99.933],[-221.02,166.063],[-238.443,155.626],[-250.237,-89.732],[-245.75,-107.697],[67.686,-158.592]],"c":true}]},{"t":135,"s":[{"i":[[-0.666,-4.96],[0,0],[4.954,-0.912],[0,0],[0.526,4.975],[0,0],[-5,0.654],[0,0]],"o":[[0,0],[0.985,4.912],[0,0],[-5.018,0.515],[0,0],[-0.666,-4.96],[0,0],[5,-0.654]],"v":[[89.25,-131.476],[121.239,109.761],[114.053,120.307],[-237.881,170.292],[-247.918,162.217],[-266.383,-88.069],[-258.536,-98.234],[78.992,-139.274]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.208,0.945,0.945,0.98,0.522,0.824,0.824,0.882,0.836,0.702,0.702,0.784]}},"s":{"a":0,"k":[-1.728,-119.964]},"e":{"a":0,"k":[0.359,102.165]},"t":1,"nm":"Gradient Fill 123456","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 8","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,-0.574],[0,0],[-2.674,0],[0,0],[0,0.574],[0,0],[2.674,0],[0,0]],"o":[[0,0],[0,0.574],[0,0],[2.674,0],[0,0],[0,-0.574],[0,0],[-2.674,0]],"v":[[-97.67,-16.121],[-97.67,8.945],[-92.827,9.983],[88.486,9.983],[93.328,8.945],[93.328,-16.121],[88.486,-17.16],[-92.827,-17.16]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.167,"y":0.167},"t":28,"s":[{"i":[[0,-6.889],[0,0],[-4.342,0],[0,0],[0,6.889],[0,0],[3.305,0],[0,0]],"o":[[0,0],[0,6.889],[0,0],[4.342,0],[0,0],[0,-6.889],[0,0],[-3.305,0]],"v":[[-118.864,-179.27],[-157.218,149.147],[-149.356,161.622],[145.014,161.622],[152.876,149.147],[117.167,-179.27],[111.183,-191.745],[-112.88,-191.745]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":34,"s":[{"i":[[2.34,-3.035],[-25.089,-48.347],[-6.352,0],[0,0],[-3.32,6.418],[10.36,28.296],[6.786,0],[0,0]],"o":[[-12.739,17.873],[3.516,3.281],[0,0],[6.352,0],[18.744,-22.809],[-1.653,-5.289],[0,0],[-6.786,0]],"v":[[-245.011,-81.369],[-229.115,143.133],[-217.614,152.434],[213.039,152.434],[224.541,143.133],[239.645,-81.369],[227.357,-90.67],[-232.723,-90.67]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":42,"s":[{"i":[[0,-6.279],[0,0],[-5.763,0],[0,0],[0,6.279],[0,0],[5.763,0],[0,0]],"o":[[0,0],[0,6.279],[0,0],[5.763,0],[0,0],[0,-6.279],[0,0],[-5.763,0]],"v":[[-207.961,-133.355],[-207.961,141.064],[-197.526,152.434],[193.185,152.434],[203.62,141.064],[203.62,-133.355],[193.185,-144.724],[-197.526,-144.724]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,-5.782],[-14.494,-74.594],[-6.033,0],[0,0],[-2.328,10.469],[0,0],[6.033,0],[0,0]],"o":[[0,0],[0.307,7.72],[0,0],[6.033,0],[12.639,-51.63],[0,-5.782],[0,0],[-6.033,0]],"v":[[-217.599,-110.72],[-217.599,141.965],[-206.675,152.434],[202.333,152.434],[213.257,141.965],[213.257,-110.72],[202.333,-121.189],[-206.675,-121.189]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0.039,-5.404],[0,0],[-5.766,0.064],[0,0],[0.111,5.403],[0,0],[5.766,0.097],[0,0]],"o":[[0,0],[0.111,5.403],[0,0],[5.766,-0.064],[0,0],[0.039,-5.404],[0,0],[-5.766,-0.097]],"v":[[-259.469,-99.408],[-266.553,181.033],[-255.911,190.7],[150.831,166.284],[161.071,156.384],[147.002,-114.108],[136.633,-124.069],[-248.957,-109.018]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-0.108,-5.913],[0,0],[-5.434,0.099],[0,0],[0.108,5.913],[0,0],[5.434,-0.1],[0,0]],"o":[[0,0],[0.108,5.913],[0,0],[5.434,-0.099],[0,0],[-0.108,-5.913],[0,0],[-5.434,0.1]],"v":[[-187.375,-127.145],[-202.449,145.409],[-192.414,155.935],[184.607,149.031],[194.25,138.144],[194.527,-124.641],[184.493,-135.168],[-177.732,-138.032]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[1.973,-6.216],[0,0],[-4.356,-0.607],[0,0],[-1.311,6.357],[0,0],[4.196,1.216],[0,0]],"o":[[0,0],[-1.311,6.357],[0,0],[4.355,0.607],[0,0],[1.973,-6.216],[0,0],[-4.196,-1.216]],"v":[[-195.688,-162.839],[-224.586,86.938],[-219.074,99.547],[41.055,186.638],[65.895,166.01],[91.57,-98.49],[84.953,-116.37],[-184.518,-171.892]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[2.085,-5.942],[0,0],[-1.729,-0.522],[0,0],[-1.832,6.068],[0,0],[1.539,1.105],[0,0]],"o":[[0,0],[-1.832,6.068],[0,0],[1.729,0.522],[0,0],[2.085,-5.942],[0,0],[-1.539,-1.105]],"v":[[-82.96,-165.589],[-153.769,71.132],[-153.955,83.065],[-115.583,172.938],[-72.245,134.291],[-20.887,-103.777],[-26.455,-128.92],[-76.398,-174.348]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[-0.324,-6.072],[0,0],[0.714,-0.592],[0,0],[0.215,6.21],[0,0],[-0.688,1.188],[0,0]],"o":[[0,0],[0.215,6.21],[0,0],[-0.714,0.592],[0,0],[-0.324,-6.072],[0,0],[0.688,-1.188]],"v":[[-60.568,-146.342],[-56.128,89.262],[-57.033,101.579],[-99.7,186.652],[-103.774,166.502],[-107.985,-91.869],[-106.9,-109.335],[-62.4,-155.185]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[-1.846,-6.216],[0,0],[4.076,-0.607],[0,0],[1.227,6.357],[0,0],[-3.927,1.216],[0,0]],"o":[[0,0],[1.227,6.357],[0,0],[-4.076,0.607],[0,0],[-1.846,-6.216],[0,0],[3.927,-1.216]],"v":[[49.858,-170.098],[76.886,86.938],[71.727,99.547],[-171.712,186.638],[-194.959,166.01],[-224.931,-113.39],[-218.738,-131.27],[39.404,-179.151]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[-1.301,-5.531],[0,0],[4.743,-0.808],[0,0],[0.845,5.603],[0,0],[-5.087,0.934],[0,0]],"o":[[0,0],[1.095,5.569],[0,0],[-4.78,0.576],[0,0],[-1.301,-5.531],[0,0],[5.087,-0.934]],"v":[[90.467,-152.328],[88.324,96.028],[81.719,107.574],[-232.913,176.302],[-249.299,162.556],[-265.013,-91.92],[-256.966,-105.637],[78.901,-160.651]],"c":true}]},{"t":135,"s":[{"i":[[-0.666,-4.96],[0,0],[5.298,-0.975],[0,0],[0.526,4.975],[0,0],[-5.348,0.699],[0,0]],"o":[[0,0],[0.985,4.912],[0,0],[-5.367,0.551],[0,0],[-0.666,-4.96],[0,0],[5.348,-0.699]],"v":[[101.67,-133.1],[133.545,107.496],[125.735,118.156],[-249.714,171.507],[-260.383,163.498],[-278.804,-86.446],[-270.327,-96.692],[90.782,-140.815]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.89,0.89,0.922,0.615,0.798,0.798,0.851,1,0.706,0.706,0.78]}},"s":{"a":0,"k":[-1.728,-111.964]},"e":{"a":0,"k":[0.774,157.435]},"t":1,"nm":"Gradient Fill 1234567","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 9","bm":0,"hd":false}],"ip":20,"op":118,"st":-4,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"BACK","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"t":51,"s":[100],"h":1},{"t":93,"s":[0],"h":1},{"t":120,"s":[100],"h":1}]},"p":{"a":0,"k":[-2.9,137.51,0]},"a":{"a":0,"k":[-2.9,137.51,0]},"s":{"a":1,"k":[{"i":{"x":[0.7,0.7,0.7],"y":[1,1,1]},"o":{"x":[0.9,0.9,0.9],"y":[0,0,0]},"t":19,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.2],"y":[1,1,1]},"o":{"x":[0.9,0.9,0.9],"y":[0,0,0]},"t":32,"s":[100,110,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.2,0.2,0.2],"y":[0,0,0]},"t":40,"s":[100,98,100]},{"i":{"x":[0.31,0.31,0.31],"y":[1.036,1.004,1.036]},"o":{"x":[0.4,0.4,0.4],"y":[0,0,0]},"t":52,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":79,"s":[100,110,100]},{"i":{"x":[0.843,0.843,0.843],"y":[1,1,1]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":101,"s":[100,100,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.393,0.393,0.393],"y":[0,0,0]},"t":117,"s":[100,100,100]},{"i":{"x":[0.864,0.864,0.864],"y":[1,1,1]},"o":{"x":[0.96,0.96,0.96],"y":[0,0,0]},"t":126,"s":[100,113,100]},{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.1,0.1,0.1],"y":[0,0,0]},"t":140,"s":[100,93,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":151,"s":[100,102,100]},{"t":175,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[0,0],[-2.669,0],[0,0],[-0.519,-2.574],[0,0]],"o":[[0,0],[0.474,-2.627],[0,0],[2.626,0],[0,0],[0,0]],"v":[[-191.87,64.648],[-169.856,-39.684],[-164.428,-44.221],[156.912,-44.221],[162.319,-39.796],[186.887,64.567]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[-2.721,0],[0,0],[-0.53,-2.679],[0,0]],"o":[[0,0],[0.483,-2.734],[0,0],[2.677,0],[0,0],[0,0]],"v":[[-191.838,72.865],[-173.123,-42.868],[-167.588,-47.59],[160.048,-47.59],[165.561,-42.985],[186.919,72.78]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[-2.64,0],[0,0],[-0.514,-2.355],[0,0]],"o":[[0,0],[0.468,-2.403],[0,0],[2.598,0],[0,0],[0,0]],"v":[[-190.62,51.316],[-167.863,-29.227],[-162.493,-33.379],[155.375,-33.379],[160.723,-29.329],[186.387,52.134]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[-2.669,0],[0,0],[-0.519,-2.574],[0,0]],"o":[[0,0],[0.474,-2.627],[0,0],[2.626,0],[0,0],[0,0]],"v":[[-191.87,64.648],[-169.856,-39.684],[-164.428,-44.221],[156.912,-44.221],[162.319,-39.796],[186.887,64.567]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[-2.666,0.124],[0,0],[-0.638,-2.547],[0,0]],"o":[[0,0],[0.351,-2.646],[0,0],[2.623,-0.122],[0,0],[0,0]],"v":[[-153.437,78.045],[-199.187,-35.967],[-199.974,-39.252],[121.02,-54.148],[126.626,-49.978],[186.585,58.732]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[-2.409,0],[0,0],[-0.469,-2.599],[0,0]],"o":[[0,0],[0.427,-2.652],[0,0],[2.37,0],[0,0],[0,0]],"v":[[-173.063,74.284],[-153.606,-41.423],[-148.706,-46.005],[141.309,-46.005],[146.189,-41.536],[166.879,72.275]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[-2.409,0],[0,0],[-2.064,0.715],[0,0]],"o":[[0,0],[0.427,-2.652],[0,0],[2.37,0],[0,0],[0,0]],"v":[[-211.723,14.683],[13.144,-47.423],[19.794,-46.505],[219.996,9.433],[223.22,8.151],[5.882,85.029]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[-2.409,0],[0,0],[-2.064,0.715],[0,0]],"o":[[0,0],[0.427,-2.652],[0,0],[2.37,0],[0,0],[0,0]],"v":[[-184.223,-6.067],[118.144,-28.673],[124.794,-27.755],[205.996,35.933],[209.22,34.651],[-138.638,65.601]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[-1.785,0.428],[0,0],[-1.698,0.067],[0,0]],"o":[[0,0],[-0.296,-2.63],[0,0],[1.756,-0.421],[0,0],[0,0]],"v":[[135.63,56.898],[-193.997,37.561],[-191.426,32.278],[-117.825,-25.28],[-112.302,-24.845],[182.665,-7.409]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[-1.785,0.428],[0,0],[-1.698,0.067],[0,0]],"o":[[0,0],[-0.296,-2.63],[0,0],[1.756,-0.421],[0,0],[0,0]],"v":[[-19.87,86.648],[-201.997,4.561],[-199.426,-0.723],[-7.325,-43.78],[-1.802,-43.345],[207.262,15.933]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[-2.158,0.248],[0,0],[-1.201,-1.047],[0,0]],"o":[[0,0],[0.028,-2.629],[0,0],[2.123,-0.244],[0,0],[0,0]],"v":[[-94.224,78.159],[-176.29,-14.752],[-172.513,-19.721],[65.358,-46.81],[70.832,-44.691],[192.901,39.495]],"c":false}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[-2.406,0.127],[0,0],[-0.869,-1.79],[0,0]],"o":[[0,0],[0.245,-2.628],[0,0],[2.367,-0.125],[0,0],[0,0]],"v":[[-134.515,71.326],[-174.152,-26.794],[-169.572,-31.553],[110.98,-46.246],[116.422,-43.006],[192.058,52.756]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[-2.567,0.037],[0,0],[-0.614,-2.347],[0,0]],"o":[[0,0],[0.403,-2.627],[0,0],[2.525,-0.036],[0,0],[0,0]],"v":[[-171.665,65.382],[-167.221,-35.95],[-162.091,-40.552],[144.293,-44.808],[149.655,-40.726],[188.965,54.064]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0],[-2.669,0],[0,0],[-0.519,-2.574],[0,0]],"o":[[0,0],[0.474,-2.627],[0,0],[2.626,0],[0,0],[0,0]],"v":[[-191.87,64.648],[-169.856,-39.684],[-164.428,-44.221],[156.912,-44.221],[162.319,-39.796],[186.887,64.567]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.019607843831,0.388235300779,0.639215707779,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[-0.45,-2.25],[0,0]],"o":[[0,0],[0,0],[2.19,0.4],[0,0],[2.363,12.283]],"v":[[163.681,72.34],[157.903,46.656],[157.903,-44.133],[162.323,-39.794],[186.887,64.567]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[-0.459,-2.342],[0,0]],"o":[[0,0],[0,0],[2.233,0.416],[0,0],[2.363,12.784]],"v":[[163.712,80.871],[157.721,29.377],[161.058,-47.499],[165.565,-42.982],[186.919,72.78]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[-0.445,-2.059],[0,0]],"o":[[0,0],[0,0],[2.166,0.366],[0,0],[2.363,11.239]],"v":[[163.681,66.645],[157.805,55.388],[156.355,-33.298],[160.727,-29.327],[185.262,53.41]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[-0.45,-2.25],[0,0]],"o":[[0,0],[0,0],[2.19,0.4],[0,0],[2.363,12.283]],"v":[[163.681,72.34],[157.903,46.656],[157.903,-44.133],[162.323,-39.794],[186.887,64.567]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[-0.554,-2.227],[0,0]],"o":[[0,0],[0,0],[2.206,0.298],[0,0],[7.41,27.558]],"v":[[144.577,71.12],[124,34.906],[122.013,-54.106],[126.63,-49.976],[186.085,59.482]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[-0.406,-2.272],[0,0]],"o":[[0,0],[0,0],[1.977,0.404],[0,0],[2.133,12.404]],"v":[[145.935,80.124],[142.203,45.765],[142.203,-45.916],[146.192,-41.534],[166.879,72.275]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[1.332,-7.678],[0,0],[0,0],[-0.406,-2.272],[0,0]],"o":[[-3.043,-23.428],[0,0],[1.977,0.404],[0,0],[-8.362,3.171]],"v":[[33.918,149.701],[83.703,86.265],[231.3,32.568],[228.226,35.138],[15.862,110.351]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[3.017,-7.185],[0,0],[0,0],[0.113,-2.305],[0,0]],"o":[[2.279,-23.515],[0,0],[1.836,0.836],[0,0],[-8.86,1.219]],"v":[[-14.216,114.598],[48.507,63.918],[211.279,43.471],[207.708,45.287],[-23.004,72.205]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[-0.951,1.065],[0,0]],"o":[[0,0],[0,0],[1.558,0.037],[0,0],[2.363,12.283]],"v":[[178.181,86.34],[-113.097,55.406],[-117.142,-25.354],[-112.299,-24.593],[182.29,-7.409]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0],[-0.951,1.065],[0,0]],"o":[[0,0],[0,0],[1.558,0.037],[0,0],[2.363,12.283]],"v":[[203.181,84.34],[-3.597,32.906],[-6.642,-43.854],[-1.799,-43.093],[206.887,15.933]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0],[-0.71,-0.531],[0,0]],"o":[[0,0],[0,0],[1.862,0.212],[0,0],[2.363,12.283]],"v":[[191.388,114.664],[68.387,39.775],[66.846,-46.201],[71.485,-43.717],[191.732,43.424]],"c":true}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0],[-0.607,-1.208],[0,0]],"o":[[0,0],[0,0],[1.991,0.286],[0,0],[2.363,12.283]],"v":[[186.383,127.535],[109.148,42.485],[108.213,-45.387],[109.516,-44.922],[190.104,52.518]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[0,0],[-0.491,-1.948],[0,0]],"o":[[0,0],[0,0],[2.111,0.367],[0,0],[2.339,12.283]],"v":[[181.218,141.604],[144.465,45.448],[144.197,-44.496],[147.678,-41.279],[188.405,53.995]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[0,0],[0,0],[-0.45,-2.25],[0,0]],"o":[[0,0],[0,0],[2.19,0.4],[0,0],[0.309,2.436]],"v":[[179.921,133.341],[157.903,46.656],[157.903,-44.133],[162.323,-39.794],[186.887,64.567]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.043137256056,0.286274522543,0.407843142748,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.082352943718,0.329411774874,0.509803950787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[-2.23,0.41],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.41,-2.29]],"v":[[-165.427,-44.133],[-165.427,46.656],[-169.294,70.382],[-191.87,64.648],[-169.857,-39.684]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[-2.274,0.427],[0,0],[0,0],[-1.456,10.318],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.418,-2.383]],"v":[[-168.607,-47.499],[-165.609,29.377],[-169.263,78.832],[-191.838,72.865],[-173.124,-42.867]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[-2.206,0.375],[0,0],[0,0],[-1.456,9.071],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.406,-2.095]],"v":[[-163.482,-33.298],[-165.525,55.388],[-169.294,64.853],[-190.495,53.356],[-167.864,-29.226]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[-2.23,0.41],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.41,-2.29]],"v":[[-165.427,-44.133],[-165.427,46.656],[-169.294,70.382],[-191.87,64.648],[-169.857,-39.684]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[-2.23,0.41],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.41,-2.29]],"v":[[-200.427,-39.133],[-152.363,81.428],[-151.98,81.153],[-152.055,81.545],[-198.857,-36.184]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[-2.013,0.414],[0,0],[0,0],[-1.314,10.011],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.37,-2.312]],"v":[[-149.609,-45.916],[-149.609,45.765],[-153.099,104.723],[-173.063,74.284],[-153.607,-41.423]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[-2.013,0.414],[0,0],[0,0],[-1.314,10.011],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.37,-2.312]],"v":[[14.391,-46.666],[15.391,17.64],[-154.599,66.223],[-207.723,13.683],[13.393,-46.673]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[-2.013,0.414],[0,0],[0,0],[-1.314,10.011],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.37,-2.312]],"v":[[119.391,-27.916],[114.391,42.39],[-172.599,70.223],[-180.223,-7.067],[118.393,-27.923]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[-1.395,0.756],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.26,-2.293]],"v":[[-191.324,37.773],[-191.74,38.282],[-188.794,79.632],[111.63,56.898],[-193.998,37.561]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[-1.395,0.756],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.26,-2.293]],"v":[[-199.324,4.773],[-199.74,5.282],[-188.794,69.882],[-34.37,82.648],[-201.998,4.561]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[-1.747,0.61],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.023,-2.291]],"v":[[-172.876,-16.506],[-185.266,22.734],[-180.569,70.093],[-100.283,76.597],[-176.291,-14.752]],"c":true}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[-1.982,0.513],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.211,-2.291]],"v":[[-170.244,-29.859],[-175.618,34.369],[-173.937,74.378],[-134.946,71.388],[-174.153,-26.794]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[-2.136,0.44],[0,0],[0,0],[-1.441,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.349,-2.29]],"v":[[-162.987,-39.999],[-164.527,43.097],[-167.094,70.339],[-171.789,65.4],[-167.222,-35.95]],"c":true}]},{"t":156,"s":[{"i":[[-2.23,0.41],[0,0],[0,0],[-1.456,9.913],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0.41,-2.29]],"v":[[-165.427,-44.133],[-165.427,46.656],[-169.294,70.382],[-191.87,64.648],[-169.857,-39.684]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.043137256056,0.286274522543,0.407843142748,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.082352943718,0.329411774874,0.509803950787,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"t":51,"s":[100],"h":1},{"t":93,"s":[0],"h":1},{"t":141,"s":[100],"h":1}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.428,46.654],[157.906,46.654]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.609,29.374],[157.724,29.374]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.525,55.386],[157.808,55.386]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.428,46.654],[157.906,46.654]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-158.928,50.154],[123.406,35.308]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.609,45.762],[142.205,45.762]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-77.963,34.065],[116.97,57.343]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[17.565,18.468],[99.656,43.617]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[116.565,43.218],[202.156,113.867]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-83.928,51.154],[-113.594,53.154]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-70.053,50.529],[-4.094,30.654]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-102.654,63.763],[65.753,37.451]],"c":false}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-136.602,57.231],[102.159,40.02]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-159.779,51.111],[142.881,46.453]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.428,46.654],[157.906,46.654]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.333333343267,0.580392181873,0.768627464771,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.428,52.477],[157.906,52.477]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.609,35.435],[157.724,35.435]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.525,60.714],[157.808,60.714]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.428,52.477],[157.906,52.477]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-158.928,55.977],[123.406,41.131]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-149.609,51.643],[142.205,51.643]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-78.133,38.393],[117.067,61.724]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[17.168,20.726],[99.883,46]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[116.168,45.476],[202.383,116.25]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-84.178,55.227],[-117.094,57.477]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-69.803,53.977],[-7.594,34.977]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-102.825,68.388],[63.357,42.247]],"c":false}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-136.721,62.224],[100.499,45.131]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-161.29,55.248],[141.028,50.616]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-165.428,52.477],[157.906,52.477]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.098039217293,0.368627458811,0.568627476692,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-165.428,-44.13],[-165.428,46.654],[157.906,46.654],[157.906,-44.131]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-168.607,-47.495],[-165.609,29.374],[157.724,29.374],[161.061,-47.496]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-163.482,-33.295],[-165.525,55.386],[157.808,55.386],[156.357,-33.296]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-165.428,-44.13],[-165.428,46.654],[157.906,46.654],[157.906,-44.131]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-200.428,-39.13],[-158.928,50.154],[123.406,35.308],[121.906,-52.881]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-149.609,-45.913],[-149.609,45.762],[142.205,45.762],[142.205,-45.914]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-80.18,-47.734],[-77.395,34.191],[117.205,58.262],[177.723,-22.985]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.391,-46.663],[18.891,18.762],[100.205,45.762],[225.08,7.586]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[121.891,-27.663],[116.391,43.262],[205.205,115.762],[205.205,39.586]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-192.073,32.527],[-81.428,53.154],[-113.594,53.154],[-117.14,-25.352]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-200.073,-0.473],[-67.303,54.279],[-4.094,30.654],[-6.64,-43.852]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-174.397,-21.987],[-108.661,62.55],[68.131,38.605],[66.848,-46.199]],"c":false}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-171.069,-30.656],[-142.417,54.999],[112.478,41.624],[109.057,-46.164]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-164.729,-40.155],[-163.009,54.121],[143.845,45.197],[143.796,-43.923]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-165.428,-44.13],[-165.428,46.654],[157.906,46.654],[157.906,-44.131]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0,0.114,0.447,0.698,0.25,0.212,0.539,0.829,0.5,0.31,0.631,0.961,0.75,0.212,0.539,0.829,1,0.114,0.447,0.698]}},"s":{"a":0,"k":[-158.817,0.036]},"e":{"a":0,"k":[151.666,1.12]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-19.273],[29.04,0],[14.909,16.371],[17.112,0],[0,0],[-0.441,2.444],[0,0],[-0.519,-2.574]],"o":[[0.498,2.468],[0,0],[-19.428,0],[-15.947,18.485],[-30.144,0],[-26.243,-28.815],[0,0],[-2.484,0],[0,0],[0.474,-2.627],[0,0]],"v":[[185.17,58.567],[181.264,72.34],[105.532,72.34],[59.218,106.732],[-3.15,137.51],[-65.603,107.296],[-113.722,72.34],[-186.665,72.34],[-190.587,58.648],[-169.856,-39.684],[162.319,-39.796]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-20.059],[29.04,0],[14.909,17.039],[17.112,0],[0,0],[-0.441,2.544],[0,0],[-0.53,-2.679]],"o":[[0.498,2.568],[0,0],[-19.428,0],[-15.947,19.239],[-30.144,0],[-26.243,-29.991],[0,0],[-2.484,0],[0,0],[0.483,-2.734],[0,0]],"v":[[185.202,66.536],[181.296,80.871],[105.563,80.871],[59.249,116.666],[-3.15,141.556],[-65.572,117.253],[-113.69,80.871],[-186.633,80.871],[-190.555,66.62],[-173.123,-42.868],[165.562,-42.985]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-17.635],[29.04,0],[14.909,14.979],[17.112,0],[0,0],[-0.441,2.237],[0,0],[-0.514,-2.355]],"o":[[0.498,2.258],[0,0],[-19.428,0],[-15.947,16.914],[-30.144,0],[-26.243,-26.366],[0,0],[-2.484,0],[0,0],[0.468,-2.403],[0,0]],"v":[[185.17,54.042],[181.264,66.645],[105.532,66.645],[59.218,98.114],[-3.15,126.275],[-65.603,98.63],[-113.722,66.645],[-186.665,66.645],[-190.587,54.116],[-167.863,-29.227],[160.723,-29.329]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-19.273],[29.04,0],[14.909,16.371],[17.112,0],[0,0],[-0.441,2.444],[0,0],[-0.519,-2.574]],"o":[[0.498,2.468],[0,0],[-19.428,0],[-15.947,18.485],[-30.144,0],[-26.243,-28.815],[0,0],[-2.484,0],[0,0],[0.474,-2.627],[0,0]],"v":[[185.17,58.567],[181.264,72.34],[105.532,72.34],[59.218,106.732],[-3.15,137.51],[-65.603,107.296],[-113.722,72.34],[-186.665,72.34],[-190.587,58.648],[-169.856,-39.684],[162.319,-39.796]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[2.309,0],[0,0],[15.254,-19.273],[26.641,0],[12.216,17.488],[15.698,0],[0,0],[-0.404,2.444],[0,0],[-0.638,-2.547]],"o":[[0.457,2.468],[0,0],[-17.823,0],[-14.63,18.485],[-27.653,0],[-11.209,-16.046],[0,0],[-2.279,0],[0,0],[0.351,-2.646],[0,0]],"v":[[186.759,57.732],[188.639,68.206],[122.576,71.698],[77.718,106.732],[24.253,134.51],[-30.291,102.296],[-72.31,84.299],[-146.253,86.978],[-160.2,48.899],[-199.187,-35.967],[126.626,-49.978]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[2.272,0],[0,0],[15.007,-19.462],[26.209,0],[13.456,16.531],[15.444,0],[0,0],[-0.398,2.468],[0,0],[-0.469,-2.599]],"o":[[0.449,2.492],[0,0],[-17.534,0],[-14.393,18.666],[-27.205,0],[-23.684,-29.098],[0,0],[-2.242,0],[0,0],[0.427,-2.652],[0,0]],"v":[[165.33,66.216],[161.804,80.124],[93.454,80.124],[53.138,106.43],[-2.033,135.497],[-59.515,107],[-112.691,80.186],[-168.366,82.052],[-171.905,68.225],[-153.606,-41.423],[146.189,-41.536]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[{"i":[[0,0],[2.272,0],[0,0],[9.576,-14.653],[18.362,1.934],[11.553,12.456],[13.943,2.066],[0,0],[-3.735,3.724],[0,0],[-0.469,-2.599]],"o":[[0.337,1.63],[0,0],[-17.534,0],[-9.783,16.17],[-32.12,-2.924],[-17.87,-20.005],[0,0],[-2.242,0],[0,0],[0.427,-2.652],[0,0]],"v":[[96.135,75.008],[85.083,83.05],[20.375,73.407],[-13.398,99.68],[-56.94,120.717],[-106.154,78.635],[-146.065,59.832],[-185.792,54.687],[-186.331,44.289],[-81.82,-44.101],[182.51,-20.751]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[2.272,0],[0,0],[2.334,-8.241],[7.9,4.513],[9.015,7.023],[11.943,4.822],[0,0],[-8.185,5.398],[0,0],[-0.469,-2.599]],"o":[[0.188,0.48],[0,0],[-17.534,0],[-3.638,12.842],[-12.037,-6.877],[-10.117,-7.881],[0,0],[-2.242,0],[0,0],[0.427,-2.652],[0,0]],"v":[[6.395,87.657],[-17.213,86.951],[-77.063,64.451],[-102.112,90.68],[-130.15,101.01],[-150.765,38.5],[-182.193,25.701],[-209.026,18.201],[-205.565,12.375],[13.894,-47.673],[230.939,6.964]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[2.272,0],[0,0],[0.376,-1.143],[4.4,-0.871],[0.932,13.221],[6.693,15.937],[0,0],[-0.81,0.638],[0,0],[-0.469,-2.599]],"o":[[-18.812,-3.404],[0,0],[-2.187,-1.313],[-1.138,3.458],[-2.669,0.529],[-0.228,-3.228],[0,0],[-2.242,0],[0,0],[0.428,-2.652],[0,0]],"v":[[-112.688,65.042],[-145.463,60.951],[-156.563,47.951],[-165.362,64.93],[-172.15,74.259],[-178.932,39.667],[-181.693,15.201],[-184.026,5.701],[-184.44,-6.5],[123.894,-29.173],[209.439,39.464]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[2.517,0],[0,0],[0.072,-4.69],[2.074,0.454],[1.435,10.415],[4.722,-1.244],[0,0],[7.086,1.949],[0,0],[-0.948,-2.42]],"o":[[0.498,2.468],[0,0],[-3.032,19.507],[-0.218,14.114],[-7.601,-1.663],[-1.647,-11.949],[0,0],[-2.484,0],[0,0],[-0.296,-2.63],[0,0]],"v":[[180.573,-10.284],[173.264,-0.41],[174.032,25.09],[174.968,52.482],[170.851,74.26],[163.897,50.546],[153.855,33.128],[140.609,55.168],[119.664,58.399],[-193.997,37.561],[-114.677,-24.595]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[2.517,0],[0,0],[5.782,-13.635],[10.621,-1.026],[4.8,27.342],[17.112,0],[0,0],[7.086,1.949],[0,0],[-0.948,-2.42]],"o":[[0.498,2.468],[0,0],[-3.032,19.507],[-9.531,22.476],[-13.851,1.338],[-3.897,-22.199],[0,0],[-2.484,0],[0,0],[-0.296,-2.63],[0,0]],"v":[[206.42,15.558],[180.264,30.206],[167.532,30.34],[160.218,76.232],[140.101,99.76],[102.897,66.046],[44.778,68.629],[-8.165,84.59],[-26.337,84.148],[-201.997,4.561],[-4.177,-43.095]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[2.517,0],[0,0],[10.357,-16.013],[18.39,-0.593],[14.321,19.987],[17.112,0],[0,0],[3.911,2.158],[0,0],[-0.767,-2.485]],"o":[[0.498,2.468],[0,0],[-9.948,11.279],[-12.238,20.792],[-20.723,0.773],[-12.739,-17.176],[0,0],[-2.484,0],[0,0],[0.028,-2.629],[0,0]],"v":[[194.426,43.518],[173.775,48.317],[140.554,52.415],[105.613,84.706],[67.847,117.709],[16.246,83.824],[-29.404,70.507],[-88.336,82.614],[-97.947,75.383],[-176.29,-14.752],[69.459,-44.547]],"c":true}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[2.517,0],[0,0],[13.407,-17.599],[23.57,-0.305],[11.907,19.629],[17.112,0],[0,0],[1.795,2.297],[0,0],[-0.647,-2.528]],"o":[[0.498,2.468],[0,0],[-14.559,5.793],[-14.042,19.67],[-25.305,0.397],[-19.606,-26.85],[0,0],[-2.484,0],[0,0],[0.245,-2.628],[0,0]],"v":[[190.601,48.426],[180.087,62.459],[123.945,59.867],[89.213,97.674],[39.394,126.298],[-15.561,95.046],[-71.1,72.208],[-132.505,80.123],[-136.409,68.366],[-174.152,-26.794],[115.716,-42.932]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[2.492,0],[0,0],[15.535,-18.788],[27.177,-0.11],[13.897,17.314],[16.938,0],[0,0],[0.205,2.402],[0,0],[-0.551,-2.561]],"o":[[0.493,2.468],[0,0],[-17.835,1.678],[-15.239,18.828],[-28.451,0.115],[-24.074,-28.246],[0,0],[-2.459,0],[0,0],[0.403,-2.627],[0,0]],"v":[[187.34,48.547],[181.579,62.396],[111.882,68.728],[69.359,104.109],[11.222,134.262],[-48.448,103.748],[-97.398,71.523],[-167.429,73.394],[-171.306,60.263],[-167.221,-35.95],[149.453,-40.704]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[2.517,0],[0,0],[16.627,-19.273],[29.04,0],[14.909,16.371],[17.112,0],[0,0],[-0.441,2.444],[0,0],[-0.519,-2.574]],"o":[[0.498,2.468],[0,0],[-19.428,0],[-15.947,18.485],[-30.144,0],[-26.243,-28.815],[0,0],[-2.484,0],[0,0],[0.474,-2.627],[0,0]],"v":[[185.17,58.567],[181.264,72.34],[105.532,72.34],[59.218,106.732],[-3.15,137.51],[-65.603,107.296],[-113.722,72.34],[-186.665,72.34],[-190.587,58.648],[-169.856,-39.684],[162.319,-39.796]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[0,0.114,0.435,0.69,0.35,0.149,0.478,0.759,0.7,0.184,0.522,0.827]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[0,0.098,0.388,0.618,0.35,0.141,0.455,0.723,0.7,0.184,0.522,0.827]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[0,0.098,0.388,0.618,0.35,0.141,0.455,0.723,0.7,0.184,0.522,0.827]},{"t":131,"s":[0,0.114,0.435,0.69,0.35,0.149,0.478,0.759,0.7,0.184,0.522,0.827]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[-1.817,38.036],"to":[0,12.167],"ti":[0,-12.167]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27,"s":[-1.817,111.036],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":119,"s":[-1.817,111.036],"to":[0,-12.167],"ti":[0,12.167]},{"t":131,"s":[-1.817,38.036]}]},"e":{"a":0,"k":[-1.817,114.348]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[0,0],[0,0],[-7.08,0],[0,0],[-1.54,-6.91],[0,0]],"o":[[0,0],[1.55,-6.91],[0,0],[7.08,0],[0,0],[0,0]],"v":[[-213.434,70.257],[-185.727,-49.014],[-170.967,-60.834],[164.673,-60.834],[179.423,-49.014],[208.403,71.546]],"c":false}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[0,0],[0,0],[-7.219,0],[0,0],[-1.57,-7.192],[0,0]],"o":[[0,0],[1.58,-7.192],[0,0],[7.219,0],[0,0],[0,0]],"v":[[-213.403,78.702],[-189.305,-52.578],[-174.256,-64.88],[167.961,-64.88],[183,-52.578],[208.435,80.044]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[0,0],[0,0],[-7.004,0],[0,0],[-1.523,-6.323],[0,0]],"o":[[0,0],[1.533,-6.323],[0,0],[7.004,0],[0,0],[0,0]],"v":[[-213.059,60.529],[-183.563,-37.764],[-168.962,-48.579],[163.051,-48.579],[178.508,-37.764],[209.278,65.918]],"c":false}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[-7.08,0],[0,0],[-1.54,-6.91],[0,0]],"o":[[0,0],[1.55,-6.91],[0,0],[7.08,0],[0,0],[0,0]],"v":[[-213.434,70.257],[-185.727,-49.014],[-170.967,-60.834],[164.673,-60.834],[179.423,-49.014],[208.403,71.546]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[-7.072,0.328],[0,0],[-4.034,-5.772],[0,0]],"o":[[0,0],[1.228,-6.974],[0,0],[7.072,-0.328],[0,0],[0,0]],"v":[[-170.362,88.402],[-221.473,-43.051],[-207.277,-55.543],[118.752,-71.352],[136.784,-60.478],[211.576,65.998]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[-6.39,0],[0,0],[-1.39,-6.978],[0,0]],"o":[[0,0],[1.399,-6.978],[0,0],[6.39,0],[0,0],[0,0]],"v":[[-192.803,76.032],[-167.93,-50.844],[-154.608,-62.78],[148.313,-62.78],[161.625,-50.844],[186.298,79.322]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[-14.142,-2.947],[0,0],[7.875,-2.133],[0,0]],"o":[[0,0],[9.93,-2.883],[0,0],[4.687,1.553],[0,0],[0,0]],"v":[[-227.767,8.98],[-4.18,-54.344],[22.392,-56.78],[223.813,1.72],[222.875,9.656],[10.675,84.576]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[0,0],[0,0],[-12.218,-7.707],[0,0],[7.875,-2.133],[0,0]],"o":[[0,0],[10.305,-1.018],[0,0],[4.687,1.553],[0,0],[0,0]],"v":[[-193.436,-20.153],[107.82,-41.344],[134.092,-32.791],[213.813,35.22],[203.75,39.656],[-126.47,60.899]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[0,0],[0,0],[-4.734,1.136],[0,0],[-3.829,-1.415],[0,0]],"o":[[0,0],[-7.215,-1.688],[0,0],[4.013,-4.474],[0,0],[0,0]],"v":[[117.691,58.507],[-213.285,36.035],[-216.425,27.673],[-130.263,-35.179],[-109.421,-39.988],[195.393,-23.609]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[-4.734,1.136],[0,0],[-5.954,-1.79],[0,0]],"o":[[0,0],[-7.215,-1.688],[0,0],[4.734,-1.136],[0,0],[0,0]],"v":[[-28.309,84.257],[-225.035,-1.715],[-228.175,-10.077],[-14.013,-58.679],[5.204,-58.113],[234.653,7.412]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[0,0],[0,0],[-5.724,0.657],[0,0],[-4.092,-3.95],[0,0]],"o":[[0,0],[-3.518,-3.891],[0,0],[5.724,-0.657],[0,0],[0,0]],"v":[[-108.05,79.817],[-199.08,-22.166],[-195.044,-31.987],[61.515,-61.931],[78.847,-56.618],[222.314,40.512]],"c":false}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[0,0],[0,0],[-6.383,0.337],[0,0],[-2.851,-5.389],[0,0]],"o":[[0,0],[-1.053,-5.359],[0,0],[6.383,-0.337],[0,0],[0,0]],"v":[[-151.932,75.684],[-194.776,-35.217],[-187.957,-45.76],[112.2,-59.6],[128.276,-51.122],[215.319,55.131]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[0,0],[0,0],[-6.808,0.098],[0,0],[-1.9,-6.47],[0,0]],"o":[[0,0],[0.788,-6.461],[0,0],[6.808,-0.098],[0,0],[0,0]],"v":[[-191.822,70.628],[-184.294,-45.017],[-171.96,-56.468],[150.1,-60.476],[165.08,-49.624],[210.763,59.709]],"c":false}]},{"t":156,"s":[{"i":[[0,0],[0,0],[-7.08,0],[0,0],[-1.54,-6.91],[0,0]],"o":[[0,0],[1.55,-6.91],[0,0],[7.08,0],[0,0],[0,0]],"v":[[-213.434,70.257],[-185.727,-49.014],[-170.967,-60.834],[164.673,-60.834],[179.423,-49.014],[208.403,71.546]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.600000023842,0.607843160629,0.701960802078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":19,"s":[{"i":[[1.17,5.24],[0,0],[7.08,0],[0,0],[1.55,-6.91],[0,0],[-5.37,0],[0,0]],"o":[[0,0],[-1.54,-6.91],[0,0],[-7.08,0],[0,0],[-1.17,5.24],[0,0],[5.37,0]],"v":[[207.693,68.546],[179.423,-49.014],[164.673,-60.834],[-170.967,-60.834],[-185.727,-49.014],[-213.997,68.546],[-205.807,78.756],[199.503,78.756]],"c":true}]},{"i":{"x":0.2,"y":1},"o":{"x":0.2,"y":0},"t":32,"s":[{"i":[[1.17,5.454],[0,0],[7.219,0],[0,0],[1.58,-7.192],[0,0],[-5.37,0],[0,0]],"o":[[0,0],[-1.57,-7.192],[0,0],[-7.219,0],[0,0],[-1.17,5.454],[0,0],[5.37,0]],"v":[[207.724,76.922],[183,-52.578],[167.961,-64.88],[-174.256,-64.88],[-189.305,-52.578],[-213.966,76.922],[-205.776,87.549],[199.534,87.549]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.2,"y":0},"t":40,"s":[{"i":[[1.17,4.795],[0,0],[7.004,0],[0,0],[1.533,-6.323],[0,0],[-5.37,0],[0,0]],"o":[[0,0],[-1.523,-6.323],[0,0],[-7.004,0],[0,0],[-1.17,4.795],[0,0],[5.37,0]],"v":[[207.693,63.173],[177.642,-37.764],[163.051,-48.579],[-168.962,-48.579],[-183.563,-37.764],[-213.622,58.964],[-205.807,72.515],[199.503,72.515]],"c":true}]},{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[1.17,5.24],[0,0],[7.08,0],[0,0],[1.55,-6.91],[0,0],[-5.37,0],[0,0]],"o":[[0,0],[-1.54,-6.91],[0,0],[-7.08,0],[0,0],[-1.17,5.24],[0,0],[5.37,0]],"v":[[207.693,68.546],[179.423,-49.014],[164.673,-60.834],[-170.967,-60.834],[-185.727,-49.014],[-213.997,68.546],[-205.807,78.756],[199.503,78.756]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[1.073,5.24],[0,0],[7.072,-0.328],[0,0],[1.228,-6.974],[0,0],[-4.926,0],[0,0]],"o":[[0,0],[-1.859,-6.831],[0,0],[-7.072,0.328],[0,0],[4.349,10.889],[0,0],[4.926,0]],"v":[[212.174,64.498],[136.784,-60.478],[118.752,-71.352],[-207.277,-55.543],[-221.473,-43.051],[-175.925,73.185],[-167.758,92.568],[203.001,70.008]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[1.056,5.291],[0,0],[6.39,0],[0,0],[1.399,-6.978],[0,0],[-4.846,0],[0,0]],"o":[[0,0],[-1.39,-6.978],[0,0],[-6.39,0],[0,0],[-1.056,5.291],[0,0],[4.846,0]],"v":[[185.656,76.293],[161.625,-50.844],[148.313,-62.78],[-154.608,-62.78],[-167.93,-50.844],[-193.311,74.304],[-185.642,88.531],[178.265,86.603]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[-6.89,3.403],[0,0],[2.312,1.428],[0,0],[7.43,-2.383],[0,0],[-5.698,-2.907],[0,0]],"o":[[0,0],[1,-0.321],[0,0],[-8.641,-3.947],[0,0],[-7.556,1.903],[0,0],[7.752,2.593]],"v":[[13.034,85.047],[224.125,9.406],[219,3.47],[21.641,-56.53],[-4.43,-54.344],[-228.65,8.503],[-215.552,16.18],[-11.752,89.18]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":92,"s":[{"i":[[-6.89,3.403],[0,0],[2.062,2.293],[0,0],[8.68,-0.518],[0,0],[-5.698,-2.907],[0,0]],"o":[[0,0],[12.375,-2.883],[0,0],[-6.715,-6.72],[0,0],[-0.056,1.268],[0,0],[7.752,2.593]],"v":[[-124.611,61.37],[205,39.406],[212.063,32.97],[133.302,-32.819],[107.57,-41.344],[-195.444,-20.13],[-188.552,-6.82],[-145.752,61.68]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[{"i":[[1.17,5.24],[0,0],[8.638,-5.099],[0,0],[-7.527,-1.688],[0,0],[-7.693,3.216],[0,0]],"o":[[0,0],[-7.579,-1.04],[0,0],[-4.734,1.136],[0,0],[7.122,1.301],[0,0],[2.497,-5.16]],"v":[[200.057,-23.734],[-98.171,-39.613],[-129.638,-35.679],[-216.425,27.673],[-213.285,36.035],[117.253,58.296],[139.193,57.506],[191.654,-5.089]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[4.682,1.926],[0,0],[4.734,-1.136],[0,0],[-7.527,-1.688],[0,0],[-7.693,3.216],[0,0]],"o":[[0,0],[-5.835,-3.85],[0,0],[-4.734,1.136],[0,0],[7.122,1.301],[0,0],[11.872,-5.534]],"v":[[234.193,6.912],[13.204,-56.113],[-14.013,-58.679],[-228.175,-10.077],[-225.035,-1.715],[-28.747,84.046],[-6.808,83.256],[228.128,21.622]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[{"i":[[3.201,3.324],[0,0],[5.724,-0.657],[0,0],[-3.698,-3.891],[0,0],[-6.713,1.859],[0,0]],"o":[[0,0],[-4.023,-5.141],[0,0],[-5.724,0.657],[0,0],[3.624,2.962],[0,0],[9.129,-3.2]],"v":[[221.748,38.958],[83.473,-55.462],[61.515,-61.931],[-195.044,-31.987],[-199.455,-22.166],[-108.915,78.974],[-91.8,83.724],[213.787,47.27]],"c":true}]},{"i":{"x":0.9,"y":1},"o":{"x":0.167,"y":0.167},"t":134,"s":[{"i":[[2.213,4.256],[0,0],[6.383,-0.337],[0,0],[-1.146,-5.359],[0,0],[-6.06,0.955],[0,0]],"o":[[0,0],[-2.816,-6.001],[0,0],[-6.383,0.337],[0,0],[1.293,4.07],[0,0],[7.301,-1.644]],"v":[[214.683,52.874],[130.652,-50.528],[112.2,-59.6],[-187.957,-45.76],[-195.401,-35.217],[-153.083,74.419],[-139.184,82.862],[207.124,64.42]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":141,"s":[{"i":[[1.457,4.955],[0,0],[6.808,-0.098],[0,0],[0.761,-6.461],[0,0],[-5.513,0.277],[0,0]],"o":[[0,0],[-1.89,-6.647],[0,0],[-6.808,0.098],[0,0],[-0.452,4.901],[0,0],[5.869,-0.476]],"v":[[210.081,56.924],[165.762,-49.452],[150.1,-60.476],[-171.96,-56.468],[-184.473,-45.017],[-192.548,69.047],[-182.804,78.745],[202.155,67.522]],"c":true}]},{"t":156,"s":[{"i":[[1.17,5.24],[0,0],[7.08,0],[0,0],[1.55,-6.91],[0,0],[-5.37,0],[0,0]],"o":[[0,0],[-1.54,-6.91],[0,0],[-7.08,0],[0,0],[-1.17,5.24],[0,0],[5.37,0]],"v":[[207.693,68.546],[179.423,-49.014],[164.673,-60.834],[-170.967,-60.834],[-185.727,-49.014],[-213.997,68.546],[-205.807,78.756],[199.503,78.756]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.103,0.945,0.941,0.969,0.684,0.851,0.849,0.904,0.999,0.757,0.757,0.839]}},"s":{"a":0,"k":[-2.817,-8.964]},"e":{"a":0,"k":[-2.817,151.004]},"t":1,"nm":"Gradient Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 8","bm":0,"hd":false}],"ip":0,"op":180,"st":-4,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Sides 4","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[5.091,81.209,0]},"a":{"a":0,"k":[258.346,386.27,0]},"s":{"a":0,"k":[95.238,95.238,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.31,"y":0.907},"o":{"x":0.4,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-202.501,-61.985],[-231.63,69.947],[-232.353,189.826],[-210.486,64.499]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-239.891,-64.026],[-187.364,75.594],[-186.944,198.329],[-237.498,68.714]],"c":true}]},{"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-174.854,-60.896],[-195.525,55.101],[-193.086,169.063],[-194.757,56.501]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.462745098039,0.490196078431,0.592156862745,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.701,0.706,0.786,0.332,0.76,0.764,0.833,1,0.818,0.823,0.88]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[-221.061,97.608],"to":[6.033,-0.818],"ti":[-6.033,0.818]},{"t":81,"s":[-184.864,92.698]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":74,"s":[-101.492,-27.113],"to":[3.357,19.124],"ti":[-3.357,-19.124]},{"t":81,"s":[-81.353,87.632]}]},"t":1,"nm":"Gradient Fill 2","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[449.758,332.371]},"a":{"a":0,"k":[165.889,64.877]},"s":{"a":0,"k":[105,105]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"R Side","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252.697,358.335]},"a":{"a":0,"k":[252.697,358.335]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 1","bm":0,"hd":false}],"ip":51,"op":81,"st":-4,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Inside","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[-0.177,-28.813,0]},"a":{"a":0,"k":[-65.177,68.187,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.31,"y":0.907},"o":{"x":0.2,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[101.7,13.192],[-234.276,13.334],[-258.298,139.523],[128.895,142.672]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[64.849,2.192],[-256.776,18.834],[-209.798,143.523],[141.395,135.172]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[70.246,15.054],[-200.146,17.739],[-219.925,134.356],[90.682,139.491]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[116.478,67.15],[-50.482,13.104],[-233.874,69.733],[-65.945,131.179]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[131.346,108.074],[97.848,34],[-231.675,34.257],[-260,106.559]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-65.505,132.383],[137.048,62.328],[-64.978,15.095],[-260.834,65.477]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-254.793,108.415],[131.5,108.336],[99.269,35.271],[-230.112,34.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-258.586,57.899],[-56.159,133.223],[142.594,61.825],[-64.943,15.571]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-228.82,36.773],[-258.402,107.586],[128.571,107.568],[102.057,36]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-68.265,16.573],[-242.978,55.209],[-52.983,128.047],[133.095,57.223]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[101.7,13.192],[-234.276,13.334],[-256.798,137.023],[127.395,135.672]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.062745098039,0.235294132607,0.372549019608,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.074509806931,0.368627458811,0.588235318661,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.31,"y":0.907},"o":{"x":0.2,"y":0},"t":51,"s":[{"i":[[0,0],[0,0],[0,0],[2.207,13.642]],"o":[[0,0],[0,0],[0,0],[-1.824,-11.274]],"v":[[105.649,10],[-254.978,11.25],[-286.007,148.865],[136.442,146.072]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.7,"y":0.094},"t":74,"s":[{"i":[[0,0],[0,0],[0,0],[2.207,13.642]],"o":[[0,0],[0,0],[0,0],[-1.824,-11.274]],"v":[[63.298,-1],[-290.978,16.25],[-240.507,152.865],[140.442,133.572]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[1.755,11.809]],"o":[[0,0],[0,0],[0,0],[-1.45,-9.759]],"v":[[74.602,15.15],[-226.321,15.918],[-250.399,150.74],[99.824,150.563]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":88,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[151.851,78.341],[-60.371,15.679],[-287.305,80.952],[-75.174,159.965]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":94,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[140.325,126.298],[104.46,37.957],[-255.444,37.364],[-285.46,124.134]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-73.851,150.441],[150.022,71.348],[-74.007,18.06],[-292.495,70.466]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":106,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-283.909,124.937],[139.492,125.298],[104.899,37.675],[-254.651,37.298]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-290.351,67.248],[-74.978,150.441],[149.993,67.159],[-73.006,18.06]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":118,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-253.692,39.071],[-285.872,125.037],[138.46,125.298],[107.399,37.298]],"c":true}]},{"i":{"x":0.1,"y":1},"o":{"x":0.167,"y":0.167},"t":124,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-75.65,18.06],[-292.978,66.665],[-75.007,150.441],[150.005,65.086]],"c":true}]},{"t":156,"s":[{"i":[[0,0],[0,0],[0,0],[2.207,13.642]],"o":[[0,0],[0,0],[0,0],[-1.824,-11.274]],"v":[[105.649,10],[-254.978,11.25],[-286.007,148.865],[136.442,146.072]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.6,0.607843137255,0.701960784314,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.945098099054,0.941176530427,0.968627510819,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[9.601,-16.298]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 2","bm":0,"hd":false}],"ip":93,"op":120,"st":-7,"bm":0}]} \ No newline at end of file